离网备电时长估算与负载分级实战:标称能扛 4 小时、停电 1 小时 38 分全网关跟着黑——我把那 2.5 倍差距拆成五本账,再用四道阶梯把关键负载撑回 7 小时

2026年10月18日 0 By admin

上一期讲并离网切换那 118ms(离网/并网切换时序与上位机联锁实战),解决的是”切换瞬间别断电”;这一期解决它下游那个更扎心的问题——切换成功了,然后呢?电池能撑多久,撑到谁的头上。

案例还是那台 5kW 离网机带 10.24kWh 磷酸铁锂。用户买机器时销售口算”10 度电带 2.5kW,能扛 4 小时”;去年冬天第一次真停电,1 小时 38 分后逆变器低压保护,路由器、监控、空调一起黑。用户找我算账,我把 2.5 倍的差距拆成了五本账,再顺手把负载分了四级——同一块电池,关键负载的存活时间从 98 分钟变成了 7 小时 03 分。

所有数字都出自本期配套脚本 backup_time_calc.py(纯标准库、全离线,21 项断言自检全过),文末列了每个模式怎么跑。


一、标称账是怎么算的:每一步都没错,合起来就是错的

先看销售和用户共用的那本账:

项目 数值 来源
电池标称能量 10.24 kWh 51.2V(16S 磷酸铁锂)× 200Ah
负载功率 2.5 kW 用户报的”空调 2.2kW + 网关照明 0.3kW”
心算备电时长 10.24 ÷ 2.5 = 4.10 h 销售口头承诺”4 小时”

这台机的实际配置没有任何水分:10.24kWh 是真容量,逆变器标称 5kVA 也够用。问题在于这本账里每一项都是”实验室口径”:能量取的是标称、负载取的是铭牌、效率温度老化全是无限大、负载被当成一个恒定不动的 2.5kW。

去年 12 月那次停电的实测时间线:

  • 停电开始,切换正常,全屋照常(118ms 那篇的功劳);
  • 第 98 分钟,逆变器报电池低压保护,全屋断电;
  • 事后看 BMS 日志:关机时 SOC 显示 10%——正好是它出厂设的放电截止点。

也就是说,机器严格按自己的规则工作,只是那本”4 小时”的账,从头到尾没有一条规则是这么写的。下面把五本账一本一本对。


二、第一本账 DOD:BMS 的 10% 保留,加上 Coulomb 计数在低端的 5% 盲区

第一刀砍在”标称能量全部可用”这个假设上。两个来源:

① BMS 的放电截止保留。 这台机出厂设 SOC 10% 截止放电。这 10% 不是浪费——它是留给黑启动、通信保活和”最后一口气找答案”的,砍不得,但也不能算进备电。

② SOC 低端的估算盲区。 磷酸铁锂的平台特性决定了 Coulomb 计数在低 SOC 段误差发散——这正是电池管理与 SOC 估算实战那篇里”显示还剩 40%、三分钟后直接关机”的病灶。低端的 5% 不能当备电对外承诺——你以为还剩 15%,真实可能只剩 10%,误差全兑现在用户身上。

两刀合起来的账:

口径 SOC 窗口 占标称比例
名义可用 100% → 10% 90%
可承诺可用(扣 5% 低端盲区) 100% → 15% 85%
对应能量 10.24 × 85% 8.70 kWh

备电承诺的 SOC 底线要用有效底线 15%(10% 保留 + 5% 盲区),不是 BMS 设置里的 10%。这两者差的那 5%,就是”销售账”和”工程账”的第一道缝。


三、第二本账效率:95% 不是一条水平线,轻载才是重灾区

逆变器厂商标”峰值效率 96%”,用户就按 96% 算账。但效率是负载率的函数,我用实测拟合的三项损耗模型拆开看:

P_loss = P0 + k1×P + k2×P²
P0 = 30W   固定自耗:控制板 + 屏幕 + 继电器 + 辅助电源 + 风扇低速
k1 = 0.015 一次项:磁损、驱动、整流
k2 = 6e-6  二次项:铜损、开关损耗

带出来的曲线(5kW 离网机):

