• 注册 / 登录
  • 切换到窄版
  • 查看: 3636|回复: 1

    锂离子电池SOC估算-扩展Kalman滤波算法

    [复制链接]

    676

    主题

    690

    帖子

    6808

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6808
    发表于 2023-6-5 11:20:17 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    一、SOC估算方法介绍

    电池SOC的估算是电池管理系统的核心,自从动力电池出现以来,各种各样的电池SOC估算方法不断出现。随着电池管理系统的逐渐升级,电池SOC估算方法的效率与精度不断提高,下面将介绍常用几种电池SOC估算方法,本文主要介绍扩展Kalman滤波算法(Extended Kalman Filter,EKF)。

    方法估算方法简介优势劣势
    电流积分法利用△t时间内充放电过程电流对时间的积分,得到△SOC。再根据初始SOC计算得到实时SOC.应用简单,仅需要电流与容量参数初始SOC难以确定电流偏差导致误差累积
    电池内阻法建立电池值与电池内阻对应的函数关系,通过测量的内阻值来估测电池值。应用简单,仅需要确定SOC与内阻对应关系电池内阻测试难度大电池老化影响函数关系不同电池带来的偏差较大
    开路电压法电池经过充分静置后开路电压与电池的剩余电量存在对应关系,根据测试数据建立函数。应用简单,准确性较高需要长时间静置,不满足实时动力电池的实时性要求
    线性模型法在已知前一-时刻的电池SOC值当前的电压、电流信号的情况下,建立一种线性方程,从而推算出当前的电池SOC值。适用性强,可用于实时估算充放电倍率、电池包温度影响预估精度
    神经网络法神经网络法采用了大量的输入数据建立模拟人脑的思维的非线性系统,通过复杂的计算得出一定的函数关系,输出所求的函数。能够模拟电池的外部特性计算量大,实时性不高
    扩展Kalman滤波算法卡尔曼滤波是一种递推线性最小方差估计的运算方法,利用实时观测向量及待估算的状态向虽的前一时刻估算值对状态向虽作最小方差估算。初始值要农不高较好的收敛性实时性高需要计算Jacobian矩阵,计算量相对较大

    二、EKF算法

    Kalman 滤波要求系统状态方程和量测方程都是线性的,但实际应用中的系统大多数是非线性的,导致Kalman滤波算法无法直接应用。因此,针对非线性模型,目前已经提出了非线性滤波算法,主要包括扩展Kalman滤波算法(Extended Kalman Filter,EKF)、无迹滤波(Unscented Kalman Filter,UKF)和粒子滤波(Particle Filter,PF)等 ,本文介绍扩展Kalman滤波算法。

    通过将非线性系统进行线性化处理后(泰勒级数展开),能够继续使用Kalman滤波(Kalman滤波算法推导过程见附录)进行状态估计的方法被称为扩展Kalman滤波算法(EKF)。

    非线性系统状态方程与观测方程如公式(1) 所示:

    g1.png

    k时刻的状态为Xk ; k时刻的测量值为Ye ;Tk为状态噪音系数矩阵; Uk 表示控制向量。

    1.png

    f(Xk, Un)为非线性系统状态方程函数; g(Xk, Uk)为非线性系统观测方程函数;对f(Xk,Uk)、g(Xk, Uk)函数采用一-阶泰勒级数展开,达到非线性函数进行线性化的目的。根据泰勒级数展开公式9得到:

    g2.png

    XK.png k为时刻量测更新后的状态估计。

    2.png

    可得到非线性系统经过线性化处理后的系统状态方程和观测方程:

    g4.png

    由公式(4) 中的状态方程和观测方程为基础,可以递推出扩展Kalman滤波算法:

    a)初始条件:确定状态初始值o/o以及误差协方差初始值Po/o :

    g5.png

    b)状态预测:由系统状态方程确定状态估计值xk/h- -1和误差协方差估计矩阵Pk/k-1

    g6.png

    K/k-1为状态估计值,Xx/h 为状态滤波值

    Pk/k-1为误差协方差估计矩阵,Pk/k 为滤波协方差矩阵

    c)增益系数Kk :

    g7.png

    d)量测更新:

    g8.png

    三.基于EKF算法的SOC估算方法

    电池模型方程式为非线性离散系统9,需要将电池模型方差式通过泰勒级数展开9,对非线性系统进行线性化处理。电池模型参数可以通过Matlab/cftool工 具拟合出来。

    3.1 RC网络等效电路模型

    RC网络等效电路模型如下图所示,在模型中,通过电阻Ro来描述欧姆内阻,通过阻容网络(RC网络)来描述极化内阻。

    3.png
    表1 RC网络等效电路模型

    3.2模型参数辨识

    基于电芯数据,辨识如下参数:等效电压源EMF、欧姆内阻Ro、极化电容C1和极化内阻R1。

    1.等效电压源参数辨识

    表2等效电压源参数辨识结果(20°C)
    SOC
    10%
    20%
    30%
    40%
    50%
    60%
    70%
    80%
    90%
    100%
    EMF/V
    3.334
    3.516
    3.58
    3.642
    3.69
    3.746
    3.83
    3.937
    4.041
    4.156

    4.png
    图2等效电压源曲线

    2.欧姆电阻参数辨识

    表3欧姆内阻辨识结果
    SOC
    20%
    30%
    40%
    50%
    60%
    70%
    80%
    /mΩ
    1.07
    0.95
    0.85
    0.83
    0.82
    0.76
    0.79

    3.极化阻抗参数辨识

    表5极化电阻和极化电容参数辨识结果
    SOC
    20%
    30%
    40%
    50%
    60%
    70%
    80%
    /mΩ
    1.715
    1.355
    1.158
    0.858
    0.787
    0.852
    0.835
    /KF
    3.623
    4.678
    4.566
    4.18
    3.804
    5.026
    4.181

    3.3建立状态方程与量测方程

    根据基尔霍夫电流定律:

    g9.png

    U为极化电压,通过积分得到ln(IR1 - Uk)- ln(IR1-Uk_1)=-Ts/R1C1 : (Ts: 为计算周期) :

    g10.png

    根据电池包SOC的计算方法得到:

    g11.png

    ηk为库伦效率,CN 为电芯容量。根据式(10) 和(11) 可以得到状态方程:

    g12.png

    W1,k-1 和 W2,k-1 为系统噪声。再根据基尔霍夫电压定律得到观测方程:

    g13.png

    Ut,k 为 k 时刻的端电压测量值,Vk 为观测噪声。

    3.4构建递推公式

    通过以上状态方程和观测方程,得到扩展Kalman滤波所需的矩阵:

    5.png

    根据第二节内容介绍的EKF算法,构建滤波递推公式:

    a)初始条件:确定状态初始值X0/0以及误差协方差初始值P0/0 :

    g14.png

    b)状态预测:由系统状态方程确定状态估计值Xr/h- 1和误差协方差估计矩阵Pr/k- 1

    g15.png

    Xk/k-1为状态估计值,Xk/k为状态滤波值

    Pk/k-1为误差协方差估计矩阵,Pk/k 为滤波协方差矩阵

    c)增益系数Kk

    g16.png

    d) 量测更新:

    g17.png

    四、simulink建模与仿真

    本文构建的simulink模型参考了Battery_ SOC_ Estimation项目,见附件。

    模型采用电流信号作为输入参数,再通过模拟得到电压观测量。将得到的电流信号与电压信号输入到EKF模块得到SOC估算值(如图3所示)。EKF模块主要分为五个部分(如图4所示) :

    1.计算Kalman滤波所需的状态转换矩阵Ak、控制输入矩阵Br和观测矩阵Ch。
    2.状态预测模块:预测k: + 1时刻的SOC预估值与极化电压预估值。
    3. Kalman增益矩阵计算:根据输入信号的协方差矩阵计算加权系数。
    4.状态更新模块:根据Kalman增益矩阵计算状态更新值。
    5.协方差矩阵更新:根据Kalman增益矩阵计算协方差矩阵更新值。

    6.png
    图3 基于EKF算法的SOC估算模型

    7.png
    图4 EKF模块

    8.png
    图5 NEDC工况SOC估算结果

    仿真结果所示,EKF算法估算得到SOC值(SOC_EKF)大部分时间内处于安时积分法SOC(SOC_Ah)和SOC真实值(SOC_real)之间。当出现大电流瞬态变化时,SOC_EKF会出现较大幅度波动,说明模型误差可能存在较大误差,需要进一步测试和验证。

    五、参考

    1.冯光 基于EKF的锂离子电池SOC估算的建模与仿真.
    2.Battery_SOC_Estimation-master

    Battery_SOC_Estimation-master.zip

    1.2 MB, 下载次数: 21

    EKF_SOC.rar

    503.99 KB, 下载次数: 17

    回复

    使用道具 举报

    676

    主题

    690

    帖子

    6808

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6808
     楼主| 发表于 2023-6-5 14:19:15 | 显示全部楼层
    附录-Kalman滤波算法推导

    Kalman滤波算法相对于线性最小方差估计,拥有如下特点:

    1. Kalman滤波有一系列必要条件: 状态模型和量测模型均为线性;状态噪声和量测噪声均为零期望白噪声;状态噪声、量测噪声和状态三者之间不相关;初值或者统计特性(期望和协方差矩阵)已知。当满足这些条件时,滤波结果在无偏最小方差意义上是最优的;反之如果不满足这些条件,则滤波结果不是最优的。

    2.迭代算法。虽然其本质上也利用了从初始时刻到当前时刻的所有测量信息,但采用的是迭代方法,并不需要保存之前的测量量,适合于计算机处理,而且便于进行多维处理,及多输入,多输出系统的状态估计。

    3.同时利用了状态和量测方程。在利用量测方程的基础上,进-步将状态方程也纳入滤波算法设计,从而同时利用了状态自身的变化规律和观测量,使得最大程度地提高估计精度。

    4.适用于非平稳过程。由于有状态方程,状态统计特性的变化由状态方程和状态噪音实时确定,而状态噪音一般建模为平稳白噪音,因此,Kalman滤波 算法不仅适用于平稳过程,也适用于非平稳过程。

    5.增益矩阵是调节加权权重的参数。当量测噪声方差矩阵增大时,增益矩阵减小,即分配给当前测量值的权重减小。

    一、系统建模

    建立状态方程与量测方程:

    g1.png


    k时刻的状态值为Xk ; Ak为状态转移矩阵; Γk 为状态噪音系数矩阵; Wk 为状态噪音。

    k时刻的测量值为Yk ; Ck 为量测矩阵; Vk 为量测噪声。

    1.png


    二、算法推导

    仅基于状态方程进行预测可能导致误差发散,仅基于量测方程进行滤波无法适用于非稳态过程。因此,将两者结合起来就可以实现优势互补。

    设定k时刻状态的预测估计结果为 x.png k/k-1,量测滤波修正结果为 k/k,相应的估计偏差定义为:

    g2.png


    基于状态方程进行预测:

    g3.png


    估计偏差为:

    g4.png


    z1.png ,即上一时刻量测修正是无偏的,代入式(12)有

    g5.png


    预测的估计偏差协方差矩阵为:

    g6.png


    其中,设状态与状态噪声不相关,即 z2.png

    下面,再按照递推滤波器的架构,构建量测修正估计:

    g7.png


    其中, Kk′ 和 Kk 为待定的加权系数矩阵,显然,这里采用的是线性估计。在式(g)中之所以用 X^k/k−1 和 Zk 进行加权,而不是用 X^k−1/k−1 ,是因为通过预测, X^k/k−1 包含了状态方程的信息,因而, X^k/k−1 的精度可能会比 X^k−1/k−1 更高。剩下的问题是如何确定两个加权系数矩阵,这里采用无偏和小方差和最小方差准则,推导过程如下:

    首先考虑无偏估计,有

    2.png


    考虑到 Xk 为任意随机向量,所以 E[Xk] 不可能恒为0,那么只能是其系数矩阵为0,即

    g8.png


    再利用最小方差估计准则,有

    g9.png


    式(g)中 Kk 为待定增益矩阵,考虑到式(g)为二次型(二次型是n个变量上的二次齐次多项式)的形式,肯定有极小值,因此,求 J 关于 Kk 的梯度,令其为0,即为极小值点。

    g10.png


    其中用到了如下公式:

    g11.png


    由式(k)可得:

    g12.png


    将式(i)和(m)代入式(g)中得到:

    g13.png


    式(h)保证了量测修正估计也是无偏的,即具有无偏保持性。下面确定其估计偏差协方差矩阵。

    g14.png


    将式(m)代入(o)可得到:

    g15.png


    三、算法总结

    将上述推导结果进行归纳总结:

    1.系统建模

    g16.png


    2.初始条件

    g17.png


    3.滤波算法

    状态预测:

    g18.png


    量测更新:

    g19.png

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-12-22 09:05 , Processed in 0.070376 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表