林進發(fā)
【摘 要】近年來基于步進電機控制的3D打印機在快速成型領(lǐng)域得到了廣泛的推廣和發(fā)展,但由于市場產(chǎn)品普遍采用開環(huán)式控制方式,導致控制精度低、打印過程不穩(wěn)定等問題。本文提出一種全閉環(huán)的運動控制方式,通過在3D打印機XY軸增加位置反饋光柵,并采用增量式PID控制算法進行運動位置的實時補償與修正,從而提高運動控制精度與穩(wěn)定性。通過MATLAB算法建模與仿真驗證了方法的可行性,并通過單片機代碼實現(xiàn)應用于相關(guān)產(chǎn)品中,產(chǎn)生了較好的改進效果。
【關(guān)鍵詞】全閉環(huán)運動控制;步進電機;3D打印機;增量式PID算法
中圖分類號: TP273 文獻標識碼: A文章編號: 2095-2457(2019)15-0027-003
DOI:10.19694/j.cnki.issn2095-2457.2019.15.013
Research on Closed Loop Motion Control of 3D Printer Based on Stepping Motor
LIN Jin-fa
(Shanghai New Microtechnology Research and Development Center Co.,Ltd,Shanghai 201800,China)
【Abstract】In recent years,3D printer based on stepper motor control has been widely promoted and developed in the field of rapid prototyping.However,due to the open-loop control mode widely used in market products,the control accuracy is low and the printing process is unstable.In this paper,a fully closed-loop motion control method is proposed.By adding position feedback grating to XY axis of 3D printer and using incremental PID control algorithm to compensate and correct the motion position in real time,the motion control accuracy and stability are improved.The feasibility of the method is verified by MATLAB algorithm modeling and simulation,and it is applied to related products through MCU code,which has produced better improvement effect.
【Key words】Full closed-loop motion control;Stepping motor;3D printer;Incremental PID algorithm
0 引言
3D打印技術(shù)又稱為“快速成型”技術(shù),是一種通過逐層堆疊材料進行三維構(gòu)造的增材制造技術(shù),通常具有節(jié)約材料、加工時間短、結(jié)構(gòu)限制少等優(yōu)點。熔融沉積成型技術(shù)(FDM)是近年來發(fā)展較快、應用較廣的一種3D打印技術(shù),但由于該技術(shù)起源于開源社區(qū),基于開源技術(shù),市場上存在諸多低端和簡易的機型,由于開源技術(shù)相對容易獲得和仿制,導致業(yè)內(nèi)高精度的控制技術(shù)相對比較缺乏。
目前市場上絕大部分FDM類3D打印機均為開環(huán)式的運動控制,多采用步進電機驅(qū)動,再加上開源式的3D打印機結(jié)構(gòu)簡單、穩(wěn)定性差,導致打印精度不高,且經(jīng)常會因為步進電機發(fā)生失步而使打印模型發(fā)生錯位,這對于打印過程是一個致命的傷害。為解決上述問題,本文提出一種全閉環(huán)的運動控制方法,并在相關(guān)產(chǎn)品中得到了實現(xiàn)和驗證。
1 全閉環(huán)運動控制方法的原理
1.1 系統(tǒng)架構(gòu)
全閉環(huán)運動控制系統(tǒng)主要包括運算器、控制器、執(zhí)行器、被控對象和反饋裝置等部分,以FDM 3D打印機的系統(tǒng)為例:
運算器為閉環(huán)算法處理單元,一般運行在打印機的主控制器或主板上,執(zhí)行閉環(huán)算法并利用運算結(jié)果來調(diào)整控制器的輸出量。
控制器為打印機的運動控制單元,包含步進電機驅(qū)動程序及驅(qū)動器,實現(xiàn)步進電機的驅(qū)動信號處理和輸出;
執(zhí)行器為步進電機所連接的運動機構(gòu),包括皮帶、光軸、滑塊等機械聯(lián)結(jié)部件,實現(xiàn)機械運動;
被控對象為打印噴頭,全閉環(huán)運動控制的主要目的是控制打印噴頭位置的精確運動,并保證運行穩(wěn)定性;
反饋裝置為光柵條和光柵信號讀頭,其作用是將運動控制的運算和參考量,由開環(huán)模式下的步進脈沖數(shù),轉(zhuǎn)化為以光柵條明暗條紋為參考系的線性物理位置。
由于檢測運動位置的光柵反饋裝置直接安裝到XY軸滑塊上,處于完整運動系統(tǒng)控制位置的末端,因此全閉環(huán)控制能夠完整消除各級運動誤差,相較于“開環(huán)”或“半閉環(huán)”控制具有更高的控制精度。本系統(tǒng)中運算器采用增量式PID控制算法,對運動過程中出現(xiàn)的誤差進行補償。由于步進電機是一種無累積的增量運動,采用增量式PID控制算法正好符合數(shù)字控制的需要,且更容易用控制程序?qū)崿F(xiàn)。
1.2 增量式PID算法
通常,位置式連續(xù)PID控制算法為:
其中,u(t)代表t時刻的輸出量,e(t)代表t時刻給定量與反饋量的差值,Kp為比例常數(shù),Ti為積分時間常數(shù),Td為微分時間常數(shù)。將式(1)離散化,得到離散PID控制算法公式:
其中,u(k)代表第k次輸出量,e(k)代表第k次給定量與反饋量的差值,Kp為比例常數(shù),Ki為積分常數(shù),Kd為微分常數(shù)。
式(2)為位置式PID控制算法,而步進電機是一種增量位置控制,因此可采用增量式PID控制算法,根據(jù)式(2),可得k-1次輸出量為:
式(2)與式(3)求差值,可得:
因此,利用連續(xù)3次誤差值,可以得到輸出量增量。
2 控制方案設計
2.1 閉環(huán)反饋裝置
基于上述閉環(huán)控制原理,首先需在XY運動系統(tǒng)中增加反饋裝置,以典型的十字軸運動機構(gòu)為例,在XY側(cè)邊滑塊上增加光柵信號讀頭,沿XY側(cè)邊運動軸增加線性光柵條,從而構(gòu)建全閉環(huán)的機械硬件系統(tǒng)。
由于打印噴頭固定于中心滑塊,并通過光軸與側(cè)邊滑塊連接,而側(cè)邊滑塊與光柵讀頭連接,所以光柵讀頭在沿光柵運動過程中所反饋的信號,即表征了打印噴頭的實際準確物理位置,并且該位置精度取決于光柵條的分辨率。本設計中,光柵條的明暗條紋間距為40um,光柵讀頭為增量式兩相信號輸出,通過電子細分控制,可實現(xiàn)4細分精度,因此閉環(huán)系統(tǒng)的位置分辨率為40/4=10um。
2.2 算法實現(xiàn)框圖
對于任意離散時刻t=n,上述增量PID控制算法的實現(xiàn)過程如下:
當系統(tǒng)的驅(qū)動輸出和位置反饋延遲小于單次中斷處理時間時,此算法可以實時修正坐標偏差。但實際上系統(tǒng)是存在較大時間延遲的,因此t=n時刻所獲得的位置反饋值是t=n-k時對應的絕對坐標,為了避免系統(tǒng)滯后引起的過修正和振蕩現(xiàn)象,采用t=n-k時刻對應的系統(tǒng)坐標值進行修正量的運算。其好處是保證運動的平滑連續(xù)性,代價是略有犧牲運動修正實時性,但在一般3D打印控制中,其影響可以忽略。
2.3 軟件控制流程
基于上述閉環(huán)控制方法,結(jié)合3D打印機的控制程序,設計其軟件實現(xiàn)如下:
通過運動控制指令可設置期望的運動目標位置,之后由運動控制中斷程序進行步進電機運動控制脈沖的計算和產(chǎn)生,當運動發(fā)生后,閉環(huán)信號通過光柵計數(shù)器進行計數(shù),并轉(zhuǎn)換為閉環(huán)坐標值,保存在寄存器中。運動控制中斷程序通過調(diào)用增量PID算法模塊,獲取相關(guān)坐標值進行PID運算,并根據(jù)運算結(jié)構(gòu)判斷當前運動狀態(tài)是否需要進行閉環(huán)修正,再通過步進電機驅(qū)動程序輸出修正后的步進電機驅(qū)動信號。
3 仿真分析
利用Matlab進行上述控制算法的建模:
1)離散誤差值可由系統(tǒng)坐標(axis_position)和物理絕對坐標(abs_position)的差值得到;
2)PID系數(shù)采用二進制對齊值,以便于采用單片機程序?qū)崿F(xiàn),利用移位運算代替浮點運算,從而提高中斷效率;
經(jīng)過多次參數(shù)整定,取Kp=-0.625;Ki=-0.25;Kd=0.25。
仿真輸入為單軸運動位移曲線,從0線性增大到5000,再線性減小為0,過程中分別增加“正向失步”、“正向過沖”、“反向失步”、“反向過沖”4個干擾節(jié)點,為便于觀察,取突變誤差為200step,仿真曲線如下:
圖中,going為理想位置曲線,open loop為加擾后的開環(huán)位置曲線,closed loop為經(jīng)過PID控制的閉環(huán)位置曲線,可以看出,產(chǎn)生擾動后,PID控制能夠逐漸修正誤差,并向理想位置曲線靠攏。
4 結(jié)果分析
通過上述仿真可以看出,引入閉環(huán)控制后,整個運動控制系統(tǒng)具備了自動位置修復能力,當運動位置出現(xiàn)偏差擾動時,能夠?qū)崟r修正位置。由于采用增量PID控制算法,動態(tài)修正效果良好,對于運動曲線能夠平滑修復,正常情況下不會產(chǎn)生突然的跳變。
由于在多軸聯(lián)動過程中進行插補運算對運算器的實時性要求較高,因此可根據(jù)實際情況選擇采用基于運動級別(Motion)或步進級別的PID控制,以兼顧動態(tài)效果和平穩(wěn)性。運動級別控制是指離散誤差值在每個運動過程結(jié)束時計算一次,輸出增量在每個運動過程中進行一次補償;步進級別控制是指離散誤差值在每一個步進動作時進行計算,輸出增量在每個步進過程前后進行補償,其優(yōu)點是實時性修正能力很強,但對運算器的性能要求較高。
此外,為了避免微小誤差頻繁修正造成動態(tài)效果不良,還可增加PID修正量閾值,當修正量小于閾值時,不做修正,或在修正量累積出現(xiàn)一定次數(shù)才產(chǎn)生一次修正。
5 結(jié)論
通過在基于步進電機的3D打印機運動控制系統(tǒng)中引入XY軸光柵反饋裝置,構(gòu)建全閉環(huán)的運動控制系統(tǒng),采用增量式PID控制算法進行運動位置的實時修正,通過仿真可以看出新的系統(tǒng)具備了自動位置修復能力,具有較高的控制精度。通過軟硬件設計已將該方法應用于相關(guān)產(chǎn)品中,收獲了良好的實用效果和市場價值。此外,本方法還可適用于其他具有類似結(jié)構(gòu)的任意三維運動控制系統(tǒng)中,具有較廣范的應用性。
【參考文獻】
[1]崔學文.PVC配混微機控制系統(tǒng)軟件開發(fā)設計[J].河北能源職業(yè)技術(shù)學院學報,2010,10(04):63-65.
[2]周偉,冀捐灶,郭慶,劉栩,王力功.基于IGA的PID控制軟開關(guān)靜止變流器的研究[J].電源技術(shù),2010,34(09):956-959.