基于二阶EKF的锂电池SOC估计研究--赵佳美---论文复现。 参考了基于二阶EKF的锂离子电池soc估计的建模与仿真,构建了simulink仿真模型、一阶EKF和二阶EKF。 二阶卡尔曼滤波效果优异

最近在捣鼓锂电池SOC(State of Charge,荷电状态)估计相关的东西,选择了赵佳美的论文来复现,研究的方向是基于二阶EKF(Extended Kalman Filter,扩展卡尔曼滤波)的锂电池SOC估计。

一、参考资料与模型构建

参考的是基于二阶EKF的锂离子电池soc估计的建模与仿真相关内容。为了更好地对比分析,构建了Simulink仿真模型,并且同时搭建了一阶EKF和二阶EKF模型。

在Simulink建模的时候,那可是个精细活。就拿电池模型来说,得考虑各种参数,像内阻、电容这些,它们之间的关系通过电路拓扑在Simulink里呈现。比如说简单的等效电路模型,我们可能会用到电阻、电容模块来搭建类似这样的结构(这里只是简单示意,实际会更复杂):

% 在Matlab中简单示意电池等效电路模型搭建思路
% 定义电阻和电容参数
R1 = 0.1; 
C1 = 0.01; 
% 可以想象这是在搭建一个类似RC串联电路的部分
% 实际Simulink中通过相应模块连接实现

二、一阶EKF与二阶EKF

一阶EKF

一阶EKF相对来说理解起来稍微容易点。它主要基于系统的状态方程和观测方程来对状态进行估计。假设我们的电池系统状态方程为:$x{k} = f(x{k - 1}, u{k - 1}) + w{k - 1}$,观测方程为:$y{k} = h(x{k}) + v_{k}$。这里$x$是系统状态(比如SOC),$u$是输入(像电流),$y$是观测值(比如电压),$w$和$v$分别是过程噪声和观测噪声。

在代码实现上(以Python为例):

import numpy as np


def ekf_predict(x, P, A, Q, B, u):
    # 预测步骤
    x = np.dot(A, x) + np.dot(B, u)
    P = np.dot(np.dot(A, P), A.T) + Q
    return x, P


def ekf_update(x, P, y, H, R):
    # 更新步骤
    y_hat = np.dot(H, x)
    S = np.dot(np.dot(H, P), H.T) + R
    K = np.dot(np.dot(P, H.T), np.linalg.inv(S))
    x = x + np.dot(K, (y - y_hat))
    P = np.dot((np.eye(len(x)) - np.dot(K, H)), P)
    return x, P


# 初始化参数
A = np.array([[1]])
Q = np.array([[0.001]])
B = np.array([[1]])
u = np.array([[0.1]])
H = np.array([[1]])
R = np.array([[0.01]])
x = np.array([[0.5]])
P = np.array([[1]])

# 模拟一次预测更新
x, P = ekf_predict(x, P, A, Q, B, u)
y = np.array([[0.6]])
x, P = ekf_update(x, P, y, H, R)
print("估计的状态x:", x)
print("估计的协方差P:", P)

在这段代码里,ekfpredict函数实现了预测步骤,根据上一时刻的状态和输入来预测当前时刻的状态和协方差。ekfupdate函数则是利用观测值来更新预测的状态和协方差,让估计更加准确。

二阶EKF

二阶EKF之所以更厉害,是因为它考虑了更多的非线性因素。在处理像锂电池这种复杂的非线性系统时,优势就凸显出来了。它在一阶EKF的基础上,对状态转移函数和观测函数进行二阶泰勒展开,从而能更精确地逼近非线性系统。

基于二阶EKF的锂电池SOC估计研究--赵佳美---论文复现。 参考了基于二阶EKF的锂离子电池soc估计的建模与仿真,构建了simulink仿真模型、一阶EKF和二阶EKF。 二阶卡尔曼滤波效果优异

代码实现上可能比一阶EKF要复杂一些,需要处理更多的导数计算。比如说在计算雅克比矩阵时,要考虑到二阶项。不过大致的框架还是类似预测和更新两个步骤。

三、二阶卡尔曼滤波效果优异

通过实际的仿真对比,二阶EKF的优势一目了然。在面对电池复杂的工况变化时,一阶EKF可能会出现一定的估计偏差,而二阶EKF能够紧紧跟随真实的SOC变化,估计误差明显更小。就好像在一场复杂路况的赛车比赛中,一阶EKF可能会偶尔偏离赛道,而二阶EKF则能更稳定地沿着最佳路线行驶。

从数据上来看,二阶EKF估计的SOC与真实SOC的均方误差可能只有一阶EKF的一半甚至更低。这对于实际应用来说太重要了,毕竟准确的SOC估计对于电池的管理和使用至关重要。无论是电动汽车还是其他依赖锂电池的设备,精准的SOC估计能帮助我们更好地规划使用策略,延长电池寿命。

这次的论文复现过程收获满满,对基于二阶EKF的锂电池SOC估计有了更深入的理解,也希望和大家分享这些经验,一起在这个有趣的领域探索。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