涂 榮 陳順懷
武漢理工大學(xué) 交通學(xué)院,湖北 武漢,430063
基于Delphi的Free!ship二次開發(fā)初探
涂 榮 陳順懷
武漢理工大學(xué) 交通學(xué)院,湖北 武漢,430063
Free!ship軟件以其功能強(qiáng)大、界面友好以及免費(fèi)使用等優(yōu)勢得到廣泛應(yīng)用。對船舶初步設(shè)計(jì)的工作而言,希望在完成線型設(shè)計(jì)前,該軟件也能對主尺度進(jìn)行確定,而Free!ship現(xiàn)有功能還不能滿足這一要求。為此利用Free!ship提供的二次開發(fā)環(huán)境,在Free!ship 2.6版本原有功能的基礎(chǔ)上,對軟件進(jìn)行二次開發(fā)。以主尺度優(yōu)化模塊及用Delphi編程確定添加靈便型油輪主尺度為例,提出了開發(fā)的方法及步驟,為進(jìn)一步的研究和開發(fā)該軟件提供了基礎(chǔ)。
船舶設(shè)計(jì)軟件;Free!ship軟件;二次開發(fā);Delphi
Free!ship軟件是由荷蘭學(xué)者M(jìn)artjin van Engeland等人負(fù)責(zé)開發(fā)的船舶工程軟件[1],可以用來設(shè)計(jì)各種常用船舶以及一些特殊船舶。Free!ship軟件近年來以其強(qiáng)大的功能、友好的界面以及號稱“綠色軟件”和免費(fèi)使用等優(yōu)勢在國外船舶設(shè)計(jì)領(lǐng)域得到廣泛的應(yīng)用。Free!ship使用非常方便,簡單易學(xué)。該軟件可以生成船舶三維圖和型線圖,并且可任意添加水線、站線以及橫剖線,還可以進(jìn)行船舶初步設(shè)計(jì)階段的一些計(jì)算,為后續(xù)設(shè)計(jì)提供了便利;它的數(shù)據(jù)輸出和輸入格式具有開放性,為導(dǎo)入其它軟件進(jìn)行修改和復(fù)雜計(jì)算提供了方便。此外,該軟件的網(wǎng)站提供了大量的共享資源,由軟件設(shè)計(jì)者和使用者上傳的各種類型船舶模型共220多個供設(shè)計(jì)者們參考。為滿足船舶工程和其它各種不同用戶的需要,F(xiàn)ree!ship 2.6版本為完全綠色的版本,開放源碼,為使用者和船舶設(shè)計(jì)人員提供了可進(jìn)行二次開發(fā)的功能。
從總體上來說,F(xiàn)ree!ship軟件實(shí)現(xiàn)的功能比較強(qiáng)大,并給我們的船舶設(shè)計(jì)帶來了很大方便。但是,對于船舶設(shè)計(jì)者而言,我們希望在完成線型設(shè)計(jì)之前,該軟件也能完成主尺度確定這一初步設(shè)計(jì)的重要工作。所以,就這一點(diǎn)而言Free!ship軟件提供的現(xiàn)有功能還不能非常好地滿足我們的要求。這就有必要在原有功能的基礎(chǔ)上對Free!ship軟件進(jìn)行功能的擴(kuò)充和程序的進(jìn)一步開發(fā)?;谝陨显?,本文在這方面進(jìn)行了Free!ship二次開發(fā)的探索。
經(jīng)過了近2~3年來的努力,研發(fā)人員在原有的基礎(chǔ)上開發(fā)出了新的版本Delftship,由于添加了一些裝配的模塊使該軟件成為了收費(fèi)的船舶工程商業(yè)軟件。但是,新版本沒有外部接口不可進(jìn)行二次開發(fā),并且主要的功能沒有太大改變,甚至把部分原來Free!ship 2.6里面的功能添加到付費(fèi)模塊里。因此,選擇了Free!ship 2.6版本作為二次開發(fā)的基礎(chǔ)。
Free!ship程序是采用編譯速度非???、具有強(qiáng)大的數(shù)據(jù)庫開發(fā)能力的Delphi編譯而成的。程序具有模塊性好,獨(dú)立性強(qiáng)和連接簡單的特點(diǎn)。提供主程序和各個功能模塊的子程序代碼。如需要改進(jìn)某個單獨(dú)的功能,只要在實(shí)現(xiàn)該功能的*.pas文件里直接編譯即可。如果要添加新的功能模塊,就需要在主程序里先添加子程序的模塊和聲明,并添加編譯子程序即可。最重要的,也是二次開發(fā)的關(guān)鍵點(diǎn)就是該軟件提供了Freepackage.dpk文件的組件包,包含了該軟件所有組件。通過編譯,這些組件都可以直接應(yīng)用。使得在原軟件上進(jìn)行開發(fā)更容易。
本文采用Delphi7.0軟件作為開發(fā)的工具,其一是因?yàn)镕ree!ship是采用該軟件編制的,為開發(fā)提供方便的接口。其二,該軟件功能強(qiáng)大、使用方便可以滿足開發(fā)的需要[2]。
本文選擇現(xiàn)在流行的靈便型油船作為實(shí)例,在Free!ship中進(jìn)行開發(fā),添加靈便型油船主尺度回歸和尺度優(yōu)化兩個新模塊,主要的步驟見圖1。
圖1 二次開發(fā)過程框圖
3.1 二次開發(fā)前的設(shè)置
在進(jìn)行各種功能模塊添加以前,應(yīng)該先對Free!ship文件夾下的“FreePackage.dpk”文件進(jìn)行編譯。
并且,應(yīng)該將已經(jīng)生成的控件包“FreePackage.bpl”文件添加至工程所使用的“包”中,這樣才能順利的進(jìn)行編譯。
此外,在進(jìn)行編譯時(shí)也應(yīng)注意,建立新的子程序時(shí),最好保持該軟件原有結(jié)構(gòu)的統(tǒng)一性,新的文件名和工程名都與其它的子程序保持協(xié)調(diào)一致。
3.2 尺度回歸模塊建立
根據(jù)相關(guān)論文、資料以及網(wǎng)站上收集的40多艘10 000~50 000 t油輪的主尺度資料,建立主尺度回歸模型[3],模型均轉(zhuǎn)化為單變量線性回歸模型。通過對主尺度數(shù)據(jù)的處理和分析可以得到靈便型油船的主尺度回歸公式:
對上面回歸公式進(jìn)行相關(guān)性檢驗(yàn),回歸公式(1)中DW和L的相關(guān)系數(shù)R=0.964 3,回歸公式(2)中1/DW和1/B的相關(guān)性系數(shù)R=0.945 0,回歸公式 (3)中1/DW和1/D的相關(guān)性系數(shù)R=0.941 6,回歸公式(4)中DW和T的相關(guān)系數(shù)R=0.859 2。以上數(shù)據(jù)表明,上述回歸公式中自變量和函數(shù)值均為強(qiáng)相關(guān),可以用來進(jìn)行預(yù)測。
根據(jù)回歸公式編制尺度回歸程序,并添加至Free!ship中,具體步驟如下:首先,編譯好“主尺度初步確定”的程序,程序的界面見下圖,再將該程序添加到Free!ship文件夾下。
接著,添加“Dimension”的子菜單,同時(shí),對該選項(xiàng)的各種屬性進(jìn)行設(shè)定。最后,在主程序里進(jìn)行引用。功能模塊的添加就完成了,如圖2所示。
圖2 尺度回歸模塊
3.3 尺度優(yōu)化模塊建立
在船舶噸位、初始航速和機(jī)型等確定以后,接下來的工作是,根據(jù)運(yùn)輸需要和營運(yùn)條件,擬定一系列船型方案,并對其進(jìn)行技術(shù)性能和經(jīng)濟(jì)性能的分析、計(jì)算和評價(jià),從中選出技術(shù)上可行,且比較先進(jìn),營運(yùn)經(jīng)濟(jì)效益優(yōu)良的船型方案。
3.3.1 優(yōu)化模型[4]
設(shè)計(jì)變量取為x1=L,x2=B,x3=D,x4=T,x5=Cb,而x=(x1,x2,x3,x4,x5)T。
油船是盈利型的船舶,經(jīng)濟(jì)性能好是本船設(shè)計(jì)追求的主要目標(biāo),故選取單位排水量船價(jià)、凈現(xiàn)值、投資回收期和平均年費(fèi)用作為目標(biāo)函數(shù),即f1(x)=C/Δ,f2(x)=NPV,f3(x)=PBP,f4(x)=AAC。這是一個多目標(biāo)優(yōu)化的問題,采用加權(quán)的方法,將其轉(zhuǎn)化為單目標(biāo)問題進(jìn)行求解[5]。
f=a1·CC/Δ-a2·CNPV+a3·CPBP+a4·CAAC
式中,ai為各指標(biāo)對應(yīng)權(quán)重,由設(shè)計(jì)者根據(jù)各指標(biāo)的重要性來選??;CC/Δ為單位排水量造價(jià)C的無量綱系數(shù);CNPV為凈現(xiàn)值NPV的無量綱系數(shù);CPBP為動態(tài)投資回收期PBP的無量綱系數(shù);CAAC為平均年費(fèi)用AAC的無量綱系數(shù)。
約束條件包括尺度約束:船長、船寬、型深、吃水和方形系數(shù)的上下限值。規(guī)定的約束:長寬比、寬深比、長深比。性能約束包括:快速性、穩(wěn)性、橫搖周期、艙容和重量校核等共17項(xiàng)[6]。
綜上所述,可得到該船型主尺度優(yōu)選問題的數(shù)學(xué)模型:
式中,x=(x1,x2,x3,x4,x5)T。
3.3.2 優(yōu)化算法
上述優(yōu)化模型為一個有約束非線性最優(yōu)化問題的數(shù)學(xué)模型。近年來,各種優(yōu)化方法發(fā)展迅速,尤其是智能算法。但是,各種流行的智能算法由于它們本身的特點(diǎn),選擇具有唯一解的可靠的數(shù)值解法:步長加速法[7,8](也稱模式搜索法)作為求解問題的方法。
首先,采用乘子罰函數(shù)法將有約束的非線性優(yōu)化問題轉(zhuǎn)化為無約束問題。再采用改進(jìn)的步長加速方法[9]來求問題的最優(yōu)解,可以大幅提高計(jì)算效率。
3.3.3 主尺度優(yōu)化模塊的添加
該模塊下添加了幾個計(jì)算功能選項(xiàng),包括:性能校核選項(xiàng),年運(yùn)輸能力的計(jì)算,年運(yùn)輸成本和利潤的計(jì)算選項(xiàng)、經(jīng)濟(jì)性計(jì)算選項(xiàng)以及優(yōu)化和優(yōu)化后船舶參數(shù)的輸出。通過這些選項(xiàng),設(shè)計(jì)者輸入已知的一些參數(shù),就可以得到最后目標(biāo)函數(shù)的表達(dá)式,再選擇進(jìn)行優(yōu)化。優(yōu)化后的結(jié)果用來進(jìn)行計(jì)算各項(xiàng)指標(biāo),得到優(yōu)化后船舶的方案。以下是經(jīng)濟(jì)性計(jì)算的兩個主要功能界面。
在設(shè)計(jì)各個功能模塊時(shí)采用了友好的界面設(shè)置,其中大量數(shù)據(jù)都是由設(shè)計(jì)者根據(jù)設(shè)計(jì)時(shí)的不同情況自行選擇和輸入?yún)?shù),例如貸款利率、各個目標(biāo)函數(shù)的權(quán)重以及不同時(shí)期運(yùn)價(jià)等。
圖3 年運(yùn)輸成本及年利潤
圖4 年運(yùn)輸能力
以航行于中國沿海湛江至上海的20 000 t油船作為實(shí)例進(jìn)行上述步驟的計(jì)算和優(yōu)化[10],在該計(jì)算實(shí)例中取a1=0.2,a2=0.2,a3=0.4,a4=0.2。以下為優(yōu)化結(jié)果。
表1優(yōu)化結(jié)果
選取最優(yōu)的解作為船舶尺度方案即垂線間長145.25 m,船寬25 m,型深13.6 m,吃水8.9 m,方形系數(shù)為0.81。型船垂線間長為166 m,船寬為29.5 m,吃水為7.6 m。
將優(yōu)化的結(jié)果通過該軟件原有的Lackenby功能選項(xiàng),通過Lackenby變化實(shí)現(xiàn)型線的生成。
取設(shè)計(jì)船與型船的Cm相同,將型船的型線導(dǎo)入后,直接將尺度優(yōu)化結(jié)果導(dǎo)入Lackenby選項(xiàng)里進(jìn)行簡單的Lackenby變化(見圖5),得到與設(shè)計(jì)船要求的主要參數(shù)相一致的船舶。然后,通過3個方向上的比例,即
進(jìn)行比例變換(見圖6和圖7),就可完成型船水線以下部分的改造工作,水上部分再由設(shè)計(jì)者參考型船進(jìn)行自行設(shè)計(jì),就可得到設(shè)計(jì)船的線型圖。
完成上述步驟后就可以進(jìn)行后續(xù)的計(jì)算,也可以根據(jù)需要導(dǎo)出各種格式的數(shù)據(jù)和圖形文件。由于添加了尺度確定及優(yōu)化的模塊,能在該軟件中快速地進(jìn)行初步設(shè)計(jì)時(shí)的尺度確定,并且能夠與該軟件的其它功能相得益彰,加快了初步設(shè)計(jì)的速度,大大提高了設(shè)計(jì)效率。
圖5 Lackenby變化
圖6 變化前的線型圖
圖7 變化后的線型圖
本文探索了Free!ship軟件二次開發(fā)的可行性,并以一種船型為實(shí)例對開發(fā)的步驟進(jìn)行了敘述。在掌握數(shù)據(jù)資料比較多的情況下,設(shè)計(jì)者也可以根據(jù)自己的實(shí)際情況,建立各種船舶的主尺度回歸的數(shù)據(jù)庫。上述主尺度優(yōu)化的模塊目前也只能應(yīng)用于靈便型油輪,對于其它的船型,需要輸入添加包含各種船型不同系數(shù)的數(shù)據(jù)庫才能進(jìn)行優(yōu)化。Free!ship軟件功能強(qiáng)大使用方便,本文只是在二次開發(fā)的方法和實(shí)現(xiàn)上進(jìn)行了探索,還有待進(jìn)行更加深入的分析和研究。
[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中數(shù)據(jù)集對象化的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,6:157-159.
[3] 金平仲,榮煥宗.船舶主尺度的回歸分析[J].船舶工程,2004,26(5):8-18.
[4] 張付喜.沿海成品油船技術(shù)經(jīng)濟(jì)論證[D].大連:大連理工大學(xué),2006.
[5] 張仁頤.船舶工程經(jīng)濟(jì)學(xué)[M].上海:上海交通大學(xué)出版社,2001.
[6] 劉寅東,唐煥文.船舶設(shè)計(jì)決策理論與方法[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] 吳緒權(quán).探索步長加速法的改進(jìn)措施[J].中國水運(yùn)(理論版),2006,8:182-183.
[10]張付喜,馬坤,紀(jì)卓尚.沿海成品油船船型技術(shù)經(jīng)濟(jì)論證[J].船海工程,2006,35(2):11-14.
Re-developing Free!ship Software by Using Delphi
Tu Rong Chen Shun-h(huán)uai
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-),女,碩士。研究方向:現(xiàn)代船舶設(shè)計(jì)方法。E-mail:rongt@163.com
陳順懷(1966-),男,教授。研究方向:船舶與海洋結(jié)構(gòu)物設(shè)計(jì)制造