第2章:电池基础与特性
各位同学,今天我们来聊聊电池本身。做SOC估算,说白了就是跟电池打交道。你不了解它的脾气,怎么可能算得准?
我刚开始做BMS那会儿,就吃过这个亏。当时觉得算法调好了就行,结果电池老化后,SOC直接飘了10%。嗯,从那以后,我老老实实把电池特性摸了个透。
2.1 锂离子电池工作原理
锂离子电池怎么工作的?简单说,就是锂离子在正负极之间来回跑。
充电时,锂离子从正极跑出来,穿过电解液,钻进负极。放电时,它们又跑回正极。你想想看,这不就是摇椅吗?所以业内也叫它“摇椅电池”。
具体来说:
- 正极材料:常见的有磷酸铁锂(LFP)、三元锂(NCM)等。不同材料,电压平台不一样。
- 负极材料:基本都是石墨。锂离子嵌入到石墨层间。
- 电解液:锂离子游泳的介质。温度低了,游得慢;温度高了,容易出事。
核心要点:锂离子电池是“嵌入/脱出”反应,不是化学反应。所以理论上可逆,但实际总有损耗。
2.2 电池模型
做SOC估算,你得有个模型来描述电池的行为。模型太简单,算不准;太复杂,算不动。我个人习惯,从简单到复杂,逐步迭代。
2.2.1 Rint模型
最简单的模型。一个理想电压源串联一个内阻。
V(t) = OCV(SOC) - I(t) * R0
其中:
- V(t) 是端电压
- OCV(SOC) 是开路电压,跟SOC有关
- I(t) 是电流(放电为正)
- R0 是内阻
这个模型太粗糙了。我在项目里只用它做快速估算,精度嘛,别指望太高。
注意:Rint模型忽略了电池的极化效应。动态工况下,误差能到5%以上。
2.2.2 Thevenin模型
比Rint模型多了一个RC并联环节。用来模拟电池的极化效应。
V(t) = OCV(SOC) - I(t)*R0 - Vp(t)
dVp/dt = I(t)/Cp - Vp(t)/(Rp*Cp)
这里:
- Vp 是极化电压
- Rp 是极化电阻
- Cp 是极化电容
这个模型我用了很多年。精度够用,计算量也不大。做卡尔曼滤波SOC估算时,这是标配。
我的经验:Thevenin模型的参数(R0、Rp、Cp)会随温度和SOC变化。建议做查表,别用固定值。
2.2.3 PNGV模型
这是美国PNGV(Partnership for a New Generation of Vehicles)项目提出的模型。比Thevenin多了一个电容,用来模拟开路电压随SOC的变化。
V(t) = OCV(SOC) - I(t)*R0 - Vp(t) - (1/Cb)*∫I(t)dt
多出来的Cb是电池的“容量电容”。说白了,就是电池能存多少电。
这个模型精度更高,但参数辨识也更麻烦。我曾经在一个项目中用过,效果不错,但调试周期长了三倍。
| 模型 | 复杂度 | 精度 | 适用场景 |
|---|---|---|---|
| Rint | 低 | 低 | 快速估算 |
| Thevenin | 中 | 中 | 大多数BMS |
| PNGV | 高 | 高 | 高精度需求 |
2.3 开路电压(OCV)与SOC的关系
OCV-SOC曲线,是SOC估算的基石。你想想看,如果电池静置足够久,端电压就等于OCV。查一下曲线,SOC就知道了。
但这里有个坑:OCV-SOC曲线不是线性的。
- 磷酸铁锂:中间有一段很平,电压变化很小。SOC从20%到80%,电压可能只变0.1V。这就麻烦了,电压稍微测不准,SOC就偏了。
- 三元锂:曲线比较陡,电压变化明显。估算起来容易些。
重要:OCV-SOC曲线受温度影响很大。低温下,曲线会整体下移。我建议至少做25°C、0°C、-20°C三组数据。
怎么获取OCV-SOC曲线?标准做法是:
- 电池充满电(SOC=100%)
- 静置2小时以上
- 记录OCV
- 放电5%的容量
- 再静置2小时
- 记录OCV
- 重复直到放完
这个过程很耗时。我曾经为了做一组完整的曲线,在实验室待了整整三天。
2.4 电池老化对SOC的影响
电池用久了,性能会下降。这对SOC估算影响很大。
主要变化有:
- 容量衰减:原本100Ah的电池,用两年可能只剩80Ah。如果你还用100Ah去算,SOC肯定偏大。
- 内阻增加:老电池内阻变大,同样的电流,压降更大。这会误导OCV的估算。
- OCV曲线漂移:老化后,OCV-SOC曲线会整体下移。特别是磷酸铁锂,变化更明显。
避坑指南:我曾经遇到过一个问题——电池用了半年后,SOC估算越来越不准。查了半天,发现是容量衰减了,但算法里还是用初始容量。从那以后,我坚持做容量在线更新。
怎么应对老化?我的建议是:
- 定期校准:利用电池完全充放电的机会,重新标定容量。
- 自适应算法:用卡尔曼滤波或神经网络,让模型参数跟着老化走。
- 多模型切换:准备几组不同老化程度的参数,根据循环次数切换。
好了,这一章的内容就到这里。电池基础打牢了,后面讲机器学习算法时,你才能理解为什么有些特征有用,有些没用。
下一章,我们开始讲数据采集与预处理。这可是机器学习项目的“脏活累活”,但也是最关键的一步。