楊 威,應(yīng)保勝,邱新橋,吳岳敏
(1.武漢科技大學(xué)機(jī)械自動化學(xué)院,湖北武漢,430081;2.湖北汽車工業(yè)學(xué)院機(jī)械工程系,湖北十堰,442002)
逐點(diǎn)比較直線插補(bǔ)算法的優(yōu)化
楊 威1,應(yīng)保勝1,邱新橋2,吳岳敏1
(1.武漢科技大學(xué)機(jī)械自動化學(xué)院,湖北武漢,430081;2.湖北汽車工業(yè)學(xué)院機(jī)械工程系,湖北十堰,442002)
基于八方向插補(bǔ)算法,提出一種改進(jìn)的逐點(diǎn)比較插補(bǔ)算法。通過最大插補(bǔ)誤差分析,利用解析求解、數(shù)值比較及計算機(jī)運(yùn)算,得到一種插補(bǔ)精度較高、運(yùn)算速度較快、速率較平穩(wěn)的偏差計算方法。
數(shù)控系統(tǒng);逐點(diǎn)比較插補(bǔ)法;直線插補(bǔ);優(yōu)化改進(jìn)
插補(bǔ)運(yùn)算是計算機(jī)數(shù)控(Computer Numerical Control,CNC)系統(tǒng)中生成加工軌跡的一個基本子程序,它直接影響到工件的輪廓精度、表面光滑度和機(jī)床的最大進(jìn)給速度[1-3]。插補(bǔ)算法分為基準(zhǔn)脈沖插補(bǔ)算法和數(shù)據(jù)采樣插補(bǔ)算法?;鶞?zhǔn)脈沖插補(bǔ)算法中最常用的是逐點(diǎn)比較法。逐點(diǎn)比較法的優(yōu)點(diǎn)是算法簡單、插補(bǔ)計算速度快、插補(bǔ)誤差較小,但同時也存在如下缺點(diǎn):①不能兩軸聯(lián)動,影響加工精度;②插補(bǔ)次數(shù)多,執(zhí)行時間長,影響生產(chǎn)效率[4]。
本文在逐點(diǎn)比較法的基礎(chǔ)上,改變判斷點(diǎn)的取值,增加一個進(jìn)給方向,以圖進(jìn)一步提高插補(bǔ)精度和運(yùn)算速度。
逐點(diǎn)比較法的基本原理[5]為:計算機(jī)在控制加工軌跡的過程中,刀具每進(jìn)一步(一個脈沖當(dāng)量)都將實際加工點(diǎn)同規(guī)定的軌跡進(jìn)行比較,并計算一次偏差值,從而決定下一進(jìn)給點(diǎn),以逼近給定的軌跡。因此刀具每進(jìn)給一步都要經(jīng)過如下4個節(jié)拍:偏差計算、位置判別、坐標(biāo)進(jìn)給、終點(diǎn)判別。
逐點(diǎn)比較插補(bǔ)算法只有+x、+y、-x、-y四個進(jìn)給方向,八方向插補(bǔ)算法[6]是在該四個進(jìn)給方向上再增加+x+y、-x+y、-x-y、+x-y四個進(jìn)給方向。其中,+x+y是指+x和+y坐標(biāo)方向同時進(jìn)給,其余類推。八方向插補(bǔ)算法進(jìn)給方向如圖1所示。
圖1 八方向插補(bǔ)算法進(jìn)給方向Fig.1 Coordinates of eight directions interpolation algorithm
2.1 證明插補(bǔ)直線與任意插補(bǔ)點(diǎn)的位置關(guān)系
圖2 任意加工起點(diǎn)時插補(bǔ)直線通過區(qū)域Fig.2 Interpolation curve at any starting point of processing
設(shè)任意直線AB為加工軌跡,則刀具瞬時加工點(diǎn)p0(xi,yi)在任意位置都有3個進(jìn)給方向(見圖2),下一進(jìn)給點(diǎn)是p′1、p″1、p?1中的某一點(diǎn)。點(diǎn)A與插補(bǔ)起點(diǎn)p0重合,此時直線AB通過正方形區(qū)域p0p′1p″1p?1,證明插補(bǔ)i次后,直線AB通過區(qū)域pip′i+1p″i+1p?i+1。證明:
(1)在插補(bǔ)起點(diǎn)時,直線AB通過正方形區(qū)域p0p′1p″1p?1;
(2)插補(bǔ)i次后,插補(bǔ)點(diǎn)為pi(xi,yi),直線AB通過正方形區(qū)域pip′i+1p″i+1p?i+1;
(3)第i+1次插補(bǔ)有3個插補(bǔ)點(diǎn)p′i+1(xi+1,yi)、p″i+1(xi+1,yi+1)、p?i+1(xi,yi+1),分別為如下3種情形:①第i+1次插補(bǔ)點(diǎn)為p′i+1(見圖3),直線AB通過p′i+1p′i+2p″i+2p?i+2;②第i+1次插補(bǔ)點(diǎn)為p″i+1(見圖4),直線AB通過p″i+1p′i+2p″i+2p?i+2;③第i+1次插補(bǔ)點(diǎn)為p?i+1(見圖5),直線AB通過p?i+1p′i+2p″i+2p?i+2。
可見上述假設(shè)成立。證畢。
圖3 插補(bǔ)點(diǎn)為p′i+1時插補(bǔ)直線通過區(qū)域Fig.3 Interpolation line at the interpolated point p′i+1
圖4 插補(bǔ)點(diǎn)為p″i+1時插補(bǔ)直線通過區(qū)域Fig.4 Interpolation line at the interpolated point p″i+1
圖5 插補(bǔ)點(diǎn)為p?i+1時插補(bǔ)直線通過區(qū)域Fig.5 Interpolation line at the interpolated point p?i+1
2.2 最大誤差臨界角計算
任意直線AB為加工軌跡,刀具瞬時加工點(diǎn)pi(xi,yi)在任意位置都有3個進(jìn)給方向(見圖6)。下一進(jìn)給點(diǎn)是p′i+1(xi+1,yi)、p″i+1(xi+1,yi+1)或p?i+1(xi,yi-1)中的某一點(diǎn)。根據(jù)2.1的證明,直線AB總是通過區(qū)域pip′i+1p″i+1p?i+1。分別作p′i+1L、p″i+1N垂直于直線AB,垂足為L、N。點(diǎn)M為直線AB與直線p′i+1p″i+1的交點(diǎn)。則,當(dāng)下一進(jìn)給點(diǎn)為p′i+1時,誤差為p′i+1L;當(dāng)下一步進(jìn)給點(diǎn)為p″i+1時,誤差為p″i+1N。從圖6中可看出,顯然點(diǎn)p?i+1不可能成為最小誤差插補(bǔ)點(diǎn),因此只需在p′i+1L與p″i+1N中選擇。
圖6 M點(diǎn)在p′i+1p″i+1上時最大誤差臨界角Fig.6 Maximal critical angle of error at point M for middle point of p′i+1p″i+1
圖7 M點(diǎn)為p″i+1p?i+1中點(diǎn)時最大誤差臨界角Fig.7 Maximal critical angle of error at point M for middle point of p″i+1p?i+1
2.3 最大誤差計算
2.4 偏差計算
偏差計算以第Ⅰ象限的直線為例(見圖8、圖9)。設(shè)直線的起點(diǎn)為o(0,0),終點(diǎn)為B(xe,ye),其他點(diǎn)定義同圖6。當(dāng)xe=0時,刀具沿x軸方向進(jìn)給;當(dāng)ye=0時,刀具沿y軸方向進(jìn)給;當(dāng)xe≠0且ye≠0時,交點(diǎn)為M1、M2、M3、M4,顯然,延長線上的交點(diǎn)M2和M4應(yīng)被排除掉。
點(diǎn)M1坐標(biāo)可由下式確定:
圖8 M點(diǎn)在p′i+1p″i+1上時的偏差Fig.8 Error at point M for middle point of p′i+1p″i+1
圖9 M點(diǎn)在p″i+1p?i+1上時的偏差Fig.9 Error at point M for middle point of p″i+1p?i+1
2.5 偏差判別
2.5.1 長度比較法
如圖8、圖9所示:
當(dāng)β∈[arctan0.5,90°-arctan0.5)時,F(xiàn)ij=2;
當(dāng)β∈[90°-arctan0.5,90°)時,F(xiàn)ij=3。
2.6 坐標(biāo)進(jìn)給
當(dāng)Fij=1時,下一個插補(bǔ)點(diǎn)選擇點(diǎn)p′i+1;
當(dāng)Fij=2時,下一個插補(bǔ)點(diǎn)選擇點(diǎn)p″i+1;
當(dāng)Fij=3時,下一個插補(bǔ)點(diǎn)選擇點(diǎn)p?i+1。
2.7 終點(diǎn)判別
起點(diǎn)為(x0,y0)(一般取為原點(diǎn)(0,0)),終點(diǎn)為(xe,ye)的直線,其判別值(直線在x、y軸方向上的總步長)為Im,則:Im=xe-x0+ye-y0。
2.8 不同象限的插補(bǔ)分析
對于任意象限的直線插補(bǔ),可以先通過坐標(biāo)平移將起點(diǎn)移至坐標(biāo)原點(diǎn),再根據(jù)直線終點(diǎn)的所在象限,應(yīng)用坐標(biāo)變換方法,將其變換為標(biāo)準(zhǔn)的第一象限內(nèi)直線來插補(bǔ)。直線插補(bǔ)坐標(biāo)變換法如表1所示,其中U表示x軸方向進(jìn)給,V表示y方向進(jìn)給。
表1 直線插補(bǔ)坐標(biāo)變換法Table 1 Coordinate synopsis of linear interpolation
改進(jìn)后的逐點(diǎn)比較直線插補(bǔ)算法通過改變判斷點(diǎn)的取值,增加了一個插補(bǔ)運(yùn)動方向,其插補(bǔ)誤差僅為傳統(tǒng)算法誤差的1/2,插補(bǔ)次數(shù)相應(yīng)減少,從而提高了插補(bǔ)精度和加工速度。
[1] 王愛玲.現(xiàn)代數(shù)控原理及控制系統(tǒng)[M].北京:國防工業(yè)出版社,2002.
[2] 張建剛,胡大澤.數(shù)控技術(shù)[M].武漢:華中科技大學(xué)出版社,2000.
[3] 李佳.數(shù)控技術(shù)及應(yīng)用[M].北京:清華大學(xué)出版社,2001.
[4] 張柱銀,姚建明,李碩.數(shù)控系統(tǒng)中逐點(diǎn)比較法的優(yōu)化算法[J].機(jī)械研究與應(yīng)用,2010,23(1):42-44.
[5] 蘇秀平.細(xì)論直線的逐點(diǎn)比較法插補(bǔ)[J].機(jī)床與液壓,2004(4):119-121.
[6] 范希營,郭永環(huán).數(shù)控系統(tǒng)基準(zhǔn)脈沖插補(bǔ)的發(fā)展方向[J].機(jī)床與液壓,2010,38(20):109-111.
Optimization of point-by-point comparison linear interpolation algorithm
Yang Wei1,Ying Baosheng1,Qiu Xinqiao2,Wu Yuemin1
(1.College of Machinery and Automation,Wuhan University of Science and Technology,Wuhan 430081,China;2.Department of Mechanical Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)
Based on the eight directions interpolation algorithm,an improved point-by-point comparison interpolation algorithm was proposed.By maximum interpolation error analysis,analytical solution,numerical comparison,and computer computation,an error calculation method was obtained,which boasts higher interpolation precision,stable computation,and higher computation speed.
NC system;point-by-point comparison interpolating algorithm;linear interpolation;optimization
TB115
A
1674-3644(2012)03-0222-04
[責(zé)任編輯 彭金旺]
2011-10-25
楊 威(1989-),男,武漢科技大學(xué)碩士生.E-mail:710327911@qq.com
應(yīng)保勝(1964-),男,武漢科技大學(xué)教授,博士生導(dǎo)師.E-mail:635125316@qq.com