基于二阶RC模型的扩展卡尔曼滤波在HPPC和1C放电工况下估算锂电池SOC

张开发
2026/4/16 3:09:03 15 分钟阅读

分享文章

基于二阶RC模型的扩展卡尔曼滤波在HPPC和1C放电工况下估算锂电池SOC
锂电池SOC估计基于二阶RC模型的扩展卡尔曼滤波估算SOC 验证工况HPPC 和 1C放电锂电池SOC估计这玩意儿说难不难但真要实操起来到处都是坑。今天咱们就拿二阶RC模型开刀用扩展卡尔曼滤波EKF整点实在的。先甩个模型结构图镇楼——等效电路里藏着两个RC环节专门对付电池的动态特性比一阶模型能多抓点极化效应。先上硬菜模型的状态方程得离散化处理。代码里这个predict_state函数看着简单实际上藏着非线性变换的玄机def predict_state(soc, v1, v2, current, dt, R1, C1, R2, C2): soc_new soc - dt/(3600*capacity) * current v1_new np.exp(-dt/(R1*C1)) * v1 R1*(1 - np.exp(-dt/(R1*C1))) * current v2_new np.exp(-dt/(R2*C2)) * v2 R2*(1 - np.exp(-dt/(R2*C2))) * current return soc_new, v1_new, v2_new这里的三行代码处理了SOC和两个极化电压的更新。注意指数项里的时间常数处理R1C1和R2C2这两个时间常数要是没辨识准整个模型直接翻车。锂电池SOC估计基于二阶RC模型的扩展卡尔曼滤波估算SOC 验证工况HPPC 和 1C放电雅可比矩阵的计算是EKF的灵魂特别是对OCV-SOC曲线的求导。实验室老司机都懂这里用spline插值比多项式拟合稳得多from scipy.interpolate import UnivariateSpline ocv_spline UnivariateSpline(soc_data, ocv_data, s0) dOCV_dSOC ocv_spline.derivative()实测某三元电池的dOCV/dSOC曲线在30%SOC附近斜率能达到80mV/%这个陡峭区域就是EKF发力的黄金地段。但碰到SOC在50%左右的平台区卡尔曼增益立马怂成狗这时候就得靠模型精度硬扛了。跑HPPC工况验证时发现个反直觉的现象——脉冲放电时的SOC估计误差反而比静置时小。盯着协方差矩阵的变化才明白剧烈电流波动给系统带来了更多观测信息。反倒是1C恒流放电时误差会像温水煮青蛙一样慢慢累积这时候自适应噪声协方差的trick就派上用场了。最后给个实战建议别死磕EKF的参数整定先把HPPC测试做扎实。模型参数随SOC变化搞个二维查表比用固定参数估计精度能提升至少3个百分点。另外测量噪声协方差矩阵别设太小留点余量给传感器误差毕竟BMS采集的电流波动比实验室设备野多了。

更多文章