李 麗,房立金,王國(guó)勛
(1.沈陽(yáng)城市建設(shè)學(xué)院 交通與機(jī)械工程系,沈陽(yáng) 110167; 2.東北大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,沈陽(yáng) 110819; 3.沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,沈陽(yáng) 110159)
基于STEP-NC的NURBS實(shí)時(shí)直接插補(bǔ)技術(shù)研究*
李 麗1,2,房立金2,王國(guó)勛3
(1.沈陽(yáng)城市建設(shè)學(xué)院 交通與機(jī)械工程系,沈陽(yáng) 110167; 2.東北大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,沈陽(yáng) 110819; 3.沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,沈陽(yáng) 110159)
為了解決STEP-NC數(shù)控系統(tǒng)中NURBS曲線(xiàn)實(shí)時(shí)直接插補(bǔ)過(guò)程中所存在的進(jìn)給速度波動(dòng)問(wèn)題,在對(duì)插補(bǔ)原理及進(jìn)給速度波動(dòng)進(jìn)行深入分析的基礎(chǔ)上,提出了一種自適應(yīng)修正插補(bǔ)算法。首先利用二階泰勒展開(kāi)式求取插補(bǔ)點(diǎn)坐標(biāo)的初值,再對(duì)初值利用所構(gòu)造的修正公式進(jìn)行修正,修正次數(shù)根據(jù)插補(bǔ)周期和插補(bǔ)精度要求進(jìn)行自適應(yīng)調(diào)整,在滿(mǎn)足插補(bǔ)實(shí)時(shí)性的要求下,盡可能提高插補(bǔ)精度。仿真結(jié)果表明,文章方法有效減小了插補(bǔ)進(jìn)給速度波動(dòng)問(wèn)題,提高了插補(bǔ)計(jì)算的精度。
STEP-NC;NURBS;直接插補(bǔ);速度波動(dòng)
傳統(tǒng)數(shù)控系統(tǒng)大多只支持直線(xiàn)插補(bǔ)和圓弧插補(bǔ),當(dāng)進(jìn)行復(fù)雜曲線(xiàn)曲面插補(bǔ)時(shí),把曲線(xiàn)用很多段直線(xiàn)段或圓弧段代替,然后再進(jìn)行直線(xiàn)或圓弧插補(bǔ)計(jì)算。這種方法存在加工表面質(zhì)量不高、程序文件龐大、不利于高速加工以及不利于CAD/CAM/CNC系統(tǒng)集成與實(shí)現(xiàn)智能化等缺點(diǎn)[1-2]。NURBS(Non-Uniform Rational B-Splines,非均勻有理B樣條)直接插補(bǔ)是指數(shù)控系統(tǒng)能夠直接接受用NURBS表示的曲線(xiàn)曲面信息,直接進(jìn)行NURBS曲線(xiàn)插補(bǔ)計(jì)算,而不需要將曲線(xiàn)離散,從而克服了傳統(tǒng)數(shù)控系統(tǒng)的缺點(diǎn)。STEP-NC標(biāo)準(zhǔn)中使用NURBS技術(shù)描述復(fù)雜參數(shù)曲線(xiàn)曲面信息,因此,STEP-NC數(shù)控系統(tǒng)必須支持NURBS直接插補(bǔ)技術(shù),同時(shí)也有利于克服傳統(tǒng)插補(bǔ)方法的不足。
本文根據(jù)插補(bǔ)原理對(duì)NURBS插補(bǔ)方法進(jìn)行了介紹,在此基礎(chǔ)上提出了自適應(yīng)誤差修正插補(bǔ)方法,有效地減小了因計(jì)算誤差而導(dǎo)致的進(jìn)給速度波動(dòng)問(wèn)題,提高了插補(bǔ)精度。
一條k次NURBS曲線(xiàn)定義為
(1)
式中,Pi是控制點(diǎn),由Pi構(gòu)成的多邊形稱(chēng)為控制多邊形,Ni,k(u)是定義在非周期(并且非均勻)節(jié)點(diǎn)矢量
(包含n+1個(gè)節(jié)點(diǎn))上的k次B樣條基函數(shù),ωi是權(quán)因子。通常取a=0,b=1,并且對(duì)所有的i,ωi>0。
STEP-NC中NURBS曲線(xiàn)的定義是由實(shí)體b_spline_curve_with_knots和實(shí)體rational_b_spline_curve通過(guò)ANDOR關(guān)系來(lái)定義的,而這兩個(gè)實(shí)體都是實(shí)體b_spline_curve的子類(lèi),各實(shí)體的定義參見(jiàn)文獻(xiàn)[3]。從定義可以看出以上實(shí)體的定義包含了NURBS曲線(xiàn)的次數(shù)(degree)、節(jié)點(diǎn)矢量(knots)、控制點(diǎn)(control_points_list)、權(quán)值(weight_data)、節(jié)點(diǎn)重復(fù)度(knot_multiplicities)等參數(shù),因此,以上三個(gè)實(shí)體可以完整的表示一條NURBS曲線(xiàn)。
NURBS插補(bǔ)常用方法有一階泰勒展開(kāi)法[4-5]、二階泰勒展開(kāi)法[6-7]、泰勒展開(kāi)誤差修正法[8]、預(yù)測(cè)修正迭代法[9-10]等。這些方法統(tǒng)稱(chēng)泰勒展開(kāi)法,常用的二階泰勒插補(bǔ)公式為
(2)
Ts為插補(bǔ)周期,V(ui)為給定進(jìn)給速度,C(u)為NURBS曲線(xiàn)。
圖1 插補(bǔ)原理圖
2.1 進(jìn)給速度波動(dòng)問(wèn)題
數(shù)控加工中,進(jìn)給速度定義為沿曲線(xiàn)加工路徑方向上的刀具運(yùn)動(dòng)的速度,可由弧長(zhǎng)對(duì)時(shí)間的導(dǎo)數(shù)求得。設(shè)曲線(xiàn)為C(u),對(duì)應(yīng)的弧長(zhǎng)為S(u),則插補(bǔ)點(diǎn)C(u)處的進(jìn)給速度為:
(3)
分析可知,下一插補(bǔ)點(diǎn)應(yīng)以逼近插補(bǔ)段弦長(zhǎng)為目標(biāo),按照插補(bǔ)原理,理想的插補(bǔ)計(jì)算公式應(yīng)為
(4)
式中Ve為給定進(jìn)給速度。
由此可知,如何準(zhǔn)確的計(jì)算出下一個(gè)插補(bǔ)點(diǎn)參數(shù)值ui+1是數(shù)控插補(bǔ)的關(guān)鍵問(wèn)題。
(5)
因此,實(shí)際進(jìn)給速度變?yōu)?/p>
(6)
圖2 實(shí)時(shí)插補(bǔ)速度波動(dòng)
插補(bǔ)進(jìn)給速度波動(dòng)是指實(shí)時(shí)插補(bǔ)過(guò)程中實(shí)際進(jìn)給速度與程序給定的進(jìn)給速度之間的差異。設(shè)ΔVi為實(shí)際插補(bǔ)進(jìn)給速度波動(dòng),定義為:
ΔVi=Ve-Vi
(7)
將式(6)帶入式(7)得
(8)
設(shè)進(jìn)給速度波動(dòng)率為δi,定義為
(9)
δi是下一個(gè)插補(bǔ)點(diǎn)參數(shù)ui+1的計(jì)算偏差造成的,通常使用最大進(jìn)給速度波動(dòng)率δmax來(lái)衡量插補(bǔ)算法的性能。因此,研究NURBS實(shí)時(shí)插補(bǔ)技術(shù)首先要解決的問(wèn)題是如何最大限度的減小進(jìn)給速度波動(dòng)率。
2.2 基于自適應(yīng)修正法的速度波動(dòng)率的控制方法
根據(jù)前面的分析可知,對(duì)于NURBS曲線(xiàn)C(u),給定插補(bǔ)弦長(zhǎng)VeTs和當(dāng)前插補(bǔ)點(diǎn)參數(shù)ui,則下一插補(bǔ)點(diǎn)的參數(shù)ui+1需滿(mǎn)足
(10)
將ui+1看做變量,記為χ,構(gòu)造函數(shù)F(χ),則式(10)改寫(xiě)成如下形式:
(11)
因此,求解下一插補(bǔ)點(diǎn)參數(shù)的任務(wù)轉(zhuǎn)化為:對(duì)于函數(shù)F(χ),求變量χ=χ*,滿(mǎn)足方程:
F(χ*)=0
(12)
(13)
其中
(14)
(15)
為了克服迭代修正法的缺點(diǎn),本文在迭代法的基礎(chǔ)上提出了自適應(yīng)修正法,即修正迭代次數(shù)根據(jù)精度要求和插補(bǔ)周期自適應(yīng)變化,修正時(shí)綜合考慮插補(bǔ)周期和精度要求,在保證插補(bǔ)周期的前提下盡量提高修正精度,使插補(bǔ)進(jìn)給速度波動(dòng)最小。式(15)實(shí)際為1次修正公式,一般情況下只需修正一次即可滿(mǎn)足精度要求,當(dāng)一次修正不能滿(mǎn)足要求時(shí),反復(fù)利用式(15),直到滿(mǎn)足精度要求為止。對(duì)于絕大部分情況下進(jìn)行2次修正已經(jīng)能達(dá)到很高的精度了,因此本方法最多進(jìn)行2次修正即可滿(mǎn)足精度要求。
因此,經(jīng)此方法修正后的參數(shù)值能更好的抑制實(shí)時(shí)進(jìn)給速度波動(dòng),而且還避免了迭代算法存在的收斂性和實(shí)時(shí)性問(wèn)題。雖然式(15)會(huì)增加一部分計(jì)算量,但是根據(jù)文獻(xiàn)[11]給出的NURBS快速求值求導(dǎo)算法可知,求值求導(dǎo)算法可轉(zhuǎn)化成簡(jiǎn)單的四則運(yùn)算,因此本算法也能滿(mǎn)足插補(bǔ)實(shí)時(shí)性要求。
為了說(shuō)明本文方法的正確性和有效性,采用MATLAB中對(duì)算法進(jìn)行仿真計(jì)算。由于進(jìn)給速度波動(dòng)率是衡量插補(bǔ)算法好壞的重要指標(biāo),因此本節(jié)主要對(duì)插補(bǔ)算法的進(jìn)給速度波動(dòng)率進(jìn)行仿真,為了說(shuō)明本文算法的優(yōu)越性,仿真時(shí)將與常用的泰勒展開(kāi)法插補(bǔ)算法進(jìn)行對(duì)比分析。
仿真所用計(jì)算機(jī)參數(shù)為:主頻2.2GHz,內(nèi)存2GB;仿真軟件為MATLAB R2011a。插補(bǔ)進(jìn)給速度為50mm/s,插補(bǔ)周期為2ms。NRUBS曲線(xiàn)的參數(shù)分別如下:
NURBS曲線(xiàn)的次數(shù)為2,控制點(diǎn)坐標(biāo)維數(shù)為2,控制點(diǎn)個(gè)數(shù)為11個(gè),曲線(xiàn)數(shù)據(jù)如下:控制點(diǎn):{(8,13),(5.29,8),(0,8),(4.311,5.511),(2.1436,0),(8,3.3812),(13.8564,0),(11.689,5.511),(16,8),(10.71,8),(8,13)};節(jié)點(diǎn)矢量:[0 0 0 0.1110 0.2220 0.3330 0.4440 0.5550 0.6660 0.7770 0.8880 1 1 1];權(quán)值向量:[1 1 1 1 1 1 1 1 1 1 1]。NURBS曲線(xiàn)圖形如圖3所示。
圖3 NURBS曲線(xiàn)圖
不同方法進(jìn)給速度控制結(jié)果如表1所示,仿真結(jié)果如圖4所示,其中4a為一階泰勒展開(kāi)插補(bǔ)算法的進(jìn)給速度波動(dòng)率曲線(xiàn)圖,圖4b為二階泰勒展開(kāi)插補(bǔ)算法進(jìn)給速度波動(dòng)率曲線(xiàn)圖,圖4c和圖4d分別為本文算法1次和2次修正后的進(jìn)給速度波動(dòng)率曲線(xiàn)圖。
從仿真結(jié)果可看出,一階泰勒展開(kāi)法的進(jìn)給速度波動(dòng)率最大,本文方法的2次修正法的進(jìn)給速度波動(dòng)率最小。一階泰勒展開(kāi)法的計(jì)算量最小,插補(bǔ)時(shí)間最短,本文方法的2次修正法的計(jì)算量最大,插補(bǔ)時(shí)間最長(zhǎng)。本文方法的1次修正法插補(bǔ)時(shí)間是一階泰勒法的5倍,是二階泰勒方法的2.5倍,而進(jìn)給速度控制精度卻提高了幾百倍(比一階泰勒法提高了943倍,比二階泰勒展開(kāi)法提高了311倍)。本文方法的2次修正法插補(bǔ)時(shí)間是一階泰勒法的7.9倍,是二階泰勒方法的3.9倍,而進(jìn)給速度控制精度卻至少提高了幾百萬(wàn)倍(比一階泰勒法提高了8000萬(wàn)倍,比二階泰勒展開(kāi)法提高了2670萬(wàn)倍)。
本文方法2次修正法進(jìn)給速度波動(dòng)率至少達(dá)到10-6數(shù)量級(jí),因此對(duì)于大多數(shù)情況只需修正2次即可達(dá)到所需精度。而對(duì)于某些情況下,只需修正一次即可達(dá)到較高的精度。
由表1可看出,盡管本文方法所用的插補(bǔ)時(shí)間較泰勒展開(kāi)法長(zhǎng),但是也在插補(bǔ)周期內(nèi),1次修正法和2次修正法大約各占插補(bǔ)周期的5.38%和8.41%,滿(mǎn)足插補(bǔ)的實(shí)時(shí)性要求。
表1 不同方法進(jìn)給速度控制結(jié)果統(tǒng)計(jì)表(%)
(a)一階泰勒法插補(bǔ)算法速度波動(dòng)率
(b)二階泰勒法插補(bǔ)算法速度波動(dòng)率
(c)本文算法1次修正算法速度波動(dòng)率
(d)本文算法2次修正算法速度波動(dòng)率圖4 不同方法進(jìn)給速度控制效果比較
通過(guò)以上對(duì)仿真結(jié)果的分析可得出以下結(jié)論:本文提出插補(bǔ)方法可根據(jù)進(jìn)給速度控制精度要求和插補(bǔ)時(shí)間動(dòng)態(tài)調(diào)整修正次數(shù),在保證插補(bǔ)周期的情況下,盡可能減小進(jìn)給速度波動(dòng)率,提高進(jìn)給速度控制精度。
在分析傳統(tǒng)插補(bǔ)方法缺點(diǎn)基礎(chǔ)上,根據(jù)插補(bǔ)原理,對(duì)NURBS插補(bǔ)方法進(jìn)行了研究。針對(duì)插補(bǔ)過(guò)程中的速度波動(dòng)問(wèn)題,采用自適應(yīng)修正次數(shù)的修正方法來(lái)減小速度波動(dòng),從而較精確的解決了NURBS插補(bǔ)過(guò)程中實(shí)際進(jìn)給速度與指令進(jìn)給速度之間的誤差問(wèn)題,提高了插補(bǔ)精度。通過(guò)仿真分析可得出,本文方法在保證插補(bǔ)實(shí)時(shí)性的情況下,大幅提高了插補(bǔ)精度,減小了進(jìn)給速度波動(dòng)問(wèn)題。
[1] Emami M M, Arezoo B. A look-ahead command generator with control over trajectory and chord error for NURBS curve with unknown arc length[J]. Computer-Aided Design, 2010, 42(7): 625-632.
[2]Lin M T, Tsai M S, Yau H T. Development of a dynamics-based NURBS interpolator with real-time look-ahead algorithm[J]. International Journal of Machine Tools and Manufacture, 2007, 47(15): 2246-2262.
[3] Industrial automation systems and integration — Product data representation and exchange — Part 238: Application protocol: Application interpreted model for computerized numerical controllers, ISO TC 184/SC4/WG3, 2006.
[4] Yau H T, Lin M T, Tsai M S. Real-time NURBS interpolation using FPGA for high speed motion control[J]. Computer-Aided Design, 2006, 38(10): 1123-1133.
[5] Jo Ko T, Sool Kim H, Ho Park S. Machineability in NURBS interpolator considering constant material removal rate[J]. International Journal of Machine Tools and Manufacture, 2005, 45(6): 665-671.
[6] 周世偉,張平,全煒,等. 基于軸加速限制的NURBS曲線(xiàn)實(shí)時(shí)自適應(yīng)插補(bǔ)算法[J]. 組合機(jī)床與自動(dòng)化加工技術(shù),2012(9):16-20.
[7] Tikhon M, Ko T J, Lee S H, et al. NURBS interpolator for constant material removal rate in open NC machine tools[J]. International Journal of Machine Tools and Manufacture, 2004, 44(2): 237-245.
[8] Farouki R T, Tsai Y F. Exact Taylor series coefficients for variable-feedrate CNC curve interpolators[J]. Computer-Aided Design, 2001, 33(2): 155-165.
[9] 孫海洋. NURBS曲線(xiàn)刀具路徑實(shí)時(shí)插補(bǔ)技術(shù)研究[D]. 長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2008.
[10] Cheng M Y, Tsai M C, Kuo J C. Real-time NURBS command generators for CNC servo controllers[J]. International Journal of Machine Tools and Manufacture, 2002, 42(7): 801-813.
[11] 王國(guó)勛,舒啟林,王軍,等. NURBS直接插補(bǔ)技術(shù)中快速求值求導(dǎo)算法[J]. 東北大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,33(7):1021-1024.
(編輯 趙蓉)
Research of NURBS Real-time Direct Interpolation Based on STEP-NC
LI li1,2,FANG Li-jin2,WANG Guo-xun3
(1.Department of Traffic & Mechanical Engineering , Shenyang Urban Construction University, Shenyang 110167, China; 2.School of Mechanical Engineering & Automation, Northeastern University, Shenyang 110819, China )
In order to solve the problems of feed speed fluctuation in the process of NURBS curve real-time direct interpolation in the STEP-NC CNC system, on the basis of in-depth analysis of the interpolation principle and feed speed fluctuations, a adaptive interpolation algorithm was proposed. First using second-order Taylor expansion to calculate the initial value of interpolation point coordinates, then use the constructed correction formula for correction for the initial value. The fixed number was corrected adaptively according to the needs of interpolation cycle and the interpolation precision, in meet the requirements of the real time interpolation, significantly improve the interpolation precision. The simulation results show that the method effectively reduces the interpolation feed speed fluctuation problem.
STEP-NC; NURBS; direct interpolation; speed fluctuation
1001-2265(2014)06-0062-04
10.13462/j.cnki.mmtamt.2014.06.017
2013-09-24;
2013-10-23
國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃)資助項(xiàng)目(SS2012AA041303)
李麗(1981—),女,山東省聊城市人,沈陽(yáng)城市建設(shè)學(xué)院講師,東北大學(xué)博士生,研究方向?yàn)橄冗M(jìn)制造技術(shù),機(jī)器人技術(shù)等,(E-mail)wgxlili@126.com;通信作者:王國(guó)勛(1979—),男,山東省五蓮縣人,沈陽(yáng)理工大學(xué)講師,博士,研究方向?yàn)橄冗M(jìn)數(shù)控技術(shù),(E-mail)wangguoxun@126.com。
TH166;TG65
A