4. 电机与驱动器:直流电机、无刷电机、力矩电机、驱动器工作模式

说到电机,很多搞算法的人容易把它当成一个「黑盒子」。我早年也这么干过,直到在调试一个六轴协作机器人时,发现力矩输出总是抖得厉害。折腾了两周,最后发现是电机选型压根不对路。

所以这一节,咱们把电机和驱动器掰开揉碎了讲。你想想看,力矩控制再漂亮,底子不行全是白搭。

4.1 三类主流电机:直流、无刷、力矩

在具身智能里,电机就是执行器的「肌肉」。常见的就这三种,我分别说说它们的脾气秉性。

电机类型 核心特点 典型应用 我的评价
直流电机(DC Motor) 结构简单,控制容易,有电刷磨损 低成本关节、教育机器人 入门首选,但别指望它干重活
无刷电机(BLDC) 效率高,寿命长,需要电子换向 工业机器人、无人机、协作臂 目前最主流,性价比之王
力矩电机(Torque Motor) 低速大扭矩,可直接驱动,无减速器 直驱关节、高精度力控场景 做力控的终极选择,就是贵

4.1.1 直流电机

直流电机是最老牌的选手。给电就转,调电压就调速,简单粗暴。但它的致命伤是电刷——摩擦会产生火花,还会掉碳粉。我在一个洁净室项目里吃过这个亏,用了半年,电机内部全是黑粉,最后全换成了无刷。

所以现在直流电机基本只出现在教学板或极低成本的玩具级机器人里。做产品的话,我建议你直接跳过它。

4.1.2 无刷电机(BLDC)

无刷电机把电刷换成了电子控制器,靠霍尔传感器或反电动势来换向。效率能到 85%-95%,而且几乎免维护。目前市面上 90% 的机器人关节都在用 BLDC。

不过要注意,BLDC 的扭矩密度在中低速区域表现不错,但到了高速区,反电动势会限制电流,扭矩会掉得很快。所以选型时一定要看「扭矩-转速曲线」,别光看峰值扭矩。

我的习惯: 选 BLDC 时,我会留 20%-30% 的扭矩余量。因为实际工况下的摩擦、惯量、温度都会吃掉一部分性能。别卡着极限选,那是给自己挖坑。

4.1.3 力矩电机

力矩电机是专门为「大力出奇迹」设计的。它采用多极对、扁平结构,能在很低转速下输出很大的扭矩,而且不需要减速器。这意味着什么?零背隙、零摩擦、高刚度——做力控的完美平台。

我记得第一次用直驱力矩电机做碰撞检测时,效果惊艳。传统 BLDC 加谐波减速器,检测到碰撞要 5-10ms,力矩电机直接 1ms 以内就能响应。但代价也很明显:体积大、重量重、价格高。目前主要用在高端协作臂和力控专用关节上。

避坑指南: 我曾经在一个项目里试图用力矩电机做高速抓取,结果发现它的转动惯量太大,加减速性能远不如 BLDC+减速器方案。力矩电机适合「大力慢活」,不适合「轻快准」。

4.2 驱动器工作模式:电流环、速度环、位置环

电机本身只是「肌肉」,驱动器才是「大脑」。驱动器内部有三个核心控制环,从内到外依次是:电流环、速度环、位置环。我画了一张图,帮你理清它们的关系。

驱动器三环控制结构 位置环(外环) 速度环(中环) 电流环(内环) 各环职责: • 电流环:控制电机电流(即扭矩),响应最快,周期通常 10-50 μs • 速度环:控制电机转速,响应中等,周期通常 100-500 μs • 位置环:控制电机角度/位置,响应最慢,周期通常 1-5 ms • 反馈方向:外环输出作为内环的给定值,内环输出驱动电机

4.2.1 电流环(扭矩环)

电流环是最内层的环,也是响应最快的环。它直接控制电机绕组的电流,而电流和扭矩是成正比的(对于永磁电机,扭矩 = 电流 × 扭矩常数 Kt)。所以控制电流,本质上就是在控制扭矩。

电流环的带宽通常能做到 1-5 kHz,也就是说每 0.2-1 ms 就能调整一次电流。做力矩控制时,我们主要就是跟电流环打交道。

关键点: 电流环的 PI 参数整定非常关键。我见过有人把电流环的积分增益调得太大,结果电流震荡,电机嗡嗡响,关节都在发抖。正确的做法是先调 P 让电流快速响应,再加一点点 I 消除静差。

4.2.2 速度环

速度环在电流环外面。它接收位置环或用户给定的速度指令,然后输出一个电流指令给电流环。说白了,速度环就是「我要跑多快,你给我多少电流」。

速度环的带宽一般在 100-500 Hz。这里有个坑:速度反馈的质量直接影响控制效果。如果只用编码器差分求速度,噪声会很大。我习惯在速度环里加一个低通滤波器,截止频率设在速度环带宽的 3-5 倍,既能滤掉噪声,又不会引入太多相位滞后。

4.2.3 位置环

位置环是最外层的环,也是最慢的环。它接收目标位置,输出速度指令给速度环。位置环的带宽通常只有 10-50 Hz,因为位置控制对实时性要求没那么高,但对精度和稳定性要求很高。

做位置控制时,我建议用 P 控制就够了,加 I 反而容易引起超调和震荡。除非你有静态误差要求,才考虑加一点点 I。

4.3 力矩控制与三环的关系

搞清楚了三个环,咱们再回到力矩控制。你会发现,力矩控制其实就是在「绕过」位置环和速度环,直接操作电流环。

  • 直接力矩控制: 用户给定目标扭矩 → 驱动器直接给电流环发指令。这是最直接的方式,响应最快。
  • 阻抗控制: 用户给定位置和刚度/阻尼 → 位置环计算虚拟力 → 映射到电流环。这是间接方式,但更灵活。
  • 混合控制: 某些轴用力矩控制,某些轴用位置控制。比如协作臂的末端用力矩控制,基座用位置控制。
我的经验: 如果你用的是商用驱动器(如 Elmo、Copley、Maxon),它们通常提供「电流模式」或「扭矩模式」。直接选这个模式,然后通过模拟量或 CAN/ EtherCAT 发电流指令就行。但要注意,很多驱动器在扭矩模式下默认没有安全限位,你得自己在算法层做保护。

4.4 选型建议与避坑总结

应用场景 推荐电机 推荐驱动器模式 注意事项
高精度力控(如手术机器人) 力矩电机 电流环(扭矩模式) 注意散热和重量
工业协作臂 BLDC + 谐波减速器 速度环或电流环 减速器背隙会影响力控精度
移动底盘/AGV BLDC 速度环 注意堵转保护
教育/原型验证 直流电机 电压控制(开环) 别指望精度,够用就行
最后提醒一句: 我曾经在一个项目里,为了省成本选了便宜的 BLDC 和驱动器,结果电流环带宽只有 200 Hz,做力控时根本跟不上。后来换了高带宽驱动器,问题才解决。所以,做力矩控制,驱动器的电流环带宽至少要在 1 kHz 以上,否则别谈什么力控精度。