丁承君,李 瑤
(河北工業(yè)大學(xué)機械工程學(xué)院,天津300401)
3D 打印技術(shù)[1],又稱快速成型技術(shù),出現(xiàn)在20 世紀(jì)80 年代中期,是一種依據(jù)數(shù)字模型文件,利用液體、粉末、線材等,通過逐層成型的方式來制造三維模型的技術(shù)。隨著3D 打印機在打印精度和打印速度等方面的的不斷完提高,其在醫(yī)學(xué)、工業(yè)、生物等領(lǐng)域都得到了廣泛應(yīng)用[2-3]。
多顏色、多材料的3D 打印技術(shù)是3D 打印未來的主要發(fā)展方向[4],其在教育、工業(yè)制造、藝術(shù)創(chuàng)作和建筑等眾多領(lǐng)域均有著大量的需求。雖然3D 打印經(jīng)過幾十年的發(fā)展,在速度和精度方面得到極大提升,但是大部分工藝只能打印與耗材同樣的顏色,導(dǎo)致模型顏色單一,表現(xiàn)力差,這極大地限制了3D 打印的發(fā)展,Polyjet 和3DP 是目前比較成熟的全彩3D 打印技術(shù),但是一臺設(shè)備往往需要十幾萬甚至幾十萬,高昂的造價,對其推廣起到了很大的限制作用。在諸多工藝中,熔融沉積技術(shù)(FDM)成本低,維護簡單,制造系統(tǒng)可用于辦公環(huán)境,打印耗材清潔,更換容易,可打印多種材料。如果研制出可以打印彩色模型的FDM 3D 打印機,對3D 打印的發(fā)展無疑是有很大幫助的。對此,文獻(xiàn)[5]進行了熔融沉積混色裝置的研究,運用TRIZ 理論對3D 打印混色裝置進行創(chuàng)新設(shè)計,并取得了很好效果。
為了實現(xiàn)FDM 打印彩色模型這一功能,在對原有3D 打印控制策略深入研究的基礎(chǔ)上,提出了一種彩色3D 打印控制方案,通過實驗驗證,該方案可以人為地設(shè)置多種顏色,并且可以很好地保證打印精度與穩(wěn)定性。
該方案主要機械結(jié)構(gòu)采用Hbot 機構(gòu),Hbot 機構(gòu)原理圖,如圖1 所示。此機構(gòu)與十字軸、I3、makerbot 機器結(jié)構(gòu)不同的是x、y軸的運動是兩個電機共同運動所完成的,電機提供的扭矩更加平穩(wěn),因此整個結(jié)構(gòu)的運動比一般結(jié)構(gòu)穩(wěn)定的多,另外此結(jié)構(gòu)在打印工程中,電機是固定不動的,這顯著減輕了運動部分的質(zhì)量,減小了運動部分的慣性,對打印的速度提升起到很大的作用。
圖1 Hbot 機構(gòu)傳動原理示意圖Fig.1 Transmission Schematic Diagram of Hbot Mechanism
Hbot 機構(gòu)兩個電機的運動和擠出頭的運動關(guān)系可以用以下公式表示:
式中:Δs1—M1位移;Δs2—M2位移;Δx—擠出頭方向位移;Δy—擠出頭方向位移。
由(1)可得:
已知、方向的位移可以由(2)計算出M1、M2的位移,以便于控制系統(tǒng)在已知、位移的情況下,對M1、M2的控制。
所提出方案使用三進一出混色擠出頭,擠出頭結(jié)構(gòu)示意圖,如圖2 所示。打印原理為控制三種耗材的擠出比,使三種耗材混合出不同的顏色,從而得到彩色的打印效果。三進一出擠出頭對應(yīng)三個擠出電機,令E0、E1、E2分別代表三個擠出電機,?0、?1、?2分別代表三個擠出電機的擠出比,通過在Gcode 中添加M11指令來控制三個擠出電機的擠出比,具體格式為M11f?0s?1,例如M11f0.5s0.2即表示?0=0.5,?1=0.2,?2=1-0.5-0.2=0.3。
圖2 混色擠出頭Fig.2 Color-Mixing Extruder
此方案中電機均采用步進電機,通過Gcode 設(shè)置三個E 軸擠出比分別為?0、?1、?2,且?0+?1+?2=1,此處三擠出比相加為1,是為了確保三個擠出電機的總擠出量和使用單擠出電機時擠出量相等。若擠出頭為單進單出擠出頭時,E軸步進數(shù)為Steps_E,則:
式中:Steps_E0、Steps_E1、Steps_E2-E0、E1、E2-所需步進步數(shù)。
令x、y、z方 向 所 需 步 進 步 數(shù) 分 別 為Steps_X、Steps_Y、Steps_Z。由Gcode 可以確定Steps_X、Steps_Y、Steps_Z、Steps_E0、Steps_E1、Steps_E2。
令Steps_M1、Steps_M2為電機M1、M2所需步進的步數(shù),由式(2)得:
對Steps_M1、Steps_M2、Steps_Z、Steps_E0、Steps_E1、Steps_E26 個步進數(shù)共同進行Bresenham 算法插補即可在保證位置和擠出量正確的前提下構(gòu)建出彩色模型。
在圖形算法界,直線生成已經(jīng)出現(xiàn)了許多有效算法。其中Bresenham 直線算法[6]是最經(jīng)典的算法之一,其優(yōu)點在于不需要進行小數(shù)和取整運算,只需要整數(shù)加法和乘法運算即可。
圖3 Bresenham 直線算法示意圖Fig.3 Schematic Diagram of Bresenham Linear Algorithm
以第一象限,直線斜率0<k<1 為例,如圖3 所示。若插補起點為ps(x0,y0),終點為pe(x1,y1),令Δx=x1-x0,Δy=y1-y0,易得Δx>Δy,插補過程如下:
(1)i=0,Ci=2Δy-Δx。
(2)xi+1=xi+1。
(3)若Ci≥0,yi+1=yi+1,Ci+1=Ci+2(Δy+Δx);
若Ci<0,yi+1=yi,Ci+1=Ci+2Δy。
(4)i=i+1,若i=Δx插補結(jié)束;否則轉(zhuǎn)至步驟(2)。
式中:Ci—判斷如何插補的變量。對于Δx≤Δy的情況,交換公式中x、y的位置即可,可以看出對于坐標(biāo)變化大的方向每次都前進一個單位。
以XY平面為例,對應(yīng)電機為M1、M2。令步進電機脈沖當(dāng)量為step0,其相當(dāng)于圖3 中的柵格邊長,這樣就可以把打印機工作區(qū)域以step0為最小單元進行柵格化,坐標(biāo)的變化對應(yīng)電機脈沖的變化,這樣Bresenham 算法就可以和步進電機的控制對應(yīng)起來。若打印軌跡為從Ps到Pe,由以上分析可知,需步進步數(shù)最大的電機每次插補都會步進一個step0,定義步進步數(shù)最大的電機為基準(zhǔn)電機,其所需步進步數(shù)為step_max。由式(4)知steps_M1>steps_M2,則M1為基準(zhǔn)電機,插補過程如下:
(2)向基準(zhǔn)電機輸出一個脈沖。
(4)Steps_C=Steps_C+1,i=i+1,若Steps_C等于Steps_max,插補完成;否則,轉(zhuǎn)至(2)。
Steps_C—基準(zhǔn)電機所完成步進數(shù)。
若Steps_M1≤Steps_M2,交換Steps_M1、Steps_M2位置即可,因為提出的方案中包含6 個電機,具體實現(xiàn)為先找到基準(zhǔn)電機,即六個電機中步進步數(shù)最大的電機,計算出Steps_max,再令Steps_max與Steps_M1、Steps_M2、Steps_Z、Steps_E0、Steps_E1、Steps_E2分 別進行Bresenham 直線插補,當(dāng)Steps_C=Steps_max 時,插補完成。
為簡要說明,記上述XY平面插補步驟中步驟(3)為M2針對基準(zhǔn)電機的一個Bresenham 插補單元,令CM1,i、CM2,i、CZ,i、CE0,i、CE1,i,CE2,i分別為判斷電機M1、M2、Z、E0、E1、E2如何插補的變量,其初始化、更新與上述插補算法相同,則6 個電機插補流程圖,如圖4 所示。如果基準(zhǔn)電機與基準(zhǔn)電機執(zhí)行Bresenham 插補,易得其每次都步進一個單位,所以圖4 插補流程與上述原理是等價的。
圖4 插補流程圖Fig.4 Interpolation Flow Chart
在3D 打印工作過程中,為了保證執(zhí)行機構(gòu)良好的運動精度和較高的打印速度,需要對每個運動軸進行加減速控制,如果加減速控制不好,可能會造成步進電機失步、超步,機械機構(gòu)產(chǎn)生振動,從而對加工精度造成影響,對機器也會造成很大損傷[7]。
步進電機加減速主要分為梯型加減速,指數(shù)型加減速,S 型加減速[8-9]。其中,梯型加減速與指數(shù)型加減速會引起加速度的突變,造成柔性沖擊,降低成型件的成型質(zhì)量與機械系統(tǒng)的使用壽命,S 型加減速可以很好地解決加速度突變的問題,但是其計算復(fù)雜,較難滿足快速成型系統(tǒng)實時性要求。為解決上述問題,相關(guān)學(xué)者提出三次多項式型加減速模型[10],其在加速或減速的起始和終止點加速度沒有突變,速度變化平穩(wěn),可以有效減小機械的振動,且數(shù)學(xué)模型簡單,可以很好地滿足快速成型系統(tǒng)的實時性要求?;谝陨纤?,采用三次多項式型加減速為數(shù)學(xué)模型與Bresenham 插補相結(jié)合對速度進行調(diào)控。
三次多項式的速度數(shù)學(xué)模型如下:
式中:t—時間;a1,a2,a3,a4—待定參數(shù),求式(5)積分得位移s(t),求導(dǎo)得加速度a(t),其數(shù)學(xué)模型如下:
假設(shè)初始速度與終止速度分別為V1,V2,加減速終止時間為tf?,F(xiàn)以加速過程進行闡述,即V1<V2,將加速過程平移,使起始時間t=0,令整體系統(tǒng)最大加速度為Amax,Amax具體值需要根據(jù)系統(tǒng)整體性能來確定。令:
式中:A(t)—二次多項式,其極值點在關(guān)于對稱,得由式(7)求解各參數(shù)代處取到,A(t)變化入式(5)、式(6)可得:
由式(10)可得三次多項式加減速的速度與加速度圖像如圖5 所示,可以看出在加速的過程中系統(tǒng)加速度無突變,因此系統(tǒng)運動具有較高的柔性。若V1>V2,易得將Amax換為(-Amax)即可。將每個Gcode 指令規(guī)劃為一個運動單元,令vi、vf、vo分別為該運動單元的起始速度、Gcode 設(shè)定的加工速度和終止速度。若vi與vf,vo與vf兩者有一項不相等就需要進行加減速控制。下面以兩者均不相等且vi<vf,vf>vo這種情況來對調(diào)速流程進行說明。將速度調(diào)控過程分為一個加速過程、一個勻速過程和一個減速過程。速度與加速度示意圖,如圖6 所示。其中,0-t1段為加速段,t1-t2段為勻速段,t2-t3段為減速段,顯然0-t1段與t2-t3段具體的運動函數(shù)模型是不同的,令0-t1段與t2-t3段速度函數(shù)表達(dá)式分別為va(t)、vd(t),兩者均以時間零點為起始點,在實際計算時只需要將t做簡單平移即可。由于Bresenham 插補屬于脈沖增量插補,因此將Steps_C作為判斷速度調(diào)控進行到哪一階段的依據(jù)。由于加減速控制實際是利用處理器發(fā)出的脈沖頻率模擬速度的變化情況,該方案對電機的每一次插補控制都在一個定時中斷的中斷函數(shù)內(nèi)進行,所以對速度的調(diào)控需要控制的實際是定時器的中斷時長。根據(jù)Bresenham 插補原理,非基準(zhǔn)電機的速度存在以下關(guān)系:
圖5 三次多項式型加減速Fig.5 Cubic Polynomial Acc/Dec
圖6 運動單元加減速Fig.6 Acc/Dec of Movement Unit
式中:vj—非基準(zhǔn)電機速度;
vmax—基準(zhǔn)電機速度;
Stepsj—非基準(zhǔn)電機該運動單元的步數(shù);
Steps_max—基準(zhǔn)電機在該運動單元的步數(shù)。
由此可以看出非基準(zhǔn)電機的速度變化同樣遵循三次多項式模型。因此,通過對具有最大步進步數(shù)的基準(zhǔn)電機進行三次多項式加減速,其余電機在中斷函數(shù)中根據(jù)Bresenham 直線算法進
行插補即可實現(xiàn)所有電機的三次多項式加減速。
綜上,運動單元速度調(diào)控具體過程為,第一步,根據(jù)式(8)與勻速運動位移和速度的數(shù)學(xué)關(guān)系,計算出基準(zhǔn)電機加速、勻速、減速三個階段走完時所走總步數(shù)steps_i、steps_f、steps_o;第二步,完成步數(shù)Steps_C與steps_i、steps_f、steps_o比較,判斷此時處于該運動單元的哪一階段或是否進入下一運動單元。第三步,每進行一次中斷,速度根據(jù)在三個階段中的哪一階段進行相應(yīng)變化,然后根據(jù)速度計算出定時器中斷時長,設(shè)置定時器中斷時長。該運動單元速度調(diào)控流程圖,如圖7 所示。其中,ta,td分別為加速與減速所用時間,兩者均從零開始計數(shù),Vl為速度調(diào)控時的基準(zhǔn)電機速度。
圖7 速度調(diào)控流程圖Fig.7 Speed Regulation Flow Chart
根據(jù)提出控制方案搭建樣機,如圖8 所示。使用自行開發(fā)的Gcode 修改軟件修改原始Gcode,在其中加入色彩信息,耗材1、耗材2、耗材3 分別采用黃、紅、藍(lán)三種顏色PLA 耗材,進行過渡色和多色打印的實驗,驗證本彩色3D 打印控制方案的可行性。
圖8 樣機Fig.8 Prototype
使用Simplify3D 切片軟件對模型進行切片處理,設(shè)置高度從0.00mm 到175.00mm,?0保持0.50 不變,?1從0.50 線性變化到0.00,高度從175.00 到350.00mm,?0從0.50 線性變化到0.00,?1從0.00 線性變化到0.50。色彩的過渡效果應(yīng)該為橙色-綠色-紫色。模型圖和打印效果圖,如圖9 所示。由圖9(b)可以看出色彩過渡十分自然。
圖9 過渡色打印實驗Fig.9 Transition Color Printing Experiment
在切片軟件中設(shè)置雙擠出頭模式,然后使擠出頭1 對應(yīng)?0=0.50,?1=0.50,?2=0.00,耗材混合顏色為橙色,擠出頭2 對應(yīng)?0=0.50,?1=0.00,?2=0.50,耗材混合顏色為綠色。模型圖和打印效果圖,如圖10 所示。上述實驗?zāi)P痛蛴【容^高,表面光滑,而且打印時間均超過40h,可以看出,本方案可以較好地實現(xiàn)過渡色和多色打印的任務(wù),并且可以保證很好的穩(wěn)定性。
圖10 多色打印實驗Fig.10 Multicolor Printing Experiment
彩色FDM 3D 打印是對FDM 工藝的一個極大豐富,在學(xué)習(xí)現(xiàn)有FDM 3D 打印控制策略的基礎(chǔ)上,以Hbot 結(jié)構(gòu)為主要機械結(jié)構(gòu),將Bresenham 直線算法與三次多項式型加減速算法相結(jié)合,實現(xiàn)了彩色3D 打印。通過打印實驗驗證了該控制方案可以較好地實現(xiàn)彩色3D 打印且具有很高穩(wěn)定性,因此該控制方案對彩色FDM 3D 打印具有一定的參考價值。