基于WMIAEKF的锂离子电池SOC与容量联合估算
2024-02-17顾乃朋王亚平杨驹丰栗欢欢
顾乃朋,王亚平,杨驹丰,栗欢欢
(1.江苏大学汽车工程研究院,江苏镇江 212013;2.江苏大学材料科学与工程学院,江苏镇江 212013)
锂离子电池因其循环寿命长、自放电率低、无记忆效应等优点,成为电动汽车的主要动力来源。要想保证锂离子电池安全高效地使用,可靠的电池管理系统必不可少。电池的状态估算是电池管理系统中重要的一环,准确的电池状态估算可以为电动汽车整车的能量管理策略提供重要依据。因此,性能优异的电池管理系统不仅需要对电池进行电流、电压以及温度等状态的监测,还需要对电池荷电状态(state of charge,SOC)和健康状态(state of health,SOH)进行准确的估算,以保证电池始终工作在安全可靠的范围内。
由于电池的SOC与电压、内阻等因素之间呈现较强的非线性关系,因此需要通过建模来对电池的充放电特性进行分析[1]。电池模型主要分为基于电化学模型[2]和基于等效电路模型[3]两种,其中电化学模型通过几组偏微分方程对电池内部复杂的电化学反应进行建模,来描述电池内部的反应机理,因此该模型虽然能够很精确地描述电池的内特性,但是复杂度较高,难以应用到实际。与之相反,等效电路模型从电池外特性出发,通过电容电阻来模拟电池复杂的极化特性,因此复杂度较低,且经过多年的发展,等效电路模型是应用最为广泛的模型。
仅仅通过建模仍然无法得到电池的实时SOC值,因此,许多学者将模型与状态估计算法结合对电池进行SOC估算。卡尔曼滤波算法是目前应用最广泛的算法。Xiong 等[4]在扩展卡尔曼滤波(EKF)算法的基础上结合自适应滤波算法,提出了自适应扩展卡尔曼滤波(AEKF)算法,并对电池进行SOC估算,解决了在实际运行中噪声矩阵时变的问题。徐等[5]采用了自适应平方根无迹卡尔曼(ASRUKF)算法进行了锂离子电池的SOC估算,通过对协方差矩阵平方根分解,解决了无迹卡尔曼(UKF)在迭代过程中由于计算机字节舍入误差导致协方差矩阵出现非正定,从而使滤波发散的问题。吴等[6]引入了粒子滤波(PF)算法对UKF 进行修正,结果表明该算法精度高于UKF 以及PF,最大误差保持在2.1%以内。
SOH指电池的健康状态,用来表示电池的衰退程度。通常用一些指标如容量、内阻等参数来表征电池的健康状态,估算方法主要有直接测量法、内阻法、数据驱动法以及基于模型的方法[7]。其中,直接测量法和内阻法需要通过离线实验获取电池的容量以及内阻,因此难以实时获取电池健康状态。数据驱动法需要大量的样本数据进行训练,易受数据不确定性的影响,且运算量大仍是目前面临的难题。基于模型的方法能够通过建模很好地反映电池的物理以及电化学特性,且无需大量的样本数据也可以进行预测,步骤较为简单,主要分为两步:模型参数获取以及状态预测。
SOC的定义为当前剩余容量与最大可用容量之间的比值,而电池最大可用容量与电池的老化有着直接的联系,随着电池老化程度增加,最大可用容量会随之减小。因此固定的最大可用容量值不能描述SOC与老化之间的关系,而SOC与老化状态之间存在着一定的耦合关系,以一个确定的老化状态去估算SOC,其实际意义不大。熊瑞[8]采用多时间尺度的双卡尔曼滤波算法对电池进行了SOC和容量的联合估算,结果表明该方法可以对SOC以及容量值进行精确的预测。
本文以三元锂离子电池为研究目标,考虑到电池工作时环境的复杂性,采用参数在线辨识的方法对电池模型进行参数辨识。在EKF 的基础上,引入改进的Sage-Husa 自适应滤波算法以及多新息算法,并且创新性地使用两组高斯方程来计算新息的权重,以此解决传统多新息算法迭代过程中易出现过校正的问题。然后采用该方法对锂离子电池进行SOC估算,并在该方法的基础上提出了一种改进的双卡尔曼滤波算法对电池的容量和SOC进行实时的联合估算。
1 电池模型的建立以及参数辨识
1.1 二阶等效电路模型的建立
综合考虑模型的精度以及复杂度,选取二阶等效电路模型作为研究对象,对电池进行状态估算研究,该模型通过两组RC 环节特别考虑了电池内部的极化特性,如图1 所示。图中:Uoc为电池的开路电压;U和I分别为电池端电压和电流,其中电流充电为正,放电为负;R0为电池内部的欧姆内阻;R1和R2为极化内阻;C1和C2为电池的极化电容。
图1 锂离子电池二阶等效电路模型
根据基尔霍夫电压定律,可以得到模型的状态空间方程:
经过离散化处理,可以得到模型的离散化形式:
式中:T为采样时间;τ1=R1C1,τ2=R2C2,为电池的极化时间常数;U1和U2分别为两个RC环节的两端电压。
电池SOC可以通过安时积分表达式获得:
同样进行离散化处理:
式中:SOCk为k时刻的SOC值;η为库仑效率;Qmax为最大可用容量。
1.2 电池开路电压-荷电状态关系获取
电池的开路电压-荷电状态(OCV-SOC)关系通过25 ℃下的混合脉冲特性(HPPC)实验获得,实验步骤如下:
(1)将电池在25 ℃下静置2 h 使电池内部稳定;
(2)以0.3C电流将电池恒流充电至4.2 V,再以4.2 V 将电池恒压充电至截止电流为1/20C;
(3)将电池静置2 h,获得并记录电池此时的开路电压;以2C对电池放电10 s,静置40 s,再以2C对电池充电10 s,静置40 s;
(4)以0.3C对电池放电5%;
(5)重复步骤(3)~(4),直至电池放电至截止电压2.5 V。
1.3 模型参数辨识
由于电池模型的参数随着电池工作环境温度以及电池自身老化的变化而变化,离线辨识不能适应电池实际运行过程中复杂因素的影响,因此本文选取最小二乘法对模型进行在线参数辨识。由于传统最小二乘法在计算过程中,随着运行数据重复性的增加,容易导致数据饱和,造成误差的累积[9],因此本文选取变遗忘因子的递推最小二乘法(VFFRLS)进行参数辨识[10]。计算公式如下:
式中:θk-1为数据向量;yk为输出量;λ为遗忘因子;σ为与λ相关的常数。
需要注意的是定遗忘因子不能很好地跟踪电池工作过程中的时变特性。然而,变遗忘因子最小二乘法可以通过电池运行时参数的变化速率自适应调整遗忘因子的大小。根据所建立的电池二阶等效电路模型,对公式(1)进行拉普拉斯变换:
得到传递函数如下:
式中:a1、a2、a3、a4、a5为与辨识参数相关的常数。
可以通过公式(7)和(8)推导得出差分方程:
公式(9)的矩阵形式为:
通过上述的推导过程可以得到模型的离散化形式。模型的参数可以用参数向量θ(k)表示。令z-1=,公式(8)可以表达为:
结合公式(7)和(11),可以得出:
2 基于WMIAEKF的电池状态估算策略
卡尔曼滤波算法目前已被广泛应用于锂离子状态估算研究,该算法通过利用一组状态方程,根据观测量的输出,对状态量进行最优估计。对于锂离子电池二阶等效电路模型,以端电压作为观测量,从公式(2)可以看出,观测方程是非线性的,因此需要用扩展卡尔曼滤波算法,将观测方程用泰勒公式线性展开来进行研究。
2.1 扩展卡尔曼滤波算法
针对非线性问题,对于扩展卡尔曼滤波算法,首先有一组离散化的状态空间方程:
将扩展卡尔曼滤波算法应用于锂离子电池SOC估算时,结合二阶等效电路模型,令:
初始化噪声协方差矩阵:R0,Q0
状态更新:
新息值为端电压观测值与预测值之间的误差,计算公式为:
卡尔曼滤波增益计算:
其中,
测量更新以及协方差矩阵更新:
2.2 改进的Sage-Husa 自适应滤波算法
尽管已经建立了精确的电池数学模型,但是电池在实际运行过程中会不可避免地受到噪声的干扰,也就是说观测噪声矩阵Rk以及过程噪声矩阵Qk并非固定不变的。如果不考虑噪声的影响,难免会造成滤波的发散。因此,为了保证算法的稳定性,需要通过对观测量新息值的提取,对Rk以及Qk进行自适应调整。本文引入Sage-Husa 自适应滤波算法[11]对噪声进行实时修正,噪声矩阵计算公式如下:
已经有文献指出[12],Rk和Qk同时更新会造成滤波发散的现象,然而状态噪声的取值变化主要依赖于模型的精度,因此过程噪声Qk可以通过经验进行取值。与之相反,观测噪声容易受到受到外部因素的影响,如电流电压传感器误差、环境温度变化等。因此,对观测噪声进行自适应更新更加具有现实意义,且能够减少计算量。此外,文献[9]同样指出,观测噪声的计算公式存在减法运算,这就导致了在算法迭代过程中观测噪声会出现非正定的风险,从而导致算法发散。为了保证观测噪声的正定性,本文采用有偏估计的方法,对噪声进行更新。改进后的观测噪声计算公式如下:
2.3 加权多新息(WMI)算法
Ding 等[13]最初引入了多新息算法来解决随机梯度辨识算法中收敛能力较差的问题。算法将新息值从标量形式扩展到向量形式,在算法的校正过程中考虑了新息变量的当前值和先前值。
与传统EKF 不同,多新息算法将单个新息值拓展成新息向量:
相应地,卡尔曼滤波增益也要拓展成向量形式与新息向量进行计算:
式中:L为新息窗口长度。
然而,在不同的迭代步骤,系统误差呈现不同的分布。且由于电流电压传感器误差的存在,额外引入一系列历史新息会导致误差的累积。由衰减因子卡尔曼得到启发,越靠近当前时刻的测量数据越重要。Chen 等[14]从粒子滤波中得到启发,构建了一种权重计算方法,该方法假设计算过程中随着迭代次数的增加,观测误差值逐渐接近0,因此仅仅为观测误差值接近0 的新息赋予较大的权重。Han 等[15]将该加权多新息算法应用到卡尔曼滤波中进行电池的SOC估算,结果表明该算法精度比普通的EKF 提高了1.5%。然而,这种权重计算方法在应用到卡尔曼滤波算法估算SOC时,所假设的条件是不成立的。因为在电池工作时,模型的端电压输出误差即新息值分布是随机且不规律的,而不是逐渐趋于0。从公式(17)中可以看出,在状态更新阶段如果观测误差值较大,新息被赋予很小的权重,会导致最后的估算结果接近公式(14)中的状态预测值,即安时积分法计算出的SOC值,这样虽然会比普通的EKF 估算精度高,但是会导致算法的鲁棒性变差。而卡尔曼滤波这类闭环算法相比于安时积分的优势就是能抵抗在电池实际运行过程中的各种干扰,如初始SOC误差。为解决这一问题,本文提出了一种更加合理的权重计算方法,即对距离当前时刻较近以及观测误差值较大的新息赋予更大的权重,这样既能削减历史数据累积误差的干扰,也能保证算法的鲁棒性,计算公式如下:
式中:j=k-L+1:k;wt,j和we,j分别为时间相关的新息权重以及误差相关的新息权值;σ1、σ2为标准差;ωj为最后归一化的结果。
由于普通多新息算法中,各新息权重为1,权重和为向量长度L,为了更加合理地表达权重公式,在每一个ωj前乘以一个L。
加权后的新息向量为:
基于公式(20)~(22),改进后的算法观测更新可以表达为:
2.4 基于改进的多时间尺度双卡尔曼滤波算法的SOC 和容量联合估算
电池的使用过程中不可避免地会老化,从而导致电池容量的衰退,如果不及时更新实时容量,会导致SOC估算不准确。因此,本文提出一种改进的多时间尺度双卡尔曼滤波算法对SOC和容量进行联合估算,其中,WMIAEKF 用于SOC估算,AEKF 用于容量估算。并且,AEKF 在估算容量的同时,估算出的容量也可实时修正由WMIAEKF 估算出的SOC值,为SOC计算提供准确的实时额定容量。
考虑到容量与电池端电压之间的联系不大,而与电池的输入电流有着直接的关系,因此选用安时积分法估算SOC的方程作为观测方程[16],可以得到容量估算的状态空间方程:
式中:θk为电池k时刻的额定容量Qmax,k。
与SOC的变化相比,容量的变化是缓慢的,需要经过长时间的循环,容量才会有明显的变化。因此,本文引入两个时间尺度的状态空间方程来分别对SOC和容量进行估算,即宏观时间尺度和微观时间尺度[17]。SOC每1 s 更新一次,容量每60 s更新一次。
结合上述推导,改进后的多时间尺度双卡尔曼滤波算法,选取k和l分别作为宏观和微观时间尺度指标,Lz作为每个时间尺度分隔指标,有tk,0=tk-1,Lz,即一个宏观时间尺度有Lz个微观时间尺度。在此,为了区分新息窗口长度和时间尺度长度,令i为总的仿真时间,每当微观时间尺度l增加一次,i也会相应的增加。改进的算法框架图如图2 所示。
图2 改进多尺度双卡尔曼滤波算法框架
多时间尺度的联合估算状态空间方程为:
结合电池模型,公式(26)可表达成:
结合上述公式推导,改进后的双卡尔曼滤波算法步骤如下。
初始化:
微观时间尺度AWMIEKF 状态更新:
微观时间尺度新息计算:
微观时间尺度测量噪声更新:
微观时间尺度卡尔曼滤波增益计算:
微观时间尺度新息向量、卡尔曼滤波增益向量以及各自权重计算:
加权后新息向量:
微观时间尺度测量更新:
微观时间尺度协方差矩阵更新:
宏观时间尺度AEKF 更新容量:
其中:
3 实验与分析
为验证所提方法,本文选取某款21700 三元锂电池为研究对象,标称容量为3 Ah。为验证容量估算的准确性,本文主要针对老化电池来验证所提联合估算算法的性能,电池老化循环200 次之后的额定容量为2.8 Ah,在25 ℃室温下进行容量标定、HPPC、NEDC 测试。
3.1 参数辨识
首先是OCV-SOC关系的获取,通过HPPC 测试间歇放电获取了OCV与SOC之间的关系,并且通过八阶多项式拟合出两者之间的关系。OCV-SOC关系如图3 所示。
图3 OCV-SOC关系图
选取在NEDC 工况测得的电流电压数据,来验证VFFRLS 参数辨识的精确性。从图4 可以看到,整个NEDC 工况运行过程中电流的变化是复杂的,用此工况足以验证所提参数辨识方法的准确性。参数辨识的结果如图5 所示,可以看出电池的各参数在电池运行过程中是不断变化的。将参数辨识结果代入到电池模型中,模型的输出电压与真实电压之间的误差如图6 所示,可以看出,除了放电后期电池内部反应不稳定,VFFRLS 可以将电压误差控制在0.05 V 以内。说明基于变遗忘因子最小二乘法的参数辨识方法可以为后面的SOC估算提供支撑。
图4 NEDC工况电流测试曲线
图5 参数辨识结果
图6 参数辨识误差
3.2 基于WMIAEKF 的SOC 估算
图7 所示为不同算法(WMIAEKF、MIAEKF、AEKF)在NEDC 工况下的估算结果,表1 列出了各算法详细的估算误差。从图中可以看出,MIAEKF 与AEKF 的最大误差分别为3.12% 以及3%,而WMIAEKF 的表现最好,可以始终将最大误差控制在1.15%之内。由此可见,仅仅将传统的卡尔曼滤波算法中的单新息拓展成新息向量并不能明显地提高估算的精确度,而本文提出的加权多新息算法在整个估算过程中可以将平均误差控制在0.52%。
表1 不同算法的SOC 估算误差 %
图7 不同算法的SOC估算结果
在实际使用过程中,由于电池本身的自放电效应,初始SOC往往会不准确。为验证所提改进算法的鲁棒性,分别设置了不同的初始SOC误差来验证算法的收敛能力。如图8 所示,尽管存在0.8 的初始误差,依然可以在20 s 内将SOC收敛至真实值附近,说明所改进的算法具有较强的鲁棒性。此外,平均误差也能控制在0.53%。说明所提的加权多新息算法在有着高鲁棒性的同时,依旧具有良好的精确性。
图8 在不同初始SOC误差下的SOC估算结果
3.3 基于改进多尺度双卡尔曼滤波算法的SOC 与容量联合估算
图9 展示了改进多时间尺度双卡尔曼滤波算法的SOC与容量联合估算结果,其中,图9(a)和(b)展示了采用联合估算以及单独估算SOC之间的对比。需要注意的是,这里给定了错误的初始容量值,来验证算法对错误容量的纠正能力。从图中可以看出,估算初期,联合估算与单独估算SOC在估算效果上并没有太大的区别,而到了中后期,受到错误初始容量值的影响,单独估算SOC误差逐渐增大,而联合估算SOC可以迅速将容量修正到正确值,并且始终都能将SOC保持在真实值附近。
图9 SOC与容量联合估算结果
4 结论
本文针对传统多新息(MI)算法在迭代过程中易出现过校正而导致状态估计误差增大的问题,提出了一种加权多新息(WMI)算法。并将其运用到自适应扩展卡尔曼滤波(AEKF)算法中,得到改进后的自适应加权多新息扩展卡尔曼滤波算法(WMIAEKF),并在NEDC工况下进行算法的比较验证。结果表明,与MIAEKF 以及AEKF 相比,所提算法表现最好,能够将MAE 控制在0.52%,RMSE 控制在0.65%。此外,该算法对错误的初始SOC值也有很强的修正能力,即使在0.8 的初始SOC误差情况下,也能在20 s 内将估算SOC值修正到正确值附近。此外,基于所提的WMIAEKF 算法,提出了一种改进的多尺度双卡尔曼滤波算法用于SOC和容量的联合估算,用AEKF估算出的容量来不断修正WMIAEKF 估算的SOC。结果表明,在给定一个错误初始容量的情况下,联合估算方法能始终将估算的SOC值保持在正确值附近。综上所述,本文所提SOC以及容量联合估算方法具有高稳定性以及鲁棒性。