负载率 负载 W 损耗 W 效率 电池侧 W
5% 250 34.1 87.99% 284
10% 500 39.0 92.76% 539
20% 1000 51.0 95.15% 1051
40% 2000 84.0 95.97% 2084
45% 2236 — 95.98%(峰值) —
60% 3000 129.0 95.88% 3129
74% 3700 167.6 95.67% 3868
100% 5000 255.0 95.15% 5255

三个结论:

  1. 峰值 95.98% 出现在 45% 负载(2236W),不是全线 96%。重载端轻微下探是铜损平方项,轻载端雪崩是那 30W 固定自耗。
  2. 本案例负载 3.7kW(第五本账见),工作点效率 95.67%——这一本账只吃掉 4% 左右,不算重。
  3. 真正要命的是轻载时段:晚上只剩网关冰箱 100W 时,30W 固定自耗占电池侧功率的 23%。负载分级之后(第八节)整晚都跑在这个区间,这本账会反过来变成主角。

凡是标”效率 96%”的机器,都要问一句:在哪个负载点? 5% 负载时它只有 88%,而分级管理恰恰会把系统长时间摁在轻载区。


四、第三本账温度:0℃ 的磷酸铁锂已经是另一块电池

用户的电池挂在车库,冬天停电那次环境温度 0℃。LFP 的放电可用容量随温度的典型曲线(数量级参考,以自家电芯 datasheet 为准):

温度 放电可用容量
−20℃ 45%
−10℃ 65%
0℃ 80%
10℃ 90%
25℃ 100%
45℃ 98%

0℃ 取因子 0.80。这条曲线两个工程提醒:

  • 斜率最陡的区段是 0℃ 到 −20℃——北方户外柜的项目,备电账要按安装地冬季最低温的插值算,不能按 25℃ 算完打折了事;
  • 低温充电另有一票否决(0℃ 以下禁止充电电流),本篇只算放电侧,但调试时别忘了这把刀悬在回充逻辑头上。

另外注意容量-温度曲线是放电倍率相关的:同一块电池 0.5C 放比 0.2C 放在低温下可用容量更少。本案例 3.7kW 对 10.24kWh 是 0.36C,中等偏温和,表里数字按小倍率口径取的,倍率大的项目自己留余量。


五、第四本账老化:装机 18 个月,SOH 只剩 91%

用户记得”电池能用十年”,忘了十年是渐变出来的。装机 18 个月、累计 260 个等效满循环(EFC),合成 SOH:

日历老化:1.5 年 × 2%/年        = 3.0%
循环老化:260 EFC × 0.023%/EFC = 5.98%
SOH = 1 − 3.0% − 5.98%         = 91.0%

两个实操点:

  • 日历老化吃存放状态:长期满电搁置、高温搁置都会加速。这台机 18 个月里大部分时间满电挂在 51.2V 上,3%/年的日历口径已经是客气的。
  • SOH 显示值要先标定才可信:BMS 报的 SOH 若从没做过满充标定,数字可能停在出厂值附近。算账前先做一次完整满充让 Coulomb 计数和 SOH 对齐——参考 SOC 估算那篇(电池管理与 SOC 估算实战)的标定流程。

10.24 × 0.91 = 9.32 kWh——第四刀又砍掉 9%。


六、第五本账负载:铭牌 2.5kW、实测 3.7kW,缺的 1.2kW 都写在小字里

前四本账砍的是”能放出来的电”,这一本账砍的是”你以为的负载”。停电当晚钳形表和点表功率寄存器的实测平均:

负载 实测平均 备注
空调压缩机(制热平均) 2000W 铭牌 2.2kW 是压缩机额定输入,启停占空折算后 ~2.0k
电辅热(常开) 900W 冬天制热默认开启——铭牌表里的小字
除霜/启动浪涌均值 300W 化霜反转 + 压缩机启动的占空折算
冰箱 130W 占空折算平均
网关 + 摄像头 90W 7×24 常载
应急照明 180W 客厅 + 走道
待机电视/机顶盒 100W “待机”俩字骗了所有人
合计 3700W 用户当初只算了 2500W

