周廣利,陳帥,王超,劉洋
哈爾濱工程大學 船舶工程學院,黑龍江 哈爾濱 150001
船體幾何重構是實現船舶概念設計、總體設計和船型優化的一種關鍵技術[1],對船舶的各種性能起著決定性影響。針對船體幾何重構,找到一種簡潔、高效的NURBS技術求解方法具有一定的現實意義。本文就這一問題對船體型線、曲面的重構和分割進行分析。
現階段對船體曲面設計的研究相對成熟,錢宏等[2]將NURBS技術成功運用于船體曲面重構,Wang H等[3]利用NURBS曲面對船體進行幾何建模,討論了節點矢量的相容性處理問題,于亞如[4]將NURBS技術運用到船體型線設計中,利用其卓越的局部修改性來設計船體型線,張偉等[5]提出一種基于B樣條的船體及自由面面元生成方法,這些研究主要是基于NURBS的船體曲面生成過程精確表達和曲面的修改方法等。
基于NURBS的船體曲面設計,有單一NURBS曲面表達方法[6]、曲面分片表達方法和曲面細分方法[7]等,它們主要是根據型值點生成船體曲面特征線進而生成船體曲面。陳軍等[8]對NURBS曲線曲面反求問題進行分析和研究,實現了船體的三維實體造型。Shi G等[9]實現了快速插值給定型值點的船體曲面重構技術。Gianpaolo S等[10]將一種在NURBS曲面上計算曲率和臍點的技術應用于船型設計。Yang C等[11]采用NURBS曲面表示的船體,該技術可用于自動生成球艏,或根據水動力性能和幾何約束修改船首或整個船型,也可以根據可移動的RBF控制節點來獲得NURBS控制點的運動。
在基于NURBS方法關鍵技術的船體幾何重構應用上,以上研究對控制頂點的反求算法較為復雜,對于曲線曲面的邊界條件處理也各不相同。本文通過利用一種非節點邊界條件下的曲線控制頂點反算算法[12],編寫了船體型線和船體曲面重構程序,并探索一種求解算法用于船體曲面與水面快速求交。該程序可以通過修改控制頂點和權重因子對曲面進行變形,這種修改不破壞原有曲面的光順、連續等幾何特性,更方便用于船體型線設計領域。
由參數變量u定義的k次NURBS曲線方程[13]為

式中:p(u)為 參數u∈[0,1]下 曲線上的點;bi為曲線控制頂點,wi為 控制頂點對應的權重因子;Ni,k(u)為k次NURBS曲線的基函數,可根據deBoor-Cox的遞推公式[13]得出:

k次NURBS曲線的節點矢量,U=[u0,u1,···,un+k+1]。 曲線的定義域u∈[uk,un+1],共含有n-k+1個節點區間。去掉基函數為零的那些項,式(1)可化簡為

當k=3時,NURBS曲線的節點矢量和定義域分別為

本文運用的三次NURBS曲線插值求解方程簡化為

由2個參數變量(u,v)定義的NURBS曲面方程[13]:

式中:p(u,v)為 參數 (u,v)下 曲面上的點;bi,j為 (m+1)×(n+1)的 曲面控制網格;wi,j為控制網格對應的權因子;Ni,3(u)、Nj,3(v)為曲面u和v兩個參數方向的基函數,根據式(2)推導。曲面的控制網格可以根據曲線控制頂點的反算思路[12]求解,給定(m+1)×(n+1)個數據點pi,j,p0,i、pn,i、pj,0和pj,m,i=0,1,···,m,j=1,2,···,n?1作為曲面的邊界。與NURBS曲線邊界補充方 式 類 似,p1,i、pn?1,i、pj,1和pj,m,i=1,2,···,m?1,j=2,3,···,n?2不再作為曲面分段連接點,由積累弦長參數化法可得出兩個方向的節點矢量:

為了使其曲面控制網格求解更方便,NURBS曲面方程可改寫為

令

則式(7)可簡化為

將兩個方向的節點值代入式(7),根據反算NURBS插值曲線控制頂點的方法分為兩步求出,思路如下:1)在u方向上應用NURBS曲線反算,可解出式(9)中的ai(v)。2)在v方向上應用NURBS曲線反算,可解出式(8)中的bi,j控制網格。
在實際應用中,給定樣條曲線一系列數據點,對樣條曲線進行插值的情況更為多見,也就是所謂的逆向工程。逆向工程就是根據一系列數據點可反算出樣條曲線的多邊形控制頂點,進而根據控制頂點和基函數對樣條曲線進行插值。一般情況下,給出n-1個數據點和曲線端部的2個切矢量,可建立n+1個方程進而求解對應的n+1個控制頂點。通常在對船型進行建模時,給定的條件是船舶型值點或者型線圖,沒有端部切矢量。本文運用王飛[12]提出的一種反算三次B樣條插值開曲線控制頂點的算法求解NURBS的控制頂點,對船體進行幾何重構,其主要特點是無需給定船舶型線首尾端切矢。
給定n+1個數據點pi(i=0,1,···,n,p0,pn),作為樣條曲線的首末端點。p0,p2,···,pn?2,pn作為三次樣條插值曲線的n-1個連接點,p1,pn?1不再為三次樣條插值曲線的連接點。故對應的三次樣條曲線的控 制 頂 點 個 數 為n+1,即bi(i=0,1,···,n)。三次B樣條曲線的節點矢量為

式 中:u0=u1=u2=u3,un+1=un+2=un+3=un+4,三 次 樣條曲線的定義域為u∈[u3,un+1]。將節點值依次代入式(5), 應滿足插值條件:

求解n+1個控制頂點需要n+1個方程,式(11)有n-3個方程,需補充如下4個方程:

