基於MCU和DSP的步進電機控制技術

旺材電機與電控 發佈 2020-01-06T07:58:22+00:00

步進電機已經滲透入我們生活的方方面面,本文介紹了一些重要的步進電機相關技術,為開發人員基本了解步進電機的工作原理提供了足夠的信息,同時也介紹了用微控制器或數位訊號處理器控制步進電機的方法。

步進電機已經滲透入我們生活的方方面面,本文介紹了一些重要的步進電機相關技術,為開發人員基本了解步進電機的工作原理提供了足夠的信息,同時也介紹了用微控制器或數位訊號處理器控制步進電機的方法。



步進電機也叫步進器,它利用電磁學原理,將電能轉換為機械能,人們早在20世紀20年代就開始使用這種電機。隨著嵌入式系統(例如印表機、磁碟驅動器、玩具、雨刷、震動尋呼機、機械手臂和錄像機等)的日益流行,步進電機的使用也開始暴增。


不論在工業、軍事、醫療、汽車還是娛樂業中,只要需要把某件物體從一個位置移動到另一個位置,步進電機就一定能派上用場。步進電機有許多種形狀和尺寸,但不論形狀和尺寸如何,它們都可以歸為兩類:可變磁阻步進電機和永磁步進電機。本文重點討論更為簡單也更常用的永磁步進電機。

步進電機的構造


如圖1所示,步進電機是由一組纏繞在電機固定部件--定子齒槽上的線圈驅動的。通常情況下,一根繞成圈狀的金屬絲叫做螺線管,而在電機中,繞在齒上的金屬絲則叫做繞組、線圈、或相。如果線圈中電流的流向如圖1所示,並且我們從電機頂部向下看齒槽的頂部,那麼電流在繞兩個齒槽按逆時針流向流動。根據安培定律和右手準則,這樣的電流會產生一個北極向上的磁場。



現在假設我們構造一個定子上纏繞有兩個繞組的電機,內置一個能夠繞中心任意轉動的永久磁鐵,這個可旋轉部分叫做轉子。圖2給出了一種簡單的電機,叫做雙相雙極電機,因為其定子上有兩個繞組,而且其轉子有兩個磁極。如果我們按圖2a所示方向給繞組1輸送電流,而繞組2中沒有電流流過,那麼電機轉子的南極就會自然地按圖中所示,指向定子磁場的北極。
再假設我們切斷繞組1中的電流,而按圖2b所示方向給繞組2輸送電流,那麼定子的磁場就會指向左側,而轉子也會隨之旋轉,與定子磁場方向保持一致。
接著,我們再將繞組2的電流切斷,按照圖2c的方向給繞組1輸送電流,注意:這時繞組1中的電流流向與圖2a所示方向相反。於是定子的磁場北極就會指向下,從而導致轉子旋轉,其南極也指向下方。

然後我們又切斷繞組1中的電流,按照圖2d所示方向給繞組2輸送電流,於是定子磁場又會指向右側,從而使得轉子旋轉,其南極也指向右側。



最後,我們再一次切斷繞組2中的電流,並給繞組1輸送如圖2a所示的電流,這樣,轉子又會回到原來的位置。
至此,我們對電機繞組完成了一個周期的電激勵,電機轉子旋轉了一整圈。也就是說,電機的電頻率等於它轉動的機械頻率。
如果我們用1秒鐘順序完成了圖2所示的這4個步驟,那麼電機的電頻率就是1Hz。其轉子旋轉了一周,因而其機械頻率也是1Hz。總之,一個雙相步進電機的電頻率和機械頻率之間的關係可以用下式表示:
fe=fm*P/2 (1)
其中,fe代表電機的電頻率,fm代表其機械頻率,而P則代表電機轉子的等距磁極數。

從圖2中我們還可以看出,每一步操作都會使轉子旋轉90°,也就是說,一個雙相步進電機每一步操作造成的旋轉度數可由下式表示:
1 step= 180°/P (2)
由等式(2)可知,一個雙極電機每動作一次可以旋轉180°/2=90°,這與我們在圖2中看到的情形正好相符。此外,該等式還表明,電機的磁極數越多,步進精度就越高。常見的是磁極數在12和200個之間的雙相步進電機,這些電機的步進精度在15°和 0.9°之間。



圖3給出的例子是一個雙相、6極步進電機,其中包含3個永久磁鐵,因而有6個磁極。第一步,如圖3a所示,我們給繞組1施加電壓,在定子中產生一個北極指向其頂部的磁場,於是,轉子的南極(圖3a中紅色的「S」一端)轉向了該圖的上方。接著,在圖3b中,我們給繞組2施加電壓,定子中產生一個北極指向其左側的磁場。