缺口 1200W 的构成:电辅热 900W + 除霜/启停占空 300W——全都是铭牌表不写或写在小字里的。测量方法本身也有讲究:功率寄存器的取数口径(有功/视在、刷新率、平均窗)会引入成倍的口径差,参考逆变器 Modbus 点表与上位机对接实战;电流采样链路本身的精度极限在电流采样链路设计实战里拆过。

两个容易被忽略的容量口径:

  • kVA 不等于 kW:5kVA 逆变器按 PF=0.9 折算,有功限额 4.5kW。算备电用 W,算”能不能带得动”用 VA,两张表别混。
  • 启动浪涌:压缩机启动电流 3~5 倍额定,持续 100~300ms。它对时长影响有限(占空折算进了 300W),对带不动影响致命——逆变器过载能力(典型 110%/1min、150%/10s)要单看。

七、五本账连乘:4 小时是怎么变成 1 小时 38 分的

把五本账串成一条链(脚本 ledger 模式输出):

标称能量        10.240 kWh
× DOD 85%      =  8.704 kWh   (BMS 保留 10% + 低端盲区 5%)
× SOH 91%      =  7.921 kWh
× 温度 0.80    =  6.337 kWh   (0℃)
÷ 电池侧功率 3.868 kW          (负载 3.7kW ÷ η95.67% + 固定自耗)
= 1.638 h = 98.3 min
账本 因子 单刀砍掉
DOD 0.85 15%
SOH 0.91 9%
温度 0.80 20%
负载口径 2.5kW → 3.7kW 电池侧 +8.9%(同时是分母变大)

标称账 4.10 小时,五本账合计 98.3 分钟,差距 2.50 倍。注意没有任何一本账”离谱”——单看都在 10%~20% 量级,连乘起来就是 2.5 倍。反过来读也成立:想让”4 小时”兑现,这四本账一本都不能欠。

还有一条逆否结论值得抄在验收单第一行:标称 4 小时 ÷ 实测 1.63 小时 = 2.5,若某个项目的实测/标称比远好于这个案例,先查是不是没停电过、测的是假负载。


八、负载分级:阈值不是拍脑袋,是把”每瓦的代价”排序

账算完了,接下来是管理。分级的目的不是”少用电”——总能量是固定的——而是把电按价值排序发放,让最不能断的东西活到最后。

分级清单(功率与上面实测表严格对齐,合计 3700W):

级别 内容 功率 断开阈值 设计依据
Tier0 安全底线 网关/摄像头 90W + 应急照明 180W 270W 永不断 失联比黑屋更危险;照明是安全件
Tier1 生活保障 冰箱 130W SOC 18% 几小时的停电饿不着人,但过夜要保
Tier2 舒适 空调压缩机(含除霜均值)2300W + 待机电视 100W 2400W SOC 40% 冷一点热一点死不了人
Tier3 可牺牲 电辅热 900W SOC 55% 性价比最差的 900W:电阻发热,比压缩机贵一倍得到的舒适度一样

阈值设计的四个依据:

  1. Tier3 = 55%:电阻加热是整个系统里”每瓦价值”最低的负载,且 900W 一刀下去备电时长立刻翻倍级延长——先断它,用户体感损失最小、账面收益最大。
  2. Tier2 = 40%:压缩机停机后 Tier0+Tier1 只剩 400W,系统进入轻载区——效率账(第三本账)开始反向帮忙。
  3. Tier1 = 18%:冰箱的目标是”扛过这一晚”,18% 时天通常已经亮了;再往上留阈值会挤占 Tier0 的存续。
  4. 底线 10% 不动:与 BMS 放电截止对齐,黑启动保留一分不少。

阶梯仿真的逐段账(脚本 sim 模式,能量按 SOC 段线性近似,逆变器损耗全程计入):

段 SOC 区间 负载 W 电池侧 W 存续 min
1 100% → 55% 3700 3868 52.0
2 55% → 40% 2800 2919 23.0
3 40% → 18% 400 437 225.2
4 18% → 15% 270 304 44.1
合计 100% → 15% — — 344 min = 5h44m

对比不分级的 98.3 分钟,总时长 ×3.50。更重要的变化在结构上:不分级时,网关和空调”同生共死”在 98 分钟;分级后,空调多享受了 75 分钟舒适,然后网关和应急照明独享 269 分钟——关键负载的存活时间变成了 3.5 倍,这才是分级卖的东西。

