張黎輝,陳建濤,侯 良
(1.自然資源部 北海局 北海海洋工程勘察研究院,山東青島 266061;2.齊魯工業(yè)大學(xué)(山東省科學(xué)院)海洋儀器儀表研究所,山東青島 266100;3.國家海洋監(jiān)測設(shè)備工程技術(shù)研究中心,山東青島 266100;4.煙臺中集來福士海洋工程有限公司,山東煙臺 264000)
Maxsurf是船舶專業(yè)的CAD和CAM軟件系統(tǒng),Maxsurf Stability是其中非常重要的一個組成模塊,在Maxsurf Modeler模型的基礎(chǔ)上,設(shè)置一定的參數(shù),可以進行靜水力計算、液體艙容計算、穩(wěn)性橫截曲線計算、破損穩(wěn)性計算等[1]。橫貫浸水是指船舶沒有破損一側(cè)的處所引入進水來減小船舶最終平衡時的橫傾角,增大船舶殘存概率[2],但只有當(dāng)橫貫浸水時間小于等于10 min時,才滿足規(guī)范要求,且被認為是有效的[3-5]。目前計算方法都是基于破損穩(wěn)性計算數(shù)據(jù)和橫貫浸水裝置參數(shù)人工完成,計算繁瑣,效率低下。本文基于VB.NET對Maxsurf Stability進行二次開發(fā),對其相關(guān)的計算數(shù)據(jù)進行訪問、提取,并結(jié)合用戶在程序中輸入的相關(guān)參數(shù),調(diào)用計算函數(shù),快速準確地計算出橫貫浸水時間,確定橫貫浸水裝置的有效性。
船舶橫貫浸水裝置連接艙壁甲板以下兩個關(guān)于中縱剖面對稱的艙室,該裝置在船體完整時不貫通兩個艙室,當(dāng)船體一舷破損出現(xiàn)較大橫傾角時,開啟橫貫浸水裝置貫通兩個艙室使船舶橫傾角減小,甚至使船舶正浮。橫貫浸水裝置一般由橫貫管、遙控閥門等組成。船舶橫貫浸水裝置廣泛應(yīng)用于新建船舶及改造船舶中。
國際海事組織(IMO)在第8屆會議上通過了A.266(VII)決議規(guī)定了常規(guī)橫貫浸水裝置設(shè)計方法;第83屆海安會上通過了MSC.245(83)決議“一種評估橫貫浸水裝置標準方法的建議案”,考慮了空氣管負壓的阻滯作用及特殊雙層底布置形成的橫貫裝置的情況;第85屆海安會上通過了MSC.281(85),要求裝設(shè)橫貫浸水裝置的客船和貨船按照MSC.245(83)計算橫貫浸水時間;第92屆海安會上通過了MSC.362(92)決議“經(jīng)修訂的一種評估橫貫浸水裝置標準方法的建議案”,基于最新研究成果對MSC.245(83)決議進行了修訂和改進。其中規(guī)定從橫貫浸水開始θ0到最終平衡θf所需要的時間[6]:
式中:Wf為船舶從橫貫浸水開始θ0到最終平衡θf所使用的水體積,m3;S為橫貫管的橫截面面積,m2;H0為橫貫浸水開始前的水頭,m;hf為橫貫浸水后最終水頭,m;g為重力加速度(9.81 m/s2);F為橫貫浸水系統(tǒng)中,通過一個平衡裝置的無因次減速因子,是彎頭、閥門等的函數(shù):
式中:Σki為橫貫浸水裝置計算中,摩擦系數(shù)的總和。
在計算概率破損穩(wěn)性時,橫貫浸水時間不同,殘存概率取值也不同[7]。在確定性破損穩(wěn)性計算時,根據(jù)橫貫浸水時間確定橫貫浸水裝置的有效性。
計算橫貫浸水時間所需的參數(shù)中橫貫管橫截面積、橫貫浸水系統(tǒng)摩擦系數(shù)總和根據(jù)設(shè)備規(guī)格確定,船舶從橫貫浸水開始θ0到最終平衡θf所使用的水體積、橫貫浸水開始前后的水頭高度從Maxsurf Stability計算數(shù)據(jù)中獲取。設(shè)置只有1個艙室破損的工況DCase1和2個對稱艙室都破損的DCase1-1,對2個工況進行穩(wěn)性計算,根據(jù)2個工況的吃水及排水量的差獲取船舶從橫貫浸水開始θ0到最終平衡θf所使用的水體積;橫貫浸水開始前后的水頭高度根據(jù)2個工況的浮態(tài)及艙室位置信息計算獲取。
Maxsurf Stability的開發(fā)環(huán)境是Maxsurf Stability ActiveX Automation。ActiveX Automation是微軟公司基于組件對象模型(Component Object Model,COM)體系結(jié)構(gòu)開發(fā)的一項技術(shù),是Maxsurf Stability的編程接口,通常用于創(chuàng)建向編程工具和宏語言展示方法的組件。在Maxsurf Stability中使用ActiveX接口可以使更多的編程環(huán)境訪問Maxsurf Stability對象。VB.NET(Visual Basic.NET)是基于微軟.NET Framework之上的面向?qū)ο蟮木幊陶Z言,是Basic系語言中一門強大的編程語言。本文使用VB.NET通過ActiveX Automation接口實現(xiàn)對Maxsurf Stability數(shù)據(jù)的獲取和操作,完成橫貫浸水時間的計算,確定橫貫浸水裝置的有效性[8-9]。
Maxsurf Stability的二次開發(fā)是通過VB.NET語言訪問其對象模型實現(xiàn)的。Maxsurf Stability對象模型都具有各自獨立的屬性(Properties)和方法(Methods)。屬性包含了對象的具體信息,例如對象Tank的屬性包括Damaged permeability、Fluid type、Intact permeability、Tank name、Relative density、Type。方法是可以操作對象的一些函數(shù),例如對象Design的方法有Close、CopyImage、CopyTable、FormCompartments、Open、OpenNuShallo、RunAnalysis、Save、SaveImage。Maxsurf Stability的對象模型庫主要包含Application、Design、Heel、Trim、Draft、Displacement、Permeability、SpecifiedCondition、Fluids等69個。本文只對二次開發(fā)中使用的Application、Design、DamageCases、LoadCases、Tanks、EQResult進行簡要的介紹[10]。
Application對象是Maxsurf Stability對象模型的根節(jié)點。只有直接或間接通過Application對象才能實現(xiàn)訪問其他所有對象。例如要獲取Design對象的屬性和進行操作,則必須要先引用Application對象。Application對象中所有的屬性和方法都是全局的。如圖1所示,Application對象包括2種方法和8個屬性。
圖1 Application對象模型結(jié)構(gòu)
創(chuàng)建一個Application對象的代碼如下:
Dim msApp as BentleyStability.Application
Set msApp = New BentleyStability.Application
Design對象包含Maxsurf Stability當(dāng)前設(shè)計的所有信息,它也是訪問其他對象時必須要經(jīng)過的對象。在Design對象中包含Close、Open和Save等9種操作方法和ActiveAnalysisMode、DamageCases、LoadCases等39個屬性。打開一個Maxsurf Stability的Design對象模型的代碼如下:
msApp=
CreateObject("BentleyStability.Application")OpenFileDialog1.ShowDialog()
msApp.design.open(OpenFileDialog1.FileNam e, True, False)
msApp.design.show()
DamageCases對象用于添加、刪除、獲取或者編輯MaxsurfStability中的破損工況,它基本支持MaxsurfStability中的破損工況的所有設(shè)置功能。在DamageCases對象中包含Add、Remove等5種操作方法和_NewEnum、Count等4個屬性。
DamageCases對象模型結(jié)構(gòu)如圖2所示。
圖2 DamageCases對象模型結(jié)構(gòu)
訪問模型和對象的代碼如下:
Dim mydesign As BentleyStability.Design =msApp.design
Dim n As Integer = mydesign.DamageCases.Count
LoadCases對象用于添加、刪除、獲取或者編輯MaxsurfStability中的裝載工況,它基本支持MaxsurfStability中的裝載工況的所有設(shè)置功能。在LoadCases對象中包含Add、Remove等4種操作方法和_NewEnum、Count等3個屬性。
LoadCases對象模型結(jié)構(gòu)如圖3所示。
入橫貫浸水裝置的參數(shù)信息,包括橫貫管參數(shù)、空氣管參數(shù)和橫貫系統(tǒng)K值等;最后計算橫貫浸水時間,并判斷橫貫浸水裝置的有效性,見圖7。
圖7 程序流程
實例驗證分為計算函數(shù)驗證和程序流程驗證2部分,分別驗證計算函數(shù)的準確性和應(yīng)用程序的可行性和快捷性。
在MSC.362(92)決議中給出了一個計算案例,計算的橫貫管的直徑為0.39 m、長度21.0 m、橫截面積0.12 m2、壁厚17.5 mm;橫貫浸水系統(tǒng)的K值:進口0.45、管摩擦1.08、2個徑向彎頭0.36、止回閥0.5;假定空氣通風(fēng)充足(空氣管橫截面積大于橫貫管橫截面積的10%);橫貫浸水開始水頭5.3 m、將船舶從橫貫浸水開始到最終平衡狀態(tài)所用的水體積365 m3、橫貫浸水后最終水頭1.5 m;橫貫浸水時間為721 s。將以上數(shù)據(jù)帶入到程序中,空氣管直徑取0.062 m,計算結(jié)果如圖8所示,橫貫浸水時間為722.99 s,誤差為0.27%,且計算結(jié)果偏保守,更嚴格,符合規(guī)范要求。
圖8 計算函數(shù)驗證
以某科考船對稱的1號壓載艙為應(yīng)用實例,以船舶中縱剖面為對稱面布置1號壓載艙(左)和(右)兩個壓載水艙,在滿載出港破損工況1時,只有1號壓載艙(左)破損,破損穩(wěn)性計算結(jié)果顯示橫傾角太大,不滿足規(guī)范要求,因此在1號壓載艙(左)和1號壓載艙(右)之間安裝橫貫浸水裝置以減小破損最終狀態(tài)時的橫傾角。首先打開穩(wěn)性計算模型,增加滿載出港1號壓載艙(左)和1號壓載艙(右)同時破損的破損工況2,并進行計算;然后選取工況為滿載出港,破損工況為破損工況2,艙室為1號壓載艙(右);隨后輸入橫貫管直徑、長度和橫截面積,空氣管直徑、長度、橫截面積和橫貫系統(tǒng)的K值;最后計算獲得橫貫浸水時間,進而判斷橫貫浸水裝置的有效性,如圖10所示。
圖9 某科考船對稱壓載艙布置圖
圖10 橫貫浸水計算
基于MaxsurfStability二次開發(fā)的橫貫浸水計算方法能夠快速地計算出橫貫浸水時間并判斷橫貫浸水裝置的有效性。但是也存在改進之處:1)文中的方法只能計算水線以下艙室橫貫浸水裝置的浸水時間,水線以上的情況有待完善;2)計算函數(shù)的精度有待提高,可使用專業(yè)計算軟件編寫函數(shù),然后引用到程序中,提高計算精度和速度;3)該方法主要應(yīng)用于確定法破損穩(wěn)性計算中判斷橫貫浸水裝置的有效性,在后續(xù)的開發(fā)中應(yīng)補充在概率破損穩(wěn)性計算中的應(yīng)用方法。