储能回充实战:停电 1 小时 38 分,回充却排了 14 小时 37 分——0℃ 那格限流表、CV 的尾巴、线缆的压降和柴发的视在功率,四笔账我一次算清

2026年10月19日 0 By admin

上一篇把「停电之后能撑多久」算完了,结论是能撑住。但撑住只是一半——电回来之后怎么把它装回去,是另一半,而且这一半更拖时间。

现场的情况很典型。北方一个离网备电站,市电停 1 小时 38 分,电池按 115 篇那套负载分级扛了下来。当晚 0 点来电,充电器开始补电。第二天早上 8 点,运维看监控:SOC 61%,还在充,功率 553 W。中午再看,85%。一直到下午 2 点 37 分,才跳到 100%。

运维的判断是「电池老化了」。我的判断是:充电器没坏,电池也没老,是 0℃ 那一格限流表在起作用。

充电器是 58.4 V / 50 A,满打满算 2.92 kW。它当时只出了 512 W,也就是 17.5%。不是它不想出,是 BMS 通过 CAN 告诉它「现在只准 10 A」。

同一天下午,把电池仓加热到 15℃ 之后,同样这块电池、同一台充电器,从 15% 充到满只用了 3 小时 10 分。

0℃ 的 14 小时 37 分,和 15℃ 的 3 小时 10 分,差 4.6 倍。这 4.6 倍不是电池坏了,是四笔账连乘出来的结果。 这篇文章就把这四笔账拆开:能量账、化学账、执行账、电源账,外加最后一笔最阴的——判满账。

先把结论放在前面:

  1. 低温下不是「充得慢」,是「充不进去」。 0℃ 时 LFP 的充电接受能力只剩 0.05C,这是析锂边界倒推出来的,不是厂家保守。
  2. 回充时间由四个量取最小、再乘一个尾巴。 标称功率只是其中一个,而且往往不是决定性的那个。
  3. 冬天真正该做的不是换大充电器,是先加热。 0.38 kWh 的加热电量,换回 7 小时 48 分。

一、先把现场摆出来

设备和接法如下,后面所有数字都基于这一套,你可以直接替换成自己的:

项目 参数 备注
电池 16S LFP,200 Ah,51.2 V 标称 10.24 kWh
SOH 91% 有效 182 Ah / 9.32 kWh
充电器 58.4 V 恒压,最大 50 A 2.92 kW,装于逆变器内部
电池到充电器 单程 15 m,6 mm² 回路 30 m,4 个端子
BMS 上报 CAN,1 s 周期,CCL 单位 0.1 A 对应 113 篇的 0x351 第二字段
环境 0℃,电池仓无加热 夜间最低 -3℃
起充 SOC 15% 115 篇的分级下限
本次掏走 6.34 kWh 115 篇实测口径

第一天的实测记录,每 2 小时抄一次表:

时刻 SOC 充电电流 电池温度 充电器功率
00:00 15.0% 10.0 A 0.0℃ 512 W
02:00 26.2% 10.3 A 0.2℃ 528 W
04:00 37.6% 10.5 A 0.4℃ 538 W
06:00 49.1% 10.6 A 0.5℃ 543 W
08:00 60.8% 10.7 A 0.6℃ 548 W
10:00 72.6% 10.8 A 0.6℃ 553 W
12:00 84.5% 10.8 A 0.7℃ 553 W
14:00 96.4% 10.8 A 0.7℃ 553 W
14:37 99.5% 6.0 A → 停止 0.7℃ 307 W → 0

两个细节值得盯住:

第一,电流从 10.0 A 缓慢爬到 10.8 A。 不是 BMS 在调整,是电池自己升温了 0.7 K,限流表往上挪了半格。14 小时 37 分,自升温 0.7 K——后面第三节会算这笔账,这个数字基本宣告了「靠充电自己发热把电池焐热」这条路不通。

第二,满充判定用的电压拐点,在这里几乎不存在。 前 14 小时 14 分全是恒流,CV 段只有最后 24 分钟,占总时长 2.7%。这不是巧合,是低倍率充电的必然结果——第六节讲。


二、R0 能量账:要补回去的不是 10.24 kWh

这块电池身上有四个完全不同的「容量」,现场十次有八次是混着用的:

名称 数值 怎么来的
标称能量 10.24 kWh 51.2 V × 200 Ah,铭牌
SOH 后能量 9.32 kWh 10.24 × 0.91
本次掏走 6.34 kWh 115 篇按负载曲线积分
充电器要输出 6.67 kWh 6.34 ÷ 0.95(充电效率)

第一个坑:拿 10.24 kWh 去算回充时间。 这样会多算 3.57 kWh、多算 54%,看起来是「保守」,实际把真正的瓶颈掩盖掉了——你会以为是充电器功率不够,去换一台更大的,结果一点用没有。

第二个坑:忘了充电效率。 LFP 的库仑效率很高(99% 以上),但能量效率不是——充电时终端电压高于 OCV、放电时低于 OCV,这个电压差就是损耗。储能场景常用的口径是单向 0.95、往返 0.90 左右。6.34 kWh 要补回电池里,充电器得吐 6.67 kWh。