硬件与链路上,分级执行就是一组受控的继电器/接触器支路,门控设计(防反灌、断电开关的位置、待机功耗的坑)参考低功耗外设与传感器电源门控实战;阈值参数由 EMS 通过 Modbus 下发,写控制的掉电保持和联锁细节在逆变器 Modbus 写控制与参数掉电保持实战里完整拆过,本篇不重复。


九、把最后 5% 盲区也吃掉:Tier0 走 DC-UPS

第八节的仿真停在有效底线 15%——那 5% 盲区(SOC 15%→10%)不敢给主逆变器用,因为大电流下 Coulomb 计数不可信,主逆变器的关断判据跟不上真实电量。

但有一个通道可以安全地把这段能量花掉:Tier0 改挂在电池侧的 DC-UPS 上。逻辑是:

  1. 逆变器休眠后,Tier0 只剩 270W、约 5A @51V——电流小,压降小,单体电压可以兜底(任一单体低于 3.05V 即停),不再依赖 SOC 数字;
  2. 这本来就是把”BMS 保留 10%”花在刀刃上——保留的本意就是给关键负载续命和黑启动,现在兑现给它该给的人。

加上盲区段的完整仿真(脚本 sim2 模式):

段 SOC 区间 供电通道 存续 min
1~3 100% → 18% 主逆变器 300.2
4 18% → 15% DC-UPS(逆变器休眠) 45.9
5 15% → 10%(盲区,电压兜底) DC-UPS(逆变器休眠) 76.5
合计 — — 423 min = 7h03m

对比不分级 ×4.30。这 79 分钟的盲区段是分级方案里”免费的午餐”:不加电池、不加逆变器容量,只加一块 DC-UPS 模块和一条电压兜底判据。额外的好处是停电最黑的时段(后半夜)主逆变器已经睡了,风扇停转,夜里那 30W 自耗也省了。

三层判据的分工:SOC 管前 85%(Coulomb 计数),盲区管最后 5%(电压兜底),BMS 硬件低压保护管兜底的兜底。三层各管一段,谁也不越权。


十、判据选择:为什么分级用 SOC 不用母线电压

“分级什么时候断”这个判据,几乎所有人第一反应是电压,这条路在磷酸铁锂上是死的:

  • LFP 平台段 3.2V 附近,SOC 从 90% 滑到 20%,开路电压几乎不动——电压对 SOC 的分辨力在平台段趋近于零;
  • 负载每投切一次,母线电压的阶跃凹陷(本案例 3.7kW 投入时 >200mV)比 70% 的 SOC 变化在电压上体现得还明显——电压里负载信息的信噪比远高于 SOC 信息;
  • 拿电压做分级判据的结果就是:空调一启动全线跳闸,一停又全部回连,继电器打成机关枪。

所以本方案的判据是三级混编:

判据 用途 依据
SOC(Coulomb 计数 + 定期满充标定) Tier1/2/3 的分级断开 平台段电压不可用,电流积分是唯一连续信号
单体电压 < 3.05V 盲区段 DC-UPS 兜底 小电流下电压才开始携带真实电量信息
BMS 硬件低压保护 绝对底线 永远在,永远最后出手

SOC 的输入链路(电流采样、库仑计数误差、满充标定周期)在电池管理与 SOC 估算实战与 BMS↔PCS 的 CAN 对接(储能 BMS 与 PCS 的 CAN 对接实战)那篇里都铺过:SOC 用 BMS 的,别让逆变器自己算——它没有满充标定的机会,也没有单体电压的信息。


十一、执行链与联锁:回滞、最短保持、手动覆盖

分级逻辑本身不复杂,复杂的是”什么情况下允许动”。这套规则的每一条都是防真实场景的:

断开侧(单向 ladder,只降不升):

  • 判据:SOC 连续 30s 低于阈值才动作——防止负载浪涌把电压瞬时拉出假信号(虽然判据是 SOC,但 Coulomb 计数在浪涌瞬间也有积分毛刺);
  • 每级断开间隔最短保持 300s——不允许连跳,任何时刻最多一级在动作中,出问题永远知道是哪一级引起的;
  • 断开顺序固定 Tier3→2→1,不允许跳级——跳过 Tier2 直接断 Tier1 的瞬间,冰箱电机反电动势打在刚分断的母线上,这不是设计而是事故。

恢复侧(三条全满足才解锁):

  • 市电恢复;
  • SOC 高于该级阈值 + 回滞 8%(Tier3 要 SOC 回到 63% 才允许恢复);
  • 持续 10 分钟。

回滞 + 单向是同一件事的两面:分级断开是一次事件,不是一种状态。没有回滞的分级,SOC 在 55% 附近抖两下,电辅热一夜开关几十次,继电器寿命和用户体验一起报废。

手动覆盖与观测:

  • 每级支持强制合/断(写寄存器),覆盖动作必须进事件日志——”我半夜手动把空调合回来了”必须留痕,否则第二天复盘全是谜;
  • 分级事件计数器(增量比对)——直接沿用切换事件那篇的思路(离网/并网切换时序与上位机联锁实战):轮询可能错过瞬间事件,计数器不会。

示例点表(预留区地址,落地以自家点表为准,写侧的 NVM 与联锁规则同写控制那篇):

0x0310  分级功能使能        U16   0/1
0x0311  当前分级状态        U16   bit0..3 = Tier0..Tier3 在网
0x0312  Tier3 断开阈值      U16   SOC%,出厂 55
0x0313  Tier2 断开阈值      U16   SOC%,出厂 40
0x0314  Tier1 断开阈值      U16   SOC%,出厂 18
0x0315  停机底线 SOC        U16   %,出厂 10(与 BMS 一致)
0x0316  恢复回滞            U16   SOC%,出厂 8
0x0317  手动覆盖            U16   bit0..3 强制合,bit8..11 强制断
0x0318  平均功率 P_avg      U32   W,15min 滑窗
0x031A  预计备电时长        U16   min(见第十二节,含不确定度语义)
0x031B  最短保持时间        U16   s,出厂 300
0x031C  分级事件计数器      U32   增量比对用
0x031D  上次动作原因        U16   0 无/1 SOC 阈值/2 手动/3 过温/4 BMS 保护

点表里最容易被砍掉又最后被加回来的是 0x031D 上次动作原因。凌晨三点断的是 Tier2,第二天用户投诉”我的空调被你们搞坏了”——没有这个字段,你连”是阈值触发的还是谁手动干的”都说不清。


十二、上位机呈现:剩余时长给区间,不给单点

分级方案落地后,上位机最关键的数字变成”还剩多久”。这个数字天生是估算值,给单点就是在造谣。

估算公式与误差拆解(脚本 remain 模式,示例:当前 SOC 70%,P_avg 3.7kW):

可用 SOC 点 = 70% − 15%(有效底线)      = 55 点
每点能量    = 10.24 kWh × 0.91 × 0.80 ÷ 100 = 74.5 Wh
剩余能量    = 55 × 74.5 Wh = 4.10 kWh
剩余时长    = 4.10 kWh ÷ 3.868 kW = 64 min

误差源:
  SOC 误差 ±5 点  → ±0.37 kWh → ±6 min
  P_avg 波动 ±15% → ±10 min
  合成(方和根)  → ±11 min

呈现:预计 64 ± 11 min(负载取 15min 滑窗均值)

三条呈现纪律:

  • 负载用 15 分钟滑窗均值,不用瞬时值——压缩机启停会让瞬时功率在 0.4k 和 4k 之间跳,瞬时值算出的剩余时长能从 3 小时跳到 20 分钟;
  • 低负载时段误差会放大:P_avg 降到 400W 后,同样 ±5 点 SOC 误差折算的时间误差扩大近 10 倍,区间显示要跟着放宽;
  • 告警阈值按区间下沿触发:”剩余 <45min”用 64−11=53 这类下沿值判,不要用中值——宁可早告警,不给用户”最后一分钟惊喜”。

最后一条是商业纪律:估算区间不要写进合同承诺。合同里写”备电 4 小时”的那个 4,应该用第七节的五本账重新算一遍再签。


