乐于分享
好东西不私藏

电量计算法-----软件侧要实现的功能

电量计算法-----软件侧要实现的功能

电量计算法,是一个从硬件侧、软件侧协同设计的相互作用的一个结果,前面说明了硬件侧要解决的问题,本文说明下软件侧要解决的问题

一、协同点 1:OCV 校准的“窗口时机”

OCV 虽然准,但只能在电池静置足够长时间后读取。问题是:什么时候才算“足够”?

图 1:OCV 校准的时机选择

从图 1 可以看到:

  • 充电/放电中
    :不能读 OCV,因为端电压包含了电流内阻压降。
  • 刚停充/刚停放的松弛期
    :电压还在回弹,此时读 OCV 会偏高或偏低。
  • 静置 > 30 分钟后
    :极化基本消失,才是真正的 OCV 校准窗口。

软硬件协同在这里体现为:硬件负责检测“电流是否接近零”和“静置时间是否足够”;固件维护一个定时器和状态机;软件负责在窗口打开时读取 OCV,查表得到 SOC 基准,然后修正库伦计的漂移。

如果用户习惯是“晚上睡前充电、早上拔线”,系统会识别出这段长时间静置,自动执行一次高质量 OCV 校准。这就是用户体验和算法时机的结合。

二、协同点 2:温度补偿的“查表 + 插值”

低温下电池可用容量会下降,电量计必须把这个因素算进去。工程上通常采用查表 + 线性插值

图 2:温度补偿:查表 + 线性插值

从图 5 可以看到:固件预存几个温度点(如 -20°C、0°C、25°C、45°C)的容量补偿因子。运行时,硬件 NTC 读取当前温度,软件做线性插值,得到当前温度下的实际可用容量。

例如,25°C 时因子为 1.0,0°C 时可能为 0.72。如果当前电池温度为 5°C,插值得到因子约 0.75,那么系统会把“标称容量 4500mAh”换算为“实际可用容量约 3375mAh”。这样 SOC 才不会虚高。

这里软硬件的分工是:硬件负责实时、准确地测温;软件负责查表、插值和容量换算。两者缺一不可。

三、协同点 3:老化学习与 Q_max 更新

电池用久了,满充容量会从 4500mAh 降到 3600mAh。电量计必须“学习”这个新容量。最常见的触发条件是一次完整的满充事件

图 3:电池老化学习闭环:Q_max 动态更新

图 3 展示了完整的六步闭环:

  1. 满充检测
    :充电进入 CV 阶段,电流降到截止阈值以下。
  2. 静置等待
    :等待电压松弛,直到稳定。
  3. 读取 OCV
    :得到稳定后的开路电压。
  4. 查表得 SOC
    :通过 OCV 曲线得到当前 SOC。
  5. 计算本次容量
    :结合本次充入的库伦量,反推满充容量。
  6. 更新 Q_max
    :把新容量写入芯片 OTP/Flash 或系统文件,反馈给 SOC 算法。

软硬件协同在这里很关键:库伦计数器提供精确电荷量,硬件 ADC 提供稳定的 OCV 读数,软件执行查表、计算和存储。Q_max 更新后,SOC 估算就会重新“对齐”到真实电池状态。

工程实践:很多高端手机会同时把 Q_max 存在电量计芯片内部和系统分区两个地方,避免恢复出厂设置或换电池后丢失老化数据。

四、协同点 4:低电关机保护与满充判断

低电关机和满充判断,是用户体验的两端。它们都需要软硬件共同把关。

图 4:低电关机保护(左)与满充判断(右)

1. 低电关机:硬件兜底 + 软件策略

左图展示了低电保护的分层设计:

  • 硬件保护
    :当电池电压降到 V_cutoff(如 3.3V)时,硬件比较器直接触发系统掉电,防止过放损坏电池。
  • 软件策略
    :当 SOC 降到 3%~5% 时,系统提前提示并准备关机;在 5%~15% 可触发省电模式,降低功耗。

软硬件协同的关键是:软件要尽量在硬件触发之前完成提醒、保存和关机流程;硬件则是在极端情况下兜底,防止软件“还没反应过来”就把电池放空。

2. 满充判断:CC-CV + 截止电流

右图展示了充电曲线:前期恒流(CC)快速升压,后期恒压(CV)电流衰减。电量计判断满充的条件通常包括:

  • 电压达到设定满充电压(如 4.2V/4.4V)。
  • 电流降到截止电流(如 0.1C)以下。
  • 持续时间满足一定窗口(防止抖动)。

硬件负责持续监测电压和电流,软件负责状态机和条件判断。如果只看电压,可能在电流还很大时误报 100%;如果只看电流,可能在 CV 平台未进入时漏判。两者结合才能保证“100%”显示得稳、准、安全。

五、总结:软硬件协同设计的哲学

写在最后

电量计不是一个“芯片单独就能做好”的功能,而是硬件精度、固件效率、驱动稳定、算法智能和系统策略共同作用的结果。

回顾一下五大问题的协同解法:

  • 电压平台区不准
     → 用 OCV 做基准、库伦计做跟踪、EKF 做融合。
  • 库伦计漂移
     → 用 OCV 校准窗口和满充事件修正累积误差。
  • 算法精度不足
     → 从查表法、库伦计到 EKF,再到混合 AI 算法,按需选择。
  • 温度影响
     → 硬件 NTC 测温 + 软件查表插值补偿。
  • 电池老化
     → 满充事件触发 Q_max 学习闭环,软硬件共同维护。

对于用户来说,最好的电量计是“无感”的:它显示 50%,就真的还有一半;它说 1% 要关机,就真的撑不了多久。做到这点,靠的不是某个黑科技,而是每一个环节都把“准”和“稳”做到极致。

新捷科技 · 技术深度解析