袁澤林 方 輝 黃紀剛 張文君 謝志豪
(四川大學制造科學與工程學院,四川 成都 610065)
?
Kossel 3D打印機精度影響因素及微調(diào)方法研究*
袁澤林方輝黃紀剛張文君謝志豪
(四川大學制造科學與工程學院,四川 成都 610065)
Kossel 3D打印機是一種并聯(lián)式開源打印機,具有快速打印、噪音小、能自我復制、擴展性好的優(yōu)點。但是在其裝配和使用過程中,微調(diào)是一個比較困難又對其性能、打印精度影響較大的問題。為解決這一問題,在對Kossel打印機進行結構分析的基礎上,研究了其Arduino控制器Marlin固件的運動參數(shù),分析了該型打印機的精度影響因素,并對打印平臺微調(diào)的調(diào)平方法和調(diào)運動參數(shù)方法進行了分析和實驗驗證,提出了該型打印機微調(diào)方案,為進一步提升打印精度提供了可行的技術支持。
并聯(lián)式3D打印機;Kossel;Marlin;Arduino;調(diào)平;運動參數(shù)
Kossel 3D打印機是一種RepRap 3D打印機[1],其微調(diào)直接關系到打印精度,是該型打印機設計制造中最為關鍵的部分,在機械及軟件部分分別需要調(diào)平[2]和調(diào)運動參數(shù)。調(diào)平采用的方法有手動調(diào)平及自動調(diào)平,自動調(diào)平又包含Z探針調(diào)平、FSR調(diào)平等;而對于調(diào)運動參數(shù)目前尚無明確的方法和步驟,調(diào)整需耗費較長時間。本文旨在通過對打印機的運動進行分析,得出較具體的手動微調(diào)方案,對Kossel打印機的快速構建和精度穩(wěn)定性的提升提供可能的技術支持。
1.1幾何原理分析
Kossel打印機及模型如圖1所示,類似并聯(lián)機床[3],運動部分由滑車、斜桿、打印頭等通過強磁球或魚眼軸承連接,滑車通過電動機——皮帶傳動運動。在打印過程中,Arduino[4]控制電動機轉(zhuǎn)動,使3個滑車A、B、C分別在A塔、B塔、C塔上運動,通過斜桿轉(zhuǎn)化為打印頭的運動;三塔頂端各裝有限位開關,打印前滑車要回到滑塔頂端,滑車頂端的調(diào)平螺絲觸碰開關實現(xiàn)回零。
微調(diào)打印機的目的是讓打印頭與滑車的移動符合上述理論曲線,達到相應的精度,所以微調(diào)除了機械部分的調(diào)平,應主要調(diào)整b、c兩項參數(shù)。
1.2Marlin固件主要參數(shù)
Kossel打印機采用Marlin固件[6]進行控制,其主要配置文件為“Configuration.h”,其中對打印機精準運轉(zhuǎn)起關鍵作用的參數(shù)有以下幾個(如圖4):
DELTA_DIAGONAL_ROD:圖中標注1(c),斜桿兩端球心間距離。
DELTA_SMOOTH_ROD_OFFSET:圖中標注2,打印頭中心到滑塔軸心的水平距離。
DELTA_EFFECTOR_OFFSET:圖中標注3,打印頭中心到斜桿下端球心間水平距離。
DELTA_CARRIAGE_OFFSET:圖中標注4,滑塔軸心到斜桿上端球心間水平距離。
DELTA_RADIUS:圖中標注(b),上述三個參數(shù)相減得到(DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)。
DELTA_PRINTABLE_RADIUS:給定的最大打印半徑(小于熱床半徑,防止打印頭撞到滑塔,未在圖中表示)。
以上參數(shù)皆在打印機回零狀態(tài)下測量,由圖4可知,c=DELTA_DIAGONAL_ROD,b=DELTA_RADIUS,而參數(shù)3、4較參數(shù)2易測量,應精準測量后寫入固件保持不變,于是控制b誤差的關鍵就在于控制參數(shù)2即DELTA_SMOOTH_ROD_OFFSET的誤差。
由于b、c值的測量誤差,造成打印頭在作直線運動時可能發(fā)生兩種偏差,分別定義為移動偏差和路徑偏差。移動偏差是指打印頭實際移動長度與理論不符,可能出現(xiàn)長度縮放現(xiàn)象;路徑偏差是指打印頭實際運動路徑與理論不符,水平運動時形成凹陷或凸起路徑。
2.1移動偏差產(chǎn)生機理及影響因素分析
首先給定最大打印半徑R(小于b和c-b中較小的一個),如圖5,在x∈(-R,R)的范圍內(nèi),研究實際運動曲線與理論曲線的差異?,F(xiàn)采用控制變量法分別研究b、c的誤差對打印頭實際運動產(chǎn)生的影響。
2.1.1b值誤差對打印頭運動的影響
(1)令:c的測量值=c的實際值,若b的測量值(設為b′)>b的實際值,如圖6a,“運動曲線”為機械部分實際運動曲線,“計算曲線”為Marlin固件實際計算產(chǎn)生的曲線。當要求打印長度為x時,Marlin計算后控制滑車移動y′,打印頭實際打印長度(設為x′) > 要求長度,所以可得到結論,當b的測量尺寸偏大時,打印整體尺寸偏大。
(2)令:c的測量值=c的實際值,若b的測量值(設為b″)
綜合以上兩點分析可知,當b的測量尺寸偏小時,打印整體尺寸偏小;當b的測量尺寸偏大時,打印整體尺寸偏大。
2.1.2c值誤差對打印頭運動的影響
(1)令:b的測量值=b的實際值,若c的測量值(設為c′) >c的實際值,如圖6c。與上一小節(jié)分析相同,當c的測量尺寸偏大時,打印整體尺寸偏小。
(2)令:b的測量值=b的實際值,若c的測量值(設為c′) 綜合以上兩點分析可知,當c的測量偏小時,打印整體尺寸偏大;當c的測量偏大時,打印整體尺寸偏小。 2.2路徑偏差的產(chǎn)生機理及影響因素分析 根據(jù)投影的相關原理,在打印機俯視圖中,作一垂直于水平面且與打印頭運動方向重合的平面S,三根斜桿的移動均可按比例折算為在S平面上各投影的移動,而滑車在各自滑塔上的運動則會按1:1的比例投影。為簡化分析,重新做S′平面,使S′平面與斜桿C重合,設打印頭沿CD方向運動,將斜桿A、B投影到S′平面上,如圖7所示。 為分析打印頭路徑偏差,擬在S′平面中采用以下方法進行計算: (1)給定參數(shù)b、c作為機械部分的實際值。 (2)固定參數(shù)c,將參數(shù)b適當增大或減小(或固定參數(shù)b,將參數(shù)c適當增大或減小)作為測量值用于模擬Marlin固件中的計算。具體方法是讓打印頭水平移動一個定值x1,計算此時的左右滑車移動距離y1和y2,這兩個值作為Marlin固件將要控制滑車移動的距離。 (3)將參數(shù)b(或c)還原后用y1值計算此時機械部分的實際水平移動距離x2,并由此得到右側(cè)滑車實際移動距離y3,該值為無控制下為保證打印頭水平運動當左滑車移動y1時右滑車移動的距離,求出y2與y3的差值。 (4)重復多次計算后繪制橫坐標和縱坐標分別為x1和上述差值的曲線圖。若曲線均在橫坐標以下,則打印頭在水平運動時的路徑是凹陷的,反之則是凸起的。 (5)根據(jù)該判斷并結合參數(shù)b、c與實際值差值的大小可得到參數(shù)b、c對路徑偏差的影響。 表1及圖8[7]為給定參數(shù)b=50 mm和c=100 mm時,固定參數(shù)c并將參數(shù)b適當增大后計算得到的數(shù)據(jù)。 經(jīng)大量計算驗證,當參數(shù)b測量值大于實際值或c測量值小于實際值時,曲線均在x軸以下,則打印頭水平移動的路徑為凹陷路徑;當參數(shù)b測量值小于實際值或c測量值大于實際值時,曲線均在x軸以上,則打印頭水平移動的路徑為凸起路徑。 綜合以上分析,在微調(diào)Kossel 3D打印機時,可以根據(jù)打印路徑的凸起和凹陷,對打印尺寸將偏大還是偏小進行預測,通過對參數(shù)b、c進行調(diào)整,能夠有效減小相關運動誤差,提高打印精度。 Kossel的調(diào)平是調(diào)運動參數(shù)的前提,是通過調(diào)整機械部分以保證打印機熱床平面與滑塔A、B、C上的3個限位開關所確定的平面保持平行。目前常用的調(diào)平方法有兩種,下面分別介紹并進行優(yōu)選。 3.1方案介紹 (1)以熱床平面為基準,調(diào)整滑車 表1路徑偏差計算數(shù)據(jù)記錄表 要求水平移動距離x1/mm左側(cè)滑車豎直移動距離y1/mm右側(cè)滑車豎直移動距離y2/mm實際水平移動距離x2/mm右側(cè)滑車豎直移動距離y3/mm差值(y2-y3)/mm1813.31638681-3.27614898618.03778138-3.266962301-0.009186684149.790640481-2.87221638314.03071165-2.866307346-0.005909037106.619826068-2.28651618310.02304067-2.283289141-0.00322704363.763148243-1.5154215786.0145973-1.514169072-0.00125250621.18906067-0.5540087552.005167859-0.553857521-0.000151233-2-1.1273310830.604109286-2.0055247620.604275092-0.000165806-6-3.2059819831.967012579-6.0178523581.968665157-0.001652578-10-5.0630770243.544788561-10.032330743.549931732-0.005143171-14-6.7118532175.349962479-14.04970175.36141288-0.011450401-18-8.1631910957.398092258-18.071076787.419951728-0.021859471 注:規(guī)定在S′平面中x軸向右為正,y軸向下為正。 如圖9a,首先調(diào)整熱床周圍3個調(diào)節(jié)螺絲來使其水平,之后以熱床平面為基準,依次調(diào)節(jié)滑車調(diào)平螺絲,使回零狀態(tài)下的3個滑車上的3個位置相同的點確定的平面(簡稱滑車平面)與熱床平面盡可能保持平行。 該方案的優(yōu)點是,在裝配過程中限位開關的位置不需要精確保證,只需依靠滑車調(diào)平螺絲即可實現(xiàn)調(diào)平;缺點是,當熱床水平度較差時,滑車平面不水平,從而使3根斜桿上端不處于同一水平面,導致整體結構與Marlin固件算法不匹配。當熱床水平度較差時,可能產(chǎn)生較大打印偏差。 (2)以頂部限位開關所在平面為基準,調(diào)整熱床 如圖9b,首先在裝配過程中嚴格保證頂部限位開關的位置,使3個限位開關確定的平面盡可能水平。3個滑車調(diào)平螺絲旋至同一長度并固定,之后將熱床平面調(diào)至與滑車平面平行。 這種方案由于斜桿上端位于同一水平面,避免了方案(1)中打印機結構與Marlin固件算法不匹配的問題,同時避免了調(diào)節(jié)時滑車調(diào)平螺絲長度不易控制的問題;其缺點是對裝配精度要求非常高,其次是運用三點調(diào)平法[8](將于3.2節(jié)中說明)時三點位置不易計算。 3.2實現(xiàn)熱床平面與滑車平面平行的方法——三點調(diào)平法 以上兩種方案的核心都是使熱床平面與滑車平面保持盡可能平行,可用三點調(diào)平法達到該目的。所謂三點調(diào)平法,是將圓形熱床用過原點的直線三等分,建立如圖10示坐標系,其中Z軸過原點垂直于紙面向外。當給定最大打印范圍半徑R時,可在原點到滑塔A、B、C的方向上分別確定一點,在該點上,對應斜桿與滑塔夾角最小。通過將打印頭與這三點接觸來確定三點的Z坐標,進而按方案(1)或(2)調(diào)整,最終使得三點Z坐標相同,完成調(diào)平。 下面使用方案(1)進行具體調(diào)平操作。首先在回零狀態(tài)下測量打印頭至熱床的大約垂直距離為293.6 mm,在Marlin固件中給定測量過的參數(shù)b=106.3 mm,c=216.9 mm,最大打印半徑R=85 mm,設定MANUAL_Z_HOME_POS為294.0 mm(略大于垂直距離測量值是為了讀取打印頭接觸熱床時正確讀數(shù))。計算三點坐標為C(0,85),A(-73.6,-42.5),B(73.6,-42.5)。打開Pronterface軟件,連接打印機,回零,控制Z軸下降至距熱床3mm的位置,然后輸入命令“g1 x0 y85”到達測定位置,在熱床上墊一張A4紙,讓噴頭以0.1 mm的行程往下降,直到A4紙剛好可以抽出且略有阻力,這時候輸入命令“m114”,記下Z值,然后抬高打印頭,再對下一個點進行測量。測得3個點Z值分別為A=1.13 mm,B=0.98 mm,C=1.07 mm。分別調(diào)節(jié)三滑車調(diào)平螺絲直到測得的三點Z值都為1.00 mm,然后將MANUAL_Z_HOME_POS更改為293.0 mm后重新上述測量,發(fā)現(xiàn)三點Z值變?yōu)锳=0.00 mm,B=0.00 mm,C=0.00 mm,此時熱床平面已與滑車平面平行,即調(diào)平完成。歸納來講,當測得的三點Z值不同時,要通過調(diào)節(jié)滑車的調(diào)平螺絲使之變?yōu)橥粋€正值,再將MANUAL_Z_HOME_POS減掉該正值得到新的MANUAL_Z_HOME_POS并寫入固件,即可完成調(diào)平。 對于方案(2),由于熱床調(diào)節(jié)螺絲與A、B、C三點位置不同,需要用調(diào)節(jié)螺絲與熱床中心的連線將熱床均分三份,并求出與最大打印半徑交點的坐標A′、B′、C′進行測量,測量過程大致相同,調(diào)平時通過熱床調(diào)節(jié)螺絲完成調(diào)平。 另有六點調(diào)平法,即采用三點調(diào)平后再用反向的三點進行檢驗是否調(diào)平。 調(diào)整運動參數(shù)是Kossel打印機能實現(xiàn)精確打印的最重要的環(huán)節(jié),是將存在偏差的計算曲線逐步修正到與運動曲線吻合的過程。具體而言,就是將測量得到的參數(shù)b、參數(shù)c不斷修改,使之最終與兩參數(shù)的實際值吻合的過程。 根據(jù)前述Kossel運動偏差分析的相關內(nèi)容可知: (1)當打印路徑為凹陷狀路徑時,打印尺寸偏大,需減小參數(shù)b或增大參數(shù)c。 (2)當打印路徑為凸起狀路徑時,打印尺寸偏小,需減小參數(shù)c或增大參數(shù)b。 在進行具體調(diào)節(jié)過程前首先對斜桿長度(DELTA_DIAGONAL_ROD)進行分析。斜桿結構為中空碳纖維桿兩端各用雙頭螺柱連接一球形螺母,在打印機運行過程中,由于溫度變化不大,碳纖維桿變形較小[9-10],可認為斜桿長度基本不變,測量誤差可控制在±0.1 mm之內(nèi),可近似認為該測量值與實際值吻合。于是微調(diào)的主要參數(shù)則為參數(shù)b。 4.1參數(shù)b的粗略調(diào)整 擬采用打印金字塔立方體試驗(將于4.2節(jié)中說明)對參數(shù)b進行調(diào)整,首先應判斷參數(shù)b的調(diào)節(jié)方向并粗略調(diào)整。此時引入抽紙法,具體做法為在調(diào)平的基礎上,回零操作,熱床上墊一張A4紙,用Pronterface軟件控制Z軸下降至與A4紙接觸且抽動A4紙略有阻力的位置,然后使打印頭沿X軸或Y軸移動,一邊移動一邊抽動A4紙,感覺抽動用力的大小,由此判斷路徑。用力變小則說明打印路徑為凹陷路徑,需減小參數(shù)b;反之則為凸起路徑,需增大參數(shù)b。 針對以上兩種情況,首先應改變參數(shù)b的大小,不斷重復上述操作以平緩路徑的凹陷或凸起程度,直到打印頭移動過程中抽動A4紙的力度不再明顯變化,此時可進行打印金字塔立方體試驗對參數(shù)b進行進一步微調(diào)。 4.2打印金字塔立方體試驗 所謂金字塔立方體試驗,是用打印機打印如圖11所示模型。該模型由4層高度都為10 mm的長方體組成,每層的長寬分別為10×10、20×20、40×40、80×80,也可根據(jù)打印機尺寸具體設定。根據(jù)實際打印得到的模型每層長寬與要求值的差異,對參數(shù)b進行相應調(diào)整從而最終達到目標精度。 表2為對打印機進行調(diào)整時實際打印得到的數(shù)據(jù)。 表2金字塔打印數(shù)據(jù)記錄表 參數(shù)c=216.9mm第一次打印第二次打印第三次打印 實際長度/mm實際寬度/mm實際長度/mm實際寬度/mm實際長度/mm實際寬度/mm10mm×10mm層10.2310.2210.0810.0810.0010.0020mm×20mm層20.5620.5420.1920.1820.0120.0140mm×40mm層41.2741.2340.4440.4240.0340.0380mm×80mm層82.7182.6381.0881.0380.0980.08最大誤差+2.71+2.63+1.08+1.03+0.09+0.08 測量值調(diào)整后 調(diào)整后 參數(shù)b106.3106.0 105.8 對表格最大誤差欄進行分析,可知第三次打印得到的模型誤差最小,故采用參數(shù)b=105.8 mm。再將參數(shù)c分別取值216.8 mm和217 mm各進行一次金字塔立方體的打印,得到的模型最大誤差均出現(xiàn)在80 mm×80 mm層,分別為(實際長度+0.13 mm,實際寬度+0.11 mm)和(實際長度+0.06 mm,實際寬度+0.05 mm),故采用參數(shù)c=217 mm。此時打印誤差在可接受范圍內(nèi),可認為參數(shù)調(diào)整完成,檢驗打印頭在水平方面沿X軸或Y軸的移動應為一條水平線。 另有模型實際長度與實際寬度不相等的問題,原因在于打印機六根斜桿的實際長度不完全相等,而Marlin固件中只能設定一個參數(shù)c的值,由此引起某些斜桿計算曲線與運動曲線不吻合產(chǎn)生不同程度的打印縮放現(xiàn)象造成。此問題只能通過在裝配過程中嚴格保證桿長相等來解決。 針對Kossel打印機構建過程中存在的微調(diào)困難的問題,本文通過建立數(shù)學模型的方法分析了打印機的運動原理、誤差產(chǎn)生機理和影響因素,在此基礎上結合具體實驗對微調(diào)的兩個方面——調(diào)平和調(diào)運動參數(shù)——提出了比較系統(tǒng)的調(diào)整方法。該方法的優(yōu)點是調(diào)節(jié)快速、調(diào)節(jié)目標明確,并具有一定的通用性,對該類型3D打印機的快速構建和精度穩(wěn)定性的提升具有指導意義。 [1]Jones R, Haufe P, Sells E, et al. RepRap - the replicating rapid prototyper.[J]. Robotica, 2011, 29(1):177-191. [2]Antonio Lanzotti, Domenico Maria Del Giudice, Antonio Lepore, et al. On the geometric accuracy of RepRap open-Source three-dimensional printer[J]. Journal of Mechanical Design, 2015, 137. [3]王冰, 彭斌彬. 并聯(lián)機床結構分析[J]. 北華航天工業(yè)學院學報, 2006(5):8-11. [4]蔡睿妍.Arduino的原理及應用[J].電子設計工程, 2012(16):155-157. [5]劉欣靈.3D 打印機及其工作原理[J].網(wǎng)絡與信息,2012(2):30 [6]Parth R. Kantaria1 Shyam. A Pankhaniya. Implementation of 3D Printer[J]. International Journal For Technological Research In Engineering, 2014, 1(9):819-822. [7]來永斌, 陳秀. 運用Excel輔助機械設計[J]. 機床與液壓, 2004(12):179-180. [8]史厚強. 基于三點支承的儀器調(diào)平[C]// 第二屆全國信息獲取與處理學術會議,2004:824-826. [9]彭惠芬, 王程, 王鵬. 溫度對碳纖維增強復合材料力學性能的影響[J]. 承德石油高等??茖W校學報, 2014(3):12-15. [10]張鳳翻,張雯婷.樹脂基復合材料的上限工作溫度[J]. 高科技纖維與應用. 2001(5) (編輯譚弘穎) 如果您想發(fā)表對本文的看法,請將文章編號填入讀者意見調(diào)查表中的相應位置。 Research on influence factors and adjusting method of the accuracy of kossel 3D printer YUAN Zelin, FANG Hui, HUANG Jigang, ZHANG Wenjun, XIE Zhihao (College of Manufacturing Science and Engineering, Sichuan University, Chengdu 610065, CHN) Kossel 3D Printer is a kind of parallel open source printer, has the advantages of fast printing, low noise, self replication, good expansibility. But in the process of assembly and using, adjustment is difficult, which has great influence on its performance and accuracy. Based on the analysis of the structure of Kossel printer, the paper studied the motion parameters of the firmware Marlin of Arduino controller, analyzed the factors of the accuracy of the printer, and carried out the adjustment method and the experimental verification, proposed an adjusting scheme, provided feasible technical support for further improving the printing accuracy. parallel 3D printer; Kossel; Marlin; Arduino; leveling; motion parameters TG659 A 袁澤林,男,1992年生,碩士研究生,研究方向為數(shù)控加工裝備結構設計。 2015-11-10) 160408 *四川省科技支撐計劃(2014GZ0122,2014GZX0001)3 Kossel手動調(diào)平方案優(yōu)選
4 Kossel運動參數(shù)調(diào)整實例
5 結語