基于改进无迹卡尔曼滤波算法的动力电池SOC估计模型*

2019-04-03 02:35谈发明王琪
汽车技术 2019年3期
关键词:初值残差精度

谈发明 王琪

(江苏理工学院,常州 213001)

主题词:荷电状态 跟踪 精度 状态检测 动力电池

1 前言

荷电状态(State Of Charge,SOC)估计是车载动力电池管理系统的核心功能之一,SOC无法直接测量,只能通过测量电池其他状态量来间接估计。SOC的估计方法各有优点和应用限制:开路电压结合安时积分法不需要长时间静置电池,但累积误差仍存在[1];基于神经网络理论建立模型预测SOC取得了比较好的效果,但模型中网络拓扑结构难以确定[2],估算结果受样本数据量影响较大[3];内阻法在电池放电后期估计精度较好,但是内阻难以精确测量[4]。实际工程中常用的卡尔曼滤波(Kalman Filter,KF)是一种最优化自回归数据处理算法,实现简单,在修正系统初始误差和抑制系统噪声方面效果较好[5]。

无迹卡尔曼滤波(Unscented Kalman Filter,UKF)算法是KF算法的一种改进形式,该算法针对电池的非线性特性,利用二阶以上精度获取高斯非线性系统状态的后验均值与方差,提高了SOC估计精度且收敛性较好[6],是目前电池SOC估计的一种常见方案。但UKF算法在电池模型误差、状态初值设定误差偏大或出现状态突变等情况时,容易发生鲁棒性变差、估计精度降低及跟踪能力减弱的问题[7]。针对以上问题,文献[8]、文献[9]利用神经网络实时预测并更新电池模型参数,减小模型时变误差对UKF算法估计效果的影响,但未考虑系统状态初值误差的影响。文献[10]提出通过减少采样点数量、减小球面半径确保所有采样点在同一个单位超球体球面上,从而提高算法对初值设定的鲁棒性,并采用平方根滤波提高算法的数值稳定性,但跟踪收敛速度稍慢。文献[11]、文献[12]利用系统观测残差对估计过程中噪声协方差进行自适应修正以提高系统的估计效果,这种方法提升了算法的跟踪能力,但自适应过程容易导致估计波形抖振。

在前述研究的基础上,本文首先利用复合模型建立电池的非线性系统模型并用递推最小二乘法对其参数进行辨识,分析了UKF算法和改进型自适应衰减因子的UKF算法在电池SOC估计中的优缺点,在此基础上引入基于残差特性的状态检测机制,检测到系统异常时引入改进衰减因子方法提升跟踪速度和抗差能力,在跟踪到目标点值或系统未产生异常时,切换到普通UKF算法避免估计结果波动性大带来精度下降的问题。

2 电池建模及参数辨识

2.1 模型的建立

建模研究对象为96节3.7 V、60 A·h的聚合物动力锂电池串联构成的电池组,为了提高电池非线性特性,合并常用的Shepherd模型、Unnewehr Universal模型及Nernst模型,并将函数同项删除,得到复合模型,复合模型在拟合精度上更具优势[5]。结合安时计量法,可得到电池观测模型方程。

状态方程为:

式中,xk为k时刻的SOC值;ik为k时刻采样得到的电池电流;η为充电效率;C为电池的额定总容量;Δt为采样周期。

观测方程为:

其中,E0为电池开路电压;R为电池内阻;k1、k2、k3、k4为拟合系数;yk为k时刻采样得到的电池端电压。

2.2 参数的辨识

最小二乘法在未知观测数据概率统计信息时的结果具有很好的统计特性。本文采用递推最小二乘法辨识式(2)模型参数,该方法要求系统输入量为持续激励[13]。路况复杂度较高的单循环城市道路循环(Urban Dynamometer Driving Schedule,UDDS)工况下采集到的测试数据能够满足激励要求。在UDDS工况下以1 s的采样周期采集电池数据,图1a、图1b所示为采集到电池的电压和电流样本数据,在大多数情况下电池处于小电流充、放电状态;图1c所示为实测的电池SOC样本数据,SOC变化整体呈缓慢下降趋势。

