饶勇建 付国强 陶 春 高宏力 邓小雷
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五轴仿真试验,结果验证了该后置处理方法的正确性与通用性。