岳朝歡,王 健 , 馮佰威
(1.武漢理工大學(xué) 船海與能源動(dòng)力工程學(xué)院,湖北 武漢 430063;2.武漢理工大學(xué) 高性能船舶技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430063;3.中國艦船研究設(shè)計(jì)中心,湖北 武漢 430064)
船體幾何重構(gòu)技術(shù)是船型優(yōu)化設(shè)計(jì)的關(guān)鍵技術(shù)之一,也是聯(lián)系優(yōu)化算法與船舶性能評估分析之間的“橋梁”。在船體重構(gòu)的變形方法中,自由變形(Free-Form Deformation,FFD)方法因其具有優(yōu)良的性能且易于集成于現(xiàn)有的大多數(shù)建模軟件而受到人們的廣泛關(guān)注。
1986年,SEDERBERG等[1]提出了自由變形方法,它以Bernstein多項(xiàng)式為基函數(shù),將原始物體放入正六面體控制體中,通過移動(dòng)控制體上的控制點(diǎn)對物體進(jìn)行變形。此后,便出現(xiàn)了各種擴(kuò)展的變形技術(shù),如擴(kuò)展自由變形方法、有理的自由變形方法、基于NURBS 的自由變形方法和自由變形動(dòng)畫等變形方法[2-4]。TAHARA等[5]利用FFD方法對多體船進(jìn)行幾何重構(gòu),并對其進(jìn)行了單目標(biāo)和多目標(biāo)的設(shè)計(jì)優(yōu)化。李勝忠[6]在國內(nèi)首次將FFD技術(shù)引入作為船體幾何變形的一種方法,并以KCS船為對象,實(shí)現(xiàn)了其球鼻艏的變形。陳紅梅等[7]將 FFD 技術(shù)應(yīng)用于船型優(yōu)化。馬丹萍[8]將FFD技術(shù)應(yīng)用于螺旋槳的優(yōu)化設(shè)計(jì)。FFD方法在對物體進(jìn)行形狀重構(gòu)時(shí)突破了傳統(tǒng)方法的局限性且容易集成于現(xiàn)有的軟件造型系統(tǒng),具有良好的交互性和可控性。
目前,國內(nèi)船舶領(lǐng)域已經(jīng)引入了FFD變形技術(shù),在實(shí)際船型優(yōu)化中發(fā)揮著重要的作用。本文以船舶離散出的空間點(diǎn)云為研究對象,利用FFD方法對船舶型值點(diǎn)云進(jìn)行空間位置變換,再通過變換后新的型值點(diǎn)反向求取船體NURBS曲面控制點(diǎn),從而生成光順的NURBS船體曲面。通過船體幾何變形的具體實(shí)例驗(yàn)證了FFD方法作為船體重構(gòu)變形工具的實(shí)用性與靈活性。
FFD技術(shù)的基本原理[9]主要由3個(gè)步驟構(gòu)成:
(1)根據(jù)變形物體確定一個(gè)正六面體,并將待變形物體進(jìn)行局部坐標(biāo)變換線性地嵌入正六面體。
(2)在正六面體上定義控制頂點(diǎn)網(wǎng)格,使其變?yōu)槿S張量積Bezier體。
(3)通過調(diào)整正六面體上的控制點(diǎn),讓正六面體發(fā)生形變,并將這個(gè)形變傳遞給正六面體中的待變形物體,從而使其發(fā)生變形。
在一個(gè)包圍變形物體的正六面體(控制體)中構(gòu)造一個(gè)局部坐標(biāo)系(O′-STU),見圖1。

圖1 坐標(biāo)系O′-STU
O′為局部坐標(biāo)系的原點(diǎn),S、T和U為軸矢量,O-XYZ為笛卡爾坐標(biāo)系,其中任一點(diǎn)X在局部坐標(biāo)系中的坐標(biāo)為(s,t,u),則有以下關(guān)系:
X=X0+sS+tT+uU
(1)
式中:X0為局部坐標(biāo)系的原點(diǎn);而s、t、u分別為
(2)
由s、t、u表達(dá)式可以知道,0≤s,t,u≤1。
在控制體上構(gòu)造控制頂點(diǎn)Qi,j,k,分別沿S、T和U3個(gè)方向用平行于O′TU、O′SU和O′ST坐標(biāo)面的等距離截面將O′S、O′T和O′U等分為l、m和n個(gè)區(qū)間,則Qi,j,k由下式確定:
(3)
其中,i,j,k=0,1,2,3…。當(dāng)i=j=k=0時(shí),Qi,j,k為局部坐標(biāo)系的原點(diǎn)。可以將控制體內(nèi)任意一點(diǎn)X的笛卡爾坐標(biāo)與局部坐標(biāo)通過下式建立聯(lián)系:
(4)
式中:Bi,l(s)、Bj,m(t)及Bk,n(u)分別為l、m及n次Bernstein多項(xiàng)式基函數(shù)。
Bernstein多項(xiàng)式基函數(shù)為
(5)