第三个坑,也是最容易漏的:把 CV 段当成线性的。 CV 段占的时间比例和占的电量比例完全不是一回事,25℃ 时是「19% 的时间装 7% 的电」,0℃ 时是「2.7% 的时间装 1.5% 的电」。第六节细说。

把这三个坑填上,纯 CC 段的时间账是这样:

电流 功率 纯 CC 段 实际能不能跑到
10 A 512 W 13.03 h 0℃ 就是这个值
16 A 819 W 8.15 h 5℃ 附近
25 A 1280 W 5.21 h 10℃ 附近
50 A 2560 W 2.61 h 15℃ 以上才可能

注意最后一行:50 A 是充电器的上限,不是电池的上限。 这块 200 Ah 的包在 25℃ 允许 0.5C 也就是 100 A,充电器只给到 0.25C,瓶颈在充电器;到了 0℃,BMS 只放 0.05C,瓶颈在电池。

所以这套系统在夏天是「充电器不够大」,在冬天是「电池不让充」——同一个抱怨,两个完全相反的根因。这也是为什么单看「充电器多少 kW」判断不了任何事。


三、R1 化学侧:0℃ 的 0.05C 不是厂家拍脑袋

这一节是全篇的基础。搞不清这个,后面所有的取舍都是拍脑袋。

3.1 析锂:为什么低温不能快充

LFP 充电时,锂离子从正极脱出、穿过电解液、嵌入负极石墨的层间。这个过程要发生,必须满足一个条件:负极电位相对于 Li/Li⁺ 要保持在 0 V 以上。

低温下有两件事同时变坏:

  • 电解液里的离子电导率下降,欧姆极化变大;
  • 石墨内部的固相扩散变慢,浓度极化变大。

两者叠加,充电时负极电位被整体往下压。电流越大压得越狠。一旦压到 0 V 以下,锂离子就不再嵌入,而是在石墨表面直接还原成金属锂——这就是析锂。

析出来的锂有三个后果,一个比一个麻烦:

  1. 这部分锂不再参与循环,容量永久损失;
  2. 锂枝晶可能刺穿隔膜,造成内短路;
  3. 析出的锂与电解液反应,消耗电解液、产气、阻抗上升。

而且析锂是不可逆的,且当场没有任何报错。BMS 看不到它,充电器看不到它,只有拆开做三电极测试或者 dV/dQ 分析才能确认。这就是低温充电最阴的地方:一切正常,除了几个月后容量掉了 8%。

3.2 那个「每降 10℃ 减半」的经验法则

析锂的边界电流与交换电流密度相关,后者大致服从 Arrhenius 关系。工程上简化成一句话:温度每降 10℃,允许的充电倍率大致减半。

从 25℃ 的 0.5C 往下推:

温度 经验值(每 10℃ 减半) 典型厂商降额表 差值
25℃ 0.50C 0.50C 一致
15℃ 0.25C 0.25C 一致
5℃ 0.125C 0.08C 厂商更保守
-5℃ 0.06C 0(禁充) 厂商直接关死
-15℃ 0.03C 0 厂商直接关死

厂商在 5℃ 以下比经验值保守得多,0℃ 以下干脆写 0。 原因不神秘:经验公式是按「典型单体」推的,厂商的表要覆盖最差批次、最差一致性的那批电芯,还要留安全裕量。工程上按厂商表走,不要按经验值放宽。

本文后面统一用这张表(200 Ah 额定容量):

温度 最大倍率 最大电流 包内阻 内阻倍数 CV 时间常数
-20℃ 0 0 A 76.8 mΩ 8.00 —
-10℃ 0 0 A 57.6 mΩ 6.00 —
-5℃ 0 0 A 45.6 mΩ 4.75 —
0℃ 0.050C 10.0 A 33.6 mΩ 3.50 0.675 h
5℃ 0.080C 16.0 A 27.4 mΩ 2.85 0.600 h
10℃ 0.150C 30.0 A 21.1 mΩ 2.20 0.525 h
15℃ 0.250C 50.0 A 16.8 mΩ 1.75 0.450 h
20℃ 0.400C 80.0 A 13.2 mΩ 1.38 0.375 h
25℃ 0.500C 100 A 9.6 mΩ 1.00 0.300 h
45℃ 0.300C 60 A 10.6 mΩ 1.10 0.200 h
55℃ 0 0 A 12.5 mΩ 1.30 —

内阻那一列是本文自己算的:单体 0.6 mΩ、16 串、25℃ 时 9.6 mΩ,再乘温度倍数。这个数后面算线损、算自发热都要用。

3.3 为什么不能指望「充一会儿自己就热了」

很多人的直觉是:低温限流只是暂时的,充着充着电池自己发热,限流就放开了。

算一遍就知道这条路走不通。0℃、10 A、包内阻 33.6 mΩ:

P = I² × R = 10² × 0.0336 = 3.36 W

3.36 W。这块 92 kg 的电池包热容是 93.8 kJ/K(按 1020 J/(kg·K) 算)。升温速率:

dT/dt = 3.36 / 93800 = 3.6e-5 K/s ≈ 0.13 K/h

0.13 K/h。 充一整晚 14 小时,升 1.8 K;实测 0.7 K(因为机柜还在往环境散热,UA 约 5 W/K)。

而限流表要往上挪一档,至少得升 5 K。也就是说:在 0.05C 这个电流下,自发热在物理上就不可能把自己救出来。 电流小 → 发热少 → 温度不升 → 限流不放 → 电流还是小。这是个正反馈锁死。

顺带说一句,这条也解释了为什么「大电流充电能自加热」在低温下反而危险:真要发热到有用,得把电流提到 0.5C 以上,而那个电流在 0℃ 正好是析锂区。想靠自发热,就得先越过析锂边界——这是死结。

所以低温充电只有两条正路:外部加热,或者接受慢。没有第三条。


四、R2 BMS 判据:用哪一路温度,决定你冬天能不能充上

化学侧给了边界,BMS 是把边界变成动作的那一层。这一层出问题最多,因为它不报错,只是「行为和你想的不一样」。

4.1 用最低温,不是平均温,更不是最高温

一个 16S 的包,BMS 通常有 4~8 个 NTC。位置一般分三种:

位置 测的是 充电时的表现
电芯大面中部 电芯本体温度 最接近真实,热惯性大
极耳/汇流排附近 焊接点温度 充电时比电芯高 5~8 K
模组进出风口 环境/风温 反应快,但和电芯差得远

充电限流必须取所有探头里的最低值。 取平均值的后果:一个探头贴在极耳上(高 6 K),三个贴在大面(真实值),平均下来高 1.5 K,在 0℃ 附近这就是「能不能充」和「只能 0.05C」的区别。

取最高值更糟,等于用最热的那颗电芯给整包发许可证。

这里有个反直觉的点:放电要取最高温(防过热),充电要取最低温(防析锂)。 两个方向的安全约束不在同一个方向上,很多 BMS 只实现了一套。

4.2 门限与回滞:没有回滞的 BMS,一晚上吸合 240 次

低温禁充的典型门限是:低于 0℃ 禁充,高于 3~5℃ 恢复。 中间那段是回滞带。

没有回滞会怎样?假设门限就是 0℃:

  • 温度 0.1℃ → 允许充电,继电器吸合,电流上来;
  • 充电一会儿,或者环境降温,温度 -0.1℃ → 禁充,继电器断开;
  • 断开后没有电流,温度回升到 0.1℃ → 又允许……

一晚上在 0℃ 附近来回震荡,接触器每小时吸合几十次。接触器的机械寿命按 1 万次算,一个冬天就能耗掉一大半。 而且每次吸合都有预充电阻的功耗和浪涌。

除了温度回滞,还要加一条最短保持时间:状态切换后至少保持 5~10 分钟再响应下一次判定。这条在 114 篇讲切换联锁时也提过,是同一个道理——判据需要时间维度的阻尼,否则就是振荡器。

4.3 上报周期与「看不见的限流」

BMS 的 CCL 上报周期,CAN 侧典型 1 s(0x351),Modbus 侧典型 0.2 s(116 篇的 0x0103)。这个数据一直在变,但上位机往往 1~5 分钟才采一次。

于是出现一种很典型的误判:运维看到「充电功率 512 W」,以为是充电器降额或者电池故障,实际上 BMS 每秒都在说「只准 10 A」,只是没人看这个字段。

排查第一动作永远是:把 CCL 和历史温度曲线拉出来对齐。 两条曲线一叠,0℃ 那一段的台阶清清楚楚。

4.4 谁说了算:BMS 的 CCL,还是逆变器的「充电电流设定」

这是最容易出事的一处,109 篇讲写控制时踩过。

逆变器的充电器通常有一个可以写的「最大充电电流」参数,厂家默认值往往是 30 A 或 50 A。同时 BMS 通过 CAN 给 CCL。两个数都在,取哪个?

必须取 min,而且要在逆变器固件里硬性取 min。 现实里有三种错误实现:

  1. 只用本地设定值,忽略 CCL —— 低温下按 30 A 硬充,直接析锂;
  2. 用 CCL 但只在启动时读一次 —— 充电中途温度掉了,电流不降;
  3. 用 CCL 但做了「最小值钳位」,比如不低于 10 A —— 0℃ 时 CCL 本来是 10 A,-5℃ 时该是 0,被钳成 10 A,继续充。

第三种最隐蔽,因为它在 0℃ 看起来完全正常。

一个可用的实现顺序应该是:

若 温度 < 禁充门限: 允许电流 = 0,直接返回
若 处于回滞带内: 保持上一次状态,直接返回
允许电流 = min(BMS_CCL, 用户设定, 充电器额定, 线缆温升允许值)

温度门限必须放在最外层。 它是否决权,不是参与比较的候选值;一旦把它塞进 min 里,就会出现「min 算出来 10 A,温度说该 0 A,最后取了 10 A」这种事。否决权不能参与投票。


五、R3 执行侧:三个限流点,但线缆不是限流,是偷电压

5.1 限流点只有两个,压降是另一回事

