技术领域
本发明涉及电池内阻寿命技术领域,尤其涉及一种基于卡尔曼滤波器修正电池内阻寿命模型的方法。
背景技术
现有的SOH计算技术:根据启动内阻估算电池SOH_res根据电池等效电路模型,估算电池SOH_res,通过外置硬件电路直流放电测试直流内阻,估算SOH_res,建立电池的寿命模型。方案1根据电池等效电路模型计算,参考中国专利申请号201910059323.0的专利,电池等效电路模型的建立需要大量的时间和精力,通常需要半年。其设计的主要目的是计算SOC,依据的准则是多工况的均方根误差的和最小。平均电压拟合误差超过10mV,举个例子,当实时电流小于10A,造成内阻误差为1mohm。对于8Ah的电池直流内阻为500uohm左右。所以如果用电池等效电路模型来直接计算SOH_res,误差很可能超过范围。方案2添加额外的监测电路,参考中国专利申请号201910380607.X的专利:额外设置恒流放电电路,需要成本和空间。监测电路工作时,电池不能正常工作。所以严格的说这不算一种在线的估计方法。方案3建立电池寿命模型,参考中国专利申请号201910059323.0的专利:建立电池寿命模型是比较常见的方式,使用客户给定的工况。通过长时间的寿命测试,辨识出影响电池寿命的参数。输入寿命模型的变量,比如吞吐量、时间、温度、SOC、就可以直接计算出SOH_res.问题是实际工况往往并不单一,所以寿命模型的结果并不是十分准确。另外当电池被滥用时,寿命的衰减会加快,但是这一点在这种寿命模型中无法体现。所以电池寿命模型估计的误差随着时间的增大会增大。方案4根据启动内阻计算,参考中国专利申请号CN201710285985.0的专利:启动过程产生的压降除以期间的最大电流可以获得电池电阻。计算结果受温度影响较大,所以其精度不高。所以这种方法应该加上滤波器。
发明内容
本发明解决了电池内阻寿命修正中需要建立电池等效电路模型,耗费大量时间和精力的问题,同时还解决了修正误差传递,后期误差逐渐增大的问题。本发明提出一种基于卡尔曼滤波器修正电池内阻寿命模型的方法,不再依赖电池等效模型,防止误差传递。不依赖外部硬件电路,节约成本和空间。根据电池的实际响应。对寿命模型的输出做修正,纠正后期误差逐渐增大的问题。
为实现上述目的,提出以下技术方案:
一种基于卡尔曼滤波器修正电池内阻寿命模型的方法,包括以下步骤:
S1,尖峰检测步骤,把启动时刻的大脉冲筛选出来;
S2,根据尖峰发生相对于上电的时序判定尖峰检测是否可用,若可用启动电池内阻寿命模型修正;
S3,递归学习阶段,计算电池电阻的平均值和方差;
S4,卡尔曼修正步骤,根据电池的启动信号修正寿命模型的输出。
电机的启动是一个严格受控的过程,启动之前的极化电压也比较小,时间短,电流大。这些都是通过启动时刻电池电阻的有利因数。递归学习减少了内存的占用还加快了计算速度。通过实际电阻变化来衡量电池电阻健康状态SOH,还可以把不在工况内的意外事故对内阻的影响反馈到电池电阻健康状态SOH上,解决了单独有电池寿命模型预测的主要缺陷。通过提升采样率和合理滤波来控制量测方程误差的平方差R的大小,可以直接根据启动内阻的变化计算出寿命终结SohRes的值,从而摆脱对电池寿命模型的依赖。不再依赖电池等效模型,防止误差传递,不依赖外部硬件电路,节约成本和空间。根据电池的实际响应。对寿命模型的输出做修正,纠正后期误差逐渐增大的问题。
作为优选,所述步骤S1具体包括:
S101,当电池管理系统收到点火信号,闭合继电器后,检测输出电流和电压,判断时间是否大于1s,若否,记录最小电压Vmin和最大电流Imax,并进行步骤S102,若是,进行步骤S103;
S102,判断最小电压Vmin是否等于实时电芯电压Volt(t),若是,独立计算对象detectCnt总数加1,若否,返回步骤S101;
S103,判断独立计算对象detectCnt是否大于正常启动信号的尖峰出现最小计数ticksMin且小于正常启动信号的尖峰出现最大计数ticksMax,若是,计算启动信号上的最大压降dV,并生成尖峰可用判断值Valid_flag=1,若否生成尖峰可用判断值Valid_flag=0。
监听1s的输出电流和电压。由于电机启动。期间会输出一个大电流,产生一个比较大的压降。这个模块需要选出最低电压和大电流。稍后对这两个值做除法便可电池电阻。若其尖峰出现的位置不符合预期,则认为启动异常。
作为优选,所述计算启动信号上的最大压降dV=上电时量测到的第一个有效电压Vinit-最小电压Vmin。
作为优选,所述步骤S2具体包括:
S201,判断尖峰可用判断值Valid_flag是否等于1,若是,进行步骤S202,若否,上周期的修正结果和本周期的修正结果复位;
S202,判断本周期电池内阻健康度的预测值SohResPrd是否大于105%或输出功率是否大于100kWh,若是,则进行步骤S4,若否则进行步骤S3。
作为优选,所述步骤S3具体包括:
S301,初始化参数:递归学习发生的次数n=1,启动内阻在前期吞吐量小于100kWh时的均值Zmean=Z,启动内阻在前期多次测量值的方差Zvar=0;
S302,对启动内阻在前期多次测量值的方差Zvar进行计算:
Zvar=Zvar*(n-1)/n+(Z-Zmean)^2/(n+1);
S303,启动内阻在前期吞吐量小于100kWh时的均值Zmean进行计算:
Zmean=n*(Zmean+Z/SohResPrd)/(n+1);
其中SohResPrd为电池内阻健康度的预测值;
S304,递归学习发生的次数n总数加1,并返回步骤S302。
电池寿命的初期,具体的界限根据电池寿命模型来选,电池电阻变化很慢可以视为不变。不同温度下测量到的内阻需要根据比例统一换算到25度的内阻值。通过递归算法可以学习到电池电阻的均值和方差。这个方差相当于是在衡量通过启动信号测量内阻的不确定度。可以作为Kalman滤波的输入。
作为优选,所述步骤S4具体包括:
S401,初始化预测状态:记电池寿命模型的上次输出值为SohResPrdHis,本次输出值为SohResPrdNow,则本周期预测模型内阻增量dSohResPrd=SohResPrdNow–SohResPrdHis;
当前电池启动内阻值预测值Predict=SohResCrd+dSohResPrd,其中SohResCrd为电池内阻健康度的修正值;
S402,建立测量方程:量测方程根据电阻比得到内阻为度量的电池寿命SohRes的量测值:
SohResMeas=Z/Zmean;
S403,对测量方程进行测量误差协方差计算:
量测方程误差的平方差R=Zvar/Zmean^2*(1+SohRes^2);
S404,对预测误差的协方差进行计算:
预测方程误差的平方差Q=(dSohResPrd*coeff)^2,coeff为电池电阻预测模型误差换算的新增误差系数;
卡尔曼估计的误差的平方差P=P+Q;
S405,计算卡尔曼系数K=P/(P+R);
S406,计算电池内阻健康度的修正值SohResCrd=Predict+K*(SohResMeas-Predict);
S407,计算电池内阻健康度的修正值的协方差SohResCrd_P=(1-K)SohResCrd_P。
本发明采用Kalman滤波的原因是为了合理计算由启动内阻和寿命模型计算的SohRes的权重,学习过程结束后每次成功的启动事件会触发kalman修正。
作为优选,所述电池电阻预测模型误差换算的新增误差系数coeff=8%/50%,其含义为新增50%的SohRes后,预测模型精度从0%升到为8%。
作为优选,所述卡尔曼估计的误差的平方差P的值转换为3σ的的不确定度,其过程为:状态方程和量测方程的左边SOH,所以其转换矩阵H化简为1,故而有K=PH/(HPH+R)=P/(P+R),为了方便用户使用,P的值转换为3σ的不确定度,转换公式为:U(SohRes)=3sqrt(P);其中U(SohRes)为不确定度,sqrt(P)为卡尔曼估计的误差的平方差P的相关参数。当SohRes=140%,U(SohRes)=5%,则此时的电池寿命有99.7%的概率落在[135%,145%]之间。所以通过卡尔曼滤波器计算SohRes的另一个好处是:可以通过计算让终端客户获得对SohRes精度的感性认识。
本发明以下有益效果:递归学习减少了内存的占用还加快了计算速度。通过实际电阻变化来衡量电池电阻健康状态SOH,还可以把不在工况内的意外事故对内阻的影响反馈到电池电阻健康状态SOH上,解决了单独有电池寿命模型预测的主要缺陷。通过提升采样率和合理滤波来控制量测方程误差的平方差R的大小,可以直接根据启动内阻的变化计算出寿命终结SohRess的值,从而摆脱对电池寿命模型的依赖。不再依赖电池等效模型,防止误差传递,不依赖外部硬件电路,节约成本和空间。根据电池的实际响应。对寿命模型的输出做修正,纠正后期误差逐渐增大的问题。
附图说明
图1是本发明的流程图;
图2是尖峰检测运算图;
图3是递归学习运算图;
图4是Kalman修正运算图;
图5是运行9年的仿真数据图。
具体实施方式
本实施例提出一种基于卡尔曼滤波器修正电池内阻寿命模型的方法,参考图1,包括以下步骤:
S1,尖峰检测步骤,把启动时刻的大脉冲筛选出来;参考图2,步骤S1具体包括:
S101,当电池管理系统收到点火信号,闭合继电器后,检测输出电流和电压,判断时间是否大于1s,若否,记录最小电压Vmin和最大电流Imax,并进行步骤S102,若是,进行步骤S103;
S102,判断最小电压Vmin是否等于实时电芯电压Volt(t),若是,独立计算对象detectCnt总数加1,若否,返回步骤S101;
S103,判断独立计算对象detectCnt是否大于正常启动信号的尖峰出现最小计数ticksMin且小于正常启动信号的尖峰出现最大计数ticksMax,若是,计算启动信号上的最大压降dV,并生成尖峰可用判断值Valid_flag=1,若否生成尖峰可用判断值Valid_flag=0。
监听1s的输出电流和电压。由于电机启动。期间会输出一个大电流,产生一个比较大的压降。这个模块需要选出最低电压和大电流。稍后对这两个值做除法便可电池电阻。若其尖峰出现的位置不符合预期,则认为启动异常。
计算启动信号上的最大压降dV=上电时量测到的第一个有效电压Vinit-最小电压Vmin。
S2,根据尖峰发生相对于上电的时序判定尖峰检测是否可用,若可用启动电池内阻寿命模型修正;步骤S2具体包括:
S201,判断尖峰可用判断值Valid_flag是否等于1,若是,进行步骤S202,若否,上周期的修正结果和本周期的修正结果复位;
S202,判断本周期电池内阻健康度的预测值SohResPrd是否大于105%或输出功率是否大于100kWh,若是,则进行步骤S4,若否则进行步骤S3;
S3,递归学习阶段,计算电池电阻的平均值和方差;参考图3,步骤S3具体包括:
S301,初始化参数:递归学习发生的次数n=1,启动内阻在前期吞吐量小于100kWh时的均值Zmean=Z,启动内阻在前期多次测量值的方差Zvar=0;
S302,对启动内阻在前期多次测量值的方差Zvar进行计算:
Zvar=Zvar*(n-1)/n+(Z-Zmean)^2/(n+1);
S303,启动内阻在前期吞吐量小于100kWh时的均值Zmean进行计算:
Zmean=n*(Zmean+Z/SohResPrd)/(n+1);
其中SohResPrd为电池内阻健康度的预测值;
S304,递归学习发生的次数n总数加1,并返回步骤S302。
电池寿命的初期,具体的界限根据电池寿命模型来选,电池电阻变化很慢可以视为不变。不同温度下测量到的内阻需要根据比例统一换算到25度的内阻值。通过递归算法可以学习到电池电阻的均值和方差。这个方差相当于是在衡量通过启动信号测量内阻的不确定度。可以作为Kalman滤波的输入。
S4,卡尔曼修正步骤,根据电池的启动信号修正寿命模型的输出。参考图4,步骤S4具体包括:
S401,初始化预测状态:记电池寿命模型的上次输出值为SohResPrdHis,本次输出值为SohResPrdNow,则本周期预测模型内阻增量dSohResPrd=SohResPrdNow–SohResPrdHis;
当前电池启动内阻值预测值Predict=SohResCrd+dSohResPrd,其中SohResCrd为电池内阻健康度的修正值;
S402,建立测量方程:量测方程根据电阻比得到内阻为度量的电池寿命SohRes的量测值:
SohResMeas=Z/Zmean;
S403,对测量方程进行测量误差协方差计算:
量测方程误差的平方差R=Zvar/Zmean^2*(1+SohRes^2);
S404,对预测误差的协方差进行计算:
预测方程误差的平方差Q=(dSohResPrd*coeff)^2,coeff为电池电阻预测模型误差换算的新增误差系数;
卡尔曼估计的误差的平方差P=P+Q;
S405,计算卡尔曼系数K=P/(P+R);
S406,计算电池内阻健康度的修正值SohResCrd=Predict+K*(SohResMeas-Predict);
S407,计算电池内阻健康度的修正值的协方差SohResCrd_P=(1-K)SohResCrd_P。
本发明采用Kalman滤波的原因是为了合理计算由启动内阻和寿命模型计算的SohRes的权重,学习过程结束后每次成功的启动事件会触发kalman修正。电池电阻预测模型误差换算的新增误差系数coeff=8%/50%,其含义为新增50%的SohRes后,预测模型精度从0%升到为8%。
卡尔曼估计的误差的平方差P的值转换为3σ的的不确定度,其过程为:状态方程和量测方程的左边SOH,所以其转换矩阵H化简为1,故而有K=PH/(HPH+R)=P/(P+R),为了方便用户使用,P的值转换为3σ的不确定度,转换公式为:U(SohRes)=3sqrt(P);其中U(SohRes)为不确定度,sqrt(P)为卡尔曼估计的误差的平方差P的相关参数。当SohRes=140%,U(SohRes)=5%,则此时的电池寿命有99.7%的概率落在[135%,145%]之间。所以通过卡尔曼滤波器计算SohRes的另一个好处是:可以通过计算让终端客户获得对SohRes精度的感性认识。
发明利用Kalman 滤波器完成了SOH计算的闭环控制。使得SOH的误差可以有效控制。并提供置信区间。参考图5,SOHcorr为SohRes的计算结果,SOHres_predict 为寿命模型的输出,SOHres_meas为根据启动内阻计算的SohRes。仿真结束后,结果的3σ不确定度为2.51%。
本发明以下有益效果:递归学习减少了内存的占用还加快了计算速度。通过实际电阻变化来衡量电池电阻健康状态SOH,还可以把不在工况内的意外事故对内阻的影响反馈到电池电阻健康状态SOH上,解决了单独有电池寿命模型预测的主要缺陷。通过提升采样率和合理滤波来控制量测方程误差的平方差R的大小,可以直接根据启动内阻的变化计算出寿命终结SohRess的值,从而摆脱对电池寿命模型的依赖。不再依赖电池等效模型,防止误差传递,不依赖外部硬件电路,节约成本和空间。根据电池的实际响应。对寿命模型的输出做修正,纠正后期误差逐渐增大的问题。
机译: 基于健康指标的备用寿命模型的自适应修正状态估算电池备用寿命的装置,方法和计算机程序产品
机译: 基于卡尔曼滤波器和FIR滤波器的视频编码器速率控制方法
机译: 基于数值逆运动学,计算机可读介质和服务器系统的基于无味卡尔曼滤波器的人体姿态估计方法