王艷紅,喻偉男,李 冬,崔 悅
(1.沈陽工業(yè)大學人工智能學院,沈陽 110870;2.東軟醫(yī)療系統(tǒng)股份有限公司,沈陽 110167)
五軸聯(lián)動數(shù)控機床由刀具和工件的相對運動完成切削動作,適用于加工復雜且高精度的曲面,被廣泛應用于裝備制造、航空、航天等領域[1]。由于機床在加工過程中需要采用大量的離散直線段逼近工件的輪廓曲線[2],加之其旋轉軸的運動,會造成線性插補與非線性運動之間的不一致而產(chǎn)生非線性誤差[3],從而影響到數(shù)控機床的加工精度,因而需要進行有效的補償和控制。
吳大中等[4]認為非線性誤差最大值點位于插補中點處,并根據(jù)非線性誤差最大值與誤差許用值的大小,確定是否在中點處插入新的刀位數(shù)據(jù)點。該方法需要進行多次判斷和選擇,算法較為繁瑣和耗時。梁全等[5]利用數(shù)控系統(tǒng)的RTCP(以刀具旋轉中心)和RPCP(以工件旋轉中心)功能,根據(jù)數(shù)控機床類型推導出五軸數(shù)控機床的數(shù)學模型,并將其應用到五軸數(shù)控系統(tǒng)上進行位移的補償。章永年等[6]利用RTCP編程算法與插補相結合的方式,以減小非線性誤差。CUI等[7]通過將刀具刀軸矢量控制在允許的范圍內,進而減小非線性誤差。該方法優(yōu)化了數(shù)據(jù)軌跡,但需要將刀具的最大偏差控制在一定的范圍內。
上述研究大多是針對數(shù)控機床的特定類型或特殊的編程方式進行處理的,因而應用的門檻較高,且通用性不足。為此,本文提出一種基于誤差建模的非線性誤差預測和補償方法,以數(shù)控機床的逆運動學模型為基礎,通過對插補過程中獲得的刀位點誤差數(shù)據(jù)進行辨識,獲得誤差模型,進而建立誤差自適應補償算法。誤差模型辨識和補償過程具有一定的通用性,有利于提高后置處理算法的精度和使用效率。
雙轉臺五軸數(shù)控機床具有良好的穩(wěn)定性和加工精度,因而是目前最先進的數(shù)控機床。雙轉臺五軸數(shù)控機床兩個旋轉軸都作用在工作臺上。機床坐標變換關系如圖1所示,OtXtYtZt為與刀具固連的刀具坐標系,OwXwYwZw為與工件固連的加工坐標系,OmXmYmZm為旋轉坐標系,在加工坐標系中的位置為rm(mx,my,mz)。
圖1 五軸雙轉臺數(shù)控機床運動坐標變換關系
數(shù)控機床后置處理的主要任務是將CAM 軟件生成的刀具軌跡信息轉換成機床可執(zhí)行的程序代碼[9],即根據(jù)機床的結構和各軸之間的運動關系,通過逆運動學變換,把圖1所示工件坐標系中包含刀具方向矢量和刀具中心位置矢量的刀位數(shù)據(jù)轉化為機床坐標系中數(shù)控機床各坐標軸的運動坐標,從而求解出機床三個平動軸X、Y、Z以及兩個旋轉軸A、C的轉動量[9]。
工件加工坐標系中的點坐標值是CAM軟件在刀具路徑規(guī)劃階段根據(jù)零件的幾何信息進行計算得到的,而機床刀具坐標系中的點坐標值是通過機床各個軸的實際運動解算得到的。由于兩種插補方式存在的差異,導致實際刀位運動軌跡會偏離刀位標定的理想軌跡,因而形成了非線性誤差。
上述分析可見,后置處理的非線性誤差是由數(shù)控機床的坐標變換引起的,依賴于數(shù)控機床的逆運動學模型和插補運算,因而不易受到異常值擾動的影響,可以運用最小二乘法進行建模。因此,本文提出基于最小二乘法的非線性誤差建模算法,其核心思想是,基于模型曲線數(shù)據(jù)與實際數(shù)據(jù)之間偏差的平方和為最小的原則,確定擬合非線性誤差數(shù)據(jù)變化趨勢的最佳函數(shù)。非線性誤差建模算法具體包括如下3個步驟。
步驟1:構造非線性誤差模型。
設(x,y)為一組觀測點,且x=[x1,x2,…,xn]T∈Rn,y=[y1,y2,…,yn]T∈Rn。設所有觀測量滿足某一擬合曲線函數(shù)方程,設為:
y(x)=f(x,ω)
(1)
式中,ω=[ω1,ω2,…,ωn]T為方程的待定參數(shù)。為了計算出函數(shù)f(x,ω)中參數(shù)ω的最優(yōu)估計值,選取m組觀測數(shù)據(jù)(xi,yi),(i=1,2,…,m)對該方程進行辨識。m的大小影響擬合曲線的精度,然而若m值過大,會增大計算量。通??筛鶕?jù)實際情況進行選擇。
非線性誤差是機床旋轉軸的運動軌跡與加工路徑上直線段之間的偏差,本文通過選取不同的相鄰刀位點并對其非線性誤差數(shù)據(jù)進行仿真研究和分析發(fā)現(xiàn),其誤差分布呈現(xiàn)先增大后減小的趨勢,誤差分布形狀總體可以用一個二次函數(shù)近似,故根據(jù)公式(1)建立非線性誤差擬合曲線為:
y(x)=ω1x2+ω2x+ω3
(2)
式中,ω=[ω1,ω2,ω3]T,ω1、ω2和ω3為誤差擬合函數(shù)曲線的待定參數(shù)。
步驟2:建立目標函數(shù)。
基于最小二乘法的偏差平方和最小原則建立目標函數(shù),使擬合曲線最大化逼近非線性誤差的實際變化趨勢。為此,選取擬合的目標函數(shù)為:
(3)
步驟3:模型參數(shù)優(yōu)化。
設每個非線性誤差點位為(xi,yi),其中i=1,2,…,m。為獲得待定參數(shù)的最優(yōu)估計值,建立以下評價函數(shù)。
(4)
利用評價函數(shù)J*分別對三個參數(shù)ω1、ω2和ω3求偏導數(shù),并令其偏導數(shù)為零,稍加整理,得到下述三個方程組。
(5)
式中,ai、bi和ci(i=1,2,3)為對J求偏導數(shù)時對多項式進行整合得到的數(shù)據(jù)。對上式求解,便可得到ω=[ω1,ω2,ω3]T,從而得到非線性誤差模型的數(shù)學表達式。
誤差補償?shù)哪康氖峭ㄟ^在非線性誤差模型上找到誤差最大許用值點所對應的插補點,再進一步得到其它需要重新插入數(shù)據(jù)點的位置進行誤差補償。將上一節(jié)得到的非線性誤差模型表達式取為補償函數(shù),可以方便找到誤差的補償點。
考慮到根據(jù)模型計算的誤差最大值可以真實地反映出實際加工時工件的精度,而誤差最大許用值則表征了加工零件精度的一個最大限制范圍,若超出這個范圍,可能會使得工件不滿足設計要求而不能使用,因此本文給出非線性誤差補償算法的基本規(guī)則為:
比較根據(jù)模型計算出的誤差最大值與誤差最大許用值的大小,如果模型的最大值比誤差最大許用值大,則進行非線性誤差補償,否則,不進行補償。
為此,建立非線性誤差補償算法,具體包括如下3個步驟。
步驟1:選取首個插補點。
首先在誤差模型曲線上選取任意兩相鄰數(shù)據(jù)點X0和X1,并找到非線性誤差最大值點,若非線性誤差大于所規(guī)定的許用值eall,則求出兩個與誤差許用值對應的插補點位。如圖2所示,y(x)為上一節(jié)得到誤差二次型曲線,為便于描述,取X0為坐標點(0,0)、X1為坐標點(1,0),emax為誤差最大值點。因
emax>eall
(6)
則根據(jù)誤差模型,計算與誤差許用值所對應的兩個點xe1和xe2。
由于X0到xe2之間距離較長,為了防止期間在加工時所產(chǎn)生的非線性誤差最大值仍大于誤差最大許用值,本文沿加工方向,選取靠近X0的xe1作為首個插補點。
圖2 誤差許用值最大值點位置示意圖
步驟2:確定其他待補償點位。
確定第一個插補點后,通過計算選取其他的插補點進一步進行誤差補償。設補償點位的個數(shù)δ,有:
(7)
按照式(6),將括號內計算的值進行向下取整得到的δ值。
于是,得到所有需補償點位xi,即:
xi=X0+(xe1-X0)i(i=1,2…,δ)
(8)
(9)
Pi=Pk+β|Pe-Pk|i(i=1,2,…,δ)
(10)
式中,Pi為相鄰兩個刀位數(shù)據(jù)點之間所有需要插入的新的刀位數(shù)據(jù)點;β為相鄰兩個刀位數(shù)據(jù)點的方向矢量;Pk為相鄰兩個刀位數(shù)據(jù)點的前一個刀位數(shù)據(jù)點;Pk+1為相鄰兩個刀位數(shù)據(jù)點的后一個刀位數(shù)據(jù)點;Pe為誤差許用值點所處位置的第一個新插入的刀位數(shù)據(jù)點。
步驟3:完成誤差補償。
將得到的新的插補點Pi通過正向運動學變換計算得到新的刀位數(shù)據(jù)點插入到兩個數(shù)據(jù)點之間,通過后置處理算法將新的刀位數(shù)據(jù)點文件轉換成NC代碼。
通過誤差補償,所產(chǎn)生的非線性誤差最大值均小于誤差最大許用值,滿足工件的加工精度要求。
為了驗證所提出誤差建模與誤差補償算法的有效性,選取文獻[10]中實際加工刀位數(shù)據(jù)點數(shù)據(jù)進行仿真研究。
任意選取兩個相鄰刀位點X0(P0,U0)和X1(P1,U1),其中,Pi為其在工件坐標系中的刀具位置;Ui為刀軸矢量,如表1[10]所示。
表1 兩個相鄰刀位點數(shù)據(jù)
如表2所示,不失一般性,本文將理想軌跡設為一條直線,非線性誤差被看作實際的刀位軌跡到直線的誤差。
表2 非線性誤差 (mm)
根據(jù)上述點位得到相應的非線性誤差模型的數(shù)學表達式。
將上述點位在MATLAB環(huán)境下進行仿真如圖3所示,給出了經(jīng)過非線性誤差補償前后以及理想軌跡曲線,其中直線為補償前軌跡,虛線為理想軌跡,點劃線為補償后的軌跡,如圖4所示為兩點間進行非線性誤差補償前后的曲線分布圖。
圖3 三維補償仿真結果
圖4 兩點間非線性誤差仿真圖
上述算例仿真結果表明,本文選擇二次函數(shù)對非線性誤差進行擬合是可行的,并且只需要一次計算就對非線性誤差補償完成,不需要再次對其進行補償。此外,根據(jù)補償前后的誤差比較說明,本文給出的非線性誤差補償方法,能夠基于插補算法計算獲得的數(shù)據(jù)建立起誤差補償?shù)哪P汀?/p>
根據(jù)加工點位數(shù)據(jù),首先通過后置處理以及插補函數(shù)計算出每兩點之間的插補點位以及所對應的非線性誤差,再建立非線性誤差模型,進一步采取第3章節(jié)非線性誤差補償機制,對非線性誤差進行補償和補償。補償前后以及理想軌跡圖如圖5所示。將圖5軌跡圖進行局部放大得出圖6。其中,直線為通過本文算法補償后的軌跡,點劃線為未補償?shù)能壽E曲線,虛線為理想軌跡,從中可以看出經(jīng)過補償之后的曲線更加接近理想的軌跡曲線。
由仿真結果表明,采用誤差補償機制之后的加工軌跡更加貼合理想軌跡。
圖5 刀位數(shù)據(jù)非線性誤差仿真圖
圖6 軌跡局部放大圖
如表3所示,給出了補償前后部分非線性誤差數(shù)據(jù)比較,表明所提出的通過對誤差模型建模以及對其補償?shù)姆椒ǎ軌蛴行p少非線性誤差,提高工件的加工精度。
表3 補償前后非線性誤差數(shù)據(jù)(部分)
針對五軸數(shù)控機床所產(chǎn)生的非線性誤差,提出基于最小二乘法的非線性誤差建模算法,建立的非線性誤差補償機制,并通過仿真驗證,表明實際加工出來的軌跡相比于補償前更加貼合理想的軌跡,驗證了所提出非線性誤差補償方法的可行性和有效性。利用本文所提出方法,可以只需要一次計算就對非線性誤差補償完成,不需要多次循環(huán)計算。此外,所提出誤差建模和補償算法只與誤差數(shù)據(jù)有關,因而理論上可以適用于任意數(shù)控機床非線性誤差的建模,經(jīng)適當變化可應用于其他類型的數(shù)控機床,具有較好的可移植性。