閆 吉
(西安歐亞學(xué)院,西安 710065)
如今3D打印技術(shù)已經(jīng)趨近于成熟,步進電機作為支持3D打印機驅(qū)動裝置,因其高精度的開環(huán)控制精度而成為打印裝置的核心。隨著步進電機制作工藝不斷發(fā)展,步進電機在運行過程中對打印機產(chǎn)生的累積誤差逐漸減小,應(yīng)運而生了多種步進電機的細分控制技術(shù)[1],設(shè)計研究3D打印步進電機控制方法成為了當下的研究熱點。作為低能耗的微控制器,STM32微控制器能夠支持運行進程較為復(fù)雜的控制指令,對于提升步進電機的性能有著一定的促進作用。
國外研究步進電機起步較早,最初以電脈沖信號轉(zhuǎn)變角度位移的執(zhí)行結(jié)構(gòu)為初代步進電機結(jié)構(gòu),通過調(diào)整脈沖信號的位移增量[2],制定固定的數(shù)值線性關(guān)系來控制步進電機的運行。國內(nèi)研究設(shè)計步進電機起步較晚,以單板計算機作為支持,聯(lián)合電機開環(huán)結(jié)構(gòu)組建形成簡易的控制結(jié)構(gòu)[3]。經(jīng)過階段性的應(yīng)用發(fā)現(xiàn),支持3D打印技術(shù)的步進電機在不同的細分條件下,控制產(chǎn)生的打印角度偏離設(shè)定的角度值,為此,設(shè)計基于STM32的打印步進電機控制方法。
選擇型號為THB6128的STM32芯片,利用其內(nèi)部128細分數(shù)以及H型的橋功率支持步進電機的正常驅(qū)動,結(jié)合步進電機的硬件運行規(guī)范,結(jié)合芯片的電阻系數(shù),控制硬件電路的電流的保持時間,數(shù)值關(guān)系可表示為:
其中,Td表示電流的保持時間,C0表示硬件結(jié)構(gòu)內(nèi)的電容,p表示細分參數(shù),F(xiàn)表示支持電路的斬波頻率。標定STM32的輸出引腳與步進電機VREF引腳連接,根據(jù)上述計算得到的電容參數(shù),控制步進電機形成的斬波頻率,數(shù)值關(guān)系可表示為:
上述數(shù)值關(guān)系中,F(xiàn)c表示計算得到的斬波頻率,I0表示驅(qū)動器的輸出電流,RF表示驅(qū)動器的運行電阻。為了控制STM32與驅(qū)動電機之間的兼容,在STM32控制器外部的輸入端放置一個光耦隔離,以上述斬波頻率條件下的電流參數(shù)作為導(dǎo)通參數(shù)。驅(qū)動電機串聯(lián)一個直接編碼器,轉(zhuǎn)化步進電機的數(shù)字信號。劃分數(shù)字信號的轉(zhuǎn)化周期,并以該轉(zhuǎn)化周期作為步進電機的驅(qū)動周期。橫向測量數(shù)字信號脈沖間的相位差,采用M法記錄信號轉(zhuǎn)化周期內(nèi)的轉(zhuǎn)速數(shù)值,數(shù)值關(guān)系可表示為:
上述數(shù)值關(guān)系中,Q表示轉(zhuǎn)速參數(shù),m表示周期范圍內(nèi)數(shù)字信號的脈沖數(shù)量,其余參數(shù)含義不變。以計算得到的轉(zhuǎn)速參數(shù)作為步進電機的驅(qū)動增量,利用該增量正交解碼電機的驅(qū)動信號[4],實現(xiàn)步進電機的驅(qū)動,在上述設(shè)定的驅(qū)動參數(shù)條件下,計算3D打印步進電機運行互感參數(shù)。
融入STM32的步進電機驅(qū)動形式為兩項混合模式,根據(jù)步進電機的定子繞組與轉(zhuǎn)子的數(shù)量,計算繞組產(chǎn)生的混合諧波分量,數(shù)值關(guān)系可表示為:
其中,LA表示定子繞組諧波互感,LB表示轉(zhuǎn)子諧波互感,N0表示定子繞組的匝數(shù),L0表示轉(zhuǎn)子長度,θ表示步進電機的轉(zhuǎn)角數(shù)值。諧波分量在循環(huán)通電后,產(chǎn)生一定的磁能,數(shù)值關(guān)系可表示為:
其中,W表示諧波分量產(chǎn)生的磁能參數(shù),其余參數(shù)保持原有含義不變。循環(huán)通電后步進電機產(chǎn)生反應(yīng)轉(zhuǎn)矩,數(shù)值關(guān)系可表示為:
其中,Ts表示步進電機產(chǎn)生的驅(qū)動轉(zhuǎn)矩,Nr表示疊加等效轉(zhuǎn)子,IA表示勵磁電流,MA表示渦流飽和系數(shù)。根據(jù)上述反轉(zhuǎn)矩形成的條件數(shù)值,步進電機形成的運動方程可表示為:
上述數(shù)值關(guān)系中,Te表示步進電機的運動方程,J表示步進電機的轉(zhuǎn)動慣量,ke表示粘滯系數(shù)。標定驅(qū)動電機運動條件下產(chǎn)生的渦流,并根據(jù)電壓平衡數(shù)值關(guān)系,計算得到步進電機的運行互感,互感數(shù)值關(guān)系可表示為:
上述數(shù)值關(guān)系中,Me表示計算得到的互感數(shù)值,Mr表示步進電機繞組產(chǎn)生的內(nèi)阻諧波分量,其余參數(shù)保持原有含義不變。整理上述計算得到的互感系數(shù),并結(jié)合步進電機產(chǎn)生的各項驅(qū)動參數(shù),設(shè)置控制細分等級,實現(xiàn)對步進電機的控制。
根據(jù)步進電機驅(qū)動模式下的互感過程,在實現(xiàn)步進電機控制時,整理互感狀態(tài)下步進電機激勵磁繞組兩項電流產(chǎn)生的相位數(shù)值差,數(shù)值關(guān)系可表示為:
上述數(shù)值關(guān)系中,κ表示兩項繞組產(chǎn)生的相位數(shù)值差,Tm表示激勵磁繞組的運行周期,N'表示繞組的細分參數(shù)。根據(jù)計算得到的相位數(shù)值差,控制繞組轉(zhuǎn)子按照電流等級細分為兩項給定波形,兩項波形如圖1所示。
圖1 步進電機控制相的電流波形
在上圖所示的控制相的電流波形可知,步進電機輸入電流被細分為8,此時步進電機的步進角呈周期性變化。在實現(xiàn)控制時,將單位周期內(nèi)的轉(zhuǎn)矩處理為執(zhí)行任務(wù)[5],設(shè)定步進電機的加速時間,并結(jié)合電機角速度,構(gòu)建時間與角速度之間的數(shù)值關(guān)系,可表示為:
其中,ω表示步進電機運行時的角速度,t表示步進電機的單位運行時間,θt表示步進電機的角速度。控制單位運行時間內(nèi)的步進電機的個脈沖,制定以角速度與時間為相關(guān)量的控制數(shù)值關(guān)系,數(shù)值關(guān)系可表示為:
上述數(shù)值關(guān)系中,δ表示步進電機的切換面收斂參數(shù),β表示滑膜維度量,其余參數(shù)保持原有含義不變??刂粕鲜鰯?shù)值關(guān)系式(11)代入至上述計算式(10)中,整理控制數(shù)值關(guān)系為積分的形式,控制步進電機產(chǎn)生的穩(wěn)態(tài)誤差。綜合上述研究設(shè)計,最終完成對基于STM32的3D打印機步進電機控制方法的設(shè)計。
準備3D打印機運行所需的各項硬件結(jié)構(gòu),以打印機的驅(qū)動板作為連接中心,驅(qū)動板通過電源開關(guān)連接打印機的步進電機,步進電機連接供電電源后,在步進電機的輸出口處連接示波器??刂芐TM32芯片放置在控制板結(jié)構(gòu)內(nèi),并通過萬能表連接用于分析的上位機。搭建形成的步進電機的測試環(huán)境結(jié)構(gòu)如圖2所示。
圖2 搭建形成的測試環(huán)境結(jié)構(gòu)
在上圖搭建的測試環(huán)境結(jié)構(gòu)內(nèi),上位機內(nèi)搭載編譯開關(guān)量程序,程序運行步進電機的輸入開關(guān)量,并控制輸入端的電平為3.3V。根據(jù)步進電機接收的脈沖控制過程,步進電機采用主軸與絲杠兩相四線的結(jié)構(gòu),利用其主軸以及絲杠上的正反轉(zhuǎn),實現(xiàn)電機的正常運行。設(shè)置步進電機的工作方式為雙四拍與單八拍的通電換向順序,此時,步進電機產(chǎn)生的轉(zhuǎn)速數(shù)值可表示為:
上述數(shù)值關(guān)系中,n表示步進電機產(chǎn)生的轉(zhuǎn)速,N表示步進電機通電循環(huán)周期數(shù)量,Z表示轉(zhuǎn)子齒數(shù),f表示步進電機的脈沖頻率。在上述轉(zhuǎn)速狀態(tài)下,設(shè)置步進電機輸出引腳的占空比為50%。同步調(diào)試上位機的各項運行參數(shù)后,調(diào)用上位機中的控制軟件,控制3D打印機為工作上電狀態(tài),為了平衡電路結(jié)構(gòu)中的運行電壓,在步進電機輸出接口內(nèi)設(shè)置參考電阻,數(shù)值關(guān)系可表示為:
其中,R表示設(shè)置的參考電阻,V0表示輸出電壓參數(shù),R1表示步進電機內(nèi)的固定電阻,VC表示供電電源電壓。測試環(huán)境搭建完畢后,準備基于時變邊界層滑膜算法的控制方法、基于DSP的控制方法以及設(shè)計的控制方法參與測試,設(shè)定恒細分數(shù)加減速運行、變細分數(shù)加減速運行測試過程,測量控制方法的性能。
調(diào)用控制運行的上位機程序,將控制程序處理為恒細分數(shù)梯形加減速控制過程,劃分步進電機的細分數(shù)為8,控制電機的運行方向為正向,且加速與減速間的運行百分比為0.2,設(shè)定步進電機的運行頻率為10kHz和15kHz,通過仿真處理,整理運行時間在750ms~840ms之間電機的實際速度,速度變化結(jié)果如圖3所示。
圖3 步進電機恒細分數(shù)條件下控制加速度變化
根據(jù)上圖整理的恒細分數(shù)速度運行曲線可知,當步進電機處于10kHz的運行條件下,在750ms~770ms的時間區(qū)段內(nèi),運行速度產(chǎn)生突變,可知該時間區(qū)段內(nèi)電機產(chǎn)生電機控制脈沖,電機實際產(chǎn)生的振蕩持續(xù)減小,最終電機運行速度和控制頻率之間保持均勻的變化關(guān)系。當電機的運行頻率增加至15kHz時,電機加速度過程并未產(chǎn)生躍遷,步進電機運行呈現(xiàn)穩(wěn)定狀態(tài),且加速所需的時間區(qū)段較小。
在上述的最大細分數(shù)條件下,設(shè)置步進電機的期望角度為720°,控制最大細分數(shù)為8細節(jié),保持正向的電機運行方向,通過仿真處理過程,整理變細分數(shù)條件下控制加速度的變化,變化如圖4所示。
圖4 步進電機變細分數(shù)條件下控制加速度變化
在上圖仿真得到的加速度數(shù)值變化下,變細分數(shù)條件下電力產(chǎn)生加速時間較長,且持續(xù)的加速時間與恒細分數(shù)條件下相等,由上圖所示的加速度變化可知,在控制指令下步進電機加速數(shù)值變化不一,且電機速度脈動減小,控制電機的時間明顯減小。整理上述恒細分數(shù)加減速運行以及變細分數(shù)加減速運行過程產(chǎn)生的各項系數(shù),對應(yīng)整理三種控制條件下的各項系數(shù),設(shè)置三種控制方法的控制脈沖為1kHz,計算三種電機控制方法產(chǎn)生的控制誤差。
在上述的加減速運行環(huán)境內(nèi),整理上述步進電機的各項系數(shù),設(shè)置步進電機的各項細分數(shù)值為1、2、4、8、16、24、32、64、128,取上述兩種測試環(huán)境內(nèi)參數(shù)的均值,定義步進電機控制的打印角度,數(shù)值關(guān)系可表示為:
其中,u表示控制指令下3D打印機的角度,a表示控制觸發(fā)系數(shù),v-表示步進電機的速度均值,k表示步進電機的耦合系數(shù),s表示控制方法的等效控制系數(shù),f表示步進電機的運行頻率。以上述計算得到的打印角作為標準處理數(shù)值,對應(yīng)整理三種控制方法控制3D打印機的打印角,最終三種步進電機控制方法得到的誤差結(jié)果如表1所示:
表1 控制誤差結(jié)果
根據(jù)上述設(shè)定的細分數(shù)值,將恒細分數(shù)加減速運行以及變細分數(shù)加減速運行過程產(chǎn)生的各項參數(shù)作為標準控制指令的運行參數(shù),并根據(jù)步進電機觸發(fā)驅(qū)動過程,定義3D打印機的打印角度,并以該數(shù)值作為標準數(shù)值,整理三種控制方法產(chǎn)生的控制誤差,由上表所示的控制誤差結(jié)果可知,基于時變邊界層滑膜算法的控制方法實際的控制誤差角在0.45°左右,該種控制方法產(chǎn)生的誤差最大?;贒SP的控制方法產(chǎn)生的誤差角為0.27°,該種控制方法產(chǎn)生的誤差較小。而所設(shè)計的控制方法產(chǎn)生的誤差角為0.1°,與兩種參與測試的控制方法相比,設(shè)計的控制方法控制過程產(chǎn)生的誤差最小。
隨著3D打印技術(shù)不斷發(fā)展成熟,針對3D打印的步進電機控制研究有著一定的學(xué)術(shù)價值。以微控制器STM32作為支持,設(shè)計3D打印步進電機控制方法,經(jīng)過測試研究可知,能夠改善現(xiàn)有控制方法控制誤差較小的問題。在未來工作中,希望所設(shè)計的控制方法能夠為研究步進電機的性能提供理論支持。