史旭光 胥布工
華南理工大學,廣州,510640
隨著硬件平臺的不斷改善以及曲線曲面造型理論的發展,CNC系統處理參數樣條曲線的能力受到研究者的重視。國外著名廠商如日本FANUC公司已將非均勻有理B樣條(NURBS)插補功能集成于其產品中,日本Mitsubishi、德國SIEMENS已經開發出了帶此項功能的CNC系統。Piegl等[1]解釋了NURBS應用的一些理論性問題,為NURBS技術發展和應用奠定了基礎。此后,相關研究論文不斷涌現:Yang等[2]最早利用一階和二階泰勒展開計算參數曲線進給量,Yeh等[3]給出了依據曲線曲率來動態改變速度進給的理論依據;彭芳瑜等[4]將速度前瞻控制技術引入參數曲線插補理論中,Guo等[5]研究了機床動力學特性及自適應插補策略,李建剛等[6]提出了在線速度修正的NURBS曲線插補器結構,趙國勇等[7]研究了加速度和弓高誤差約束條件下的NURBS曲線插補問題。
針對NURBS曲線、曲面在數控領域中的應用,相關研究包括如何減少數值計算復雜度、結合反饋控制策略提高加工精度、結合機械動力學約束條件提高運動平滑度等,這些工作在上述文獻中已得到較為充分的挖掘,而對于NURBS曲線這一類較特殊的曲線在CNC系統內部采用何種方式去逼近以獲得較為滿意的控制效果,相關文獻論述不多。另外,由于參數樣條曲線本身構造的局限性,即其數值計算存在截斷誤差,這一特性直接導致其切線方向計算的不穩定性,由此帶來了速度波動性問題,相關學者提出了具有數值反饋特性的自適應插補概念[8],本文將對這一問題進行探討并展開實驗研究。
依據文獻[1],一條k次NURBS曲線可表示為一分段有理多項式函數:

式中,u為參變量,u∈[0,1];Ri,k(u)為該NURBS曲線的有理基底函數;Pi為控制點;ωi為控制點Pi的權因子;Ni,k(u)為k次規范B樣條基函數。
NURBS曲線插補需要計算相應參數曲線導數,如 C(1)(u)、C(2)(u)等,需要對每個控制節點的基底函數Ri,k(u)進行求導,相應一階、二階求導公式如下:

由式(2)、式(3)知,進行NURBS曲線計算需要進行大量數據運算工作,其算法效率極大影響著CNC系統工作的有效性。
對現代CNC系統配備高次曲線插補功能是目前的研究熱點,各種曲線計算方法層出不窮,其中雙圓弧形式數值計算方法開始進入相關研究人員的視野。Piegl等[9]給出了雙圓弧(biarc)應用于曲線逼近的若干重要特征。以此為理論基礎,本文給出其具體分析過程。
雙圓弧由兩個光滑連接的圓弧構成,用來逼近已知起點和終點的曲線段。具體描述如下:給定某曲線段的起點P s和終點P e,并且相應知道起點和終點單位切向量Ts和Te,則雙圓弧逼近問題需要滿足以下三條規律:①該雙圓弧通過該段曲線起點Ps和終點Pe;②在起點Ps具有和該曲線相同的切向量T s,終點處具有相同的切向量T e;③構成雙圓弧的兩個子圓弧以G1型光滑連接。
由于雙圓弧具有以上特點,因而具備描述曲線段一階切向量的性質,相對于傳統上的直線段和單圓弧法能夠容納被描述曲線段的更多物理信息。應用此理論于數控系統加工中,可以獲得更為平坦而光滑的加工軌跡,理論上可以保證軌跡曲線段斜率連續,也可以用較少的圓弧來逼近原先設計的曲線,減輕了數據傳輸負擔。
根據Piegl等的定義給出雙圓弧應用曲線逼近一般理論推導過程:一個雙圓弧完整的約束條件只需要相應的5個控制點即可,如圖1中的P s、P1 、P2 、P3 、P e 。

圖1 雙圓弧曲線逼近示意圖
不失一般性,我們由相應的定義可以給出未知的三個控制點計算公式:

式中,α和β均為正數。
取中間變量v=P s-P e,整理式(6)可得

上式中未知變量為α、β,令r=α/β,則有

相當多的研究文獻集中于r值的分析,我們取r=1,大大簡化了數值計算工作量,其相應的曲線描述效果也經過了實驗檢測。為將上述雙圓弧曲線逼近理論應用于NURBS插補過程中,這里給出具體實現算法步驟。
NURBS參數曲線插補問題一般可表述為如下形式:
假設某一個三維空間曲線可表示為

設當前曲線路徑坐標為

則下一個插補周期相應軌跡坐標為

