步進(jìn)電機(jī)的控制實(shí)現(xiàn)方法
本教程介紹步進(jìn)電機(jī)驅(qū)動(dòng)和細(xì)分的工作原理,以及stm32103為主控芯片制作的一套自平衡的兩輪車系統(tǒng),附帶原理圖PCB圖和源代碼,有興趣的同學(xué)一起來(lái)吧.本系統(tǒng)還有一些小問(wèn)題,不當(dāng)之處希望得到大家的指正.
1混合式步進(jìn)電機(jī)的結(jié)構(gòu)和驅(qū)動(dòng)原理
電機(jī)原理這部分不想講的太復(fù)雜了,拆開(kāi)一臺(tái)電機(jī)看看就明白了。
電機(jī)的轉(zhuǎn)子是一個(gè)永磁體, 它的上面有若干個(gè)磁極SN組成,這些磁極固定的擺放成一定角度。電機(jī)的定子是幾個(gè)串聯(lián)的線圈構(gòu)成的磁體。 出線一般是四條線標(biāo)記為A+,A-,B+,B-。A相與B相是不通的,用萬(wàn)用表很容易區(qū)分出來(lái),至于各相的+-出線實(shí)際是不用考慮的,任意一相正負(fù)對(duì)調(diào)電機(jī)將反轉(zhuǎn)。另外一種出線是六條線的只是在A相和B相的中間點(diǎn)做兩條引出線別的沒(méi)什么差別,六出線的電機(jī)通過(guò)中間出線到A+或A-的電流來(lái)模擬正向或負(fù)向的電流,可以在沒(méi)有負(fù)相電流控制的電路中實(shí)現(xiàn)電機(jī)驅(qū)動(dòng),從而簡(jiǎn)化驅(qū)動(dòng)電路,但是這種做法任意時(shí)刻只有半相有電流,對(duì)電機(jī)的力矩是有損失的。步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)也是電磁極與永磁極作用力的結(jié)果,只不過(guò)電磁極的極性是由驅(qū)動(dòng)電路控制實(shí)現(xiàn)的。
我們做這樣的一個(gè)實(shí)驗(yàn)就可以讓步進(jìn)電機(jī)轉(zhuǎn)動(dòng)起來(lái)。1找一節(jié)電池正負(fù)隨意接入到A相兩端;然后斷開(kāi);(記為A正向)2再將電池接入到B相兩端; 然后斷開(kāi);(記為B正向)3電池正負(fù)對(duì)調(diào)再次接入A相; 然后斷開(kāi);(記為A負(fù)向)4保持正負(fù)對(duì)調(diào)接入B相;然后斷開(kāi);(記為B負(fù)向)…如此循環(huán)你會(huì)看到步進(jìn)電機(jī)在緩慢轉(zhuǎn)動(dòng)。注意電機(jī)的相電阻是很小的接通時(shí)近乎短路。我們將相電流的方向記錄下來(lái)應(yīng)該為:A+B+A-B-A+…,如果我們更換接線順序使得相電流順序?yàn)锳+B-A-B+A+…這時(shí)我們會(huì)看到電機(jī)向反方向運(yùn)動(dòng)。這里每切換一次相電流電機(jī)都會(huì)轉(zhuǎn)動(dòng)一個(gè)很小的角度,這個(gè)角度就是電機(jī)的步距角。步距角是步進(jìn)電機(jī)的一個(gè)固有參數(shù), 一般兩相電機(jī)步距角為1.8度即切換200次可以讓電機(jī)轉(zhuǎn)動(dòng)一圈。這里我們比較正反轉(zhuǎn)的電流順序可以看出A+和A-;B+和B-的交換后的順序和正反順序是一致的,也就是前面所說(shuō)的”任意一相正負(fù)對(duì)調(diào)電機(jī)將反轉(zhuǎn)”。以上為四排工作方式,為了使相電流更加平滑另外可以使用八排的工作方式即: A+;A+B+;B+;B+A-;A-;A-B-;B-;B-A+;從前往后循環(huán)正轉(zhuǎn),從后往前循環(huán)反轉(zhuǎn)。
為了用單片機(jī)實(shí)現(xiàn)相電流的正負(fù)流向控制必須要有一個(gè)H橋的驅(qū)動(dòng)電路,這種帶H橋的驅(qū)動(dòng)模塊還是很多的,比較便宜的是晶體管H橋比如L298N,晶體管開(kāi)關(guān)速度比較慢,無(wú)法驅(qū)動(dòng)電機(jī)高速運(yùn)動(dòng)。有些模塊將細(xì)分控制電路也包含在內(nèi),我們也不用這種,因?yàn)槲覀兊募?xì)分由軟件控制。實(shí)際應(yīng)用中使用ST的mos管兩橋驅(qū)動(dòng)芯片L6205一片即可驅(qū)動(dòng)一臺(tái)步進(jìn)電機(jī)。有了H橋通過(guò)PWM就可以控制相電流大小,改變輸入極IN1、IN2的狀態(tài)(參看手冊(cè)第8頁(yè))可以控制相電流的方向。
2細(xì)分的原理和輸出控制
從這里開(kāi)始重點(diǎn)了,別的地方看不到哦。
藍(lán)色線時(shí)A相電流,紅色線是B相電流。如果把A相正負(fù)極值視為A+A-,B相正負(fù)極值視為B+B-,比較一下四拍方式正轉(zhuǎn)A+B+A-B-和反轉(zhuǎn)A+B-A-B+不難看出四排方式實(shí)際上是用一個(gè)脈沖來(lái)代替一個(gè)正弦半周期,相位點(diǎn)從左到右變化則電機(jī)正轉(zhuǎn),從右到左電機(jī)反轉(zhuǎn)。類似的我們把八拍方式A+;A+B+;B+;B+A-;A-;A-B-;B-;B-A+;放到曲線里也可以找到對(duì)應(yīng)點(diǎn),圖中標(biāo)出了各拍的相位點(diǎn)1,2,3…,不難看出用A+B+代替第2拍點(diǎn)用B+A-代替第四拍點(diǎn)都是近似的做法。那么這種近似和理想情況的電流的差值去哪里了呢?這些電流被無(wú)謂的消耗掉了而且多余的電流會(huì)引起電機(jī)轉(zhuǎn)動(dòng)的不平穩(wěn)。為什么要細(xì)分呢?實(shí)際細(xì)分的終極目標(biāo)就是在正弦的周期中插入若干個(gè)點(diǎn)使得相電流接近正弦變化,細(xì)分可以提高定位精度和電機(jī)運(yùn)轉(zhuǎn)的平穩(wěn)性。
由此我們拋開(kāi)細(xì)分不談,如果你能調(diào)制出兩條相差為90度的正弦波形就是理想的步進(jìn)電機(jī)驅(qū)動(dòng)器了,調(diào)制出的正弦波形的頻率就是步進(jìn)電機(jī)的轉(zhuǎn)速,正弦的幅值就是步進(jìn)電機(jī)的轉(zhuǎn)矩。這個(gè)聽(tīng)起來(lái)貌似不難啊,但是你不要忘了調(diào)制出的正弦是有要求的。第一要有一定的驅(qū)動(dòng)能力步進(jìn)電機(jī)的功率越大驅(qū)動(dòng)能力要求也越大。第二要能夠保持90度的相差前提下改變正弦的頻率,這樣才能夠驅(qū)動(dòng)電機(jī)按不同的轉(zhuǎn)速運(yùn)轉(zhuǎn),步進(jìn)電機(jī)的旋轉(zhuǎn)方向?qū)嶋H上是兩條正弦波的相位點(diǎn)順序。第三最好能夠調(diào)幅,調(diào)整幅值能夠?qū)崿F(xiàn)電機(jī)的恒力矩輸出,調(diào)幅的實(shí)際意義還不止這些后面再講??傊痪湓捑褪峭ㄟ^(guò)pwm調(diào)制輸出可以調(diào)頻調(diào)幅的兩路固定相差的正弦波。(如果是三相步進(jìn)電機(jī)應(yīng)該是相差各位120度的三路正弦波,原理是一樣的。)
上面那個(gè)圖和兩相步進(jìn)電機(jī)驅(qū)動(dòng)的關(guān)系可能有些疑惑"真的是這樣的嗎?",我們?cè)谶@里再安排一個(gè)試驗(yàn)。我們知道電動(dòng)機(jī)和發(fā)電機(jī)是兩個(gè)可逆的過(guò)程,因此我們可以用步進(jìn)電機(jī)來(lái)當(dāng)發(fā)電機(jī)。很簡(jiǎn)單的實(shí)驗(yàn),我們把步進(jìn)電機(jī)的兩相引線接到雙蹤示波器輸入上,然后找個(gè)電機(jī)帶著轉(zhuǎn)軸運(yùn)轉(zhuǎn)(我是用一個(gè)手電鉆夾住電機(jī)的轉(zhuǎn)軸,我的這個(gè)手鉆是可以正反轉(zhuǎn)的)。保持穩(wěn)定的轉(zhuǎn)速,你會(huì)在示波器上看到上面那個(gè)圖:即兩路相差固定的完美的正弦波,當(dāng)轉(zhuǎn)速增大時(shí)幅值和頻率都有變化(線性關(guān)系),并且正轉(zhuǎn)和反轉(zhuǎn)時(shí)兩路正弦相位位置不同,如果你能夠確定轉(zhuǎn)速的話你還可以驗(yàn)證以下周期、轉(zhuǎn)速、步距角之間的關(guān)系。
步進(jìn)電機(jī)的驅(qū)動(dòng)要比逆變器、伺服電機(jī)驅(qū)動(dòng)復(fù)雜的地方在于需要大范圍的變頻,如果能做好這個(gè)步進(jìn)電機(jī)的驅(qū)動(dòng)器其它那兩個(gè)就不成問(wèn)題了,至少在波形調(diào)制上絕對(duì)沒(méi)問(wèn)題了,它們的基本原理是通的。
下面我們展開(kāi)正弦調(diào)制的討論,這部分是核心的部分將占很大的篇幅,你放心我絕對(duì)不會(huì)羅列一大堆的數(shù)學(xué)式在教程里,不然怎么能叫超級(jí)無(wú)敵呢?教程超級(jí)無(wú)敵,這個(gè)stm32實(shí)現(xiàn)的驅(qū)動(dòng)程序也是超級(jí)無(wú)敵的(吼吼)。但是“載波比、spwm、死區(qū)、單雙極性”這幾個(gè)詞如果你覺(jué)得很陌生的話建議你還是要看看電力電子課程的相關(guān)章節(jié)基本概念還是要有的。
3spwm運(yùn)算和輸出
Spwm的產(chǎn)生可以分為軟件方法和硬件方法,硬件方法通過(guò)硬件產(chǎn)生一路三角波一路正弦波,經(jīng)過(guò)一個(gè)比較器比較正弦波幅值與三角波幅值的關(guān)系即可得到spwm波。這種方法也應(yīng)用于很多spwm集成芯片。硬件方法在波形產(chǎn)生上不需要軟件參與,并且調(diào)頻和調(diào)幅控制上都是比較簡(jiǎn)單的。硬件方法的功能和性能取決于芯片本身,對(duì)于比較復(fù)雜的應(yīng)用上會(huì)受到限制。
軟件方法的思路是使得pwm波以spwm的脈寬數(shù)據(jù)變化濾波后就可以得到正弦波形,通過(guò)計(jì)算得到占空比的波形數(shù)據(jù),按波形數(shù)據(jù)調(diào)整pwm。其實(shí)軟方法和硬方法也并不是絕對(duì)的,比如ti的dsp芯片內(nèi)部的spwm發(fā)生器,他的做法是在內(nèi)存中存儲(chǔ)一張正弦表,然后用一個(gè)和定時(shí)器時(shí)鐘同步的計(jì)數(shù)器正負(fù)計(jì)數(shù)模擬一個(gè)三角波,每個(gè)時(shí)鐘將正弦表的值與三角計(jì)數(shù)值作比較輸出即得到spwm,實(shí)際上可以看成是一種半軟件半硬件的做法。軟件方法的優(yōu)勢(shì)在于成本低且更靈活,成本低不用說(shuō)了,靈活性上舉個(gè)例子:調(diào)制正弦波性的極性是由獨(dú)立的控制位實(shí)現(xiàn)的(雙極性),如果輸出標(biāo)準(zhǔn)的正弦波形硬方法需要三角波發(fā)生器和正弦波發(fā)生器的起始點(diǎn)精確對(duì)齊,這在硬件電路實(shí)現(xiàn)上需要附帶鎖相環(huán)電路才能保證,而軟件方法則不需要任何附加操作。現(xiàn)在為了改善步進(jìn)電機(jī)的驅(qū)動(dòng)性能,我們希望極性翻轉(zhuǎn)點(diǎn)落后輸出幾個(gè)微秒,要做到這一點(diǎn)硬件方法改動(dòng)肯定是難上難,而軟件方法上只需要增加個(gè)定時(shí)滯后輸出就行了。
為了減少運(yùn)算開(kāi)銷也可以使用查表法,把計(jì)算好的spwm數(shù)據(jù)存儲(chǔ)在rom里,按順序輸出表中的值即可。這種方法的數(shù)據(jù)計(jì)算可以在pc機(jī)上通過(guò)matlab軟件進(jìn)行,將數(shù)據(jù)算好粘貼到源程序中就可以了。查表法的局限在于參數(shù)的變化和存儲(chǔ)開(kāi)銷的矛盾,參數(shù)越復(fù)雜占用存儲(chǔ)空間越大。
(1)三角波向鋸齒波的轉(zhuǎn)換
載波為三角波時(shí)輸出的是一個(gè)左右不對(duì)稱的pwm波形,只有這種波形能夠調(diào)制出半周期對(duì)稱的正弦波,這種方法稱為非對(duì)稱的自然采樣法。其它方法(規(guī)則采樣等效面積…)都是為了減小計(jì)算量或不得以而采取的近似方法。非對(duì)稱pwm開(kāi)點(diǎn)與關(guān)閉點(diǎn)沒(méi)有必然關(guān)系,必須由中央對(duì)齊的pwm模式通過(guò)一個(gè)周期的兩次更新來(lái)輸出。三角波可以看成是兩個(gè)鋸齒波的組合,因此我們可以通過(guò)鋸齒波的數(shù)據(jù)來(lái)簡(jiǎn)化程序結(jié)構(gòu)。
步進(jìn)電機(jī)的控制原理與實(shí)現(xiàn)方法
步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)角位移或線位移的電動(dòng)機(jī)。每輸入一個(gè)脈沖信號(hào),電機(jī)就會(huì)轉(zhuǎn)動(dòng)一個(gè)固定的角度,這個(gè)角度稱為步距角。通過(guò)控制脈沖的個(gè)數(shù),可以精確控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度,從而實(shí)現(xiàn)精確定位或調(diào)速。本文將詳細(xì)介紹步進(jìn)電機(jī)的控制原理及實(shí)現(xiàn)方法。
一、步進(jìn)電機(jī)的控制原理
步進(jìn)電機(jī)的控制主要依賴于脈沖信號(hào)。當(dāng)控制器發(fā)出一個(gè)脈沖信號(hào)時(shí),步進(jìn)電機(jī)驅(qū)動(dòng)器會(huì)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)一個(gè)步距角。脈沖信號(hào)的頻率決定了電機(jī)的轉(zhuǎn)速,脈沖的個(gè)數(shù)則決定了電機(jī)轉(zhuǎn)動(dòng)的總角度。此外,通過(guò)改變脈沖信號(hào)的順序,還可以控制電機(jī)的轉(zhuǎn)動(dòng)方向。
二、步進(jìn)電機(jī)的控制實(shí)現(xiàn)方法
1. 硬件組成
步進(jìn)電機(jī)控制系統(tǒng)主要由控制器、驅(qū)動(dòng)器、步進(jìn)電機(jī)和傳感器等組成。其中,控制器負(fù)責(zé)發(fā)出脈沖信號(hào),驅(qū)動(dòng)器負(fù)責(zé)將脈沖信號(hào)放大并驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),傳感器則用于檢測(cè)電機(jī)的實(shí)際位置和速度,以實(shí)現(xiàn)閉環(huán)控制。
2. 脈沖信號(hào)的產(chǎn)生
脈沖信號(hào)可以通過(guò)多種方式產(chǎn)生,如使用微控制器(MCU)的定時(shí)器功能、專用步進(jìn)電機(jī)控制芯片或運(yùn)動(dòng)控制卡等。這些設(shè)備都能根據(jù)設(shè)定的參數(shù)(如脈沖頻率、個(gè)數(shù)和方向等)輸出相應(yīng)的脈沖信號(hào)。
3. 驅(qū)動(dòng)器的選擇與設(shè)置
驅(qū)動(dòng)器是步進(jìn)電機(jī)控制系統(tǒng)中的關(guān)鍵部件,它負(fù)責(zé)將控制器發(fā)出的脈沖信號(hào)轉(zhuǎn)換成足夠驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)的電流和電壓。在選擇驅(qū)動(dòng)器時(shí),需要考慮電機(jī)的型號(hào)、額定電流、細(xì)分?jǐn)?shù)等因素。此外,還需根據(jù)實(shí)際情況設(shè)置驅(qū)動(dòng)器的參數(shù),如電流大小、細(xì)分?jǐn)?shù)和驅(qū)動(dòng)模式等。
4. 控制策略的制定
為了實(shí)現(xiàn)步進(jìn)電機(jī)的精確控制,需要制定合理的控制策略。這包括確定脈沖信號(hào)的頻率、個(gè)數(shù)和方向,以及處理可能出現(xiàn)的異常情況(如失步、堵轉(zhuǎn)等)??刂撇呗缘闹贫ㄐ杈C合考慮電機(jī)的性能要求、應(yīng)用場(chǎng)景和實(shí)時(shí)性等因素。
5. 傳感器的應(yīng)用與反饋控制
為了進(jìn)一步提高步進(jìn)電機(jī)的控制精度和穩(wěn)定性,可以引入傳感器來(lái)實(shí)現(xiàn)閉環(huán)控制。通過(guò)傳感器檢測(cè)電機(jī)的實(shí)際位置和速度,將其與設(shè)定值進(jìn)行比較,然后調(diào)整脈沖信號(hào)的參數(shù),以減小偏差。這種反饋控制方式可以顯著提高電機(jī)的控制性能。
三、步進(jìn)電機(jī)控制的注意事項(xiàng)
1. 在控制步進(jìn)電機(jī)時(shí),要確保脈沖信號(hào)的穩(wěn)定性和準(zhǔn)確性。任何干擾或誤差都可能導(dǎo)致電機(jī)失步或偏離預(yù)定位置。
2. 需根據(jù)電機(jī)的實(shí)際情況選擇合適的驅(qū)動(dòng)器和參數(shù)設(shè)置。不合適的驅(qū)動(dòng)器或參數(shù)可能導(dǎo)致電機(jī)性能下降甚至損壞。
3. 在制定控制策略時(shí),要充分考慮電機(jī)的動(dòng)態(tài)特性和負(fù)載情況。過(guò)于復(fù)雜的控制策略可能導(dǎo)致實(shí)時(shí)性降低,而過(guò)于簡(jiǎn)單的策略則可能無(wú)法滿足控制要求。
4. 在使用傳感器進(jìn)行反饋控制時(shí),要確保傳感器的精度和可靠性。同時(shí),要合理處理傳感器的數(shù)據(jù),以避免誤判或誤操作。
四、總結(jié)
步進(jìn)電機(jī)的控制涉及多個(gè)方面,包括硬件組成、脈沖信號(hào)的產(chǎn)生與處理、驅(qū)動(dòng)器的選擇與設(shè)置、控制策略的制定以及傳感器的應(yīng)用等。只有綜合考慮這些因素,才能實(shí)現(xiàn)步進(jìn)電機(jī)的高精度、高效率和高穩(wěn)定性控制。隨著科技的不斷發(fā)展,步進(jìn)電機(jī)控制技術(shù)也將不斷進(jìn)步,為更多領(lǐng)域的應(yīng)用提供有力支持。