十三、验收清单

分级方案落地的自检单,逐条过:

  • ☐ 五本账逐项实测并留档:DOD 窗口、SOH(满充标定后)、安装环境温度曲线、负载实测清单(不是铭牌加总)
  • ☐ 逆变器效率曲线实测至少 5 个负载点,拟合 P0/k1/k2,轻载点(5%~10% 负载)必须有
  • ☐ 负载清单区分 W 与 VA,功率寄存器取数口径(有功/视在/刷新率)与点表核对一致
  • ☐ 启动浪涌实测:最大单负载投入时逆变器不过载(对照过载能力曲线 110%/150%)
  • ☐ 分级功率表与实测负载清单合计一致(本案例 3700W 对 3700W,一分不差)
  • ☐ Tier 阈值经五本账仿真验证:Tier0 存续时长 ≥ 项目要求的”关键负载保电时间”
  • ☐ 每级断开动作实测:断开后母线无反灌、无电弧痕迹、其余 tier 无重启
  • ☐ 回滞验证:SOC 在阈值附近 ±1% 摆动 30 分钟,该级动作次数 = 0
  • ☐ 最短保持 300s 实测:人为把 SOC 拉穿两级阈值,观察到两级间隔 ≥300s 且顺序正确
  • ☐ 恢复三条件实测:缺市电 / SOC 不足 / 持续时间不足,三种缺一都观察不到恢复
  • ☐ 手动覆盖实测并核对事件日志:动作原因字段与实际操作一致
  • ☐ 事件计数器增量比对:上位机轮询计数与设备端计数在 100 次动作内零漂移
  • ☐ 盲区段验证:DC-UPS 单独带 Tier0 走完 15%→10%,单体电压兜底在 3.05V 正确停机
  • ☐ BMS 硬件低压保护最后演练一次:确认它仍在、仍最后出手、动作后黑启动仍可用
  • ☐ 剩余时长显示区间校验:同一工况连续观察 1 小时,实测落点在显示区间内
  • ☐ 温度降额验证:0℃ 环境实测放电时间与温度因子 0.80 的账对齐(±10%)
  • ☐ 断网演练:上位机失联时设备端分级逻辑独立正确执行(阈值在设备侧,不在云上)
  • ☐ 复电回充验证:市电恢复后回充过程不触发低温充电禁止误动作
  • ☐ 全流程演练一次真实停电(拉闸):实测总时长与仿真 5h44m 偏差 ≤10%

十四、写在最后

回头看这个案例:没有任何一个环节坏了——电池是好的,逆变器是好的,切换是好的,BMS 的每一条保护都按规矩动作。坏的只是那本账:把实验室口径的五个数连乘,当成生活口径的承诺。

五本账(DOD、效率、温度、老化、负载)是每个离网/备电项目开工前就该算完的,分级是把算完的账变成产品行为。两者共用同一套数字,也共享同一个教训:承诺给用户的每一个小时,都应该能被一条公式一路追溯回一块电池。

本期配套脚本 backup_time_calc.py(约 400 行,纯标准库、全离线、21 项断言自检全过)的模式速查:

ledger  五本账主算(本期 headline 的 98.3 min)
eff     效率曲线与峰值点定位
temp    LFP 温度曲线插值
load    铭牌 vs 实测的缺口拆解
sim     分级阶梯仿真(5h44m)
sim2    Tier0 走 DC-UPS 并吃掉盲区段(7h03m)
remain  剩余时长估算器(区间呈现)
aging   日历 + 循环老化合成 SOH
hyst    阈值/回滞/恢复条件核对表
triage  备电远短于标称的排查树
table   分级点表(示例)

下一篇预告:BMS↔PCS 的 Modbus 版——T/CIAPS 0006 还有第 2 部分(Modbus 通信协议),和这篇 CAN 版(储能 BMS 与 PCS 的 CAN 对接实战)构成”同一个接口、两种物理层”的姊妹篇:哪些信息 CAN 表里没有、Modbus 表里补了,寄存器怎么排,两套并存时以谁为准。

以上均为本人调试笔记,具体项目以所用逆变器、BMS 与电芯的官方文档为准。