针对式(2),取数据矩阵为 Hk=[1 ik1/xkxkln(xk)ln(1-xk)],待估参数矩阵为θ̂k=[E0R k1k2k3k4],最小二乘形式为yk=HTkθ̂k+ek,其中ek为误差。递推计算公式为:

式中,Kk为增益矩阵;Gk为协方差矩阵。

图1 数据采集及辨识结果

具体辨识步骤为:

a. 初始值设置:待估参数矩阵初始值θ̂0=[10-310-310-310-310-310-3],协 方 差 矩 阵 初 始 值G0=107I6,I6为6阶单位矩阵。

b. 先根据采样数据得到算法的当前输入yk、ik及输出xk,再确定 Hk。

c. 用式(3)迭代计算k时刻θ̂k、Kk和Gk。

d.判断是否达到最大迭代次数,若未达到则返回步骤2,否则返回结果θ̂=[E0R k1k2k3k4。]

从图1d参数辨识结果可知,参数E0、R、k1、k2、k3、k4辨识曲线有相似收敛特性,均在迭代1 000次后趋于稳定,直至收敛。表1所示为辨识得到的各参数稳定值。

表1 各参数辨识结果

根据表1的辨识结果建立电池非线性模型并进行仿真验证,以绝对误差AE、相对误差RE,平均相对误差MRE及均方根误差RMSE评价模型的准确性:

式中,yj为样本观测值;ŷj为样本估计值;l为样本数。

UDDS工况下仿真结果及其相对误差如图2所示。

图2 UDDS工况端电压仿真结果及相对误差

由图2可知,模型仿真电压变化趋势与实测电压基本保持一致,均方根误差为0.1%,平均相对误差为0.08%,最大绝对误差为1.418 4 V,说明复合模型参数辨识结果在UDDS工况下精度高,辨识方法可行有效。

3 基于UKF算法的电池SOC估计

UKF算法利用无迹变换修正非线性卡尔曼滤波,可以把均值和协方差逼近到3阶的泰勒级数[1]。定义状态变量维数为1的电池非线性系统模型为:

式中,wk、nk分别为电池测量时产生的均值为0的系统和量测高斯白噪声。

wk、nk的协方差矩阵分别为Qk和Rk,设定初值Q0=10-6I1、R0=10-3I1,其它滤波参数初值定义如下:

式中,x̂0为SOC的初始估计值,是系统初始状态值;P0=10-2I1为状态误差协方差矩阵初值。

算法递推估计SOC的过程为:

a. 计算采样点。选取(2n+1)个Sigma点作为粒子点,为解决异常情况下Pk-1失去正定性而无法使用Cholesky分解的问题[14],本文基于奇异值分解计算Sigma点,即使用比例修正的采样策略为:

式中,Sk-1为由Pk-1的奇异值构成的对角矩阵;Uk-1和Vk-1为酉矩阵。

根据输入变量的统计信息,采用Sigma点对称采样策略所对应的权重定义为:

b.更新状态的一步预测值和方差:

c.测量更新:

d.变量和协方差修正后计算估计值:

式中,vk=yk-ŷk|k-1为系统观测残差。

图3所示为在UDDS工况下设定不同的SOC初值时UKF算法的跟踪能力和估计精度的仿真验证结果,标准参考值的变化趋势说明电池实际SOC呈缓慢下降趋势,由于汽车再生制动过程会对电池进行能量回馈,导致SOC时而呈现出小幅增加突变或缓变的情况。

图3 不同SOC初值下UKF估计结果

