人形机器人电源系统怎么搭:从电池、BMS、预充电到回灌与 brownout 保护的实作指南

Quick take:这篇适合已经开始做人形机器人关节样机、双臂平台或小型整机的人,尤其适合遇到“一上负载就掉压、重启、报码、发热、回弹过压”的团队。它解决的不是抽象的“电源要稳定”,而是你到底该怎样把电池、BMS、预充电、母线监测、回灌消能和棕断降级串成一条能落地的工程链。最关键的实现判断是:人形机器人电源系统不是“找一块更大电池”就结束了,真正决定整机可用性的,是你能不能同时管住瞬时拉电、减速回灌、高电容上电冲击,以及低电压时系统如何有序降级。

这篇适合谁

  • 正在做人形机器人腿部、双臂、上身或整机样机的人
  • 已经有驱动器、电机和控制器,但整机一做动态动作就掉压、重启或报码的人
  • 准备把样机从实验室“能动”推进到连续测试、长时间示教或重复演示的人
  • 想建立一套可复用的电源 bring-up 与故障排查流程,而不是每次靠经验硬扛的人

为什么人形机器人最容易把电源系统做成隐形短板

很多团队对执行器、减速器、视觉和控制栈都很上心,但电源系统常常被简化成“电池 + 线束 + 驱动器”。问题是,人形机器人比普通静态设备更容易在以下几种状态下把供电边界打穿:

  • 多关节同时启动,瞬时电流很大,母线电压被线束和内阻拉低
  • 快速减速、落脚缓冲、手臂回收,机械能回灌到母线,过压风险突然上来
  • 整机高电容上电,如果没有预充电,接插件、保险和板上器件很容易吃上电冲击
  • 电池电量下降或温度变差,同一套动作在后半程更容易 brownout
  • 控制器只知道“掉了”,却不知道应该先限扭矩、关哪些非关键负载、保哪些链路

所以电源系统不是幕后配角,它实际上决定了你的控制算法有没有稳定边界可用。

先建立一个正确的电源架构观

我更建议把人形机器人电源看成 6 个必须串起来设计的层:

  1. 能源层:电池、电源输入、充放电边界、BMS。
  2. 接入层:总开关、保险、急停、预充电、连接器。
  3. 母线层:主 DC bus、电流路径、线径、压降、分支拓扑。
  4. 执行层:驱动器、电机、局部电容、峰值与连续功率约束。
  5. 消能层:回灌路径、刹车电阻、再生吸收、过压保护。
  6. 降级层:低压监测、分级 brownout、日志、软停机、受控恢复。

只要其中一层是黑箱,系统一到动态工况就很容易出“偶发故障”,而且最烦的是,这类故障往往会伪装成控制问题、通信问题或者硬件良率问题。

第 1 步,先算功率预算,不要直接按“电池容量”拍板

很多原型一上来就问“买 6S 还是 12S,买多大 Ah”,但真正该先算的是功率路径,而不是电池标称容量。

建议至少先做这 4 组估算:

  • 静态待机功率:工控机、交换机、传感器、驱动器待机、低压辅助电源
  • 单动作峰值功率:比如双臂同时前伸、单腿支撑起身、髋关节快速回摆
  • 持续节拍功率:例如 10 分钟示教、反复抓放、连续行走测试
  • 回灌峰值:快速减速、接触碰撞后的回弹、脚落地后的关节吸能

如果你只看“最大放电电流”,最后大概率会遇到两个问题:要么母线电压仍然被压到危险区,要么电池能放电但不愿意吃回灌。

实操建议

  • 把每个大关节按“峰值电流、连续电流、典型动作占空比”单独列出来
  • 把计算平台、深度相机、雷达、交换机和风扇这类持续负载单列,不要混到电机功率里
  • 先按最坏的两个同时动作工况估算,而不是按“平均动作”估算
  • 把电池低电量、低温和线束压降预留进预算,不要按理想电芯状态设计

第 2 步,决定主母线电压时,先想“压降和回灌”,不是先想“兼容性”

对人形机器人来说,母线电压不是越低越安全、越高越先进,而是要看你怎样在扭矩、电流、线束、驱动器范围和安全边界之间取平衡。

  • 低电压方案通常更容易找器件,但为了拿到同样功率,电流会更大,线损、发热和压降会更难看。
  • 较高母线电压方案可以降低同功率下的电流和线束损耗,但对绝缘、接插件、保护和维护流程要求更高。