(6)
通過移動(dòng)Qi,j,k的空間位置從而改變空間點(diǎn)云的位置。后續(xù)船型優(yōu)化中選擇Qi,j,k作為優(yōu)化變量,生成新的船型進(jìn)行CFD計(jì)算,通過選擇合適的優(yōu)化算法進(jìn)行優(yōu)化操作,從而選出性能較優(yōu)的船型。
船體曲面重構(gòu)需要采用NURBS曲面插值算法,對于u向k次、v向l次的NURBS曲面定為
(7)
式中:di,j(i=0,1,…,m;j=0,1,…,n)是呈拓?fù)渚匦侮嚵械目刂祈旤c(diǎn),形成一個(gè)控制網(wǎng)格;wi,j為相應(yīng)控制點(diǎn)di,j的權(quán)因子,規(guī)定四角點(diǎn)處用正權(quán)因子,即wo,0、wm,0、wo,n、wm,n>0,其余wi,j≥0;Ni,k(u)(i=0,1,…,m)和Nj,t(v)(j=0,1,…,m)分別為u向k次和v向l次的規(guī)范B樣條基函數(shù),它們分別有u向和v向的節(jié)點(diǎn)矢量u=[u0,u1,…,um+k+1]與v=[v0,v1,…,vn+l+1],按deBoor遞推公式?jīng)Q定。
第i個(gè)k次B樣條基函數(shù)Ni,k(u)定義如下:
(8)
基函數(shù)Ni,k(u)是一個(gè)分段函數(shù),定義第i個(gè)k次B樣條基函數(shù)Ni,k(u),需要用到{ui,ui+1,…,ui+k+1}共k+2個(gè)節(jié)點(diǎn),區(qū)間[ui,ui+k+1]被稱為Ni,k(u)的支撐區(qū)間。在支撐區(qū)間內(nèi),B樣條基函數(shù)大于等于零,而區(qū)間外皆為零。
利用NURBS方法進(jìn)行船體曲面插值,首先沿u向?qū)η嫔系臄?shù)據(jù)換算成帶權(quán)值的型值點(diǎn),再通過B樣條曲線的邊界條件及反算公式求出控制點(diǎn);然后將這些控制點(diǎn)看作v向的型值點(diǎn)通過同樣的方法求得di,j,構(gòu)成控制網(wǎng)格。得到控制網(wǎng)格后,就可以利用式(7)進(jìn)行曲面重構(gòu)[10]。
為了研究FFD算法的特性,以常規(guī)的球體變形為例,建立一個(gè)球心在(0,0,0)、半徑為1的球體,并將其置于控制體中,通過調(diào)整頂部中心控制點(diǎn)并保持頂部邊緣控制點(diǎn)不動(dòng)的條件下實(shí)施整體的拉伸與壓縮變形,控制各基函數(shù)下可變控制點(diǎn)的拉伸與壓縮變化量一致。基函數(shù)次數(shù)為二、三、四的效果見圖2~圖4。

圖2 球體原型及各次基函數(shù)下控制點(diǎn)分布

圖3 各次數(shù)拉伸正面效果對比

圖4 各次數(shù)壓縮正面效果對比
通過對比分析圖2~圖4,發(fā)現(xiàn)基函數(shù)次數(shù)越小,操縱的控制點(diǎn)數(shù)越少,其對變形的效果影響越小,產(chǎn)生的變化量越小,此時(shí)操縱控制點(diǎn)越容易且計(jì)算時(shí)間越短;基函數(shù)次數(shù)越大,操縱的控制點(diǎn)數(shù)越多,其對變形的效果影響越大,產(chǎn)生的變化量越多,同時(shí)操縱控制點(diǎn)越困難且計(jì)算時(shí)間越長。一般選擇Bernstein基函數(shù)的次數(shù)為三次,此時(shí)控制點(diǎn)個(gè)數(shù)不多且易于操控且變形效果較好,計(jì)算時(shí)間也較快,滿足工程應(yīng)用的需求。
本文以C++語言編寫自由變形方法,對KCS標(biāo)準(zhǔn)船模進(jìn)行局部變形(球鼻艏)和整體變形。為了節(jié)約計(jì)算成本且方便操控,選擇三次Bernstein基函數(shù)共64個(gè)控制點(diǎn)。變形的目標(biāo)船型KCS見圖5。KCS船型是一個(gè)典型的帶球鼻艏的標(biāo)準(zhǔn)集裝箱船型,其主尺度參數(shù)如下:垂線間長7.279 m,型寬1.019 m,吃水0.342 m,方形系數(shù)0.651,船體濕表面積9.571 m2。

