步進電機作為電磁機械裝置,其進給的分辨率取決于細分驅動技術。采用軟件細分驅動方式,由于編程的靈活性、通用性,使得步進細分驅動的成本低、效率高,要修改方案也易辦到。同時,還可解決步進電機在低速時易出現的低頻振動和運行中的噪聲等。但單一的軟件細分驅動在精度與速度兼顧上會有矛盾,細分的步數越多,精度越高,但步進電機的轉動速度卻降低;要提高轉動速度,細分的步數就得減少。為此,設計了多級細分驅動系統,通過不同的細分檔位設定,實現不同步數的細分,同時保證了不同的轉動速度。
1 細分驅動原理
步進電機控制中已蘊含了細分的機理。如三相步進電機按A→B→C……的順序輪流通電,步進電機為整步工作。而按A→AC→C→CB→B→BA→A……的順序通電,則步進電機為半步工作。以A→B為例,若將各相電流看作是向量,則從整步到半步的變換,就是在IA與IB之間插入過渡向量IAB,因為電流向量的合成方向決定了步進電機合成磁勢的方向,而合成磁勢的轉動角度本身就是步進電機的步進角度。顯然,I AB的插入改變了合成磁勢的轉動大小,使得步進電機的步進角度由θb變為0.5 θb,從而也就實現了2步細分。由此可見,步進電機的細分原理就是通過等角度有規律的插入電流合成向量,從而減小合成磁勢轉動角度,達到步進電機細分控制的目的。
如圖1所示,在三相步進電機的A相與B相之間插入合成向量AB,則實現了2步細分。要再實現4步細分,只需在A與AB之間插入3個向量I1、I2、I3,使得合成磁勢的轉動角度θ1=θ2=θ3=θ4,就實現了4步細分。但4步細分與2步細分是不同的,由于I1、I2、I3 3個向量的插入是對電流向量IB的分解,故控制脈沖已變成了階梯波。細分程度越高,階梯波越復雜。
圖1 步進細分原理
在三相步進電機整步工作時,實現2步細分合成磁勢轉動過程為IA→IAB→IB;實現4步細分轉動過程為IA→I2→IAB……;而實現8步細分則轉動過程為IA→I1→I2→I3→IAB……??梢?,選擇不同的細分步數,就要插入不同的電流合成向量。
2 多級細分驅動系統的實現
2.1 系統組成
如圖2所示,系統由主機、鍵盤輸入系統、步進顯示系統、步進控制系統組成。主機采用AT89C51單片機,其為低功耗的8位單片機,片內有一個4K字節的Flash可編程、可擦除、只讀存儲器,故可簡化系統構成,且可滿足本系統數據存儲空間的要求。主機接收串行口送來的步進控制數據,并對其進行處理,以實施步進控制。鍵盤輸入系統是用來輸入控制所需的細分檔位。系統設計時,考慮到隨著細分的化,如128步細分時,步距角達到足夠小,能滿足各種步進要求,故以2的整數次冪作為細分基準。步進顯示系統由液晶顯示器顯示當前細分檔位和細分后的步進角等參數。為了減少電路的復雜性,該顯示器顯示的小單位規定為0.01°。步進控制系統由D/A轉換部分和驅動系統組成。D/A轉換部分包括3片DAC0830集成芯片和數據鎖存系統。DAC0830轉換分辨率是8位,該芯片具有與微處理器兼容、價格低廉、接口簡單、轉換控制容易等優點。D/A轉換部分的功能是將二進制代碼表示的階梯波數值轉換為相應的電流值輸出,經驅動系統放大,控制步進電機轉動。驅動系統采用三級管實現電流放大。
圖2 多級細分驅動系統組成
2.2 細分階梯波的產生
細分的實現過程,就是插入電流合成向量和轉換電流合成向量的過程。電流合成向量轉化的前提是合成向量的插入。在系統中,由主機根據設定的細分檔位,計算出相關參數,經查表生成相對應的階梯波,即插入了電流合成向量。在正轉或反轉的控制信號下,階梯波脈沖由輸出端口經鎖存系統送入D/A轉換器件DAC0830進行電流合成向量的轉化,輸出對應的電流值,經驅動放大控制步進電機,從而實現了細分驅動
電流合成向量的插入是實現細分的關鍵,而要得到電流合成向量,首先必須產生階梯波。由圖1知,在三相電機半步工作的情況下,要實現4步細分,就必須將B相電流分成4份,但不是等分,需保證θ1=θ2=θ3=θ4。若θ1、θ2、θ3、θ4分別對應的電流向量是IB1、IB2、IB3、IB4,則在θ1所對應的三角形內,設步進角為θb,則α=180°-θb,β=θb-θ1,由正弦定理得
考慮到一般情況,由于細分時步進電機控制脈沖波形是階梯型,如對B相進行4步細分時,其電流輸入依次為IB1、IB1+ IB2、IB1+ IB2+ IB3、IB1+ IB2+ IB3+ IB4,相應合成磁勢轉過的角度為θ1、θ1+θ2、θ1+θ2+θ3、θ1+θ2+θ3+θ4,此時設
IBk即為電流合成向量中B相階梯波中第k階的電流值,θk即為此時合成磁勢相應轉過的角度。由此推出,對B相來講,在步進電機的步進角度為θb時,考慮到IA=IB,則階梯波型其任一階的電流值為
同理,可求得A相和C相在細分時對應的階梯波電流值。對(1)式求解,考慮D/A器件DAC0830的轉換精度是8位,轉換穩定時間是1 μs,故大進行了128步細分的運算,相應求得其對應的細分電流值,并進行了相應的轉換,得到對應的二進制數值列表。此時,列表全部的數值就是在實現128步細分時,對應階梯波各階的電流值。
2.3 多級細分驅動的實現
要在細分的基礎上實現多級細分,就必須針對不同的細分檔位生成不同的階梯波。為此,該系統采用了循環增量查表法。首先建立階梯波數值存儲表格,有兩種方法,一種是針對每種細分方式建立相應的表格,其特點是細分種類多樣,但表格所占空間較大;另外一種,也就是該系統采用的,以大細分檔位對應的步數建立一個表格,減少了所需的存儲空間,并減少了程序運行中的不穩定因素。在具體控制中,該系統通過設定循環增量基數,使不同的細分檔位對應不同的細分步數,實現了多級細分驅動。
循環增量基數是指針對不同的細分檔位,實現等間隔尋址時相應跳躍的步數。循環增量基數是在細分檔位設定后,由相應的計算公式得到。由于該系統大細分步數為128步,即表格大長度為128個字節,若細分步數為m步,則循環增量基數為LB=(128/m)-1。不同的檔位對應不同的循環增量基數,同一表格就產生了多級細分所需的階梯波。
另外,在整步控制的基礎上,若細分為m步,對每m步運行中的各項電流值進行分析比較,可發現存在以下規律,即各相電流值的變化趨勢,隨著相位變化循環地出現,如表1所示。
表1 細分控制中各相電流值變化規律
各相 A→B B→C C→A
A相 高→遞減 電流值=0 增加→高
B相 增加→高 高→遞減 電流值=0
C相 電流值=0 增加→高 高→遞減