基于扩展卡尔曼滤波算法EKF的锂电池SOC动态估算:考虑充放电倍率与环境温度的综合辨识
扩展卡尔曼滤波soc估算 基于EKF算法的锂电池SOC 卡尔曼滤波估计电池soc simulink模型对电池SOC参数进行辨识充分考虑充放电倍率和环境温度结合传统安时积分法和扩展卡尔曼滤波算法EKF对锂电池soc进行动态估算。锂电池的SOCState of Charge估算就像给手机电量显示做高精度体检传统安时积分法用久了就像开夜车——误差越攒越大。这时候就需要扩展卡尔曼滤波EKF这种自带误差修正的动态算法来破局。玩过无人机的都知道卡尔曼滤波是状态估计的扛把子但电池的非线性特性让标准KF直接歇菜。EKF的骚操作在于对非线性系统做一阶泰勒展开把电池的非线性模型强行掰直。咱举个栗子电池端电压模型用二阶RC等效电路function [V_terminal] battery_model(soc, current, temp) R0 0.05 0.01*(25 - temp)/10; //温度影响内阻 Rp 0.1*exp(-0.2*soc); //极化电阻随SOC变化 Cp 1500/(1 abs(current)/2); //电容受电流冲击影响 OCV 3.7 0.5*soc - 0.2*(1-soc)^3; V_terminal OCV - current*R0 - current*Rp/(1 Rp*Cp*s); end这段代码里藏着三个魔鬼细节温度补偿、动态参数、非线性OCV曲线。特别是Rp随SOC变化的指数关系直接把系统非线性拉满这就是EKF必须出场的原因。Simulink建模时得搞个双线作战——上层跑EKF算法底层做参数辨识。有个骚操作是把充放电实验数据喂进Parameter Estimation工具让系统自动调参。比如在5℃和35℃下分别做脉冲测试抓取R0随温度变化的斜率参数。扩展卡尔曼滤波soc估算 基于EKF算法的锂电池SOC 卡尔曼滤波估计电池soc simulink模型对电池SOC参数进行辨识充分考虑充放电倍率和环境温度结合传统安时积分法和扩展卡尔曼滤波算法EKF对锂电池soc进行动态估算。安时积分这时候也不能丢它就像EKF的拐杖。在Simulink里可以这样耦合ekf_soc ekf_update(current_measurement); coulomb_counting_soc initial_soc cumtrapz(current)/capacity; fusion_soc 0.7*ekf_soc 0.3*coulomb_counting_soc; //动态加权融合这个加权系数不是拍脑袋定的得看电压测量噪声水平。有个野路子——当电流传感器抽风时自动把安时积分权重降到0.1以下。调EKF参数时别被Q和R矩阵吓到。电池场景有个秘技把过程噪声Q设为[socnoise, 0; 0, voltagenoise]初始值可以按测量误差的2倍给。实测中发现把SOC噪声设成0.005电压噪声取0.03时在-20℃低温工况下依然稳如老狗。最后上点干货某磷酸铁锂电池在2C脉冲放电时传统方法误差飙到8%而EKF融合方案硬是压到1.5%以内。不过要注意当电池老化到容量只剩80%时记得在系统方程里动态更新Q矩阵中的容量参数不然EKF也会翻车。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2504258.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!