APP下载

基于BCRLS-ACKF的锂离子电池荷电状态估计

2021-11-19高怀斌李争光李洪峻刘剑飞佐晓波纪林林

储能科学与技术 2021年6期
关键词:协方差噪声电池

苏 航,高怀斌,李争光,李洪峻,刘剑飞,佐晓波,纪林林

(1西安科技大学机械工程学院,陕西西安 710054;2中国人民解放军 32181部队,陕西西安 710032)

目前,锂离子电池以其比能量高、体积小等优点被广泛应用于电动汽车动力电池领域。动力电池作为电动汽车的动力来源,对汽车动力和安全性起着至关重要的作用,是制约电动汽车发展的主要因素[1]。电池管理系统作为动力电池的核心技术之一,能够实时地监测管控动力电池的工作状态,防止其出现过充、过放的现象,并确保其工作在合理的温度区间内,使动力电池发挥出最大效能[2]。SOC作为电池管理系统的关键状态参数,不仅反映了电动汽车剩余续驶里程,还能够为其他状态参数提供数据支持。在实际应用中,由于动力电池很强的非线性特征(电池内部参数受温度、内阻和循环次数等诸多因素的影响且随着这些因素的改变呈现出非线性变化趋势)和工作环境的复杂性使得精确估计SOC成为了难点。

常用的SOC 估计方法有开路电压法、安时积分法、基于模型的方法以及基于数据驱动的方法[3]。开路电压法简单易行,但需要对电池进行长时间静置处理以获得稳定的开路电压值,难以适用于汽车实际运行工况,一般用于实验室研究[4]。安时积分法计算简便,应用较为广泛,但对初始值和传感器精确度要求较高,且存在误差累积等问题[5]。基于数据驱动的方法通过电池和电压等历史数据进行充分训练学习后建立电流、电压和SOC 的映射关系[6],其估计的精确性依赖于训练数据和训练方法,在实际中应用较少。基于模型的方法主要应用的是卡尔曼滤波类算法。Li 等[7]采用扩展卡尔曼滤波算法(EKF)进行SOC估计,EKF对非线性函数采用泰勒展开后只保留一阶项的方式来达到线性化的目的,会产生截断误差。魏孟等[8]将高斯过程回归和无迹卡尔曼滤波算法(UKF)相结合用来估计电池SOC,相较于EKF 估计精度有所提高。Peng 等[9]将模糊控制器引入容积卡尔曼滤波算法(CKF)中以修正其增益矩阵,降低模型误差对SOC 估计精度的影响,但其系统噪声被看作是恒定的,这可能会导致滤波发散,同时没有考虑不确定性噪声对参数辨识的影响。

针对上述问题,本文采用偏差补偿最小二乘法(BCRLS)进行在线参数辨识,以减小由噪声引起的估计误差。辨识完成后采用自适应容积卡尔曼滤波算法(ACKF)估算电池SOC,ACKF 能够对系统和过程噪声进行实时修正从而提高SOC 估计精度。同时,利用奇异值分解的方法代替Cholesky分解,提高了数值计算的稳定性。最后将两种算法相结合,实现了模型参数和SOC的联合估计。

1 电池建模及在线参数辨识

1.1 电池建模

目前,常用的等效电路模型有Rint模型、戴维南模型、二阶RC 模型和PNGV 模型等[10]。电池模型的合理选取是实现SOC 精确估计的前提,综合考量模型精确度和计算的复杂度后,本文选用如图1所示的二阶RC等效电路模型[11]。

图1 二阶RC等效电路模型Fig.1 Second-order RC equivalent circuit model

基于基尔霍夫电压和电流定律可得模型的状态方程

式中,Uoc为电池开路电压;U为电池端电压;U1、U2为极化电压;R0为电池欧姆内阻;R1、R2和C1、C2分别为极化内阻和极化电容。

1.2 在线参数辨识

在电动汽车运行中,电池的工作环境较为复杂,其内部参数也在时刻发生变化,离线辨识的参数不能够实时更新,将导致SOC 估计精度出现较大误差。在线参数辨识基于当前时刻采集的电流电压信息和上一时刻的状态估计值来实时更新模型参数,能够提高动力电池SOC估算精度[12]。

由模型空间状态方程(1)可得频域下状态方程

令E(s)=Uoc(s)-U(s),可得系统传递函数

对式(3)进行双线性变换

式中,k1、k2、k3、k4、k5为包含电池模型参数的常数。

整理式(5),可得离散化后的标准最小二乘法形式

将θ(k)作为待辨识参数,利用上述公式反推即可得到电池模型的各个参数。

