章志兵,鄧建坤,孟凡沖,柳玉起,孔海驕
(1.華中科技大學 材料科學與工程學院,武漢 430074;2.中國船級社技術研發中心,北京 100007)
船舶 CAD三維建模已經成為普遍的趨勢[1],大量的三維軟件被引入,結合先進信息技術,在一定程度上提高了船舶設計能力[2—3]。如今主流的船舶三維建模設計軟件主要有FORAN,CATIA,TRIBON,NX等。FORAN的主要功能集中在船體三維建模上,雖然提供了靜水力計算和艙容計算模塊,但是整體設計質量的校驗依賴于輸出IGES等中性文件,導入其他軟件進行計算分析[4—5];CATIA則是一款通用的機械三維設計軟件,雖具有船舶網格劃分等功能,但是其現有的船舶模塊的功能模塊還不夠豐富,模板數量較少,船舶領域專業性不足,有待進一步二次開發[6];TRIBON船舶建模功能強大,封閉性很強,模型輸出到其他軟件分析校核需要依賴復雜的數據提取工作[7]。目前還沒有一款系統能夠涵蓋船舶設計的全生命周期,往往是建模使用一套軟件,而分析計算使用另一套軟件,然后開發建模文件在軟件間轉換的算法[8],這種方式的開發周期較長,且不適合于推廣到整個船舶產業。
船舶集成設計系統基于NX平臺進行二次開發,把建模的不同階段劃分為不同子系統,相對于傳統設計,新增CAD建模系統的輸出模型管理系統Structure Design Result(SDR)系統,新增規范計算SDP系統。船舶集成設計系統具有以下優勢:① 涵蓋船體三維建模,有限元分析以及規范計算各個功能子系統,建模系統囊括專業化且全面的船舶建模功能;② SDR系統解耦了建模系統與計算系統,這使得建模系統能夠映射到不同的 SDR系統模型,對不同建模階段進行記錄,計算系統直接從 SDR系統中拿取模型,不影響建模系統的工作;③ 新增了SDP系統,對船體設計結構進行規范計算,根據計算結果,可快捷地反饋到建模系統進行修改,然后拿到 SDP系統重新計算,顯著提高計算反饋的效率,符合制造行業數字化檢測的趨勢[9]。
船體模型包含結構幾何數據、結構約束信息、屬性信息等信息,結構幾何數據包含甲板、外殼等眾多類型結構,通過分類整合,提出裝配結構下的模型管理方式以及非裝配結構下的模型管理方式,并提出在集成系統各功能子系統間的模型轉換方法,減少數據量,提高系統間模型轉換效率,縮短規范造船的周期,提高船舶產業競爭力。
集成系統需要集成的功能包括船體三維建模、有限元分析計算,以及新增規范計算功能。國內現狀普遍是先三維建模,繪制出船體結構,然后要么進行有限元模型前處理,手動輸入到有限元軟件中,要么是通過中間平臺導出中性文件,在有限元軟件中重構出船體有限元模型[10]。集成系統可以克服這個劣勢,CAD/CAE/SDP功能系統均是在NX平臺二次開發得到,不需要額外中間過渡。根據船體設計功能劃分為3個模塊,集成系統體系結構見圖1。
1)建模模塊。完成船體三維建模,通過結構建模、參數化建模方法,利用標準數據庫,創建三維數字化整船模型。此層模型采用裝配結構,保留裝配關聯信息,模型中數據采用樹形數據結構管理。

