步進電機是一種數字電機,在經濟型數控機床及自動化設備中應用廣泛。控制步進電機的轉動需要3個要素:方向、轉角和轉速。對于含 有硬件的驅動電源,方向取決于控制器送出的方向電平的高或低。轉角取決于控制器送出的步進脈沖的個數。而轉速則取決于控制器發出的步進脈沖之間的時間間隔。在步進電機的控制中,方向和轉角控制簡單,而轉速控制則比較復雜。步進電機工作時,失步或過沖直接影響其定位精度。在設計系統的時候,除了應正確選擇步進電機和驅動電源之外,還必須對步進電機控制脈沖的頻率進行調節。由于步進電機的轉速正比于控制脈沖的頻率,所以調節步進電機脈沖頻率,實質上就是調節步進電機速度。 本文將具體討論步進電機的速度調節問題,并結合實例給出軟件實現的方法。
1 步進脈沖的調頻方法 對步進電機控制的一個中心問題就是速度調節。即產生一系列頻率可調的步進脈沖序列,送到驅動電源,控制電機繞組的輪流通電,實現電機的轉動。脈沖序列的產生用微處理器實現,有軟件延時和硬件定時兩種方法。
(1)軟件延時:通過調用標準的延時子程序來實現。假定控制器基于AT89S52單片機 ,晶振頻率為12 MHz,那么可以編制一個標準的延時 子程序如下: 該子程序的入口為(0E)(0D)兩個字節,若需要20000 us的延時,則給(0E)(0D)兩個字節賦值4E20H,即執行下面程序: MOV 0EH,#4EH ;20 000的十六進制碼為4E20。 MOV 0DH.#20H CALL DELAY ;調用標準延時子程序DELAY。 若要控制步進電機走100步,每兩步之間延時20 000 s,則匯編程序為: MOV 0FH,#100D ;準備走100步。 CONTI: CALL I_STEP ;電機走一步(調用電機的脈沖分配子程序) MOV 0EH,#4EH ;20 000的十六進制碼為4E20。 MOV 0DH,#20H CALL DELAY ;相鄰步之間的延時(決定電機的轉速)。 DJNZ 0FH,CONTI ;循環次數減1后,若不為0則繼續,循環100次。 可以看出,采用軟件延時方法實現速度調節的優點是程序簡單,思路清晰,不占用硬件資源。缺點是浪費CPU的寶貴時間,在控制電機轉動的過程中,CPU不能做其它事。
(2)硬件定時:假定控制器仍為AT89S52單片機,晶振頻率為12 MHz,將AT89S52的TD作為定時器使用,設定T0工作在模式1(16位定時/ 計數器)。今要求它能定時地發出步進脈沖,其定時中斷產生的脈沖序列的周期(即步進電機的脈沖間隔)假定為20 000 s,則可算出TD所對應 的定時常數為B1E0H,CPU相應的程序如下: 主程序: MOV TMOD,#01H ;設T0取工作模式1。 MOV TH0.#0B1H ;裝入定時常數高8位。 MOV TLO,#0E0H ;裝入定時常數低8位。 SETB TR0 ;啟動T0定時。 SETB ET0 ;允許T0中斷。 SETB EA ;允許CPU中斷。 $ ;CPU等待T0的定時到。 中斷服務程序: CLR ET0 ;關T0中斷。 CALL I_STEP ;控制電機走一步(調用電機的脈沖分配子程序)。 RETI ;T0中斷返回。 本例中,只要改變T0 的定時常數,就可實現步進電機的調速。這種方法既需要硬件(T0定時器)又需要軟件來確定脈沖序列的頻率,所以是 一種軟硬件相結合的方法。它的缺點是占用了一個定時器。在比較復雜的控制系統中常采用定時中斷的方法,這樣可以提高CPU的利用率。
2 升降頻方法及其實現 2.1 升降頻方法 當步進電機的運行頻率低于它本身的起動頻率時,步進電機可以用運行頻率直接起動,并以該頻率連續運行,需要停止的時候,可以從運行頻率直接降到零速。此時,電機運行于恒速狀態,無需升降頻控制。當步進電機的運行頻率fb>fa (fa為步進電機有載起動時的起動頻率)時,若直接用fb起動,由于頻率太高,步進電機會丟步,甚至產生堵轉。同樣,在fb頻率下突然停止,步進電機會超程。因此,當要求步進電機在運行頻率.fb下正常工作時,就需要采用升降頻控制,以使步進電機從啟動頻率fa開始,逐漸加速升到運行頻率fb,然后進入勻速運行,最后的降頻可以看作是升頻的逆過程。 步進電機常用的升降頻控制方法有3種: (1)直線升降頻。如圖1所示。這種方法是以恒定的加速度進行升降,平穩性好,適用于速度變化較大的快速定位方式。加速時間雖然長,但 軟件實現比較簡單。 圖1 直線升降頻 (2)指數曲線升降頻。如圖2所示,這種方法是從步進電機的矩頻特性出發,根據轉矩隨頻率的變化規律推導出來的。它符合步進電機加減速過程的運動規律,能充分利用步進電機的有效轉矩,快速響應性能較好,升降時間短。指數升降控制具有較強的跟蹤能力,但當速度變化較大時平衡性較差,一般適用于跟蹤響應要求較高的切削加工中。 圖2 指數曲線升降頻 (3)拋物線升降頻。如圖3所示,拋物線升降頻將直線升降頻和指數曲線升降頻融為一體,充分利用步進電機低速時的有效轉矩,使升降速 的時間大大縮短,同時又具有較強的跟蹤能力,這是一種比較好的方法。 圖3 拋物線升降頻 2.2 軟件實現 步進電機在升降頻過程中,脈沖序列的產生,即兩個脈沖時間間隔的軟件確定,有2種方法: (1)遞增/遞減一定值。如線性升降頻,兩脈沖頻率的差值 Δf= |fi-fi-1|是相等的,其對應的時間增量Δf也是相等。時間的計算若采用軟件延時的方法,可先設置一個基本的延時單元Te,不同頻率的脈沖序列可由Te的不同倍數產生。設起動時所用頻率對應的時間常數為tNe 以后逐次遞減Δt(設Δt=tM),直到等于運行頻率所對應的時間(tRe)為止。這種方法編程簡單,節省內存。時間計算也可采用定時中斷的方法,可將定時常數逐次遞增/遞減一定值,實現升降頻控制。因其定時不是連續的,所以升降速曲線不是一條直線,而是折線,但可近似看成直線。 (2)查表法。為了對步進電機實現****升降頻控制,縮短電機的升降頻時間,可從步進電機矩海南五彩繽紛頻特性出發進行分析。由步進電機的矩頻特性(見圖4,130BC3100A電機)可知,轉矩M是頻率f的函數(即角加速度dω/dt=M(f)/J,J為電機的轉動慣量),它隨著f的上升而下降,所以它呈軟的特性。當頻率較低時,轉矩M較大,對應的角加速度dω/dt也較大,所以升頻的脈沖頻率增加率df/dt應取得大一些;當頻率較高時, 較 小,dω/dt也較小,此時,升頻的脈沖頻率增加率df/dt應取小一些,否則,會由于無足夠的轉矩而失步。因此,根據步進電機的矩頻特性,可以看出:在步進電機的升頻過程中,應遵循“先快后慢”的原則。按此要求,從開始升頻到升至fb之間,按****升頻要求的頻率取出f1,f2,f3,……,fn并將它們所對應的脈沖間隔時間t1,t2 ,…… ,tn,依次存于內存的一個數據區,如表1所示(稱階梯頻率表)。 圖4 步進電機的矩頻特性曲線 考慮到步進電機的慣性作用。在升速過程中,如果速率變化太大,電機響應將跟不上頻率的變化,出現失步現象。因此,每改變一次頻率,要求電機持續運行一定步數(稱階梯步長),使步進電機慢慢適應變化的頻率,從而進入穩定的運行狀態。根據****升降頻控制規律,可推出步進電機的“頻率-步長”關系曲線如圖5所示。 圖5 頻率-步長曲線 這樣,升頻時除需將階梯頻率表存于內存的一個數據區內外,還需建立另一個數據區,用來存放階梯步長(如表2所示)。在升頻過程中,可用查表的方法,分別得到fi=(ti)和所對應的△Li,實現升降頻控制。軟件上的具體做法是:將 fi(ti)和△Li在EPROM中交替存放(如表3所示),程 序執行時按順序取數,每次取出一個頻率和該頻率對應的步長。 |