饒勇建 付國強 陶 春 高宏力 鄧小雷
1. 西南交通大學機械工程學院,成都,610031 2. 浙江大學流體動力與機電系統國家重點實驗室,杭州,310027 3. 西南交通大學先進驅動節能技術教育部工程研究中心,成都,610031 4. 衢州學院浙江省空氣動力裝備技術重點實驗室,衢州,324000
3D打印中常用的熔融沉積成形(fused deposition molding,FDM)打印技術為三軸打印,打印過程中打印頭相對于工件的姿態固定不變,從而導致許多不足之處,如打印曲面有階梯效應、打印懸垂結構需要支撐、表面質量低、力學性能差、二次加工易干涉等。為了解決這些問題,許多研究者將五軸加工技術引入3D打印中,形成了五軸3D打印[1-2]。WU等[3]將五軸3D打印用于模型的線框打印,提出了一種避免打印干涉的算法,極大地提高了打印速度與質量。WU等[4]在五軸3D打印機上加入了視覺反饋模塊以提高打印質量。ISA等[5]針對五軸3D打印提出了一種考慮工件表面輪廓的打印路徑規劃算法。
后置處理是將工件坐標系中打印頭的位姿信息,根據運動學模型和一定的數控指令格式,轉換為用于加工的數控代碼,它連接了CAM系統和CNC系統,是數控加工中的關鍵技術。許多后置處理的研究在建立運動學模型時,采用基于多體系統的齊次變換矩陣或是D-H矩陣。這就需要為每個軸建立局部坐標系、位置變換矩陣、運動變換矩陣,建模過程較為冗長繁瑣。而指數積理論不僅能清晰地表示旋轉與平移運動,而且建模時只需要一個全局坐標系。FU等[6]應用指數積理論進行五軸機床的幾何誤差建模。XIANG等[7]利用指數積理論建立了五軸機床的正逆向運動學模型。
LEE等[8]采用齊次矩陣處理運動學,得出了三大類型五軸數控機床的后置處理算法。SHE等[9]基于齊次矩陣法獲得了非正交五軸機床的后置求解算法。JUNG等[10]研究了適用于正交與非正交五軸機床的后置算法,并針對五軸數控機床旋轉刀具中心點RTCP跟隨功能展開了相應的研究。TANG[11]研究了非正交BC雙轉臺五軸機床的后置算法,并利用VERICUT軟件進行了加工仿真。SON等[12]針對旋轉軸不正交的刀具雙擺頭型五軸機床建立了其后置處理器。TANG等[13]針對旋轉軸角度有雙限位的刀具雙擺頭型五軸機床建立了后置處理器,提出了進行旋轉軸角度優化的算法。HUANG等[14]結合誤差建模,建立了五軸機床的有幾何誤差補償的后置處理器。
然而,上述研究在進行五軸后處理時雖然考慮了兩旋轉軸的相對位置,卻忽略了各軸和工件在機床坐標系中的位置,不能生成各軸相對于零位的實際運動量,因此后置處理器在五軸機床RTCP跟隨功能的幫助下才能正常工作。RTCP跟隨功能可以在數控系統控制點和刀尖點不重合的情況下,補償旋轉軸轉動造成的平動軸坐標偏移,使得數控編程可只針對刀尖點,而不必考慮控制點與刀尖點的位置關系(即旋轉軸、工件、刀具間的位置關系)。但目前3D打印機上應用的數控系統一般都沒有RTCP跟隨功能。此外,五軸的結構類型較多,不同結構類型的運動學模型與逆運動學均有所不同,因此本文提出的一種五軸3D打印的通用后置處理仍是有價值的。
根據各軸間的串聯關系,可將五軸3D打印機的五軸結構表示出來。例如一種工作臺雙回轉的五軸3D打印機表示為WBAYFZXT,代表兩旋轉軸均在工件一側,A軸為定軸、B軸為動軸。其中W表示工件,T表示打印頭,X、Y、Z為線性軸,F為打印機機架。圖1為AB雙轉臺五軸3D打印機的示意圖,其五軸結構為工作臺雙回轉型。圖2所示為五軸3D打印機的運動鏈與結構參數,其中機架坐標系為MCS,工件坐標系為WCS。OA和OB是A、B軸軸線與兩軸線公垂線的交點,OP是打印機處于零位時打印頭的位置。裝上打印頭并回零各軸后,移動打印頭到達A軸、B軸、工件坐標系原點獲得結構參數VA、VB、VW,分別表示了A軸、B軸、工件相對于打印頭的位置,具體為
(1)
圖1 AB雙轉臺五軸3D打印機Fig.1 Five-axis 3D printer of type table-tilting
圖2 打印機運動鏈Fig.2 Printer kinematic chain
打印機的結構參數反映了旋轉軸、工件、打印頭之間的位置關系,在運動學建模時引入結構參數,逆運動學求解得出的是平動軸的實際運動量,可以不借助于RTCP生成能直接用于加工的NC代碼。
1.2.1指數積理論
指數積理論用旋量來描述剛體運動(即繞某軸的旋轉與沿某軸的平移),用旋量的指數矩陣來表示運動的坐標變換。旋量ξ可表示為一個六維向量
ξ=(ωT,vT)T=(ω1,ω2,ω3,v1,v2,v3)T
(2)
(3)
指數積即不同旋量的指數矩陣之積。指數積公式可以獲得開式運動鏈的正向運動學變換模型。具體公式如下
(4)
式中,1,2,…,n表示從運動鏈起點到末端各運動副的序號。
1.2.2正向運動學模型
五軸3D打印的正向運動學即在給出數控加工代碼時計算出打印頭相對于工件的位姿。
首先,建立各軸運動的單位旋量。X、Y、Z軸均為平動軸,其單位旋量分別為
ξX=(0, 0, 0, 1, 0, 0)T
(5)
ξY=(0, 0, 0, 0, 1, 0)T
(6)
ξZ=(0, 0, 0, 0, 0, 1)T
(7)
A、B軸是旋轉軸,A軸軸線單位方向矢量ωA=(1, 0, 0)T,軸線位置矢量rA=VA-VW;B軸軸線單位方向矢量ωB=(0, 1, 0)T,軸線位置矢量rB=VB-VW。則A、B軸旋轉運動的單位旋量ξA、ξB為
ξA=(1, 0, 0, 0,zA-zW, -(yA-yW))T
(8)
ξB=(0, 1, 0, -(zB-zW), 0,xB-xW)T
(9)
其次,獲得各軸旋量的運動量。通過指數積理論建立運動學模型需要一個全局坐標系,選擇工件坐標系WCS作為全局坐標系。設X、Y、Z軸實際位移量為x、y、z,A、B軸實際旋轉角度為α和β。由于各平動軸的零位定義在機架坐標系MCS中,故由式(1)與圖2可知,各平動軸在工件坐標系WCS中的運動坐標分別為x-xW、y-yW、z-zW。此外,按照數控系統的規定,工件側運動軸的正方向與常規方向相反。并且,工件側運動軸運動傳遞方向為機架向工作臺,但運用指數積公式時,全局坐標系是工件坐標系WCS而不是機架坐標系MCS。所以,工件側運動軸旋量的運動量需要加兩次負號,即B軸、A軸、Y軸的運動量分別為-(-β)、-(-α)、-(-(y-yW))。
再次,由式(3)求出各軸旋量的指數矩陣,例如X、A軸旋量的指數矩陣分別為
(10)
(11)
最后,根據指數積公式建立AB雙轉臺五軸3D打印正向運動學方程。由式(4)可得AB雙轉臺五軸3D打印機中打印頭相對于工件的齊次變換矩陣:
(12)
設工件坐標系WCS中打印頭位置矢量為WP,軸矢量為WO。于是,打印頭的位置與姿態表示為
(13)
將式(5)~式(9)、式(12)代入式(13)后,可得AB雙轉臺五軸3D打印的正向運動學方程:
(14)
(15)
后置處理將刀位文件轉換為數控代碼,需要對每一個刀位求解出各軸的實際運動量,這就需要對獲得的五軸3D打印運動學模型進行逆運動學求解。
2.1.1旋轉軸角度求解
式(15)給出了打印頭姿態與兩旋轉軸角度間的關系,由于三角函數的周期性,通常情況下旋轉軸的旋轉角度會存在兩組解。
首先,忽略三角函數周期性與旋轉軸行程范圍,A、B軸旋轉角度的一組值α0、β0可根據式(15)計算出來:
當zO=0、xO=0時,α0=±π/2,β0為任意值;當zO=0、xO≠0時,α0=arcsin(-yO),β0=±π/2;當zO≠0時,α0=arcsin(-yO),β0=arctan(xO/yO)。
其次,通過考慮三角函數周期性與旋轉軸行程范圍來確定旋轉軸角度的雙解。根據具體WBAYFZXT型五軸3D打印機的結構,α的行程范圍是[-π/2,π/2],β的行程范圍是[-π,π]。反三角函數的值域與A、B旋轉軸的行程如表1所示。由于α的行程范圍與反正弦函數的值域一致,故α的值不存在多解。對于B軸,β范圍在[-π,π]時正切函數如圖3所示,由此可將β的行程范圍分為4個區域,β的雙解如表2所示。
表1 反三角函數值域及旋轉軸行程
圖3 β的雙解及分布Fig.3 The double solutions and distribution of β
表2 B軸旋轉角度解
綜合以上,AB雙轉臺五軸3D打印機旋轉軸角度α和β的雙解可表示如下:
若zO=0,當xO=0時,α=±π/2,β為任意值;當xO≠0時,α=arcsin(-yO),β=±π/2。
若zO≠0,β0=arctan(xO/zO),當β0≥0時,α=arcsin(-yO),β1=β0-π,β2=β0;當β0<0時,α=arcsin(-yO),β1=β0,β2=β0+π。
2.1.2真實角度的計算
某些結構五軸3D打印機中的旋轉軸角度為2nπ,即旋轉軸行程無限制。但旋轉軸角度求解出的范圍是[0,2π],這樣當刀位文件中相鄰兩個打印頭姿態有較大變化時,可能使該軸旋轉角度大于π,有發生打印頭與工件干涉的危險,并且會影響打印效率。所以需要保證無限行程的旋轉軸在相鄰兩個打印姿態間旋轉角度不超過π。
圖4 真實角度的計算Fig.4 Calculation of the real angle
此處以WCALLLLT五軸3D打印機中的C軸為例,計算其真實角度,其中L表示線性軸和打印機架。圖4表明了C軸旋轉角度解θ和上一條數控指令中C軸旋轉角度θp的關系。通過在解θ的基礎上加2π的整數倍以及最小旋轉角度的原則,可以得出C軸的真實角度θr與求解所得角度θ及上一條指令旋轉角度θp的關系如下:
θr=2πn+θ
如果旋轉軸行程無限制,則求出的兩個角度解均需要求出各自對應的真實角度,再進行之后的雙解選擇。
從運動學角度分析,求解出的兩組角度解都能使打印頭實現預期位姿,但兩組解在打印效率、質量等方面會存在不同。此外,每一次的旋轉軸雙解選擇都會影響之后的旋轉軸角度,所以需要綜合考慮整個打印路徑與打印質量等因素。由于相鄰刀位點間旋轉軸角度大幅轉動容易造成干涉,影響打印質量甚至造成打印失敗,故此處采用最短旋轉角度路徑為雙解選擇原則。
設上一條加工代碼旋轉軸角度為(αp,βp),當前求得的角度解為(α,β),則旋轉角度的路徑可表示為|αp-α|+|βp-β|。雙解選擇的原則就是選擇旋轉角度路徑最短的一組解,即在兩組解中尋求min(|αp-α|+|βp-β|)。在第一個刀位點時有兩種方法,一是任意選擇一組角度解,二是將(0,0)作為基準來求最短角度路徑。按照這個原則可以依次選擇出所有刀位點對應的旋轉軸角度解。
式(14)給出了打印頭位置與各軸實際運動量間的關系,將旋轉軸角度代入式(14),即可解出三平動軸實際位移量:
x=xB-(zP+zW-zB)sinβ+(xP+xW-xB)cosβy=yA+(zB-zA)sinα+(yP+yW-yA)cosα+ (zP+zW-zB)sinαcosβ+(xP+xW-xB)sinαsinβz=zA-(yP+yW-yA)sinα+(zB-zA)cosα+ (zP+zW-zB)cosαcosβ+(xP+xW-xB)cosαsinβ
由于在運動學建模時已經考慮了兩旋轉軸及工件相對于打印頭的位置(即打印機的結構參數),故此處獲得的運動軸位移量包含了對旋轉軸轉動導致的平動軸坐標偏移的補償,是平動軸相對于其零位的真實位移,可直接用于平動軸的電機控制。
其他結構的五軸3D打印機也可采用第1節中的方法建立其正向運動學模型,并基于此求得逆運動學模型。
3.1.1AC雙轉臺
圖5所示為一種AC雙轉臺五軸3D打印機,按照2.1節的方法可求得其旋轉軸角度的雙解:
若yO=0,當xO=0時,α=0,γ為任意值;當xO≠0時,α1=sgnxOarccoszO,γ1=π/2,α2=-sgnxOarccoszO,γ2=3π/2。
若yO≠0,γ0=arctan(-xO/yO),當γ0>0時,α1=sgnxOarccoszO,γ1=γ0,α2=-sgnxO·arccoszO,γ2=γ0+π;當γ0<0時,α1=sgnxO· arccoszO,γ1=γ0+π,α2=-sgnxOarccoszO,γ2=γ0+2π;當γ0=0時,α1=-sgnyOarccoszO,γ1=0,α2=sgnyOarccoszO,γ2=π。
其中,γ為C軸的旋轉角度。C軸真實角度的求解和旋轉軸雙解的選擇同3.1節、3.2節。旋轉軸角度選擇后由建立的運動學模型解方程組可得平動軸位移:
x=(yP+yW-yC)sinγ+(xP+xW-xC)cosγ+xCy=-(xP+xW-xC)cosαsinγ+(yP+yW-yC)· cosαcosγ+(zP+zW-zA)sinα+(yC-yA)cosα+yAz=(xP+xW-xC)sinαsinγ-(yP+yW-yC)sinαcosγ- (yC-yA)sinα+(zP+zW-zA)cosα+zA
VC=(xC,yC,zC)T
式中,結構參數VC表示C軸相對于打印頭的位置。
圖5 AC雙轉臺五軸3D打印機[2]Fig.5 Five-axis 3D printer of type AC table-tilting[2]
3.1.2AB雙擺頭
考慮三角函數周期性與旋轉軸的行程后,可獲得AB雙擺頭型打印機旋轉軸角度雙解:
若zO=0,當yO=0時,α為任意值,β=±π/2;當yO≠0時,α=π/2或-π/2,β=arcsinxO。
若zO≠0,α0=arctan(-yO/zO),當α0≥0時,α1=α0-π,β1=arcsinxO,α2=α0,β2=arcsinxO;當α0<0時,α1=α0,β1=arcsinxO,α2=α0+π,β2=arcsinxO。
根據第2節提出的方法先對兩組解進行其真實角度的計算,再按照最短角度路徑的原則選擇一組解。由AB雙擺頭的運動學模型與選擇的旋轉軸角度(α,β)即可求出平動軸位移:
3.1.3B擺頭C轉臺
同樣地,可求出B擺頭C轉臺型打印機旋轉軸角度雙解:
若xO=0,當yO=0時,β=0,γ為任意值;當yO≠0時,β1=sgnyOarccoszO,γ1=π/2,β2=-sgnyOarccoszO,γ2=3π/2。
若xO≠0,γ0=arctan(yO/xO),當γ0>0時,β1=sgnyOarccoszO,γ1=γ0,β2=-sgnyO·arccoszO,γ2=γ0+π;當γ0<0時,β1=sgnyO·arccoszO,γ1=γ0+π,β2=-sgnyOarccoszO,γ2=γ0+2π;當γ0=0時,β1=sgnxOarccoszO,γ1=0,β2=-sgnxOarccoszO,γ2=π。
由最終選擇的一組旋轉軸角度解得出平動軸位移:
3.1.4旋轉軸角度求解討論
值得注意的是,由于X、Y、Z軸均為平動軸,其位置與順序不會影響打印頭姿態與旋轉軸角度間的關系,只要旋轉軸的位置與順序相同,那么其角度求解也是相同的,即WCBLLLLT、WCLLLLBT、WLLLLCBT型的角度求解與B擺頭C轉臺型相同,WCALLLLT、WCLLLLAT、WLLLLCAT型的角度求解與AC雙轉臺型相同,WABLLLLT、WALLLLBT、WLLLLABT型角度求解與AB雙擺頭型相同,WBALLLLT、WBLLLLAT、WLLLLBAT型角度求解與AB雙轉臺型相同。
五軸3D打印機的后置處理依賴于旋轉軸角度與平動軸位移的計算。由后置處理將刀位文件轉換為用于打印的數控代碼流程如下:①獲得對應五軸3D打印機的結構參數,即初始狀態下旋轉軸和工件相對于打印頭的位置;②逐條讀取刀位文件中的刀位數據,根據打印頭姿態計算出旋轉角度雙解,若某旋轉軸可無限旋轉,則計算其對應的真實角度;③以最短旋轉角度路徑原則選擇一組角度解;④由選擇的旋轉軸角度、打印頭位置計算平動軸位移量;⑤根據計算出的各軸運動量生成當前刀位點的數控指令;⑥讀取下一條刀位數據并重復該流程。五軸3D打印通用后置處理的流程如圖6所示。
圖6 五軸3D打印通用后置處理Fig.6 5-axis 3D printing universal post-processing
由于獲得的旋轉軸角度與平動軸位移量均是相對于各軸零位的真實運動量,故生成的數控指令可直接用于五軸3D打印,不需要再借助于RTCP跟隨功能對旋轉軸導致的平動軸偏移進行補償。
4.1.1 AB雙轉臺五軸3D打印試驗
試驗用打印機為圖1所示結構,其結構參數為VA=(0,30,-12)Tmm,VB=(50,0,-12)Tmm,VW=(0,0,0)Tmm。針對某自由曲面的打印,在UG軟件中數控編程后獲得刀位文件,采用提出的五軸3D打印后置處理方法生成數控打印代碼。圖7a所示為規劃的打印路徑,圖7b所示為工件模型,圖7c所示為后置處理得到的部分數控代碼(其中E是送料電機的擠出量),圖7d所示為打印成品。雖然打印精度不是很高,但比較圖7a和圖7d可以發現其表面紋理是一致的。試驗結果表明提出的五軸3D打印后置處理方法是正確的。
(a) 自由曲面打印路徑
(b) 自由曲面模型
(c) 后置處理得到的打印代碼
(d) 打印成品
4.1.2AC雙轉臺五軸數控加工試驗
圖8所示為SmartCNC500_DRTD五軸加工中心,是AC雙轉臺的五軸結構。在進行加工試驗時裝上工件后測得的結構參數為
VA=(0,105.9232,-237.154)Tmm
VC=(244.5247,105.9248,0)Tmm
VW=(244.7576,55.3002,-153.3136)Tmm
圖8 SmartCNC500_DRTD五軸加工中心Fig.8 SmartCNC500_DRTD 5-axis machining center
設定一個由自由曲面組成的鼠標工件進行加工試驗,工件尺寸為98 mm×70 mm×14 mm,圖9所示為由提出的通用后置處理方法生成的數控代碼。將機床的RTCP跟隨功能關閉后進行加工試驗。加工過程、加工結果及加工表面紋理如圖10所示。加工成功表明了后置處理方法的正確性與通用性。
圖9 通用后置處理方法生成的代碼Fig.9 Code generated by the universal post-processing method
圖10 鼠標表面加工試驗Fig.10 Mouse surface machining test
為了驗證提出的后置處理方法的通用性,在數控加工仿真軟件VERICUT中用不同結構的五軸機床進行仿真試驗。選擇了AC雙轉臺、AB雙擺頭、B擺頭C轉臺3種類型的五軸機床,將UG生成的刀位文件經后置處理方法轉換為數控代碼后,在VERICUT中進行仿真加工。由圖11~圖13可以看出,加工結果與預期相同。這表明提出的五軸3D打印通用后置處理能應用于不同的五軸結構,具有通用性。
(a) 加工路徑
(b) AC雙轉臺五軸機床
(c) 加工仿真結果
(d) 表面紋理1
(e) 表面紋理2
(a) 加工路徑
(b) AB雙擺頭五軸機床
(c) 加工仿真結果
(d) 表面紋理1
(e) 表面紋理2
(a) 加工路徑
(b) B擺頭C轉臺 五軸機床
(c) 加工仿真結果
(d) 表面紋理1
(e) 表面紋理2
(1)本文以AB雙轉臺五軸3D打印機為例,建立其正向、逆向運動學模型。首先引入打印機的結構參數,采用指數積理論建立打印機運動學模型;其次通過考慮三角函數周期性與旋轉軸行程求出旋轉軸角度雙解的表達式,并與上一個旋轉軸角度比較,求出無限旋轉軸的真實角度;再次采用最短旋轉角度路徑作為雙解選擇原則,求解出各平動軸位移量。
(2)獲得不同結構類型的五軸3D打印機逆向運動學結果,并提出了五軸3D打印通用后置處理方法,該方法可在無RTCP跟隨功能下生成能直接用于加工的數控代碼。
(3)基于所提出的通用后置處理方法分別進行了五軸3D打印試驗、五軸數控加工試驗和VERICUT五軸仿真試驗,結果驗證了該后置處理方法的正確性與通用性。