圖1 集成系統體系結構Fig.1 Architecture of integrated system
2)數據模塊。管理CAD系統輸出的數字樣船模型,稱為SDR模型。存儲整船模型以及結構幾何關聯關系,但是在模型管理上,本層采用非裝配模式,去除特征和特征關聯,結構位置關系由建模層 CAD系統保證,關聯關系用其他方式表示(具體見2.2章節),從而避免關聯結構引起的關聯更新,并減少模型數據量,為計算模塊做準備。
3)計算模塊。本層包括CAE系統和SDP系統,CAE系統主要進行網格劃分、有限元分析、仿真模擬等過程,SDP系統主要進行腐蝕模型的創建以及計算腐蝕、板筋切割及板筋的理想化、剖面模型的創建以及 SDP計算模型的創建,進行規范計算校核,模型管理方法和數據層類似。
目前,非集成系統和集成系統大多采用不同的軟件平臺,模型管理往往依賴于三維軟件自身的模型管理以及裝配管理[11],然后再根據空間位置導出中性文件,最后在有限元軟件中重建模型并進行有限元分析;或者建立中間平臺來完成模型收集轉換[12—13]。這種方式的劣勢在于:① 模型在不同軟件的解析方法不同,難以保證模型信息的完整;② 中間平臺依賴于輸入輸出的軟件,開發方法多變,開發更新工作量大,且維護困難。
船舶集成設計系統具有在統一平臺進行建模、計算的優勢,避免中間過渡,模型的解析方式一致,完整性能夠得到有效保障。在各子系統中,CAD系統進行結構建模、通用建模、參數化建模。結構特征建模,需要維護更新,必須保留建模過程的特征信息以及完整裝配信息,所以CAD系統需采用裝配模型方式。SDR系統、SDP系統、CAE系統只處理建模后的幾何模型,可省略掉不需要的特征信息以及過程信息,必要的裝配信息則用空間位置以及關系記錄來替換。采用非裝配的模型管理方式會更加高效,得到較小的數據量。為使CAD裝配結構和非CAD系統非裝配結構都適用,還新建另外的結構非裝配描述,詳見2.2章節。
相比于生成中性文件或者建立中間平臺,設計系統沒有中間文件過渡過程,沒有編碼解碼過程,數據完整性優秀,效率上得到很大提升。
船體模型中包含的結構信息見表1。船體結構傳統上分為板結構和筋結構,筋結構作為板的附屬結構管理。不過面板是例外,面板的作用是作為板架開孔結構的加強,雖然是板結構,但是需要作為依附結構管理。艙室作為船體結構中三維封閉實體,應該單獨管理。故模型可按表2分類。

表1 模型數據統計Tab.1 Statistics of model data

表2 模型分類Tab.2 Model classification
模型管理根據類別管理,用非裝配描述來分別板架類、非板架類和艙室類結構。
2.2.1 板架類模型管理
分類中把板架、肘板、內殼等結構稱為板架類結構,在模型管理上,采用非裝配的描述,沿用普適的樹形結構,用樹來保存結構描述,稱作結構樹。
結構樹示意見圖2,根節點記T;根T下第一層的 1—5分別表示型線、主船體、上層建筑、甲板室以及其他區域;2節點下一層的 1—5分別表示貨艙區域、首部結構、尾部結構、機艙結構以及其他結構。板架節點和類型節點之間用虛線連接,表示他們之間還有其他的子類型分類節點,在此處省略。結構樹每一個類型節點都有唯一的編碼,子節點編碼是在父節點編碼上增加而來。結構樹的分支節點是根據船體的位置信息進行生長的。

圖2 結構樹Fig.2 Structure tree
結構樹非類型葉節點是板架節點,其編碼通過編碼初始化、編碼精確計算確定。根據編碼在對應節點掛載板架結構。新增結構樹節點與對應板架結構同步變化,刪除板架結構則會刪除對應結構。
步驟1:新建節點類型編碼初始化。在創建結構時,根據結構類型可以初步確定節點位置的編碼,主船體是02,上層建筑是03,其他區域是04。
步驟2:節點編碼精確計算。節點編碼根據結構位置生長,主船體貨艙區域 02_03_08,首部結構為02_04_06。部分結構編碼還需更精確,根據法向編碼,橫向結構編碼后面再添加 01_01_01。主船體貨艙區域橫向結構肘板的編碼為02_03_08_01_01_01,肘板編碼圖例見圖3。

圖3 肘板編碼圖例Fig.3 Legend of bracket coding
2.2.2 非板架類模型管理
非板架類結構依附于板架類結構管理,從板架類結構獲取非板架類結構需要區分模型是裝配模型還是非裝配類模型,故非板架類結構分兩種方式,分別適用于CAD系統和非CAD系統。
2.2.2.1 裝配模型非板架類結構管理
按板架劃分,每一塊板架分別管理非板架類結構,用樹形結構來管理,稱為板架樹。使用特征關聯和屬性查找來構建對應板架樹。非板架結構有骨材、開孔、面板、節點以及其他結構5種類型。板架樹見圖4。其創建步驟如下。
步驟1:獲取屬性。在板架幾何上通過屬性查找獲取該類型屬性數組,每項屬性值是對應結構的handler值。

