Posted in

开发电池产品电池电量为什么跳变:从电压采样到SOC估算

开发电池供电设备时,我们常常会遇到这样一个问题:通过电池电压推算剩余容量,但电池电压很容易起伏,算出来的电量也跟着跳。

这是电池电量估算里最典型、也最头疼的现象之一:电池电压天生就是「晃」的,直接拿电压查表得到的剩余容量会跳来跳去,甚至出现越充显示越少的情况。 这不一定是测量不准,也可能是电池本身的特性和估算方法共同造成的。下面把原因和成熟做法讲清楚。

一、为什么电池电压会「起伏」

主要有两个原因,都是需要考虑的物理特性。

1. 负载波动:动态压降

电池有内阻 R_int。设备一拉电流,电压就会被拽低。用简化模型表示,放电时有:

V_端 ≈ V_开路 − I × R_int
  • 电机启动、射频发射、屏幕点亮、CPU 突发运算时,电流 I 会瞬间冲高,端电压随之下降。
  • 负载一撤掉,电压又弹回来。
  • 结果是:同一块电池,工作时的电压可能比静置时低几百 mV,你读到的可能是「被拉低」后的值。具体压降取决于电流、内阻及连接路径等条件。

2. 弛豫效应:电压恢复需要时间

负载撤掉后,电压不会立刻回到充分静置后的开路电压(OCV),而是需要一段时间慢慢恢复,可能从几秒延续到几十分钟甚至更久,具体取决于电芯和工作条件。所以,刚用完和刚充完时读到的电压,都不宜直接当作静置 OCV 来查表。

再加上温度、电池老化(内阻变大)等影响,同一电压值在不同温度、不同新旧状态下,可能对应不同的剩余电量与可用容量,不能给所有电池套用同一个误差百分比。ADI 的技术文章也讨论了温度和负载变化后的电压恢复问题。

可以把它理解为:电压里既包含与真实电量相关的信息,也混入了负载、温度和电池状态的影响。直接拿它当电量用,就容易把这些影响一起换算成电量变化。

二、成熟的解决办法:从简单到精准

方法 原理 精度特点 成本 适用场景
① 软件滤波(平均/低通) 把电压平滑后再查表 能改善跳变,不能消除负载偏差 通常无需新增硬件,有固件调试成本 对精度要求不高的小设备
② 空载/轻载采样 在设备休眠或轻载且电压趋稳时读电压 比直接用动态端电压更适合查表 需控制采样时机 有休眠周期的设备
③ 电流积分(库仑计数) 对充放电电流积分,统计流入和流出的电量 短期追踪较好,长期需处理漂移 需电流检测电路或相应芯片 需要连续追踪电量变化的设备
④ 模型融合/阻抗跟踪(如 TI Impedance Track) 结合电压、电流、温度和电池模型动态修正 配置与验证得当时,可适应更复杂工况 专用电量计 IC 及调试成本 对电量精度要求较高的产品

这些方法并非完全互斥。例如,使用库仑计数的电量计,也可能结合电压校准和阻抗模型。TI 的电池电量算法比较资料介绍了相关思路。

如果设备简单、想低成本改进

  • 在固件里加一个滑动平均或一阶低通滤波,例如从每 0.1 s 更新一次滤波值开始调试,让跳变平滑下来。采样周期和滤波强度要结合负载变化确定。
  • 在系统空闲或休眠阶段选择合适的采样窗口,避开大电流瞬间。若安排在唤醒后采样,要先确认 ADC、参考源和分压网络已经稳定,并尽量在大负载启动前完成。
  • 使用与电芯匹配、带温度维度的 OCV-SOC 查表数据,减少低温等条件造成的误判。轻载采样只是对开路状态的近似,不能自动等同于充分静置。

这里要分清:滤波让显示更稳,合适的采样条件与电芯数据才有助于估得更准。 如果 ADC 参考源、分压电阻或地线压降本身存在误差,也需要先检查采样电路。

如果需要更高的电量精度