很多人把线缆算成第三个限流点,这个理解是错的。

线缆的电阻不会让充电器少出电流——充电器是恒压/恒流源,它会一直推到自己的限流点或者恒压点。线缆做的事是:把电池端看到的电压拉低。

V_电池端 = V_充电器恒压点 − I × R_回路

0℃、10 A、回路 93.5 mΩ(15 m 单程、6 mm²、4 个端子各 1.5 mΩ):

V_电池端 = 58.4 − 10 × 0.0935 = 57.47 V

只掉了 0.93 V,看起来还好。但把电流开到 50 A:

V_电池端 = 58.4 − 50 × 0.0935 = 53.73 V

掉了 4.68 V,8%。 这时候电池端连 54 V 都不到,CV 段根本进不去。

5.2 一张表看清楚:15 m 单程到底该用多粗

回路电阻 = 2 × 长度 × 0.0175 ÷ 截面 + 端子接触电阻(4 × 1.5 mΩ):

截面 回路电阻 16 A 压降 25 A 压降 50 A 压降 50 A 占比 50 A 铜损
4 mm² 137.2 mΩ 2.20 V 3.43 V 6.86 V 11.75% 343 W
6 mm² 93.5 mΩ 1.50 V 2.34 V 4.68 V 8.01% 234 W
10 mm² 58.5 mΩ 0.94 V 1.46 V 2.93 V 5.01% 146 W
16 mm² 38.8 mΩ 0.62 V 0.97 V 1.94 V 3.32% 97 W
25 mm² 27.0 mΩ 0.43 V 0.68 V 1.35 V 2.31% 68 W
35 mm² 21.0 mΩ 0.34 V 0.53 V 1.05 V 1.80% 52 W
50 mm² 16.5 mΩ 0.26 V 0.41 V 0.83 V 1.41% 41 W

6 mm² 在 50 A 下铜损 234 W。 这不是小数目:充电器输出 2.92 kW,234 W 烧在线上了,8%。

麻烦的是那个 8% 的压降会连锁:电池端到不了 58.4 V → 等效恒压点被拉低 → 整包终止 SOC 往下掉。按经验,恒压点每低 1 V,终止 SOC 掉 1.2 个百分点。50 A 掉 4.68 V,就是 5.6 个点。

但注意一个很坑的时间差:这个问题在冬天是看不见的。 0℃ 只有 10 A,压降 0.94 V,铜损 9 W,测量上完全淹没在噪声里。等到夏天满功率 50 A,它才露出来——那时候你会以为是「夏天太热电池降额」。

一个现场经验:如果一套系统「冬天充电慢、夏天也充不满」,而两个现象找不到共同原因,先量线。 低温限流解释冬天,线缆压降解释夏天,两个独立的坑叠在同一套系统上,非常常见。

5.3 「1% 压降」这条线,在 15 m / 50 A 下根本做不到

工程上常说的经验值是「线路压降不超过 1%」。58.4 V 的 1% 是 0.58 V,50 A 下要求:

R_回路 ≤ 0.58 / 50 = 11.7 mΩ

扣掉 6 mΩ 的端子接触电阻,留给线缆的只有 5.7 mΩ,也就是:

A ≥ 2 × 15 × 0.0175 / 0.0057 ≈ 92 mm²

要用 95 mm² 的线。 这在机柜里是不可能布线的。

所以 15 m 这个距离下,正确的做法不是在截面上死磕,而是这两个之一:

  • 把充电器挪近,让电池到充电器的距离进到 2~3 m,压降问题自然消失;
  • 上远端采样(Kelvin 采样),把电压检测线单独引到电池端子,充电器按电池端电压闭环。这样线缆压降再大也不影响恒压点,只是多烧点铜损。

远端采样是通信电源和基站电池的标配,但在储能逆变器上经常被省掉——省的是两根细线,代价是冬天充不满。

一个容易忽略的细节:端子接触电阻。 4 个端子各 1.5 mΩ 是干净触点的值。氧化、松动、压接不良能到 5 mΩ 以上,四个端子就是 20 mΩ,比 6 mm² 的线本身还大。每年紧一次端子螺丝,比换粗线便宜得多。


六、R4 CC/CV:低温下 CV 段会「缩没」

6.1 为什么要有 CV 段

LFP 的充电曲线分两段:

  • CC(恒流):电流恒定,电压随 SOC 上升。这一段充进去的是大部分容量。
  • CV(恒压):电压到 58.4 V 后不再上升,电流指数衰减。这一段充进去的是最后几个点。

CV 段存在的理由是:LFP 接近满充时极化阻抗迅速上升,如果继续恒流,端电压会冲破 3.65 V/cell,触发过压保护。所以必须把电压钉住,让电流自己衰减下来。

模型上,CV 段的电流是一条指数曲线:

I(t) = I_CC × exp(−t / τ)

τ 是时间常数,25℃ 时这块电池约 0.30 h,温度每降 10℃ 大约涨 0.05 倍。0℃ 时 τ = 0.675 h。

充进去的电量就是这条曲线下的面积,从 I_CC 积到截止电流 I_term:

