陳良驥 馬龍飛 趙 波 高 飛
1(桂林理工大學機械與控制工程學院 廣西 桂林 541004) 2(天津工業大學機械工程學院 天津 300387)
葉輪作為航空發動機的核心部件,是一類具有代表性且造型比較規范的通道類復雜零件,往往由自由復雜曲面構成[1-3]。由于非均勻有理B樣條曲線(NURBS)優秀的自由曲面造型能力,1991年,STEP國際標準亦把NURBS作為定義產品形狀的唯一數學方法[4]。如何快速、精確地求取空間一點到樣條曲線的最短距離是NURBS曲線在計算輔助設計與制造應用中最基礎也是最重要的問題。
李蔚等[5]基于高斯-牛頓法并通過多次微分坐標變換進行微小情況下點到曲線的最短距離求取。郭慧等[6]提出了一種基于NURBS樣條曲線插值與遺傳算法相結合方法來確定點到曲線最短距離。展俊德等[7]提出了一種利用控制頂點投影法計算點到平面NURBS曲線最小距離的算法,具體做法是將NURBS曲線分割為若干小曲線并對其依次進行搜索得到最短距離。Chen等[8]利用圓形修剪技術提出了一種計算點與NURBS曲線之間的最小距離的新方法。Li等[9]提出了一種新的正交投影方法,用于計算點與空間參數曲線之間的最小距離。Zhu等[10]將歐氏空間中從點到曲線的投影點即正交投影點計算算法擴展到彎曲空間,給出了彎曲空間上正交投影的點計算方法進而得到點到曲線最短距離。
以上方法均可有效求取點到空間NURBS曲線的距離。但由于各種方法對初值等因素的要求不同,算法收斂性也大不相同,且算法較為復雜、魯棒性差。本文通過對NURBS曲線的節點向量進行兩次快速篩選并結合篩選出的節點附近曲線的幾何特性精確鎖定參數搜索迭代區間,進而通過多次迭代的方式求取最短距離。
在三維笛卡爾空間中,一條關于參數ξ的p次NURBS曲線向量表達式如下:
(1)
式中:{Pi}是NURBS曲線的n+1個三維控制點;{ri}是各個控制點對應權重值;{Ni,p(ξ)}是定義在節點向量X上的p次B樣條基函數,這里X={ξ0,ξ1,…,ξn+p+1}。
p次B樣條基函數的計算式如下:
(2)
式(2)為一種迭代計算過程,例如對三次NURBS曲線的基函數N1,3(ξ),其迭代計算過程如圖1所示。

圖1 三次NURBS曲線某基函數推導示意
p次NURBS曲線基函數的一階導函數可用如下表達式計算出:
(3)
則NURBS曲線的一階導矢表達式為:
(4)
現行方法中,求取空間點A(xA,yA,zA)到NURBS曲線的最短距離主要采取在NURBS曲線上搜索數據點的方法,逐一求取與A的距離,并進行大小比較,直到搜索到距離最短時為止。如果對NURBS曲線進行整體搜索,即相當于在曲線的參數空間ξ∈[0,1]內進行搜索。如此可得整體搜索時,A點到NURBS曲線的最短距離dmin的數學計算模型:
(5)
按式(5)計算點到NURBS曲線間的最短距離是一種理論求取值,實際上由于參數空間的連續性,可取參數點有無窮多個,因此整體搜索計算最短距離的方法效率低下而且實際應用時也是不可行的。對此,本文提出如下參數搜索區間快速確定方法,將最短距離的求取進行參數搜索區間的預處理,直接縮小參數搜索范圍快速鎖定最短距離所對應的參數范圍。
搜索區間鎖定的目的是對可能存在最短距離的參數范圍進行精確定性分析,減小距離計算的工作量,提高最短距離搜索程序運行速度。下面分兩步漸進鎖定參數搜索區間。
如圖2所示,A為NURBS曲線外待求與NURBS曲線最短距離的空間點,ξi(i=0,1,…,n+p+1)為定義NURBS曲線的節點向量X中的某個節點參數。首先應計算出NURBS曲線所有節點參數對應點與空間點A的距離,以此確定初步參數搜索區間的大致位置。將節點向量X各節點參數映射至線性空間可得到具體的參數數據點,并結合式(5)進行初次篩選,得到最小距離l,同時記錄其對應節點參數。

圖2 節點中的最短距離點確定
經過初步篩選后可知所求取參數的搜索區間應在參數ξi附近。顯然,最終要鎖定的參數區間必須包含最短距離點所對應參數在內才能實現最短距離的求取。
將ξi代入式(1)可以得到該參數所對應的NURBS的數據點Q(ξi),曲線外一點A與Q(ξi)間的單位方向向量TAQ如下:
(6)
將ξi代入式(4)可得到NURBS曲線在點Q(ξi)處的一階導矢Q′(ξi)。
為便于后面敘述的理解,我們先對空間點、NURBS曲線上的點、NURBS曲線在某點處一階導矢以及最短距離間的關系作如圖3所示的說明。圖3中,A和B均為NURBS曲線外的空間點,若NURBS曲線上與A或B距離最短的點為已知,則A或B與相應NURBS曲線上最短距離點間的連線應與NURBS曲線上距離最短點處的一階導矢呈相互垂直的幾何關系。再結合式(6),我們可根據TAQ與一階導矢Q′(ξi)間的夾角是否為直角來判斷NURBS曲線上的點是否為與空間點距離最短的點。夾角θ可由式(7)求得。
(7)

