电池供电设备的能耗预算与休眠策略
支持四象限运行、采用 FOC 驱动方式的 AQMD6008BLS-TE/2 这类机型用在 AGV、巡检小车等电池场景时,续航是硬指标。续航不取决于"电池多大",而取决于各耗电项的加总,因此要先把能耗账算出来。
一、分项能耗账
取 24V / 100Ah 电池(示例值),各分项按平均电流折算:
| 分项 | 平均电流 | 每天消耗 | 占比 |
|---|---|---|---|
| 驱动板静态(控制+隔离+电源) | 0.15 A | 3.6 Ah | 12% |
| 通信模块待机 | 0.05 A | 1.2 Ah | 4% |
| 通信发射(每次 2s×0.8A,20 次/天) | ≈0.013 A | 0.32 Ah | 1% |
| 传感器与外设 | 0.10 A | 2.4 Ah | 8% |
| 电机做功(工况相关) | 8 A(等效) | 192 Ah | 75% |
| 合计 | ≈8.3 A | 199.5 Ah | 100% |
结论:在运动为主的工况下,电机做功占绝对主导,把通信心跳从 300s 缩到 60s 省下的那点电量几乎无意义;而在静止待命的设备上,静态电流与唤醒次数就成了主要项。所以优化前必须先做分项测量,别凭直觉优化。
二、唤醒次数的隐性成本
射频模块每次唤醒包含附着、鉴权、传输、释放,等效能耗远高于传输本身。取每次唤醒等效 0.8A×2s(示例值):
| 心跳周期 | 每天唤醒次数 | 每天等效消耗 | 与 100Ah 的关系 |
|---|---|---|---|
| 60 s | 1440 | 640 Ah·s ≈ 0.18 Ah | 0.18% |
| 300 s | 288 | 0.036 Ah | 0.04% |
| 1200 s | 72 | 0.009 Ah | 0.01% |
对电池设备,心跳放宽到 600~1200s 的收益是明确的(与前面保活判据联动:放宽心跳会拉长掉线判定窗口,需按业务容忍度取舍)。真正要防的是异常唤醒风暴:网络不稳导致重连循环,一天唤醒上万次,能耗会放大 10 倍以上,因此重连必须有退避与单日次数上限。
三、休眠策略与唤醒源
/* 空闲判定:无运动指令且无故障,进入低功耗;保留 RTC 与故障唤醒源 */
void idle_policy(uint32_t now_s, uint32_t last_cmd_s, uint8_t fault)
{
if (fault) return; /* 故障态不休眠,需保持可观测 */
if (now_s - last_cmd_s < 600u) return; /* 空闲 10min 才休眠 */
power_set_mode(PM_STOP); /* 关外设时钟,保留 RTC/看门狗 */
}
三条原则:故障态不休眠(否则失去可观测性);唤醒源要显式列举(RTC、通信、急停、看门狗),避免"莫名唤醒";休眠前把必要状态落盘,唤醒后能恢复到一致状态。
四、验证方法
一是功耗分析仪实测:分别测休眠、待机、通信、运行四种状态的电流曲线,与分项表对照,误差超过 20% 需重新归因;二是长时挂机:连续 72h 记录电池电压与唤醒次数,反推平均电流;三是异常注入:制造断网重连循环,确认退避生效、能耗不失控。
五、小结
续航按分项加总计算,先测"静态、待机、唤醒、做功"四块占比再决定优化对象:运动工况优化电机与传动,待命工况优化静态电流与唤醒次数。心跳放宽要与掉线判定联动取舍,重连必须退避防风暴,故障态不休眠,并用功耗分析仪与长时挂机闭环。