4、安时积分法(Ah Counting):安时积分原理、电流采样与积分误差分析、初始SOC校准与累积误差修正
4.1 安时积分法的核心原理
安时积分法,说白了就是「数库仑」。你想想看,电池里的电量,本质上就是电荷的累积。我们用一个电流表盯着它,流进去多少电荷,SOC就涨多少;流出来多少,SOC就跌多少。
数学上很简单:
SOC(t) = SOC(0) - (1 / Q_n) * ∫ η * I(t) dt
其中:
- SOC(0):初始SOC,这是起点
- Q_n:电池额定容量(Ah)
- η:库仑效率(充电时通常 < 1,放电时 ≈ 1)
- I(t):实时电流(放电为正,充电为负)
嗯,这里要注意:符号约定各家不一样。我个人习惯用「放电为正」,这样SOC曲线看起来是往下走的,符合直觉。
核心思想:安时积分法是一个开环积分器。它不依赖电池模型,只依赖电流测量的准确性。
4.2 电流采样:精度决定一切
我在项目中遇到过一件事:某款BMS样机,静态功耗测出来总是偏大。查了三天,最后发现是电流采样偏置没校准,零点漂了5mA。你想想看,5mA在1C放电时不算什么,但搁在静置状态,一晚上能漂掉1%的SOC。
电流采样常见方案:
| 方案 | 精度 | 成本 | 典型场景 |
|---|---|---|---|
| 分流器(Shunt) | ±0.5% ~ ±1% | 低 | 消费电子、低速车 |
| 霍尔传感器 | ±1% ~ ±3% | 中 | 大电流、隔离需求 |
| 磁通门(Fluxgate) | ±0.1% ~ ±0.5% | 高 | 高精度BMS、储能 |
采样误差主要来自三方面:
- 偏置误差:零点漂移,导致小电流时SOC漂移
- 增益误差:比例系数不准,大电流时误差放大
- 噪声干扰:高频噪声混入,积分后变成随机游走
我的经验:采样频率建议至少10Hz。太低会丢失电流脉冲细节,太高又增加MCU负担。我一般用20Hz,配合滑动平均滤波,效果不错。
4.3 积分误差分析:为什么安时积分会「飘」?
安时积分法最大的痛点,就是误差会累积。为什么会这样?
因为积分器本身没有「记忆消除」能力。你今天测偏了1mAh,明天再偏1mAh,一个月下来可能就偏了5%的SOC。说白了,这是一个纯开环系统。
误差来源可以归纳为:
- 电流采样误差:上面说的偏置、增益、噪声
- 容量老化误差:Q_n是额定容量,但电池用久了实际容量会衰减
- 库仑效率误差:η不是常数,跟温度、电流倍率、SOC都有关系
- 时间累积误差:积分步长越长,误差越大
警告:千万不要以为安时积分法可以无限期使用。没有校准的情况下,一个月误差可能超过10%。我见过有人用纯安时积分跑了半年,SOC显示还有30%,实际电池已经亏电保护了。
4.4 初始SOC校准:从哪开始?
安时积分法需要一个初始值。这个初始值怎么来?
常见方法:
- 开路电压法(OCV):电池静置足够长时间后,查OCV-SOC表。这是最准的,但需要静置条件。
- 上次断电记忆:系统休眠前保存SOC,下次开机直接读取。但要注意自放电修正。
- 充电满充校准:当检测到充电完成(恒压段电流降到截止值),强制置SOC=100%。
- 放电截止校准:当电压降到放电截止电压且电流很小,强制置SOC=0%。
我个人习惯是「多源融合」:平时用安时积分,但每次充满电时强制校准一次。如果静置超过2小时,用OCV法重新初始化。
// 伪代码示例:初始SOC校准逻辑
if (充电完成标志 == TRUE) {
SOC = 100.0;
积分清零;
} else if (静置时间 > 2小时 && 电流 < 静置阈值) {
SOC = OCV查表(开路电压);
积分清零;
} else {
// 使用上次保存的SOC
SOC = 上次SOC;
}
4.5 累积误差修正:怎么「拉回来」?
安时积分法的误差修正,核心思路就是找机会「归零」。
常用的修正策略:
- 满充修正:充电到100%时,强制修正。这是最可靠的修正点。
- 空电修正:放电到0%时,强制修正。但要注意,0%附近电池内阻很大,容易误判。
- 静置修正:利用OCV查表,修正中间段的SOC。但OCV曲线在中间段很平,精度有限。
- 模型辅助修正:结合卡尔曼滤波或扩展卡尔曼滤波,用电压残差修正积分误差。
关键点:修正不是「覆盖」,而是「融合」。我通常的做法是:当检测到可靠修正点时,用加权平均的方式更新SOC,权重取决于修正点的置信度。
举个例子:
// 加权修正示例
修正置信度 = 0.8; // 满充修正置信度高
SOC = 0.2 * SOC_积分 + 0.8 * SOC_修正;
这样既保留了积分法的连续性,又引入了修正点的准确性。
4.6 避坑指南
我曾经踩过一个坑:某款电池在低温下充电,库仑效率η变得很低。我用的还是常温下的η=0.98,结果SOC越充越少,最后显示负值。嗯,从那以后我养成了一个习惯——η必须随温度查表。
再分享一个:电流采样偏置校准。很多工程师只在产线校一次,但偏置会随温度漂移。我建议在BMS每次上电时做一次「零电流自校准」——如果检测到系统处于静置状态,采样电流应该接近0,这时候把偏置记下来,实时补偿。
小技巧:积分步长不要用固定时间,建议用「电流积分量」触发。比如每累积1mAh更新一次SOC,这样计算量均匀,误差也容易控制。
4.7 小结
安时积分法,说白了就是「简单但脆弱」。它不需要复杂的电池模型,实现起来很快,但误差累积是它的死穴。
在实际项目中,我从来不会只用纯安时积分。一定会搭配OCV校准、满充修正、甚至卡尔曼滤波。安时积分负责「短期精度」,校准机制负责「长期稳定」。
下一章我们会讲开路电压法(OCV),看看怎么用电压来反推SOC。这两种方法结合起来,效果会好很多。
公众号:蓝海资料掘金营,微信deep3321