常用的在线参数辨识方法主要以递推最小二乘法(FFRLS)为主。但在电动汽车运行过程中,电池电流、电压的采集常伴随有不确定性噪声信号,这会导致FFRLS 的辨识结果出现有偏现象。针对此问题,本文在FFRLS 的基础上添加偏差补偿项,采用BCRLS 进行在线参数辨识以减弱不确定性噪声带来的影响[13],其计算过程如下。

计算算法增益矩阵

计算估计误差

参数估计

计算误差准则值

更新噪声方差

其中矩阵D为

更新协方差矩阵

进行偏差补偿后的参数估计值

2 基于BCRLS-ACKF 算法的SOC估计

以U1、U2和SOC为状态向量,Ik为输入,端电压Uk为输出,由电池模型状态方程和安时积分法可得到适用于容积卡尔曼滤波算法的状态方程,如下

式中,SOCk表示k时刻的电池荷电状态;T为采样时间;Cn为电池的额定容量;Uoc,k(SOC)表示由k时刻SOC值求得的Uoc值。

2.1 自适应容积卡尔曼滤波算法

EKF算法通过对非线性函数进行泰勒级数展开使之线性化,舍弃高阶项的同时带来了截断误差。UKF 算法利用无迹变换产生的Sigma 点的高斯密度来近似状态方程的概率密度函数,其估计精度能达到三阶泰勒展开精度[14]。CKF 算法基于球面-径向容积准则,相较于UKF 有着更为严谨的数学理论作支撑,且采样点数目较少,计算量小,滤波精度更高[15]。但在算法迭代过程中,由于计算机的截断误差等因素会使得协方差矩阵失去正定性从而导致Cholesky 分解无法进行。因此,本文采用奇异值分解的方法代替Cholesky 分解,以提高数值计算的稳定性[16]。

基于奇异值分解的容积卡尔曼滤波算法估计SOC的步骤如下。

(1)点集和权值计算

式中,i=1, 2, …,m。m为容积点个数,m=2n,其中n为状态向量维数。Ai表示矩阵A的第i列,A=[In×n,-In×n]。本文n=3,则

(2)状态更新

对CKF算法的协方差矩阵Pk-1进行奇异值分解

式中,U和V分别为P的左、右奇异向量,S=diag(s1,s2⋅⋅⋅st),为矩阵P的奇异值。

通过状态方程传播后的容积点

状态预测

协方差预测

(3)量测更新

对Pxx进行奇异值分解

计算容积点

通过测量方程传播后的容积点

量测预测

协方差预测

互协方差预测

(4)更新增益矩阵

(5)更新状态向量

(6)更新状态协方差矩阵

在标准的CKF 算法中,过程噪声和量测噪声均被看作是恒定值,而实际工程中,由于系统随机干扰和电池的时变特性等因素会导致过程噪声和测量噪声发生变化,这种情况下CKF 算法的精度会相应降低。因此,本文引入自适应协方差匹配思想,即利用真实测得的电压与模型输出电压的新息序列对过程噪声和测量噪声协方差进行实时更新,以提高SOC的估计精度。

由开窗估计原理计算新息协方差矩阵

式中,M为开窗大小,ek为k时刻的系统信息。更新噪声协方差

2.2 BCRLS算法与ACKF算法联合估计SOC

BCRLS在线辨识算法能够实时更新模型参数,通过偏差补偿的方式有效解决不确定性噪声对模型参数辨识的干扰,并将辨识得到的参数提供给ACKF 算法用以估计电池SOC。ACKF 算法完成SOC估计后将其估计值反馈给BCRLS算法用于实时修正开路电压值,解决了在参数辨识时由于SOC值不准确导致开路电压计算误差较大的问题,提高了模型参数辨识精度,从而进一步提高SOC估计精度。BCRLS-ACKF 算法的流程图如图2所示。

图2 BCRLS-ACKF算法流程图Fig.2 Flow chart of BCRLS-ACKF algorithm

3 实验验证

为了验证BCRLS-ACKF算法估计SOC的有效性和精确性,本文采用18650单体电池测试数据来进行验证。为了降低电池本身对实验测试数据的影响,每次测试前将电池电量放空并静置至端电压达到稳定值,再采用恒流恒压的方式将电池充满并静置。静置后进行恒流放电,放电至电池容量为80%,放电完毕且充分静置(电池内部化学反应完全结束)后再加载不同工况进行测试。每个循环测试过程保持环境温度恒定为25 ℃,并且忽略电池老化对实验测试结果产生的影响。

为了更好地模拟电动汽车实际行驶工况,本文选用DST 和BJDST 两种工况来验证算法在不同工况估计SOC 的精确性。实验在恒温25 ℃条件下(SOC 初始值为80%)进行。图3(a)、(b)分别为两种不同工况下电池的测试电流曲线。

图3 不同工况电流Fig.3 Current under different working conditions

