盛庆武
(上海佳豪船舶工程设计股份有限公司 上海 201612)
工程船船体湿表面网格NAPA软件自动生成技术*
盛庆武
(上海佳豪船舶工程设计股份有限公司 上海 201612)
NAPA;钟型隶属度函数;纵倾;自动划分
利用NAPA软件中二次开发工具宏语言,通过引入模糊数学中的钟型隶属度函数和二次函数,开发出对平浮和带纵倾状态的船体湿表面网格自动划分模块。该模块不但可以快速和准确地划分船体网格,还可以生成直接被HydroStar软件调用的输入文件,并且通过控制输出文件的格式可以生成符合其他水动力软件调用的船体湿表面网格格式。
在船舶耐波性计算中,三维势流理论目前已成为工程船舶解决耐波性问题的重要理论。通常,以三维势流理论开发的耐波性计算软件需要划分多个不同吃水和纵倾下的船体湿网格,因此,船体湿网格划分需要快速而准确地完成,特别是在工程船舶设计中,其设计周期一般比较短,如果建立的新方法虽然具有很强的理论性,但实用性差,依然不能在工程船设计中占据一席之地。所以,本文拟依据工程船舶设计的特点,建立一套船体湿网格快速和准确划分的实用方法。
NAPA软件[1]具有比较强的二次开发功能——宏语言,应用NAPA中的宏,可以有针对地编写适合的宏代码,达到预期的功能。
在船舶设计中,开发船舶的型线是最早开展的工作之一,在初步确定船体主尺度后,通过改造适合的一条或几条母型船,应用NAPA软件可以方便、可靠和快速地建立新船的型线模型,进而才能开展后续的工作。
在NAPA软件中型线设计完成后,即可以获得相应的型线图或肋骨型线,如果需要划分网格,一般情况下,需要在NAPA输出的型线图或肋骨型线图(大多为DXF文件格式)上处理。这样处理可以通过其他的软件或者AUTOCAD软件自带的二次开发语言完成。如果能够直接在NAPA软件中完成网格自动划分,这自然是非常好的方法,可以省却各种软件格式之间的转化。
鉴于NAPA软件具有比较强的二次开发功能,本文借助NAPA软件中二次开发语言——宏语言,在已建成的NAPA型线模型基础上,开发出可以直接生成耐波性计算软件HydoStar要求的网格形式,输出的网格形式文件可以直接被HydroStar软件[2]调用。这种网格划分方法可以非常简便、准确和快速地完成船体湿表面网格的自动生成工作,并且网格的精细和疏密可以任意控制:既可以达到船体耐波性计算需要的网格数量:几百块至几千块,还可以达到计算流体力学诸如FLUENT等的几万块甚至十几万块的网格数量等。因此可认为这种方法不失为比较好的船体湿网格划分方法。
船舶在实际航运的工况很少有平浮状态,这在船舶的典型装载手册中可以看出,该文件需要由船级社审查。在建立好各种装载工况后,通过船舶不同装载工况下的耐波性能计算,可以更加准确地预报该船的耐波性的优劣,更加准确地预报该船锚泊定位能力,这样可以从船舶耐波性能的角度比较便捷地指导船舶设计。应用本文的方法,可以非常方便地对已计算的各种装载工况进行网格划分,这样各种装载工况相当于船体吃水和纵倾的函数。如N个工况,就有N个吃水和纵倾,NAPA中很容易读出这些量的数据,通过一个循环语句,在NAPA宏语言程序中运行一次,就可获得所有装载工况下的网格划分,真正做到了快速和准确的效果。
本文介绍了2 400 t起重船带平浮状态和纵倾(艉倾和艏倾)状态下的网格划分的原理和方法,使用NAPA软件中的宏语言开发网格自动划分模块后,可以方便、快速和准确地研究船体耐波性能和锚泊定位系统设计。
NAPA软件在处理船体型线上是先建立若干条基本控制线:如平边线、平底线、首尾轮廓线、平行中体首尾肋位线、尾封板线等,然后通过其他控制线:如肋骨线、水线、纵剖线或者斜剖线等辅助控制线组成船体的骨架,然后通过使用曲线插值成曲面的方法建立整个船体曲面,也就是由点即线,由线到面的方法。
在NAPA软件中,使用三次样条对各控制点进行拟合:三次样条插值曲线的方法有两种:M1是曲线的曲率不连续,即二次微分;M2是更连续的曲率。图1显示了两种样条插值的方法。可以看出,M1是按各段进行分段拟合曲线,而M2则所有的点均用以拟合曲线。
图1 NAPA软件中样条拟合的两种方法
由于NAPA软件处理船体曲面的方法是通过控制线形成光顺的曲面。可见NAPA软件处理船体型线具有三维性,这样获得的三维船体曲面可以很方便地剖出各种剖面线:横剖线、纵剖线、水线面和斜剖线。由于NAPA软件在光顺后的船体曲面上可以剖出任何位置的剖面线,因此这样的处理方法可以获得较精确的船体网格线。图2为NAPA的船体编辑器(HULL EDITOR)里的一个模型。图3为该船体几何窗口(GEOMETRY WINDOW)下显示的船体三维图形。
图2 NAPA船体编辑器里的一个模
图3 船体几何窗口显示的船体三维图形
由图3可以看出,对于已经在NAPA模型中生成的三维船体模型,可以对其任意切割相交成横剖线、纵剖线和斜剖线,本文正是利用NAPA软件的这个特点,依托NAPA软件中二次开发宏语言,对船体划分网格,原则上可以任意划分,不仅可以划分平浮吃水,而且还可以考虑船体纵倾的影响,划分成带纵倾的船体网格[4]。为了能更充分利用HydroStar软件,经过合理的开发,可以使生成的网格文件直接被HydroStar软件调用,不仅可以大大节省划分网格的时间,而且还可以保证网格划分的精度。
由上节可知,对于NAPA软件,如果在纵向给定坐标可以获得该处的横剖线(如图4所示),图中x1-x12分别为x=1m至x=12m,且间隔为1m处的横剖线。
由于服务对象身份及年龄的多样性,比如学生、社会在职人士等,其闲暇时间是不用的。因此,在课程的时间安排上要做到灵活,能够最大程度上满足不同群体的需求。
图4 船体几何窗口下船体横剖线
船体网格划分依据NAPA软件船体编辑器里的船体建立的思想:将船体也分成船首、船舯和船尾三部分分段,分别对每部分分段进行划分。
在NAPA编写宏时,设定船首分段的横剖面数为NF、船舯分段的横剖面数NM和船尾分段的横剖面数NA。在NAPA宏语言中,有一个PLENGTH语句,可以获得曲线上给定长度的点,进而获得该点的三个轴的坐标。众所周知,波浪能量随水深的变化成指数级衰减,所以近水面的网格要求细些,远离水面网格可划分粗些,因此,对于任一已剖出的横剖线,采取如下的方法来选取其上的点作为划分网格的点:
设该横剖线长度为L,这可以由NAPA软件中PLENGTH语句直接获得,N为划分该横剖线的网格点,ΔLi为横剖线上第i段的划分的长度,它可表示为:
对于横剖线第i-1段的划分的长度,i=2表示起点处横剖线划分的长度,i=N+1表示终点处横剖线划分的长度。可以看出横剖线上划分的长度以(2·i-1)/N/N数值递增,这样做也可以认为沿水深方向逐渐增大,在水线面处的网格尺寸最小。图5为船体某横剖线划分图。
图5 船体某横剖线划分图
众所周知,通常船舶的首尾处线型变化较大,而在船的中间部位线型不变或变化很缓,因此,纵向网格划分时通常首尾部网格密些,船的中间部位保持相同较疏的网格。如何在NAPA中实现呢?
本文应用模糊逻辑控制理论中模糊语言变量的隶属度函数[3]—钟型隶属度函数实现船体网格数沿纵向的变化。
一般的钟型隶属度函数表达式为:
其中:参数x指定变量的论域范围,a、b和c分别为指定钟型函数的形状,y为钟型隶属度函数。通过选取不同的a,b,c,可以适应不同的船体沿船长方向的网格划分。
以下以2 400 t起重船船体湿表面网格划分为例说明应用NAPA软件对船体网格划分的方法。
设船长为96m,这样艏部分段长度为10 m,即艏部距平行中体前段的距离为10 m;艉部分段长度为12m,即艉部距平行中体后段的距离为12m;舯部分段为74m。拟在纵向使用42条横剖线:艉部分段在0~12m间用6条横剖线划分成5段,艏部在86 m~96m间用5条横剖线划分成4段,中间12 m~86 m用31条横剖线划分成30段。这样可选择a=44、b=8、c=48,则钟型隶属度函数曲线如图6所示。
因为本船艉部纵向范围是从0~12m,从图6可知钟型隶属度函数y的值不为1,所以应按照此函数来划分0~12m范围内的间隔
这里n=5,由此公式则可将0~12m范围内分隔成表1所示。如果想加密纵向网格数,则取n=11,如表2所示。
图6 钟型隶属度函数曲线
表1 艉部0~12 m范围内的横剖线位置(分隔为5段)
表2 艉部0~12m范围内的横剖线位置(分隔为11段)
从表1和表2中可以看到,通过选择不同的n,可对艉部划分为不等间距;同样,可以将12 m~86m区间及86 m~96 m区间划分成不同间隔的纵坐标值。
对于艉封板的处理,也可以通过对艉部的不等距处理而获得相应的网格。图7为该船艉封板的横剖线划分图。图中粗实线为艉封板的边界线,按照一定的缩小比例形成几个横剖线。最后的横剖线收缩成一点。
经过NAPA软件宏语言的处理,可以很轻松地划分出任意吃水和任意网格数的船体网格,只要给定横剖线的网格点数以及总的横剖线数及艏艉横剖线数,并对钟型隶属度函数中的a、b、c选取适合的值,即可划分网格成功。图8和图9为本船在4.357 m吃水下,两种不同网格数的网格。可以看出,对于选取不同的网格点数以及总的横剖线数及艏艉横剖线数,可以划分出任意精度的船体网格。
图7 艉封板的横剖线划分图
图8 1 008块船体网格划分
图9 1 728块船体网格划分
通常情况下,在船舶耐波性性能计算中,一般只考虑平浮吃水下的网格划分,很少考虑到纵倾的影响。通常舶舶典型装载工况的浮态很少有平浮状态,对于工程船舶,其纵倾可能会很大,因此有必要考虑纵倾状态与平浮状态下对船体六个自由度的耐波性能影响程度,这方面的工作将在下一节展开。因此,本节以2 400 t起重船纵倾状态下船体网格划分为例阐述纵倾状态下船体网格划分方法。
纵倾状态下船体网格划分同平浮吃水船体网格划相似,差别是纵倾状态下船体网格划分需要对平浮吃水下船体做坐标变换,变换成纵倾吃水的状态,因为船舶纵倾状态的艏艉吃水不一样,所以由需要在船体平浮状态下船体旋转一个纵倾角。纵倾坐标变换图如图10所示:
图10 纵倾坐标变换图
图10中X-O-Z为平浮吃水时的坐标系,X1-O1-Z1为纵倾Φ角度时的坐标系,两坐标系变换关系为:
其中,x1,z1为纵倾Φ角度时的坐标,x,z为平浮吃水时的坐标。
图11~图13分别为平浮吃水、艏倾角为Φ时和艉倾角为Φ时的网格划分图(三种情况下的排水量是相同的,所划分的网格数相同)。
图11 平浮吃水时的船体网格划分图
图12 艏倾角为时的船体网格划分图
图13 艉倾角为时的船体网格划分图
从图11~图13中可以看出,使用NAPA软件二次开发语言——宏语言开发出的网格划分模块,可以迅速准确地划分出平浮吃水和纵倾状态下艏、舯和艉部以及沿横剖线方向上不同精度的船体网格。如某铺管起重船的典型装载工况一共有32个,其吃水在5m~8m之间,纵倾状态包括了艏倾和艉倾,借助于NAPA软件中NAPA BASIC下的循环语句For和条件判断语句IF等函数,以及LD SERVICE下的函数LD.QNT等,只需要在NAPA软件中运行一次(不需要任何人工干预),在目前普通配置的微机中,不超过两分钟,则32个典型装载工况的船体网格划分文件已经完成,其生成的文件可直接被HydroStar软件调用。
通过本节运用NAPA软件对船体网格快速划分的方法的建立,可以看出,用这种方法划分船体网格时非常方便、快速和准确,划分网格的精度可控。原则上可以划分任意吃水下和任意纵倾下和任意精度的船体网格,本文只是对工程船驳船艏艉作了划分,对于有球首和带螺旋桨的尾部来说,这种划分也是适用的,只是在球首和尾部线型分离处做分段处理(限于篇幅,这里就不再累述了),最后仍然可用本文的方法方便、快速和准确地划分出船体网格。本方法的建立,为工程船耐波性设计提供了必要的手段和便捷的工具。
[1] NAPA MANUALS[S].2009.2.
[2] BUREAU VERITAS.HYDROSTAR FOR EXPERTS USER MANUAL[R].March 2009.
[3] 李国勇.智能控制及其MATLAB实现[M].电子工业出版社,2005.
[4] 刘应中,缪国平.船舶在波浪上的运动理论[M].上海交通大学出版社,1987.
[5] 张志军.NAPA概述及NAPA船体模型的建立[J].船舶设计通讯,2003.
[6] 王彩莲.浅谈船舶应用软件NAPA[J].船舶,2003.
Automatic Grid Generation by NAPA for the Hull Wetted Surface of a Work boat
Sheng Qingwu
NAPA;bell function;longitudinal trim;automatic plotting
By using the macro-language,which is the secondary development tool in NAPA,the bell function and quadratic function in fuzzy ma the matics are introduced into the automatic grid distribution module for wetted surface of ships on even keel or in trim.This module can not only plot the grid rapidly and exactly,butal so generate the input file that can be called directly by Hydro Star,as well as control the output format so as to generate variou shull wetted surface grid formats that can be called by other hydrodynamic software.
U 674.3
A
1001-9855(2010)06-0053-05
2010-08-23
盛庆武(1971-),男,汉族,博士,高级工程师,主要从事船舶设计及流体性能计算研究工作。