史旭光 胥布工
華南理工大學(xué),廣州,510640
隨著硬件平臺(tái)的不斷改善以及曲線曲面造型理論的發(fā)展,CNC系統(tǒng)處理參數(shù)樣條曲線的能力受到研究者的重視。國(guó)外著名廠商如日本FANUC公司已將非均勻有理B樣條(NURBS)插補(bǔ)功能集成于其產(chǎn)品中,日本Mitsubishi、德國(guó)SIEMENS已經(jīng)開(kāi)發(fā)出了帶此項(xiàng)功能的CNC系統(tǒng)。Piegl等[1]解釋了NURBS應(yīng)用的一些理論性問(wèn)題,為NURBS技術(shù)發(fā)展和應(yīng)用奠定了基礎(chǔ)。此后,相關(guān)研究論文不斷涌現(xiàn):Yang等[2]最早利用一階和二階泰勒展開(kāi)計(jì)算參數(shù)曲線進(jìn)給量,Yeh等[3]給出了依據(jù)曲線曲率來(lái)動(dòng)態(tài)改變速度進(jìn)給的理論依據(jù);彭芳瑜等[4]將速度前瞻控制技術(shù)引入?yún)?shù)曲線插補(bǔ)理論中,Guo等[5]研究了機(jī)床動(dòng)力學(xué)特性及自適應(yīng)插補(bǔ)策略,李建剛等[6]提出了在線速度修正的NURBS曲線插補(bǔ)器結(jié)構(gòu),趙國(guó)勇等[7]研究了加速度和弓高誤差約束條件下的NURBS曲線插補(bǔ)問(wèn)題。
針對(duì)NURBS曲線、曲面在數(shù)控領(lǐng)域中的應(yīng)用,相關(guān)研究包括如何減少數(shù)值計(jì)算復(fù)雜度、結(jié)合反饋控制策略提高加工精度、結(jié)合機(jī)械動(dòng)力學(xué)約束條件提高運(yùn)動(dòng)平滑度等,這些工作在上述文獻(xiàn)中已得到較為充分的挖掘,而對(duì)于NURBS曲線這一類較特殊的曲線在CNC系統(tǒng)內(nèi)部采用何種方式去逼近以獲得較為滿意的控制效果,相關(guān)文獻(xiàn)論述不多。另外,由于參數(shù)樣條曲線本身構(gòu)造的局限性,即其數(shù)值計(jì)算存在截?cái)嗾`差,這一特性直接導(dǎo)致其切線方向計(jì)算的不穩(wěn)定性,由此帶來(lái)了速度波動(dòng)性問(wèn)題,相關(guān)學(xué)者提出了具有數(shù)值反饋特性的自適應(yīng)插補(bǔ)概念[8],本文將對(duì)這一問(wèn)題進(jìn)行探討并展開(kāi)實(shí)驗(yàn)研究。
依據(jù)文獻(xiàn)[1],一條k次NURBS曲線可表示為一分段有理多項(xiàng)式函數(shù):
式中,u為參變量,u∈[0,1];Ri,k(u)為該NURBS曲線的有理基底函數(shù);Pi為控制點(diǎn);ωi為控制點(diǎn)Pi的權(quán)因子;Ni,k(u)為k次規(guī)范B樣條基函數(shù)。
NURBS曲線插補(bǔ)需要計(jì)算相應(yīng)參數(shù)曲線導(dǎo)數(shù),如 C(1)(u)、C(2)(u)等,需要對(duì)每個(gè)控制節(jié)點(diǎn)的基底函數(shù)Ri,k(u)進(jìn)行求導(dǎo),相應(yīng)一階、二階求導(dǎo)公式如下:
由式(2)、式(3)知,進(jìn)行NURBS曲線計(jì)算需要進(jìn)行大量數(shù)據(jù)運(yùn)算工作,其算法效率極大影響著CNC系統(tǒng)工作的有效性。
對(duì)現(xiàn)代CNC系統(tǒng)配備高次曲線插補(bǔ)功能是目前的研究熱點(diǎn),各種曲線計(jì)算方法層出不窮,其中雙圓弧形式數(shù)值計(jì)算方法開(kāi)始進(jìn)入相關(guān)研究人員的視野。Piegl等[9]給出了雙圓弧(biarc)應(yīng)用于曲線逼近的若干重要特征。以此為理論基礎(chǔ),本文給出其具體分析過(guò)程。
雙圓弧由兩個(gè)光滑連接的圓弧構(gòu)成,用來(lái)逼近已知起點(diǎn)和終點(diǎn)的曲線段。具體描述如下:給定某曲線段的起點(diǎn)P s和終點(diǎn)P e,并且相應(yīng)知道起點(diǎn)和終點(diǎn)單位切向量Ts和Te,則雙圓弧逼近問(wèn)題需要滿足以下三條規(guī)律:①該雙圓弧通過(guò)該段曲線起點(diǎn)Ps和終點(diǎn)Pe;②在起點(diǎn)Ps具有和該曲線相同的切向量T s,終點(diǎn)處具有相同的切向量T e;③構(gòu)成雙圓弧的兩個(gè)子圓弧以G1型光滑連接。
由于雙圓弧具有以上特點(diǎn),因而具備描述曲線段一階切向量的性質(zhì),相對(duì)于傳統(tǒng)上的直線段和單圓弧法能夠容納被描述曲線段的更多物理信息。應(yīng)用此理論于數(shù)控系統(tǒng)加工中,可以獲得更為平坦而光滑的加工軌跡,理論上可以保證軌跡曲線段斜率連續(xù),也可以用較少的圓弧來(lái)逼近原先設(shè)計(jì)的曲線,減輕了數(shù)據(jù)傳輸負(fù)擔(dān)。
根據(jù)Piegl等的定義給出雙圓弧應(yīng)用曲線逼近一般理論推導(dǎo)過(guò)程:一個(gè)雙圓弧完整的約束條件只需要相應(yīng)的5個(gè)控制點(diǎn)即可,如圖1中的P s、P1 、P2 、P3 、P e 。
圖1 雙圓弧曲線逼近示意圖
不失一般性,我們由相應(yīng)的定義可以給出未知的三個(gè)控制點(diǎn)計(jì)算公式:
式中,α和β均為正數(shù)。
取中間變量v=P s-P e,整理式(6)可得
上式中未知變量為α、β,令r=α/β,則有
相當(dāng)多的研究文獻(xiàn)集中于r值的分析,我們?nèi)=1,大大簡(jiǎn)化了數(shù)值計(jì)算工作量,其相應(yīng)的曲線描述效果也經(jīng)過(guò)了實(shí)驗(yàn)檢測(cè)。為將上述雙圓弧曲線逼近理論應(yīng)用于NURBS插補(bǔ)過(guò)程中,這里給出具體實(shí)現(xiàn)算法步驟。
NURBS參數(shù)曲線插補(bǔ)問(wèn)題一般可表述為如下形式:
假設(shè)某一個(gè)三維空間曲線可表示為
設(shè)當(dāng)前曲線路徑坐標(biāo)為
則下一個(gè)插補(bǔ)周期相應(yīng)軌跡坐標(biāo)為
通過(guò)不斷地進(jìn)行uk+1=uk+Δu的迭代運(yùn)算,從而獲得完整的曲線路徑坐標(biāo)。獲得了曲線路徑坐標(biāo)只是完成了插補(bǔ)工作的第一部分即粗插補(bǔ)部分,接下來(lái)利用雙圓弧實(shí)現(xiàn)對(duì)前一段粗插即C(uk)和C(uk+1)之間數(shù)據(jù)的密化,亦即完成精插補(bǔ)。利用雙圓弧實(shí)現(xiàn)精插的基本原理是:利用已知的計(jì)算得到的 NURBS曲線上的點(diǎn)C(uk)和C(uk+1)作為雙圓弧的起始坐標(biāo)和終點(diǎn)坐標(biāo),即為式(4)、式(5)中的P s和P e,而利用式(7)獲得關(guān)鍵中間點(diǎn)P2,則曲線分布構(gòu)成為P s P2和P2P e兩部分曲線,相應(yīng)地用兩段圓弧去逼近原始曲線,這就是雙圓弧算法的核心意義所在。
除了兩端點(diǎn)坐標(biāo)約束之外,算法還引入端點(diǎn)的切線向量作為額外的幾何信息,為簡(jiǎn)化計(jì)算,這里起點(diǎn)和終點(diǎn)切線方向向量可由NURBS曲線特定控制頂點(diǎn)以給定參數(shù)形式確定。由端點(diǎn)坐標(biāo)Ps、Pe和切線向量Ts、Te獲得曲線的切向圓弧來(lái)逼近原始曲線,進(jìn)而完成曲線精插補(bǔ)。基于雙圓弧的NURBS曲線插補(bǔ)流程如圖2所示。
圖2 雙圓弧插補(bǔ)流程圖
傳統(tǒng)上利用NURBS曲線插補(bǔ)技術(shù)產(chǎn)生曲線的一般方法是:利用參數(shù)值uk+1=uk+Δu來(lái)進(jìn)行迭代進(jìn)而完成粗插補(bǔ)運(yùn)算。通常,在粗插補(bǔ)運(yùn)算過(guò)程中,參數(shù)曲線插補(bǔ)器常用的結(jié)構(gòu)包括等參數(shù)插補(bǔ)、等速度插補(bǔ)、具備速度規(guī)劃特征的插補(bǔ)三種方式。Bedi等[10]最早提出均勻增加參數(shù)值的方式,即 Δu為一常數(shù)。該方法形式簡(jiǎn)單,便于實(shí)現(xiàn),由于參數(shù)域空間與笛卡兒空間的不一致性,參數(shù)的等間隔距離選取并不能保證曲線位置也等間隔分布。所以參數(shù)域內(nèi)的等間隔造成了相鄰插補(bǔ)區(qū)域之間的插補(bǔ)距離不等,造成進(jìn)給速度的嚴(yán)重波動(dòng)。
文獻(xiàn)[11]較早提出利用泰勒展開(kāi)關(guān)系式來(lái)獲得較為精準(zhǔn)的uk和uk+1之間的關(guān)系。由曲線定義可知,任意時(shí)刻曲線速度為
式中,s為位移。
相應(yīng)地,參數(shù)u對(duì)t的微分可表示為
式中,x′、y′、z′均為相對(duì) u 之微分。
合并式(12)和式(13)則可以得到直接解出式(14)較為困難而且計(jì)算量很大,
這里利用差分近似的方式給出離散形式解:
式中,T為插補(bǔ)周期。
為減小計(jì)算量,可以采用一階或者二階泰勒展開(kāi)近似。由第2節(jié)定義,一階和二階泰勒展開(kāi)分別為
一般來(lái)說(shuō),進(jìn)行到二階泰勒展開(kāi)已可滿足大多數(shù)工程應(yīng)用,此時(shí)高階項(xiàng)的影響已可忽略不計(jì)。另外也可看到,為了獲得參數(shù)值的二階泰勒展開(kāi),需要進(jìn)行大量的數(shù)據(jù)運(yùn)算,包括求取一階和二階導(dǎo)數(shù),這給相關(guān)應(yīng)用帶來(lái)了很大困難,迫使在具體使用時(shí)往往需要在精度和速度之間作出平衡。
在研究上述傳統(tǒng)數(shù)值計(jì)算方法的同時(shí),本文擬結(jié)合控制思想,研究一種基于數(shù)值反饋特性的自適應(yīng)插補(bǔ)的思想和策略,即利用學(xué)習(xí)迭代的思想,對(duì)每一個(gè)uk+1進(jìn)行n次學(xué)習(xí)迭代u(n)k+1,給予一定的收斂條件判斷,當(dāng)時(shí),結(jié)束迭代,從而得到需要求得的參數(shù)值uk+1,并且可以證明,這種方法獲得的收斂值是唯一的。該算法思想如下:直接采用式(17)生成參數(shù)u顯然可以帶來(lái)較為理想的精度,然而將帶來(lái)沉重的計(jì)算負(fù)荷。為簡(jiǎn)化計(jì)算,我們引入差分算子來(lái)代替相應(yīng)的一階和二階微分算子,由文獻(xiàn)[8]可得
代入式(17)得
這種以差分代替微分的離散化表達(dá)方式顯然大大利于簡(jiǎn)化數(shù)值計(jì)算,但也引起了較大的截?cái)嗾`差。為此,本文采用了先采用離散差分簡(jiǎn)化計(jì)算,進(jìn)而利用學(xué)習(xí)迭代運(yùn)算來(lái)控制誤差幅度的自適應(yīng)插補(bǔ)策略。相應(yīng)的學(xué)習(xí)迭代運(yùn)算過(guò)程表述如下:
式中,uk為參數(shù)變量u在tk時(shí)刻的值;u(
kn+)1為參數(shù)變量u在tk+1時(shí)刻經(jīng)過(guò)n次迭代運(yùn)算后的值;β為0至1之間的一個(gè)常數(shù);vk*為命令指定速度;v(kn-1)為經(jīng)過(guò)n-1次迭代后所計(jì)算的當(dāng)前速度。
相應(yīng)的學(xué)習(xí)迭代終止條件為
對(duì)于NURBS一類復(fù)雜曲線造型問(wèn)題,在完成參變量uk求取(即粗插)之后,采用何種方法來(lái)完成精插工作才是系統(tǒng)的關(guān)鍵所在。對(duì)于此問(wèn)題的研究,直線和圓弧是工程上常用的兩種基本逼近手段,在大多數(shù)文獻(xiàn)中已有較全面的論述。基于不同應(yīng)用考慮,有的研究者從曲線整體光滑性角度研究NURBS曲線逼近[12],也有學(xué)者從曲線特征提取的角度研究樣條曲線逼近[13]。20世紀(jì)90年代以來(lái),由于雙圓弧的一些幾何上的優(yōu)異特征,相關(guān)學(xué)者相繼引入雙圓弧來(lái)表征一些復(fù)雜形狀的曲線,如對(duì)平面拋物線的逼近[14]、對(duì)任意空間點(diǎn)序列的逼近[15]。但大多數(shù)研究?jī)H僅停留在理論分析的層面上,具體應(yīng)用于實(shí)際工程的案例極少。
考慮到上述因素,算法驗(yàn)證與實(shí)驗(yàn)實(shí)施環(huán)節(jié)主要就以下幾個(gè)問(wèn)題展開(kāi)說(shuō)明:首先研究所論及的插補(bǔ)算法應(yīng)用于實(shí)際系統(tǒng)的可行性,基于雙圓弧逼近的曲線插補(bǔ)方式,給出具體曲線造型分析說(shuō)明,給出原始生成的G代碼,并給出曲線實(shí)際軌跡加工結(jié)果;然后,對(duì)所討論的速度波動(dòng)抑制的若干策略給出較為詳盡的分析,分析各種算法優(yōu)劣,同時(shí)也進(jìn)行實(shí)際系統(tǒng)加工測(cè)試。
3.2.1 NURBS曲線插補(bǔ)可行性測(cè)試
可行性測(cè)試實(shí)驗(yàn)采用大多數(shù)研究者經(jīng)常采用的不規(guī)則復(fù)雜圖形雙翼蝴蝶作為系統(tǒng)驗(yàn)證的實(shí)驗(yàn)對(duì)象,采用常見(jiàn)的CAM 軟件如RhinoScript或ProE等輔助設(shè)計(jì)軟件獲得被測(cè)圖形的G代碼描述(圖3)。圖3中,P代表權(quán)重,X、Y為控制節(jié)點(diǎn),KNOT由程序自動(dòng)求出。上述幾段G代碼分別描述了雙翼蝴蝶的兩翼、觸須及各連接部分。
圖3 雙翼蝴蝶G代碼描述
為了進(jìn)一步驗(yàn)證算法的可行性,本文在自行開(kāi)發(fā)的基于RTLinux的先進(jìn)數(shù)控平臺(tái)上進(jìn)行了系統(tǒng)整合和實(shí)際加工實(shí)驗(yàn)。系統(tǒng)采用基于PC平臺(tái)的開(kāi)放式數(shù)控系統(tǒng)平臺(tái)[16]、實(shí)時(shí)操作系統(tǒng),機(jī)械本體采用自行開(kāi)發(fā)的三維立式微型銑床(圖4),控制接口采用自制的PC104運(yùn)動(dòng)控制卡。采用鉛筆來(lái)記錄數(shù)控系統(tǒng)的運(yùn)行軌跡。相應(yīng)軟件仿真和實(shí)驗(yàn)運(yùn)行結(jié)果分別如圖5、圖6所示。
圖4 機(jī)械本體
圖5 軟件仿真
圖6 實(shí)際軌跡
3.2.2 速度波動(dòng)抑制算法實(shí)際應(yīng)用
如上所述,由于參數(shù)曲線構(gòu)造本身存在一定的缺陷性,即由于參數(shù)域空間與笛卡兒空間的不一致性,參數(shù)的等間隔距離選取并不能保證曲線位置也等間隔分布,從而造成進(jìn)給速度的嚴(yán)重波動(dòng)。目前的解決方法大多是采用適當(dāng)?shù)臄?shù)值修正算法來(lái)抑制或減小這種誤差。本文就上述一階泰勒展開(kāi)、二階泰勒展開(kāi)和具有數(shù)值反饋特性的自適應(yīng)插補(bǔ)策略三種數(shù)值修正算法給出具體分析和相應(yīng)的實(shí)驗(yàn)結(jié)果。
測(cè)試對(duì)象為二階NURBS曲線造型“Ω”,其相應(yīng)控制參數(shù)如表1所示,相應(yīng)的曲線形狀和實(shí)際加工軌跡如圖7、圖8所示。
表1 NURBS曲線參數(shù)表
采用3.1節(jié)算法,分別采用一階泰勒展開(kāi)、二階泰勒展開(kāi)、自適應(yīng)插補(bǔ)等幾種方法考察實(shí)際系統(tǒng)運(yùn)行中速度波動(dòng)情況。相應(yīng)運(yùn)行參數(shù)為:插補(bǔ)周期2ms,運(yùn)行速度10mm/s。相應(yīng)系統(tǒng)曲線造型預(yù)覽和速度波動(dòng)情況如圖7和圖9所示。從圖9可以看出,二階泰勒展開(kāi)、自適應(yīng)插補(bǔ)展開(kāi)均比一階泰勒展開(kāi)有很大改善,相對(duì)速度誤差(相對(duì)速度誤差為給定速度減去實(shí)際速度然后再除以給定速度)從一階泰勒展開(kāi)的最大2%減小到自適應(yīng)插補(bǔ)模式下的0.05%。當(dāng)然,實(shí)際系統(tǒng)設(shè)計(jì)還要考慮算法的收斂性和運(yùn)算效率,這里不再贅述。
圖7 曲線造型
圖8 實(shí)際加工軌跡
圖9 速度波動(dòng)抑制算法比較示意圖
復(fù)雜曲線構(gòu)成機(jī)理一直是目前CAD/CAM領(lǐng)域研究的熱點(diǎn)。本文利用雙圓弧數(shù)值處理算法來(lái)逼近NURBS曲線,并對(duì)原有算法進(jìn)行了簡(jiǎn)化和改進(jìn),取得了較為滿意的運(yùn)算效果。同時(shí)進(jìn)行了相關(guān)實(shí)驗(yàn)和數(shù)值仿真,理論和實(shí)驗(yàn)都證明本文所提算法的可行性,研究成果已在實(shí)驗(yàn)室應(yīng)用成功,可望進(jìn)一步推廣和應(yīng)用。
[1] Piegl L,Tiller W.The NURBS Book[M].Berlin:Springer,1995.
[2] Yang D C H,Kong T.Parametric Interpolator Versus Linear Interpolator for Precision NC Machining[J].Computer-aided Design,1994,26(3):225-233.
[3] Yeh S,Hsu P.The Speed-controlled Interpolator for Machining Parametric Curves[J].Computeraided Design,1999,31(5):349-357.
[4] 彭芳瑜,何瑩,李斌.NURBS曲線高速插補(bǔ)中的前瞻控制[J].計(jì)算計(jì)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(5):625-629.
[5] Guo Wei,Du Daoshan,Xu Rongzhen,et al.Study on Real-time Look-ahead and Adaptive Parametric Curve Interpolator[J].Journal of Shanghai Jiaotong University(Science),2007,12(3):388-393.
[6] 李建剛,張婷華,李澤湘,等.一種完善的自適應(yīng)NURBS曲線插補(bǔ)算法[J].中國(guó)機(jī)械工程,2008,19(9):1095-1102.
[7] 趙國(guó)勇,徐志祥,趙福令.高速高精度數(shù)控加工中NURBS曲線插補(bǔ)的研究[J].中國(guó)機(jī)械工程,2006,17(3):291-294.
[8] Lo C C.Feedback Interpolators for CNC Machine Tools[J].Journal of Manufacturing Science and Engineering,1997,119(4):587-592.
[9] Piegl L,Tiller W.Biarc Approximation of NURBS Curves[J].Computer-aided Design,2002,34(11):807-814.
[10] Bedi S,Ali I,Quan N.Advanced Interpolation Techniques for CNC Machines[J].ASME Journal Engineering Industry,1993,115:329-336.
[11] Tsai Miching,Cheng Chungwei.A Real-time Predictor-corrector Interpolator for CNC Machining[J].Journal of Manufacturing Science and Engineering,2003,125(3):449-460.
[12] 史利民,王仁宏.NURBS曲線曲面擬合數(shù)據(jù)點(diǎn)的迭代算法[J].數(shù)學(xué)研究與評(píng)論,2006,26(4):735-743.
[13] 周紅梅,王燕銘,劉志剛,等.基于最少控制點(diǎn)的非均勻有理B樣條曲線擬合[J].西安交通大學(xué)學(xué)報(bào),2008,42(1):73-78.
[14] 張莉彥,邱輝,陳虎.平面曲線的雙圓弧最佳逼近[J].組合機(jī)床與自動(dòng)化加工技術(shù),2002(3):32-34.
[15] 林杰.空間點(diǎn)列的雙圓弧逼近[J].福建工程學(xué)院學(xué)報(bào),2008,6(6):742-744.
[16] 史旭光.面向數(shù)控設(shè)備的實(shí)時(shí)Linux系統(tǒng)構(gòu)建與應(yīng)用[J].機(jī)床與液壓,2007,35(7):19-24.