Q_CV = I_CC × τ × (1 − I_term / I_CC)
t_CV = τ × ln(I_CC / I_term)

6.2 一个被忽略的前提:倍率越低,CV 起点越靠后

大部分资料讲 CV 段时会说「到 3.65 V 就进 CV」,但没说什么时候会到 3.65 V。

端电压是三个东西相加:

V_端 = OCV(SOC) + I × R_内阻 + 极化过电位

要凑到 3.65 V,OCV 本身只有 3.45 V(满充静置值),剩下 0.2 V 得靠电流产生的过电位来补。电流越小,能补的越少,于是必须充到更高的 SOC 才够。

粗算一下:0℃、10 A、单体内阻 2.1 mΩ,欧姆压降只有 21 mV。就算把极化算进去 60 mV,总共 81 mV,离 200 mV 还差得远——所以 0.05C 充电时,端电压要到 SOC 98% 以上才可能摸到 3.65 V。

反过来,50 A(0.25C)时欧姆压降就有 105 mV,极化 80 mV,加起来 185 mV,SOC 97% 左右就进 CV 了。

这条关系决定了 CV 段在总时长里占多少:倍率越低,CV 段越短,短到可以忽略。

6.3 实测:0℃ 下 CV 段只占 2.7%

环境温度 CC 电流 CC 时长 CV 时长 CV 占比
0℃ 10 A 14 h 14 m 24 m 2.7%
5℃ 16 A 8 h 07 m 26 m 5.0%
10℃ 30 A 4 h 04 m 18 m 6.9%
15℃ 50 A 2 h 54 m 17 m 8.8%
25℃ 50 A 2 h 55 m 19 m 9.6%

0℃ 那一行:14 小时 14 分的恒流,24 分钟的恒压。 前 97% 的时间,充电电流一动不动。

这不是异常,是低倍率的正常表现。

6.4 后果一:判满失去了电压依据

充电器判断「充满了」通常有三个依据:

  1. 电流掉到阈值以下(0.03C~0.05C);
  2. 电压到恒压点并保持一段时间;
  3. dV/dt 出现拐点(镍氢常用,锂电少用)。

在 0℃ / 0.05C 这个工况下,前两个都还能用,但都变得很「薄」:

  • 电流从 10 A 掉到 6 A,只花了 24 分钟,中间没有任何平台期,采样稍有噪声就可能误判;
  • 电压到 58.4 V 之后只保持了 24 分钟,如果 BMS 要求「保持 30 分钟」,它永远等不到。

至于 dV/dt:拐点确实存在,但幅度只有每小时几十毫伏,和环境温度漂移(LFP 的 OCV 温度系数约 -0.3 mV/℃/cell,16 串就是 -5 mV/℃)同一个量级。凌晨环境降 3℃,整包 OCV 就漂 15 mV,把拐点完全淹掉。工程上不敢用这个判据。

于是只剩库仑计数。而库仑计数有个致命弱点:它需要一个准确的起点。 每次断电重启、每次 BMS 复位,都要用静置 OCV 重新校准 SOC;而 LFP 在 20%~90% 这个平台段,OCV 曲线几乎是平的(3.26~3.33 V,跨 70 个 SOC 点只变 70 mV),查表误差极大——这是 91 篇那篇的核心。

所以在现场看到的现象是:充电中途断一次电,重新上电后 SOC 会跳 5~10 个点。 这不是电池的问题,是「没有电压拐点可用,只能靠猜」。

6.5 后果二:均衡窗口被压到 24 分钟

被动均衡的启动条件通常是单体电压高于 3.40~3.45 V,也就是只在 CV 段附近工作。

0℃ 的 CV 段只有 0.4 小时。按常见的 100 mA 均衡电流算,这段时间能搬走的电量是:

0.4 h × 0.1 A = 0.04 Ah

0.04 Ah,是 200 Ah 的 0.02%。

而一个 60 mV 的单体离散度,在 LFP 平台上对应的是好几个 Ah 的容量差。靠 0.04 Ah 的窗口去修几个 Ah 的差异,等于没修。

这就是「过一个冬天,电池容量好像变小了」的真正机理:不是低温伤电池,是低温把均衡窗口压没了,单体离散度一个冬天累积下来,来年夏天整包可用容量就按最弱那节算。

这条比「少充 8 个点」更隐蔽,因为它不体现在任何一次充电记录里,只体现在三个月后的容量测试报告上。

6.6 四个改法,按落地难度排序

  1. 把 CV 保持时间从 0 改成 60 分钟。 大部分 BMS 都有这个参数,默认值是 0 或 5 分钟。改一个数,CV 段的均衡窗口从 24 分钟变成 60 分钟,搬运能力提到 0.1 Ah——不够,但至少不是零。
  2. 满充后加一段定时补足。 判定「充满」之后再走 0.02C 恒流 60 分钟,专门给均衡器留时间。注意这段的电流必须低于析锂边界,0℃ 时不能超过 10 A。
  3. 每周一次保养充电。 挑一个环境温度 ≥10℃ 的时段(中午、或者加热后),充到 3.50 V/cell 并保持 2 小时。这一条最有效,因为它同时解决了温度窗口和时间窗口。
  4. 判满改成「库仑计数 + 每周静置校准」。 每次满充后静置 2 小时,用 OCV 反查 SOC 并修正累计误差。这需要 BMS 有静置检测逻辑,成本最高但最彻底。

