LFP 充电末端库仑计数均衡策略
针对磷酸铁锂平台区压差均衡失效问题,基于充电末端膝点触发的库仑计数法,计算容量差 ΔC 并择机执行放电均衡。
一、背景:为什么压差均衡在 LFP 上失效
LFP 电芯的 OCV-SOC 曲线存在一个极平坦的平台区(约 40%~90% SOC),电压变化仅 ±0.1V:
3.5V ┤ ╭── 满充区(斜率陡,OCV-SOC 强相关)
│ ╱
3.3V ┤──────────────────────────── ← 平台区(斜率≈0,40%~90%)
│ ╱
3.0V ┤──────────────╱ ← 低端区(斜率陡)
└──┬──────────┬──────────┬──►
0% 40% 90% SOC
致命后果 :在平台区,SOC 相差 30% 的两个电芯 OCV 可能完全一样(都是 3.30V),基于压差的均衡策略既无法判断谁该被均衡 ,也不知道该均衡多少。
二、核心思路:避开平台区,利用充电末端做判断
既然平台区电压不可用,那就等到电压离开平台区的那一刻再做判断。
LFP 电芯在充电接近满充时,电压会进入一个明显的膝点(knee point)------约 3.40V------此后 OCV-SOC 变得陡峭,电压可以可靠反映 SOC 差异。
3.65V ┤ ╱ ← 电芯A(最先到膝点,跑得快)
│ ╱
3.40V ┤ ─ ─ ─ ─ ─ ╱ ← 膝点(V_knee = 3.40V)
│ ╱╱
3.33V ┤──────╱╱────── ← 电芯B(一直在平台区,跑得慢)
│ ╱╱
└────────────────► 时间
↑
充电截止(A 到 3.65V 或总压达标)
策略思路 :当某个电芯电压跨过膝点,为它启动一个独立的库仑计数器,记录从膝点到充电截止这段时间内充入了多少电量。这个计数值直接反映了各电芯之间剩余可充容量的差异。
三、三个步骤
第一步:膝点触发库仑计数
充电过程中,当任一电芯电压 ≥ V_knee(如 3.40V),为该电芯启动库仑计数,从零开始累积充电量:
电芯A:到达 3.40V → 开始计数 → 充电截止时累计 = 350mAh
电芯B:始终低于 3.40V → 从未启动计数 → 计数值 = 0
电芯C:后来到达 3.40V → 开始计数 → 充电截止时累计 = 180mAh
充电截止条件可以是:任一电芯达到 V_max(3.65V),或总压达标,或充电电流降至 C/20。
第二步:计算容量差 ΔC
取所有电芯中计数值最小的那个 作为参考(C_ref),其余电芯的计数值与参考值的差就是需要均衡掉的容量:
C_ref = min(350, 0, 180) = 0 ← 电芯B 最落后
ΔC_A = 350 - 0 = 350mAh ← 需要放掉
ΔC_B = 0 - 0 = 0 ← 不动
ΔC_C = 180 - 0 = 180mAh ← 需要放掉
ΔC 含义:该电芯比最落后电芯多"吃"了多少电量。放掉这些多余的,下次充电所有电芯就能同时吃饱。
第三步:择机放电均衡
ΔC 算出来后,接通旁路电阻,按 ΔC 目标值放电,实时库仑计数,放够即停。
四、关键设计点
4.1 最低电芯到不了膝点怎么办?
这是常态,算法天然处理。
到不了膝点的电芯,库仑计值 = 0,自动成为 C_ref,算法完全不需要它到达膝点。实际上,正因为所有电芯的计数值都是相对于"最落后电芯"的差值,才精确刻画了失衡度。
唯一需要注意的边界:如果所有电芯都没到膝点(比如长期浅充至 55%),所有计数值都是 0,ΔC 全部为 0,均衡不触发。这不是 bug------浅充场景下确实没有足够信息判断谁多谁少。应对方式是定期触发一次维护性满充(如每周充至 95%+)让算法有机会刷新 ΔC。
4.2 均衡目标需持久化
ΔC 在充电末端计算出来后,立即写入 NVM(非易失性存储器)。均衡可能分多次完成,掉电后重新上电,从 NVM 读取未完成的 ΔC 继续执行。
充电末端计算 ΔC → 写入 NVM
│
├─ 立即均衡 → 更新 NVM 中剩余值
│
└─ 推迟均衡 → 下次任意窗口读 NVM 继续
4.3 分时间歇执行
一次性放完所有 ΔC 可能导致均衡电阻或 PCB 过热。采用间歇方式:每轮放电 5 分钟,冷却 2 分钟,多轮迭代直至 ΔC 归零。每轮结束后更新 NVM 中的剩余值。
4.4 温度保护
均衡发热叠加在电芯和 PCB 已有温升之上。需监控均衡板温度,超过 65°C 暂停,冷却后继续。
五、均衡什么时候执行?
5.1 核心结论
ΔC 一旦算出、写入 NVM,随时随地都可以均衡。唯一约束是均衡板温度。
100mA 的旁路电流放在哪里都是 100mA------充电时、放电时、静置时,库仑计数一样精准,均衡效果没有区别。均衡的是高 SOC 电芯而非最低电芯,也不会导致提前触发欠压保护。
5.2 唯一需要区分的:用的是哪份 ΔC?
| ΔC 来源 | 可用时机 | 可靠性 |
|---|---|---|
| 本次充电刚算的 | 只能充电截止后(因为充电中还没算出来) | ✅ 最新最准 |
| NVM 中上次存的 | 任何时候------下次充电 CC、CV、静置、甚至放电中 | ⚠️ 可能过期,需要本次充电末端重新校准 |
5.3 窗口无所谓
传统压差均衡喜欢"等 CV 阶段"------那是因为 CV 阶段电流小、IR 压降小、电压信号更干净,有利于电压差判断。但方案一的均衡目标是 ΔC(库仑值),执行靠的是库仑计数,和电压信号质量毫无关系。CC 还是 CV、充电还是放电,对均衡效果没影响。
窗口的选择最终只退化为一个热管理问题:当前均衡板温度是否允许再多开几路旁路。
六、迭代收敛
单次充电的静置窗口可能均衡不完所有 ΔC,但算法是迭代的:
第1次充电 → 计算 ΔC₁ → 均衡一部分 → 剩余记入 NVM
第2次充电 → 计算 ΔC₂ → 继续均衡 → ...
...
第N次充电 → 计算 ΔC_N → ΔC_N < 阈值 → 收敛
每次充电末端重新计算 ΔC,覆盖旧值,多轮迭代后 ΔC 逐渐缩小至收敛阈值以下。
七、适用场景与局限
适合
- 有周期性满充机会的场景(如每天一充的储能、车辆)
- 被动均衡硬件(旁路电阻型),无需改造电路
- LFP 电芯(膝点特征明显)
不适合
- 长期浅充浅放且从不满充的场景------算法永远没有机会刷新 ΔC,只能退化到依赖 NVM 中可能已过期的旧值
- 此场景需要补充其他均衡策略(如 OCV-SOC 分区法,在低端区 (SOC < 15%) 同样可以触发判断)
八、总结
| 维度 | 要点 |
|---|---|
| 核心理念 | 不在平台区硬算,等电芯自己走出平台区 |
| 判断时机 | 充电末端,膝点 ~3.40V 以上 |
| 判断方法 | 各电芯从膝点到截止的库仑计数差值 = 容量差 ΔC |
| ΔC 存储 | 立即写入 NVM,掉电不丢 |
| 执行时机 | ΔC 一旦确定,随时可均衡------充电、放电、静置均可 |
| 唯一约束 | 均衡板温度 ≤ 65°C |
| 执行方法 | 按 ΔC 放电,纯库仑计数,不需要电压查 SOC |
| 收敛 | 多轮充电迭代,每次末端校准 ΔC,逐步缩小直至收敛 |
| 最大局限 | 依赖周期性满充,长期浅充场景需补充其他策略 |