基于Delphi的Free!ship二次开发初探
2009-04-12陈顺怀
涂 荣 陈顺怀
武汉理工大学 交通学院,湖北 武汉,430063
基于Delphi的Free!ship二次开发初探
涂 荣 陈顺怀
武汉理工大学 交通学院,湖北 武汉,430063
Free!ship软件以其功能强大、界面友好以及免费使用等优势得到广泛应用。对船舶初步设计的工作而言,希望在完成线型设计前,该软件也能对主尺度进行确定,而Free!ship现有功能还不能满足这一要求。为此利用Free!ship提供的二次开发环境,在Free!ship 2.6版本原有功能的基础上,对软件进行二次开发。以主尺度优化模块及用Delphi编程确定添加灵便型油轮主尺度为例,提出了开发的方法及步骤,为进一步的研究和开发该软件提供了基础。
船舶设计软件;Free!ship软件;二次开发;Delphi
1 Free!ship软件介绍
Free!ship软件是由荷兰学者Martjin van Engeland等人负责开发的船舶工程软件[1],可以用来设计各种常用船舶以及一些特殊船舶。Free!ship软件近年来以其强大的功能、友好的界面以及号称“绿色软件”和免费使用等优势在国外船舶设计领域得到广泛的应用。Free!ship使用非常方便,简单易学。该软件可以生成船舶三维图和型线图,并且可任意添加水线、站线以及横剖线,还可以进行船舶初步设计阶段的一些计算,为后续设计提供了便利;它的数据输出和输入格式具有开放性,为导入其它软件进行修改和复杂计算提供了方便。此外,该软件的网站提供了大量的共享资源,由软件设计者和使用者上传的各种类型船舶模型共220多个供设计者们参考。为满足船舶工程和其它各种不同用户的需要,Free!ship 2.6版本为完全绿色的版本,开放源码,为使用者和船舶设计人员提供了可进行二次开发的功能。
从总体上来说,Free!ship软件实现的功能比较强大,并给我们的船舶设计带来了很大方便。但是,对于船舶设计者而言,我们希望在完成线型设计之前,该软件也能完成主尺度确定这一初步设计的重要工作。所以,就这一点而言Free!ship软件提供的现有功能还不能非常好地满足我们的要求。这就有必要在原有功能的基础上对Free!ship软件进行功能的扩充和程序的进一步开发。基于以上原因,本文在这方面进行了Free!ship二次开发的探索。
2 二次开发的平台
经过了近2~3年来的努力,研发人员在原有的基础上开发出了新的版本Delftship,由于添加了一些装配的模块使该软件成为了收费的船舶工程商业软件。但是,新版本没有外部接口不可进行二次开发,并且主要的功能没有太大改变,甚至把部分原来Free!ship 2.6里面的功能添加到付费模块里。因此,选择了Free!ship 2.6版本作为二次开发的基础。
Free!ship程序是采用编译速度非常快、具有强大的数据库开发能力的Delphi编译而成的。程序具有模块性好,独立性强和连接简单的特点。提供主程序和各个功能模块的子程序代码。如需要改进某个单独的功能,只要在实现该功能的*.pas文件里直接编译即可。如果要添加新的功能模块,就需要在主程序里先添加子程序的模块和声明,并添加编译子程序即可。最重要的,也是二次开发的关键点就是该软件提供了Freepackage.dpk文件的组件包,包含了该软件所有组件。通过编译,这些组件都可以直接应用。使得在原软件上进行开发更容易。
本文采用Delphi7.0软件作为开发的工具,其一是因为Free!ship是采用该软件编制的,为开发提供方便的接口。其二,该软件功能强大、使用方便可以满足开发的需要[2]。
3 灵便型油船开发实例
本文选择现在流行的灵便型油船作为实例,在Free!ship中进行开发,添加灵便型油船主尺度回归和尺度优化两个新模块,主要的步骤见图1。
图1 二次开发过程框图
3.1 二次开发前的设置
在进行各种功能模块添加以前,应该先对Free!ship文件夹下的“FreePackage.dpk”文件进行编译。
并且,应该将已经生成的控件包“FreePackage.bpl”文件添加至工程所使用的“包”中,这样才能顺利的进行编译。
此外,在进行编译时也应注意,建立新的子程序时,最好保持该软件原有结构的统一性,新的文件名和工程名都与其它的子程序保持协调一致。
3.2 尺度回归模块建立
根据相关论文、资料以及网站上收集的40多艘10 000~50 000 t油轮的主尺度资料,建立主尺度回归模型[3],模型均转化为单变量线性回归模型。通过对主尺度数据的处理和分析可以得到灵便型油船的主尺度回归公式:
对上面回归公式进行相关性检验,回归公式(1)中DW和L的相关系数R=0.964 3,回归公式(2)中1/DW和1/B的相关性系数R=0.945 0,回归公式 (3)中1/DW和1/D的相关性系数R=0.941 6,回归公式(4)中DW和T的相关系数R=0.859 2。以上数据表明,上述回归公式中自变量和函数值均为强相关,可以用来进行预测。
根据回归公式编制尺度回归程序,并添加至Free!ship中,具体步骤如下:首先,编译好“主尺度初步确定”的程序,程序的界面见下图,再将该程序添加到Free!ship文件夹下。
接着,添加“Dimension”的子菜单,同时,对该选项的各种属性进行设定。最后,在主程序里进行引用。功能模块的添加就完成了,如图2所示。
图2 尺度回归模块
3.3 尺度优化模块建立
在船舶吨位、初始航速和机型等确定以后,接下来的工作是,根据运输需要和营运条件,拟定一系列船型方案,并对其进行技术性能和经济性能的分析、计算和评价,从中选出技术上可行,且比较先进,营运经济效益优良的船型方案。
3.3.1 优化模型[4]
设计变量取为x1=L,x2=B,x3=D,x4=T,x5=Cb,而x=(x1,x2,x3,x4,x5)T。
油船是盈利型的船舶,经济性能好是本船设计追求的主要目标,故选取单位排水量船价、净现值、投资回收期和平均年费用作为目标函数,即f1(x)=C/Δ,f2(x)=NPV,f3(x)=PBP,f4(x)=AAC。这是一个多目标优化的问题,采用加权的方法,将其转化为单目标问题进行求解[5]。
f=a1·CC/Δ-a2·CNPV+a3·CPBP+a4·CAAC
式中,ai为各指标对应权重,由设计者根据各指标的重要性来选取;CC/Δ为单位排水量造价C的无量纲系数;CNPV为净现值NPV的无量纲系数;CPBP为动态投资回收期PBP的无量纲系数;CAAC为平均年费用AAC的无量纲系数。
约束条件包括尺度约束:船长、船宽、型深、吃水和方形系数的上下限值。规定的约束:长宽比、宽深比、长深比。性能约束包括:快速性、稳性、横摇周期、舱容和重量校核等共17项[6]。
综上所述,可得到该船型主尺度优选问题的数学模型:
式中,x=(x1,x2,x3,x4,x5)T。
3.3.2 优化算法
上述优化模型为一个有约束非线性最优化问题的数学模型。近年来,各种优化方法发展迅速,尤其是智能算法。但是,各种流行的智能算法由于它们本身的特点,选择具有唯一解的可靠的数值解法:步长加速法[7,8](也称模式搜索法)作为求解问题的方法。
首先,采用乘子罚函数法将有约束的非线性优化问题转化为无约束问题。再采用改进的步长加速方法[9]来求问题的最优解,可以大幅提高计算效率。
3.3.3 主尺度优化模块的添加
该模块下添加了几个计算功能选项,包括:性能校核选项,年运输能力的计算,年运输成本和利润的计算选项、经济性计算选项以及优化和优化后船舶参数的输出。通过这些选项,设计者输入已知的一些参数,就可以得到最后目标函数的表达式,再选择进行优化。优化后的结果用来进行计算各项指标,得到优化后船舶的方案。以下是经济性计算的两个主要功能界面。
在设计各个功能模块时采用了友好的界面设置,其中大量数据都是由设计者根据设计时的不同情况自行选择和输入参数,例如贷款利率、各个目标函数的权重以及不同时期运价等。
图3 年运输成本及年利润
图4 年运输能力
4 计算实例以及后续处理
以航行于中国沿海湛江至上海的20 000 t油船作为实例进行上述步骤的计算和优化[10],在该计算实例中取a1=0.2,a2=0.2,a3=0.4,a4=0.2。以下为优化结果。
表1优化结果
选取最优的解作为船舶尺度方案即垂线间长145.25 m,船宽25 m,型深13.6 m,吃水8.9 m,方形系数为0.81。型船垂线间长为166 m,船宽为29.5 m,吃水为7.6 m。
5 型线的生成
将优化的结果通过该软件原有的Lackenby功能选项,通过Lackenby变化实现型线的生成。
取设计船与型船的Cm相同,将型船的型线导入后,直接将尺度优化结果导入Lackenby选项里进行简单的Lackenby变化(见图5),得到与设计船要求的主要参数相一致的船舶。然后,通过3个方向上的比例,即
进行比例变换(见图6和图7),就可完成型船水线以下部分的改造工作,水上部分再由设计者参考型船进行自行设计,就可得到设计船的线型图。
完成上述步骤后就可以进行后续的计算,也可以根据需要导出各种格式的数据和图形文件。由于添加了尺度确定及优化的模块,能在该软件中快速地进行初步设计时的尺度确定,并且能够与该软件的其它功能相得益彰,加快了初步设计的速度,大大提高了设计效率。
图5 Lackenby变化
图6 变化前的线型图
图7 变化后的线型图
6 结束语
本文探索了Free!ship软件二次开发的可行性,并以一种船型为实例对开发的步骤进行了叙述。在掌握数据资料比较多的情况下,设计者也可以根据自己的实际情况,建立各种船舶的主尺度回归的数据库。上述主尺度优化的模块目前也只能应用于灵便型油轮,对于其它的船型,需要输入添加包含各种船型不同系数的数据库才能进行优化。Free!ship软件功能强大使用方便,本文只是在二次开发的方法和实现上进行了探索,还有待进行更加深入的分析和研究。
[1] ENGLAND M V.Free!ship manual(version 2.6)[J/OL].http://www.marin.ntnu.no/havromsteknologi/Freeship/Freeship_Manual_2.6.pdf,2006.
[2] 雷梦龙.Delphi中数据集对象化的设计和实现[J].计算机技术与发展,2006,6:157-159.
[3] 金平仲,荣焕宗.船舶主尺度的回归分析[J].船舶工程,2004,26(5):8-18.
[4] 张付喜.沿海成品油船技术经济论证[D].大连:大连理工大学,2006.
[5] 张仁颐.船舶工程经济学[M].上海:上海交通大学出版社,2001.
[6] 刘寅东,唐焕文.船舶设计决策理论与方法[M].北京:高等教育出版社,2006.
[7] LEWIS R M,TORCZON V,TROSSET M W.Direct search methods:then and now[J].Journal of Computational and Applied Mathematics,2000,124(1/2):191-207.
[8] LEWIS R M,TORCZON V.Pattern search methods for bound constrained minimization [J].SIAM Journal on Optimization,2000,10(3):917-941.
[9] 吴绪权.探索步长加速法的改进措施[J].中国水运(理论版),2006,8:182-183.
[10]张付喜,马坤,纪卓尚.沿海成品油船船型技术经济论证[J].船海工程,2006,35(2):11-14.
Re-developing Free!ship Software by Using Delphi
Tu Rong Chen Shun-huai
School of Transportation,Wuhan University of Technology,Wuhan 430063,China
Free!ship as one ship design tool,has been widely utilized due to its robust functions,userfriendly interface and available free use.As for the work of preliminary ship design,it is desirable that it can determine the ship's principle dimension prior to the completion of ship lines design.Free!ship can not meet this requirement,however,an effort was made to re-develop it on the basis of its original functions and perfect reproduction environment.For this purpose,flexible oil tanker was studied as an example and two modules(i.e.principle dimension regression module and dimension optimization module)were added into the Free!ship by programming with Delphi to determine the principle dimensions.The development method and procedure are established and they provide a basis for further development and research.
ship design software;Free!ship;redevelopment;Delphi
TK421
A
1673-3185(2009)05-67-04
2009-03-16
涂 荣(1983-),女,硕士。研究方向:现代船舶设计方法。E-mail:rongt@163.com
陈顺怀(1966-),男,教授。研究方向:船舶与海洋结构物设计制造