通過不斷地進行uk+1=uk+Δu的迭代運算,從而獲得完整的曲線路徑坐標。獲得了曲線路徑坐標只是完成了插補工作的第一部分即粗插補部分,接下來利用雙圓弧實現對前一段粗插即C(uk)和C(uk+1)之間數據的密化,亦即完成精插補。利用雙圓弧實現精插的基本原理是:利用已知的計算得到的 NURBS曲線上的點C(uk)和C(uk+1)作為雙圓弧的起始坐標和終點坐標,即為式(4)、式(5)中的P s和P e,而利用式(7)獲得關鍵中間點P2,則曲線分布構成為P s P2和P2P e兩部分曲線,相應地用兩段圓弧去逼近原始曲線,這就是雙圓弧算法的核心意義所在。
除了兩端點坐標約束之外,算法還引入端點的切線向量作為額外的幾何信息,為簡化計算,這里起點和終點切線方向向量可由NURBS曲線特定控制頂點以給定參數形式確定。由端點坐標Ps、Pe和切線向量Ts、Te獲得曲線的切向圓弧來逼近原始曲線,進而完成曲線精插補。基于雙圓弧的NURBS曲線插補流程如圖2所示。

圖2 雙圓弧插補流程圖
傳統上利用NURBS曲線插補技術產生曲線的一般方法是:利用參數值uk+1=uk+Δu來進行迭代進而完成粗插補運算。通常,在粗插補運算過程中,參數曲線插補器常用的結構包括等參數插補、等速度插補、具備速度規劃特征的插補三種方式。Bedi等[10]最早提出均勻增加參數值的方式,即 Δu為一常數。該方法形式簡單,便于實現,由于參數域空間與笛卡兒空間的不一致性,參數的等間隔距離選取并不能保證曲線位置也等間隔分布。所以參數域內的等間隔造成了相鄰插補區域之間的插補距離不等,造成進給速度的嚴重波動。
文獻[11]較早提出利用泰勒展開關系式來獲得較為精準的uk和uk+1之間的關系。由曲線定義可知,任意時刻曲線速度為

式中,s為位移。
相應地,參數u對t的微分可表示為

式中,x′、y′、z′均為相對 u 之微分。

合并式(12)和式(13)則可以得到直接解出式(14)較為困難而且計算量很大,
這里利用差分近似的方式給出離散形式解:

式中,T為插補周期。
為減小計算量,可以采用一階或者二階泰勒展開近似。由第2節定義,一階和二階泰勒展開分別為

一般來說,進行到二階泰勒展開已可滿足大多數工程應用,此時高階項的影響已可忽略不計。另外也可看到,為了獲得參數值的二階泰勒展開,需要進行大量的數據運算,包括求取一階和二階導數,這給相關應用帶來了很大困難,迫使在具體使用時往往需要在精度和速度之間作出平衡。
在研究上述傳統數值計算方法的同時,本文擬結合控制思想,研究一種基于數值反饋特性的自適應插補的思想和策略,即利用學習迭代的思想,對每一個uk+1進行n次學習迭代u(n)k+1,給予一定的收斂條件判斷,當時,結束迭代,從而得到需要求得的參數值uk+1,并且可以證明,這種方法獲得的收斂值是唯一的。該算法思想如下:直接采用式(17)生成參數u顯然可以帶來較為理想的精度,然而將帶來沉重的計算負荷。為簡化計算,我們引入差分算子來代替相應的一階和二階微分算子,由文獻[8]可得

代入式(17)得

這種以差分代替微分的離散化表達方式顯然大大利于簡化數值計算,但也引起了較大的截斷誤差。為此,本文采用了先采用離散差分簡化計算,進而利用學習迭代運算來控制誤差幅度的自適應插補策略。相應的學習迭代運算過程表述如下:

式中,uk為參數變量u在tk時刻的值;u(
kn+)1為參數變量u在tk+1時刻經過n次迭代運算后的值;β為0至1之間的一個常數;vk*為命令指定速度;v(kn-1)為經過n-1次迭代后所計算的當前速度。
相應的學習迭代終止條件為

