APP下载

基于无迹Kalman滤波算法的动力电池荷电状态估计

2020-10-21陈德海王昱朝朱正坤邹争明

汽车安全与节能学报 2020年3期
关键词:倍率容量工况

王 超,陈德海,王昱朝,朱正坤,邹争明

(江西理工大学 电气工程与自动化学院,赣州 341000,中国)

随着电动汽车技术的快速发展,电池管理系统成为研究热点。如何准确快速的估计电动汽车的荷电状态(state of charge,SOC)至关重要,它是电动汽车剩余里程、电池组的均衡及保护等功能的重要参考依据。锂电池SOC受电池的老化程度、充放电电流倍率、温度、自放电率等因素影响,各变量之间具有很强的非线性映射关系,难以直接测量。目前常见SOC预测方法主要分为传统的算法和智能算法,前者主要由开路电压(open circuit voltage, OCV)法和安时积分法(Ampere hour integration method, Ah)以及Kalman滤波算法,后者主要包括有神经网络算法和支持向量机算法等[1]。

用OCV来预测SOC,是工程应用上十分常见的一种算法。其程序结构简单,只需要将事先测量的SOC-OCV拟合曲线制成二维数表,然后再利用查表法快速得到电池的当前荷电状态。但是由于电动汽车的电压传感器测量的是电池的端电压,并不等于开路电压。文献[2]通过对电池放电曲线及恢复曲线分析,用放电停止后的某时刻电压估计电池的开路电压结合电池等效模型,拟合出开路电压的计算公式,从而避免直接使用端电压作为开路电压导致的误差。

Ah积分法是目前主流的SOC估计算法。该算法原理简单,程序结构简洁[3],只需要对电流进行积分就可以的到系统消耗的总电量,非常适合以STM32系列的单片机为主控芯片的硬件开发。文献[4]通过将开路电压、循环次数、温度与SOC的关系,制成数表,调用二分查表法访问数组,及时更新SOC初值和电池的额定容量,提高代码的读取效率和初值的精度。文献[5]利用拓展Kalman滤波算法估计全钒液流电池的SOC,该算法具有一阶Taylor展开精度。

文献[6]利用强追踪滤波器结合EKF算法估计SOC,强追踪滤波器利用能够对原系统输出的残差进行二次信息提取的优点,在系统突变时导致残差过大时,能够增强滤波器对突变状态的响应能力,但是未考虑电池实际使用过程种容量衰减引起状态矩阵误差问题。文献[7]针对电压野值问题,利用Bayes定理计算野值出现的后验概率,以此作为加权系数自适应地调整滤波增益和状态协方差结合无迹Kalman滤波(unscented Kalman filter, UKF)算法估计SOC,但是未考虑电流突变引起观测方程不同造成的观测误差问题。

针对上述问题,本文提出了一种基于无迹Kalman滤波UKF算法的动力电池SOC预测策略。通过循环放电实验的先验信息来确定电池可用容量与循环次数之间的关系;在设计一系列不同温度的放电实验来确定温度系数,考虑不同倍率放电电流引起的容量变化,引入电流模型概率来更新电池实际容量,从而提出了新的电池容量标定模型;再利用递推最小二乘法(recursive least squares, RLS)算法对电池参数在线辨识。在滤波过程中充分考虑电流突变问题导致OCV-SOC曲线变化。实验表明该算法能够适应电池各阶段的SOC估计,具有良好的估计精度

1 电池模型建立与参数辨识

RLS-UKF算法的优点利用最小二乘法对电池参数进行在线估计,解决了一般的UKF参数固定问题,更加能够反应电池等效模型的动态响应特性。RLS-UKF算法的估计精度与电池等效模型有关,需要建立合适的电池等效电路模型。电动汽车在行驶过程中工况复杂电压电流信号变化剧烈。由于内阻的存在会导致在充放电过程产生大量热量导致电池组温度升高,使得电池的实际容量大于常温是放出的容量,同时放电倍率对电池实际容量也有影响。本文在利用Matlab建模时充分考虑温度和电流变化对于电池实际容量的影响。

1.1 锂电池等效模型

RLS-UKF算法预测效果与模型精度有关。电池模型要能够模拟电池充放电过程中的内部化学反应引起的动态响应特性[8]。常见的电池等效模型包括电化学模型和等效电路模型等。电化学模型是从电池内部的反应原理出发,能够完整的描述充放电反应过程中各部分的化学反应状态,多用于电池的化学性能分析和选材研究。等效电路模型多用于电池管理系统(battery management system, BMS)的开发,BMS一般需要构建两类模型,分别是控制算法模型和被控对象模型,其中表征电池外特性的电池模型是被控对象建模过程中最为复杂和重要的。一方面构建准确的电池模型有助于高效、便捷地进行控制算法验证,另一方面电池模型的应用可以预估电池外特性实时状态,这是进行Kalman滤波算法的基础。