ODrive 的硬件配置文档有一个很实用的提醒:欠压和过压阈值都不该贴着额定值设置,而要给线束压降留余量,很多系统从 ±2V 的保护裕量起步,但线长、线细时往往要留更多。这背后的工程含义是,你要按实际布线后的母线表现定保护,不要按台面上电源标签定保护

我更推荐的判断顺序

  1. 先看驱动器允许的 DC bus 范围
  2. 再看目标动作下的峰值电流会不会把线束、连接器和保险推到过热区
  3. 然后看你的电池/BMS 是否允许对应放电和回充电流
  4. 最后才决定是否需要升高母线电压来换取更小线损和更稳电压

第 3 步,必须给高电容负载做预充电,不要让上电瞬间决定你的可靠性

人形机器人整机往往挂着一串驱动器和大电容输入。没有预充电,主开关一合上时的冲击电流很容易让接插件打火、保险误动作,甚至把器件寿命提前打没。

mjbots 的 power_dist 这类机器人电源分配板之所以值得参考,不只是因为它能分电,而是它把预充电、软开关、能量监测和过流保护放成了标准件,而不是让你每次上新样机都手搓一次电源接入逻辑。

这一层至少要具备什么

  • 主电源接入前先走预充路径,避免大电容直接硬冲
  • 急停或主断电后,系统能明确知道当前是掉电、故障、还是受控软关机
  • 主母线电压、电流、累计能量最好能被记录,而不是只靠万用表临时测
  • 高压大电流链路和低压逻辑链路尽量分层,避免逻辑电源被主母线瞬变拖死

第 4 步,不要把 BMS 当成“买电池自带的黑盒”

很多样机最后死在一个很典型的误会里:团队以为“有 BMS 就安全了”,结果 BMS 只是最后一道保护,并没有替你完成系统级电源设计。

对人形机器人原型来说,BMS 至少要回答下面几个问题:

  • 它允许的持续放电电流瞬时放电电流分别是多少?
  • 它允许的回充电流是多少?快速减速时能不能吃下回灌?
  • 出现过流、过压、欠压、过温后,它是限流、断开,还是锁死等待人工恢复?
  • 断开动作一旦发生,是否会把整机控制器、工控机和网络一起黑掉?

如果你没搞清这些边界,那么 BMS 不是在保护你,而是在故障发生时给你再加一个未知数。

一个很常见的坑

驱动器支持回生,不代表电池和 BMS 愿意接收回灌。ODrive 文档明确提醒,回灌电流超出可接受负值电流时,会触发 DC_BUS_OVER_REGEN_CURRENT 一类故障。一些 AC/DC 电源甚至对任何回灌都很敏感,直接过压关断。这个逻辑放到人形机器人上,就是:

  • 机械系统能回收能量 ≠ 电源系统能安全接住能量
  • 控制上允许急刹 ≠ 电源上允许急刹

第 5 步,单独设计“回灌消能路径”,不要等过压后再补锅

人形机器人特别容易出现回灌,因为你不只是“电机驱动负载”,你还在不停地让连杆、躯干、手臂和腿部的机械能在加速和减速之间来回交换。

哪些动作最容易把母线顶高:

  • 手臂高速回收
  • 腿部摆动后突然刹停
  • 双足落地后的弹性回弹
  • 外力推搡后的恢复动作
  • 上身大幅俯仰后的姿态制动

这时候你至少要选清楚下面三种思路中的一种,而不是默认“总能回到电池里”:

  1. 电池/BMS 可安全吸收回灌,且有明确电流上限与热边界
  2. 刹车电阻或外部再生钳位负责把多余能量烧掉
  3. 控制上主动限制减速斜率和负向功率,不让回灌峰值超过系统承受能力

实际工程里通常不是三选一,而是前两项加上第三项同时做。ODrive 也明确区分了 trip level 和 active power limit 这两层能力,前者是保护底线,后者是主动收敛扭矩,不让系统冲进危险区。这个思路很值得借到人形机器人整机电源设计里。

第 6 步,把 brownout 做成“分级事件”,不要等到整机重启才算故障

很多团队直到工控机重启、总线掉线、驱动器全部失能,才说“我们 brownout 了”。这太晚了。

WPILib 的 brownout 设计很值得参考,不是因为它的阈值可以直接照搬,而是因为它把低压保护做成了分阶段降级

  • 先削减部分输出
  • 再进入保护状态,关掉非关键用户供电和执行输出
  • 最后才到设备 blackout 和重启