式 中:t1,tn?1分 別是p1,pn?1對 應 的 參 數 節點值,其中t1∈[u3,u4],tn?1∈[un,un+1]。將式(11)、(12)合寫成求解n+1個控制頂點bi,i=0,1,···,n的矩陣形式:

為了方便快速求解方程,將式(13)化簡為三對角方程組的追趕法求解形式:

式中:


在式(16)中的基函數用式(2)deBoor-Cox遞推公式求解,式(14)就可以用追趕法[14]求解出NURBS曲線的n+1個控制頂點。
對于數據點的參數化,即使相同的一組數據點采用同一種插值方法,選擇數據點的參數化方法不同也可能求得的插值曲線不同。一般主要有4種參數化方法[15]:均勻參數化法、積累弦長參數化法、向心參數化法和福利參數化法,本文NURBS曲線采用積累弦長參數化法確定節點值,使定義域內節點值與數據點p0,p2,···pn?2,pn對應。

單位化處理:

節點取值:

從式(19)可以看出,t1與p1對 應,tn?1與pn?1對應,為了避免首末曲線段的曲率突變,此非節點條件[12]等價于邊界條件。
通過C++程序設計,圖1為NURBS技術的實現流程圖。根據論文前兩節提供的算法計算NURBS曲線的控制頂點、節點矢量和基函數,運用u、v兩個參數方向計算可以生成NURBS曲面,多個曲面拼接生成船體整個幾何外型。給定船體型線的型值點初始條件,通過自行設計型線參數變量和權重因子,可以實現船體離散化表達和船體型線改變。

圖1 NURBS技術的程序實現
如圖2(a),以DTMB5415某站位橫剖線為例,繪制出型線的插值點、控制頂點和型值點對比圖。通過對第1~5個控制頂點和對應的權因子進行微調,圖2(b)給出了原橫剖型線和微調后的橫剖型線的變形對比??梢钥闯觯鶕刂祈旤c(權因子為1)和基函數插值出來的點必定經過橫剖線,多邊形控制頂點和權因子改變可以控制橫剖線的變形。本文用求解曲線與原型線的絕對誤差ε來評估曲線重構精度:

式中:pi為原型值點;p(ui)為曲線u方向參數值對應的插值點。

圖2 NURBS曲線的重構與變形
如圖2(c),求解橫剖線曲線誤差,從圖中可以看出,曲線最大誤差不超過0.073 1 mm,平均誤差為0.046 7 mm。
可以得出,通過本文前兩節提供的算法計算NURBS曲線不需要型線首末端切矢量,不但簡化了計算過程,且具有優良的變形能力,曲線精度較高。
由一組數據點通過一次反算、插值可以得到NURBS曲線,從二維上升到三維,由一組曲線通過兩個方向的反算、插值就可以得到NURBS曲面。 船體復雜曲面的重構與變形如圖3。

圖3 船體復雜曲面的重構與變形
圖3(a)以DTMB5415船型船艏為例,初始條件為一組水平型線上的型值點,可以得到船艏的控制網格。通過改變船艏控制網和對應的權因子,圖3(c)和圖3(d)給出原船艏和改變后的原船艏對比。本文用求解曲面與原船型的絕對誤差ε來評估曲面重構精度。

式中:pi,j為原型值點,p(ui,vj)為曲面u、v方向參數值對應的插值點。
如圖3(b),以船體復雜曲面球艏為例,通過誤差等高線分析可知,曲面插值最大誤差為0.178 5 mm,平均誤差為0.049 4 mm。可以得出,NURBS曲面具有良好的變形能力,且對于船體曲面的表達精度較高。
為了實現船體曲面快速分割,如圖4(a),DTMB 5415船艏和三維平面相交,對其交線求解展開研究,本文采用了二分法、黃金分割、斐波那契法對交線參數區間進行迭代,交線參數值求解變化曲線如圖4(b),其交線參數區間收斂精度為0.000 1。如表1,在區間收斂精度為0.000 1的情況下,通過對比船艏與三維平面求交算法的迭代次數和交線求解用時,二分法更適用于船體曲面分割。

圖4 船體曲面與三維平面求交
對于船體整個曲面構型,不同船型的曲面復雜度也不一樣,本文以DTMB5415船型為例,其存在折角、曲率變化較大的曲面,圖5(a)是通過NURBS曲線重構的DTMB5415船體橫剖型線,圖5(b)和圖5(c)繪制的是多個NURBS曲面拼接構成DTMB5415船體曲面。圖5(b)為面元數325的船體曲面,圖5(c)為面元數1 399的船體曲面,且對艏艉部進行了加密。通過二分法快速分割曲面,圖5(d)為面元數486的DTMB5415船體水下曲面,其可以為邊界元法提供計算模型。從上述得出,在NURBS技術下可以實現船體曲面拼接、分割和局部區域加密等功能。
本文基于NURBS技術實現了縮尺比為24.83的DTMB5415船體幾何重構,對NURBS技術關鍵求解方法與幾何重構效果展開研究與分析,可得出如下結論:
1)針對船體幾何構型研究過程,將一種NURBS曲線(曲面)控制頂點(控制網)求解算法運用于船體幾何重構,無需型線切矢量初始條件。通過本文編寫的計算程序對DTMB5415船型幾何重構過程研究發現,NURBS技術下的船體幾何重構具有曲面變形、曲面拼接、曲面分割、局部區域加密等功能。
2)通過重構誤差分析可知,基于該控制頂點反算算法的幾何重構效果很好,其平均誤差不超過0.05 mm,隨機選取的橫剖型線最大誤差為0.073 1 mm,船艉復雜曲面最大誤差為0.178 5 mm。
3)通過對比曲面求交算法的迭代次數和交線求解用時,在參數區間收斂精度為0.000 1的情況下,二分法更適用于船體曲面分割。