本文选择图1所示的模型为参考模型。其中:R0为电池等效内阻,主要由电极材料、电解液、隔膜电阻以及各部分零件的接触电阻组成。RC回路模拟电池内部电解液溶度极化和电化学极化现象。其中:R1、C1模拟电化学反应的阻抗,时间常数τ1较小,R2、C2等效为锂离子在电机材料中扩散时受到的阻抗,时间常数τ2较大,Im表示电池等效模型的电流;Uoc表示开路电压,它是在实验条件下测量的SOC函数;V表示电池端电压。

根据二阶RC等效模型及其电气特性可以建立式(1)—(3)的数学模型。

由安时积分法的定义得到SOC的表达式;

式中:Qn为电池额定容量,η表示Coulomb(库伦)效率。

电池的SOC-OCV曲线是荷电状态预测过程中的重要参数,对于滤波初值的确定和RLS-UKF算法预测锂电池SOC过程的残差检验至关重要。在实验室环境下,电池经过一次脉冲循环放电实验,将电池处于长期静置,待电池内部化学反应趋于稳定。此时锂电池的端电压最接近电池的开路电压。通过电荷积分法可以测量一个循环放出的电量。如此循环实验直到电池放电完全。记录每一个循环过程的电池处于稳定状态时的电压值和电荷积分法所放出的电量。将实验数据用Matlab工具箱进行拟合,得到开路电压和SOC的关系。电池充电时的端电压比一般比放电时候要高。本文充分考虑在SOC估计过程中电流突变对于荷电状态预测精度的影响,分别测量充放电的SOC-OCV曲线,得到图2所示的曲线。

1.2 模型的参数辨识

在二阶RC等效电路模型中,需要辨识的参数分别是R0、R1、R2、C1、C2。电池的参数一般利用混合动力脉冲能力特性(hybrid pulse power characteristic,HPPC)实验来测量。当电动汽车正常运行时,其运行工况复杂,很难通过HPPC实验来辨识电池的参数,并且处于不同的SOC值时电池的参数也不同。电池参数也受到众多外部因素影响,如充放电倍率、电池的健康状态、温度等其他因素影响[9]。由于在短时放电过程中,电池老化现象对于参数的影响几乎可以忽略,因此暂时不考虑老化对电池的影响。本文为了更加真实的反应各阶段电池的参数变化,引入含遗忘因子的递推最小二乘法(RLS)对二阶RC等效电路模型进行在线辨识,实时更新观测方程和状态方程的参数矩阵[10]。本文选择威能公司的36 Ah磷酸铁锂动力电池为测试对象,对电池进行DST工况循环放电实验,其实验数据如图3所示;收集电压电流数据,导入RLS算法进行在线辨识,其辨识结果如图4所示。

2 优化电池的额定容量标定

如何准确快速的标定电池的实际可用容量,对于SOC估计过程至关重要。准确的容量信息能够提高状态方程参数矩阵的精度,减少过程误差。电池的额定容量等于出厂时标定的容量,经过一段时间使用,考虑到电池的容量衰减、电池的放电电流倍率以及环境温度对于时间容量的影响,使得额定容量往往不等于电池真实的容量。当温度较高时,电池内部的化学物质活性高,内部反应更加彻底,使得电池放出的容量增加,反之电池内部的化学物质活性降低,导致化学反应不彻底,使得可用容量减少。不同倍率的放电电流也对电池的实际容量有影响,当汽车处于加速状态,动力电池需要放出大电流来支持电动汽车完成加速过程,此时需要进行大倍率电流放电,导致电池内部的化学反应越激烈,大倍率放电电流使锂电池的内阻急剧增加,在锂电池负极的表面产生大量的由LiPF6分解产生的LiF,这严重的影响了界面的扩散动力学特征,使电池放电不彻底,造成磷酸铁锂电池可用容量衰降。当汽车低速时,电池放电电流较小,长时间小电流放电会造成电池深度放电,导致放出容量大于额定容量。

针对上面出现的问题,本文提出电池额定容量修正模型:

式中:ω为考虑温度对电池容量的修正参数,μi表示该放电过程中出现以电流i放电的概率,Qi表示为恒流i进行放电的实测电池容量。