圖5 KCS基準(zhǔn)設(shè)計(jì)模型
2.2.1 KCS船體局部球鼻艏變形實(shí)列
圖6(a)為球艏原始幾何造型及其FFD控制體示意圖;圖6(b)為FFD通過4組變量(Z1、Z2、Z3、Z4)對球艏前端角度的控制變形,使得球艏前端上翹或下垂;圖6(c)為一組變量(X1)對球艏長度的控制,通過球鼻艏最前端那組控制點(diǎn)將球鼻艏拉長或壓縮變形;圖6(d)為一組變量(Y1)對球艏寬度的控制,通過拉伸或者壓縮改變球鼻艏的寬度。

圖6 KCS船球鼻艏變形示意圖
設(shè)置的6組控制點(diǎn)變量取值見表1,初始球鼻艏點(diǎn)云、控制體及可移動(dòng)控制點(diǎn)見圖7(a),變形后獲得新的空間點(diǎn)云及變形后的控制體見圖7(b)。

表1 局部變形控制點(diǎn)取值

圖7 變形前后空間點(diǎn)云對比
將獲得的空間點(diǎn)云通過NURBS方法自動(dòng)擬合生成光順的曲面,其變形效果對比見圖8。通過對生成的模型研究發(fā)現(xiàn),FFD方法在對船體進(jìn)行球鼻艏等局部變形時(shí),具有很好的光順性。

圖8 KCS船球鼻艏變形前后的型線對比
2.2.2 船體全局變形實(shí)例
對KCS船進(jìn)行全局變形。為了節(jié)省計(jì)算資源,將KCS半船的空間點(diǎn)云置于控制體內(nèi)。本文為了展示作圖的視覺效果,不考慮排水量的約束問題,因此排水量的變化會比較大。
相對于船舶型寬與型深而言,船長顯得比較長,因此在船長方向設(shè)置較多的控制點(diǎn),令l=8,m=3,n=3,共有144個(gè)控制點(diǎn)。設(shè)置3組控制點(diǎn)(Y1、X、Y2),艉部船寬方向的一組控制點(diǎn)(Y1)共8個(gè)向船寬方向移動(dòng)使艉部變得肥大;中后部一組控制點(diǎn)(X)共16個(gè)向船首方向移動(dòng);艏部一組控制點(diǎn)(Y2)共12個(gè)向船寬方向移動(dòng)使艏部變肥,見圖9。

圖9 KCS船全局變形示意圖
沿船長與船寬方向同時(shí)移動(dòng)3組控制點(diǎn)的位置,同一組下的控制點(diǎn)移動(dòng)相同的距離,最終X2、X3、Y2在船長及船寬處的取值見表2。

表2 全局變形控制點(diǎn)取值
變形后獲得新的空間點(diǎn)云。為了展示變形效果,將初始船體曲面與變形后空間點(diǎn)云放置在一起,見圖10。通過NURBS方法生成新的船體曲面并與初始船進(jìn)行型線對比,見圖11,其中虛線為變形后的新船型。從圖中可以看到,變形后平行中體前移,船體艏部變得豐滿,船舶整體變寬。經(jīng)檢驗(yàn)變形獲得的新船型是光順的,變形后的模型可直接用于CFD計(jì)算。

圖10 全局變形效果對比

圖11 母型船與變形船型線對比
(1)基于空間點(diǎn)云的自由變形技術(shù)可以用于船體局部的幾何重構(gòu)及船體整體的幾何重構(gòu),為船體局部、整體構(gòu)型優(yōu)化設(shè)計(jì)奠定了基礎(chǔ)。
(2)FFD算法實(shí)現(xiàn)局部變形時(shí)可以保持高階的跨界導(dǎo)矢連續(xù)性,且能夠保證曲面的光順性。
(3)控制點(diǎn)個(gè)數(shù)越多,控制越精細(xì),移動(dòng)靠近空間點(diǎn)云的控制點(diǎn)對變形的影響更大,且調(diào)整控制點(diǎn)引起的變化量在X、Y、Z方向互不耦合。
(4)通過變換后新的型值點(diǎn)反向求取船體NURBS曲面控制點(diǎn),通過NURBS方法生成光順的船體曲面,為后續(xù)CFD性能計(jì)算奠定了基礎(chǔ)。