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