圖4 裝配模型板架樹Fig.4 Panel tree of assembly model
步驟 2:獲取特征。根據 handler值獲取對應結構幾何,根據幾何直接獲取創建特征。
步驟3:獲取結構。通過NX平臺接口根據特征獲取其對應的幾何結構,例如可根據骨材特征獲取骨材實體、骨材復線和骨材理論線。板架樹骨材節點示意見圖5。

圖5 板架樹骨材節點示意Fig.5 Stiffener node hint of panel tree
開孔與板架結構共用板架結構,節點創建步驟不同于上,直接遍歷板架內邊界獲取。
2.2.2.2 非裝配模型非板架類結構管理
非裝配模型文件不使用裝配結構,不使用特征,取消特征關聯。為了描述板架與對應的非板架類型結構,需要引入新的數據結構,提供高效的增刪改查。船體結構復雜數據量大,但是每塊板架對應的非板架類結構為幾千數量級,采用哈希結構,提高效率,但還是稱為板架樹。NX提供的UDO[14]工具就是基于哈希結構的,還提供了豐富的附加功能,例如自動刪除UDO對象中不存在的結構。模型管理使用UDO對象來管理板架對應的非板架類結構。
模型中不采用特征,原來同一特征會變成幾個不同結構來管理,例如骨材特征一分為三,變成骨材實體、骨材復線以及骨材理論線。用樹型來展示新的模型管理結構的變化,非裝配模型板架樹見圖6,其中每一個具體結構就是一個UDO對象,即哈希結構。例如某個存儲板-骨材復線的 UDO對象包括了主甲板 _C.1, RootCurve_ST_1, RootCurve_ST_2,RootCurve_ST_3等結構對象。
創建一個UDO對象,只需要先創建對象,再調用NX接口把結構存入UDO。取得UDO對象中具體哈希表的內容需要以下3步。

圖6 非裝配模型板架樹Fig.6 Panel tree of unassembled model
步驟1:獲取板架關聯UDO對象。為了支持UDO對象,NX在模型中維持結構-UDO對象表,直接通過NX接口獲取板架關聯的所有UDO對象。
步驟 2:篩選特定 UDO對象。通過結構對應的類類型來篩選出指定類型的UDO對象。如骨材通過Panel Stiff Body,Panel Stiff Root Curve以及 Panel Stiff Theory Curve篩選出該板架對應的板-骨材實體UDO、板-骨材復線UDO和板-骨材理論線UDO。
步驟3:取出哈希對象中關聯結構。根據NX接口從UDO對象中取出關聯的所有結構,這時,板架本身也被得到,直接包裝接口過濾掉,就得到板架對應的這類關聯結構。
2.2.3 艙室類結構管理
模型在CAD系統中調用艙室識別算法后,用樹形結構管理,稱為艙室樹。艙室樹中艙室根據類型不同掛載到不同子節點下。艙室樹的深度只有3層,遍歷快速。
2.3.1 裝配位置的保證
模型只在CAD系統中采用裝配結構,但模型的管理方法不依賴于裝配,模型的裝配位置關系應該始終有保證。由于采用統一的平臺,NX提供了這方面的支持,模型轉換方法基于拷貝,使用NX的WAVE功能,WAVE功能提供關聯的與非關聯的模型間模型拷貝[15],本方法采用非關聯,系統間的模型不關聯約束。在使用時,采用 WAVE拷貝基于絕對坐標系的方式,輸入模型內結構之間的相對位置拷貝到輸出模型之后不發生變化,即只要CAD系統中的裝配關系是正確的,就能保證模型在其他系統中是合理的。其他模型也不再需要采用裝配結構,減少了數據量。
2.3.2 模型轉換方法詳細過程
在本集成系統中,采用統一的NX平臺,具體的轉換方法過程為選擇提取范圍,進行模型二次過濾,模型間 WAVE結構,創建 UDO對象重置板-非板結構關系(見圖7)。
步驟1:選擇提取范圍。利用包容盒來選擇模型提取范圍,用戶需要輸入包容盒的坐標范圍。提取范圍只包含范圍內的板架類結構以及艙室結構。