對于NURBS一類復雜曲線造型問題,在完成參變量uk求取(即粗插)之后,采用何種方法來完成精插工作才是系統的關鍵所在。對于此問題的研究,直線和圓弧是工程上常用的兩種基本逼近手段,在大多數文獻中已有較全面的論述。基于不同應用考慮,有的研究者從曲線整體光滑性角度研究NURBS曲線逼近[12],也有學者從曲線特征提取的角度研究樣條曲線逼近[13]。20世紀90年代以來,由于雙圓弧的一些幾何上的優異特征,相關學者相繼引入雙圓弧來表征一些復雜形狀的曲線,如對平面拋物線的逼近[14]、對任意空間點序列的逼近[15]。但大多數研究僅僅停留在理論分析的層面上,具體應用于實際工程的案例極少。
考慮到上述因素,算法驗證與實驗實施環節主要就以下幾個問題展開說明:首先研究所論及的插補算法應用于實際系統的可行性,基于雙圓弧逼近的曲線插補方式,給出具體曲線造型分析說明,給出原始生成的G代碼,并給出曲線實際軌跡加工結果;然后,對所討論的速度波動抑制的若干策略給出較為詳盡的分析,分析各種算法優劣,同時也進行實際系統加工測試。
3.2.1 NURBS曲線插補可行性測試
可行性測試實驗采用大多數研究者經常采用的不規則復雜圖形雙翼蝴蝶作為系統驗證的實驗對象,采用常見的CAM 軟件如RhinoScript或ProE等輔助設計軟件獲得被測圖形的G代碼描述(圖3)。圖3中,P代表權重,X、Y為控制節點,KNOT由程序自動求出。上述幾段G代碼分別描述了雙翼蝴蝶的兩翼、觸須及各連接部分。

圖3 雙翼蝴蝶G代碼描述
為了進一步驗證算法的可行性,本文在自行開發的基于RTLinux的先進數控平臺上進行了系統整合和實際加工實驗。系統采用基于PC平臺的開放式數控系統平臺[16]、實時操作系統,機械本體采用自行開發的三維立式微型銑床(圖4),控制接口采用自制的PC104運動控制卡。采用鉛筆來記錄數控系統的運行軌跡。相應軟件仿真和實驗運行結果分別如圖5、圖6所示。

圖4 機械本體

圖5 軟件仿真

圖6 實際軌跡
3.2.2 速度波動抑制算法實際應用
如上所述,由于參數曲線構造本身存在一定的缺陷性,即由于參數域空間與笛卡兒空間的不一致性,參數的等間隔距離選取并不能保證曲線位置也等間隔分布,從而造成進給速度的嚴重波動。目前的解決方法大多是采用適當的數值修正算法來抑制或減小這種誤差。本文就上述一階泰勒展開、二階泰勒展開和具有數值反饋特性的自適應插補策略三種數值修正算法給出具體分析和相應的實驗結果。
測試對象為二階NURBS曲線造型“Ω”,其相應控制參數如表1所示,相應的曲線形狀和實際加工軌跡如圖7、圖8所示。

表1 NURBS曲線參數表
采用3.1節算法,分別采用一階泰勒展開、二階泰勒展開、自適應插補等幾種方法考察實際系統運行中速度波動情況。相應運行參數為:插補周期2ms,運行速度10mm/s。相應系統曲線造型預覽和速度波動情況如圖7和圖9所示。從圖9可以看出,二階泰勒展開、自適應插補展開均比一階泰勒展開有很大改善,相對速度誤差(相對速度誤差為給定速度減去實際速度然后再除以給定速度)從一階泰勒展開的最大2%減小到自適應插補模式下的0.05%。當然,實際系統設計還要考慮算法的收斂性和運算效率,這里不再贅述。

圖7 曲線造型

圖8 實際加工軌跡

圖9 速度波動抑制算法比較示意圖
復雜曲線構成機理一直是目前CAD/CAM領域研究的熱點。本文利用雙圓弧數值處理算法來逼近NURBS曲線,并對原有算法進行了簡化和改進,取得了較為滿意的運算效果。同時進行了相關實驗和數值仿真,理論和實驗都證明本文所提算法的可行性,研究成果已在實驗室應用成功,可望進一步推廣和應用。
[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曲線高速插補中的前瞻控制[J].計算計輔助設計與圖形學學報,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] 李建剛,張婷華,李澤湘,等.一種完善的自適應NURBS曲線插補算法[J].中國機械工程,2008,19(9):1095-1102.
[7] 趙國勇,徐志祥,趙福令.高速高精度數控加工中NURBS曲線插補的研究[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曲線曲面擬合數據點的迭代算法[J].數學研究與評論,2006,26(4):735-743.
[13] 周紅梅,王燕銘,劉志剛,等.基于最少控制點的非均勻有理B樣條曲線擬合[J].西安交通大學學報,2008,42(1):73-78.
[14] 張莉彥,邱輝,陳虎.平面曲線的雙圓弧最佳逼近[J].組合機床與自動化加工技術,2002(3):32-34.
[15] 林杰.空間點列的雙圓弧逼近[J].福建工程學院學報,2008,6(6):742-744.
[16] 史旭光.面向數控設備的實時Linux系統構建與應用[J].機床與液壓,2007,35(7):19-24.