可以评估一颗电量计 IC,选型时先分清电池串数和芯片功能:

  • 单节锂电:例如 TI BQ27441-G1,或者 ADI/原 Maxim 的 MAX17048。两者算法不同,不能统一理解为库仑计数方案。
  • 1~2 串电池组:例如 TI BQ28Z610,集成电量计与保护功能。
  • 多串电池组:需要按串数、算法与保护需求选型。原文提到的 BQ76952 是面向 3~16 串的电池监测与保护器件,可提供电压、电流等测量能力,但不能直接等同于完整的 SOC 电量计。

这类器件可以减轻 MCU 自研算法的负担,但内部实现各不相同。例如,MAX17048 使用无需电流采样电阻的 ModelGauge 算法,并不是所有电量计都集成了「库仑计数+温度+内阻建模」。能否直接读取剩余容量(mAh)、百分比,以及需要哪些配置,都要查看具体型号的数据手册。

以上功能定位可核对 BQ27441-G1 官方资料、MAX17048 官方资料、BQ28Z610 官方资料和 BQ76952 官方资料。电量计仍需按要求完成电芯匹配、参数配置和实际工况验证,并非接上通信接口就自动准确。

如果一定要自己算:库仑积分为主,电压为辅

  • 用采样电阻+ADC 或合适的电流检测器件测电流,定时积分,统计实际充放电电量。
  • 定期用充分静置时的电压对 SOC 做一次「校准锚定」,修正积分漂移。
  • 这是一种电压与电流融合的思路,也是许多电量估算方案采用的基本路线之一。

以放电电流为正、SOC 取值为 0~1 为例,理想情况下可以写成:

SOC = SOC_0 − ∫I dt / C_est

注意统一单位。如果电流用 mA、时间用秒、容量用 mAh,离散计算为:

SOC_next = SOC_now − I_mA × dt_s / (3600 × C_est_mAh)

C_est 应是当前估计容量,而不是始终固定为额定容量;实际实现还需考虑充电效率、老化与温度等因素。电流检测器件要兼顾休眠小电流和工作峰值,不能只看最大量程。

库仑积分也不是永远准确:电流零点偏差、初始 SOC 错误、采样间隔不准、休眠电流漏计,都可能累积成误差。因此,校准时机和积分本身同样重要。

三、几个容易踩的坑

  1. 别在充放电过程中直接拿端电压套静置电量表。 这时读到的电压会受负载或充电过程影响;若需要动态估算,应结合电流、温度或模型补偿。
  2. 满充和放空不要只靠一个显示用电压阈值判断。 满充应结合充电管理状态及电芯要求;电压跌到截止值可能与负载压降有关,但也说明电池可能已无法支撑当前负载,不能当成「假没电」就忽略。欠压关机和保护仍应按电芯规格与系统要求执行。
  3. 老化电池内阻会变大。 同样电流下压降更大,实际容量也可能下降,纯电压法会更难估准,需要考虑容量更新与合适的电池模型。
  4. 温度补偿别省。 温度会影响电池电压特性、内阻和可用容量;影响有多大取决于电芯和工况,不能套用统一的毫伏数或电量百分比。
  5. 显示平滑不能拖慢保护响应。 可以给电量格增加滞回或更新速度限制,但低电压告警、关机与硬件保护应保留独立判断路径。

四、建议的行动路线

  • 低成本快速改善:先确认采样可靠,再做软件滤波+合适的空载/轻载采样+匹配电芯的温度补偿查表。
  • 要产品级电量表现:评估专用电量计 IC,选型取决于电池串数、是否需要保护、通信接口、功耗与电芯适配要求,并完成真实负载验证。
  • DIY/学习向:自己做库仑积分+静置电压校准融合,重点处理积分漂移、初始状态和校准时机。

电量显示只是界面上的一个小图标,却直接影响用户对设备续航的判断。先弄清电压为什么起伏,再按产品需求选择估算方法,比单纯把百分比「磨平」更有意义。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注