核心内容摘要
Z-Image-Turbo实战:生成专属孙珍妮风格壁纸
不同工况DST FUDS HPPC电池参数在线辩识包括一阶模型二阶模型带ocv同时参数辩识EKF ffrls两种在线辩识算法。
参数辩识加容量同时在线辩识附赠simulink模型用于仿真验证。
电池模型在线辨识这玩意儿搞过的人都知道有多酸爽。
今天咱们直接上硬货聊聊怎么在DST、FUDS这些变态工况下玩转一阶二阶模型的在线参数辨识重点带大家手撕EKF和FFRLS两种算法的实现套路。
先看模型结构。
一阶RC模型大家应该熟得不能再熟了典型的结构就是R0串联个RC并联网络代码里直接写成C14700e-4;R
1
02这种数值。
但遇到SOC-OCV曲线变化剧烈的情况二阶模型就得祭出来了——多加一个RC网络状态方程直接变成双指数形式。
这里有个坑OCV辨识千万别直接用查表法咱们在代码里搞个多项式拟合比如ocv p(
soc^3 p(
soc^2 p(
*soc p(
参数p在线更新才够劲。
上EKF的代码核心部分长这样function [x_est, P] ekf_update(x_pred, P_pred, y, C, R) K P_pred * C / (C * P_pred * C R); x_est x_pred K * (y - C*x_pred); P (eye(
- K*C) * P_pred; end协方差矩阵P的初始化千万别随便设实测发现用[1e-3 0; 0 1e-5]这种量级才不会炸。
重点注意过程噪声Q和观测噪声R的调参——拿HPPC数据标定的时候电压残差超过20mV就说明Q设小了。
不同工况DST FUDS HPPC电池参数在线辩识包括一阶模型二阶模型带ocv同时参数辩识EKF ffrls两种在线辩识算法。
参数辩识加容量同时在线辩识附赠simulink模型用于仿真验证。
FFRLS的实现更带感核心是遗忘因子λ的魔法操作def ffrls(theta_old, P_old, y, phi, lambda_
0.
: K P_old phi / (lambda_ phi.T P_old phi) theta_new theta_old K * (y - phi.T theta_old) P_new (P_old - K phi.T P_old) / lambda_ return theta_new, P_new参数突变的场景下λ动态调整才是王道。
实测发现电流突变超过2C时把λ从
99降到
92能提升20%的跟踪速度。
容量辨识这厮最磨人关键在把Ah积分和参数辨识耦合。
代码里得搞个扩展状态向量比如x [Vc1; Vc2; Capacity]观测矩阵对应改成H [dOCV/dSOC, -1, -1]。
注意这时候EKF的Q矩阵要对容量状态加个微小扰动不然估计值会卡死。
最后甩出来的Simulink模型验证效果重点看FUDS工况下的电压拟合——二阶模型均方误差能压到9mV以下而一阶模型普遍在15mV左右扑街。
模型里记得埋个Real-Time Workshop模块在线调参的时候能实时观测参数变化曲线比看代码输出直观多了。
需要模型和完整代码的老铁私信暗号“电池老司机”自取包教包会