黃亞南,羅 洲
(大連海洋大學 航海與船舶工程學院,遼寧 大連 116023)
船體外形設計是一項重要而復雜的技術,是整個船舶設計的核心部分。設計者的設計能力對船舶整體航行性能、經濟性能和產品競爭力有著重要影響。 如今,計算流體動力學一直蓬勃發展,對船體表現的預估能力得到了顯著提升。CFD技術逐漸變得實用并完全融入到設計過程中,但目前它主要局限于船舶水動力特性的計算和預測(正向問題)僅部分取代和減少模型試驗,沒有系統地將CFD技術集成到優化設計過程(逆向問題)中,使其能夠實現激發設計師創新理念的目的。
在依據CFD數值計算基礎理論建立基于CFD船型優化設計問題的數學模型后,設計者需要解決CAD模型優化問題。 目前國內外求解方法主要有兩種:設計參數梯度式改變的算法和隨機生成若干不同設計參數數值的算法。 通過求解各種設計參數情況下的模型方案,可以獲得在給定約束條件下具有最佳流體動力學性能的船型。 所以,為了獲得該優化問題的最優解,必須解決船體的參數化建模。
在現代商船船體阻力的成分中,粘壓阻力占比不小,而且有很大優化的空間(摩擦阻力雖然占比大但沒有大的優化空間)。要減小粘壓阻力,優化球鼻艏是公認的簡單且高效的方法。因為改變球鼻艏形狀不會對整個船舶浮心和重心產生大的影響,對已有船舶進行加裝或改裝球鼻艏切實可行且經濟實惠,所以此次研究專注于球鼻艏的參數化建模。
在球鼻艏優化過程中,設計變量將根據優化算法進行相應調整,設計變量的調整將反映在球鼻艏幾何形狀的變化中。 如何通過盡可能少的設計變量變化獲得盡可能寬的幾何范圍一直是球鼻艏幾何重建技術所追求的目標,當然,這也是形狀優化設計中的難點。
趙林崗等[1]在研究球鼻艏長度對阻力性能的影響時,通過手動建模實現對模型長度的修改。黃衛剛等[2]改變球鼻艏主尺度比手動建模得到各種不同的球鼻艏模型。劉成崗等[3]開發了一種仿射變換的方法,利用拉伸系數對球鼻艏部分型值進行改變。徐俊路等[4]基于CATIA軟件,用VB語言編程開發了真正的球鼻艏參數化設計平臺。此外,詹成勝等[5]通過融合多條不同船型,調節融合系數改變球鼻艏的型線。蘭林強等[6]在2016年利用Friendship平臺,利用算法表示球鼻艏主要特征曲線,然后通過改變各種參數來實現模型的自動修改。
參照國內外研究成果,實現球鼻艏建模的方法主要有以下四種:
(1)多項式補丁法[7]。 多項式補丁法將Bezier曲面像補丁一樣疊加在初始球鼻艏的幾何部分上,并利用Bezier曲面的變形來實現船體的幾何重建。設計者可以通過曲面節點位置的更改來獲取不同的曲面形狀,并且可以在特定約束條件下增加直接使用的節點的數量。但是,隨著節點的增加,計算量也以指數形式增加,從而需要大量的計算內存。
(2)Morphing方法[8]。Morphing方法(變形方法)基于兩個或更多個初始船型的線性疊加,并且通過調整疊加系數來實現球鼻艏的幾何重建。該方法的優點在于設計變量的數量很少并且易于滿足對球鼻艏模型平滑度的要求,缺點是難以獲得大量的不同的球鼻艏模型。
(3)編程語言方法。 RODRIGUEZ等[9]開發了一種基于編程語言的編程設計方法,以生成參數化船體。這種方法的優點是參數易于修改,可以得到大量不同形狀的球鼻艏模型。但編程語言對很多優化設計者來說是一個很大挑戰,而且參數相對復雜,計算量較大。
(4)CAESES方法。 CAESES軟件是一個靈活的CAD(計算機輔助設計)軟件和優化平臺,廣泛應用于參數化建模和優化設計研究。當在CAESES中生成參數化球鼻艏時,需要寫一定的代碼,這對于不了解代碼的初學者或用戶來說是較困難的。對于參數化球鼻艏生成的情況,當連接生成的球鼻艏和主船體時,用戶應該創建3個或更多的過渡表面以獲得光順的船體。
本文利用Grasshopper生成參數球鼻艏并將生成的球鼻艏自動光順地連接在固定的船體上。Grasshopper是一個免費的圖形算法編輯器,它與犀牛軟件的3D建模工具緊密集成。 與犀牛腳本不同,Grasshopper不需要編程或腳本知識,但仍然支持設計人員利用犀牛建成參數化的模型。 利用Grasshopper,生成可修改的參數化球鼻艏,并且球鼻和固定船體之間的過渡區域也將自動生成, 從而簡化了模型生成過程,有效地縮短了整個球鼻艏優化過程。
如圖1所示,在這項研究中船體被分為三個部分:主船體、過渡區域、球鼻艏區域。 為了獲得光順的船體,過渡區域被設計成能夠自由地改變形狀的區域: 過渡區域的左側部分是固定的,右側連接到球鼻艏區域。 當球鼻艏隨著長度、寬度或豐滿度等設計參數改變形狀時,過渡區域將隨著球鼻艏一起改變,因此可以自動生成光順的球鼻艏模型。
要生成參數化球鼻艏模型,第一步就是生成球鼻艏的基本結構線。 在本項研究中,僅需要四條基本線來產生球鼻艏:頂線、龍骨線、舭部曲線和固定邊界線。 在這四條線中,固定邊界線直接由NURBS曲線導入,其他三條線由五個頂點生成,見圖2。圖中,數字1~5表示輸入點的編號。

