4. 电量计算基础:开路电压法与库仑计数法
各位同学,今天我们来聊聊电量计算最核心的两个方法。说实话,我刚入行那会儿,觉得电量估算不就是看看电压吗?后来在项目里吃了不少亏,才明白这里面的门道有多深。
咱们扫地机电池的电量,说白了就是「还剩多少电」。但怎么算准它,一直是行业里的难题。今天我把两种最基础的方法掰开揉碎了讲给你听。
4.1 开路电压法(OCV)估算电量
开路电压法,英文叫 Open Circuit Voltage,简称 OCV。原理特别简单:电池静置的时候,电压和剩余电量之间存在一一对应的关系。
你想想看,就像看油表一样。油箱里油多,浮子就高;电池电量足,开路电压就高。这个关系不是线性的,但可以通过实验标定出来。
核心公式:
SoC = f(Voc)
其中 Voc 是开路电压,f 是标定好的映射函数。
我在项目里做过一个实验:把一块18650电池从满电放到空电,每放5%电量就静置1小时,记录电压。最后画出来的曲线长这样:
| SoC (%) | 开路电压 (V) | 备注 |
|---|---|---|
| 100 | 4.20 | 满电状态 |
| 80 | 3.95 | 平台区 |
| 50 | 3.70 | 中间点 |
| 20 | 3.50 | 开始陡降 |
| 0 | 3.00 | 截止电压 |
看到没?中间那段(20%-80%)电压变化很平缓,这就是所谓的「平台区」。在这个区间里,电压变化一点点,电量可能差很多。嗯,这里要注意,OCV法在平台区的精度其实不太行。
我的经验:OCV法最适合用在电池静置超过30分钟的场景。扫地机回充后、或者长时间待机时,用这个方法最准。我曾经在客户现场调试,发现刚停止工作的电池电压虚高,直接查表会多估20%的电量,后来强制加了静置延时才解决。
4.2 库仑计数法原理
库仑计数法,英文叫 Coulomb Counting。说白了就是数电荷。你想想看,电流乘以时间就是电荷量,对吧?
公式很简单:
SoC(t) = SoC(t₀) + (1/Qₙ) × ∫₀ᵗ I(τ) dτ
其中:
- SoC(t₀) 是初始电量
- Qₙ 是电池额定容量(单位:Ah)
- I(τ) 是瞬时电流(充电为正,放电为负)
实际代码实现长这样:
class CoulombCounter:
def __init__(self, initial_soc=50.0, capacity_ah=2.5):
self.soc = initial_soc # 初始电量百分比
self.capacity = capacity_ah # 电池容量,单位Ah
self.accumulated_charge = 0.0 # 累积电荷,单位Ah
def update(self, current_a, delta_t_hours):
"""
更新电量
current_a: 当前电流,单位A(正=充电,负=放电)
delta_t_hours: 时间间隔,单位小时
"""
delta_charge = current_a * delta_t_hours
self.accumulated_charge += delta_charge
self.soc = (self.accumulated_charge / self.capacity) * 100
# 限幅处理
self.soc = max(0.0, min(100.0, self.soc))
return self.soc
这段代码看着简单,但实际用起来坑不少。我刚开始做的时候,以为只要累加电流就行,结果误差越跑越大。
避坑指南:我曾经在一个扫地机项目里,库仑计数跑了3天,电量显示从100%掉到了-15%。查了半天,发现是电流采样偏了2mA。2mA啊兄弟们,一天就是48mAh,三天就是144mAh,占电池容量的6%。所以定期校准是必须的。
4.3 两种方法的优缺点对比
好了,两种方法都讲完了。咱们来做个对比,我直接给你上表格:
| 对比项 | 开路电压法(OCV) | 库仑计数法 |
|---|---|---|
| 原理 | 电压-电量映射 | 电流积分 |
| 精度 | 平台区差(±5%~10%) | 短期准(±1%~3%) |
| 长期稳定性 | 好,无累积误差 | 差,有累积误差 |
| 实时性 | 需要静置,不能实时 | 可以实时更新 |
| 硬件要求 | 只需电压采样 | 需要电流采样 |
| 温度影响 | 大,需温度补偿 | 小,主要影响容量 |
| 适用场景 | 待机、回充后校准 | 工作过程中实时估算 |
我个人习惯的做法是:两者结合。平时用库仑计数法实时跟踪,每次电池静置超过30分钟,就用OCV法校准一次初始值。这样既保证了实时性,又避免了累积误差。
核心结论:
- OCV法像「路标」—— 告诉你现在大概在哪个位置,但不能实时跟踪
- 库仑计数法像「计步器」—— 每一步都算得很准,但走久了会偏
- 最好的方案是:用OCV做定期校准,用库仑计数做实时跟踪
最后说一句,这两种方法都是基础。实际产品里还会用到卡尔曼滤波、神经网络这些高级算法。但基础不牢,地动山摇。把OCV和库仑计数吃透了,后面的内容你学起来会轻松很多。
下一章我们讲温度对电池的影响,以及怎么补偿。到时候我会分享一个我在量产项目中踩过的坑,保证让你印象深刻。