本发明属于一种电池实时全充时间的估算方法。
背景技术:
在电动汽车电池管理系统中,实时监控动力锂电池的健康状态(state-of-health,soh)能准确反映出电池当前容量能力,可及时做好维护或更换的准备工作,有效发现和避免电池的不安全行为,为动力电池的稳定性提供保障。电池的健康状态soh也被称为寿命状态,表征电池在长期使用过程中的老化情况和劣化程度的指标,通常根据电池使用一段时间后某些直接可测或间接计算得到的性能参数的实际值与标称值的比值估算。soh受众多因素影响,与电池老化机理相关,其中很多参数都难以实时测量,因此相对于电池剩余电量(state-of-charge,soc)而言,soh估算的复杂性和难度更高。
目前,对于电池soh的研究主要包括直接测量法、基于模型的方法和数据驱动的方法。利用数据模型处理电池soh预测的方法主要包括自回归、神经网络、支持向量机和卡尔曼滤波和粒子滤波等方法。这些方法所使用的soh定义不完全一致,但多利用了电池的放电容量和标称容量比值。最常用的容量测试几乎均是静态条件下,将电池充至满电,在特定温度及恒定电流下放电到放电截止电压,并用电流值对放电时间进行积分计算得到容量。该方法的缺点是动力电池充放电周期较长且过程繁琐,加重了检测的时间成本。对于动力汽车锂电池而言,其充电过程相对放电过程更为稳定且易于测量和记录,因此考虑利用充电容量计算soh更为实用。
因此,就需要一种测量周期短、过程简单、便于测量和记录、实用性强的电池实时全充时间的估算方法。
技术实现要素:
本发明针对现有的电池实时全充时间估算方法周期长、过程繁琐、不易测量和记录、实用性差的缺陷,提供了一种测量周期短、过程简单、便于测量和记录、实用性强的电池实时全充时间的估算方法。
本发明所涉及的基于ekf-gpr和日常片段数据的电池实时全充时间的估算方法的技术方案如下:
本发明所涉及的基于ekf-gpr和日常片段数据的电池实时全充时间的估算方法,它包括以下步骤:
步骤一、初始化:恒流充电电流i,恒压充电截止电压v,初次循环loop0,初始恒流充电下的全充数据d0=(t0(k),v0(k)),k=1,2,...,n0,n0为在恒流充电电流i充电下电池达到恒压充电截止电压v时的总采样时间点数,t0(k)是等间隔采样的离散相对时间,采样时间间隔δt=t0(k+1)-t0(k)为常数,v0(k)表示第k个采样点的电压;扩展卡尔曼滤波的初始状态矩阵a0;
步骤二、高斯过程回归:利用周期协方差函数与神经网络协方差函数之和的协方差函数对恒流充电的全充数据d0进行高斯过程回归,计算初始超参数hyp0;
步骤三、扩展卡尔曼滤波:提取loop=loop0+1次的片段数据d1=(t1(k),v1(k)),k=1,2,...,n1,利用loop0次的全充数据d0作为状态的初值,状态向量初始化为loop0次的全充时间xloop(1)=t0(n),对loop次的片段数据进行扩展卡尔曼滤波-高斯过程回归,估计第loop次恒流充电所需要的全充时间;
步骤四、扩展卡尔曼滤波循环递推;
步骤五、预测全充时间:计算loop次片段数据的全充时间xloop(1):
xloop(1)=xn+[δt×n-1](29);
步骤六、更新循环:赋值给loop0=loop,计算(t0(k),v0(k))=(xloop(k),v1(k)),重复步骤二到步骤五。
进一步地:在步骤二中,所述周期协方差函数为:
其中,xp,xq∈rn为任意随机变量,k1(xp,xq)为周期协方差函数,
所述神经网络协方差函数为:
其中,k2(xp,xq)为神经网络协方差函数。
进一步地:在步骤三中,所述全充时间为:
xloop(k)=akxloop(k-1)-δt+ω(k-1)(21)
z(k)=gp(d0,xloop(k))+v(k)(22)
其中,ak表示扩展卡尔曼滤波的当前状态矩阵,gp表示高斯回归函数,z(k)表示电压值,xloop(k)表示全充时间,z(k)为利用超参数hyp0和初始全充数据d0做高斯过程回归预测的电压值。
进一步地:在步骤四中,所述扩展卡尔曼滤波循环递推:
预测方程为:
其中,
其中,
所述计算增益为:
其中
更新状态为:
更新协方差:
其中,r(k)为噪声ω(k)的协方差,q(k)为噪声v(k)的协方差,且噪声ω(k)和v(k)均为设定值。
本发明所涉及的基于ekf-gpr和日常片段数据的电池实时全充时间的估算方法的有益效果是:
本发明涉及的基于ekf-gpr和日常片段数据的电池实时全充时间的估算方法,基于扩展卡尔曼滤波和高斯过程回归的全充时间估算方法,解决了片段充电数据预测电池实时全充时间的问题。充放电容量均随着充放电次数的增加呈现总体下降和局部再升的趋势,两者具有强相关性。预测的全充时间在变化趋势上与真实值完全一致。80次预测结果的平均相对误差为0.0175。由于电池的初始充放电循环数据不稳定,实验数据做了预处理,我们采用真实电池充电的第100次循环数据作为初始全充数据,而忽略了前99次循环的数据。在前50次循环中估计全充时间的误差在2%以内。随着循环次数的增加误差也逐渐增大。误差增加的原因主要有两点:一是误差随着迭代次数的增加会累积,二是因为某些片段数据的数据量过少。实际应用时,应在一定的充放电循环后人为进行一次全放全充操作以更新初始全充时间值来减少预测误差。通过实验仿真,验证了高斯过程扩展卡尔曼滤波在锂电池健康状态评估中的针对性、有效性和实时性。
附图说明
图1为电池实时全充时间的估算方法流程图;
图2为电池充电容量和放电容量对比曲线图;
图3为利用充电容量和放电容量计算的soh对比曲线图;
图4为使用放电容量作为标称容量的soh对比曲线图;
图5为估计的全充时间和真实的全充时间曲线图;
图6为估计的全充时间绝对误差曲线图;
图7为估计的全充时间相对误差曲线图;
图8为估计的全充时间相对误差绝对值曲线图。
具体实施方式
下面结合实施例对本发明的技术方案做进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。
实施例1
结合图1说明本实施例,在本实施例中,本发明所涉及的基于ekf-gpr和日常片段数据的电池实时全充时间的估算方法,它包括以下步骤:
步骤一、初始化:恒流充电电流i,恒压充电截止电压v,初次循环loop0,初始恒流充电下的全充数据d0=(t0(k),v0(k)),k=1,2,...,n0,n0为在恒流充电电流i充电下电池达到恒压充电截止电压v时的总采样时间点数,t0(k)是等间隔采样的离散相对时间,采样时间间隔δt=t0(k+1)-t0(k)为常数,v0(k)表示第k个采样点的电压;扩展卡尔曼滤波的初始状态矩阵a0;
步骤二、高斯过程回归:利用周期协方差函数与神经网络协方差函数之和的协方差函数对恒流充电的全充数据d0进行高斯过程回归,计算初始超参数hyp0;
步骤三、扩展卡尔曼滤波:提取loop=loop0+1次的片段数据d1=(t1(k),v1(k)),k=1,2,...,n1,利用loop0次的全充数据d0作为状态的初值,状态向量初始化为loop0次的全充时间xloop(1)=t0(n),对loop次的片段数据进行扩展卡尔曼滤波-高斯过程回归,估计第loop次恒流充电所需要的全充时间;
步骤四、扩展卡尔曼滤波循环递推;
步骤五、预测全充时间:计算loop次片段数据的全充时间:
xloop(1)=xn+[δt×n-1](29);
步骤六、更新循环:赋值给loop0=loop,计算(t0(k),v0(k))=(xloop(k),v1(k)),重复步骤二到步骤五。
更为具体地:在步骤二中,所述周期协方差函数为:
其中,xp为输入值,xp,xq∈rn为任意随机变量,k1(xp,xq)为周期协方差函数,
所述神经网络协方差函数为:
其中,k2(xp,xq)为神经网络协方差函数。
更为具体地:在步骤三中,所述全充时间为:
xloop(k)=akxloop(k-1)-δt+ω(k-1)(21)
z(k)=gp(d0,xloop(k))+v(k)(22)
其中,ak表示扩展卡尔曼滤波的当前状态矩阵,gp表示高斯回归函数,z(k)表示电压值,xloop(k)表示全充时间,z(k)为利用超参数hyp0和初始全充数据d0做高斯过程回归预测的电压值。
更为具体地:在步骤四中,所述扩展卡尔曼滤波循环递推:
预测方程为:
其中,
其中,
所述计算增益为:
其中
更新状态为:
更新协方差:
其中,r(k)为噪声ω(k)的协方差,q(k)为噪声v(k)的协方差,且噪声ω(k)和v(k)均为设定值。
电池容量是指在某一定的条件下,活性物质参加电化学反应所释放电量的多少,有时也会将电池所能充入的最大电量作为电池容量,将电池容量类比到电动汽车的动力电池容量,基于恒流充电的动力电池soc计算公式如下:
式(3)中,c表示电池充电soc,c0表示初始soc,i表示电池充电电流,t表示电池充电时从初始时刻充电到截止电压所需的时间;若假设电池从0容量开始充电,则基于充电容量的电池soc为
由于电动汽车在实际使用过程中不会等到电池将全部电量都用尽后才进行充电,在用动力电池在实际的使用过程中,充电情况一般是类似soc从20%到80%或者soc从40%到100%这样的片段充电数据,这样无法从每次充电情况来判断实时全充时间和电池可用容量。因此,利用从任意的起始soc值处进行恒流充电至100%这样的片段数据进行锂电池当前全充时间预测,进而预测电池的当前soc和soh。
扩展卡尔曼滤波算法(ekf)是由卡尔曼滤波转变而来,其算法的核心在于对非线性系统的局部线性化。其实质为基于递归估算的最优自适应算法。ekf是广泛使用的非线性系统的最优状态估计算法。
通常情况下,ekf包括状态方程和量测方程,其非线性系统方程的表示如下:
式(6)中,x(k-1)为k时刻系统的状态向量,z(k-1)为k时刻系统的量测向量,u(k-1)为控制输入向量;ω(k-1)为系统噪声,v(k)为量测噪声,f(·),h(·)分别为非线性函数。使用一阶泰勒展开式使系统的非线性状态空间方程转换为线性的状态空间方程,再结合使用卡尔曼滤波算法可以实现扩展卡尔曼滤波的递推。
高斯过程的全部统计特性完全由其均值函数和协方差函数决定:
式中xp,xq∈rn为任意随机变量。因此,高斯过程可定义为:f(x)~gp(m(x),k(xp,xq))。
设给定包含n个观测数据点d=(x,y)={(x1,y1),(x2,y2),...,(xn,yn)},其中x=[x1x2...xn]为n个n维训练输入矢量xi联合的n×n维输入矩阵,y=[y1y2...yn]t为训练输出标量的联合输出矢量,yi∈r。
考虑如下回归模型
yp=f(xp)+εp(8)
其中,xp(p=1,…,n)表示输入值,f表示函数关系,yp(p=1,…,n)表示输出值,εp表示加性高斯噪声,所述加性高斯噪声的服从均值为0、方差为
其中k(x,x*)表示训练集和预测值的协方差函数,k(x*,x*)表示预测值的协方差函数。
根据贝叶斯公式,如果知道了先验分布,那么后验分布就可以根据贝叶斯线性模型得到
高斯过程通常会有不同的协方差函数,常见的协方差函数为平方指数协方差函数
其中
高斯过程回归学习扩展卡尔曼滤波的状态方程、量测方程以及噪声协方差矩阵,训练数据为dloop-1=(zloop-1(1),zloop-1(2),...,zloop-1(n))为上一次循环的量测值,xloop(k)为当前循环数下的第k个状态量,同时也是高斯过程回归的测试输入值。高斯过程将状态方程和量测方程表示为:
xloop(k)=gpf([xloop(k-1),uloop(k-1)])+ω(k-1)(14)
zloop(k)=gph(dloop-1,xloop(k))+v(k)(15)
其中,r和q均为噪声方差,gp为高斯过程回归。根据soh历史数据的一般规律,即整体下降,局部再升性,选择线性函数m(x)=ax+b作为高斯过程回归的均值函数,使用式(18)作为高斯过程回归的协方差函数,
k(xp,xq)=k1(xp,xq)+k2(xp,xq)(18)
其中神经网络协方差函数为
对角矩阵为
周期协方差函数为
设此时的超参数
将高斯过程回归融入扩展卡尔曼滤波中,采用高斯过程回归方法提高系统模型精度,具体的递归预测算法如下:
1)初始化:恒流充电电流i,恒压充电截止电压v,初次循环loop0,初始恒流充电下的全充数据d0=(t0(k),v0(k)),k=1,2,...,n0,n0为在恒流i充电下电池达到截止电压v时的总采样时间点数,t0(k)是等间隔采样的离散相对时间,采样时间间隔δt=t0(k+1)-t0(k)为常数,v0(k)表示第k个采样点的电压;扩展卡尔曼滤波的初始状态矩阵a0;
2)高斯过程回归:利用周期协方差函数与神经网络协方差函数之和的协方差函数对恒流充电的全充数据d0进行高斯过程回归,计算初始超参数hyp0;
3)扩展卡尔曼滤波:提取loop=loop0+1次的片段数据d1=(t1(k),v1(k)),k=1,2,...,n1,利用loop0次的全充数据d0作为状态的初值,状态向量初始化为loop0次的全充时间xloop(1)=t0(n),对loop次的片段数据进行扩展卡尔曼滤波-高斯过程回归,估计第loop次恒流充电所需要的全充时间:
xloop(k)=akxloop(k-1)-δt+ω(k-1)(21)
z(k)=gp(d0,xloop(k))+v(k)(22)
其中ak表示扩展卡尔曼滤波的当前状态矩阵,gp表示高斯回归函数,z(k)表示电压值,xloop(k)表示全充时间,z(k)为利用超参数hyp0和初始全充数据d0做高斯过程回归预测的电压值。
4)扩展卡尔曼滤波循环递推:
预测方程:
利用差商近似雅可比矩阵进行更新模型:
计算增益:
更新状态:
更新协方差:
其中,r(k)为噪声ω(k)的协方差,q(k)为噪声v(k)的协方差,且噪声ω(k)和v(k)均为设定值。
5)预测全充时间:计算loop次片段数据的全充时间:
xloop(1)=xn+[δt×n-1](29)
6)更新循环:赋值给loop0=loop,计算(t0(k),v0(k))=(xloop(k),v1(k)),重复2-5。
图2为电池的充放电容量分别随充放电循环的变化规律图,可以看出,充放电容量均随着充放电次数的增加呈现总体下降和局部再升的趋势,两者的容量曲线具有强相关性。
图3为利用图2的充放电容量计算的soh值对比图,可以看到,两种方法计算的soh存在一定误差。
图4为改进前后的soh对比图,这种误差主要是由于初始标称容量的差距引起的,因此提出利用放电标称容量作为充电的标称值计算soh,很明显,soh的误差极大缩小。
图5是利用片段的充电数据估计的全充时间和真实的全充时间的对比图。可以看到,预测的全充时间在变化趋势上与真实值完全一致。
图6、图7和图8分别展示了估计的全充时间和真实的全充时间的绝对误差、相对误差以及相对误差绝对值。根据图8可以计算,80次预测结果的平均相对误差为0.0175。由于电池的初始充放电循环数据不稳定,实验数据做了预处理,我们采用真实电池充电的第100次循环数据作为初始全充数据,而忽略了前99次循环的数据。从图6-8得到,在前50次循环中估计全充时间的误差在2%以内。随着循环次数的增加误差也逐渐增大。误差增加的原因主要有两点:一是误差随着迭代次数的增加会累积,二是因为某些片段数据的数据量过少。实际应用时,应在一定的充放电循环后人为进行一次全放全充操作以更新初始全充时间值来减少预测误差。