程江洲,李君豪,唐 阳,谢诗雨,王劲峰
(三峡大学 电气与新能源学院,宜昌 443002)
电池的荷电状态SOC对于锂电池的能量管理,防止锂电池过充电和过放电,改善电池寿命和制定控制策略有一定的影响。估计锂电池SOC的方法主要有:放电法[1-2]、负载电压法、安时积分法、开路电压法、内阻法[3]、神经网络法[4]和卡尔曼滤波法等[5-6]。其中,放电法、开路电压法、安时积分法及内阻法的估算结果误差较大;开路电压法及神经网络法实现的条件较为苛刻。
针对估算误差较大这一重大缺陷,学者们提出结合安时法与EKF算法[7]估算锂电池的SOC。EKF采用泰勒级数展开方法求解系统线性方程,将系统变为线性系统并在线性系统中估算当前系统状态。在对方程线性化处理时,通常只保留非线性函数的一阶项,并除去其二阶项及后续项。在锂电池系统采用EKF算法估算SOC时,由于锂电池系统为强非线性系统,被忽略的二阶项及后续项会影响估算结果,导致估算SOC值发散,使得估算SOC远偏离于真实SOC。
为提高EKF算法的稳定性和精度,在此改进了EKF算法,并在MatLab/Simulink上进行模型仿真,结果证明改进是有效的。
放电法采用恒流放电,工作电流和时间的乘积即为锂电池荷电状态。它是一种精度较高的SOC估算方法,但需要大量时间来获取样本,以及需要切断正在工作的电池来试验,无法一边试验一边工作。
开路电压法[8]精确测量开路电压OCV(open circuit voltage),并根据OCV与SOC之间存在的函数联系来估算SOC。该方法较放电实验法更准确,但只能在锂电池停止工作时进行测量。
内阻法[9-10]是用于测量锂电池内阻并基于测量内阻与SOC间的函数关系估算SOC的方法,由于内部电阻随电池状态的变化而变化,因此无法精准测出内阻的具体值。若测量结果存在较大的误差,则会导致估算不准甚至错误。
神经网络法[11-12]是一种非线性特征的训练方法,它需要大量的数据来训练网络和适当的输入,输入条件更加严格。
安时积分法[13-14]是一种广泛使用的锂电池SOC测量方法,因未考虑锂电池内部产生的化学反应,且仪器采集电流也存在误差,时间越久则误差累积越多,会极大地影响SOC估计结果。
建立系统方程首先需建立锂电池等效模型,目前运用广泛的经典等效电路模型主要有内阻(Rint)模型、戴维南(Thevenin)模型及PNGV模型。
在此使用二阶Thevenin电路模型来模拟电池正常工作状态。相较一阶Thevenin电路,二阶电路精确度更高,能更实际还原锂电池特性;相较于三阶及更高阶数模型,虽精确度相差不大,但计算量远低于更高阶的模型。
二阶Thevenin等效电路模型如图1所示。图中,R0为直流内阻;R1,R2为锂电池电化学和浓差极化内阻;C1,C2为锂电池极化电容;I为放电电流;U1,U2分别为R1,R2两端电压;Ub为端电压;Uoc为开路电压。
图1 二阶戴维南等效电池模型Fig.1 Thenenin second-order equivalent circuit cell model
在二阶Thevenin等效电路电池模型中,根据基本电路定律,可列出以下基本方程:
根据安时积分法,锂电池SOC为
式中:k0为开始时间;k为截止时间;CN为额定容量;I为放电电流。
对方程(1)(2)(3)进行离散化处理,可得
其中 τq=RqCq,q=1,2
式中:Ts为采样时刻;τq为RqCq网络时间常数。
通过以上推导,并将电池SOC作为系统状态量,得到的系统状态方程和观测方程为
式中:ωp,k为过程噪声,p=1,2,3;φk+1为观测噪声。
传统EKF算法的计算步骤如图2所示,其主要有预测过程和校正过程。
图2 EKF算法流程Fig.2 Flow chart of EKF algorithm
预测过程步骤 确定系统在k-1时的初始值,预测出系统在k时的值;根据初始协方差矩阵,预测出k时刻的协方差预测矩阵pk。
校正过程步骤 利用协方差预测矩阵得到系统滤波增益Kk;对系统进行状态方程更新及误差协方差方程更新,完成校正。
因为EKF算法对线性动态系统的建模效果很好,而锂电池系统为非线性系统,SOC与实际容量、内阻、温度等很多元素都不是线性关系,从而导致误差积累。因此,需对EKF算法扩展,使其改变为含有非线性状态函数的状态空间方程,使计算结果更为精确。
改进的EKF算法,在协方差预测步骤中引入了温度补偿系数T0:
式中:CN(25℃,1C)为锂电池在 25℃下,以 1C 电量放电测得的额定容量;CN(T,C)为在温度T时电量以恒定值放电,直至达到终止电压,整个放电过程放电容量当作电池的相对容量。
如以锂电池CN(25℃,1C)的容量作为参考值1,那么根据获得的不同温度及放电倍率下相对可用容量大小,可计算出具体条件下的容量补偿因子结果,见表1。
表1 容量补偿因子结果Tab.1 Results of capacity compensation factor
初始化初值x0和协方差矩阵p0;按照运行步骤,测得输入值完成SOC估算。改进EKF计算步骤具体如下:
步骤1 根据系统在k-1时的值xk-1,计算出在k-1时预测k时的估算值xk为
根据协方差p0,求出协方差矩阵预测pk为
式中:Q为过程噪声协方差矩阵。
步骤2 利用式(10)求得的温度补偿系数T0,对协方差预测矩阵进行优化,得到p′k,即
用优化后的矩阵p′k,求出滤波增益Kk为
式中:Hk为观测矩阵;R为测量协方差。
步骤3 进行状态更新和协方差更新,即
为验证改进EKF算法的有效性,采用BTS-2002型电池测量仪(如图3所示),对容量为2800 mA·h,电压3.7 V的18650型磷酸铁锂电池做采集试验。采用改进的EKF算法估计SOC时,需要用到OCV与锂电池SOC之间对应的的函数表达式,并辨别二阶Thevenin电路模型模型参数。
图3 BTS-2002型电池测量仪Fig.3 BTS-2002 battery measuring instrument
首先确定OCV与SOC之间的函数表达式,在常温25℃下进行放电试验,电量为1C,测试电压为2.75~3.70 V,获取试验数据。根据文献[11]所提出的方法,准确得到SOC与OCV一一对应的函数关系,并利用MatLab的数据拟合功能,求出函数表达式。SOC与OCV的关系如图4所示。
OCV与SOC的函数关系(Voc-Sc)为
试验用最小二乘法辨别二阶Thevenin等效电池的参数 R0,R1和 C1,C2,并随时间不断变化、更新,在MatLab/Simulink中建立等效电池仿真模型。仿真的初始条件为
图4 OCV与SOC的关系Fig.4 Relationship between OCV and SOC
以试验获得的电流和电压数据为基础,导入至MatLab/Simulink锂电池仿真模型内。锂电池SOC MatLab/Simulink仿真模块如图5所示。
图5中,xk为状态更新值,pk为估计误差协方差矩阵,误差协方差矩阵为系统计算的偏差程度,当计算t时刻的系统预测值时,通过系统协方差矩阵计算卡尔曼滤波增益Kk。协方差矩阵与预测精度呈线性关系,协方差矩阵越小,精度越高;反之,则精度越低。
图5 锂电池SOC MatLab/Simulink仿真模块Fig.5 Lithium battery SOC MatLab/Simulink simulation module
改进EKF算法用于估算锂电池SOC的仿真验证如图6所示。该试验通过设置远离真实值的随机值,测试本文改进算法的灵敏度。设置其随机初始值为72%Sc,经过短时间的迭代估算,得到SOC的测量值。自0时刻至3750 s时刻,锂电池SOC仿真真实值从1减小到0,测量值经算法测量和迭代后逐渐与真实值靠近,并与真实值曲线重合,在真实值范围内以极小的误差波动。仿真模型验证了改进算法灵敏度与精度都具有很高的可靠性。
图6 改进EKF估算的锂电池SOCFig.6 Improved EKF estimation of lithium battery SOC
模型的误差及误差率曲线如图7所示。由图7a可见,在初始时,经快速迭代,误差值迅速减小,并且随着改进EKF的不断计算,误差逐渐减小。由图7b可见,由于初始值设置的误差较大,初始的误差率也大;经过短时间迭代后,SOC逐渐接近真实值,误差率也逐渐变小,在2%误差率范围内波动。通过估算系统可以得到很高的精准度。
图7 仿真误差及误差率的曲线Fig.7 Curve of simulation error value and error rate
通过建立二阶Thevenin等效电路模型,通过测得锂电池不同容量所对应开路电压OCV值,得到OCV与SOC对应函数,使得模型估算更精确;使用MatLab/Simulink软件,建立二阶Thevenin等效电池模型,导入试验数据进行仿真试验,精确估计SOC。通过放电情况下实际值与测量值的对比,本文模型误差较小,保持在2.10%误差范围内。因此,本文模型具有较高精确度,可适用于实际锂电池管理系统。