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、储能

采样误差主要来自三方面:

  1. 偏置误差:零点漂移,导致小电流时SOC漂移
  2. 增益误差:比例系数不准,大电流时误差放大
  3. 噪声干扰:高频噪声混入,积分后变成随机游走

我的经验:采样频率建议至少10Hz。太低会丢失电流脉冲细节,太高又增加MCU负担。我一般用20Hz,配合滑动平均滤波,效果不错。

4.3 积分误差分析:为什么安时积分会「飘」?

安时积分法最大的痛点,就是误差会累积。为什么会这样?

因为积分器本身没有「记忆消除」能力。你今天测偏了1mAh,明天再偏1mAh,一个月下来可能就偏了5%的SOC。说白了,这是一个纯开环系统

误差来源可以归纳为:

  • 电流采样误差:上面说的偏置、增益、噪声
  • 容量老化误差:Q_n是额定容量,但电池用久了实际容量会衰减
  • 库仑效率误差:η不是常数,跟温度、电流倍率、SOC都有关系
  • 时间累积误差:积分步长越长,误差越大

警告:千万不要以为安时积分法可以无限期使用。没有校准的情况下,一个月误差可能超过10%。我见过有人用纯安时积分跑了半年,SOC显示还有30%,实际电池已经亏电保护了。

4.4 初始SOC校准:从哪开始?

安时积分法需要一个初始值。这个初始值怎么来?

常见方法:

  1. 开路电压法(OCV):电池静置足够长时间后,查OCV-SOC表。这是最准的,但需要静置条件。
  2. 上次断电记忆:系统休眠前保存SOC,下次开机直接读取。但要注意自放电修正。
  3. 充电满充校准:当检测到充电完成(恒压段电流降到截止值),强制置SOC=100%。
  4. 放电截止校准:当电压降到放电截止电压且电流很小,强制置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