2.1 温度修正系数的确定

在-20~50 ℃之间以1/3C的倍率对电池进行恒流放电实验,记录磷酸铁锂动力电池在不同温度状态时由满电状态持续放电到电压截止状态所放出的实际容量,定义温度修正系数的表达式为

式中:Qn表示电池出厂标定的额定容量,Q(θ)表示在温度为θ时能够放出的实际容量。

为了简化实验难度,在-20~50 ℃之间每隔10 ℃进行一次恒流放电实验。记录电池由满电状态连续放电到截止状态时的实际容量。将采集的8组温度与容量数据进行拟合可以得到温度修正系数ω与温度θ之间的函数关系,如图5所示。

2.2 放电倍率对容量的影响

电池放电倍率越大,电池内部需要剧烈反应来提供足够的电荷,使得锂电池负极的表面产生大量的LiF,造成电池放电不彻底。反之,放电倍率越小,会导致电池过放,从而使得实际可用容量增加。为了测试不同倍率放电电流与电池容量的关系,在恒温条件下设置一系列不同倍率恒流放电实验,记录电池的持续放电时间和电流的大小,用电荷计量法计算电池由慢点状态持续放电到截止状态一共放出的时间容量,将得到的9组实验数据用matlab工具箱进行拟合,得到不同倍率放电电流与实际可用容量的关系,如图6所示。

2.3 电流概率的确定

电动汽车其行驶路线一般比较固定,可以通过先验信息来确定不同倍率放电电流出现的概率μi。本文选择以取为整数的放电电流值(即i/ A 取值为0,1,2,3,…)作为参考,如实际电流值在i- 0.5 A到i+ 0.5 A之间,则默认为是以取为整数的电流i/ A进行放电。若定义放电电流的统计次数为mi,采样次数n,则电流概率为

3 基于UKF算法的SOC估计

基于无迹Kalman滤波算法的动力电池荷电状态估计方法如图7所示。

首先根据第2节描述的容量标定模型,确定电池的容量参数,然后调用RLS算法对二阶RC电池等效模型的阻容参数进行辨识,将t时刻辨识得到的参数代入状态方程和观测方程,调用UKF算法对电池SOC参数进行在线估计。

状态方程为;

式中:A(k)为k时刻状态方程系统矩阵,B(k)为k时刻状态方程输入矩阵。由于本文使用DST循环工况数据,在一个循环内出现电流突变的情况,使得充电和放电过程的SOC-OCV曲线的不同。考虑到其对与观测方程的影响,本文引入电流作为判断值,根据电流的正负号来判断选择最优观测方程。当电池处于放电状态时其观测方程为式(8),当电池处于充电状态时其观测方程为式(9),即:

其中:fd为放电时的观测方程非线性函数,其与图2所示的放电曲线有关;fc为充电时的观测方程非线性函数设,其与图2的充电曲线有关;ν(k) 为过程噪声;ω(k)为观测噪声。

将式(1)—(4)进行离散化处理,得到式(10)和式(11),即

式中,UOC为开路电压,是一个关于SOC的高阶多项式,其函数拟合如上图2所示。当电池处于放电状态时,UOC对应SOC-OCV放电曲线;当电池处于充电状态时,UOC对应SOC-OCV充电曲线。

3.1 无迹Kalman滤波算法原理

首先通过UT变化计算2n+1个sigma点值;

计算对应的采样点权值;

计算经过UT变换的采样点一步预测和系统状态量一步预测及协方差矩阵[11]。

对预测值,X(i)(k|k-1)再次使用UT变换,产生新的sigma点。

将新sigma点代入观测方程,通过加权求和得到系统的均值及协方差矩阵pxy。

更新k时刻的无迹Kalman增益、状态估计值和协方差矩阵:

4 仿真实验分析

为了验证新的电池容量标定模型结合RLS-UKF算法的实际估计效果,本文选择与常见的EKF算法、AEKF算法以及未经过容量优化的RLS-UKF算法进行比较。为了验证算法对于不同的放电环境的是适应性,本文选择DST工况下循环放电实验和恒流放电工况实验数据来进行仿真,电流信号采样周期为1 s,恒流工况电压电流如图8所示。

4.1 滤波参数设置

首先根据先验信息设置滤波初值、初始协方差矩阵、过程噪声和观测噪声等[12],其中滤波初值矩阵X是一个3行1列的矩阵,其中SOC初值为1,观测噪声和过程噪声的取值根据式(20)和式(21)。