现场能立刻做的是第 1 条和第 3 条,加起来不到一小时工作量。


七、R5 电源侧:柴发要按 kVA 选,不是按 kW

前四层讲的是电池和线路,这一层讲电从哪来。离网场景三个来源:市电、柴发、光伏。

7.1 市电:看的是容量,不是电压

一个 3 kW 的充电器,市电侧取 3.16 kW(效率 0.95)。看起来一个 16 A 插座(3.5 kW)就够了。

但充电器是整流负载,功率因数低。这类 3 kW 级充电器实测 PF 常在 0.6~0.7,取 0.65:

S = P / PF = 3.16 / 0.65 = 4.86 kVA

4.86 kVA 的视在功率,16 A 插座(3.68 kVA)带不动。 空开按电流选,16 A 会跳。要按 25 A 或 32 A 配。

7.2 柴发:三条独立约束,最严的那条决定选型

同样的 3 kW 充电器:

约束 要求 依据
视在功率 ≥ 4.9 kVA 3.16 kW ÷ PF 0.65
阶跃承受 ≥ 8.1 kVA 充电器是 0→满载阶跃,按机组 60% 阶跃能力
高温高海拔降额 见下表 降额后仍需满足上面两条

降额系数(工程经验值,不同厂家有差异,以样本为准):

海拔 25℃ 40℃
0 m 1.000 → 8.1 kVA 0.940 → 8.6 kVA
1000 m 1.000 → 8.1 kVA 0.940 → 8.6 kVA
2000 m 0.867 → 9.3 kVA 0.815 → 9.9 kVA

按视在功率算 5 kVA 就够,按阶跃能力算要 8 kVA,按 2000 m / 40℃ 算要 10 kVA。

这就是现场那句「5 kW 的发电机带不动 3 kW 的充电器」的来历。买机器的人算的是 kW,机器承受的是 kVA 加阶跃。

7.3 一个更容易踩的坑:波形

整流充电器是非线性负载,输入电流不是正弦,THD 常在 30%~60%。这个畸变电流流过发电机的内阻抗,会把机端电压波形也削平。

后果是:充电器的过零检测失步 → 误判频率 → 保护重启 → 电压恢复 → 再启动。表现出来就是「发电机一响,充电器就抽风」。

三个对策:

  • 选带 AVR(自动电压调节)的机组,比不带的价格差 10%~15%,值;
  • 充电器输入端串 3%~5% 的进线电抗器,把 THD 压下去;
  • 充电器功率不超过机组额定的一半,用容量换波形质量。

7.4 光伏:冬天最尴尬的组合

光伏在低温下效率反而高(组件温度系数是负的,0℃ 比 25℃ 多出 5%~8% 的功率),但冬天日照时数短、辐照低。

更关键的是:MPPT 充电同样受 BMS 的 CCL 限制。 0℃ 时电池只收 10 A,光伏板就算能发 3 kW,控制器也只能输出 512 W 给电池,剩下的要么弃掉,要么去带负载。

所以「冬天靠光伏把电池充满」这件事,瓶颈不在板子,在电池温度。想改善只有两个办法:加大电池(降低 C 率需求),或者加热。


八、R6 观测与联锁:真正的故障是「每天欠一点」

前面五层都是「一次充电」的账。现场更常见的故障形态是:每天欠一点,欠到某天突然趴。

8.1 日能量结余

假设每天停电 2 小时、平均负载 3.7 kW(115 篇的实测值),每天要补 7.4 kWh。可用回充窗口 12 小时:

温度 CCL 回充功率 12 h 可补 日结余 还能撑几天
0℃ 10.0 A 512 W 5.84 kWh −1.56 kWh 5.1
5℃ 16.0 A 819 W 8.34 kWh +0.94 kWh 不亏
10℃ 30.0 A 1536 W 8.34 kWh +0.94 kWh 不亏
15℃ 50.0 A 2560 W 8.34 kWh +0.94 kWh 不亏
25℃ 50.0 A 2560 W 8.34 kWh +0.94 kWh 不亏

(12 h 可补那一列在 5℃ 以上被「单次最多补 8.34 kWh」封顶了——电池就那么大,补不进去更多。)

0℃ 时每天欠 1.56 kWh,从 15% 的缓冲算,5.1 天就到底。

折算成 SOC 就是每天净掉 17 个百分点。这个幅度其实很显眼,但显眼不代表能定位——你盯着 SOC 曲线,看到的是「每天往下掉一点」,看不出这是「每天欠 1.56 kWh」的能量账,更算不出还有几天见底。等到第 5 天 SOC 掉到 15%,分级负载开始切除,才发现「怎么又不够用了」。

这就是「日结余」这个指标的价值:SOC 只告诉你现在在哪,结余告诉你往哪走、多快、还剩几天。

