首页 > 编程知识 正文

卡尔曼滤波定位算法代码,卡尔曼滤波详解及github代码

时间:2023-05-05 07:19:30 阅读:226320 作者:2100

本发明涉及锂电池领域,尤其是一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法。

背景技术:

:由于非可再生能源的日益短缺以及人们对环保问题的日益重视,电动汽车以其高节能、零污染的特点,逐渐成为用户的主流选择。动力电池作为电动汽车的核心部件之一,一直是电动汽车研发的重点。要对电动汽车的电池进行维护和管理,保障电池安全高效地运行,优化电动汽车的续驶里程和驾驶体验,首先需要对电池的运行状态做出有效的估计。电池的运行状态包括荷电状态(StateofCharge,SOC)、功率状态(StateofPower,SOP)、能量状态(StateofEnergy,SOE)等,其中SOC的准确估计是其他状态估计的基础。目前,比较经典的SOC估计方法包括安时积分法、开路电压法以及卡尔曼滤波方法等。其中,安时积分法公式简单,但是依赖于初始值,当初始SOC存在误差时,估算出来的SOC将一直存在误差,另外,安时积分法对传感器精度和采样频率要求较高。开路电压法实现简单,当电池充分静置后,通过查表即可得到电池的SOC,但是静置时间往往过长,应用场景受限。卡尔曼滤波方法利用最小均方误差准则对动态线性系统的状态作出估计,可以估算工作过程中的电池SOC,但是由于电池属于复杂的非线性系统,应用效果并不理想。技术实现要素:为了克服上述现有技术存在的不足,为此,本发明提供一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法。为实现上述目的,本发明采用以下技术方案:一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法,包括以下步骤,S1、建立锂电池等效电路模型;S2、用锂电池开路电压VOC代替电流源E,根据锂电池等效电路模型,建立系统的第一状态方程和第一量测方程;S3、第一状态方程和第一量测方程分别类比EKF算法,分别获得第二状态方程和第二量测方程;S4、利用EKF算法估算锂电池的荷电状态SOC。详细地说,步骤S4具体包括以下步骤:S41、计算状态的一步预测和计算协方差的一步预测;S42、计算atgdxxm;S43、计算状态更新方程和协方差更新方程。详细地说,其中步骤S1中,等效电路模型包括依次串联的电阻R0、由极化电阻Rp1和并联连接的极化电容Cp1组成的第一RC网络单元、由极化电阻Rp2和并联连接的极化电容Cp2组成的第二RC网络单元、电流源E,锂电池端电压Vt等于电流源E、电阻R0、第一RC网络单元、第二RC网络单元串联后电路两端的端电压。详细地说,所述第一状态方程为其中,SOCk+1是k+1时刻锂电池的荷电状态,Vp1,k+1为第一RC网络单元k+1时刻的极化电压,Vp2,k+1为第二RC网络单元k+1时刻的极化电压,Δt是采样周期,Ctotal是锂电池的总容量,ik是k时刻锂电池上的电流;第一测量方程为Vt,k=VOC(SOCk)-Vp1,k-Vp2,k-ikR0(2)其中,R0为锂电池内阻,VOC(SOCk)为由锂电池SOC数据查SOC-OCV表所得开路电压。详细地说,第二状态方程为X(k+1)=f[k,X(k)]+V(k)(3)第二测量方程为Z(k)=h[k,X(k)]+W(k)(4)其中Z(k)=Vt,k,V(k)和W(k)分别表示k时刻的过程噪声和量测噪声,V(k)和W(k)均用矩阵表示,SOCk是k时刻锂电池的荷电状态,Vp1,k为第一RC网络单元k时刻的极化电压,Vp2,k为第二RC网络单元k时刻的极化电压,Vt,k表示k时刻的锂电池端电压。详细地说,所述锂电池等效电路模型还包括过程噪声和量测噪声,所述过程噪声和量测噪声均为加性零均值白噪声,过程噪声方差为E[V(k)V′(j)]=Q(k)δkj(5)其中E[…]表示期望值,V′(j)表示j时刻的过程噪声的转置矩阵,Q(k)表示k时刻的过程噪声协方差,δkj表示克罗内克函数,当k=j时,δkj=1,否则δkj=0;量测噪声其方差为E[W(k)W′(j)]=R(k)δkj(6)W′(j)表示j时刻的量测噪声的转置矩阵,R(k)表示k时刻的量测噪声协方差;过程噪声和量测噪声序列是彼此不相关的。详细地说,在步骤S41中,计算状态的一步预测方程为计算协方差的一步预测方程为其中是f函数的雅克比矩阵;在步骤S42中,计算atgdxxm的方程为其中是h函数的雅克比矩阵;在步骤S43中,计算状态更新方程为计算协方差更新方程为其中,I为与协方差同维的单位矩阵;状态估计的初始值为协方差矩阵的初始值为P(0|0)。详细地说,在步骤S2中,约定充电电流为负,放电电流为正,第一RC网络单元电压的时间的函数为t表示时间;第二RC网络单元电压的时间的函数为锂电池端电压Vt电压的时间的函数为Vt=VOC-Vp1-Vp2-iR0(14)锂电池的荷电状态SOC为其中CN表示锂电池容量,SOC(0)表示初始状态时锂电池的荷电状态SOC将公式(12)(13)(15)离散化,得到公式(1),将公式(14)离散化,得到公式(2)。本发明的优点在于:(1)本发明中EKF算法不依赖于SOC初始值的设定,即使初始值设定与真实值差距较大,滤波过程也能在较短时间内收敛,得到较精确的SOC估计。(2)本发明中EKF算法有抑制随机噪声的特点,电压、电流等带有误差的量测量,在滤波过程中,会得到一定程度的抑制。(3)本发明中EKF算法可以得到SOC估计值的准确程度,不仅给出一个SOC估计,还可以给出其误差范围。(4)本发明算法复杂度低,将该方法对应的程序烧录至单片机即可实现,也适用于大规模的锂电池组中。附图说明图1为本发明一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法中锂电池等效电路模型。图2为本发明一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法中步骤S4中EKF算法执行流程图。图3为本发明一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法中锂电池放电电流曲线。图4为本发明采用EKF算法估计SOC的结果。具体实施方式一种利用扩展卡尔曼滤波算法估算锂电池SOC的方法,包括以下步骤,S1、建立锂电池等效电路模型;如图1所示,等效电路模型包括依次串联的电阻R0、由极化电阻Rp1和并联连接的极化电容Cp1组成的第一RC网络单元、由极化电阻Rp2和并联连接的极化电容Cp2组成的第二RC网络单元、电流源E,锂电池端电压Vt等于电流源E、电阻R0、第一RC网络单元、第二RC网络单元串联后电路两端的端电压。S2、用锂电池开路电压VOC代替电流源E,根据锂电池等效电路模型,建立系统的第一状态方程和第一量测方程;约定充电电流为负,放电电流为正,第一RC网络单元电压的时间的函数为t表示时间;第二RC网络单元电压的时间的函数为锂电池端电压Vt电压的时间的函数为Vt=VOC-Vp1-Vp2-iR0(14)锂电池的荷电状态SOC为其中CN表示锂电池容量,SOC(0)表示初始状态时锂电池的荷电状态SOC将公式(12)(13)(15)离散化,得到下述的公式(1),将公式(14)离散化,得到下述的公式(2)。所述第一状态方程为其中,SOCk+1是k+1时刻锂电池的荷电状态,Vp1,k+1为第一RC网络单元k+1时刻的极化电压,Vp2,k+1为第二RC网络单元k+1时刻的极化电压,Δt是采样周期,Ctotal是锂电池的总容量,ik是k时刻锂电池上的电流;第一测量方程为Vt,k=VOC(SOCk)-Vp1,k-Vp2,k-ikR0(2)其中,R0为锂电池内阻,VOC(SOCk)为由锂电池SOC数据查SOC-OCV表所得开路电压。S3、第一状态方程和第一量测方程分别类比EKF算法,分别获得第二状态方程和第二量测方程;第二状态方程为X(k+1)=f[k,X(k)]+V(k)(3)第二测量方程为Z(k)=h[k,X(k)]+W(k)(4)其中Z(k)=Vt,k,V(k)和W(k)分别表示k时刻的过程噪声和量测噪声,V(k)和W(k)均用矩阵表示,SOCk是k时刻锂电池的荷电状态,Vp1,k为第一RC网络单元k时刻的极化电压,Vp2,k为第二RC网络单元k时刻的极化电压,Vt,k表示k时刻的锂电池端电压。所述锂电池等效电路模型还包括过程噪声和量测噪声,所述过程噪声和量测噪声均为加性零均值白噪声,过程噪声方差为E[V(k)V′(j)]=Q(k)δkj(5)其中E[…]表示期望值,V′(j)表示j时刻的过程噪声的转置矩阵,Q(k)表示k时刻的过程噪声协方差,δkj表示克罗内克函数,当k=j时,δkj=1,否则δkj=0;量测噪声其方差为E[W(k)W′(j)]=R(k)δkj(6)W′(j)表示j时刻的量测噪声的转置矩阵,R(k)表示k时刻的量测噪声协方差;过程噪声和量测噪声序列是彼此不相关的。S4、利用EKF算法估算锂电池的荷电状态SOC,如图2所示,具体包括以下步骤。S41、计算状态的一步预测和计算协方差的一步预测;计算状态的一步预测方程为计算协方差的一步预测方程为其中是f函数的雅克比矩阵;S42、计算atgdxxm;计算atgdxxm的方程为其中是h函数的雅克比矩阵;S43、计算状态更新方程和协方差更新方程。计算状态更新方程为计算协方差更新方程为其中,I为与协方差同维的单位矩阵;状态估计的初始值为协方差矩阵的初始值为P(0|0)为了验证EKF算法对锂电池SOC估计的精度,使用标称容量为60Ah的电池包进行放电实验。使用电池管理系统(BatteryManagementSystem,BMS)使用上述方法估算和记录电池的SOC,电池管理系统BMS可以同时记录安时积分法和本发明所述EKF法估算所得SOC。锂电池包SOC有初始误差,放电电流为0~30A内变化的随机电流,每5s变化一次,电池管理系统BMS电流传感器存在测量误差,其测量的波形如图3所示。锂电池包连接充放电柜,以充放电柜记录电流计算得到的SOC值为真实值。分别使用安时积分法和EKF法估算得到的SOC值如图4所示。为了定量比较EKF算法的性能,表1分别给出了两种方法的误差。SOC算法最大误差(1%)均方根误差(1%)安时积分法4.48543.2326EKF法1.78900.9112表1从图4和表1的实验结果可以看出,EKF算法的精度高于传统安时积分方法,这说明了算法的优越性。以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。当前第1页1&nbsp2&nbsp3&nbsp

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。