对人形机器人来说,这意味着你也应该自己定义一套 brownout 分级,例如:

  1. Level 0,正常:所有控制与感知都打开
  2. Level 1,轻度掉压:限制非关键动作速度,降低同时动作数
  3. Level 2,中度掉压:关闭高功耗非关键负载,冻结大幅摆动动作,保留平衡与日志
  4. Level 3,严重掉压:禁止继续执行任务,只允许受控坐下、落臂、蹲伏或回到安全姿态
  5. Level 4,黑屏前保护:保存关键日志、发出故障信号、准备断电恢复

只要你有了这套分级,掉压就不再是玄学,而是一个能被复现、记录和优化的系统事件。

第 7 步,低压逻辑电源必须和高功率执行链路隔离思考

很多原型的问题不是主母线本身不够,而是主母线一抖,工控机、交换机、相机、深度传感器、USB hub 也一起跟着抖,最后你看到的是:

  • 相机重连
  • USB 设备掉线
  • 交换机重启
  • ROS 2 节点报超时
  • 控制器看起来“莫名其妙”失联

但这些往往只是掉压的二次伤害。真正该做的是:

  • 给逻辑电源单独稳压和足够 hold-up 余量
  • 关键计算与通信链路不要直接吃主母线瞬变
  • 区分“动力欠压”和“感知掉电”,日志里分别记
  • 让上层 supervisor 知道是电源降级,不要误判成软件异常

第 8 步,建立一套最小电源 bring-up 和回归测试清单

如果每次改线束、换电池、换驱动器之后都靠“上电看看会不会炸”,那说明这条链路还没有工程化。

我建议至少固定下面这套清单:

上电前检查

  • 极性、连接器锁止、保险规格、急停状态确认
  • 预充电路径和主接触路径确认
  • 母线测点、关键支路测点、逻辑电源测点可访问
  • 电池电量、单体一致性、BMS 状态确认

空载上电检查

  • 预充电完成时间是否稳定
  • 主母线电压是否进入目标窗口
  • 驱动器是否有过压、欠压、过流、温度异常报码
  • 工控机、交换机、相机和传感器是否按预期上线

低风险动作检查

  • 单关节慢速往返时母线电压波形
  • 双关节同时加减速时瞬时压降
  • 快速减速动作时是否出现回灌过压
  • 日志时间戳是否能把电压、电流、故障码和动作对齐

持续工况检查

  • 10 到 20 分钟重复动作后的温升和电压表现
  • 不同电量区间下同一动作是否稳定
  • 热机状态下 brownout 阈值是否更早触发
  • 受控停机后能否稳定恢复,不引入新的报码

器件和模块选择时,优先看这 8 个判断点

  1. 驱动器允许的 DC bus 范围和欠压/过压配置能力
  2. 电池和 BMS 的持续放电、峰值放电、回充电流边界
  3. 是否有预充电与软开关能力
  4. 能不能记录母线电压、电流、能量、故障状态
  5. 是否支持主动功率限制或至少支持明确的限流/限压策略
  6. 逻辑电源是否与动力链路分层,是否有足够稳压余量
  7. 连接器、保险、线径和布局是否按峰值工况留足裕量
  8. 出故障时是“整机黑掉”,还是可以按设计好的顺序降级

最容易踩的坑

  • 把电池容量当成功率能力,忽略内阻和压降
  • 默认回灌会“自然回到电池”,没有验证 BMS 回充边界
  • 没有预充电,靠主开关直接顶大电容
  • 只在满电状态做验证,没有测试低电量后半程
  • 逻辑电源直接跟主母线硬绑,导致感知和通信一起陪葬
  • 日志里没有母线电压、电流和故障码,最后只剩“现场感觉”
  • 把 brownout 当偶发现象,没有定义分级降级动作

怎么判断你这套电源系统已经“可上线测试”

我通常会看下面 5 个标准有没有同时成立:

  1. 上电稳定:连续多次预充和开机都一致,没有偶发接入冲击异常
  2. 峰值动作可解释:多关节大动作下的压降和回灌都在日志里可复盘
  3. 低电量可控:不是“突然死机”,而是先触发限速、限功率、受控停机
  4. 持续工况可过:10 到 20 分钟重复工况不出现越来越早的掉压和过温
  5. 故障可恢复:过压、欠压、软关机、急停后能按预期恢复,不引入新的黑箱问题

Related Reading

Further in This Series

Sources / Further Reading

Share this article

Send it to someone following humanoid robotics, embodied AI, or deployment trends.