张黎辉,陈建涛,侯 良
(1.自然资源部 北海局 北海海洋工程勘察研究院,山东青岛 266061;2.齐鲁工业大学(山东省科学院)海洋仪器仪表研究所,山东青岛 266100;3.国家海洋监测设备工程技术研究中心,山东青岛 266100;4.烟台中集来福士海洋工程有限公司,山东烟台 264000)
Maxsurf是船舶专业的CAD和CAM软件系统,Maxsurf Stability是其中非常重要的一个组成模块,在Maxsurf Modeler模型的基础上,设置一定的参数,可以进行静水力计算、液体舱容计算、稳性横截曲线计算、破损稳性计算等[1]。横贯浸水是指船舶没有破损一侧的处所引入进水来减小船舶最终平衡时的横倾角,增大船舶残存概率[2],但只有当横贯浸水时间小于等于10 min时,才满足规范要求,且被认为是有效的[3-5]。目前计算方法都是基于破损稳性计算数据和横贯浸水装置参数人工完成,计算繁琐,效率低下。本文基于VB.NET对Maxsurf Stability进行二次开发,对其相关的计算数据进行访问、提取,并结合用户在程序中输入的相关参数,调用计算函数,快速准确地计算出横贯浸水时间,确定横贯浸水装置的有效性。
船舶横贯浸水装置连接舱壁甲板以下两个关于中纵剖面对称的舱室,该装置在船体完整时不贯通两个舱室,当船体一舷破损出现较大横倾角时,开启横贯浸水装置贯通两个舱室使船舶横倾角减小,甚至使船舶正浮。横贯浸水装置一般由横贯管、遥控阀门等组成。船舶横贯浸水装置广泛应用于新建船舶及改造船舶中。
国际海事组织(IMO)在第8届会议上通过了A.266(VII)决议规定了常规横贯浸水装置设计方法;第83届海安会上通过了MSC.245(83)决议“一种评估横贯浸水装置标准方法的建议案”,考虑了空气管负压的阻滞作用及特殊双层底布置形成的横贯装置的情况;第85届海安会上通过了MSC.281(85),要求装设横贯浸水装置的客船和货船按照MSC.245(83)计算横贯浸水时间;第92届海安会上通过了MSC.362(92)决议“经修订的一种评估横贯浸水装置标准方法的建议案”,基于最新研究成果对MSC.245(83)决议进行了修订和改进。其中规定从横贯浸水开始θ0到最终平衡θf所需要的时间[6]:
式中:Wf为船舶从横贯浸水开始θ0到最终平衡θf所使用的水体积,m3;S为横贯管的横截面面积,m2;H0为横贯浸水开始前的水头,m;hf为横贯浸水后最终水头,m;g为重力加速度(9.81 m/s2);F为横贯浸水系统中,通过一个平衡装置的无因次减速因子,是弯头、阀门等的函数:
式中:Σki为横贯浸水装置计算中,摩擦系数的总和。
在计算概率破损稳性时,横贯浸水时间不同,残存概率取值也不同[7]。在确定性破损稳性计算时,根据横贯浸水时间确定横贯浸水装置的有效性。
计算横贯浸水时间所需的参数中横贯管横截面积、横贯浸水系统摩擦系数总和根据设备规格确定,船舶从横贯浸水开始θ0到最终平衡θf所使用的水体积、横贯浸水开始前后的水头高度从Maxsurf Stability计算数据中获取。设置只有1个舱室破损的工况DCase1和2个对称舱室都破损的DCase1-1,对2个工况进行稳性计算,根据2个工况的吃水及排水量的差获取船舶从横贯浸水开始θ0到最终平衡θf所使用的水体积;横贯浸水开始前后的水头高度根据2个工况的浮态及舱室位置信息计算获取。
Maxsurf Stability的开发环境是Maxsurf Stability ActiveX Automation。ActiveX Automation是微软公司基于组件对象模型(Component Object Model,COM)体系结构开发的一项技术,是Maxsurf Stability的编程接口,通常用于创建向编程工具和宏语言展示方法的组件。在Maxsurf Stability中使用ActiveX接口可以使更多的编程环境访问Maxsurf Stability对象。VB.NET(Visual Basic.NET)是基于微软.NET Framework之上的面向对象的编程语言,是Basic系语言中一门强大的编程语言。本文使用VB.NET通过ActiveX Automation接口实现对Maxsurf Stability数据的获取和操作,完成横贯浸水时间的计算,确定横贯浸水装置的有效性[8-9]。
Maxsurf Stability的二次开发是通过VB.NET语言访问其对象模型实现的。Maxsurf Stability对象模型都具有各自独立的属性(Properties)和方法(Methods)。属性包含了对象的具体信息,例如对象Tank的属性包括Damaged permeability、Fluid type、Intact permeability、Tank name、Relative density、Type。方法是可以操作对象的一些函数,例如对象Design的方法有Close、CopyImage、CopyTable、FormCompartments、Open、OpenNuShallo、RunAnalysis、Save、SaveImage。Maxsurf Stability的对象模型库主要包含Application、Design、Heel、Trim、Draft、Displacement、Permeability、SpecifiedCondition、Fluids等69个。本文只对二次开发中使用的Application、Design、DamageCases、LoadCases、Tanks、EQResult进行简要的介绍[10]。
Application对象是Maxsurf Stability对象模型的根节点。只有直接或间接通过Application对象才能实现访问其他所有对象。例如要获取Design对象的属性和进行操作,则必须要先引用Application对象。Application对象中所有的属性和方法都是全局的。如图1所示,Application对象包括2种方法和8个属性。
图1 Application对象模型结构
创建一个Application对象的代码如下:
Dim msApp as BentleyStability.Application
Set msApp = New BentleyStability.Application
Design对象包含Maxsurf Stability当前设计的所有信息,它也是访问其他对象时必须要经过的对象。在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中的破损工况的所有设置功能。在DamageCases对象中包含Add、Remove等5种操作方法和_NewEnum、Count等4个属性。
DamageCases对象模型结构如图2所示。
图2 DamageCases对象模型结构
访问模型和对象的代码如下:
Dim mydesign As BentleyStability.Design =msApp.design
Dim n As Integer = mydesign.DamageCases.Count
LoadCases对象用于添加、删除、获取或者编辑MaxsurfStability中的装载工况,它基本支持MaxsurfStability中的装载工况的所有设置功能。在LoadCases对象中包含Add、Remove等4种操作方法和_NewEnum、Count等3个属性。
LoadCases对象模型结构如图3所示。
入横贯浸水装置的参数信息,包括横贯管参数、空气管参数和横贯系统K值等;最后计算横贯浸水时间,并判断横贯浸水装置的有效性,见图7。
图7 程序流程
实例验证分为计算函数验证和程序流程验证2部分,分别验证计算函数的准确性和应用程序的可行性和快捷性。
在MSC.362(92)决议中给出了一个计算案例,计算的横贯管的直径为0.39 m、长度21.0 m、横截面积0.12 m2、壁厚17.5 mm;横贯浸水系统的K值:进口0.45、管摩擦1.08、2个径向弯头0.36、止回阀0.5;假定空气通风充足(空气管横截面积大于横贯管横截面积的10%);横贯浸水开始水头5.3 m、将船舶从横贯浸水开始到最终平衡状态所用的水体积365 m3、横贯浸水后最终水头1.5 m;横贯浸水时间为721 s。将以上数据带入到程序中,空气管直径取0.062 m,计算结果如图8所示,横贯浸水时间为722.99 s,误差为0.27%,且计算结果偏保守,更严格,符合规范要求。
图8 计算函数验证
以某科考船对称的1号压载舱为应用实例,以船舶中纵剖面为对称面布置1号压载舱(左)和(右)两个压载水舱,在满载出港破损工况1时,只有1号压载舱(左)破损,破损稳性计算结果显示横倾角太大,不满足规范要求,因此在1号压载舱(左)和1号压载舱(右)之间安装横贯浸水装置以减小破损最终状态时的横倾角。首先打开稳性计算模型,增加满载出港1号压载舱(左)和1号压载舱(右)同时破损的破损工况2,并进行计算;然后选取工况为满载出港,破损工况为破损工况2,舱室为1号压载舱(右);随后输入横贯管直径、长度和横截面积,空气管直径、长度、横截面积和横贯系统的K值;最后计算获得横贯浸水时间,进而判断横贯浸水装置的有效性,如图10所示。
图9 某科考船对称压载舱布置图
图10 横贯浸水计算
基于MaxsurfStability二次开发的横贯浸水计算方法能够快速地计算出横贯浸水时间并判断横贯浸水装置的有效性。但是也存在改进之处:1)文中的方法只能计算水线以下舱室横贯浸水装置的浸水时间,水线以上的情况有待完善;2)计算函数的精度有待提高,可使用专业计算软件编写函数,然后引用到程序中,提高计算精度和速度;3)该方法主要应用于确定法破损稳性计算中判断横贯浸水装置的有效性,在后续的开发中应补充在概率破损稳性计算中的应用方法。