基于MCU和DSP的步進(jìn)電機(jī)控制技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
步進(jìn)電機(jī)也叫步進(jìn)器,它利用電磁學(xué)原理,將電能轉(zhuǎn)換為機(jī)械能,人們?cè)缭?0世紀(jì)20年代就開(kāi)始使用這種電機(jī)。隨著嵌入式系統(tǒng)(例如打印機(jī)、磁盤驅(qū)動(dòng)器、玩具、雨刷、震動(dòng)尋呼機(jī)、機(jī)械手臂和錄像機(jī)等)的日益流行,步進(jìn)電機(jī)的使用也開(kāi)始暴增。不論在工業(yè)、軍事、醫(yī)療、汽車還是娛樂(lè)業(yè)中,只要需要把某件物體從一個(gè)位置移動(dòng)到另一個(gè)位置,步進(jìn)電機(jī)就一定能派上用場(chǎng)。步進(jìn)電機(jī)有許多種形狀和尺寸,但不論形狀和尺寸如何,它們都可以歸為兩類:可變磁阻步進(jìn)電機(jī)和永磁步進(jìn)電機(jī)。本文重點(diǎn)討論更為簡(jiǎn)單也更常用的永磁步進(jìn)電機(jī)。
圖1:具有雙齒槽和單繞組的定子
步進(jìn)電機(jī)的構(gòu)造
如圖1所示,步進(jìn)電機(jī)是由一組纏繞在電機(jī)固定部件--定子齒槽上的線圈驅(qū)動(dòng)的。通常情況下,一根繞成圈狀的金屬絲叫做螺線管,而在電機(jī)中,繞在齒上的金屬絲則叫做繞組、線圈、或相。如果線圈中電流的流向如圖1所示,并且我們從電機(jī)頂部向下看齒槽的頂部,那么電流在繞兩個(gè)齒槽按逆時(shí)針流向流動(dòng)。根據(jù)安培定律和右手準(zhǔn)則,這樣的電流會(huì)產(chǎn)生一個(gè)北極向上的磁場(chǎng)。
圖2:雙相雙極電機(jī)
現(xiàn)在假設(shè)我們構(gòu)造一個(gè)定子上纏繞有兩個(gè)繞組的電機(jī),內(nèi)置一個(gè)能夠繞中心任意轉(zhuǎn)動(dòng)的永久磁鐵,這個(gè)可旋轉(zhuǎn)部分叫做轉(zhuǎn)子。圖2給出了一種簡(jiǎn)單的電機(jī),叫做雙相雙極電機(jī),因?yàn)槠涠ㄗ由嫌袃蓚€(gè)繞組,而且其轉(zhuǎn)子有兩個(gè)磁極。如果我們按圖2a所示方向給繞組1輸送電流,而繞組2中沒(méi)有電流流過(guò),那么電機(jī)轉(zhuǎn)子的南極就會(huì)自然地按圖中所示,指向定子磁場(chǎng)的北極。
再假設(shè)我們切斷繞組1中的電流,而按圖2b所示方向給繞組2輸送電流,那么定子的磁場(chǎng)就會(huì)指向左側(cè),而轉(zhuǎn)子也會(huì)隨之旋轉(zhuǎn),與定子磁場(chǎng)方向保持一致。
接著,我們?cè)賹⒗@組2的電流切斷,按照?qǐng)D2c的方向給繞組1輸送電流,注意:這時(shí)繞組1中的電流流向與圖2a所示方向相反。于是定子的磁場(chǎng)北極就會(huì)指向下,從而導(dǎo)致轉(zhuǎn)子旋轉(zhuǎn),其南極也指向下方。
然后我們又切斷繞組1中的電流,按照?qǐng)D2d所示方向給繞組2輸送電流,于是定子磁場(chǎng)又會(huì)指向右側(cè),從而使得轉(zhuǎn)子旋轉(zhuǎn),其南極也指向右側(cè)。
|
圖3:雙相6極電機(jī)
最后,我們?cè)僖淮吻袛嗬@組2中的電流,并給繞組1輸送如圖2a所示的電流,這樣,轉(zhuǎn)子又會(huì)回到原來(lái)的位置。
至此,我們對(duì)電機(jī)繞組完成了一個(gè)周期的電激勵(lì),電機(jī)轉(zhuǎn)子旋轉(zhuǎn)了一整圈。也就是說(shuō),電機(jī)的電頻率等于它轉(zhuǎn)動(dòng)的機(jī)械頻率。
如果我們用1秒鐘順序完成了圖2所示的這4個(gè)步驟,那么電機(jī)的電頻率就是1Hz。其轉(zhuǎn)子旋轉(zhuǎn)了一周,因而其機(jī)械頻率也是1Hz??傊?,一個(gè)雙相步進(jìn)電機(jī)的電頻率和機(jī)械頻率之間的關(guān)系可以用下式表示:
fe=fm*P/2 (1)
其中,fe代表電機(jī)的電頻率,fm代表其機(jī)械頻率,而P則代表電機(jī)轉(zhuǎn)子的等距磁極數(shù)。
從圖2中我們還可以看出,每一步操作都會(huì)使轉(zhuǎn)子旋轉(zhuǎn)90°,也就是說(shuō),一個(gè)雙相步進(jìn)電機(jī)每一步操作造成的旋轉(zhuǎn)度數(shù)可由下式表示:
1 step= 180°/P (2)
由等式(2)可知,一個(gè)雙極電機(jī)每動(dòng)作一次可以旋轉(zhuǎn)180°/2=90°,這與我們?cè)趫D2中看到的情形正好相符。此外,該等式還表明,電機(jī)的磁極數(shù)越多,步進(jìn)精度就越高。常見(jiàn)的是磁極數(shù)在12和200個(gè)之間的雙相步進(jìn)電機(jī),這些電機(jī)的步進(jìn)精度在15°和 0.9°之間。
圖4:同時(shí)激勵(lì)電機(jī)的兩個(gè)繞組
圖3給出的例子是一個(gè)雙相、6極步進(jìn)電機(jī),其中包含3個(gè)永久磁鐵,因而有6個(gè)磁極。第一步,如圖3a所示,我們給繞組1施加電壓,在定子中產(chǎn)生一個(gè)北極指向其頂部的磁場(chǎng),于是,轉(zhuǎn)子的南極(圖3a中紅色的“S”一端)轉(zhuǎn)向了該圖的上方。接著,在圖3b中,我們給繞組2施加電壓,定子中產(chǎn)生一個(gè)北極指向其左側(cè)的磁場(chǎng)。于是,轉(zhuǎn)子的一個(gè)距離最近的南極轉(zhuǎn)向了圖的左方,即轉(zhuǎn)子順時(shí)針轉(zhuǎn)動(dòng)了30°。第三步,在圖3c中,我們又向繞組1施加一個(gè)電壓,在定子中產(chǎn)生一個(gè)北極指向圖下方的磁場(chǎng),從而又使轉(zhuǎn)子順時(shí)針旋轉(zhuǎn)30°到達(dá)圖3c所示的位置。而在圖3d中,我們給繞組2施加電壓,在定子中產(chǎn)生一個(gè)北極指向定子右側(cè)的磁場(chǎng),再一次使轉(zhuǎn)子順時(shí)針旋轉(zhuǎn)30°,到達(dá)圖3d所示的位置。最后,我們?cè)傧蚶@組1施加電壓,產(chǎn)生一個(gè)如圖3a所示的北極指向定子上方的磁場(chǎng),使得轉(zhuǎn)子順時(shí)針旋轉(zhuǎn)30°,結(jié)束一個(gè)電周期。如此可以看出,4步電激勵(lì)造成了120°的機(jī)械旋轉(zhuǎn)。也就是說(shuō),該電機(jī)的電頻率是機(jī)械頻率的3倍,這一結(jié)果符合等式(1)。此外,我們從圖3和等式(2)也能看出,該電機(jī)的轉(zhuǎn)子每一步旋轉(zhuǎn)30°。
圖5:可用于驅(qū)動(dòng)電機(jī)每個(gè)繞組的H橋電路
如果同時(shí)向兩個(gè)繞組輸送電流,還能增大電機(jī)的扭矩,如圖4所示。這時(shí),電機(jī)定子的磁場(chǎng)是兩個(gè)繞組各自產(chǎn)生的磁場(chǎng)的矢量和,雖然這一磁場(chǎng)每一次動(dòng)作仍然只使電機(jī)旋轉(zhuǎn)90°,就象圖2和圖3中一樣,但因?yàn)槲覀兺瑫r(shí)激勵(lì)兩個(gè)電機(jī)繞組,所以此時(shí)的磁場(chǎng)比單獨(dú)激勵(lì)一個(gè)繞組時(shí)更強(qiáng)。由于該磁場(chǎng)是兩個(gè)垂直場(chǎng)的矢量和,因此它等于單獨(dú)每個(gè)場(chǎng)的2×1.414倍,從而電機(jī)對(duì)其負(fù)載施加的扭矩也成正比增大。
電機(jī)的激勵(lì)順序
既然我們知道了一系列激勵(lì)會(huì)使步進(jìn)電機(jī)旋轉(zhuǎn),接下來(lái)就要設(shè)計(jì)硬件來(lái)實(shí)現(xiàn)所需的步進(jìn)序列。一塊能讓電機(jī)動(dòng)起來(lái)的硬件(或結(jié)合了硬件和軟件的一套設(shè)備)就叫做電機(jī)驅(qū)動(dòng)器。
從圖4中可以看出我們?cè)鯓蛹?lì)雙相電機(jī)的繞組才能使電機(jī)轉(zhuǎn)子旋轉(zhuǎn),圖中,電機(jī)內(nèi)的繞組抽頭分別被標(biāo)為1A、1B、2A和2B。其中,1A和1B是繞組1的兩個(gè)抽頭,2A和2B則是繞組2的兩個(gè)抽頭。
首先,要給腳1B和2B施加一個(gè)正電壓,并將1A和2A接地。然后,給腳1B和2A施加一個(gè)正電壓,而將1A和2B接地,這一過(guò)程其實(shí)取決于導(dǎo)線繞齒槽纏繞的方向,假設(shè)導(dǎo)線纏繞的方向與上一節(jié)所述相符。依次進(jìn)行下去,我們就得到了表1中總結(jié)的激勵(lì)順序,其中,“1”表示正電壓,“0”表示接地。
電流在電機(jī)繞組中有兩種可能的流向,這樣的電機(jī)就叫做雙極電機(jī)和雙極驅(qū)動(dòng)序列。雙極電機(jī)通常由一種叫做H橋的電路驅(qū)動(dòng),圖5給出了連接H橋和步進(jìn)電機(jī)兩根抽頭的電路。H橋通過(guò)一個(gè)電阻連接到一個(gè)電壓固定的直流電源(其幅度可根據(jù)電機(jī)的要求選取),然后,該電路再經(jīng)過(guò)4個(gè)開(kāi)關(guān)(分別標(biāo)為S1、S2、S3和S4)連接到繞組的兩根抽頭。這一電路的分布看起來(lái)有點(diǎn)象一個(gè)大寫(xiě)字母H,因此叫做H橋。
圖6
從表1中可以看出,要激勵(lì)該電機(jī),第一步應(yīng)將抽頭2A設(shè)為邏輯0,2B設(shè)為邏輯1,于是,我們可以閉合開(kāi)關(guān)S1和S4,并斷開(kāi)開(kāi)關(guān)S2和S3。接著,需要將抽頭2A設(shè)為邏輯1,2B設(shè)為邏輯0,于是,我們可以閉合S2、S3,并斷開(kāi)S1和S4。與此類似,第三步我們可以閉合S2、S3并斷開(kāi)S1和S4,第四步則可以閉合S1、S4并斷開(kāi)S2、S3。
對(duì)繞組1的激勵(lì)方法也不外乎如此,使用一對(duì)H橋就能產(chǎn)生需要的激勵(lì)信號(hào)序列。表2所示就是激勵(lì)過(guò)程中每一步開(kāi)關(guān)所在的位置。
圖7:?jiǎn)螛O電機(jī)的控制電路
注意,如果R=0,而開(kāi)關(guān)S1和S3又不小心同時(shí)閉合,那么流經(jīng)開(kāi)關(guān)的電流將達(dá)到無(wú)窮大。這時(shí),不但開(kāi)關(guān)會(huì)被燒壞,電源也可能損壞,因此電路中使用了一個(gè)非零阻值的電阻。盡管這個(gè)電阻會(huì)帶來(lái)一定的功耗,也會(huì)降低電機(jī)驅(qū)動(dòng)器的效率,但它可以提供短路保護(hù)。 [!--empirenews.page--]
單極電機(jī)及其驅(qū)動(dòng)器
前面我們已經(jīng)討論了雙極步進(jìn)電機(jī)和驅(qū)動(dòng)器。單極電機(jī)與雙極電機(jī)類似,不同的是在單極電機(jī)中外部能夠接觸到的只有每個(gè)繞組的中心抽頭,如圖6所示。我們將從繞組頂部抽出的抽頭標(biāo)為抽頭B,底部抽出的標(biāo)為抽頭A,中間的為抽頭C。
有時(shí)我們會(huì)遇到一些抽頭沒(méi)有標(biāo)注的電機(jī),如果我們清楚步進(jìn)電機(jī)的構(gòu)造,就很容易通過(guò)測(cè)量抽頭之間的阻值,識(shí)別出哪些抽頭屬于哪根繞組。不同繞組的抽頭之間阻抗通常為無(wú)窮大。如果經(jīng)測(cè)量,抽頭A和C之間的阻抗為100歐姆,那么抽頭B和C之間的阻抗也應(yīng)是100歐姆,而A和B之間的阻抗為200歐姆。200歐姆這一阻抗值就叫做繞組阻抗。
圖8
圖7給出一個(gè)單極電機(jī)的單相驅(qū)動(dòng)電路。從中可以看出,當(dāng)S1閉合而S2斷開(kāi)時(shí),電流將由右至左流經(jīng)電機(jī)繞組;而當(dāng)S1斷開(kāi),S2閉合時(shí),電流流向變?yōu)橛勺笾劣?。因此,我們僅用兩個(gè)開(kāi)關(guān)就能改變電流的流向(而在雙極電機(jī)中需要4個(gè)開(kāi)關(guān)才能做到)。表3所示為單極電機(jī)驅(qū)動(dòng)電路中,每一步激勵(lì)時(shí)開(kāi)關(guān)所處的位置。
雖然單極電機(jī)的驅(qū)動(dòng)器控制起來(lái)相對(duì)簡(jiǎn)單,但由于在電機(jī)中使用了中心抽頭,因此它比雙極電機(jī)更復(fù)雜,而且其價(jià)格通常比雙極電機(jī)貴。此外,由于電流只流經(jīng)一半的電機(jī)繞組,所以單極電機(jī)只能產(chǎn)生一半的磁場(chǎng)。
在知道了單極電機(jī)和雙極電機(jī)的構(gòu)造原理之后,當(dāng)我們遇到一個(gè)沒(méi)有標(biāo)示抽頭也沒(méi)有數(shù)據(jù)手冊(cè)的電機(jī)時(shí),我們就能自己推導(dǎo)出抽頭和繞組的關(guān)系。帶4個(gè)抽頭的電機(jī)就是一個(gè)雙相雙極電機(jī),我們可以通過(guò)測(cè)量導(dǎo)線之間的阻抗來(lái)分辨哪兩個(gè)抽頭屬于同一個(gè)繞組。帶6個(gè)抽頭的電機(jī)可能是一個(gè)雙相單極電機(jī),也可能是一個(gè)三相雙極電機(jī),具體情況可以通過(guò)測(cè)量導(dǎo)線之間的阻抗來(lái)確定。
表1 雙相電機(jī)動(dòng)作過(guò)程中的繞組抽頭極性
電機(jī)控制
本文前面討論的電機(jī)控制理論可以采用全硬件方案實(shí)現(xiàn),也可以用微控制器或DSP實(shí)現(xiàn)。圖8說(shuō)明了如何用晶體管作為開(kāi)關(guān)來(lái)控制雙相單極電機(jī)。每個(gè)晶體管的基極都要通過(guò)一個(gè)電阻連接到微控制器的一個(gè)數(shù)字輸出上,阻值可以從1到10M歐姆,用于限制流入晶體管基極的電流。每個(gè)晶體管的發(fā)射極均接地,集電極連到電機(jī)繞組的4個(gè)抽頭。電機(jī)的中心抽頭均連接到電源電壓的正端。
每個(gè)晶體管的集電極均通過(guò)一個(gè)二極管連接到電壓源,以保護(hù)晶體管不被旋轉(zhuǎn)時(shí)電機(jī)繞組上的感應(yīng)電流燒壞。轉(zhuǎn)子旋轉(zhuǎn)時(shí),電機(jī)繞組上會(huì)出現(xiàn)一個(gè)感應(yīng)電壓,如果晶體管集電極沒(méi)有通過(guò)二極管連接到電壓源,感應(yīng)電壓造成的電流就會(huì)涌入晶體管的集電極。
表2:雙相電機(jī)動(dòng)作過(guò)程中開(kāi)關(guān)的位置
舉個(gè)例子,假設(shè)數(shù)字輸出do1為高而do2為低,于是do1會(huì)使晶體管T1導(dǎo)通,電流從+V流經(jīng)中心抽頭和T1的基極,然后由T1的發(fā)射極輸出。但此時(shí)do2處于斷開(kāi)狀態(tài),因此電流無(wú)法流經(jīng)T2。這樣推理下去,我們就能將表3改為驅(qū)動(dòng)電機(jī)所需的微控制器數(shù)字輸出的改變順序。
一旦清楚了驅(qū)動(dòng)電機(jī)所需的硬件和數(shù)字輸出的順序,我們就可以對(duì)最順手的微控制器或DSP編寫(xiě)軟件,實(shí)現(xiàn)這些序列。
固件控制
我本人在一塊Microchip PIC16F877上,利用1N4003二極管和2SD1276A達(dá)靈頓晶體管實(shí)現(xiàn)了以上談到的電機(jī)控制器。PIC的PortA第0位到第3位用來(lái)做數(shù)字輸出。電機(jī)采用在Jameco購(gòu)買的5V雙相單極電機(jī)(Airpax [Thomson]生產(chǎn),型號(hào)為M82101-P1),并且用同一個(gè)5V電源為PIC和電機(jī)供電。但在真正應(yīng)用時(shí),為避免給微控制器的電源信號(hào)引入噪聲,建議大家還是分別用不同的電源為電機(jī)和微控制器供電。
列表1給出了控制程序的匯編源代碼,該程序每50毫秒旋轉(zhuǎn)電機(jī)一次。首先,程序會(huì)將微控制器的數(shù)字輸出初始化為表4中第一步的值,然后每隔50毫秒(此時(shí)間常數(shù)由程序中的常量waitTime定義)按照正確的順序循環(huán)輸出數(shù)字信號(hào)。若需使電機(jī)反向旋轉(zhuǎn),只需按與表4所示相反的順序輸出數(shù)字信號(hào)即可。
本人所用的電機(jī)為24極電機(jī),即每一步輸出可以控制電機(jī)旋轉(zhuǎn)180°/24=7.5°。電機(jī)每50毫秒旋轉(zhuǎn)7.5°,也就是每2.4秒轉(zhuǎn)一周。如果將常量waitTime減小一半,電機(jī)轉(zhuǎn)速會(huì)加快一倍。但因?yàn)檗D(zhuǎn)子受慣性、摩擦力和其他機(jī)械限制,所以電機(jī)轉(zhuǎn)速有一個(gè)上限,當(dāng)定子磁場(chǎng)旋轉(zhuǎn)過(guò)快時(shí),轉(zhuǎn)子的轉(zhuǎn)速無(wú)法跟上,導(dǎo)致電機(jī)的旋轉(zhuǎn)也無(wú)法跟上,開(kāi)始跳動(dòng)(skipping)。如果這時(shí)再降低歐姆aitTime,電機(jī)很可能干脆就停止旋轉(zhuǎn)。
除了本文重點(diǎn)討論的雙相電機(jī)以外,步進(jìn)電機(jī)還有其他類型,如三相步進(jìn)電機(jī)或四相步進(jìn)電機(jī)。另外還有一些雙相步進(jìn)電機(jī),它們只有一個(gè)中心抽頭,同時(shí)連接到兩個(gè)繞組的中心點(diǎn),這類步進(jìn)電機(jī)外部有5個(gè)抽頭引出。
同樣,步進(jìn)電機(jī)也不是電機(jī)家族中的唯一成員,最古老也最簡(jiǎn)單的電機(jī)是直流(DC)電機(jī)。早期的直流電機(jī)使用電刷,現(xiàn)在已經(jīng)不再流行。如今常見(jiàn)的無(wú)刷直流電機(jī),就是利用電子線路代替電刷進(jìn)行換向的直流電機(jī),這類電機(jī)中不存在電刷老化問(wèn)題,因此其壽命比有刷直流電機(jī)長(zhǎng)很多。
還有一種感應(yīng)電機(jī),其工作原理與步進(jìn)電機(jī)或直流電機(jī)完全不同。直流電機(jī)采用的是直流電壓源,而感應(yīng)電機(jī)則采用交流(AC)電壓源,并且步進(jìn)電機(jī)和直流電機(jī)中轉(zhuǎn)子與定子磁場(chǎng)的旋轉(zhuǎn)是同步的,而感應(yīng)電機(jī)中轉(zhuǎn)子的轉(zhuǎn)速滯后于定子磁場(chǎng)的轉(zhuǎn)速。