於是,轉子的一個距離最近的南極轉向了圖的左方,即轉子順時針轉動了30°。第三步,在圖3c中,我們又向繞組1施加一個電壓,在定子中產生一個北極指向圖下方的磁場,從而又使轉子順時針旋轉30°到達圖3c所示的位置。而在圖3d中,我們給繞組2施加電壓,在定子中產生一個北極指向定子右側的磁場,再一次使轉子順時針旋轉30°,到達圖3d所示的位置。


最後,我們再向繞組1施加電壓,產生一個如圖3a所示的北極指向定子上方的磁場,使得轉子順時針旋轉30°,結束一個電周期。如此可以看出,4步電激勵造成了120°的機械旋轉。也就是說,該電機的電頻率是機械頻率的3倍,這一結果符合等式(1)。此外,我們從圖3和等式(2)也能看出,該電機的轉子每一步旋轉30°。



如果同時向兩個繞組輸送電流,還能增大電機的扭矩,如圖4所示。這時,電機定子的磁場是兩個繞組各自產生的磁場的矢量和,雖然這一磁場每一次動作仍然只使電機旋轉90°,就象圖2和圖3中一樣,但因為我們同時激勵兩個電機繞組,所以此時的磁場比單獨激勵一個繞組時更強。由於該磁場是兩個垂直場的矢量和,因此它等於單獨每個場的2×1.414倍,從而電機對其負載施加的扭矩也成正比增大。

電機的激勵順序


既然我們知道了一系列激勵會使步進電機旋轉,接下來就要設計硬體來實現所需的步進序列。一塊能讓電機動起來的硬體(或結合了硬體和軟體的一套設備)就叫做電機驅動器。
從圖4中可以看出我們怎樣激勵雙相電機的繞組才能使電機轉子旋轉,圖中,電機內的繞組抽頭分別被標為1A、1B、2A和2B。其中,1A和1B是繞組1的兩個抽頭,2A和2B則是繞組2的兩個抽頭。
首先,要給腳1B和2B施加一個正電壓,並將1A和2A接地。然後,給腳1B和2A施加一個正電壓,而將1A和2B接地,這一過程其實取決於導線繞齒槽纏繞的方向,假設導線纏繞的方向與上一節所述相符。依次進行下去,我們就得到了表1中總結的激勵順序,其中,「1」表示正電壓,「0」表示接地。


電流在電機繞組中有兩種可能的流向,這樣的電機就叫做雙極電機和雙極驅動序列。雙極電機通常由一種叫做H橋的電路驅動,圖5給出了連接H橋和步進電機兩根抽頭的電路。


H橋通過一個電阻連接到一個電壓固定的直流電源(其幅度可根據電機的要求選取),然後,該電路再經過4個開關(分別標為S1、S2、S3和S4)連接到繞組的兩根抽頭。這一電路的分布看起來有點象一個大寫字母H,因此叫做H橋。
從表1中可以看出,要激勵該電機,第一步應將抽頭2A設為邏輯0,2B設為邏輯1,於是,我們可以閉合開關S1和S4,並斷開開關S2和S3。接著,需要將抽頭2A設為邏輯1,2B設為邏輯0,於是,我們可以閉合S2、S3,並斷開S1和S4。與此類似,第三步我們可以閉合S2、S3並斷開S1和S4,第四步則可以閉合S1、S4並斷開S2、S3。
對繞組1的激勵方法也不外乎如此,使用一對H橋就能產生需要的激勵信號序列。表2所示就是激勵過程中每一步開關所在的位置。



注意,如果R=0,而開關S1和S3又不小心同時閉合,那麼流經開關的電流將達到無窮大。這時,不但開關會被燒壞,電源也可能損壞,因此電路中使用了一個非零阻值的電阻。儘管這個電阻會帶來一定的功耗,也會降低電機驅動器的效率,但它可以提供短路保護。


單極電機及其驅動器


前面我們已經討論了雙極步進電機和驅動器。單極電機與雙極電機類似,不同的是在單極電機中外部能夠接觸到的只有每個繞組的中心抽頭,如圖6所示。我們將從繞組頂部抽出的抽頭標為抽頭B,底部抽出的標為抽頭A,中間的為抽頭C。
有時我們會遇到一些抽頭沒有標註的電機,如果我們清楚步進電機的構造,就很容易通過測量抽頭之間的阻值,識別出哪些抽頭屬於哪根繞組。不同繞組的抽頭之間阻抗通常為無窮大。如果經測量,抽頭A和C之間的阻抗為100歐姆,那麼抽頭B和C之間的阻抗也應是100歐姆,而A和B之間的阻抗為200歐姆。200歐姆這一阻抗值就叫做繞組阻抗。



