陳濤 楊德慶 邱偉強
摘要:針對豪華郵船大跨距板架靜力學和動力學分析需要進行大量繁瑣建模工作的問題,研究NAPA、MSC Patran/Nastran等多個軟件協(xié)同運行的方法,借助Visual Studio開發(fā)流程化設計程序,并通過Isight優(yōu)化軟件驗證程序的適用性。該程序可實現郵船多層大跨距板架設計的參數化建模和自動分析計算,從而快速獲得多方案設計結果,提高設計和分析效率。
關鍵詞:郵船;參數化建模;結構振動;大跨距板架;NAPA;PCL;API函數;Isight優(yōu)化
中圖分類號:TP391.75;U663.95;U661.4
文獻標志碼:B
文章編號:1006-0871(2019)01-0001-07
0?引?言
為提高生產效率,豪華郵船的客房集中區(qū)域一般采用居住單元模塊化設計方式,只保留少量支撐結構,因此客房集中區(qū)域的甲板板架跨距較大。[1-2]由于這些區(qū)域頂部的結構面積較大,且甲板強橫梁和縱桁上的電纜和風管開孔分布較為密集,影響甲板強構件的剛度和甲板板架的固有頻率,有必要針對大跨距板架區(qū)域進行強度和振動分析。
為保證大跨距板架具有足夠的剛度和良好的振動性能,不得不設置高腹板強框、縱桁或者少量垂向支撐結構作為支撐。這些支撐結構的形狀參數需要進行優(yōu)化設計,以保證在提供必要剛度的同時,滿足總布置和空間使用要求。在客房集中區(qū)域,受層高的影響,甲板強橫梁和縱桁的腹板高度受到限制,因此需要對甲板強橫梁、縱桁以及其他支撐結構的布置、形狀和尺寸進行優(yōu)化設計。由于豪華郵船甲板偏薄,縱骨的剛度偏弱,存在板格振動和加強筋振動的可能,因此需要著重對薄板結構的動力學特性進行研究。
大跨距板架區(qū)域需要進行多次靜力學和動力學分析,并進行多種方案對比,因此建模數量大、計算任務重。常規(guī)的建模和計算過程需要頻繁調整參數,并在各個軟件間來回切換,重復工作較多;單純依靠PCL語言開發(fā)Patran參數化建模腳本,程序編寫過程復雜,且需要考慮尺寸轉化、單元劃分和計算流程實現等諸多因素。因此,開發(fā)基于多軟件協(xié)同的大跨距板架參數化建模和動力學分析程序,整合各個三維軟件在建模和計算中的優(yōu)勢,用于自動化快速建模和自動化計算分析,可減少建模計算中的人工操作,同時可方便與優(yōu)化設計軟件對接,實現結構設計優(yōu)化,在豪華郵船國產化設計中具有重要的應用價值。
1?郵船大跨距板架結構的特點及其程序設計要求
典型豪華郵船大跨距板架橫向結構(見圖1)的特點為:結構跨距在5 m以上,最大可達到10 m,板架兩端通過支柱結構進行支撐;支柱一般位于縱桁所在位置,或對齊縱骨位置布置,上下層間位置對齊分布或上下層間錯位若干縱骨檔位分布;縱向每兩檔強框間距布置,縱骨間距通常均勻分布;橫梁上有便于通風電纜等管路穿過的開孔,支柱兩側的開孔形狀特殊處理。這類結構在豪華郵船居住區(qū)較多,在進行強度和振動分析時,必須進行局部結構建模和分析,基于全船模型進行大跨距板架固有頻率計算代價較大,較少采用。
針對上述結構特點,開發(fā)大跨距板架參數化建模和動力學分析程序,選取NAPA和MSC Patran/Nastran多軟件協(xié)同實現。NAPA是目前應用最廣的船舶設計軟件之一,國內針對其已經開展許多二次開發(fā)和系統(tǒng)集成方面的工作。[3]NAPA在建模和有限元模型輸出方面具有獨特優(yōu)勢:通過其表格化的輸入過程及其提供的二次開發(fā)工具,可以較方便地進行模型的創(chuàng)建和修改;通過調整輸出模型參數,可方便快捷地進行模型網格的切換,得到具有良好網格質量的有限元模型;等等。MSC Patran具有齊全的前、后處理功能,在船舶行業(yè)應用廣泛,應用PCL語言可以很方便地對其進行二次開發(fā)。[4]
2?開發(fā)語言和環(huán)境
開發(fā)平臺采用Visual Studio 2005,操作系統(tǒng)采用Windows XP SP3,編碼采用VB.net語言,并在Windows XP SP3與Win7系統(tǒng)下分別測試通過。32位系統(tǒng)測試采用NAPA 2013.1和MSC Patran/Nastran 2005;64位系統(tǒng)測試采用NAPA 2016.1和MSC Patran/Nastran 2013。
3?軟件流程實現
3.1?參數選取
參數化建模的首要工作是確定模型的輸入參數,即如何將模型的特征信息用參數表達。這個表達應是無歧義的,便于程序實現的,這一表達方式也應同時反映程序的算法。參數選擇是否恰當將直接決定該參數化建模程序是否準確以及是否適用。為建模方便,對模型參數進行適當簡化,假定縱骨間距均一致,上下層間強橫梁、縱桁尺寸不變,每層甲板板架的長和寬分別相等。單層甲板的主要參數見圖2和3,其中主要的輸入可變參數以及包含數量和位置信息的固定參數分別見表1和2。在不同高度的甲板板架處,這些屬性有可能發(fā)生變化。由于不同的分析目標可能會使用不同大小的有限元網格,因此引入有限元網格精細度控制參數anaType,以提高輸出模型的適用性。
3.2?NAPA參數化建模
NAPA參數化建模主要采用NAPA BASIC實現。NAPA BASIC可以將計算函數整合進宏中使之成為一段真正意義上的程序(包含變量、決策以及跳轉等),其包括一般的NAPA命令、帶參數(通過計算表達式生成)的NAPA命令、計算表達式(以@符號開頭)、交互式的變量輸入,以及程序流控制等。[5]本例主要使用NAPA Steel(ST)模塊下的命令和運算函數。模型的坐標系以結構的長、寬、高分別為x、y和z軸,并且滿足右手定則,模型建立在第一象限。
創(chuàng)建NAPA參數化建模腳本的流程見圖4。
NAPA主要通過表格完成數據的組織與屬性的添加。本例主要包含模型創(chuàng)建和有限元模型輸出2部分,步驟如下。
(1)甲板板架創(chuàng)建。這一步創(chuàng)建幾何曲面對象。由于甲板長度和寬度不變,僅需要運算z軸高度即可。通過LIM語句限定6個方向的邊界,生成甲板平面。
(2)創(chuàng)建虛擬板架依附平面。NAPA的扶強材需要依附于板架才能生成,因此針對扶強材所在的平面創(chuàng)建曲面對象。根據豪華郵船的結構布置特點,支柱平面縱向間距定為強橫梁間距的2倍。
(3)定義扶強材表格。NAPA的扶強材定義在TAB*PROFILES中,將扶強材參數解析成NAPA能夠識別的扶強材定義格式,并添加起始與結束語句,輸出創(chuàng)建腳本。
(4)生成支柱定義表格。通過LIMITS字段限制支柱所在層數,通過LOCTN字段限制支柱橫向位置,并添加起始與結束語句,輸出創(chuàng)建腳本。
(5)加入甲板型材。加入的甲板型材主要有甲板縱骨縱桁和橫梁,按照NAPA格式確定起始
位置、終止位置和間隔距離。通過語句“M=(0.1 0.1)”限定板架兩端不生成型材。在NAPA中,后定義的構件會自動替換之前定義的構件,因此在腳本中按照先縱骨后縱桁的順序進行定義。
由于涉及開孔類型,橫梁的設定需要結合上層和下層支柱位置進行計算,主要思路為:分別計算上層(如果存在)和下層支柱的定位位置集合,求2個集合的并集,并加入起始位置0和板寬B,按照由小到大順序排列為一個數組。然后判定相鄰2個數組元素的差值,從而判定區(qū)間內的openTypeC類型開孔數量,按照起始位置和終止位置步長的方式或直接給定位置坐標,寫入NAPA BASIC語句。openTypeS類型的開孔位置根據支柱位置增減openLocYS得到,同時判定是否有相互干涉的開孔位置。
(6)加入甲板板架結構表格。NAPA中的幾何數據需要加入到相應類型的表格中,以增加屬性和參數設置。這一步將前2步生成的幾何對象加入到STR*STEEL表格中。G_STD、L_STD和F_STD分別對應導出全船、局部和精細有限元網格時所要運用的參數表格。該表格設定在步驟(7)完成。
(7)有限元模型輸出參數設定。有限元劃分是結構計算中的重要步驟,良好的有限元網格質量可以提高計算速度,得到更精確的計算結果。NAPA輸出通過表格參數控制網格質量。本例中常用的局部網格有限元參數設定如下:
TAB
PREF FEMDEF*
GET FEMDEF*L_STD
DEF MESHPQ VALUE=′1′
DEF MESHPE VALUE=′1.41′
DEF SMOITERATIONS VALUE=′0′
DEF FEMMMS VALUE=′0.2′
DEF RM9 VALUE=′0.1′
DEF RM7 VALUE=′1.5′
DEF TOL VALUE=′0.015′
DEF REDARE VALUE=′0.01′
SAVE !
END
在上述參數設定中:MESHPQ為四邊形單元占比,0為不使用四邊形單元,0.5為四邊形單元僅使用在能夠改善單元質量的部位,接近于1.0表示盡可能少地使用三角形單元;MESHPE設定邊緣處網格的法向長度,該參數可改善開孔處的單元質量,默認值為1.41;SMOITERATIONS用于改善邊界處的網格質量,三角形單元將會轉化為四邊形單元,同時減少僅有一個節(jié)點落在邊界上的四邊形數量,該參數設定相關算法的迭代步數,0為不進行優(yōu)化;FEMMMS參數設定最大的單元長度,但是單元長度同時受其他參數影響(如MESHPE),最終的單元長度有可能會超出該參數的限制;RM9設定最小的單元長度,該參數與RM7和TOL等參數共同影響最終的網格效果;RM7設定邊界網格尺寸過渡的速率,該參數越小,網格尺寸的過渡越平滑,從而能夠獲得更好的網格質量;TOL用于設定單元節(jié)點的容差,距離小于該值的兩點將會被合并,從而避免不必要的細小單元;REDARE設定最小的單元開孔面積,小于該面積的開孔在劃分網格時會被忽略。
該部分內容屬于通用參數設定,根據實際需要預設全船、局部和精細有限元網格的參數,保存在單獨的文件中,每次程序運行時附加在NAPA腳本末尾。
(8)輸出有限元腳本。NAPA導出的模型直接用于MSC Patran處理后計算,不需要提取分組等信息,因此直接導出BDF格式有限元模型。NAPA BASIC腳本如下:
@@ Creat FEM Model
FEM
GET LOCAL
FILE ′E:/NapaDB/GONAPA.BDF′
OUT NASTRAN MM
3.3?MSC Patran前處理
MSC Patran前處理的主要工作是施加邊界條件和導出計算文件。該步驟的實現方式為:通過主程序生成SES格式PCL腳本文件,通過批處理文件運行MSC Patran并執(zhí)行該文件。在批處理文件內,通過-sfc參數將腳本文件傳遞給MSC Patran,并通過-b參數,使MSC Patran在后臺運行程序。
該步驟需要通過主程序傳遞的參數為當前文件夾位置和模型的x、y向邊界,由主程序寫入腳本文件開頭。腳本文件實現步驟如下:
(1)施加邊界條件。本模型的邊界條件為四周和最下層支柱底端約束3個方向的位移自由度。通過list_create_node_att_value函數[6-7],框定模型的x、y和z向底部邊界,并通過loadsbcs_create函數施加位移約束,具體如下:
…
list_create_node_att_value( [`Xmax`, 0., 0., 0., 0., 0.], [TRUE, FALSE, FALSE] , ["equal", "equal", "equal"], [0.005, 0.005, 0.5], "Coord 0",?"lista", uil_list_create_current_list )
…
loadsbcs_create( "disp1", "Displacement", "Nodal", "", "Static", mariclist, "FEM", @
"Coord 0", 1.0, ["<0 0 0 >", ""], ["", ""] )
…
(2)修改密度參數。模型選用mm-N-s的單位制,因此需要通過Material Create函數修改密度參數,使其與模型單位一致。
(3)添加非結構質量。甲板結構包括底板輔料、絕緣包裹等附加質量。這一部分質量會影響甲板振動的固有頻率,不能忽略。模型內甲板的附加質量通過殼單元屬性中的Nonstructual Mass項進行調整,本例中統(tǒng)一設置為8E-8,可使用PCL語句通過elementprops_modify函數進行調整。
(4)導出計算文件并關閉MSC Patran,結束前處理流程。
完成前處理的有限元模型見圖5。
3.4?提交MSC Nastran計算
通過主程序運行批處理文件,將前一步生成的BDF格式計算文件提交給MSC Nastran程序進行運算。
3.5?MSC Patran結果顯示
主程序運行批處理文件,調用Patran執(zhí)行預編寫好的SES腳本文件,完成后處理操作。本例讀取生成的XDB文件,并進行適當的參數配置,得到1階模態(tài)振動分析結果,見圖6。
3.6?主程序實現
根據需求,主程序需對輸入和輸出數據進行預處理,并將程序執(zhí)行過程中的各個軟件串接起來,但無須執(zhí)行交互式操作,因此采用控制臺程序實現這些功能。
軟件的啟動順序為NAPA Steel、MSC Patran(前處理)、MSC Patran(后處理),結合預先定義的批處理文件和快捷方式實現對軟件的調用。同時,需要由后臺程序實時偵測所調用的軟件是否已正確運行或關閉,從而判斷是否執(zhí)行下一步程序。這一功能通常由可視窗口程序判定,使用Windows API函數中的窗口句柄搜索函數GetWindow和GetWindowText完成。本例采用后臺運行的方式調用計算軟件,因此選擇使用.net環(huán)境中的進程搜索函數完成判定任務。
4?程序應用
除進行常規(guī)快速建模任務外,程序還可結合Isight軟件,進行結構優(yōu)化設計。
采用某單層大跨距板架簡單優(yōu)化計算方案檢驗本程序的應用效果,優(yōu)化目標板架結構見圖7。
調整強構件面板寬度和厚度,得到1階固有頻率大于12 Hz時的質量最小的設計方案。板架的生效可變參數和固定參數設定分別見表3和4。
根據條件建立最優(yōu)化數學模型為
優(yōu)化計算可以選取多種算法,其中梯度優(yōu)化算法用于解決單峰值問題。工程中的優(yōu)化問題往往比較復雜,其目標函數可能存在多峰性、非線性、非連續(xù)性,以及不可微函數;設計變量和約束函數可能是線性、非線性、連續(xù)或離散變量集。因此,需要采用全局優(yōu)化算法進行分析。船舶結構優(yōu)化分析經常采用的全局優(yōu)化算法有多島遺傳算法[8-9]和模擬退火算法[10-11]。模擬退火算法每次在搜索空間中只檢查一個設計點,而多島遺傳算法檢查一組設計點[12],所以模擬退火算法更簡單。
對原程序的結果顯示腳本進行修改,采用PCL語言將模型的質量和1階模態(tài)頻率輸出到結果文本文件中。在Isight中添加Optimization組件,并在流程中依次添加Data Exchanger組件、OS Command組件和Data Exchanger-1組件,分別對應Input文件參數讀寫、建模流程程序運行和結果文件讀取。Isight優(yōu)化流程見圖8。
針對上述優(yōu)化流程,分別用梯度優(yōu)化(NLPQL)算法、自適應模擬退火算法和多島遺傳算法進行優(yōu)化,使用默認配置參數,優(yōu)化結果見表4和圖9~11。
5?結束語
結合多層大跨距板架有限元模型建立和動力學計算,開發(fā)一種參數化模型生成和計算程序。結合NAPA與MSC Patran/Nastran開發(fā)軟件,實現建模和計算的全自動化。NAPA中的建模算法具有良好的通用性,可以應用于船體初步設計,快速生成多方案模型,并可針對多個方案進行比對,得到最優(yōu)設計。
該程序在豪華郵船項目設計中得到運用,可方便建模與計算,提高設計效率。該程序具有良好的擴展性,也仍存在改進的空間,例如可在輸入文件中增加甲板載荷等參數、增加靜力學計算模塊等,以實現完整的力學計算。
參考文獻:
[1]?李蘭美, 黃斐, 陳明銘. 豪華郵船建造特點初步分析[J]. 造船技術, 2014(2):10-26.
[2]?李曉川. 郵船建造夢,理想很豐滿[J]. 中國船檢, 2015(10):42-45.
[3]?丁愛兵, 汪學峰. 船舶綜合設計軟件系統(tǒng)中NAPA的集成研究[J]. 船舶工程, 2014(2):91-94. DOI:10.13788/j.cnki.cbgc.2014.0055.
[4]?何祖平, 王德禹. 基于MSC Patran二次開發(fā)的結構參數化建模及其集成開發(fā)環(huán)境[J]. 船海工程, 2005(2):17-20.
[5]?NAPA. NAPA Users Manuals 2013[M]. Helsinki:NAPA Ltd., 2013.
[6]?MSC Software Corporation. MSC Patran 2012 PCL Reference Manual, Volume 1:Function Descriptions[M]. Santa Ana:MSC Software Corporation, 2012.
[7]?MSC Software Corporation. MSC Patran 2012 PCL Reference Manual, Volume 2:Code Examples[M]. Santa Ana:MSC Software Corporation, 2012.
[8]?馬靜敏, 沈友徽, 李華. 基于Isight的油船槽形橫艙壁優(yōu)化設計[J]. 船海工程, 2005(1):35-37.
[9]?羅仁杰, 邱偉強, 蔡詩劍, 等. 船體縱骨上附連挺筋軟踵形狀參數優(yōu)化[J]. 船舶與海洋工程, 2016, 32(6):39-48. DOI:10.14056/j.cnki.naoe.2016.06.007.
[10]?周素素, 夏利娟. 全船結構靜動態(tài)優(yōu)化設計[J]. 振動與沖擊, 2013, 32(23):69-74.
[11]?許華文, 肖熙. 基于模擬退火算法的艦船中剖面優(yōu)化設計[J]. 上海交通大學學報, 2000, 34(1):95-98.
[12]?姜欣, 方立橋, 李明, 等. Isight參數優(yōu)化理論與實例詳解[M]. 北京:北京航空航天大學出版社, 2012:193-196.
(編輯?武曉英)