估计结果表明,不同的SOC初始值选取对UKF算法影响较大,UKF算法状态初值误差的修正能力较弱,初始误差越大,跟踪效果越差,因为在系统平稳状态时,增益矩阵K会趋于极小值,当系统受各类干扰时,虽然残差vk会增大,但K不会随之发生剧烈变化。然而,UKF算法在电池模型精确度较高的条件下跟踪上目标以后的估计精度较好。

4 UKF算法改进分析

4.1 引入自适应衰减因子

UKF算法除受系统状态初值设定误差的影响,还会受到其他诸多因素干扰产生模型误差,导致估计效果变差,本文根据残差协方差匹配原理,引入改进自适应衰减因子更新观测误差及互误差协方差矩阵,使系统具有较好的跟踪速度和精度。

定义的残差协方差阵为:

改进型衰减因子为:

式中,tr[]为矩阵的迹。

引入自适应衰减因子的UKF算法在电池SOC估计中应用容易出现波动性大甚至引起发散的问题,需设定衰减控制系数μ,μ的取值对估计效果的影响较大,通常取值远小于1。

修正后的测量更新为:

UKF算法中引入改进的衰减因子能够有效平衡状态方程预测与观测信息的权重比,而且能够在一定范围内控制模型或设定的状态初值误差对滤波效果的影响。

图4所示仿真结果说明衰减控制系数μ的选取对滤波结果有较大影响:取值越大,跟踪能力越强,但滤波精度随着取值增大而减少;取值越小,滤波精度越高,但会影响跟踪收敛速度,不能及时跟踪到目标。

图4 衰减系数μ对SOC估计结果的影响

4.2 状态检测机制

SOC初始值的设定对UKF算法的影响较大,但只要能跟踪到目标,即可在建立的模型精确度高的条件下实现理想的估计精度,而引入改进自适应衰减因子的UKF算法受衰减控制系数μ的影响较大,在精度和跟踪能力之间存在矛盾。为了提升估计精度,提高系统抗差及跟踪能力,本文引入了状态检测机制,当算法检测到观测残差vk偏大时,引入自适应衰减因子UKF算法对系统进行滤波跟踪估计。

具有调节功能的异常状态检测常采用残差χ2假设检验的方法,利用残差的统计信息对系统异常进行检测。但是,由于UKF算法自身有一定的鲁棒性,特别是对于小幅变化和缓变情况,残差χ2假设检验难以有效地进行检测,尤其是当残差取值过小时,该方法的表现欠佳[16]。本文采用了一种改进的基于残差特性的观测量异常状态检测方法对状态异常情况进行判别,检测判断条件为:

式中,ζ为检测量控制系数,通常取ζ≥100。

当式(17)成立时,表明对应系统状态存在异常。

引入状态检测机制时后,需要对衰减因子的上限λmax进行约束,否则也会出现估计波形剧烈振动的问题,通过仿真研究分析得出,λmax的上限在15~20范围内较为合适。

4.3 算法实现步骤

针对式(5)、式(6)定义的车载动力电池的非线性系统,提出的改进型UKF算法流程如图5所示。本文改进部分的核心思想是依据状态检测机制的判断结果对UKF算法测量更新部分的协方差矩阵Pyy,k和Pxy,k采用不同的衰减策略。

图5 改进型UKF算法实现流程

5 仿真验证与分析

为了验证改进后的UKF算法对车载电池SOC估计的精度、跟踪能力、鲁棒性以及泛化能力,本文从算法收敛性、多种算法测试对比、变工况验证等多角度进行研究分析。仿真中取μ=10-5,λmax=15,ζ=104。

5.1 算法收敛性分析

测试改进型UKF算法在估计SOC时对初值设定的依赖程度、响应时间以及收敛性能。SOC初值假定分别为0.5、0.6、0.8、0.9,图6描述了在不同SOC初值设定条件下,改进型UKF算法能的收敛能力。

图6 算法收敛过程