圖1 艏部劃分方案

圖2 球鼻艏基本結構線
圖3展示了整個生成過程的輸入參數:五個點和一個固定的邊界曲線。 點2和點5是固定邊界線的頂點,因此它們是不可改變的。 在球鼻艏優化循環過程中,可變參數應盡可能少,從而可以大大簡化計算過程。 在本次研究中,可變參數包括三個頂點、六個正切值和四個豐滿度值,這些值通過控制結構曲線的形狀來改變球鼻艏的幾何模型。

圖3 輸入參數(左)和Tancurve功能單元(右)
此次研究所有的結構線都是由圖3中的Tancurve功能生成。由圖可知,該功能單元包括四個輸入值和三個輸出值。輸入參數方面:V表示頂點(Vertices);T表示切向量(Tangent);B表示控制生成曲線的豐滿度的值(Blend);D表示生成曲線的度數(Degree)。輸出方面:C表示生成的曲線(Curve);L表示曲線的長度(Length);d表示曲線的輸出域(domain),即曲線的指定部分,d通常它被設置為0到1,這意味著輸出整個曲線。 為了達到圖1中說明的目的,由于兩個部分的曲率是相同的,頂線被設計成第一部分和第二部分,見圖2。 為了獲得光順的頂線,這兩個部分的切線值必須在點1處相同。對于龍骨線,曲率是一致的,因此不需要將其分成兩部分。
當把第一部分和第二部分的曲線連接在一起時,點1處的正切值必須合適,能使整條頂線平滑。正切值由矢量表示,包括三個值:X、Y、Z。根據矢量的特殊位置和方向,可以預設Y和Z,只改變X值。為了獲得合適的切向量,X值必須能夠連續地改變,見圖4。獲得光順的頂線后,第2點和第3點的切向量也將被修改,以使頂線更加光順。其他切向量的方向也可以被連續地修改。

圖4 切向量改變方案示意圖
生成基本結構線之后,下一步要生成橫剖線,以便可以構建球鼻狀的曲面。 橫剖點定位見圖5。首先生成中心線,并將其分成10個站,中心線上有11個點。然后分別在3個方向上生成線組1、線組2、線組3。最后分別在頂線、舭部線、龍骨線上找到橫剖點。為了找到頂線和龍骨線上的橫剖點,用圖6右側所示的功能單元可以找到兩條曲線的相距的最近點。由于最近點在兩條曲線上各有兩組,所以對于頂線和龍骨線上的橫剖點,將取在頂線或龍骨線上。對于新舭部線上的橫剖點,最近點將取在線組2上。線組2可以被設計為可繞軸旋轉,因此新舭部線的位置可以改變,意味著球鼻艏可以隨著舭部的位置不斷調整形狀。
然后用上述方法生成橫剖線,見圖7。 舭部曲線處的切向量的方向也應該是可變的,因此可以得到光順的橫剖線。圖8顯示修改切向量的方法與前文提到的相同(改變X、Y、Z值)。
在本項研究中,圖9顯示了由Grasshopper中名為netsurf(網線曲面)的功能單元產生的NURBS表面。 由于到目前為止僅產生了半個球鼻艏表面,因此圖10給出了生成的曲面被鏡像并連接成整個球鼻艏的過程。

圖5 橫剖點定位圖

圖6 橫剖點鎖定方案示意圖

圖7 橫剖線圖

圖8 橫剖線切向量修改示意圖

圖9 球鼻艏模型曲面
如圖9所示,過渡區域在產生光滑的球根狀弓形中起重要作用,并且當球形區域被修改時將保持球根狀弓形光滑。
在圖11中,前3張圖片是通過改變球鼻長度和龍骨線與基線之間的角度改變球鼻艏形狀的結果。
底部兩個模型是通過改變橫剖線曲線的豐滿度來改變球鼻艏形狀獲得的模型。

圖10 球鼻艏曲面生成方案示意圖

圖11 球鼻艏模型變換結果圖
將上述方法應用于一艘集裝箱船(Kriso Container Ship,KCS)船體上,以檢驗該方法的實用性。
如圖12所示,球鼻艏模型隨著參數改變,自動較大幅度修改的同時,生成的球鼻艏模型仍可以光順地連接在主船體上。

圖12 球鼻艏模型變換結果圖
此方法無需生成其他曲面就可以將鼻艏連接到主船體,用戶可以通過拖動某些按鈕來更改參數,大大簡化了生成過程,同時實現了球鼻與主船體的光順連接。用于修改球鼻艏形狀的每個參數都清楚地顯示給用戶,建模結果也可以在犀牛軟件中實時顯示。該方法成功被應用在一艘集裝箱(KCS)船體上,表明該方法可以高效地應用于商業船舶的參數化球鼻艏建模。