摘 要:針對葉片型線的優化設計,提出采用自適應方法提取合適的節點來插值非均勻有理B樣條(NURBS)曲線的算法,實現了滿足一定精度要求的數據點云擬合以及控制點的計算,該方法首先通過點云外形特征提取主特征點,把主特征點作為節點插值NURBS曲線,通過德布爾遞推公式求解控制點,然后根據誤差及曲率信息自適應地增加節點反復迭代,直到達到要求的擬合誤差精度,從而簡潔有效地實現了大量數據點云的擬合,相比傳統方法,該方法能夠更快地達到要求的逼近精度,同時將誤差與曲率信息結合起來調整節點,不僅適合于有局部大曲率及有噪聲點的數據點云的曲率計算,而且可用于估計插值節點的數量和工業逆向設計中空間曲面控制點的提取,為優化設計奠定了良好的基礎。
關鍵詞:控制點;自適應提取;主特征點;NURBS曲線
中圖分類號:TP391 文獻標志碼:A 文章編號:0253-987X(2008)01-0073-05
在工程型面的優化設計中,設計變量的數量會直接影響優化設計的規模,進而影響設計周期和設計效果,因此設計變量必須盡可能少,為了提高優化速度以及更好地反映葉片的特征,要求用最少的控制點來控制葉片型線,而傳統的非均勻有理B樣條曲線的整體擬合通常有2種方案:①由一個小數目的控制頂點開始,通過檢查擬合曲線對數據點的偏差來增加控制頂點的數目。并經過數次迭代得到要求誤差范圍內的擬合曲線;②先從一個大數目的控制頂點開始,然后通過迭代減少控制頂點的數目來實現逼近,這2種方案對于數據點比較多的情況,擬合迭代過程比較復雜,計算量較大,因此,在傳統曲線擬合的基礎上,研究人員針對不同對象衍生了許多擬合方法,Razdan提出采用自適應地選擇節點來插值B樣條曲線的方法,為了合理地選擇節點,他考慮了反映原始數據點的外形信息,包括弧長和曲率分配,該方法針對已知參數化曲線,對有噪聲的數據集的插值較敏感,但是卻沒有考慮曲線逼近誤差,Li等人針對密集且有噪聲的數據點,首先對曲率進行濾波,節點選擇的方法類似于文獻[1],提出的節點放置準則將比預期產生更多的節點,但同樣沒有考慮曲線逼近誤差,Park等人提出對有序點進行B樣條逼近的方法,該方法提出了初始特征點的選取以及應用主特征點來調整節點矢量,在主特征點選取時,對原始數據點進行粗逼近得到的曲線進行曲率計算,因此需要事先估計一個控制點數,對于不同點云控制點數的估計沒有一定的準則,與插值B樣條曲線相比,采用最小二乘法逼近數據點更費時,而且對于曲率變化較大的點云,該方法將會產生較多的控制點。
本文提出了一種自適應地提取合適的節點來插值非均勻有理B樣條(NURBS)曲線擬合數據點云的算法,首先通過曲率信息選取主要特征點作為型值點,然后應用德布爾遞推公式反算出控制點,建立NURBS曲線,根據誤差及曲率特性自適應地增加節點,反復迭代直到達到要求的誤差精度。
1 主特征點的識別與選取
主特征點反映點云的外形特征,它的選取對曲線擬合精度有至關重要的影響,如果選擇得不合適,不僅增大了迭代次數,也可能達不到要求的擬合精度,主特征點主要由曲率信息決定,通過選取主特征點,可以提高擬合速度,減少迭代次數,主特征點識別的關鍵在于拐點和局部曲率極值點的確定。
本文采用分段曲線擬合方法,該方法通過選取數據點的鄰域,并分成若干段來進行曲線擬合計算每段的曲率。

對于數據點云Pi(i=1,…,n),選取每個數據點Pi的m鄰域進行分段多項式擬合,得到離散點曲率在選取鄰域的過程中,對于有序點云,若鄰近的數據點不在,m鄰域范圍內,則認為它是粗大噪點,可將其剔除,為了對圖1中某葉片模型進行重構,提取合適的控制點進行調節來優化葉型,對葉型面采用三坐標掃描得到1533個數據點集,對點集進行10鄰域分段3次樣條擬合計算數據點云的曲率,按選取首末端點和局部曲率極大值點的方法提取特征點實現數據的精簡,對精簡后的模型插值擬合計算出誤差相對較小的曲率,如圖2所示,圖中橫坐標是對數據點的點距采用累積弦長參數化法得到的。
由于圖l葉片的局部曲率過大,若采用文獻[1]中取曲率平均值的方法,提取出的主特征點將集中在圖2中的尖端位置,這樣擬合的初始模型誤差較大。針對這種情況,采用分段提取主特征點的方法,首先在圖2的2個峰值過渡區(0.55和0.68區間段)查找kiki+1<0的節點,選取其中|k|,的較大點為主特征點,然后從該段將曲率分成2部分,0到0.55區間段曲率如圖3所示,為了更好地獲取葉片的外形特征,要對離散曲率進行光順,并引入曲率對參數化節點矢量U的積分函數來計算積分曲率K根據Trapezoidal規則),這樣,既兼顧了曲率和弧長信息,又更好地描述了點集的外形特征。