本文分别采用FFRLS和BCRLS算法来进行在线参数辨识,辨识得到的具体参数如表1所示。

表1 不同算法的参数辨识结果Table 1 Parameter identification results of different algorithms

本文采用端电压绝对误差来表征两种算法的精度,如图4 所示。可以看出,BCRLS 算法辨识得到的端电压绝对误差明显小于FFRLS 算法。前者估计误差在0.032 V 以内,后者估计误差在0.02 V以内。另外,在放电后期由于电池内部化学反应的不稳定会使得误差增大,但总体上BCRLS 算法能够有效降低噪声对参数辨识造成的影响。

图4 在线参数辨识Fig.4 Online parameter identification

通常以SOC 估计值与真实值的绝对误差来描述算法的精确性。本文在DST 和BJDST 工况下采用BCRLS-ACKF 算法进行SOC 估计,结果如图5所示。从图5可知,不同工况下本文提出的基于奇异值分解的BCRLS-ACKF 算法的估计值能够很好地跟随真实值变化,可以实现SOC 的精确估计。从图6 可知,算法的估计误差始终控制在3.5%以内。在DST 工况下最大绝对误差为3.49%,平均绝对误差为0.67%;BJDST 工况下最大绝对误差为2.68%,平均绝对误差为1.29%。能够适用于汽车行驶工况下的SOC估计。

图5 不同工况下SOC真实值与估计值对比Fig.5 Comparison of SOC real value and estimated value under different working conditions

图6 不同工况下的绝对误差Fig.6 Absolute error under different working conditions

由以上分析可知,当SOC 初始值准确时,在不同工况下BCRLS-ACKF算法均能够满足SOC估计精度要求。但在实际应用中,准确的SOC 初始值通常难以获取。因此本文将SOC 初始值分别设置为90%和50%(真实值为80%)用于验证在SOC初始值不准确条件下的估计精度,估计结果如图7所示。从图中可知,当初始值设置为90%和50%时,在起始阶段SOC 估计误差较大,经过短暂的时间间隔后均可以收敛到真实值附近且绝对误差始终保持在4%以内。另外,由于50%初始值偏离真实值较大,故与90%初始值相比其收敛时间略长。

图7 初始值不精确时的估计结果Fig.7 Estimation results with inaccurate initial values

为了进一步验证本文所提算法的估计精度,在DST 工况下分别采用不同的算法进行SOC 估计,结果如图8所示。从图中可知,几种算法均能较准确地实现SOC 估计,其精度均在4%以内。其中,BCRLS-CKF 算法相比FFRLS-CKF 算法有效降低了噪声的影响,精度有所提高。BCRLS-ACKF 算法相比BCRLS-CKF 算法提高了噪声的自适应性,估计结果更优。另外,与同属近似非线性函数概率密度方法的UKF 算法形成的BCRLS-AUKF 算法相比,仍具有更高的估计精度。这充分说明了本文所提BCRLS-ACKF算法估计SOC的精确性。

图8 不同算法估计结果对比Fig.8 Comparison of estimation results of different algorithms

本文采用最大绝对误差(Max-AE)、平均绝对误差(MAE)和均方根误差(RMSE)三个指标来对不同算法进行对比分析,其结果如表2 所示。可见,本文所提BCRLS-ACKF 算法的Max-AE 值比其他算法略有减小,为3.49%。MAE值有大幅降低,为0.65%。RMSE 值也均小于其他算法,为0.85%。由此可以说明本文所提算法具有较高的精度。

表2 不同算法的估计误差Table 2 Estimation errors of different algorithms

4 结论

锂离子电池SOC估计是BMS最核心的功能之一,其估计精度同时取决于模型参数辨识和SOC估计算法二者的精度。本文基于二阶RC 等效电路模型,采用BCRLS算法对模型参数进行在线辨识,减弱了不确定性噪声带来的影响,提高了辨识精度。在估计算法方面,采用ACKF 算法估计SOC,实现了对过程噪声和测量噪声的实时更新,提高了估计精度。在算法迭代过程中,采用奇异值分解代替Cholesky 分解,提高了数值计算的稳定性。最后将BCRLS 与ACKF 相结合实现了模型参数和SOC 的联合估计。结果表明,本文提出的基于奇异值分解的BCRLS-ACKF 算法在不同工况和初始值不精确情况下均能精确地实现SOC 的估计,估计误差在2%以内,可以满足实际的应用需求。

猜你喜欢

协方差噪声电池
电池很冤
“一粒盐电池”
把电池穿身上
穿在身上的电池
噪声可退化且依赖于状态和分布的平均场博弈
用于检验散斑协方差矩阵估计性能的白化度评价方法
控制噪声有妙法
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器