王志福, 刘兆健, 李仁杰
(1.北京电动车辆协同创新中心,北京 100081;2.北京理工大学 电动车辆国家工程实验室,北京 100081)
电池模型的参数辨识是SOC估计的基础. 目前主流的参数辨识方法可以分为两类:离线参数辨识方法和在线参数辨识方法. 因为电池参数对电池的状态非常敏感,所以当电池的老化或工作状态发生改变时,离线参数辨识方法的估计精度就会下降. 在线参数辨识方法可以利用实时测量的电压和电流数据来计算模型的参数,还可以利用荷电状态的估计结果为荷电状态估计算法提供反馈,从而实现参数辨识与状态估计的闭环估计系统,进而可以针对电池不同的老化情况和工作状态,实现准确的预测性能[1-2].
带遗忘因子的递推最小二乘法(RLS)是最常用的在线参数辨识方法,但是在实际使用中,带有有色噪声的系统输入信息会导致RLS的辨识结果是有偏的,这会降低模型的准确性[3-4],为了克服这一局限性,应用BCRLS进行模型的在线参数辨识,从而抑制有色噪声对参数辨识结果的干扰.
本文在上述研究的基础上,选择3.7 V / 2.4 A·h LiB作为研究对象. 基于Thevenin模型,将BCRLS方法与AEKF算法相结合,用于估计电池的参数和SOC. 它可以根据噪声信息自适应修改状态估计值. 利用仿真实验与硬件在环实验对算法进行验证,结果表明算法具有较高的精度和较强的鲁棒性,明显地提高了对有色噪声数据的估计效果.
综合考虑了电池模型精度、参数识别复杂程度、可操作性等多个因素后[5],本文选用了Thevenin模型作为电池模型,如图1所示.
结合图1和基尔霍夫电压和电流定律,取放电为正,并以模型中极化电压Up为状态建立Thevenin模型,可得出:
(1)
式中:Ut为电池端电压;Uoc为电池开路电压;I为电流(取放电电流为正);RO为欧姆内阻;Rp和Cp分别为极化内阻和极化电容.
① 获取SOC-OCV曲线. 选取SOC从0~100%的11个点作为标定点. 分别拟合电池充放电的SOC-OCV曲线,并拟合其求平均后的曲线. 求得平均之后SOC-OCV的关系方程为
Uoc=6.292-6.713z+7.821z2-3.412z3+
0.036 54/z+1.223lnz-0.030 88ln(1-z),
(2)
式中:Uoc为电池开路电压;z为电池SOC.
② 将电池模型方程离散化并化简为最小二乘法的标准形式. 使用双线性变换法将方程离散化:
(3)
Ut(k)-Uoc(k)=
[Ut(k-1)-Uoc(k-1)I(k)I(k-1)]×
[b1b2b3]T+e(k)=
hT(k)θ(k)+e(k),
(4)
(5)
③ 算法递推. 本文针对模型参数识别中的有色噪声问题,对带遗忘因子的RLS方法进行改进,应用BCRLS算法进行动力电池模型的参数辨识[6-7].
考虑式(1)的模型,若e(t)是与输出不相关的有色干扰噪声,则其算法的递推过程如下.
① 预测系统输出和估计误差计算:
② 增益矩阵计算:
K(k)=P(k-1)h(k)[λ+hT(k)P(k-1)h(k)]-1.
③ 未考虑噪声干扰的参数估计:
④ 误差准则函数计算:
J(k)=λJ(k-1)-λe2(k)/
[λ+hT(k)P(k-1)h(k)].
⑤ 噪声方差估计为
⑥ 相关矩阵D取:
⑦ 更新协方差矩阵P为
P(k)=[I-K(k)hT(k)]P(k-1)/λ.
⑧ 进行偏差补偿后的估计值为
首先对动力电池模型公式(1)进行离散化,等效电路模型的离散化方程为
动力电池SOC的离散化方程为
zk=zk-1-ηIkΔt/Ca.
(7)
式中:z为电池的SOC;η为动力电池的充放电效率,本文取1;Ca为电池在当前条件下的最大可用容量;Δt为采样时间间隔.
将式(6)与式(7)合写在一起,有
(8)
系数矩阵为
Dkh(xk,uk)-Ckxk=Uoc,k-
Up,k-IkRp-Ckxk.
(9)
根据AEKF算法将系数矩阵带入得到的模型SOC估计的递推过程.
① 先验估计为
② 预估误差协方差矩阵为
③ 新息矩阵为
④ 滤波增益矩阵为
⑤ 自适应噪声协方差匹配为
⑥ 更新误差协方差矩阵为
⑦ 后验估计为
在使用BCRLS进行参数辨识时,对模型离散化后,Ur=Ut-Uoc作为输入量参与最小二乘计算,其中Ut为测量值,Uoc与SOC的关系曲线可通过实验测得. 可以看出Ur不仅受测量值Ut的影响,同时受到SOC的影响,在实际应用中,电池的SOC值不断变化,Uoc随之变化便导致了计算过程中的输入量Ur的变化,其中SOC值在BCRLS计算中无法获得,本文中使用AEKF进行状态估计,为参数的在线辨识提供状态数据.
在在线辨识中,每个循环辨识过程都可以为状态估计过程提供相对准确的参数,同时AEKF的估计结果SOC也可作为参数辨识的数据参考,因此采用了BCRLS-AEKF的联合辨识方法,以适应不同的工况,提高参数辨识和状态估计的精度和效率. 辨识流程如图2所示.
联合辨识的参数初值可以利用之前离线辨识相应的SOC点的辨识数据,作为参数初值. 遗忘因子λ、过程噪声协方差Q、量测噪声协方差R以及初始协方差PO的选取根据不同的工况略有差异. 在辨识过程中,BCRLS为AEKF估计提供参数更新,AEKF为BCRLS提供相对准确的SOC值. 即两种算法的输出值能够作为更新彼此估计值的输入信息,从而提高辨识和估计的精度[8].
为了对本文所提出的算法进行真实、全面、深入的验证,在Matlab中搭建了控制算法,并将控制算法生成代码移植到快速开发原型里,将BMU实时测量的电池数据发送给快速开发原型,以快速开发原型为BCU,这样就组成了一套简单的BMS系统. 将这套BMS放在迅湃BMS测试系统上进行测试验证,BMS测试系统可以模拟单体电池输出,能够重复输出采集到的真实电池数据,从而在重复实验中保证每次实验的电池输出数据一致,排除不受控变量的干扰. BCU的计算结果通过CAN通信发送给数据接收端,完成数据的记录,为下一步的数据分析奠定了基础.
利用电池的DST工况数据验证算法的效果,并通过对工况数据做以下处理以验证算法在有噪声干扰特别是有色噪声干扰时的鲁棒性,对工况数据的处理方式为:不添加噪声干扰(用作参照);添加高斯白噪声干扰;添加有色噪声干扰.
图3~图5为使用不同数据进行参数辨识时RLS算法和BCRLS算法的端电压误差结果对比.
在原始DST工况数据下,BCRLS算法噪声补偿部分没有发挥出太大作用,RLS算法与BCRLS的误差相差不大,在电池SOC从10%~100%区间范围内,BCRLS估计得到的端电压误差基本保持在5 mV以内. 当电池的SOC低于10%之后,算法输出的端电压误差急剧增大,这是因为当电池SOC过低时,电池的内部化学反应不稳定导致电池各项参数剧烈变化,这时戴维宁模型难以描绘电池的状态,因此导致误差增大.
当工况数据被添加噪声后,相比于RLS算法,BCRLS算法更加稳定且误差更小,端电压误差均保持在50 mV以内,特别是在添加有色噪声后,BCRLS算法的提升效果更加明显,虽然含有待辨识参数的参数矩阵已经得到准确的辨识值,但因为数据输入矩阵引入了较大的噪声,所以端电压误差仍较大,从下文的SOC估计结果中可以更直观地看到BCRLS算法在数据带有噪声的情况下表现更好.
本文选用DST循环工况验证联合估计算法的准确性,实验精度用相对误差来评价. 图6是在前面所述三种误差情况下分别基于两种辨识算法进行SOC估计的结果对比图. 从图6(a)中可以发现,在没有噪声干扰的情况下,基于两种辨识算法的SOC估计误差都较小而且非常平稳,但是基于BCRLS算法的SOC估计值稳态误差更小;从图6(b)和图6(c)中可以看出,在噪声干扰下,基于RLS算法的SOC估计值已经出现了波动,在白噪声干扰下误差还能保持在1%以内,但是在有色噪声干扰下SOC估计值偏差非常大,相较而言,基于BCRLS算法的SOC估计值仍然非常稳定,而且误差仍能保持在0.5%以内. 这充分证明了BCRLS算法对于噪声有着明显的抑制效果,这一效果在有色噪声下更加明显.
图7为给予AEKF算法一个错误初值后的SOC误差曲线. 图7(b)为给予初值后30s内的SOC误差曲线,从中可以看出,即使SOC初值设定不准确,算法仍然可以基于数据反馈非常快地收敛到SOC准确值,这证明算法对于初值设定不敏感,有较强的鲁棒性.
图8为在硬件在环实验中的误差结果,在硬件在环实验中,由于传感器的原因,采集得到的数据会存在采集误差,因而导致辨识得到的端电压误差和SOC估计误差在一定程度上上升,但SOC估计值仍具有较高的精度,SOC估计误差保持在1%以内. 总体来看,基于Thevenin模型的BCRLS-AEKF算法估计SOC可以满足电动汽车电池管理系统的要求.
为解决在有色噪声干扰下传统的RLS算法进行电池参数辨识时有较大误差的问题,本文提出利用BCRLS算法进行电池的在线参数辨识,通过与传统的RLS算法对比发现,BCRLS算法可以有效抑制有色误差,并明显提高辨识精度. 将BCRLS算法与AEKF算法相结合,在准确估计模型参数的基础上实现对SOC的估计,在三种噪声情况下,相比RLS-AEKF算法,BCRLS-AEKF算法的稳定性和准确度均更高. 为了验证算法的可靠性,将控制算法写入BMS中,借助BMS测试系统对算法进行了全面真实的验证. 在DST工况下算法输出的SOC估计值绝对误差在1%以内,能够满足电池管理系统的需求.