主特征點的選取基于2個規則:①如果|Ki-Kj|<(e為一個較小值),即曲率在該區間段變化很小,可取這段區域的中點為主特征點;②K曲線的凹凸轉折點也應選為主特征點(見圖3),由于曲率計算的誤差,初始主特征點數不能選得過多,否則既會產生過多的控制點,也可能會達不到要求的擬合精度,然而,初始主特征點的選擇也可能遺漏一些關鍵點,這可以在以后的迭代過程中通過增加節點來補充。

圖4是應用主特征點作為節點,進行曲線插值獲得的擬合曲線,圖5是主特征點提取與傳統的均勻分布節點的擬合誤差圖。
從表l中可明顯看出,作為初始曲線,選取主特征點的方法擬合誤差較小,如不考慮曲率信息,均勻分布

2 控制點的反算
逆向工程中的優化設計通常要求對控制點進行權因子調節來指導設計,德布爾算法是快速而且數值穩定的算法,將提取出的主特征點作為節點,應用德布爾算法反算出其控制點,節點插值的NURBS曲線方程如下。

3 節點的自適應添加
本文要解決的問題是用最少的控制點、以一定的精度光滑地擬合數據點云,并由主特征點來插值初始曲線,若不滿足擬合精度條件,就必須自適應地添加節點。
3.1 曲線擬合的誤差評判
同樣的擬合曲線若采取不同的誤差評判標準,將會得出不同的結果,逼近一個給定的曲線采用Hausdorff距離評判將更加合理。數據點云的擬合要求擬合的曲線與原始數據點云的距離在一定公差范圍內,Pi(i=1,…,n)的擬合曲線為C(t),將Pi投影到C(t)上得到,p′i,擬合誤差和平均誤差為
數據點有噪聲,用它作為評判將不準確,因此取平均標準誤差作為評判的依據。
3.2 節點的添加
當主特征點選取后,插值出的曲線與原始數據點云有誤差,通過式(7)計算出每個數據點的擬合誤差,s個主特征點將有s—1個區間段,在平均誤差最大的區間段內增加節點,通常采用的增加節點方法為:①取區間中點;②添加最大誤差點作為增加的節點,第①種方法容易產生較多的控制點,而第②種方法由于噪聲點的存在可能會導致不好的結果,因此為了更合適地添加節點,應把添加節點與曲率特性關聯起來。
以圖1的葉片點云為例,用第1節的方法得到的6個主特征點如圖6所示,根據擬合曲線計算曲率,同時計算每個區間段的平均誤差,找出最大誤差段,在該區間查找最大曲率點和最大誤差點,并作為新的增加節點,分別插值計算選取平均誤差較小的節點添加方案,通過對比擬合計算結果,得到圖6中的最大誤差點為添加的第1個節點,這樣反復迭代增加節點,直到達到要求的精度,在迭代過程中,如果增加節點后誤差反而增大很多,說明是加入了噪聲點作為節點,這時就要剔除該點并繼續進行計算。

4 實 例
圖7為圖l的葉片用本文的算法在平均誤差精度為0.04mm的條件下,采用3次NURBS曲線插值得到的擬合曲線圖。
為了進一步驗證本方法的適用性,將其應用于其他模型(見圖8)的重構,采用半徑為2.5mm的測頭對凸輪模型面三坐標進行掃描,獲得了從動件的運動曲線,從而可對其運動規律進行研究,對圖8模型采用3次NURBS曲線擬合后,其從動件的運動曲線如圖9、圖10所示,葉片和兩凸輪模型的擬合見表2。
由于文中所選實例都是工廠生產中的實際模型經過三坐標掃描后得到的數據點集,因此不可避免地會受到模型表面屬性以及測量系統的不確定因素的影響,而且數據中存在著噪聲點,但用該算法擬合的曲線基本上能夠達到規定的擬合誤差。
5 結 論
本文將曲線插值與擬合相結合,提出了一種自適應地選擇節點來插值曲線的方法,通過曲率計算剔除噪聲點,選取主特征點,以平均誤差作為擬合評判的標準,自適應地增加節點,用德布爾遞推算法插值節點,通過反復迭代得到了滿足精度要求的擬合曲線,本文方法可用來估計插值節點的數量,也可用于工業逆向設計中空間曲面控制點的提取,因此為生產中的后期優化設計奠定了良好的基礎。
(編輯 管詠梅)