圖3 最短距離下點與曲線幾何關系
圖4為夾角θ在距離最短點附近的大小變化。可知夾角θ在距離最短點處為直角,在距離最短點左側為銳角,在距離最短點右側為鈍角,利用這個規律可對最短距離點的參數所在的搜索區間進行最終鎖定。最終鎖定的方法如下:
1) 若θ=90°,則該參數所對應曲線數據點為最短距離點,參數代入式(5)完成最短距離求取。
2) 若θ<90°,則向該參數右端按預先設置的參數增量繼續搜索,重復計算出新的夾角θ,直至θ≥90°。假定此時重復計算的次數為k,此時對應的參數為ξk,則可將參數搜索區間確定為[ξk-1,ξk]。
3) 若θ>90°,則向該參數左端按預先設置的參數增量繼續搜索,重復計算出新的夾角θ,直至θ≤90°。假定此時重復計算的次數k,此時對應的參數為ξk,則可將參數搜索區間確定為[ξk,ξk-1]。

(a) (b)圖4 不同位置下夾角θ的變化
在參數的搜索區間最終鎖定后,即可進行最小距離點的參數的搜索求解計算。求解計算的核心思想是將參數ξ的參數搜索區間[ξ左,ξ右]進行等間距劃分為若干個參數點,如圖5所示,應用式(5)求得相對較小距離及與之對應的參數,以該參數為中心參數,縮短參數搜索區間后再次將區間等間距劃分,直到前后求得的較小距離差小于預設求解誤差時停止搜索計算。現將具體搜索求解計算過程陳述如下。

圖5 參數搜索區間等間距劃分搜索
經過第2.2節中所述幾種情況的分析,可獲得參數ξ的最終參數搜索區間[ξ左,ξ右],將該區間等間距劃分為H個參數點,則每個參數點的參數間距應為:
(8)
所以,每個參數點的數值應為:
ξj=ξ左+jΔξj=1,2,…,H
(9)
將ξ左、ξ右、所有參數值ξj代入式(5)可求得第1次搜索的較小距離ε1。
第2次搜索時,以ε1所對應的參數點為中心參數ξ中,采取將參數搜索區間長度縮小一半的處理方式。即區間長度由式(10)確定。
(10)
將ξ左和ξ右分別重新計算為:
ξ左=ξ中-L2/2
(11)
ξ右=ξ中+L2/2
(12)
再次將參數搜索區間[ξ左,ξ右]等間距劃分為H個參數后,可求得第2次搜索后的較小距離ε2。
判斷|ε2-ε1|是否小于或等于預設求解誤差σ,若是則最小距離ε為ε1和ε2中的較小者,若否則繼續進行第3次、第4次、…、第m次搜索,直到|εm-εm-1|≤σ成立為止,取最小距離ε為εm和εm-1中的較小者。
以上為曲線外一點到NURBS曲線最短距離的求取方法,圖6為求取流程。

圖6 最短距離求取流程
一般NURBS曲線G2連續即可滿足大部分場合,G2連續代表樣條曲線二階導矢連續,故本文對p=3的NURBS曲線進行研究。給定曲線外一點A。NURBS曲線生成數據來自五軸數控加工數據。先由CAM軟件生成葉輪流道曲面的刀具切削運動軌跡,經過刀具軌跡離散,最終生成含有刀心點、刀軸向量、刀觸點的刀位文件。切削語句的格式如下:
GOTO/x,y,z,i,j,k$$x′,y′,z′
上述格式中:(x,y,z)為工件坐標系下刀心點位置坐標,取其進行曲線擬合。參加NURBS曲線擬合的數據點(刀心點坐標)如表1所示。

表1 待擬合數據點
通過編制的MATLAB程序讀取表1中數據點進行NURBS樣條擬合。擬合后節點向量X=(0 0 0 0 0.142 9 0.214 4 0.285 9 0.357 3 0.428 8 0.500 2 0.571 6 0.643 1 0.714 5 0.785 8 0.857 0 1 1 1 1),擬合時反算求得的控制點如表2所示。

表2 NURBS曲線控制點

續表2
取待測點A1=(109.1 76.1 71)、A2=(114.5 128.2 39),通過編制的MATLAB程序讀取NURBS曲線信息并進行最短距離求取。求解點到樣條曲線距離問題為無約束非線性問題,將文獻[3]所使用的高斯-牛頓法應用于本文的問題背景,高斯-牛頓法收斂速度為二階且精度較高,常用于解決該類問題。
將文獻[3]中NURBS節點向量區間的中值參數ξ=0.5設置為迭代初值,編制并運行相應的MATLAB程序,獲得的相關數據與本文方法獲得的數據進行對比,表3為兩種方法在求解誤差σ=0.000 1 mm下求解的最短距離值及計算耗時情況。

表3 求取的最短距離及計算耗時
可以看出,通過對兩點距離的求取的驗證,兩種方法皆可求得最短距離。而本文方法的求取效率比較高,耗時短。
針對空間一點到NURBS曲線的最短距離求取問題,提出一種參數區間篩選迭代方法。該方法不用事先給定初值,可直接通過點與曲線的幾何關系,經兩個步驟后最終鎖定參數搜索區間,然后根據最短距離求解誤差的要求對該參數區間進行迭代搜索,求得最短距離。通過MATLAB編程與其他現有方法對比后,結果表明本文方法不僅能達到相同的求取精度,而且還能具有較高的求取效率。