摘要:NAPA软件宏命令具有强大的功能,应用宏命令得出计算报告或计算数据特别方便快捷。本文主要阐述了通过编写NAPA宏文件解决工程实际中的几个问题,包括船舶航行盲区的计算、带有纵倾横倾的液舱测深表计算、特殊要求下的谷物稳性校核等。
关键词:NAPA;测深表;谷物稳性
1前言
NAPA软件是一款船舶设计综合性软件,能够解决船舶设计中的多种技术问题,如计算各种静水力参数、分舱及装載计算(包括完整稳性、破舱稳性、谷物稳性、集装箱装载手册等)、阻力及操纵性计算、结构设计等。同时,该软件提供众多与其他软件的接口,便于跨平台工作的有序衔接。由于其进行静水力及稳性计算具有高精度、计算快、生成报告快、报告格式整洁美观等优势,是应用较广的船舶设计商用软件。
NAPA具有非常灵活的二次开发功能,能够得到许多其它软件较难获取的数据,可以输出特定格式的报告以及得到特定的数据,这是其他类似软件较难实现的。
NAPA的二次开发是通过宏命令实现。事实上,软件本身的计算是建立在大量宏文件之上的,这些宏文件保存在BD7数据库中,只能调用而不能修改;软件使用者也可以编辑一些宏文件,保存在DB1数据库中,这个数据库中的宏文件既能调用也能编辑,用于生成各种计算报告。
许多软件使用者及船级社编写了一些标准的宏文件,其他使用者只需对这些标准宏文件进行调用即可。在生成一些计算数据或报告时,很多时候需要对一些前人编写的宏文件进行修改,以满足正在开展的工作需要。
2船舶航行盲区的计算
现结合一艘12500DWT散货船设计中碰到的问题,对通过编写与修改宏文件解决的几个实际问题进行阐述。
本船主要参数如下:
根据《国内航行海船法定检验技术规则》要求,对于船长55m以上海船,需要满足自船首前方至任何一舷10°范围内均不应有超过两倍船长或500m(取其小者)的遮挡。因此所有海船需要校核航行不同工况的盲区,绘制盲区图。在绘制盲区图时,一般需要列出不同吃水、不同纵倾的盲区表,如表1所示。
表1可以通过在Cad中作图测量距离得到。表1中共有10种吃水状态和5种纵倾状态,意味着需要重复该项工作50次,费时费力。通过宏文件可以快速的得到以上数据,且可以避免作图过程中出现的误差。
编写的宏命令如下:(因篇幅所限,仅列出部分命令显示)。
在上述宏命令中,将不同的吃水与纵倾分别存储在数组@T与@TR中,这两个数组中的数据交叉搭配组成数组矩阵,然后对矩阵中的每个数组进行盲区数值的计算;@DIS=aa*c/(b-aa)这一句命令得到盲区的数值,计算结果首先存储在DIS这个变量中,然后被赋予给数组ATT;计算结果由!cal命令返回到软件界面,得到所有吃水与纵倾组合情况下的盲区数值。
需要注意的是NAPA程序中纵倾值是以水线相对于船底线的斜率表示的,而不是首尾吃水差这一数值;如果是尾倾则斜率以负数表示,所以当纵倾为-1时,通过@TR(2)=-1/142.4(142.4为垂线间长)将纵倾值赋予给TR(2),其它纵倾情况类似处理。
在进行每个装载工况的计算时,都需要校核盲区是否满足要求,校核所用宏文件类似于上述命令。不同的地方在于通过以下语句将单个装载工况的吃水与纵倾赋予给T与TR这两个变量后进行校核:
@T=CR.VALUE('T0')
@TR=CR.VALUE('TR0')
总之,NAPA中对盲区的计算,都是通过获取吃水与纵倾的数值,然后通过代数运算得到的。通过合理设置数组值,获得盲区的计算值,解决了盲区数值计算费时费力的问题。
3纵倾、横倾状态下测深表计算
在进行船舶倾斜试验时,有时采用对沿船中对称布置的压载舱抽排压载水代替移动压铁的办法进行。当从一舷压载舱向另外一舷压载舱抽排压载水时,需要精确获取调配的压载水重量以及该纵横倾状态下液舱自由液面惯性矩,以获得横倾力矩的大小。通过试验现场测深尺读数,可以实时读取到该对称液舱压载水液面位置。下面介绍如何获取在不同纵倾、横倾条件下液舱的测深表。
由于用测深尺进行舱室液面测量时,测得的并不是液舱的液面高度,而是测深尺沿着测深管到达舱底复板所行走的总长度,需要在NAPA中对该舱室测深管进行定义,具体定义方法本文不再赘述。需要注意在定义的时候,最低点的位置不是舱底,而要扣除测深管下端复板的厚度。
本宏文件首先设置固定的纵倾数据及横倾变化的步长,得到不同的纵倾与横倾数据组合,然后对测深表设置包含舱室信息的表头;运行本宏文件后可以得到测深表文件,供倾斜试验实时查取。
由于横倾值有正负之分,对于正的横倾需要从正数逐步变为0,对于负的横倾则反之。为了实现这个功能,本宏文件作了2个gosub跳转段落,以实现一个从负值逐步增加到0,另一个从正值逐步减小到0。
编写的宏文件如下:(因篇幅所限,仅列出部分命令显示)。
下面内容为生成的测深表表头,在cp命令环境下,很明显舱室的名字被赋予到了comp这个变量名中,如果引用comp这个变量名(前面加@表示对这个变量名的引用),返回的是当前舱室的名字;@smccode、@smdes等引用与之类似。
以下测深表表头命令语句是从NAPADB7数据库LISTCP.TANK与LISTCP.TANKHEADER宏文件摘取的,将之加入到上述宏命令的后面,用于生成测深表报告的表头信息(包括舱室名字、舱室代码、舱室描述等信息),以下为生成测深表表头的部分命令:(因篇幅所限,仅列出部分命令显示)。
该表头的定义方式是先从数据库中获取全局变量,赋予给本宏文件的变量,然后通过TYPE命令将之输出到结果文件。
通过合理设置数组值,获得了不同纵倾及横倾条件下液舱的测深表,解决了NAPA自带的宏无法得到此种测深表的问题。此种测深表既可以用于倾斜试验,也可作为随船文件供船长查阅。
4谷物稳性校核应用
谷物装载稳性校核相对于一般散货装载稳性计算,需要额外满足以下3个要求[3]:
(1)由于谷物移动使船舶产生的横倾角不大于12°;
(2)在静稳性曲线上,到达倾侧力臂曲线与复原力臂曲线的纵坐标最大差值的橫倾角或40°或进水角,取其中较小者;该两曲线之间的剩余面积A,在所有装载情况下应不小于0.075m*rad;
(3)经对各液体舱内自由液面的影响修正后,初稳性高度应不小于0.3m。
《国内航行海船法定检验技术规则》规定:①对未经平舱的满载舱和部分装载舱的倾侧体积矩乘以0.46;②对经平舱后的满载舱的体积矩乘以0.8。由此可知,本规则不同于SOLAS的要求,对于第①种装载情形,本规则相当于在SOLAS要求基础上降低了要求,打了0.46的折扣,对于第②种装载情形,则打了0.8的折扣。
NAPA自带的衡准是针对SOLAS而编写的,故必须对NAPA原有的衡准进行修订。先用NAPA计算得到每个舱不同谷物装载情况下的谷物倾侧力矩,然后根据实际装载情况分别乘以0.46或0.8;对于任一装载工况,将所有装载舱经过修正的倾侧力矩相加,得到该工况下的实际需要校核的倾侧力矩。如@KKXX(1)=7265这个命令,用于将7256t*m这一经过修正的谷物倾侧力矩赋予给工况1;
LISGSCHGRM=@KKXX(I),则是用修正的倾侧力矩进行稳性的衡准,获得衡准结论。
本方法操作简便,很好的解决了由于规范之间的差异导致调用标准的宏文件满足不了实际计算需要之间的矛盾。
编写的宏命令如下:
如果本船4个货舱中有2个货舱为半舱装载,则能够降低船舶航行过程中的极限剪应力与弯矩。经过计算,本船2个货舱半舱装载时稳性是满足要求的,见表2所列。
表2谷物稳性校核总结表
表2中的谷物倾侧力矩是乘以折减系数后的数值,该数值与许用倾侧力矩进行比较即可获得校核结果。同理,GM值、谷物倾侧力矩引起的横倾值、剩余面积A的校核,均是基于折减后的谷物倾侧力矩进行的。
由于软件绘制的校核图引用的是DB7数据库的宏文件,无法修改,故采用!send命令将生成的图保存为CAD文件,然后用Autocad进行二次编辑。但这种方法不是特别方便,由于没有办法改变NAPA数据库中igc.heel,igc.area这两个衡准里面所引用的IGC.GRAINSHIFT这个倾侧力矩的定义是无权限打开的,因此只能这样折中处理。本方法操作起来仍然比较费时,可能会有更好的解决办法,留待以后研究。相关宏命令如下:
上述通过将谷物倾侧力矩直接赋予给变量,代替NAPA自动计算的不适用数值,完成谷物稳性的校核,解决了NAPA自带的宏不适用于特定法规的问题。
5结束语
以上3个例子中对NAPA宏文件的编写,采用的方法主要是定义数据型数组或字母型数组,然后对数组中的元素赋予不同的数值或字母组合。
本文通过编写宏文件解决了工程实际中的3个问题,是此款软件强大功能的一个体现,本软件的二次开发有利于设计工作的顺利进行。但是对谷物稳性校核的宏开发,对有些问题的解决并不是特别完美,需要留待以后研究。