8.2 该存什么(可直接抄的字段表)

低温回充问题的排查,现场只要存这 10 个量就够:

  • ☐ 电池最低温、最高温、平均温(三个都存,别只存一个)
  • ☐ BMS 上报的 CCL(原始值,不做任何加工)
  • ☐ 逆变器实际的充电电流设定值(用户设的)
  • ☐ 实际充电电流(直流侧)
  • ☐ 充电器输出电压、电池端电压(两个都存,差值就是压降)
  • ☐ 充电状态机当前状态(CC / CV / 停)
  • ☐ 当日充电电量、当日放电电量(kWh)
  • ☐ 日能量结余(上面两个相减)
  • ☐ 连续未满充天数(SOC 未到 98% 的连续天数)
  • ☐ CV 段进入时刻、退出时刻、退出原因

最后那个「退出原因」最有用。它会把「因为电流小于阈值而退出」和「因为 SOC 到 100% 而退出」区分开——这两种退出在监控上长得一模一样,含义完全相反。

8.3 三条联锁规则

  1. CCL 变化超过 20% 时,充电电流必须在 5 s 内跟随。 温度是慢变量,但 BMS 的限流表是台阶函数,跨过台阶的瞬间电流会突变。
  2. 充电电流连续 10 分钟高于 CCL 的 110%,报「限流失效」。 这个告警抓的是逆变器忽略 CCL 的实现错误。
  3. 连续 7 天未满充,报「均衡窗口缺失」。 这是给运维的早期预警,比容量掉下来再查要早三个月。

九、加热还是硬充:一张决策表

回到最初那个问题:0℃ 的 14 小时 37 分,怎么救。

9.1 加热的账

把 92 kg 的包从 0℃ 加热到 8℃,1 小时到位:

升温功率 = 93800 × 8 / 3600 = 209 W
维持功率 = 5 W/K × 8 K = 40 W
合计 ≈ 229 W(取 200 W 加热膜,约 1.25 h)
耗电 ≈ 0.23 kWh(理论值,实测含维持 0.38 kWh)

这 0.38 kWh 换回来什么:

方案 总时长 终点 SOC 加热耗电 相对基线
0℃,不加热 14 h 37 m 99.5% 0 基线
0℃,200 W 加热 6 h 49 m 100% 0.38 kWh 省 7 h 48 m
5℃,不加热 8 h 32 m 100% 0 省 6 h 05 m
5℃,200 W 加热 4 h 06 m 100% 0.24 kWh 省 10 h 31 m
10℃,不加热 4 h 22 m 100% 0 省 10 h 15 m
15℃,不加热 3 h 10 m 100% 0 省 11 h 27 m
25℃,不加热 3 h 13 m 100% 0 省 11 h 24 m

0.38 kWh 换回 7 小时 48 分,投入产出比 20:1。 而且终点 SOC 从 99.5% 拉满到 100%,均衡窗口也跟着变长。

注意 15℃ 以上再加加热就没意义了(3 h 11 m vs 3 h 10 m)——那时候瓶颈已经变成充电器功率,不再是电池。25℃ 甚至比 15℃ 还慢 3 分钟,因为 CV 起点的小数点差异;这个量级属于模型噪声,实际工程上就是「一样快」。

这条也给出了一个很实用的判断:如果你的系统在 15℃ 以上还是充不快,那问题不在电池,去查充电器功率和线缆;如果在 15℃ 以下突然变慢,那就是限流表,去查温度。

9.2 一条铁律:停电时不能用电池自己加热

这条必须单独说,因为它是最容易犯的错。

上面那 0.38 kWh,是从市电/柴发/光伏取的。如果市电已经停了(这正是离网备电的常态),加热膜的电只能从电池本身取。那就变成:

  1. 先花 0.38 kWh 把电池加热;
  2. 再开始充电。

如果这时候还没有外部电源,那根本充不了电,纯粹白烧 0.38 kWh。净收益直接为负。

所以加热的正确用法是:来电之后、开始充电之前,先用外部电源加热。 顺序不能反。

这也解释了为什么很多「带自加热的电池包」在现场效果不好——它们的加热逻辑是「温度低于阈值就加热」,没有判断「现在有没有外部电源」。停电一整晚,加热膜把电池从 0℃ 烧到 5℃,SOC 掉了 8 个点,第二天来电时电池更空了。

9.3 决策表

环境温度 有无外部电源 建议动作
>15℃ — 正常充,检查充电器功率是否是瓶颈
5~15℃ 有 直接充,可选加热到 15℃
0~5℃ 有 先加热到 10℃ 再充,收益最大
0~5℃ 无 只能等,或降低备电负载预期
-10~0℃ 有 必须加热,否则 BMS 禁充
-10~0℃ 无 不要试图充电,也不要用电池加热
<-10℃ 任何 禁充,等温度回升

十、现场核查清单(可直接抄)

