張 怡, 王 靖 , 金嬌輝
(1 中國水產(chǎn)科學(xué)研究院漁業(yè)機械儀器研究所,上海 200092;2 農(nóng)業(yè)部遠(yuǎn)洋漁船與裝備重點實驗室,上海 200092;3 青島海洋科學(xué)與技術(shù)試點國家實驗室深藍(lán)漁業(yè)工程裝備技術(shù)聯(lián)合實驗室,山東 青島 266237)
隨著經(jīng)濟社會的發(fā)展,漁業(yè)船舶(以下簡稱漁船)設(shè)計的要求會越來越向商船靠攏。漁船結(jié)構(gòu)設(shè)計的基礎(chǔ)是船體結(jié)構(gòu)計算書的編制及基本結(jié)構(gòu)圖的設(shè)計。以往漁船設(shè)計中的船體結(jié)構(gòu)計算主要是依據(jù)規(guī)范手工計算或者編制Excel表格計算,每個船型的計算都需要重新對照規(guī)范條文逐行編制計算公式并校核。在整個船舶設(shè)計領(lǐng)域,很多船型都有相對應(yīng)的結(jié)構(gòu)設(shè)計軟件。如針對內(nèi)河鋼質(zhì)船,浙江省交通科學(xué)研究院曾在1996年開發(fā)了《內(nèi)河鋼船建造規(guī)范》計算機管理系統(tǒng)[1];針對散貨船、雙殼油船共同結(jié)構(gòu)規(guī)范,中國船級社開發(fā)了CSR-SDP軟件[2];針對海上單體高速客船,武漢理工大學(xué)王瑤等[3]開發(fā)了海上單體高速客船結(jié)構(gòu)規(guī)范設(shè)計系統(tǒng);針對玻璃鋼游艇,江蘇科技大學(xué)張新生[4]開發(fā)了玻璃鋼游艇結(jié)構(gòu)與強度設(shè)計校核及優(yōu)化系統(tǒng)。
在漁船結(jié)構(gòu)設(shè)計領(lǐng)域,針對原中華人民共和國漁業(yè)船舶檢驗局《鋼制海洋漁船建造規(guī)范(2015版)》(以下簡稱2015版建造規(guī)范)[5]開發(fā)的設(shè)計校核軟件還未見公開報道。此外,中國船級社在機構(gòu)調(diào)整前頒布的規(guī)范,也并無漁船結(jié)構(gòu)的相應(yīng)章節(jié)。考慮到將來頒布新的建造規(guī)范是在2015版建造規(guī)范基礎(chǔ)上進(jìn)行更新,故針對2015版建造規(guī)范開發(fā)漁船結(jié)構(gòu)計算軟件是有必要的。
為滿足漁船結(jié)構(gòu)規(guī)范設(shè)計要求,漁船結(jié)構(gòu)計算軟件包含所有使用該軟件的船型數(shù)據(jù)庫,以便歸納整理及基于母型船的漁船結(jié)構(gòu)設(shè)計,附帶規(guī)范校核計算與材料選型模塊,便于設(shè)計人員選擇合適的結(jié)構(gòu)件進(jìn)行設(shè)計,自動生成送審結(jié)構(gòu)計算書等,便于將計算結(jié)果裝訂成冊。因此,該軟件具有易于使用、計算準(zhǔn)確、可及時根據(jù)規(guī)范要求更新、可追溯計算結(jié)果、生成的送審文件風(fēng)格統(tǒng)一等特點。
軟件需求分析應(yīng)基于滿足設(shè)計要求考慮,依托規(guī)范進(jìn)行開發(fā),考慮到將來規(guī)范更新,先預(yù)留更新升級接口,實現(xiàn)系統(tǒng)可擴展性。根據(jù)漁船設(shè)計現(xiàn)狀,確定總體目標(biāo)與需求為:1)船型備份,便于基于母型船變換計算;2)有規(guī)范條文的依據(jù)2015版建造規(guī)范計算,要求直接計算的部分可手動輸入有限元計算結(jié)果或在系統(tǒng)中直接計算;3)材料選型并校核計算;4)導(dǎo)出可送審的結(jié)構(gòu)計算書;5)操作簡便,界面友好;6)便于升級緊跟最新規(guī)范。
依據(jù)漁船結(jié)構(gòu)設(shè)計流程、規(guī)范,參考其他類似船舶結(jié)構(gòu)設(shè)計規(guī)范,并根據(jù)軟件與計算機相關(guān)開發(fā)要求,進(jìn)行軟件的功能模塊設(shè)計工作。該軟件共分為船型數(shù)據(jù)庫、結(jié)構(gòu)設(shè)計、材料選型、送審文件導(dǎo)出和輔助功能5大模塊。具體功能模塊如圖1所示。
漁船結(jié)構(gòu)計算軟件按圖2所示流程圖實現(xiàn):1)輸入船型要素,或從數(shù)據(jù)庫中導(dǎo)入船型要素;2)結(jié)構(gòu)強度計算;3)材料選型計算(可自動或手動選擇材料);4)對選擇好的滿足結(jié)構(gòu)強度要求的材料進(jìn)行規(guī)范校核;5)若不滿足2015版建造規(guī)范,回到步驟3)重新進(jìn)行材料選型計算;6)所有結(jié)構(gòu)均滿足2015版建造規(guī)范,生成滿足送審格式的結(jié)構(gòu)計算書,同時生成全船材料數(shù)據(jù)庫;7)將計算數(shù)據(jù)結(jié)果保存至全船材料數(shù)據(jù)庫中;8)打印結(jié)構(gòu)計算書。
根據(jù)圖2,漁船結(jié)構(gòu)計算軟件研發(fā)的關(guān)鍵是數(shù)據(jù)庫的設(shè)計與訪問控制。ADO.NET數(shù)據(jù)訪問體系結(jié)構(gòu)是一種重要的數(shù)據(jù)訪問模型,其互操作性好、可伸縮性強,專門用于結(jié)構(gòu)松散、本質(zhì)非鏈接的Web應(yīng)用程序[6]。C#語言是有鮮明特點的面向?qū)ο缶幊陶Z言,C#+ADO.NET模式能實現(xiàn)對SQL Server數(shù)據(jù)庫的操作[7-8]。為滿足船型備份的需求,及便于系統(tǒng)緊跟規(guī)范持續(xù)更新,漁船結(jié)構(gòu)計算軟件主要采用Microsoft ADO.NET+C#語言環(huán)境,基于SQL Server 2008數(shù)據(jù)庫進(jìn)行開發(fā)。其中C#用于開發(fā)系統(tǒng)用戶界面及實現(xiàn)計算功能;SQL Server用于保存船型數(shù)據(jù)、計算過程的數(shù)據(jù)及用于選型的材料數(shù)據(jù);而PDF結(jié)構(gòu)計算書導(dǎo)出功能采用基于C#的iTextSharp類庫實現(xiàn)。
圖2 漁船結(jié)構(gòu)計算軟件開發(fā)流程圖
數(shù)據(jù)庫設(shè)計的基本過程可分為需求分析、概念設(shè)計、邏輯設(shè)計及物理設(shè)計[9]。概念設(shè)計即概念結(jié)構(gòu)設(shè)計,是把用戶需求抽象為模型表示的過程[10]。而邏輯設(shè)計即邏輯結(jié)構(gòu)設(shè)計,對數(shù)據(jù)庫設(shè)計起著十分重要的作用[11-12]。船型數(shù)據(jù)庫不僅包含設(shè)計人員數(shù)據(jù)庫,更包含每一具體漁船從設(shè)計計算到選材的詳細(xì)數(shù)據(jù)。船型數(shù)據(jù)庫的基本實體—聯(lián)系圖(E-R圖),如圖3所示。由于實體屬性較多,在E-R圖中僅列出較為典型的實體屬性。圖中1、n、m為實體—聯(lián)系的3種聯(lián)系關(guān)系,用來描述實體集之間的數(shù)量約束,其中1 ∶1為一對一聯(lián)系,1∶n為一對多聯(lián)系,m ∶n為多對多聯(lián)系。
圖3 船型數(shù)據(jù)庫基本E-R圖
本系統(tǒng)中,圍繞著“船型”實體展開,其他的主要還有“設(shè)計人員”、“結(jié)構(gòu)部位”、“材料庫”等實體。實體間的關(guān)系如下:1)“設(shè)計人員”和“船型”之間是多對多的關(guān)系,即設(shè)計人員可以設(shè)計多個船型,單個船型也可以由不同的設(shè)計人員設(shè)計;2)“船型”和“結(jié)構(gòu)部位”是一對多的關(guān)系,即同一船型有多個結(jié)構(gòu)部位組成,兩個實體間由唯一的項目編號關(guān)聯(lián);3)“結(jié)構(gòu)部位”和“材料庫”是一對一的關(guān)系,即同一個結(jié)構(gòu)部位對應(yīng)一個材料型號,兩個實體間通過材料編號關(guān)聯(lián)。
E-R圖只反應(yīng)數(shù)據(jù)需求模型,與具體的數(shù)據(jù)模型和數(shù)據(jù)庫管理系統(tǒng)DBMS無關(guān)[10,13-16]。對圖2中實體與聯(lián)系轉(zhuǎn)換后結(jié)果如下:
“設(shè)計人員”包含:用戶名、密碼、姓名、編號、單位、職務(wù)等。
“船型”包含:項目編號、項目名稱、船名、圖號、設(shè)計水線長、垂線間長、計算船長、型寬、型深、設(shè)計吃水、結(jié)構(gòu)吃水、肋距、規(guī)范版本、設(shè)計日期、設(shè)計時間等。
“結(jié)構(gòu)部位”包含:項目編號、材料編號、部位名稱、部位編號、構(gòu)件名稱、板厚、型材間距、船長、面板剖面積、面板寬度、垂直距離、壓頭、半徑、直徑、跨距、型深、結(jié)構(gòu)吃水、剖面模數(shù)、慣性矩、集中載荷、上方支柱負(fù)荷、設(shè)計航速、主機功率、彎矩、剪力、扭矩、系數(shù)0、系數(shù)1、系數(shù)2、系數(shù)3等。
“材料庫”包含:材料編號、材料類型、材料牌號、材料名稱、型材高度、型材寬度、型材厚度、型材剖面積、理論重量、慣性矩、重心軸距離、帶板寬、帶板厚、總面積、連帶板慣性矩、連帶板剖面模數(shù)、連帶板慣性半徑、直徑或邊長、外徑、壁厚等。
SQL Server數(shù)據(jù)庫表信息的維護(hù)使用由DataGridView控件來實現(xiàn),該控件可以很方便地實現(xiàn)數(shù)據(jù)表信息的增、刪、改等基本操作[17]。
結(jié)構(gòu)設(shè)計模塊分兩條線進(jìn)行設(shè)計,分為依照2015版建造規(guī)范中的計算公式進(jìn)行尺寸校核計算,以及依照2015版建造規(guī)范,由直接計算來確定尺寸[5]。圖4、圖5分別為兩種計算的流程圖。而直接計算又分為直接輸入由有限元計算軟件獲得的構(gòu)件最大剖面模數(shù)W與剖面慣性矩I[18-21],以及根據(jù)結(jié)構(gòu)力學(xué)簡化模型之后直接在系統(tǒng)中計算構(gòu)件最大剖面模數(shù)W與剖面慣性矩I[22]。為提高系統(tǒng)運行效率,每個構(gòu)件只在計算校核完成之后才將該構(gòu)件的相關(guān)參數(shù)存入船型數(shù)據(jù)庫中。
材料選型模塊分為從材料庫中選擇預(yù)設(shè)的材料進(jìn)行選型,以及通過校核確定使用的材料保存至材料庫中計算船型對應(yīng)的表格里,即具備材料選型與材料保存兩大功能。
圖4 依據(jù)規(guī)范計算流程圖
圖5 直接計算流程圖
根據(jù)多年漁船設(shè)計經(jīng)驗,鋼質(zhì)漁船船體結(jié)構(gòu)主要由板材和型材組成。而型材主要是角鋼、鋼管、圓鋼和球扁鋼。故材料選型主要是將以上4種型材的相關(guān)參數(shù)依據(jù)《機械設(shè)計手冊》[23]錄入材料庫中。板材直接在材料庫中錄入常用的3~36 mm板厚規(guī)格。結(jié)構(gòu)計算模塊中遇到需要通過材料選型模塊選型的時候,可通過單選框的模式詢問設(shè)計人員,是采用系統(tǒng)中預(yù)設(shè)的成品型材還是通過自制腹板面板來焊接成組合T型材。若選擇采用系統(tǒng)中預(yù)設(shè)的成品型材,則直接通過材料選型模塊選擇合適的規(guī)格進(jìn)行校核;若采用的是組合T型材,則通過手動輸入腹板高度、腹板厚度、面板寬度、面板厚度進(jìn)行校核。
經(jīng)過校核計算符合設(shè)計要求的材料,無論是型材還是板材,統(tǒng)一保存至材料庫中該計算船型對應(yīng)的表格中,保存時,材料特有屬性只保存材料類型與牌號,除此之外,還需保存剖面模數(shù)、慣性矩等計算值。
實際上保存材料庫的時候還需考慮到計算可能會涉及到修改與刪除的情況,或者設(shè)計使用的是基于母型船的變化方法,這在數(shù)據(jù)庫中是非空的。具體代碼不在本文中贅述。
軟件計算完成的結(jié)構(gòu),無論是在數(shù)據(jù)庫中保存還是在軟件內(nèi)部呈現(xiàn),雖可直接用于設(shè)計基本結(jié)構(gòu)圖,但無法用于船檢部門檢驗使用,故符合送審要求的文件導(dǎo)出是最終軟件開發(fā)完成的標(biāo)志之一?;贑#.NET可以導(dǎo)出多種格式的送審文件[24-29],如果是純粹的SQL Server數(shù)據(jù)庫內(nèi)容,導(dǎo)出采用EXCEL表格的形式是適合的,而送審文件不僅是數(shù)據(jù)的羅列,整個送審文檔需要列清每一部位對應(yīng)的規(guī)范條款與計算結(jié)果,并顯示材料選型的校核結(jié)果。使用iTextSharp類就可以很好地實現(xiàn)這樣的功能,并對生成的PDF文件進(jìn)行編輯、加密、模板打印等功能。使用iTextSharp類導(dǎo)出PDF格式結(jié)構(gòu)計算書的關(guān)鍵步驟如下:1)在C#.NET中引入iTextSharp類;2)生成Document類的實例,創(chuàng)建StrCalc.pdf文件(即結(jié)構(gòu)計算書);3)創(chuàng)建PDF文件流;4)使用Open方法打開當(dāng)前文檔;5)用Add方法添加具體內(nèi)容。其中,Paragraph為段落類,Table為表格類,HeaderFooter為頁眉頁腳類,F(xiàn)ont為字體類,Cell為單元格類;6)使用Close方法關(guān)閉當(dāng)前文檔,則PDF文檔會自動保存StrCalc.pdf文件至指定文件夾中。
通過對PDF文檔的格式化編輯,生成統(tǒng)一格式的結(jié)構(gòu)計算書,并利用iTextSharp中的setencryption函數(shù)對PDF進(jìn)行加密、通過相應(yīng)的常量來控制文檔是否允許打印、修改、拷貝等,完善軟件導(dǎo)出PDF版本結(jié)構(gòu)計算書的功能。
其他輔助功能諸如板材統(tǒng)計、型材統(tǒng)計、系統(tǒng)數(shù)據(jù)管理等功能通過C#.NET調(diào)用SQL Server數(shù)據(jù)庫的方法實現(xiàn)。系統(tǒng)更新采用調(diào)用AppUpdater組件的方式在系統(tǒng)打開前運行自動更新[30],便于設(shè)計人員隨著規(guī)范的更新進(jìn)行設(shè)計。
基于C#.NET環(huán)境,結(jié)合SQL Server數(shù)據(jù)庫,解決了漁船結(jié)構(gòu)計算方式落后的問題,便于結(jié)構(gòu)設(shè)計人員快速、準(zhǔn)確地依據(jù)最新規(guī)范進(jìn)行結(jié)構(gòu)計算與基本結(jié)構(gòu)圖的設(shè)計。依據(jù)船型參數(shù)不同,軟件系統(tǒng)自動選擇適用的公式進(jìn)行計算,降低了設(shè)計計算的復(fù)雜性。目前軟件初步完成,設(shè)計人員無需掌握編程技能,只需按照2015版建造規(guī)范要求參照軟件使用說明填寫各部位的各項參數(shù)即可,大大提升了漁船結(jié)構(gòu)設(shè)計計算工作效率。
□