共同的原理:电加磁,让轴转起来
几乎每个机器人都需要一个执行器——把指令变成物理运动的部件。电动机是其中最常见的一种,而在所有差异之下,本指南中的四类电机都依靠同一个把戏。两块没对齐的磁铁会互相拉扯、扭转,直到“咔哒”一声对齐,就像指南针的指针会转动着指向北方。电机耍了个花招:不断移动磁场,让转动的部件永远追不上它。追逐磁场的那个部件叫转子(旋转的那块);周围保持不动的部件叫定子。
要造出一个移动的磁场,就让电流通过一圈圈的线圈——通电的线圈会变成临时磁铁。按正确的顺序切换给哪些线圈通电,磁场就会绕着圆周旋转。转子不停地追它,于是你得到了连续的旋转。电机设计的全部问题归结为一点:由谁来决定下一个给哪个线圈通电,又怎么知道正确的时机?
有刷直流与无刷直流:主力军
对“谁来切换线圈”最简单的回答,是一段巧妙的机械接线。有刷直流电机把线圈放在旋转的转子上,让两片滑动触点——电刷——通过一个叫换向器的分段环给线圈供电。随着转子转动,这个环会自动切换给哪个线圈通电,磁场便自行不断追逐。把它接到电池上,它就转了。正因这种简单,有刷直流电机才便宜、好驱动、随处可见——玩具、电钻、小型机器人轮子。
问题就出在电刷本身。它们要摩擦,于是会磨损、打火花,并以摩擦和热的形式浪费能量。无刷直流电机(BLDC)通过把设计里外翻转来解决这一点:线圈静止地待在定子上,磁铁则装在转子上,于是没有任何东西需要滑动。既然没有电刷来做切换,就改由电子电路来做:它读取转子的位置,在正确的瞬间给每个线圈通电。这个电路就是电机驱动器(在无人机里叫电子调速器,即 ESC)。你用一点复杂度,换来一台运行更安静、寿命长得多、单位重量功率更大的电机。
步进电机:靠数“咔哒”实现廉价精度
步进电机走的是另一条路。它不自由旋转,而是造有许多磁齿,让转子自然地停在一连串固定的驻留位置上——就像带定位齿的钟表。驱动器每把线圈推进一格,转子就正好跳一步,并停在那里。典型的步进电机每转有 200 步,所以一步是干脆利落的 1.8 度。
这让你无需任何位置传感器就能精确定位。如果你命令走 50 步,你就相信转子走了 50 步,于是只靠数指令就能把轴准确地摆到位。这使步进电机成为一种开环装置:它照指令行动,却不核对结果。代价是:如果你逼它转得太快、或负载太重,它可能悄无声息地丢步——而因为没有谁在盯着,控制器永远不会发现自己落后了。
这种取舍解释了步进电机的用武之地:3D 打印机、CNC 机床、相机云台、实验室泵——这些任务负载适中、可预测,你想要的是低成本下可重复的定位。它们停下时能牢牢锁住位置,又不需要反馈接线,让整个系统保持简单又便宜。
伺服电机:一台会自我监视的电机
伺服电机并不是第五种电机——它就是上面某种电机(常是有刷直流或 BLDC)外面套上一个反馈回路。装在轴上的是一个传感器,通常是旋转编码器,它把真实位置报告回一个小控制器。你给伺服一个目标——“保持 90 度”——剩下的它自己来办。
用大白话说一下这个回路。控制器把轴实际所在的位置与你要求它去的位置作比较;这个差距就是误差。如果轴还没到目标,它就把电机驱动得更猛;如果冲过头了,它就往回推。它每秒重复这件事成千上万次。这就是闭环控制——与步进电机那种盲目信任正相反——而实现它最常见的配方是 PID 控制。如果有负载把手臂推离目标,伺服会感到误差在变大,并奋力把位置拉回到指令值。
loop forever (thousands of times per second):
actual = encoder.read_position()
error = target - actual
command = PID(error) # bigger error -> harder push
motor.apply(command)正因为它不断地纠正,伺服电机能承载变化的负载、从扰动中恢复,并在条件变化时仍准确命中目标——这就是工业机械臂的关节都由伺服驱动的原因。代价是比一台光秃秃的电机多了零件、多了调试。于是这四类电机构成了一道能力的阶梯:有刷直流提供廉价的原始旋转,BLDC 提供高效的功率,步进提供廉价的开环精度,而伺服提供能稳住阵脚的闭环精度。