鄔再新,張萬軍,胡赤兵,張 峰
(1. 蘭州理工大學(xué) 數(shù)字制造技術(shù)與應(yīng)用省部共建教育部重點(diǎn)實(shí)驗(yàn)室,蘭州 730050;2. 蘭州理工大學(xué) 機(jī)電工程學(xué)院,蘭州 730050;3. 蘭州瑞豐工貿(mào)有限公司,蘭州 730050)
目前只有極少數(shù)FANUC、Siemens、三菱等數(shù)控系統(tǒng)支持NURBS插補(bǔ),而絕大多數(shù)數(shù)控系統(tǒng)支持直線、圓弧或拋物線等插補(bǔ)[1]。于是研究NURBS插補(bǔ)方法在開放的CNC系統(tǒng)中就顯得十分必要,CNC系統(tǒng)中添加NURBS曲線插補(bǔ)[2],通常使用參數(shù)遞推方法插補(bǔ)。對(duì)NURBS曲線插補(bǔ)參數(shù)遞推一階、兩階求解(導(dǎo)數(shù))比較麻煩,加工誤差較大。本文給出一種NURBS曲線修正的插補(bǔ)算法,該算法可以提高加工精度、實(shí)現(xiàn)高效率的加工。
NURBS曲線一分段的矢值有理多項(xiàng)式函數(shù),其表達(dá)式為:
式中wi為權(quán)因子(i=0, 1, …, n),vi分別控制頂點(diǎn)相聯(lián)系(i=1, …, n),Bi, k(u)為k次樣條基函數(shù)。一條NURBS曲線由它的幾何三要素定義控制頂點(diǎn)、權(quán)因子和節(jié)點(diǎn)矢量等構(gòu)成。
NURBS曲線用控制點(diǎn)、權(quán)因子和節(jié)點(diǎn)矢量來表達(dá)曲線信息。減少了精度損失,可用CNC原理上的最小步長(zhǎng)(由系統(tǒng)插補(bǔ)周期確定的進(jìn)給弦長(zhǎng))來逼近輪廓,獲得最高的逼近NURBS曲線插補(bǔ)的精度。參數(shù)作為NC系統(tǒng)程序的一部分,由CNC系統(tǒng)內(nèi)部進(jìn)行實(shí)時(shí)計(jì)算生成NURBS曲線[5],就可以滿足NURBS實(shí)時(shí)性。
為減少NURBS曲線插補(bǔ)中實(shí)時(shí)計(jì)算的工作量,可把不需要在實(shí)時(shí)插補(bǔ)中進(jìn)行的所有操作(如控制頂點(diǎn)、權(quán)因子、節(jié)點(diǎn)矢量等)放在插補(bǔ)預(yù)處理中完成,降低實(shí)時(shí)插補(bǔ)的計(jì)算復(fù)雜程度,提高插補(bǔ)計(jì)算的速度[4]。
本算法采用快速遞推的近似算法來預(yù)估新插補(bǔ)點(diǎn)。以對(duì)時(shí)間的二階差分代替微分[6],即:
代入二階泰勒級(jí)數(shù)展開式
然后將估計(jì)參數(shù)u′i+1代入曲線方程可得預(yù)估插補(bǔ)點(diǎn) p′i+1及預(yù)估插補(bǔ)點(diǎn)對(duì)應(yīng)的進(jìn)給步長(zhǎng) Δl′i=p (ui+1)-p (ui) 得到該插補(bǔ)周期增量值,但是由求解比較麻煩,故而采用修正法對(duì)其改進(jìn)。
2.3.1 滿足插補(bǔ)前修正各軸控制的關(guān)系式[8]
利用樣條曲線構(gòu)造方法,產(chǎn)生一條空間n階導(dǎo)數(shù)連續(xù)的自由曲線。該空間自由曲線第i段為:
滿足如下條件:
2.3.2 參數(shù)插補(bǔ)過程中滿足的算法條件
利用式(1)求方程pi(u)得一階導(dǎo)數(shù)、兩階導(dǎo)數(shù)建立關(guān)于參數(shù)u 的方程。令V0=p0,Vn+2=pn:
式中“×、空格”,分別表示有數(shù)值、零。通過曲線參數(shù)化求解(同樣可建立兩階參數(shù)方程可求出解)、改變“×”的值(含參數(shù)u)、反算控制點(diǎn),完成整過插補(bǔ)。
筆者提出的NURBS曲線修正算法插補(bǔ)流程圖如圖1所示。
圖1 NURBS曲線修正算法流程圖
在NURBS曲線插補(bǔ)的過程中,首先設(shè)置插補(bǔ)實(shí)時(shí)滿足的條件參數(shù)遞推和NURBS曲線求導(dǎo)(一階、兩階),判斷在插補(bǔ)中是否從在常量進(jìn)行預(yù)處理,從而實(shí)現(xiàn)插補(bǔ)。同時(shí),在插補(bǔ)的過程中要使誤差(弓高)在一定范圍內(nèi),完成插補(bǔ)。筆者給出的插補(bǔ)算法實(shí)現(xiàn)簡(jiǎn)圖,如圖2所示。
圖2 NURBS曲線插補(bǔ)算法實(shí)現(xiàn)簡(jiǎn)圖
在插補(bǔ)中為了保證插補(bǔ)精度,要使插補(bǔ)曲線與NURBS曲線的弓高誤差在規(guī)定的精度范圍之內(nèi),如圖3所示。
圖3 NURBS曲線誤差分析
圓弧插補(bǔ)時(shí)的逼近誤差e與插補(bǔ)周期T、進(jìn)給速度F以及該曲線在逼近處的的曲率半徑ρ的關(guān)系為:
因?yàn)椤鱨=FT,代入上式有:
當(dāng) e= eh,Δli= Δl時(shí),由式(3)得:
可見在整個(gè)插補(bǔ)的過程中,若T越長(zhǎng),或F越大,或ρ越小,則插補(bǔ)誤差越大。在實(shí)際的數(shù)控系統(tǒng)中,通過對(duì)F進(jìn)行限制來保證e在允許的范圍內(nèi)。NURBS曲線模擬(近似)誤差e與實(shí)際誤差MN如圖4所示:
圖4 NURBS曲線近似誤差與實(shí)際誤差
根據(jù)計(jì)算由圖4列出eh的關(guān)系式:
弓高誤差和實(shí)際誤差相比較小,只在曲線拐點(diǎn)的地方有較小的影響。因此在一般情況下可忽略,說明曲線實(shí)際控制與模擬控制相吻合。
上述算法在matlab7.0上進(jìn)行驗(yàn)證,利用不同控制點(diǎn)的坐標(biāo)(x, y),節(jié)點(diǎn)、權(quán)因子、次數(shù)等,以X軸的控制位置和Y軸的控制位置作出實(shí)際輪廓控制位置和插補(bǔ)控制位置的NURBS曲線插補(bǔ)運(yùn)算仿真圖。驗(yàn)證曲線實(shí)際控制與模擬控制,如圖5所示。
圖5 曲線實(shí)際控制與模擬曲線插補(bǔ)
本文建立的NURBS曲線插補(bǔ)修正算法通過在matlab7.0上,模擬曲線實(shí)際控制與模擬控制相吻合,從而驗(yàn)證該算法是正確的,達(dá)到參數(shù)修正的目的。該算法不僅滿足加工精度方面的要求,同時(shí)滿足了加工實(shí)時(shí)性要求。
[1] 張林驛, 楊濤, 肖田園, 等. 網(wǎng)絡(luò)化制造環(huán)境下的資源發(fā)現(xiàn)研究[J]. 計(jì)算機(jī)集成制造系統(tǒng)—CIMS2003,9(1):47-51.
[2] 王永紅. NURBS曲線數(shù)控插補(bǔ)算法研究[J]. 機(jī)械制造與研究, 2010. 39(4): 55-56.
[3] 施法中. 計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京: 高等教育出版社, 2001.
[4] 高成秀, 劉在德. NURBS曲線插補(bǔ)算法的研究[J]. 制造業(yè)自動(dòng)化, 2006, 28(8): 27-28.
[5] 鄔再新, 王佳, 唐翠萍. NURBS曲線的平滑自適應(yīng)插補(bǔ)算法研究[J]. 科學(xué)技術(shù)與工程, 2010(2): 1054-1056.
[6] 謝黎明, 鄭威, 靳嵐, 沈浩. 基于NURBS插補(bǔ)算法的嵌入式數(shù)控系統(tǒng)的研究與開發(fā)[J]. 制造技術(shù)與機(jī)床, 2008(7): 152-154.
[7] Jingchun Feng,Yuhao Li,Yuhan Wang,et al.Design of a realtime adaptive NURBS interpolator with axis acceleration limit[J] . Int J Adv Manuf Technol, 2009,09:327-341.
[8] MY Cheng,MC Tsai,JC Kuo. Real-time NURBS command generators for CNC servo controllers[J]. International journal of Machine Tools and Manufacture, 2002,42: 801-813.