張萬軍 胡赤兵 鄔再新 張 峰 張國華 王保民
(①蘭州工業(yè)化設(shè)備有限公司,甘肅蘭州730050;②蘭州理工大學(xué)機(jī)電工程學(xué)院,甘肅蘭州730050;③蘭州理工大學(xué)數(shù)字制造技術(shù)與應(yīng)用省部共建教育部重點(diǎn)實(shí)驗(yàn)室,甘肅蘭州730050)
對于曲面處理而言,NURBS是目前流行的自由曲線與自由曲面的表達(dá)式,但其生成原理和表達(dá)式相對較為復(fù)雜。B樣條計(jì)算量大,特別是非均勻有理B樣條(NURBS),將嚴(yán)重影響運(yùn)動(dòng)的響應(yīng)時(shí)間。為了減少計(jì)算量,主要研究三次均勻有理B樣條曲線。而三次B樣條曲線由于能夠滿足處理一般工程問題的需要(當(dāng)特征點(diǎn)或型值點(diǎn)之間的距離比為1/3~3時(shí),其與三次NURBS曲線的差異很?。┣矣?jì)算簡便[1],因此三次B樣條曲線是工程上廣泛采用的曲線構(gòu)造方法和工程技術(shù)人員解決相關(guān)問題的首選。
對于三次B樣條曲線插補(bǔ)算法的研究已有大量的文獻(xiàn),其中許多算法都是為了力求在計(jì)算機(jī)上快速產(chǎn)生曲線而設(shè)計(jì)的,三次B樣條曲線大多數(shù)采用解三角方程組的方法,如遞推耦合法、循環(huán)約化法、矩陣分解法的并行算法,但對于多核計(jì)算機(jī)來說不一定都適用[2]。姚哲[3]提出一種基于泰勒公式的用于實(shí)時(shí)控制的任意空間參數(shù)曲線插補(bǔ)方法,葉伯生[4]提出NURBS曲線曲面得到廣泛應(yīng)用。這些文獻(xiàn)都是關(guān)于NURBS曲線曲面插補(bǔ)參數(shù)遞推的插補(bǔ),泰勒展開式一階、二階求解比較復(fù)雜,加工誤差較大。本文主要針對三次B樣條曲線的表達(dá)式泰勒公式展開式一階、二階展開式,修正調(diào)節(jié)插補(bǔ)增量Δu與插補(bǔ)速度v的關(guān)系,以達(dá)到修正改進(jìn)原三次B樣條曲線插補(bǔ)的目的。Δu與插補(bǔ)速度經(jīng)實(shí)例驗(yàn)證表明該插補(bǔ)算法可以提高插補(bǔ)運(yùn)算效率,大大地節(jié)約計(jì)算時(shí)間,從而實(shí)現(xiàn)樣條曲線的快速插補(bǔ)。
近年來,以 NURBS(Non-Uniform Rational BSpline非均勻有理B樣條)為內(nèi)部描述的自由曲線曲面造型技術(shù)得到廣泛的應(yīng)用和發(fā)展。NURBS不僅能精確統(tǒng)一地表示標(biāo)準(zhǔn)解析曲線和自由曲線,而且它的控制能力也是十分強(qiáng)大、靈活的。鑒于此原因,國際標(biāo)準(zhǔn)化組織(ISO)將NURBS方法定為STEP中的唯一數(shù)學(xué)方法。
NURBS曲線一分段的矢值有理多項(xiàng)式函數(shù),其表達(dá)式為[5]
式中:di(i=0,1,…,n)為控制點(diǎn),又稱德爾布點(diǎn),每個(gè)控制點(diǎn)對應(yīng)一個(gè)相應(yīng)權(quán)的權(quán)因子ωi。U=[u0,u1,…,un+k+1]稱為節(jié)點(diǎn)矢量,Ni,k(u)為k次規(guī)范B樣條基函數(shù)(對于本文涉及的三次NURBS曲線,k=3),是關(guān)于節(jié)點(diǎn)矢量的函數(shù),其遞推公式中ωi為權(quán)因子(i=0,1…,n),di,k(u)分別控制頂點(diǎn)相聯(lián)系(i=0,1…,n),Ni,k(u)為k次樣條基函數(shù)。按 Cox-de Boor遞推公式確定的k次規(guī)范B樣條基函數(shù),可由下式遞推計(jì)算[3]:
式中,ui是節(jié)點(diǎn)值,且為非減序列,U=|u0,u1,…,un+k+1|構(gòu)成了k次(k+1)B樣條基函數(shù)的節(jié)點(diǎn)矢量,每一基函數(shù)由對應(yīng)的k+2個(gè)節(jié)點(diǎn)確定。式(2)表明,高次B樣條曲線可用低次B樣條函數(shù)來表示,由此遞推且節(jié)點(diǎn)數(shù)目由控制頂點(diǎn)di(i=0,1,…,n)和曲線次數(shù)k確定(節(jié)點(diǎn)數(shù)目是m=n+k+2,n為控制項(xiàng)的點(diǎn)數(shù),k為B 樣條基函數(shù)的階數(shù))[6]。
在式(2)中B樣條曲線的方程式令k=3時(shí),將式(1)改寫為
將式(3)寫成矩陣的形式:
其中1 ~3 次系數(shù)矩陣Nk(k=1,2,3;i=0,1,2,3)分別為:
這樣,式(2)不用遞推即可展開,即可得到上述矩陣形式(二次均勻B樣條曲線):
同理可得到三次B樣條曲線的方程形式:
式中:H.O.T.是指 Taylor展開的高階項(xiàng)(High Order Terms)。
設(shè)v為沿曲線的進(jìn)給速度,可由曲線對時(shí)間t求導(dǎo)得到[6-9]:
本算法針對三次B樣條曲線參數(shù)的插補(bǔ),采用快速遞推的近似算法來預(yù)估新插補(bǔ)點(diǎn)的參數(shù)時(shí),發(fā)現(xiàn)泰勒公式展開式的一階導(dǎo)數(shù)、二階導(dǎo)數(shù)在每個(gè)插補(bǔ)周期T內(nèi)有相等的微小增量Δu,參數(shù)增量周期T恒定,Δu與插補(bǔ)速度v有關(guān),因此本文提出三次B樣條曲線修正插補(bǔ)算法。根據(jù)泰勒公式展開式(二階展開式)得:
因此,u對t的一階導(dǎo)數(shù)可以表示為
將式(9)、(10)代入式(8)得到泰勒公式一階展開式的近似計(jì)算公式為
當(dāng)插補(bǔ)周期T→0時(shí),ui+1≈ui,可以滿足泰勒公式一階展開式插補(bǔ)近似迭代。
進(jìn)一步求導(dǎo)可以得u對t的二階導(dǎo)數(shù):
設(shè)NURBS B曲線表示為p(u),則該曲線上參數(shù)u=ui的曲率為
所以該點(diǎn)曲率半徑Ri為
當(dāng)Ri→∞,即k→0時(shí),則有:
如果曲線曲率半徑很小,便可以滿足泰勒公式二階展開式插補(bǔ)近似迭代[10]
由式(11)、(18)可知,插補(bǔ)增量Δu由進(jìn)給速度V和插補(bǔ)周期T決定,在每一個(gè)插補(bǔ)周期中弦長不變,則插補(bǔ)周期是不變的。
在NURBS曲線時(shí)間分割插補(bǔ)的過程中,首先設(shè)置插補(bǔ)條件以及初始化參數(shù),通過循環(huán)計(jì)算每一步的參數(shù)值,得到新的數(shù)據(jù)點(diǎn),從而實(shí)現(xiàn)插補(bǔ)。同時(shí),在插補(bǔ)的過程中要使弓高誤差保持在一定范圍內(nèi),保證插補(bǔ)進(jìn)度實(shí)現(xiàn)插補(bǔ)運(yùn)算[11]。要使上面的插補(bǔ)算法實(shí)現(xiàn),具體的插補(bǔ)算法的流程圖如圖1所示。
任意輸入一組三次B樣條曲線的參數(shù),在數(shù)控機(jī)床中實(shí)現(xiàn)插補(bǔ)。例如由參數(shù)U=[0 0 0 0 0.45 0.636 0.742 1]控制頂點(diǎn)d0(0,0,1),d1(25,30,6),d2(50,50,16),d3(65,60,22),d4(77,70,30),相應(yīng)權(quán)因子ω=[1.6 1.7 0.7 1.25 0.6 0.85 1 1.2 1.2]
調(diào)用仿真程序,讀取NURBS插補(bǔ)G代碼G06.2,NURBS.txt',rt'在數(shù)控機(jī)床中完成插補(bǔ)。
對此自由NURBS曲線進(jìn)行實(shí)時(shí)動(dòng)態(tài)軌跡仿真插補(bǔ),其最后結(jié)果如圖2所示。
根據(jù)前面文章中給出的任意點(diǎn)三次B樣條曲線插補(bǔ)參數(shù),做出原曲線與修正曲線的輪廓誤差圖如圖3所示。
表1 修正后的曲線與原曲線精度誤差分析
從圖3可以看出,修正后的三次B樣條曲線實(shí)現(xiàn)了快速插補(bǔ)運(yùn)算。減小了輪廓誤差,但仍需要對新修正的插補(bǔ)算法與原插補(bǔ)算法做如表1所示的精度誤差分析。
由表1可知,該插補(bǔ)算法減小了插補(bǔ)誤差,提高了插補(bǔ)精度,節(jié)約了插補(bǔ)時(shí)間,同時(shí)也提高插補(bǔ)運(yùn)算的效率,滿足插補(bǔ)的要求。
(1)分析了三次B樣條的泰勒公式一階、二階展開式在插補(bǔ)周期一定的情況下,插補(bǔ)增量只與插補(bǔ)速度有關(guān),通過改變插補(bǔ)增量可以達(dá)到插補(bǔ)修正的目的。并結(jié)合具體實(shí)例在MATLAB 7.0上驗(yàn)證該算法是正確的,達(dá)到了參數(shù)修正的目的。
(2)該插補(bǔ)算法簡化了三次B樣條曲線數(shù)學(xué)遞推公式推導(dǎo)的過程,實(shí)現(xiàn)樣條曲線的快速插補(bǔ),對應(yīng)用該插補(bǔ)算法解決三次B樣條曲線等重大的工程問題具有重要的現(xiàn)實(shí)意義。
[1]方憶湘,劉文學(xué).基于幾何特性的三次均勻B樣條曲線構(gòu)造描述[J].工程圖學(xué)學(xué)報(bào),2006(2):96 -102.
[2]苗莎,鄭曉嶶.三次插值樣條曲線擬合多核并行算法[J].計(jì)算機(jī)應(yīng)用,2010,12(30):3194 -3196.
[3]姚哲,馮景春,王宇晗.面向五軸加工的雙NURBS曲線插補(bǔ)算法[J].上海交通大學(xué)學(xué)報(bào),2008,42(2):2 -8.
[4]葉伯生,楊叔子.CNC系統(tǒng)中三次B樣條曲線的高速插補(bǔ)方法研究[J].中國機(jī)械工程,1998,9(3):42 -43.
[5]施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京:高等教育出版社,2001.
[6]田國華,黃德超,歐長勁.多管相貫坡口曲線數(shù)控切割割炬姿勢態(tài)控制函數(shù)的重構(gòu)[J].蘭州理工大學(xué)學(xué)報(bào),2011,37(5):46 -49.
[7]Cox M G,Cheng M Y.The numerical evaluation of B - spline[J].J inst Maths Applications,1972(10):134 -149.
[8]鄔再新,張萬軍,胡赤兵,等.NURBS修正插補(bǔ)算法的研究[J].制造業(yè)自動(dòng)化,2011,11(33):48 -50.
[9]張萬軍.復(fù)雜曲線曲面插補(bǔ)技術(shù)修正算法的研究法[D].蘭州:蘭州理工大學(xué),2011.
[10]孔凡國,郝尚華,鐘延志.三次 B樣條曲線插補(bǔ)算法的VC實(shí)現(xiàn)[J].中國新技術(shù)新產(chǎn)品,2009(17):8 -9.
[11]Tasi Meng-Shium,Nien Hao-Wei,Yau Hong-Tzong.Development of an integrat- ed look-ahead dynamics-bases NURBS interpolator for high presion machining[J].Computer Aided Design,2008,40:554-556.