2. 电池基础与建模:从原理到参数辨识
做BMS这么多年,我最大的感触就是:SOC估算准不准,七分靠模型,三分靠算法。模型建不好,后面卡尔曼滤波玩出花来也救不了。今天咱们就把电池建模这块硬骨头啃下来。
核心观点:等效电路模型是工程实践中最实用的电池模型。它不像电化学模型那么复杂,又能满足SOC估算的精度要求。
2.1 电池工作原理——你得先懂它怎么干活
锂离子电池说白了就是一个摇椅。锂离子在正负极之间来回跑,充电时从正极跑到负极,放电时再跑回来。我刚开始做BMS时,总觉得这原理太简单了,没必要深究。直到有一次项目里遇到低温下SOC跳变的问题,追根溯源才发现是忽略了锂离子扩散速率随温度变化的特性。
电池的几个关键参数,你得刻在脑子里:
- OCV(开路电压):静置足够长时间后的端电压,和SOC有单调对应关系
- 内阻:包括欧姆内阻和极化内阻,前者是导体电阻,后者是电化学反应阻力
- 容量:能放出多少电,单位Ah,会随循环次数衰减
我的经验:OCV-SOC曲线是电池的"指纹"。同一批电芯,曲线形状基本一致,但不同厂家、不同化学体系的电池,曲线差异很大。拿到新电池,第一件事就是测OCV曲线。
2.2 等效电路模型——三种主流方案对比
为什么要用等效电路模型?因为真实电池内部的电化学反应太复杂了,我们没法直接测量。用电阻、电容这些元件搭个电路,让它的外特性跟真实电池一样,这就是建模的思路。
2.2.1 Rint模型——最简单,也最粗糙
Rint模型就是一个理想电压源串一个电阻。公式很简单:
U = OCV - I * R0
其中U是端电压,OCV是开路电压,I是电流(放电为正),R0是欧姆内阻。
这个模型的问题很明显:它假设电池内阻是常数。但实际电池的内阻会随SOC、温度、电流方向变化。我在一个早期项目里用过Rint模型做SOC估算,结果误差能到10%以上,后来果断放弃了。
避坑指南:我曾经见过有人用Rint模型做快充策略,结果因为没考虑极化效应,充电后期电压预测偏差大,导致充电过早终止。Rint模型只适合做非常粗略的估算,别在精度要求高的场合用。
2.2.2 Thevenin模型——工程中最常用
Thevenin模型在Rint基础上加了一组RC并联环节,用来模拟极化效应。一阶Thevenin模型的结构是:
U = OCV - I * R0 - Up
其中Up是极化电压,满足:
d(Up)/dt = I/Cp - Up/(Rp * Cp)
为什么加一组RC就够了?你想想看,电池的极化效应其实可以分解为活化极化和浓差极化,时间常数不同。一阶模型用一个RC环节近似所有极化,二阶模型用两个RC环节分别模拟快慢两种极化。
我个人习惯:动力电池用一阶Thevenin就够了。二阶模型参数多,辨识起来麻烦,精度提升有限。储能电池对精度要求高,可以考虑二阶。
| 模型阶数 | 参数数量 | 精度 | 计算量 | 适用场景 |
|---|---|---|---|---|
| 一阶 | 3个(R0, Rp, Cp) | 中等 | 低 | 动力电池、实时估算 |
| 二阶 | 5个(R0, Rp1, Cp1, Rp2, Cp2) | 较高 | 中等 | 储能电池、离线分析 |
2.2.3 PNGV模型——考虑容量衰减
PNGV模型是Thevenin的升级版,多了一个电容Cb用来模拟容量变化。这个模型是美国PNGV(Partnership for a New Generation of Vehicles)项目提出的,专门针对混合动力汽车。
说实话,PNGV模型在实际工程中用得不多。原因很简单:容量衰减的建模太复杂,Cb的辨识需要大量循环老化数据。我在一个项目中试过PNGV模型,最后发现参数辨识的难度远大于精度提升的收益,又换回Thevenin了。
我的建议:新手从一阶Thevenin模型入手,先把基础打牢。等遇到精度瓶颈了,再考虑升级到二阶或PNGV模型。
2.3 模型参数辨识方法——把模型"教会"
模型结构选好了,接下来就是确定参数值。参数辨识说白了就是让模型的输出尽量接近真实电池的测量数据。
2.3.1 离线辨识——HPPC测试法
HPPC(Hybrid Pulse Power Characterization)是行业标准方法。步骤很简单:
- 把电池充到指定SOC,静置1小时
- 用大电流放电10秒,记录电压响应
- 静置40秒,记录电压恢复
- 用同样电流充电10秒,再静置
- 重复以上步骤,覆盖整个SOC范围
从HPPC数据中提取参数的方法:
# 欧姆内阻R0的提取
R0 = (U1 - U2) / I # 电流突变瞬间的电压差除以电流
# 极化参数Rp、Cp的提取
# 用指数拟合静置段的电压恢复曲线
U(t) = OCV - Up0 * exp(-t / tau) # tau = Rp * Cp
我的经验:HPPC测试时,电流脉冲的持续时间要足够长,让极化充分建立。我一般用10秒脉冲,时间太短极化没建立起来,参数辨识不准。
2.3.2 在线辨识——实时更新参数
离线辨识的参数是固定的,但电池会老化、温度会变化。在线辨识就是边运行边更新参数。常用方法有:
- 递推最小二乘法(RLS):计算量小,适合嵌入式实现
- 卡尔曼滤波:把参数也当作状态变量,联合估计
- 神经网络:数据驱动,但需要大量训练数据
我个人最常用RLS。它简单、稳定,在MCU上跑毫无压力。但要注意:RLS对激励信号有要求,如果电流一直不变,参数会发散。我一般会加一个"遗忘因子",让旧数据的影响逐渐衰减。
避坑指南:我曾经在一个项目中,在线辨识的参数突然跳变,导致SOC估算也跟着跳。查了两天才发现是电流传感器有零漂,RLS把零漂也"辨识"成内阻变化了。所以,在线辨识前一定要做好传感器校准。
2.4 本章知识体系
下面这张图总结了电池建模的核心逻辑,从原理到模型再到参数辨识,是一条完整的技术路线:
从这张图可以看得很清楚:电池原理是基础,等效电路模型是桥梁,参数辨识是手段,最终目标是为SOC估算服务。每一步都环环相扣,哪一步做不好,最终估算精度都会受影响。
本章小结:
- 电池工作原理是建模的基础,理解锂离子"摇椅"机制有助于把握模型本质
- 一阶Thevenin模型是工程实践的最佳平衡点,推荐新手入门
- HPPC测试是离线辨识的标准方法,参数提取用指数拟合
- 在线辨识推荐RLS,但要注意激励条件和传感器校准
公众号:蓝海资料掘金营,微信deep3321