王文莉 黃祖廣② 胡天亮 張承瑞
(①山東大學(xué)機(jī)械工程學(xué)院,山東 濟(jì)南250061;②國(guó)家機(jī)床質(zhì)量監(jiān)督檢驗(yàn)中心,北京100102)
在數(shù)控系統(tǒng)中,如何控制刀具或工件的運(yùn)動(dòng)直接影響到加工的精度和效率,是機(jī)床數(shù)字控制的核心問題。傳統(tǒng)的數(shù)控系統(tǒng)一般都具有基本的直線和圓弧插補(bǔ)功能,對(duì)于非直線或圓弧組成的軌跡,需要先用小段的直線或圓弧來擬合,然后再對(duì)小線段進(jìn)行加工[1]。為得到更為準(zhǔn)確的逼近效果,會(huì)產(chǎn)生大量的微小直線或圓弧,造成加工代碼龐大,程序傳輸、存儲(chǔ)不便,加工速度不連續(xù),加工效率低等問題[2-3]。因此,研究NURBS 曲線插補(bǔ)技術(shù)對(duì)實(shí)現(xiàn)高速高精度加工,提高數(shù)控加工水平有著重要的意義。
關(guān)于曲線插補(bǔ)算法的研究主要有:等參數(shù)插補(bǔ)算法[4],這種算法計(jì)算簡(jiǎn)單,但會(huì)造成劇烈的速度波動(dòng),降低加工質(zhì)量;恒速進(jìn)給插補(bǔ)算法[4-5],該算法采用較小的步長(zhǎng),加工效率低;基于泰勒公式的插補(bǔ)算法[6],這種算法在曲線曲率較大、加工速度高的地方容易出現(xiàn)速度波動(dòng);而文獻(xiàn)[7]所提出的算法,雖然降低了速度的波動(dòng)性,卻沒有考慮到加工中的加速度問題,且直接對(duì)NURBS 的定義式求導(dǎo),增加了許多重復(fù)計(jì)算。
本文針對(duì)上述問題,基于牛頓迭代法對(duì)NURBS實(shí)時(shí)插補(bǔ)算法進(jìn)行了研究,并考慮了弓高誤差、加速度對(duì)進(jìn)給速度的約束,實(shí)現(xiàn)了插補(bǔ)速度自適應(yīng)于加工路徑,提高了算法效率,降低了速度波動(dòng)。
NURBS 是非均勻有理B 樣條(non - uniform rational B-splines)的縮寫。一條k次NURBS 曲線的分段有理多項(xiàng)式矢函數(shù)可以表示為[8-9]:
式中:di(i=0,1,…,n)為控制頂點(diǎn);ωi為對(duì)應(yīng)于每個(gè)控制頂點(diǎn)di的權(quán)因子;k為NURBS 曲線的階數(shù);Ni,k(u)為由節(jié)點(diǎn)矢量U=[u0,u1,…,un+k+1]決定的k次規(guī)范B 樣條基函數(shù),其計(jì)算公式為:
可見,在G 代碼中定義一條NURBS 曲線,只需給出控制頂點(diǎn)、權(quán)因子和節(jié)點(diǎn)矢量即可,大大減小了代碼量。
NURBS 曲線插補(bǔ)算法的本質(zhì)是在每個(gè)數(shù)據(jù)采樣周期內(nèi),數(shù)控系統(tǒng)根據(jù)下一步插補(bǔ)速度V計(jì)算參數(shù)u的過程??紤]到算法的實(shí)時(shí)性,本研究將NURBS 的分段有理多項(xiàng)式改寫為矩陣的形式,并用牛頓迭代法實(shí)時(shí)計(jì)算下一插補(bǔ)點(diǎn)。
曲線的高速高精度插補(bǔ)對(duì)算法的實(shí)時(shí)性、快速性有較高的要求,在計(jì)算每一步插補(bǔ)點(diǎn)時(shí),若用式(2)定義的遞推公式,計(jì)算量大且有很多相同重復(fù)的計(jì)算。參照文獻(xiàn)[10],三階NURBS 改寫為矩陣形式,令
式中:ui,ui+1(i=3,4,…,n)為節(jié)點(diǎn)矢量U中的節(jié)點(diǎn),u∈[ui,ui+1]。把式(3)代入式(1),NURBS 曲線可寫為矩陣表達(dá)式:
M是4 ×4 矩陣,其矩陣元素完全由節(jié)點(diǎn)矢量決定。將式(4)進(jìn)一步整理,得到其多項(xiàng)式的表達(dá)形式:
式(5)中的系數(shù)K僅與控制點(diǎn)、節(jié)點(diǎn)矢量和權(quán)因子相關(guān),可在插補(bǔ)前提前計(jì)算出。通過上述轉(zhuǎn)化,避免了每步插補(bǔ)的重復(fù)迭代,方便求導(dǎo)運(yùn)算,提高了算法的效率和實(shí)時(shí)性。
數(shù)控系統(tǒng)根據(jù)速度V實(shí)時(shí)計(jì)算出下一插補(bǔ)周期刀具要達(dá)到的位置的這一過程,可以抽象為以下數(shù)學(xué)模型:已知當(dāng)前插補(bǔ)點(diǎn)的參數(shù)為ti,求參數(shù)ti+1(ti+1>ti),使‖C(ti+1)-C(ti)‖ =Li=ViT。構(gòu)造函數(shù)F(t),令F(t)=‖C(t)-C(ti)‖ -ViT。當(dāng)F(t)=0時(shí),所求的t即為下一插補(bǔ)點(diǎn)參數(shù)。其中:
用牛頓迭代公式對(duì)下一插補(bǔ)點(diǎn)參數(shù)進(jìn)行求解:
式中:下標(biāo)k+1 代表第k+1 次迭代結(jié)果。前一步插補(bǔ)點(diǎn)的參數(shù)差可表示為Δi=ti-ti-1,為方便計(jì)算,取迭代初值為ti+Δi,當(dāng)≤ε(ε 為迭代誤差)或達(dá)到最大迭代次數(shù)N時(shí),停止計(jì)算,tk+1即為下一插補(bǔ)點(diǎn)參數(shù)值ti+1。再將ti+1帶入式(5),即可計(jì)算出下一插補(bǔ)點(diǎn)C(ti+1)。
NURBS 曲線插補(bǔ)的實(shí)質(zhì)是用小直線段逼近曲線,這種逼近必然會(huì)造成弓高誤差(圖1)。為了保證加工精度必須要控制加工速度,將誤差控制在合理范圍內(nèi)。由于步長(zhǎng)較小,在計(jì)算弓高誤差δi時(shí),可以將曲線弧近似用圓弧代替。
式中:Li為插補(bǔ)步長(zhǎng);V為插補(bǔ)速度;T為插補(bǔ)周期;曲率半徑ρi是曲率的倒數(shù),即ρi=1/ki。對(duì)參數(shù)曲線C(u)來說曲率k可通過式(9)求得:
在曲線實(shí)時(shí)插補(bǔ)中,當(dāng)誤差超出了所允許的最大誤差δmax時(shí),需要按最大誤差來約束插補(bǔ)速度:
插補(bǔ)曲線時(shí),如果插補(bǔ)速度只有弓高誤差的約束,則在曲線曲率半徑極小處很容易出現(xiàn)速度的跳變,影響加工效果。為減小機(jī)床振動(dòng),需要對(duì)插補(bǔ)速度有切向加速度的約束:
式中:V(ui-1)為前一插補(bǔ)點(diǎn)的插補(bǔ)速度;atmax為最大切向加速度。
高速加工時(shí),在曲線曲率較大的區(qū)域有可能造成法向加速度偏大,超出機(jī)床的承受能力,因此還需要限制法向加速度來約束速度。根據(jù)法向加速度an=v2/ρ,可知在法向加速度約束條件下能達(dá)到的最大速度為:
同時(shí)滿足上述約束條件的插補(bǔ)速度為:
式中:F為規(guī)定的進(jìn)給速度,滿足此條件的瞬時(shí)速度V可以同時(shí)滿足最大誤差、最大加速度等約束的要求,即為下一步插補(bǔ)的插補(bǔ)速度。圖2 為本算法的流程圖。
對(duì)控制頂點(diǎn)為(33.5711,162.3358),(46.7231,125.1142),(83.7665,20.2769),(134.791,356.7960),(177.8616,28.3296),(225. 2277,122. 3978),(241.6865,155.0846),節(jié)點(diǎn)矢量為{0.0,0.0,0.0,0.0,0.1799,0.5066,0.8285,1,1,1,1},權(quán)因子均為1 的三次NURBS 曲線進(jìn)行插補(bǔ)。其加工路徑如圖3 所示。
設(shè)定最大進(jìn)給速度為6 m/min,加工中最大切向、法向加速度均為1000 mm/s2,起止點(diǎn)速度均為0,弓高誤差δ 為0.0005 mm,迭代誤差ε 為0.0001 mm,插補(bǔ)周期2 ms,在VS2008 的編程環(huán)境下進(jìn)行試驗(yàn)仿真,并用MATLAB 對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行圖像表達(dá)。進(jìn)一步分析,可以得到加工曲線的曲率變化,如圖4。
圖5 展示了加工過程中進(jìn)給速度的變化。比較圖4 和圖5,在曲線曲率較大的地方,由于弓高誤差和加速度的約束,進(jìn)給速度減小,插補(bǔ)速度能自適應(yīng)于加工路徑。圖6 反映了加工過程中勻速部分進(jìn)給速度的波動(dòng)情況。從仿真結(jié)果看,本文提出的插補(bǔ)算法大大減小了速度波動(dòng),使速度曲線更為平滑。圖7 顯示在本算法的加工條件下,加工誤差的變化??梢姳疚奶岢龅乃惴軌蚝芎玫乜刂萍庸ふ`差,滿足高速高精度加工的要求。
本文提出的NURBS 實(shí)時(shí)插補(bǔ)算法,使進(jìn)給速度能夠自適應(yīng)于加工軌跡,減小了計(jì)算中的重復(fù)部分,簡(jiǎn)化了計(jì)算,確保了插補(bǔ)算法的實(shí)時(shí)性。通過實(shí)驗(yàn)證明了該算法能夠滿足加工中的精度要求和性能要求,插補(bǔ)進(jìn)給速度波動(dòng)小,速度曲線平滑連續(xù)。
[1]趙玉剛,宋現(xiàn)春. 數(shù)控技術(shù)[M].北京:機(jī)械工業(yè)出版社,2003.
[2]Wang J,Yau H. Real -time NURBS interpolator:application to short linear segments[J]. The International Journal of Advanced Manufacturing Technology,2009,41(11 -12):1169 -1185.
[3]Yau H,Wang J. Fast bezier interpolator with real - time lookahead function for high-accuracy machining[J]. International Journal of Machine Tools and Manufacture,2007,47(10):1518 -1529.
[4]劉建偉. 數(shù)控系統(tǒng)運(yùn)動(dòng)規(guī)劃及B 樣條插補(bǔ)的研究[D]. 蘭州:蘭州理工大學(xué),2005.
[5]胡自化,張平. 三次B 樣條曲線恒速進(jìn)給實(shí)時(shí)插補(bǔ)算法的研究[J]. 制造技術(shù)與機(jī)床,2000(8):31 -33.
[6]邊玉超,張莉彥,戴鶯鶯,等. CNC 系統(tǒng)中NURBS 曲線實(shí)時(shí)插補(bǔ)算法研究[J]. 機(jī)械制造與自動(dòng)化,2003(6):36 -39.
[7]王允森,蓋容麗,孫一蘭,等.基于牛頓迭代法的NURBS 曲線插補(bǔ)算法[J].組合機(jī)床與自動(dòng)化加工技術(shù),2013(4):13 -17.
[8]施法中. 計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B 樣條[M]. 北京:高等教育出版社,2001.
[9]Les Piegl,Wayne Tiller. The NURBS book[Z]. Springer-Verlag Berlin and Heidelberg GmbH & Co.k,1995.
[10]陳紹平. 三次NURBS 曲線的插值與應(yīng)用[J]. 機(jī)械科學(xué)與技術(shù),2001(5):692 -693,633.