按这 12 条走一遍,「冬天充得慢、判满不可靠」这类问题基本能定位:

  • ☐ 1. 拉出最近 7 天的 SOC 曲线和电池最低温曲线,叠在一起看台阶
  • ☐ 2. 确认 BMS 的充电限流取的是最低温,不是平均温/最高温
  • ☐ 3. 确认低温禁充门限与恢复门限之间有 ≥3 K 的回滞
  • ☐ 4. 确认有最短保持时间(≥5 min),防止接触器抖动
  • ☐ 5. 读逆变器的「充电电流设定」,与 BMS 的 CCL 对比,确认取 min
  • ☐ 6. 确认 CCL 是周期读取,不是启动时读一次
  • ☐ 7. 万用表量充电器输出端电压与电池端子电压,差值除以电流得回路电阻
  • ☐ 8. 回路电阻与线长/截面表对一遍,超过 30 mΩ 就该处理端子
  • ☐ 9. 记录 CC 段结束时的 SOC,低于 95% 说明 CV 起点偏低
  • ☐ 10. 记录 CV 段时长,低于 20 分钟说明判满几乎全靠库仑计数,去查 SOC 校准
  • ☐ 11. 查被动均衡启动电压,与充电末端单体电压对比
  • ☐ 12. 算一遍日能量结余,负数就是「渐进失效」的开始

十一、工具与复现

本文所有数字都来自一个纯标准库的离线脚本 recharge_calc.py(约 660 行),不需要装任何包:

python recharge_calc.py accept                 # 温度 -> 倍率 / 内阻 / τ
python recharge_calc.py energy                 # 四本能量账
python recharge_calc.py limit --t 0            # 限流与压降分解
python recharge_calc.py sim --t 0              # 动态仿真(含温升反馈)
python recharge_calc.py sim --t 0 --heat 200   # 带加热膜
python recharge_calc.py cv --i 10 --t 0        # 低温 CV 尾巴为什么短
python recharge_calc.py cable --len 15         # 线缆压降表
python recharge_calc.py gen --kw 3             # 柴发选型
python recharge_calc.py heat --t0 0 --t1 8     # 加热预算
python recharge_calc.py deficit --outage 2     # 多日亏空累积
python recharge_calc.py triage                 # 症状 -> 层
python recharge_calc.py --self-test            # 35 项自检

仿真不是解析解,是 30 s 步长的时间步进:每一步用当前温度查限流表、算发热、更新温度、再算下一步。所以它能抓到「电流小 → 发热少 → 温度不升 → 限流不放」这个闭环——解析公式抓不到。

自检里专门有一条是量纲检查(总时长不可能是三位数小时),这是 10-17 那篇踩过的坑:t_frame 是毫秒、t_poll 是秒,直接相除得 55.57,被 clamp 成 1.0,三种波特率打印出同一个数。公式对了不代表量纲对了。


十二、八个常见误区

误区 实际情况
「充电器 3 kW,2 小时就能充满 10 kWh」 低温下只能出 512 W,14 小时 37 分
「低温充得慢,充一会儿自己就热了」 0.05C 下自发热 0.13 K/h,物理上救不出来
「BMS 报 10 A 是 BMS 坏了」 是降额表在正常工作,坏的是没看温度
「电池端电压差 5 V 是电池内阻大」 先量线缆,15 m / 6 mm² 在 50 A 下就是 4.68 V
「充满前一定会有一段恒压」 0℃ 下 CV 只占 2.7%,判满根本没有电压拐点
「电池显示 100% 就是均衡做完了」 CV 窗口 24 分钟只够搬 0.04 Ah,等于没均衡
「5 kW 发电机带 3 kW 充电器绰绰有余」 按 kVA 与阶跃要 8 kVA,2000 m 要 10 kVA
「加个加热膜就行」 停电时用电池加热是负收益,必须等外部电源

收尾

这块电池最后怎么处理的?加了一组 200 W 的加热膜,控制器上加了个条件:只有逆变器检测到交流输入、且处于充电状态时才允许加热。 一个继电器、一行判断。

改造后第一个冬天,0℃ 的早晨从 15% 充满,6 小时 49 分。运维的原话是「电池好像换了新的」。

电池没换。只是原来那 14 小时里,有 7 小时 48 分是在等温度。

回充这件事,本质上是四个约束取交集:化学允许多少、BMS 放多少、线缆送到多少、电源供多少。 四个数里最小的那个决定了时间,而它经常不是你以为的那个。

前几篇里,114 讲的是「断电那一瞬间」,115 讲的是「断电之后能撑多久」,116 讲的是「电池怎么把状态说清楚」。这一篇补上最后一环:电回来之后,怎么把它装回去。

下一篇写多簇并联的环流与均流——两台 100 Ah 的电池并在一起,为什么总电流不是简单相加,以及为什么「SOC 差 3% 就并机」会在几个月后变成 15%。这跟本篇的多日亏空是同一条线上的问题:一个是能量欠账,一个是电荷欠账。

本文的降额表、内阻倍数、热参数都是典型口径的工程近似,不是任何一家厂商的规格书。真实项目请以你手上那份 datasheet 为准;不同体系(LFP / NMC / 钠电)的低温边界差别很大,别跨体系套用。文中的故障现象与排查路径来自实际现场,数值做了脱敏与归一化处理。