本发明涉及电池管理技术领域,具体涉及一种基于扩展卡尔曼滤波的电池荷电状态估计方法。
背景技术:
随着新能源技术的发展和广泛运用,电池作为重要的新能源储能设备,其安全性及稳定性也越来越受到人们的关注。电池管理系统(bms)作为电池的“管家”,对电池单元进行着智能化管理和维护。用于实时监控电池运行状态,防止电池出现过充电和过放电现象出现,延长电池的使用寿命。
电池荷电状态(soc)用来描述电池剩余容量,是电池在使用过程中最重要的参数之一。在充、放电过程中,bms需要对电池的剩余容量进行实时检测,并根据soc的大小对电池进行相应的控制,因此,soc的检测的准确性决定了bms控制效果的优劣,直接影响着电池使用的安全性和稳定性。
目前常用的soc估算方法有内阻检测法、开路电压法和安时积分法,其中内阻检测法当soc大于40%时变化非常微弱,难以应用于实际工况当中;开路电压法需要电池长时间静置达到稳定状态后再进行测量,影响系统的正常运行;安时积分法是目前运用较为广泛的soc算法,可以实时检测电池soc,但因其累计误差较大,在使用较长时间后测量值会与实际值产生较大偏差。
技术实现要素:
本发明所要解决的技术问题是:提出一种基于扩展卡尔曼滤波的电池荷电状态估计方法,实时监测电池的soc并提高soc估算的准确性。
本发明解决上述技术问题采用的技术方案是:
一种基于扩展卡尔曼滤波的电池荷电状态估计方法,包括以下步骤:
a.通过bms采集模块对电池系统运行数据进行采集并存储;
b.通过扩展卡尔曼滤波器对存储的电池系统运行数据进行实时运算,计算得到当前电池的soc估算值;
c.基于电压差/容量差对soc估算值的误差进行判断,并对soc估算值进行修正。
作为进一步优化,步骤a中,所述电池系统运行数据包括电池的电压、电流、温度及运行时间数据。
作为进一步优化,步骤b中,通过扩展卡尔曼滤波器对存储的电池系统运行数据进行实时运算,计算得到当前电池的soc估算值具体包括:
利用扩展卡尔曼滤波器时间更新方程组及测量更新方程组对电池荷电状态进行估算,
其中,时间更新方程组为:
xk+1=axk+buk
pk+1=apkat+q
其中,xk+1为k+1时刻的系统状态,xk为k时刻的系统状态,μk为k时刻系统过程噪声,a为系统矩阵,b为控制输入矩阵,bk为k时刻控制输入矩阵。
pk+1为xk+1对应的协方差矩阵,pk为xk对应的协方差矩阵,q为系统噪声的协方差矩阵;
测量更新方程组为
xk+1=xk+kk(yk-xk)
pk+1=(1-kk)pk
其中,kk为k时刻的卡尔曼滤波增益,kk+1为k+1时刻的卡尔曼滤波增益,yk为k时刻系统输出,r为测量噪声的协方差矩阵;
通过将系统测量电流及时间带入扩展卡尔曼滤波器时间更新方程组及测量更新方程组,即可求得电池soc估算值。
作为进一步优化,步骤c中,所述基于电压差/容量差对soc估算值的误差进行判断,具体包括:
以电压增加10mv为一个检测点,计算当前电压差△v/容量差△q并记录,其中△v=10mv,△q为在△v增长10mv的时间内,电池容量的增量,并使用△v/△q曲线斜率判断峰值,当确认峰值点时,对比当前扩展卡尔曼滤波估算数据,若偏差大于5%,则进行修正。
作为进一步优化,步骤c中,所述对soc估算值进行修正具体包括:
(1)设起始电压v0,起始时间t0,电池总容量q,t时刻采样电压vt,采样电流it;
(2)设δv=vt-v0,如果δv≥10mv,进入步骤(3);
(3)电池当前容量:qt=it×t,当前soc为:
(4)当ηt>500并且kt>0时,记录当前vt、it、t,并记soc0=soct,v0=vt,i0=it,qo=qt,进入步骤(5),若不满足条件,则记录soc0=soct,v0=vt,i0=it,qo=qt,进入步骤(2);
(5)当δv=vt+1-vt≥10mv时,按照步骤(3)计算方法对vt+1时刻的数据进行计算,则有
(6)当在某一时刻t+n存在
(7)若|soct-51|<5,则不进行补偿,若|soct-51|>5,则令δsoc=soct-50,当前soc修正为soct+n=soct+n+δsoc。
本发明的有益效果是:通过扩展卡尔曼滤波法对soc进行实时监控,并可以通过△v/△q算法对卡尔曼滤波估算结果进行校准,保证soc估算的准确性并进一步保证了电池运行的安全性和稳定性。
附图说明
图1为本发明基于扩展卡尔曼滤波的电池荷电状态估计方法流程图。
具体实施方式
本发明旨在提出一种基于扩展卡尔曼滤波的电池荷电状态估计方法,实时监测电池的soc并提高soc估算的准确性。本发明使用扩展卡尔曼滤波器,通过对bms采集到的电池运行信息进行估算,得到soc的估算值,并通过△v/△q算法对估算结果进行校准。
在具体实现上,如图1所示,本发明基于扩展卡尔曼滤波的电池荷电状态估计方法包括以下实现手段:
一、通过bms的采集模块采集电池运行的电流、电压、温度、运行时间等并将数据传输至数据存储器。
二、扩展卡尔曼滤波器使用数据存储器中的实时运行数据,估算电池soc值。
估算的具体方式如下:
扩展卡尔曼滤波算法是由卡尔曼滤波算法发展而来,针对非线性系统通过递归计算,由前一时刻的估计值和当前时刻的观测值推算当前时刻的准确估计值。
扩展卡尔曼滤波计算标准公式为:
xk+1=akxk+bkuk+wk(1)
yk=ckxx+vk(2)
其中,ak为k时刻系统矩阵,bk为k时刻控制输入矩阵,wk为系统噪声,ck为测量矩阵,vk为测量噪声,k为系统时间,xk+1为k+1时刻的系统状态,yk为k时刻系统输出。
设pk为xk对应的协方差矩阵,kk为k时刻的卡尔曼滤波增益,则上述(1)(2)两个方程可推导为以下两组公式:
①时间更新方程组
xk+1=axk+buk(3)
pk+1=apkat+q(4)
其中,q为系统噪声wk的协方差矩阵。
②测量更新方程组
xk+1=xk+kk(yk-xk)(6)
pk+1=(1-kk)pk(7)
其中,r为测量噪声vk的协方差矩阵。
根据时间更新方程组及测量更新方程组,将系统测量电流及时间带入公式(3)-公式(7),即可求得电池soc估算值。
三、受目前传感器技术发展的限制,bms采集到的系统电压、电流数据往往存在误差,这也导致了扩展卡尔曼滤波算法会在一定程度上产生误差,从而影响soc估算的准确度,本发明采用△v/△q方法对soc值进行在线修正,所述△v/△q方法即通过对电池的充放电实验,可知由于电池自身结构及材料的影响,在充、放电至51%、90%时系统△v/△q值会出现两峰值,即电压差比容量差的最大值,峰值点与soc具有稳定的关系。因此,可以通过电压差与容量差比值的峰值,确定系统当前soc处于51%或90%并对soc进行修正。
以电压增加10mv为一个检测点,计算当前△v/△q并记录,其中△v=10mv,△q为在△v增长10mv的时间内,电池容量的增量。并使用△v/△q曲线斜率判断峰值,当确认峰值点时,对比当前扩展卡尔曼滤波估算数据,若偏差大于5%,则进行修正。具体方式如下:
1)设起始电压v0,起始时间t0,电池总容量q,t时刻采样电压vt,采样电流it。算法中电压单位为mv,时间单位为s。
2)设δv=vt-v0,如果δv≥10mv,进入步骤3);
3)电池当前容量:qt=it×t,当前soc为:
4)当ηt>500并且kt>0时,记录当前vt、it、t,并记soc0=soct,v0=vt,i0=it,qo=qt,进入步骤5)。若不满足条件,则记录soc0=soct,v0=vt,i0=it,qo=qt,进入步骤2)。
5)当δv=vt+1-vt≥10mv时,按照步骤(3)所述计算方法对vt+1时刻的数据进行计算,则有
6)当在某一时刻t+n存在
7)若|soct-51|<5,则不进行补偿,若|soct-51|>5,则令δsoc=soct-50,当前soc修正为soct+n=soct+n+δsoc;
通过以上步骤,即完成了对soc的修正。