由图6可知,在第6个采样点左右,所有曲线均收敛于参考值,收敛速度快,算法反应时间短。因为在初值设定误差偏大时,系统残差增大,当检测到异常时,自动引入自适应衰减因子的方法跟踪估计,跟踪到目标值后,为了防止估计波形剧烈波动,自动切换到普通UKF算法跟踪估计,改进方法能很好地克服UKF算法对初值设定敏感的问题,而且保证了估计精度。

5.2 方法改进对比测试

利用改进型UKF算法分别与目前研究较多的UKF算法以及ST-UKF(Strong Tracking UKF)算法在相同条件下的估算结果进行对比,SOC初值设定为0.5,图7所示为3种算法的估计结果。

图7 不同算法估计结果比较

UKF算法在第900 s左右跟踪到目标,跟踪速度稍慢,跟踪到目标后精度较高,平均相对误差为2%;STUKF算法的跟踪能力很强,但在第700 s前估计波形波动性较大,平均相对误差为1.1%;改进型UKF算法跟踪速度与ST-UKF算法相仿,在起始点超调量稍大,但跟踪到目标后与参考曲线贴合最好,平均相对误差为0.2%。故改进型UKF算法的估计精度最高。

5.3 变工况验证

利用改进型UKF算法分别在纽约城市循环(New York City Cycle,NYCC)工况和西弗吉尼亚州际行车(West Virginia Interstate Driving,WVUINTER)工况下进行测试,检验算法鲁棒性和泛化能力。

利用3.1节建立的电池非线性模型对这两种工况的电压和误差进行仿真对比,结果如图8、图9所示。表2所示为两种工况模型误差指标的验证结果。

图8 NYCC工况端电压实测与仿真比较

两种检验工况的模型验证结果与UDDS工况相比精度较差,WVUINTER工况的最大绝对误差AE甚至达到了35 V左右,说明固定的电池模型参数辨识结果在不同测试工况中准确度存在较大差异。

NYCC工况下不同算法估计结果如图10所示。STUKF算法在前阶段和后阶段的预测能力较好,而在中间阶段SOC参考值小幅缓变,电池能量回馈较多,在模型精确度不够的情况下为了能及时响应跟踪而产生了较大的波动性;UKF算法由于初值设定误差较大,仿真结束时未能跟踪到目标。

WVUINTER工况下不同算法估计结果如图11所示。改进型UKF算法和ST-UKF算法收敛快,跟踪能力强,但ST-UKF算法在SOC波形第200 s前的小幅突变和第1 580 s左右的大幅突变处估计结果产生较大的波动;UKF算法滤波波形平滑,收敛慢,精度较低。

图9 WVUINTER工况端电压实测与仿真比较

表2 模型验证结果对比

图10 NYCC工况下不同算法估计结果比较

图11 WVUINTER工况下不同算法估计结果比较

仿真平均相对误差结果如表3所示。误差数据充分说明改进型UKF算法的优异性能,在SOC初始值误差较大且变工况模型存在误差的情况下,改进型UKF算法跟踪速度和精度优势明显,能说明算法的有效性及泛化性能。

表3 平均相对误差MRE结果对比 %

6 结束语

本文介绍了电池非线性复合模型的建立方法,利用递推最小二乘法对电池模型参数进行了辨识和验证,分析了UKF算法和基于改进自适应衰减因子UKF算法的优、缺点,引入状态检测机制形成最终的改进型UKF算法。变工况验证结果表明,该算法对电池SOC的估计精度和抗差能力有了很大提高,跟踪速度可满足电动汽车使用要求。该算法不足之处在于消除误差积累的能力以及对连续多点强干扰的跟踪能力有待进一步提高。

猜你喜欢
初值残差精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于残差-注意力和LSTM的心律失常心拍分类方法研究
融合上下文的残差门卷积实体抽取
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用
美国三季度GDP初值创两年最高
《吉普林》欧元区经济持续低迷
以工匠精神凸显“中国精度”
浅谈ProENGINEER精度设置及应用