陳志飚,陳慶任,朱顯玲
1 中國船級社 武漢規范研究所,武漢 430022
2 武漢船舶職業技術學院,武漢 430050
船舶穩性計算專業軟件大體可劃分為3代,即二維、半三維和三維,它們的區別在于模型表達方式、人機交互能力和計算核心先進性。二維軟件在早期十分盛行,通常采用型值表與加密點或類似方式來描述船體模型,采用數據文件或表格窗口錄入模型數據,采用幾何線框顯示船體外形,采用平面切片積分法計算船體幾何參數。三維軟件采用三維幾何模型來描述船體模型,并引入了三維可視化交互技術和三維網格積分算法;相較于二維軟件,三維能更直觀地創建和展示船型,良好的用戶體驗和廣泛的船型適應性使其更易于被用戶接受。半三維軟件介于兩者之間,其具備一定的三維可視化交互能力,但模型表達方式和計算核心尚未突破二維本質,所以適用性往往受到一定限制。
業界領先的穩性計算軟件均具備一定的三維建模與三維計算能力。國外的MAXSURF和NAPA[1]等軟件在船舶領域應用廣泛,其三維交互能力深受歡迎;國內學者也開展了相關研究和軟件開發[2-3],但受應用條件制約,軟件未得以廣泛應用。
鑒于此,本研究以滿足用戶友好性、船型普適性、軟件易維護性為目標,擬采用三維可視交互技術、三維積分計算算法和軟件工程方法,借鑒AutoCAD等軟件的反向框選拾取、特征點捕捉、命令流等功能,設計開發一款具有自主版權的三維船體建模與穩性計算系統COMPASSiStability(COMPASS Inland平臺的子系統),用于船舶輔助設計、審圖計算、航運安全評估和高校教學實訓。
考慮用戶的易接受度,本系統在研發時采用了當前成熟的模型-視圖-控制器(Model-View-Controller,MVC)設計模式,結合主板-插件式架構技術[4]的應用,最大程度降低系統設計的復雜性,使系統開發維護更為容易。視圖(View)負責展示模型(Model),控制器(Controller)是兩者的紐帶,三者之間相對獨立。
Model用于描述船體的幾何模型和分析模型(含結果)。采用了相對靈活和可擴展的XML架構,將數據劃分為幾何、船殼、分析等多個數據塊,每個數據塊又細分為不同類型的數據對象,如圖1所示。其中,幾何和船殼為三維可視化對象,采用自定義數據結構存儲用戶輸入數據,每個對象以ID作為唯一標識;分析數據則采用了關系數據表進行表達。

圖 1 模型(Model)數據架構Fig.1 Data schema of the Model
View負責以合適的方式展示Model。幾何和船殼數據對象采用了對象樹面板、操作面板和基于OpenGL的三維視圖進行顯示和交互,如圖2所示;分析數據采用了智能表格控件、ZedGraph圖表控件和iTextSharp控件進行顯示、編輯和報告輸出,智能表格控件能根據用戶前序輸入自動屏蔽后序不需填寫的單元格(切換為只讀狀態并顯示為灰色)。

圖 2 軟件系統界面Fig.2 Software system interface
Controller負責響應用戶輸入,并在View和Model中體現響應結果。采用全局事件響應機制,當對象樹面板、操作面板、工具欄、三維視圖和命令窗口存在用戶輸入(鼠標、鍵盤等)時,由指定的處理器來響應,并將結果反饋到三維視圖、對象樹面板和輸出窗口(顯示用戶指令執行的結果和告警信息)。其中,命令窗口接受用戶命令,通過自主開發的一套命令處理器來完成命令的解釋與執行,并支持命令的撤銷與重做(Undo/Redo)。
建立船體模型是實施穩性計算的前置條件,模型準確性與計算結果息息相關。本系統中推薦的三維船體建模流程如圖3所示,即首先創建型線,然后由型線構造型表面,繼而由型表面圍成主船體,最后從主船體上截取艙室。

圖 3 三維船體建模流程Fig.3 3D hull modeling process
三維建模方面,除三維可視化、Undo/Redo功能外,本系統還實現了以下功能:
1) 支持交互式建模。以操作面板為用戶入口,創建和編輯線、面、體,為操作面板中需要的數據項提供快捷輸入途徑:例如,數據項為圖元對象名稱,則可以從圖形窗口拾取,包括點選拾取、正向框選拾取(全部落在框內即選中)和反向框選拾取(部分落在框內即選中);例如,數據項為幾何坐標,則可從圖形窗口捕捉曲線端點、插值節點、交點、指定條件的點等,從而大幅度提高數據輸入的效率和便捷性。
2) 支持命令流建模。命令窗口輸入的命令在執行之前可編輯修改,多個命令可同時批量執行,這種建模方式尤其適用于熟練用戶,能實現全船快速建模和修改及母型船改型。
3) 支持將船舶肋位坐標、站位坐標作為輸入,用以表示坐標點的X坐標分量,從而實現以船員熟悉的方式簡化數據輸入。例如,#10+100表示10號肋位正向偏移100 mm,$2-200表示2號站位反向偏移100 mm。
4) 支持引用表達式作為輸入,用以表示坐標點或坐標分量。如表1所示,這種輸入方式可大幅簡化重復性數據的錄入,尤其適合表達線與線的交點。表1中:X,Y,Z表示坐標軸3個方向的分量;P1,C1和C2為對象的名稱標識;n為固定不變的特殊標記。

表 1 引用表達式示例Table 1 Reference expression example
5) 支持基于引用表達的聯動更新:若某線的坐標點采用引用表達式(表1)引用了其他點或線,當被引用的點或線修改后,該關聯線能跟隨聯動更新(圖4),以此確保幾何模型的一致性。

圖 4 被引用線修改后關聯線的聯動更新Fig.4 Linkage update of associated curve after modification of referenced curve
6) 艙室可通過參數化方式從船體上截取,僅需指定艙室的兩端位置X和用于表征端面形狀的特征點參數,如圖5所示左舷艙;此外,也支持通過單元體與單元體(艙室)布爾運算組合,生成形狀復雜的艙室,如圖6所示艉部燃油艙。

圖 5 參數化截取左舷艙Fig.5 Extracting port side tank in parametric way

圖 6 艉部燃油艙(復雜艙室)Fig.6 Tail fuel oil tank (complex compartment)
7) 支持初始化圖形交換規范(IGES)導入和導出,實現與CATIA,NAPA,MAXSURF等常用軟件之間模型互通;同時,也支持型值表導入和導出,實現模型的快速創建和數據檢查。
基于三維模型方可開展三維穩性計算,首先將代表船體與艙室的三維表面轉換為三維面網格單元模型,然后以此為輸入進行三維穩性計算。
模型網格化就是把三維船體和艙室分別作為獨立的體,將其三維表面轉換為三角網格。轉換過程中,控制三角網格與三維表面的偏差δ≤0.000 1,如圖7所示。而網格尺寸則隨原始三維表面的曲度自適應調整,在曲度小的部位形成的網格很稀疏,例如平行舯體區域的舷側、船底等;在曲度很大的部位網格相對更細密,例如艉部螺旋槳軸、舭部等。從而確保轉化后的三角網格與原三維表面盡可能貼合,同時也最大程度減少網格數量,降低后續計算工作量。

圖 7 模型網格化Fig.7 Model meshing
為了得到船體排水體積、慣性矩、形心等三維幾何參數,傳統方法是將船體的三維積分轉換為沿船長或型深的切片(橫剖面或水線面)近似積分[5],這種算法的計算精度受限,且難以適用于不規則和復雜的形體。
本系統基于三維面網格單元模型,采用了全新的積分算法,應用高斯定理將三維體積分轉換為三維面網格單元積分[6-7],計算結果精度可控,相比于傳統切片積分算法,對船型適應性更好,可適用于任意三維形體。
船舶浮態的計算是船舶穩性計算的重要環節。本系統摒棄了基于靜水力數據來近似求解浮態的傳統方法,采用基于三維模型求解浮態平衡方程來直接計算船舶浮態,方程求解采用牛頓迭代法,迭代過程中考慮船舶縱傾和橫傾,使浮態計算結果更準確。
除了船舶初始浮態外,復原力臂、進水角、破損浮態等計算也需要求解浮態平衡,只是求解方程有所不同:
1) 采用重力浮力平衡、縱傾力矩平衡的兩方程計算復原力臂;
2) 采用重力浮力平衡、縱傾力矩平衡、進水點/出水點在水面的三方程計算進水角/極限靜傾角;
3) 計算破損情況下的浮態、復原力臂及進水角,求解過程中采用損失浮力法,即根據艙室的三維模型和水平面實時扣除破損艙室的浮力。
為滿足“老船老辦法,新船新辦法”的現實需求,本系統將衡準標準設計為由用戶選擇,在確保向下兼容的前提下,若衡準標準升級換版,則允許增加新的衡準標準選項。
實際開發中,為了便于后續的軟件維護性和可持續發展,采用了面向對象的基類-派生類技術實現該設計:將《內河船舶法定檢驗技術檢驗規則(2011)》[8]設定為基類,將后續版本的衡準標準設定為派生類,新增或修訂的衡準要求在派生類中通過重載技術來實現。
本文所提系統支持的衡準包括2011~2019年期間發布及更新的《內河船舶法定檢驗技術規則》[8-12],以及《特定航線江海直達船舶法定檢驗技術規則(2018)》[13],后續還將根據行業發展需要增加《遠洋漁船法定檢驗技術規則(2019)》[14]等新的衡準。
選取規則體(長方體、圓柱體、球體等)進行建模計算測試(與理論值對比)。圖8為一個由長方體、圓臺和半球體組成的組合體,其中長方體的尺寸為4 m×4 m×8 m,底面中心為(-2 m,-3 m,0 m);圓臺底面圓心為(6 m,5 m,3.2 m),底面半徑1.5 m,頂面半徑0.35 m,高6 m;半球的半徑為10 m,底部圓心為(0 m,0 m,7.5 m)。表2給出了該組合體的驗證結果,體積的相對誤差小于0.06%,形心垂向坐標的相對誤差小于0.01%。

圖 8 規則組合體Fig.8 Combination of regular bodies

表 2 組合體的體積和形心垂向坐標Table 2 Volume and centroid vertical coordinate of combination bodies
選取16艘典型實船(散貨船、集裝箱船、液貨船、客船、工程船等)進行建模和計算測試[15](與業界認可的計算系統對比),表3和圖9給出了130 m旅游船和12萬噸級油船的驗證結果。表中cyzWX為船舶靜水力計算與穩性衡準程序V 4.2版本;NAPA為一款專業穩性計算系統。由圖表可得,旅游船和油船的靜穩性力臂l偏差不大于0.01 m。
本系統具備靜水力計算、艙容曲線計算、完整穩性計算與衡準、許用重心高度計算、破損穩性計算與衡準、傾斜試驗計算等功能。工程實踐表明:本系統完全突破了船體外形的制約,可適用于任意形狀的三維船體,覆蓋多艉、球艏、艏升高、艉升高、凸形甲板、浮船塢等復雜和特殊船型,以及雙體船、三體船、拼裝船等組合船體。與此同時,本系統具備的反向框選拾取、特征點捕捉、引用表達式、命令流、智能表格等功能元素,能大幅度簡化用戶輸入,提高建模快捷性。

表 3 旅游船和油船靜穩性力臂Table 3 Static stability force arm of tourist ship and oil tanker

圖 9 旅游船和油船靜穩性力臂Fig.9 Static stability force arm of tourist ship and tanker
圖10所示為用本系統進行建模、三維顯示和計算的12艘典型實船的應用案例,其中:圖(a)為高速客船,其艉部設有雙隧道、舭部設有折角;圖(b)為液貨船,艏、艉均設有升高、舯部設有凸形甲板、并設有球鼻艏和艉軸包;圖(c)為游覽船,其設有三艉;圖(d)為雙體集裝箱船,其有2個片體且每個片體還設有艉隧道;圖(e)為雙體客船,其設有2個片體且每個片體都帶有艏升高和艉軸包;圖(f)為雙體觀光船,其2個片體一大一小;圖(g)和圖(h)為浮船塢和形似浮船塢的工程船,它們在工作狀態時底部浮箱沉入水中,僅剩兩舷露出水面且互為孤島;圖(j)、圖(k)和圖(l)為多體拼裝船,各拼裝組合體都是單個完整的排水體。為了描述上述這些復雜的外形特征并開展計算,采用基于型值表和切面積分的傳統穩性軟件將非常困難,需要增設很多的加密切面和加密點,還不一定能確保計算精度,有些軟件甚至完全無法實現;而使用本系統,只需按實際船體外殼形狀,以三維可視化方式創建三維模型,不需要做任何特殊處理,建模簡單且計算結果準確度滿足工程計算需求。

圖 10 典型實船工程應用Fig.10 Engineering application of typical ships
本研究自主開發了三維船體建模與穩性計算系統COMPASS-iStability,該系統具備以下特點:
1) 采用Model-View-Controller模式搭建系統,三者相對獨立,降低了開發難度,提高了可維護性;
2) 提供了三維可視、對象拾取、特征點捕捉、撤銷重做、命令流等功能,既適用于一般用戶進行三維圖形交互式建模,也適用于熟練用戶進行全船快速建模和母型船改型;
3) 可用引用表達式代表幾何坐標,可確保站線、水線等不同方向三維曲線的交點坐標保持一致,當被引用圖元有修改時,后序關聯圖元還能隨之聯動更新;
4) 實現了三維艙室參數化建模,過程中僅需指定艙室前后端面位置及端面特征點;
5) 采用三維面網格單元積分算法實施穩性計算,相較于傳統切片積分計算,不僅提高了計算準確度,而且突破了船體幾何形狀的限制,能適用于傳統計算系統無法或難以覆蓋的任意情形,包括球艏、多艉、多體、浮船塢、組合船體等;
6) 提供多個衡準標準供用戶選用,并在保證向下兼容的前提下,可根據業界發展需求增加新的衡準選項,確保了“老船老辦法、新船新辦法”的現實需求得以滿足。
在典型實船中的工程應用結果表明,該穩性計算系統有助于用戶實現三維船體與艙室的快速建模和穩性計算,降低專業穩性計算軟件的使用門檻,對于船舶工程軟件的設計研發也具有重要的指導意義。在船舶穩性計算中,該軟件已廣泛應用于實船輔助設計、審圖檢驗和高校教學實訓,得到業界的廣泛認可。
后續將進一步提升本軟件的用戶友好性,繼續開發和完善與其他專業建模和計算軟件的接口,實現船體模型的共享和互操作;另一方面,也將在立足工程計算的基礎上,新增拓展用戶期待的面向設計功能,如船型變換、快速性預報與操縱性預報等。