陳志飚,陳慶任,朱顯玲
1 中國船級社 武漢規(guī)范研究所,武漢 430022
2 武漢船舶職業(yè)技術學院,武漢 430050
船舶穩(wěn)性計算專業(yè)軟件大體可劃分為3代,即二維、半三維和三維,它們的區(qū)別在于模型表達方式、人機交互能力和計算核心先進性。二維軟件在早期十分盛行,通常采用型值表與加密點或類似方式來描述船體模型,采用數(shù)據(jù)文件或表格窗口錄入模型數(shù)據(jù),采用幾何線框顯示船體外形,采用平面切片積分法計算船體幾何參數(shù)。三維軟件采用三維幾何模型來描述船體模型,并引入了三維可視化交互技術和三維網(wǎng)格積分算法;相較于二維軟件,三維能更直觀地創(chuàng)建和展示船型,良好的用戶體驗和廣泛的船型適應性使其更易于被用戶接受。半三維軟件介于兩者之間,其具備一定的三維可視化交互能力,但模型表達方式和計算核心尚未突破二維本質,所以適用性往往受到一定限制。
業(yè)界領先的穩(wěn)性計算軟件均具備一定的三維建模與三維計算能力。國外的MAXSURF和NAPA[1]等軟件在船舶領域應用廣泛,其三維交互能力深受歡迎;國內學者也開展了相關研究和軟件開發(fā)[2-3],但受應用條件制約,軟件未得以廣泛應用。
鑒于此,本研究以滿足用戶友好性、船型普適性、軟件易維護性為目標,擬采用三維可視交互技術、三維積分計算算法和軟件工程方法,借鑒AutoCAD等軟件的反向框選拾取、特征點捕捉、命令流等功能,設計開發(fā)一款具有自主版權的三維船體建模與穩(wěn)性計算系統(tǒng)COMPASSiStability(COMPASS Inland平臺的子系統(tǒng)),用于船舶輔助設計、審圖計算、航運安全評估和高校教學實訓。
考慮用戶的易接受度,本系統(tǒng)在研發(fā)時采用了當前成熟的模型-視圖-控制器(Model-View-Controller,MVC)設計模式,結合主板-插件式架構技術[4]的應用,最大程度降低系統(tǒng)設計的復雜性,使系統(tǒng)開發(fā)維護更為容易。視圖(View)負責展示模型(Model),控制器(Controller)是兩者的紐帶,三者之間相對獨立。
Model用于描述船體的幾何模型和分析模型(含結果)。采用了相對靈活和可擴展的XML架構,將數(shù)據(jù)劃分為幾何、船殼、分析等多個數(shù)據(jù)塊,每個數(shù)據(jù)塊又細分為不同類型的數(shù)據(jù)對象,如圖1所示。其中,幾何和船殼為三維可視化對象,采用自定義數(shù)據(jù)結構存儲用戶輸入數(shù)據(jù),每個對象以ID作為唯一標識;分析數(shù)據(jù)則采用了關系數(shù)據(jù)表進行表達。
圖 1 模型(Model)數(shù)據(jù)架構Fig.1 Data schema of the Model
View負責以合適的方式展示Model。幾何和船殼數(shù)據(jù)對象采用了對象樹面板、操作面板和基于OpenGL的三維視圖進行顯示和交互,如圖2所示;分析數(shù)據(jù)采用了智能表格控件、ZedGraph圖表控件和iTextSharp控件進行顯示、編輯和報告輸出,智能表格控件能根據(jù)用戶前序輸入自動屏蔽后序不需填寫的單元格(切換為只讀狀態(tài)并顯示為灰色)。
圖 2 軟件系統(tǒng)界面Fig.2 Software system interface
Controller負責響應用戶輸入,并在View和Model中體現(xiàn)響應結果。采用全局事件響應機制,當對象樹面板、操作面板、工具欄、三維視圖和命令窗口存在用戶輸入(鼠標、鍵盤等)時,由指定的處理器來響應,并將結果反饋到三維視圖、對象樹面板和輸出窗口(顯示用戶指令執(zhí)行的結果和告警信息)。其中,命令窗口接受用戶命令,通過自主開發(fā)的一套命令處理器來完成命令的解釋與執(zhí)行,并支持命令的撤銷與重做(Undo/Redo)。
建立船體模型是實施穩(wěn)性計算的前置條件,模型準確性與計算結果息息相關。本系統(tǒng)中推薦的三維船體建模流程如圖3所示,即首先創(chuàng)建型線,然后由型線構造型表面,繼而由型表面圍成主船體,最后從主船體上截取艙室。
圖 3 三維船體建模流程Fig.3 3D hull modeling process
三維建模方面,除三維可視化、Undo/Redo功能外,本系統(tǒng)還實現(xiàn)了以下功能:
1) 支持交互式建模。以操作面板為用戶入口,創(chuàng)建和編輯線、面、體,為操作面板中需要的數(shù)據(jù)項提供快捷輸入途徑:例如,數(shù)據(jù)項為圖元對象名稱,則可以從圖形窗口拾取,包括點選拾取、正向框選拾?。ㄈ柯湓诳騼燃催x中)和反向框選拾?。ú糠致湓诳騼燃催x中);例如,數(shù)據(jù)項為幾何坐標,則可從圖形窗口捕捉曲線端點、插值節(jié)點、交點、指定條件的點等,從而大幅度提高數(shù)據(jù)輸入的效率和便捷性。
2) 支持命令流建模。命令窗口輸入的命令在執(zhí)行之前可編輯修改,多個命令可同時批量執(zhí)行,這種建模方式尤其適用于熟練用戶,能實現(xiàn)全船快速建模和修改及母型船改型。
3) 支持將船舶肋位坐標、站位坐標作為輸入,用以表示坐標點的X坐標分量,從而實現(xiàn)以船員熟悉的方式簡化數(shù)據(jù)輸入。例如,#10+100表示10號肋位正向偏移100 mm,$2-200表示2號站位反向偏移100 mm。
4) 支持引用表達式作為輸入,用以表示坐標點或坐標分量。如表1所示,這種輸入方式可大幅簡化重復性數(shù)據(jù)的錄入,尤其適合表達線與線的交點。表1中:X,Y,Z表示坐標軸3個方向的分量;P1,C1和C2為對象的名稱標識;n為固定不變的特殊標記。
表 1 引用表達式示例Table 1 Reference expression example
5) 支持基于引用表達的聯(lián)動更新:若某線的坐標點采用引用表達式(表1)引用了其他點或線,當被引用的點或線修改后,該關聯(lián)線能跟隨聯(lián)動更新(圖4),以此確保幾何模型的一致性。
圖 4 被引用線修改后關聯(lián)線的聯(lián)動更新Fig.4 Linkage update of associated curve after modification of referenced curve
6) 艙室可通過參數(shù)化方式從船體上截取,僅需指定艙室的兩端位置X和用于表征端面形狀的特征點參數(shù),如圖5所示左舷艙;此外,也支持通過單元體與單元體(艙室)布爾運算組合,生成形狀復雜的艙室,如圖6所示艉部燃油艙。
圖 5 參數(shù)化截取左舷艙Fig.5 Extracting port side tank in parametric way
圖 6 艉部燃油艙(復雜艙室)Fig.6 Tail fuel oil tank (complex compartment)
7) 支持初始化圖形交換規(guī)范(IGES)導入和導出,實現(xiàn)與CATIA,NAPA,MAXSURF等常用軟件之間模型互通;同時,也支持型值表導入和導出,實現(xiàn)模型的快速創(chuàng)建和數(shù)據(jù)檢查。
基于三維模型方可開展三維穩(wěn)性計算,首先將代表船體與艙室的三維表面轉換為三維面網(wǎng)格單元模型,然后以此為輸入進行三維穩(wěn)性計算。
模型網(wǎng)格化就是把三維船體和艙室分別作為獨立的體,將其三維表面轉換為三角網(wǎng)格。轉換過程中,控制三角網(wǎng)格與三維表面的偏差δ≤0.000 1,如圖7所示。而網(wǎng)格尺寸則隨原始三維表面的曲度自適應調整,在曲度小的部位形成的網(wǎng)格很稀疏,例如平行舯體區(qū)域的舷側、船底等;在曲度很大的部位網(wǎng)格相對更細密,例如艉部螺旋槳軸、舭部等。從而確保轉化后的三角網(wǎng)格與原三維表面盡可能貼合,同時也最大程度減少網(wǎng)格數(shù)量,降低后續(xù)計算工作量。
圖 7 模型網(wǎng)格化Fig.7 Model meshing
為了得到船體排水體積、慣性矩、形心等三維幾何參數(shù),傳統(tǒng)方法是將船體的三維積分轉換為沿船長或型深的切片(橫剖面或水線面)近似積分[5],這種算法的計算精度受限,且難以適用于不規(guī)則和復雜的形體。
本系統(tǒng)基于三維面網(wǎng)格單元模型,采用了全新的積分算法,應用高斯定理將三維體積分轉換為三維面網(wǎng)格單元積分[6-7],計算結果精度可控,相比于傳統(tǒng)切片積分算法,對船型適應性更好,可適用于任意三維形體。
船舶浮態(tài)的計算是船舶穩(wěn)性計算的重要環(huán)節(jié)。本系統(tǒng)摒棄了基于靜水力數(shù)據(jù)來近似求解浮態(tài)的傳統(tǒng)方法,采用基于三維模型求解浮態(tài)平衡方程來直接計算船舶浮態(tài),方程求解采用牛頓迭代法,迭代過程中考慮船舶縱傾和橫傾,使浮態(tài)計算結果更準確。
除了船舶初始浮態(tài)外,復原力臂、進水角、破損浮態(tài)等計算也需要求解浮態(tài)平衡,只是求解方程有所不同:
1) 采用重力浮力平衡、縱傾力矩平衡的兩方程計算復原力臂;
2) 采用重力浮力平衡、縱傾力矩平衡、進水點/出水點在水面的三方程計算進水角/極限靜傾角;
3) 計算破損情況下的浮態(tài)、復原力臂及進水角,求解過程中采用損失浮力法,即根據(jù)艙室的三維模型和水平面實時扣除破損艙室的浮力。
為滿足“老船老辦法,新船新辦法”的現(xiàn)實需求,本系統(tǒng)將衡準標準設計為由用戶選擇,在確保向下兼容的前提下,若衡準標準升級換版,則允許增加新的衡準標準選項。
實際開發(fā)中,為了便于后續(xù)的軟件維護性和可持續(xù)發(fā)展,采用了面向對象的基類-派生類技術實現(xiàn)該設計:將《內河船舶法定檢驗技術檢驗規(guī)則(2011)》[8]設定為基類,將后續(xù)版本的衡準標準設定為派生類,新增或修訂的衡準要求在派生類中通過重載技術來實現(xiàn)。
本文所提系統(tǒng)支持的衡準包括2011~2019年期間發(fā)布及更新的《內河船舶法定檢驗技術規(guī)則》[8-12],以及《特定航線江海直達船舶法定檢驗技術規(guī)則(2018)》[13],后續(xù)還將根據(jù)行業(yè)發(fā)展需要增加《遠洋漁船法定檢驗技術規(guī)則(2019)》[14]等新的衡準。
選取規(guī)則體(長方體、圓柱體、球體等)進行建模計算測試(與理論值對比)。圖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 規(guī)則組合體Fig.8 Combination of regular bodies
表 2 組合體的體積和形心垂向坐標Table 2 Volume and centroid vertical coordinate of combination bodies
選取16艘典型實船(散貨船、集裝箱船、液貨船、客船、工程船等)進行建模和計算測試[15](與業(yè)界認可的計算系統(tǒng)對比),表3和圖9給出了130 m旅游船和12萬噸級油船的驗證結果。表中cyzWX為船舶靜水力計算與穩(wěn)性衡準程序V 4.2版本;NAPA為一款專業(yè)穩(wěn)性計算系統(tǒng)。由圖表可得,旅游船和油船的靜穩(wěn)性力臂l偏差不大于0.01 m。
本系統(tǒng)具備靜水力計算、艙容曲線計算、完整穩(wěn)性計算與衡準、許用重心高度計算、破損穩(wěn)性計算與衡準、傾斜試驗計算等功能。工程實踐表明:本系統(tǒng)完全突破了船體外形的制約,可適用于任意形狀的三維船體,覆蓋多艉、球艏、艏升高、艉升高、凸形甲板、浮船塢等復雜和特殊船型,以及雙體船、三體船、拼裝船等組合船體。與此同時,本系統(tǒng)具備的反向框選拾取、特征點捕捉、引用表達式、命令流、智能表格等功能元素,能大幅度簡化用戶輸入,提高建??旖菪浴?/p>
表 3 旅游船和油船靜穩(wěn)性力臂Table 3 Static stability force arm of tourist ship and oil tanker
圖 9 旅游船和油船靜穩(wěn)性力臂Fig.9 Static stability force arm of tourist ship and tanker
圖10所示為用本系統(tǒng)進行建模、三維顯示和計算的12艘典型實船的應用案例,其中:圖(a)為高速客船,其艉部設有雙隧道、舭部設有折角;圖(b)為液貨船,艏、艉均設有升高、舯部設有凸形甲板、并設有球鼻艏和艉軸包;圖(c)為游覽船,其設有三艉;圖(d)為雙體集裝箱船,其有2個片體且每個片體還設有艉隧道;圖(e)為雙體客船,其設有2個片體且每個片體都帶有艏升高和艉軸包;圖(f)為雙體觀光船,其2個片體一大一小;圖(g)和圖(h)為浮船塢和形似浮船塢的工程船,它們在工作狀態(tài)時底部浮箱沉入水中,僅剩兩舷露出水面且互為孤島;圖(j)、圖(k)和圖(l)為多體拼裝船,各拼裝組合體都是單個完整的排水體。為了描述上述這些復雜的外形特征并開展計算,采用基于型值表和切面積分的傳統(tǒng)穩(wěn)性軟件將非常困難,需要增設很多的加密切面和加密點,還不一定能確保計算精度,有些軟件甚至完全無法實現(xiàn);而使用本系統(tǒng),只需按實際船體外殼形狀,以三維可視化方式創(chuàng)建三維模型,不需要做任何特殊處理,建模簡單且計算結果準確度滿足工程計算需求。
圖 10 典型實船工程應用Fig.10 Engineering application of typical ships
本研究自主開發(fā)了三維船體建模與穩(wěn)性計算系統(tǒng)COMPASS-iStability,該系統(tǒng)具備以下特點:
1) 采用Model-View-Controller模式搭建系統(tǒng),三者相對獨立,降低了開發(fā)難度,提高了可維護性;
2) 提供了三維可視、對象拾取、特征點捕捉、撤銷重做、命令流等功能,既適用于一般用戶進行三維圖形交互式建模,也適用于熟練用戶進行全船快速建模和母型船改型;
3) 可用引用表達式代表幾何坐標,可確保站線、水線等不同方向三維曲線的交點坐標保持一致,當被引用圖元有修改時,后序關聯(lián)圖元還能隨之聯(lián)動更新;
4) 實現(xiàn)了三維艙室參數(shù)化建模,過程中僅需指定艙室前后端面位置及端面特征點;
5) 采用三維面網(wǎng)格單元積分算法實施穩(wěn)性計算,相較于傳統(tǒng)切片積分計算,不僅提高了計算準確度,而且突破了船體幾何形狀的限制,能適用于傳統(tǒng)計算系統(tǒng)無法或難以覆蓋的任意情形,包括球艏、多艉、多體、浮船塢、組合船體等;
6) 提供多個衡準標準供用戶選用,并在保證向下兼容的前提下,可根據(jù)業(yè)界發(fā)展需求增加新的衡準選項,確保了“老船老辦法、新船新辦法”的現(xiàn)實需求得以滿足。
在典型實船中的工程應用結果表明,該穩(wěn)性計算系統(tǒng)有助于用戶實現(xiàn)三維船體與艙室的快速建模和穩(wěn)性計算,降低專業(yè)穩(wěn)性計算軟件的使用門檻,對于船舶工程軟件的設計研發(fā)也具有重要的指導意義。在船舶穩(wěn)性計算中,該軟件已廣泛應用于實船輔助設計、審圖檢驗和高校教學實訓,得到業(yè)界的廣泛認可。
后續(xù)將進一步提升本軟件的用戶友好性,繼續(xù)開發(fā)和完善與其他專業(yè)建模和計算軟件的接口,實現(xiàn)船體模型的共享和互操作;另一方面,也將在立足工程計算的基礎上,新增拓展用戶期待的面向設計功能,如船型變換、快速性預報與操縱性預報等。