王浩 郑燕萍 虞杨
(南京林业大学,南京210037)
主题词:磷酸铁锂电池 粒子群优化 动态优选遗忘因子 在线辨识 扩展卡尔曼滤波
电动汽车动力电池荷电状态(State of Charge,SOC)是电池和整车能量管理的基础,其估算结果的准确性直接影响着电池和整车的使用性能与安全。
目前,电池SOC估算方法包括安时积分法、开路电压法、数据驱动算法及等效电路模型观测法等[1]。安时积分法计算简单,但其对初值准确性要求高,且在估算过程中易产生累积误差而无法自我修正;开路电压法的开路电压需要将电池充分静置得到,不适合直接应用于实车,一般与安时积分法联合使用[2];基于数据驱动的算法无需考虑系统内部模型,但对数据要求高,数据训练难度较大;等效电路模型观测法基于电路模型,利用充放电数据先进行模型参数辨识,再结合各种滤波算法进行电池SOC估算。模型参数影响模型精度,进而影响电池SOC估算准确性。参数辨识可分为离线与在线两类。离线辨识方法中,较为简单的最小二乘拟合法一般需要适当的初始参数,文献[3]采用无需初始参数、收敛速度快且能获得全局最优的模拟退火算法来辨识参数,获得了较好估计精度。但随着电池使用环境和循环次数的变化,其内部参数必然变化,离线辨识的精度再高,获得的也只是当时环境下的参数情况。因此,有学者提出了在线辨识,实时更新等效电路模型参数以保证模型精度。文献[4]提出一种递推最小二乘-扩展卡尔曼滤波(Recursive Least Squares-Extended Kalman Filter,RLS-EKF)算法,其采用递推最小二乘法实现参数的在线辨识后与扩展卡尔曼滤波联合以估算电池SOC,其最小二乘在线辨识没有引入遗忘因子,辨识结果有待改善。文献[5]利用自适应扩展卡尔曼滤波(Adaptive Extended Kalman filter,AEKF)和递推最小二乘法估计开路电压(Open Circuit Voltage,OCV),进而通过SOC-OCV的关系估计电池SOC,试验结果表明该方法有一定的准确性。但递推最小二乘更适用于定常未知参数系统,而电池参数属慢时变系统,递推最小二乘法容易“数据饱和”[6]。为克服参数辨识时的“数据饱和”问题,文献[7]采用含遗忘因子的递推最小二乘与AEKF联合算法,提高了算法跟踪效果,但遗忘因子的选定对算法效果会有一定影响。
基于上述分析,本文提出通过粒子群算法实时优化递推最小二乘遗忘因子,联合扩展卡尔曼滤波实现磷酸铁锂电池SOC估计,旨在进一步提高基于在线模型参数辨识与EKF的联合算法估算电池SOC的准确性。
电池模型是卡尔曼滤波估算电池状态的前提,而二阶RC等效电路模型比一阶RC模型、新一代车辆合作伙伴关系(the Partnership for a New Generation of Vehicles,PNGV)模型等更能反映锂离子电池的内部动态变化情况[8-10]。综合模型精度与算法复杂度,本文选择精度较高的二阶RC等效电路模型,如图1所示。其中:Uoc(t)为开路电压;R0(t)为欧姆内阻;I(t)为工作电流,放电时取正;R1(t)、R2(t)分别为电化学极化内阻和浓差极化内阻;C1(t)、C2(t)分别为电化学极化电容和浓差极化电容[11];U1(t)、U2(t)分别为电化学极化环端电压和浓差极化环端电压;Ut(t)为电池端电压。
图1 二阶RC等效电路模型
根据基尔霍夫电压定律及基尔霍夫电流定律可得等效电路模型的电气关系式为:
由于电池OCV与SOC之间存在确定的函数关系,本文通过试验方法和多项式拟合得到电池SOC-OCV 曲线。针对磷酸铁锂电池存在的中间SOC 值处对应的开路电压变化平坦、两端SOC值处对应的开路电压变化剧烈的特性,设计了分段等SOC间隔试验方法来尽可能获取有代表性的SOC-OCV点,设SOC值为Z,试验方案为:
a.温控箱控制试验环境温度为25 ℃,以1/3 C 倍率恒流充电至截止电压3.65 V后,恒压充电至电流小于4 A,静置1 h;
b.从Z=100%处开始,每次以1/3 C 倍率放掉1.25%容量,静置1 h后记录端电压,重复4次至Z=95%;
c.从Z=95%处开始,以1/3 C 倍率放掉5%容量至Z=90%,静置1 h后记录端电压;
d.从Z=90%处开始,每次以1/3 C倍率放掉10%容量,静置1 h后记录端电压,重复8次至Z=10%;
e.从Z=10%处开始,以1/3 C 倍率放掉5%容量至Z=5%,静置1 h后记录端电压;
f.从Z=5%处开始,每次以1/3 C倍率放掉1.25%容量,静置1 h后记录端电压,重复4次至Z=0。
在上述各SOC处静置1 h后的端电压即可等价为各对应SOC处的OCV,综合考虑过拟合与欠拟合影响,选用6 阶多项式拟合上述试验所得的SOC-OCV 数据点,得出放电SOC-OCV 曲线关系如图2所示,用Uoc表示开路电压,则6阶多项式拟合公式为:
图2 6阶拟合SOC-OCV曲线
式中,a1~a7为多项式系数。
拟合的多项式系数如表1所示。
表1 拟合多项式系数
基于遗忘因子递推最小二乘法(Forgetting Factor Recursive Least Squares,FFRLS)进行参数辨识前,要将二阶等效电路模型离散递推转化为最小二乘基本形式。将式(1)进行拉氏变换:
式中,s为s域上的拉普拉斯算子[12]。
双线性变换公式为:
式中,T为采样周期;z为离散z域上的对应算子,双线性变换即实现连续时间系统与离散时间系统的转换[13-14]。
利用(4)对式(3)进行从s域到z域的映射,得到系统在z域上的传递函数,并将其化简,可得:
式中,θ1,k、θ2,k、θ3,k、θ4,k、θ5,k为k时刻化简代表系数,具体表达式为:
式中,a=R1;b=τ1τ2;c=τ1+τ2;d=R0+R1+R2;e=R0(τ1+τ2)+R1τ2+R2τ1;τ1=R1C1;τ2=R2C2。
Ut(k)为试验记录的端电压值,取y(k)=Ut(k)-Uoc(k),对式(5)离散化可得:
则最小二乘参数向量为θ(k)=(θ1,k,θ2,k,θ3,k,θ4,k,θ5,k)T,数据向量为φ(k)=(y(k-1),y(k-2),I(k),I(k-1),I(k-2))T,I(k)为试验记录的电流值。
θ(k)由递推最小二乘实时估计,进而由式(6)可反求出:
再结合a~e的表达式可得:
遗忘因子递推最小二乘引入遗忘因子λ来调整新、旧数据权重,λ取值接近1,一般取0.95≤λ≤1.00[6]。设增益系数为K(k),参数估计值为θ(k),协方差矩阵为P(k),遗忘因子最小二乘递推方程为:
粒子群优化(Particle Swarm Optimization,PSO)算法作为进化类智能寻优算法,在优化领域应用广泛,本文在遗忘因子递推最小二乘算法上引入PSO算法,以端电压误差最小为优化目标,实时优化遗忘因子,从而提高参数在线辨识的准确性。
适应度函数为:
式中,U(k)为端电压估算值;Uoc(k-1)由(k-1)时刻估算的SOC和SOC-OCV曲线获得。
以遗忘因子λ为优化变量,λ的变化影响增益K(k)与协方差矩阵P(k),以J最小化为目标进行迭代寻优,进而对参数作出最优估计。
卡尔曼滤波只能应用于线性系统,电池模型系统呈现非线性,故无法直接应用卡尔曼滤波进行状态估计,于是有学者提出了扩展卡尔曼滤波方法[15],该方法对非线性系统进行一阶泰勒展开,省去高阶项以达到近似线性化,进而可以利用线性卡尔曼滤波理论的递推公式实现非线性系统的状态估计[16-18]。二阶等效电路扩展卡尔曼滤波估算电池SOC的过程如下:
a.设系统原非线性状态方程为:
式中,x为系统状态变量;u为系统输入量;h为系统输出量;ω为状态噪声;ν为观测噪声。
b.结合式(1),对非线性函数f和g在估计点处进行一阶泰勒展开线性化,系统状态量x=[U1,U2,Z]T,系统输入量u=I,系统输出量h=Ut,则系统离散状态空间为:
其中,A(k)、B(k)、C(k)、D(k)的表达式为:
c.卡尔曼递推过程,其中Q为状态噪声协方差矩阵,R为观测噪声协方差矩阵。
对状态变量估计值x̂和误差协方差矩阵Pe进行初始化:
式中,E为单位矩阵。
状态估计时间更新:
误差协方差矩阵时间更新:
卡尔曼增益矩阵Ke更新:
状态估计测量更新:
误差协方差矩阵测量更新:
含遗忘因子的最小二乘法可以有效改善等效电路模型参数这类慢时变系统的“数据饱和”问题。但针对不同电池和环境,都需要手动挑选出较好的遗忘因子。本文借助粒子群优化算法实时自筛选最佳遗忘因子以应对不同电池及不同使用环境影响下对遗忘因子提出的动态要求,并联合扩展卡尔曼滤波算法实现电池SOC估算,流程如图3所示。
图3 联合算法流程
本文选用的磷酸铁锂电池技术参数为:额定容量100 A·h,单体额定电压3.2 V,充电截止电压3.65 V,放电截止电压2.5 V,充电截止电流4 A,充、放电效率η=0.93。在对电池进行静态容量测试时,取3次试验平均值100.1 A·h,即CN=100.1 A·h,T=1 s。
参照电动汽车电池试验手册对电池进行动应力测试(Dynamic Stress Test,DST),DST工况的周期为360 s,设置70个DST循环,将电池容量从100%放电至10%左右。实际试验中的1个DST周期的电流、电压数据如图4所示。
图4 DST工况电压、电流
基于MATLAB 的m 语言编程实现所提出的在线辨识及SOC 估计算法的仿真。将DST 试验数据同时进行动态优选遗忘因子最小二乘辨识与普通遗忘因子最小二乘辨识。经初步试验,动态优选遗忘因子λ的范围设为0.98~1.00 效果较好。针对普通FFRLS,选择遗忘因子分别为0.95和0.99进行对比,在线辨识端电压误差绝对值对比如图5和图6所示。
图5 λ=0.95与动态λ端电压误差对比
图6 λ=0.99与动态λ端电压误差对比
由图5、图6 可以看出,各算法的端电压误差都很小,端电压跟随较好。总体上,动态λ的端电压误差比λ=0.95和λ=0.99时的端电压误差都小一些:动态λ的端电压最大误差为12.3 mV,平均端电压误差为2.18 mV;λ=0.95时的端电压最大误差为23 mV,平均端电压误差为7.14 mV;λ=0.99 时的端电压最大误差为13.1 mV,平均端电压误差为2.78 mV。
从端电压误差对比来看,动态遗忘因子λ的端电压误差始终处于极低水平,而选择固定的λ时,其端电压误差的差别较大,故针对不同电池或试验工况时,选择合适的λ对端电压仿真结果的影响较大,而动态λ则会自适应保持低误差水平。
将上述在线辨识算法分别与扩展卡尔曼滤波联合估算电池SOC 值,估算结果对比如图7所示,电池SOC估计误差对比如图8所示。
图7 SOC估计值对比
图8 SOC估计误差对比
由图7 和图8 可以看出,采用动态遗忘因子λ的电池SOC总体估计误差水平最低。工况前期,三者的估计误差非常接近,但在1 700 s后,采用λ=0.95的估计算法明显偏离试验结果,估计误差急剧增加,采用λ=0.99的估计算法误差也未能向下收敛而维持在较高误差水平,而采用动态λ算法在1 700 s之后还可以继续收敛误差,误差总体控制效果明显高于2 个定遗忘因子的算法。采用动态遗忘因子λ的电池SOC 估计最大绝对误差为1.48%,平均绝对误差为0.92%;采用λ=0.95的电池SOC估计最大绝对误差为4.05%,平均绝对误差为1.59%;采用λ=0.99的电池SOC估计最大绝对误差为1.97%,平均绝对误差为1.18%。
本文基于磷酸铁锂电池搭建二阶等效电路模型,采用粒子群优化算法自适应更新遗忘因子,结果表明,与传统定遗忘因子算法相比,动态遗忘因子递推最小二乘算法的端电压跟随性更好且误差较低,其与扩展卡尔曼滤波联合对电池SOC进行估计的精度更高。
本文提出的动态遗忘因子递推最小二乘与扩展卡尔曼滤波联合估算电池SOC的算法,与需挑选较优遗忘因子的传统定遗忘因子算法相比,可实现实时自筛选最佳遗忘因子,满足不同电池或不同使用环境下对遗忘因子提出的动态要求。