唐良寶,祖重光
(桂林電子科技大學(xué),廣西桂林541004)
目前,在CAD /CAM系統(tǒng)中,參數(shù)形式的自由曲線曲面已經(jīng)成為描述零件外形輪廓的最常用的數(shù)學(xué)方法之一[1]。NURBS曲線因具有良好的局部控制和形狀表達(dá)能力,以及能夠?qū)馕銮€和自由曲線進(jìn)行精確的統(tǒng)一表達(dá),已成為STEP-NC 標(biāo)準(zhǔn)中自由曲線曲面的標(biāo)準(zhǔn)表達(dá)形式。并于1991年被國(guó)際標(biāo)準(zhǔn)化組織(ISO)規(guī)定為工業(yè)產(chǎn)品模型數(shù)據(jù)交換標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是定義工業(yè)產(chǎn)品幾何形狀的唯一標(biāo)準(zhǔn)[1]。
時(shí)間分割法是NURBS曲線常用的數(shù)據(jù)采樣插補(bǔ)方法,基本原理是按照插補(bǔ)周期進(jìn)給段的長(zhǎng)度來(lái)分割曲線,以弦線來(lái)逼近待插補(bǔ)曲線。NURBS曲線插補(bǔ)一般分為粗插補(bǔ)和精插補(bǔ)兩個(gè)部分。其中在粗插補(bǔ)部分,依據(jù)加工機(jī)械的進(jìn)給速度和加工件的精度要求等因素,對(duì)曲線進(jìn)行插補(bǔ)運(yùn)算確定插補(bǔ)點(diǎn),這是NURBS曲線插補(bǔ)的主要任務(wù)。粗插補(bǔ)的目的是獲得加工所需要的微小直線段并建立合理的加工速度,使得加工曲線更為平滑。精插補(bǔ)部分則可以根據(jù)現(xiàn)有的直線或圓弧插補(bǔ)技術(shù)來(lái)進(jìn)行加工。
一條NURBS曲線可以表示為一分段有理多項(xiàng)式矢函數(shù):
其中:ωi(i=0,1,…,n)稱為權(quán)因子,分別與控制定點(diǎn)di(i=1,2,…,n)相聯(lián)系。首末權(quán)因子ω0,ωn≥0,且順序k個(gè)權(quán)因子不同時(shí)為零,以防止分母為零、保留凸包性質(zhì)及曲線不致因權(quán)因子而退化為一點(diǎn)。Ni,k(u)是由節(jié)點(diǎn)矢量U=[u0,u1,…un+k+1]決定的k次規(guī)范B 樣條基函數(shù)。
由于精確的NURBS曲線反函數(shù)難以準(zhǔn)確地獲得,并且在插補(bǔ)過(guò)程中通常是以直線逼近曲線的,因此,在求輪廓步長(zhǎng)和對(duì)應(yīng)關(guān)系時(shí)多采用數(shù)值方法近似求取。在NURBS曲線插補(bǔ)中常用的方法是TAYLOR展開法。
在NURBS曲線插補(bǔ)中,為了便于計(jì)算、縮小計(jì)算量,通常采用一階或二階精度。因此,ui+1可表示為:
一階近似式:
二階近似式:
使用TAYLOR方法,在確定了插補(bǔ)周期之后,在計(jì)算NURBS曲線上下一個(gè)插補(bǔ)點(diǎn)時(shí),需要進(jìn)行速度規(guī)劃,并且進(jìn)行反求ui+1計(jì)算和p(ui+1)求解計(jì)算。由于在反求ui+1時(shí),涉及到求p(u)的一階導(dǎo)數(shù)甚至是二階導(dǎo)數(shù),計(jì)算量大不利于實(shí)時(shí)插補(bǔ)。另外在高曲率階段,使用TAYLOR展開法速度波動(dòng)大,在機(jī)械系統(tǒng)驅(qū)動(dòng)能力不能滿足要求時(shí),使用TAYLOR展開法會(huì)產(chǎn)生較大的誤差。
采用預(yù)估校正法求解確定插補(bǔ)周期下NURBS曲線上的點(diǎn),可以將TAYLOR展開法的兩個(gè)步驟合并起來(lái)。直接運(yùn)用正向運(yùn)算,避免了NURBS曲線的求導(dǎo)運(yùn)算。二分預(yù)估校正法可以分為兩個(gè)部分,即插補(bǔ)點(diǎn)預(yù)估和校正兩個(gè)階段。圖1為預(yù)估校正算法的基本流程圖。
圖1 預(yù)估校正算法的基本流程圖
二分預(yù)估校正法的計(jì)算過(guò)程。假設(shè)當(dāng)前的插補(bǔ)點(diǎn)所對(duì)應(yīng)的參數(shù)值為ui,經(jīng)過(guò)一個(gè)插補(bǔ)周期T 后,下一個(gè)插補(bǔ)點(diǎn)所對(duì)應(yīng)的參數(shù)值為ui+1。采用二分預(yù)估校正法時(shí),ui+1可由公式ui+1=ui+Δui直接預(yù)估獲得,這里Δui=ui-ui-1為前一個(gè)插補(bǔ)點(diǎn)的參數(shù)增量。應(yīng)用de Boor 遞推公式[2]計(jì)算相對(duì)應(yīng)的NURBS曲線上的點(diǎn)p(ui+1)。計(jì)算點(diǎn)p(ui)與p(ui+1)之間的弦長(zhǎng)值Δsi+1,比較Δsi+1與標(biāo)準(zhǔn)步長(zhǎng)Δs之間的誤差是否滿足許用精度,進(jìn)而確定曲線插補(bǔ)點(diǎn)p(ui+1)和參數(shù)值ui+1。圖2所示為二分預(yù)估校正法的計(jì)算流程。
在應(yīng)用二分預(yù)估校正法計(jì)算NURBS曲線時(shí),曲線上各個(gè)插補(bǔ)點(diǎn)之間的弧長(zhǎng)是由弦長(zhǎng)近似代替的,因此在曲線弧和弦線之間存在著弓高誤差,如圖3所示。線段AB 即為曲線的弓高誤差δ。傳統(tǒng)的計(jì)算弓高誤差的方法是應(yīng)用公式得出,但當(dāng)曲線為自由曲線時(shí)曲率半徑ρ的計(jì)算非常復(fù)雜。
圖2 二分預(yù)估校正法的計(jì)算流程
圖3 弓高誤差圖
由于在NURBS曲線插補(bǔ)過(guò)程中每個(gè)插補(bǔ)周期T(ms)的進(jìn)給量非常微小,在給定的加工速度下曲線的插補(bǔ)增量也非常微小,因此擬用近似直線段AC 代替曲線弓高誤差A(yù)B,其中點(diǎn)C為曲線上點(diǎn)點(diǎn)A坐標(biāo)為由此得線段AC的長(zhǎng)度計(jì)算公式為此即為弓高誤差δ的近似計(jì)算公式。
為了不使插補(bǔ)計(jì)算過(guò)程中產(chǎn)生超出加工設(shè)備驅(qū)動(dòng)加工能力的速度指令,需要對(duì)曲線進(jìn)行插補(bǔ)周期內(nèi)速度與加速度檢驗(yàn)。
這樣求得的插補(bǔ)軌跡便具有了進(jìn)給速度自適應(yīng)的能力,并且將進(jìn)給速度和進(jìn)給加速度控制在給定的范圍之內(nèi)。
被插補(bǔ)的3次NURBS曲線如圖4所示。采用二分預(yù)估校正算法對(duì)曲線進(jìn)行插補(bǔ)仿真運(yùn)算,程序在Visual C++6.0 環(huán)境中運(yùn)行,插補(bǔ)周期T=0.002 s,最大弓高誤差δ=0.001 mm,最大軸向速度vmax=200 mm/s,最大軸向加速度amax=500 mm/s2。圖5給出了計(jì)算過(guò)程中Δu與Δs之間的關(guān)系。
圖4 3次NURBS曲線
圖5 實(shí)例曲線Δu與Δs之間的關(guān)系
從圖5可以看出:在高曲率部分 (圖中圓圈A中所示部分),參數(shù)增量Δu 和位移增量Δs之間是單調(diào)遞增關(guān)系,位移偏差可以通過(guò)改變參數(shù)增量的大小來(lái)實(shí)現(xiàn);并且當(dāng)參數(shù)增量變化很小時(shí),位移增量近似等于參數(shù)增量。另外結(jié)合圖4可以看出:在曲線曲率較平緩的區(qū)域,位移增量也基本趨于不變。
采用插補(bǔ)點(diǎn)預(yù)估校正算法避免了對(duì)NURBS曲線求導(dǎo)運(yùn)算,簡(jiǎn)化了計(jì)算過(guò)程。表1給出了相同插補(bǔ)周期(T=2 ms)下TAYLOR展開法與二分法的插補(bǔ)計(jì)算時(shí)間。
表1 計(jì)算時(shí)間對(duì)照表(插補(bǔ)周期T=2 ms)次/ms
NURBS曲線插補(bǔ)技術(shù)是高性能CNC系統(tǒng)的標(biāo)志之一。在開放式數(shù)控系統(tǒng)中,引入NURBS曲線插補(bǔ)技術(shù)能夠有效地提高插補(bǔ)速度和插補(bǔ)精度。NURBS曲線的插補(bǔ)點(diǎn)計(jì)算過(guò)程的簡(jiǎn)化,能夠有效地提高插補(bǔ)計(jì)算效率,使插補(bǔ)運(yùn)算更適用于實(shí)時(shí)控制。文中用二分法預(yù)估校正算法代替?zhèn)鹘y(tǒng)的TAYLOR展開法進(jìn)行插補(bǔ)計(jì)算,簡(jiǎn)化了插補(bǔ)過(guò)程,提高了插補(bǔ)計(jì)算的效率。
【1】吳穎輝,諶永祥,李永橋.NURBS曲線插補(bǔ)技術(shù)在CNC中的應(yīng)用[J].信息技術(shù),2011,40(2):94-96.
【2】施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B 樣條[M].北京:高等教育出版社,2001:306-343.
【3】滕二,桂貴生.NURBS曲線插補(bǔ)在高速加工中的應(yīng)用[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(8):26-28.
【4】和廣強(qiáng),于東,張曉輝.基于速度前瞻控制的五軸NURBS曲線插補(bǔ)方法[J].組合機(jī)床與自動(dòng)化加工技術(shù),2011(5):38-45.
【5】郝雙暉,宋芳,金立川,等.同周期控制NURBS曲線高速高精度插補(bǔ)算法研究[J].機(jī)械設(shè)計(jì)與制造,2010(7):12-14.
【6】馬方魁,郇極.數(shù)控機(jī)床NURBS曲線插補(bǔ)運(yùn)動(dòng)誤差分析與仿真[J].中國(guó)機(jī)械工程,2008,19(20):2446-2449.
【7】楊旭靜,胡仲勛,鐘志華.面向刀具路徑生成的NURBS曲線擬合算法研究[J].中國(guó)機(jī)械工程,2009,20(8):984-987.
【8】宋春華.數(shù)控技術(shù)的現(xiàn)狀及發(fā)展趨勢(shì)[J].裝備制造技術(shù),2011,30(3):40-42.
【9】沈洪奎.自適應(yīng)NURBS曲線插補(bǔ)關(guān)鍵技術(shù)及實(shí)現(xiàn)研究[D].杭州:浙江大學(xué),2010.
【10】劉宇,戴麗,劉杰.泰勒展開NURBS曲線插補(bǔ)算法[J].東北大學(xué)學(xué)報(bào),2009,30(1):117-120.
【11】LEI W T,SUNG M P,LIN L Y,et al.Fast Real-time NURBS Path Interpolation for CNC Machine Tools[J].International Journal of Machine Tools & Manufacture,2007,47:1-12.