圖7 模型轉換過程Fig.7 Process of model transformation
步驟2:源系統過濾。拿取模型的系統稱為源系統,利用源系統模型管理的結構樹與艙室樹過濾提取結構。遍歷結構樹,得到板架類結構tag集并排序。對提取范圍內的每一塊板架在tag集中二分查找,判斷其是否存在。如果不在,說明該板架不是船體結構,從提取范圍中刪除。同理,遍歷源艙室樹,從提取范圍刪除無效艙室。
步驟3:目標系統過濾。輸出模型所在系統稱為目標系統。同樣遍歷結構樹,用哈希表存儲模型中已存在板架結構的GUID集,對提取范圍的每一塊板架的GUID在哈希表中查找,判斷是否存在。如果存在,說明此結構已經拿取到目標系統,不再重復拿取,從提取范圍中刪除。艙室操作同理。
步驟4:WAVE板架類結構并創建對應結構樹節點。WAVE處理后的提取范圍中的板架到目標系統。根據WAVE得到的結構編碼創建節點。
步驟5:WAVE非板架類結構并創建UDO對象。獲取每個提取范圍內板架關聯的非板架類結構,WAVE到目標系統,輸入參數形式是板+非板結構類型,在WAVE完成后,根據板-非板結構創建對應UDO對象,非板模型轉換過程見圖8。

圖8 非板模型轉換過程Fig.8 Conversion process of non-panel models
步驟6:WAVE艙室。WAVE提取范圍處理后的艙室到目標系統,并根據艙室類型創建艙室節點。
分析集成系統體系,解耦建模模塊和計算模塊,采用樹來管理板架類型結構和艙室類結構,用板架樹和哈希結構來管理非板類結構,除CAD系統外都采用非裝配結構,減少建模過程信息,模型結構數據無損,給集成系統帶來優秀的特性。
CAE系統的有限元分析結果以及SDP系統的共同規范計算結果都不斷反饋到CAD建模系統,對模型修正。二次過濾保證模型不重復拿取,對于已有結構,先刪除再提取,實現增量更新,節約模型傳輸花費的時間。如果該板相對獨立,重新進行計算時,只需要對此板及其非板架類結構單獨計算,無須重新計算其他結構,避免重復計算;如果與其他結構尚有關聯,也只需計算關聯部分,一定程度上避免全船的重新計算,實現計算的復用。相比基于中間平臺的方法,模型無損,轉換方便;相比于直接前處理方式,保留CAD模型,提供更新能力。本系統模型管理與轉換方法,提高模型轉換效率,大大節省模型傳輸時間以及計算時間。
船的全周期模型、CAD模型、SDR模型、SDP模型和CAE模型都被完整保存。提供方便地創建新建模任務、新計算任務的功能,通過拷貝舊船的全周期模型,然后在CAD系統中利用豐富的通用建模以及參數化建模功能進行船體三維模型的修改,可以在不同程度上重用SDR模型、SDP和CAE模型以及計算結果。現階段國內其他系統模型重用率不高[16],本系統重用方便,提高船舶三維建模與計算分析的效率,保證船舶建造的質量,提升我國造船行業的競爭力。
應用實例為CAD系統到SDP系統模型轉換。在傳統造船中,SDP是一套校驗計算的規范,沒有專門的系統,需要人工結合模型按照規范公式測量數據,時間很難估量。本集成系統中一艘31.9萬t油船的模型轉換過程見圖9,CAD的模型文件大小為2.5 GB,SDR和SDP模型大小約400 MB,模型結構信息無任何丟失。模型從CAD到SDR只用32 min,從SDR到SDP只要26 min,且從CAD到SDP系統模型有更新的能力,模型轉換方法快速且實用。

圖9 31.9萬t油船模型轉換過程Fig.9 Model conversion process of 31.0w ton oil ship model
探討了船舶集成設計系統中模型管理方法以及系統間模型轉換方法。基于統一NX平臺,采用樹管理板架類和艙室類結構,采用板架樹和哈希結構高效管理非板架類結構以及板-非板架類結構關聯關系,保證數據完整性且存取方便高效。
在SDR系統、SDP系統等非裝配模型中采用哈希結構管理板-非板結構關聯關系,用非裝配描述表示裝配結構,在完整保留模型結構信息的前提下,減少結構之間的關聯耦合性,減少數據量,實現模型的增量更新,提高模型存取速度與轉換效率,大大優化有限元分析以及規范計算的速度以及計算結構反饋的效率。
集成系統在重用舊船模型數據方面切實可行并且快速有效,充分利用資源,提高了船舶行業整體競爭力。