圖7給出一個單極電機的單相驅動電路。從中可以看出,當S1閉合而S2斷開時,電流將由右至左流經電機繞組;而當S1斷開,S2閉合時,電流流向變為由左至右。因此,我們僅用兩個開關就能改變電流的流向(而在雙極電機中需要4個開關才能做到)。表3所示為單極電機驅動電路中,每一步激勵時開關所處的位置。
雖然單極電機的驅動器控制起來相對簡單,但由於在電機中使用了中心抽頭,因此它比雙極電機更複雜,而且其價格通常比雙極電機貴。此外,由於電流只流經一半的電機繞組,所以單極電機只能產生一半的磁場。
在知道了單極電機和雙極電機的構造原理之後,當我們遇到一個沒有標示抽頭也沒有數據手冊的電機時,我們就能自己推導出抽頭和繞組的關係。帶4個抽頭的電機就是一個雙相雙極電機,我們可以通過測量導線之間的阻抗來分辨哪兩個抽頭屬於同一個繞組。帶6個抽頭的電機可能是一個雙相單極電機,也可能是一個三相雙極電機,具體情況可以通過測量導線之間的阻抗來確定。



電機控制


本文前面討論的電機控制理論可以採用全硬體方案實現,也可以用微控制器或DSP實現。圖8說明了如何用電晶體作為開關來控制雙相單極電機。每個電晶體的基極都要通過一個電阻連接到微控制器的一個數字輸出上,阻值可以從1到10M歐姆,用於限制流入電晶體基極的電流。每個電晶體的發射極均接地,集電極連到電機繞組的4個抽頭。電機的中心抽頭均連接到電源電壓的正端。
每個電晶體的集電極均通過一個二極體連接到電壓源,以保護電晶體不被旋轉時電機繞組上的感應電流燒壞。轉子旋轉時,電機繞組上會出現一個感應電壓,如果電晶體集電極沒有通過二極體連接到電壓源,感應電壓造成的電流就會湧入電晶體的集電極。



舉個例子,假設數字輸出do1為高而do2為低,於是do1會使電晶體T1導通,電流從+V流經中心抽頭和T1的基極,然後由T1的發射極輸出。但此時do2處於斷開狀態,因此電流無法流經T2。這樣推理下去,我們就能將表3改為驅動電機所需的微控制器數字輸出的改變順序。
一旦清楚了驅動電機所需的硬體和數字輸出的順序,我們就可以對最順手的微控制器或DSP編寫軟體,實現這些序列。

固件控制


我本人在一塊Microchip PIC16F877上,利用1N4003二極體和2SD1276A達靈頓電晶體實現了以上談到的電機控制器。PIC的PortA第0位到第3位用來做數字輸出。電機採用在Jameco購買的5V雙相單極電機(Airpax [Thomson]生產,型號為M82101-P1),並且用同一個5V電源為PIC和電機供電。但在真正應用時,為避免給微控制器的電源信號引入噪聲,建議大家還是分別用不同的電源為電機和微控制器供電。


列表1給出了控制程序的彙編原始碼,該程序每50毫秒旋轉電機一次。首先,程序會將微控制器的數字輸出初始化為表4中第一步的值,然後每隔50毫秒(此時間常數由程序中的常量waitTime定義)按照正確的順序循環輸出數位訊號。若需使電機反向旋轉,只需按與表4所示相反的順序輸出數位訊號即可。
筆者所用的電機為24極電機,即每一步輸出可以控制電機旋轉180°/24=7.5°。電機每50毫秒旋轉7.5°,也就是每2.4秒轉一周。如果將常量waitTime減小一半,電機轉速會加快一倍。但因為轉子受慣性、摩擦力和其他機械限制,所以電機轉速有一個上限,當定子磁場旋轉過快時,轉子的轉速無法跟上,導致電機的旋轉也無法跟上,開始跳動(skipping)。如果這時再降低歐姆aitTime,電機很可能幹脆就停止旋轉。
除了本文重點討論的雙相電機以外,步進電機還有其他類型,如三相步進電機或四相步進電機。另外還有一些雙相步進電機,它們只有一個中心抽頭,同時連接到兩個繞組的中心點,這類步進電機外部有5個抽頭引出。
同樣,步進電機也不是電機家族中的唯一成員,最古老也最簡單的電機是直流(DC)電機。早期的直流電機使用電刷,現在已經不再流行。如今常見的無刷直流電機,就是利用電子線路代替電刷進行換向的直流電機,這類電機中不存在電刷老化問題,因此其壽命比有刷直流電機長很多。
還有一種感應電機,其工作原理與步進電機或直流電機完全不同。直流電機採用的是直流電壓源,而感應電機則採用交流(AC)電壓源,並且步進電機和直流電機中轉子與定子磁場的旋轉是同步的,而感應電機中轉子的轉速滯後於定子磁場的轉速。

本文小結


本文對步進電機進行了概括性的介紹,更多的細節等待著您的發現。但只要您理解了本文介紹的電機工作原理,那麼您就已經完全可以開始設計、維護和調試步進電機的驅動軟、硬體了。

關鍵字: