JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

電動馬達:有刷、無刷、步進與伺服

四類馬達驅動了大多數機器人。了解每一類的擅長之處,以及移動的磁場如何變成可控的運動。

共同的原理:電加磁,讓軸轉起來

幾乎每個機器人都需要一個致動器——把指令變成物理運動的部件。電動馬達是其中最常見的一種,而在所有差異之下,本指南中的四類馬達都依靠同一個把戲。兩塊沒對齊的磁鐵會互相拉扯、扭轉,直到「喀噠」一聲對齊,就像指南針的指針會轉動著指向北方。馬達耍了個花招:不斷移動磁場,讓轉動的部件永遠追不上它。追逐磁場的那個部件叫轉子(旋轉的那塊);周圍保持不動的部件叫定子

要造出一個移動的磁場,就讓電流通過一圈圈的線圈——通電的線圈會變成臨時磁鐵。按正確的順序切換給哪些線圈通電,磁場就會繞著圓周旋轉。轉子不停地追它,於是你得到了連續的旋轉。馬達設計的全部問題歸結為一點:由誰來決定下一個給哪個線圈通電,又怎麼知道正確的時機?

有刷直流與無刷直流:主力軍

對「誰來切換線圈」最簡單的回答,是一段巧妙的機械接線。有刷直流馬達把線圈放在旋轉的轉子上,讓兩片滑動觸點——電刷——通過一個叫換向器的分段環給線圈供電。隨著轉子轉動,這個環會自動切換給哪個線圈通電,磁場便自行不斷追逐。把它接到電池上,它就轉了。正因這種簡單,有刷直流馬達才便宜、好驅動、隨處可見——玩具、電鑽、小型機器人輪子。

問題就出在電刷本身。它們要摩擦,於是會磨損、打火花,並以摩擦和熱的形式浪費能量。無刷直流馬達(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 提供高效的功率,步進提供廉價的開環精度,而伺服提供能穩住陣腳的閉環精度。