基于修改nc程序的數(shù)控機(jī)床綜合誤差三階優(yōu)化補(bǔ)償方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于多軸數(shù)控機(jī)床綜合誤差補(bǔ)償關(guān)鍵技術(shù)研究領(lǐng)域,特別涉及一種修改原 NC加工程序的多軸聯(lián)動數(shù)控機(jī)床綜合誤差離線補(bǔ)償方法。
【背景技術(shù)】
[0002] 多軸聯(lián)動數(shù)控機(jī)床綜合誤差補(bǔ)償一直是數(shù)控加工和智能控制領(lǐng)域的研究熱點(diǎn)。數(shù) 控機(jī)床的誤差補(bǔ)償方法主要分為硬件誤差補(bǔ)償和軟件誤差補(bǔ)償。硬件誤差補(bǔ)償方法,主要 是針對數(shù)控機(jī)床系統(tǒng)性、規(guī)律性、可重復(fù)的誤差項(xiàng),通過檢測各相關(guān)運(yùn)動軸傳動鏈的誤差變 化曲線,設(shè)計(jì)計(jì)算出與原傳動部件互補(bǔ)的矯正機(jī)構(gòu),實(shí)現(xiàn)誤差補(bǔ)償,該方法對不同的運(yùn)動軸 和不同的機(jī)床需要設(shè)計(jì)特定的補(bǔ)償裝置,通用性較差且成本較高。近年來,軟件誤差補(bǔ)償方 法成為數(shù)控機(jī)床誤差補(bǔ)償主要研究方向?;谏窠?jīng)網(wǎng)絡(luò)、灰色理論、多體系統(tǒng)運(yùn)動學(xué)、時間 序列及蟻群算法等理論方法,研究者們提出了各種各樣的補(bǔ)償方法。[張秋菊,趙一丁,毛軍 紅,林其駿.模糊自學(xué)習(xí)誤差補(bǔ)償方法及其在位置誤差補(bǔ)償中的應(yīng)用[J].西安交通大學(xué)學(xué) 報(bào),1995,29(2):67-72.],該文獻(xiàn)提出了一種模糊自學(xué)習(xí)的軟件誤差補(bǔ)償方法并成功應(yīng)用 于開環(huán)數(shù)控系統(tǒng)的位置誤差補(bǔ)償,其特點(diǎn)在于根據(jù)誤差及其變化率,進(jìn)行fuzzy推理獲取誤 差修正值,米用自學(xué)習(xí)技術(shù)生成誤差校正表。[Hsu YY,Wang SS.A new compensation method for geometry errors of five-axis machine tools[J]?International Journal of Machine Tools and Manufacture,2007,47(2):352-360.],該文獻(xiàn)根據(jù)數(shù)控 機(jī)床的正向逆向運(yùn)動學(xué)方程通過解耦方法先計(jì)算出轉(zhuǎn)動軸誤差后計(jì)算出線性軸誤差,通過 修改NC代碼來實(shí)現(xiàn)加工誤差補(bǔ)償。[傅建中,付國強(qiáng),賀永,林志偉.一種基于工件模型重建 的三軸數(shù)控機(jī)床幾何誤差補(bǔ)償方法[P].中國:發(fā)明專利,CN104057363A,2014.06.10],該發(fā) 明公開了一種基于工件模型重建的數(shù)控機(jī)床幾何誤差補(bǔ)償方法,采用等參數(shù)法得到工件表 面上各點(diǎn)坐標(biāo)并代入誤差模型進(jìn)行修正,依據(jù)修正后的各關(guān)鍵點(diǎn)位重建工件模型,將工件 原點(diǎn)作為程序原點(diǎn)生成相應(yīng)的加工路徑和代碼,實(shí)現(xiàn)對數(shù)控機(jī)床幾何誤差的補(bǔ)償。
[0003] 雖然已有各種各樣的多種理論和方法的研究,但對于那些長期服役后加工精度大 幅衰減的多軸數(shù)控機(jī)床還缺少通用的誤差補(bǔ)償方法。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中,對于長期服役后加工精度大幅度衰減的多 軸數(shù)控機(jī)床缺少通用的誤差補(bǔ)償方法的問題。
[0005] 為達(dá)到上述目的,本發(fā)明提供一種基于修改NC程序的數(shù)控機(jī)床綜合誤差三階優(yōu)化 補(bǔ)償方法,實(shí)現(xiàn)數(shù)控機(jī)床加工運(yùn)動的綜合誤差離線補(bǔ)償,從而提高加工精度。該方法的具體 步驟如下:
[0006] 根據(jù)多體系統(tǒng)運(yùn)動學(xué)理論和機(jī)床的拓?fù)浣Y(jié)構(gòu),建立多軸數(shù)控機(jī)床位姿誤差預(yù)測模 型;
[0007] 基于欲加工工件的NC程序,讀取進(jìn)給軸運(yùn)動的起始點(diǎn)和終止點(diǎn),計(jì)算起始點(diǎn)與終 止點(diǎn)之間的距離,若所述距離產(chǎn)生誤差大于設(shè)定的誤差閾值,則進(jìn)行誤差三階優(yōu)化補(bǔ)償并 修改所述NC程序;
[0008] 將修改后的NC程序?qū)攵噍S數(shù)控機(jī)床伺服控制系統(tǒng),進(jìn)行實(shí)際銑削加工。
[0009] 具體地,進(jìn)行三階優(yōu)化補(bǔ)償?shù)木唧w方法如下:
[0010] 分段細(xì)化:將進(jìn)給軸或主軸起始點(diǎn)位設(shè)為,終止點(diǎn)位設(shè)為Nn(Xn,Yn, Zn),按優(yōu)先數(shù)系增長量將起始點(diǎn)至終止點(diǎn)的軌跡分為n-1段,其各點(diǎn)位NdXuYhZO按下式 求出: (Zi-Xj) +(}j-^) +(^-2,) ={rty r〇〇11l j Xl = (Xn-Xl)t+X-X]<Xi<X n _ 2; - z^t+Zj;,^ <zt <zn
[0012]其中,rt為優(yōu)先數(shù)系的增長系數(shù),t與r為正數(shù),i為取值從1到n的正整數(shù);
[0013] 分段初次優(yōu)化:將所述各個點(diǎn)位坐標(biāo)代入公式
[0014] N^y^f = 1)
[0015] 后,將計(jì)算得到的〇,,)', 4)代入公式
[0016] N;(X;^ ,Z;) = N,(X,(A7,,(x,, v,,z,) - N,{X,,Y"Z,)) 2);
[0017]深度優(yōu)化:將計(jì)算得到的Ni '(Xi ',Yi ',Zi ')代入公式1)和2),在約束條件| Ni"(Xi", Yi ",ZO-K'd,h'石')| < eff進(jìn)行迭代計(jì)算實(shí)現(xiàn)深度優(yōu)化,其中,£1表示誤差閾值。
[0018] 具體地,當(dāng)預(yù)走指令為G00時,由于該指令不需要考慮中間軌跡,因此按照上述方 法進(jìn)行誤差離線補(bǔ)償。
[0019] 一種具體的情況是,對于直線插補(bǔ)數(shù)控指令G01,進(jìn)行三階優(yōu)化補(bǔ)償后,將所述各 個點(diǎn)位的方向與所讀取的NC程序中該段直線的方向進(jìn)行比較,具體方法如下:
[0020] 比較
?的大小,
[0021] 當(dāng)a最小時,Xi"為保留基準(zhǔn),
[0022] ,得到新的點(diǎn)位坐標(biāo)N,' ⑷",Yi",Z,),
[0023] 當(dāng)b最小時,Yi"為保留基準(zhǔn),
[0024] 丨$ = (5 -,得到新的點(diǎn)位坐標(biāo) N/,(X: ",Yi ",Z/,), I ={Z"-Zl)*h + Z,_l
[0025] 當(dāng)c最小時,Zi"為保留基準(zhǔn),
[0026] |'= $ - …,得到新的點(diǎn)位坐標(biāo)N/,(X:",Yi",Z/,)。
[0027]另一種具體的情況是,對于圓弧軌跡插補(bǔ)指令G02/03,其三階優(yōu)化補(bǔ)償方法具體 如下:
[0028] 設(shè)在G17指令設(shè)置的平面上,根據(jù)公式
[0029] r = W+I
[0030]計(jì)算出該段理想原圓弧半徑,根據(jù)公式
[0032]計(jì)算出弦長,根據(jù)公式
[0034]計(jì)算出夾角,其中,當(dāng)指令為G02時,a取"-",當(dāng)指令為G03時,a取"+" ;
[0035]分段細(xì)化:根據(jù)優(yōu)先數(shù)系,采用圓心角度增量的方式,確定出圓弧iDiDsI上的n個關(guān) 鍵點(diǎn)位,對該段圓弧曲線進(jìn)行分段細(xì)化,具體方法為:設(shè)該段圓弧起始點(diǎn)位DKmjOSNi (父1,¥1,21),終止點(diǎn)位02(父 2,丫2,22)為化(父11,¥11,2 11),并按公式 r 1 fX = X + r.cGsCa〗±句
[o036Mn+r-
[0037] 計(jì)算出關(guān)鍵點(diǎn)位坐標(biāo)Ni(Xi,Yi),當(dāng)指令為G02時,取,當(dāng)指令為G03時,取"+",0 為角度增量;
[0038]分段優(yōu)化:根據(jù)公式
[0040]計(jì)算得到各個關(guān)鍵點(diǎn)位坐標(biāo)Ni(Xi,Yi,Zi),并將各個關(guān)鍵點(diǎn)位坐標(biāo)代入公式1),計(jì) 算出進(jìn)給軸或主軸實(shí)際走過的圓弧軌跡,再把各關(guān)鍵點(diǎn)位實(shí)際坐標(biāo)值代入公式2),進(jìn)行分 段優(yōu)化;
[0041]深度優(yōu)化:把所得各優(yōu)化關(guān)鍵點(diǎn)位值作為初值,代入公式1)與公式2)在約束條件 ⑷",Y:",Z,'),'(X,土'石')| < e2下進(jìn)行迭代計(jì)算實(shí)現(xiàn)深度優(yōu)化,其中,£2表示誤差 閾值。
[0042]對于圓弧軌跡插補(bǔ)指令G02/03,進(jìn)一步地,進(jìn)行深度優(yōu)化后,根據(jù)公式
[0043] \1, = x〇^xrl U=u丨
[0044] 對圓心進(jìn)行校正,(Ii',Ji')表示校正后的圓心坐標(biāo)。
[0045] 對于圓弧軌跡插補(bǔ)指令G02/03,進(jìn)一步地,對于進(jìn)行深度優(yōu)化后的點(diǎn)位值,還包 括:
[0046] 計(jì)算 A = ^{r'f + {j:\ - t)_',當(dāng) A >e3 時,根據(jù)公式
[0047] 點(diǎn)位做進(jìn)一步的修正,其中,e3表示誤差閾值。
[0048] 在本發(fā)明中,若預(yù)走指令中包含擺動軸的運(yùn)動,則:
[0049] 在該段軌跡之間插入中間點(diǎn)位作為分段細(xì)化關(guān)鍵點(diǎn),中間點(diǎn)位Nl.5(Xl.5,Yl.5,Zl.5) 坐標(biāo)計(jì)算方法為:
[0051] 將點(diǎn)位 公式2),實(shí)現(xiàn)初次優(yōu)化得到點(diǎn)位化'(t ',h ',Zi ')與化' (M ',Bi ');
[0052]將點(diǎn)位點(diǎn)位Ni '(Xi ',Yi ',Zi ')與Ni '(Ai ',Bi ')代入公式1)及公式2),在約束條件 ....... , 1下進(jìn)行迭代運(yùn)算實(shí)現(xiàn)深度優(yōu)化,得到修正值N/'Ui ",Yi ",Z/')
[|飄』,+ )-順,馬)卜4 與Ni"(Ai",Bi"),其中,£4表不誤差閾值。
[0053]本發(fā)明的有益效果是:本發(fā)明的基于修改NC程序的數(shù)控機(jī)床綜合誤差三階優(yōu)化補(bǔ) 償方法,在不需要更新數(shù)控機(jī)床硬件設(shè)備和增加成本投入的同時,優(yōu)化數(shù)控機(jī)床綜合誤差 補(bǔ)償并提高加工精度。其中誤差的測量和辨識階段,需要依據(jù)高精度雙頻激光干涉儀和球 桿儀對多軸數(shù)控機(jī)床各進(jìn)給軸與主軸進(jìn)行全面誤差測量和辨識,為三階優(yōu)化補(bǔ)償方法提供 可靠地依據(jù)。運(yùn)用該三階優(yōu)化補(bǔ)償方法操作簡單效率高。
【附圖說明】
[0054]圖1為實(shí)施例的多軸數(shù)控機(jī)床綜合誤差三階優(yōu)化補(bǔ)償方法流程圖;
[0055] 圖2為實(shí)施例的A/B雙擺角龍門數(shù)控銑床綜合誤差的離線式補(bǔ)償三階優(yōu)化方法操 作流程圖;
[0056] 圖3為實(shí)施例的某型工件數(shù)控加工NC程序;
[0057]圖4為實(shí)施例的某型工件修改后的數(shù)控NC程序。
【具體實(shí)施方式】
[0058] 以下結(jié)合附圖及實(shí)施例對本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)描述,應(yīng)當(dāng)注意的是, 實(shí)施例僅僅是為了幫助讀者更好理解本發(fā)明的技術(shù)構(gòu)思而例舉的應(yīng)用實(shí)例,其并不用以限 定本發(fā)明的保護(hù)范圍。本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明技術(shù)方法啟示做出各種不脫離本發(fā)明實(shí) 質(zhì)的其它各種誤差補(bǔ)償方法或做簡單更改的方法都將在本發(fā)明的保護(hù)范圍內(nèi)。
[0059] 本發(fā)明針對現(xiàn)有技術(shù)中,長期服役后加工精度大幅度衰減的多軸數(shù)控機(jī)床缺少通 用的誤差補(bǔ)償方法的問題,提供一種"分段細(xì)化-分段優(yōu)化-深度優(yōu)化"的三階優(yōu)化數(shù)控機(jī)床 運(yùn)動誤差離線補(bǔ)償方法。茲方法基于已有的NC程序,從相應(yīng)的程序行中讀取進(jìn)給軸或主軸 運(yùn)動的起始點(diǎn)位和終止點(diǎn)位,將該段軌跡進(jìn)行分段細(xì)化;計(jì)算出該路徑上的各個關(guān)鍵點(diǎn)位 并運(yùn)用數(shù)控機(jī)床