其中:sqrtm表示矩阵的平方根,randn(1,N)表示1行N列随机数,randn(3,N)表示产生3行N列随机数,N是采样点的总数,通过设置R和Q可以把噪声设定在一定范围。

4.2 电池容量标定

根据2.3节的描述,在标定容量参数时需要确定温度系数和电流概率2个参数。在DST工况和恒流工况放电过程中,通过检测电池的初始温度和放电截止的截止温度。考虑到放电初期电池内部锂离子溶度较大,温度对于放电影响较小,放电中后期,电池内部锂离子溶度下降,温度可以提高锂离子活性,以及改善在锂电池负极表面产生大量的由LiPF6分解生成的LiF造成界面的扩散动力学特征,所以温度系数选择多考虑后期的电池实际温度。本文DST工况下选择36 ℃的温度系数为参考值,在恒流工况下选择34 ℃的温度系数为参考值,其对应ω值可以根据图4确定,其具体参数如表1所示。

本文使用的DST放电实验其电流主要是以12、18、8 A以及负脉冲为主,为了简化运算,只取这3部分的电流概率进行研究,通过先验信息可以得到DST工况和恒流工况各阶段电流出现的概率如表2所示。

表1 温度系数确定

表2 电流概率

温度系数和电流概率都已经确定,根据额定容量标定公式可以计算出DST工况和恒流工况的容量参数分别为38.48 Ah和37.84 Ah,比厂家标定的容量要大,更加接近于实际放电容量。

4.3 仿真结果与分析

根据4.1设置的滤波参数初值,对DST工况循环放电实验数据和恒流放电实验数据进行仿真验证。先通过MATLAB搭建RLS-UKF算法的模型,在滤波开始根据事先采集的先验信息,如:温度、循环次数等,再通过第2节的容量优化模型,确定容量的最佳值;再将DST工况和恒流放电工况电压电流数据导入MATLB模型进行仿真,通过与RLS-EKF算法、RLSAEKF算法以及未经过容量优化的RLS-UKF算法进行对比。DST工况SOC估计结果和估计误差如图9所示;恒流工况SOC估计结果和估计误差如图10所示。

从仿真结果可以得到DST工况和恒流工况的SOC估计平均误差和最大误差,如表3所示。

表3 DST工况和恒流工况下的SOC估计误差值

结果表明:考虑充放电的不同SOC-OCV曲线和新的容量标定模型的RLS-UKF算法估计效果要优于RLS-EKF、RLS-AUKF和未经过容量优化的RLSUKF算法, 容量优化的RLS-UKF算法在DST工况下最大误差为3.63%,平均误差为1.2%。在电压突变过程SOC-OVC曲线没有改变,会使得端电压预测值与实际电压偏差较大,从而直接影响到自协方差Py和互协方差矩阵Pxy,使得卡尔曼增益k受到影响,并且还会造成电压残差过大,会直接影响到状态方程更新,在Kalman增益k和电压残差的双重影响下,造成SOC预测值偏差增大。

从上述分析可知:造成未经过容量优化的RLSUKF算法的误差的原因是:额定容量标定误差较大和未考虑DST工况下电流突变找出的SOC-OCV曲线不同。在恒流放电工况下RLS-UKF算法的最大误差为3.86%,平均误差为1.41%,该算法能够更好的适应各种复杂工况,具有良好的适应性。

5 结 论

本文在利用RLS-UKF算法估计SOC时充分考虑了充放电的不同SOC-OCV曲线和电池容量的准确标定对于SOC估计结果的影响,提出一种基于无迹卡尔曼滤波算法的动力电池荷电状态估计方法。首先据温度和电流概率来确定优化的电池容量模型的实际容量,同时引入递推最小二乘法对二阶RC等效模型进行在线辨识,再调用无迹Kalman算法进行SOC估计。

结果表明:本文的方法有很强的自适应性,对于电流突变过程能够更好的追踪,可以适应各种复杂的工况,较EKF算法、AUKF算法和未经过容量优化的RLS-UKF算法效果更好,能够提高SOC预测精度。

猜你喜欢

倍率容量工况
热网异常工况的辨识
变工况下离心泵性能研究
不同工况下喷水推进泵内流性能研究
脉冲工况氧气缓冲罐裂纹修复实践
倍率控制下的机器人轨迹生成算法
水瓶的容量
蝴蝶效应的数学模型
小桶装水
多用电表的内阻与档位关系
高功率钛酸锂电池倍率及低温性能研究