王 劍,劉泓廷,劉昱甫,薛寧鑫
(1.大連交通大學 機車車輛工程學院,遼寧 大連 116028;2.中車長春軌道客車股份有限公司 國家軌道客車工程研發中心,吉林 長春 130062)
結構有限元分析的第一步就是對結構進行前處理,包括模型的簡化、幾何處理、網格劃分及屬性賦值等。在HyperMesh中屬性賦值的基本方法是依次建立所需的單元類型、實常數并確定材料參數,再將處理好的模型與之一一對應地匹配到一起,完成模型屬性的賦值。對仿真分析工程師而言,這個過程是重復、枯燥但又不能忽視其技術含量的一項工作,需要依據模型部件仔細核實各個屬性,分別賦值。對于一個復雜模型來說,工程師的精力會在參數核實與工作界面不斷切換中不斷消耗,繁瑣冗長的操作不僅消耗掉仿真分析工程師們大量的時間精力,更會導致其工作效率下滑、人為失誤概率增加,影響后續分析工作的效率和可信度。因此,簡化模型屬性賦予操作流程顯得很有必要。
HyperMesh具有強大的前處理功能,并且提供了良好的二次開發環境,這為一些具有重復性操作的問題提供了良好的解決方案[1]。丁培林等[2]提出了基于HyperWorks自動加載及后處理的方法;劉偉[3]提出了基于HyperMesh實現轉向機自動化創建連接的方法;米小珍等[4]基于HyperMesh開發了材料定義與重用工具。
本文基于HyperMesh軟件,利用Tcl/Tk腳本語言結合模型屬性賦值的實際操作,開發了集成化、簡便化的屬性賦予工具,并將其嵌入到HyperMesh操作界面中,以滿足快速完成模型屬性賦予的要求。
以某不銹鋼點焊車車體分析為例介紹有限元模型屬性賦值的基本流程。該不銹鋼點焊車車體模型以殼單元為主,以用于頂升墊、橫向拉桿底座及車體尾梁內的擋塊實體單元為輔;梁單元用于表示電阻焊和螺栓,質量點單元用于表示設備和乘客質量。其中,殼單元平均尺寸約為25 mm,最小殼單元長度約為2 mm,最大殼單元長度為60 mm;最小實體單元長度為5 mm,最大實體單元長度為39 mm。Shell單元共計1 907 903個,Solid單元共計5 152個,Beam單元共計45 914個,Mass單元共計686 710個。涉及到的材料有不同型號的耐候鋼、不銹鋼、鋁合金等十余種。
在整車有限元分析流程中,劃分網格之后首先要將整車各部位零件按照位置、厚度、材料等進行分類,由于零件眾多,模型部件及組件有1 000余個。常規的模型屬性賦予操作首先要根據實際模型中出現的單元類型設置ET Type,如Shell181、Solid185等,部分單元類型需要設置實常數Real Sets,人工編輯名稱及厚度等屬性[5];其次要將所有用到的模型材料人工輸入到Material中;最后在Component Manager中將處理模型時分好的comps與對應的ET Type、Real Sets、Material等結合起來。雖然之前將零件按照參數分好組別,可以一次性對同一種零件進行屬性賦予,但是成百上千組數據的賦予仍然繁瑣且耗費時間。以不銹鋼點焊車為例,其有限元模型如圖1所示,不銹鋼點焊車的模型分為478組,從無到有地完成屬性輸入到關聯每組ET Type、Real Sets、Material,仍需要耗費工程師數小時甚至一整天的時間,非常繁瑣且工作量大。

圖1 不銹鋼點焊車有限元模型
針對HyperMesh軟件常規模型屬性賦予方法的不足之處,結合仿真分析本身操作規范化需求,使用Tcl/Tk腳本進行二次開發,以獲得更高效、更便捷的模型屬性賦予工具[6]。
以更高效、更便捷的模型屬性賦予工具為目標,設計、開發過程中應注意滿足以下幾點:
(1) 新工具的操作界面應盡可能地簡潔,便于操作。
(2) 按鍵設置邏輯應盡可能和基本屬性賦予流程貼合,降低學習成本及應用難度。
(3) 新工具應擺脫彈窗式插入,而是嵌入到HyperMesh軟件中去,方便隨時調用。
傳統操作模式中,屬性賦予需要反復切換界面,重復屬性關聯、二次確認等過程。在新界面中,從上到下依次設計Material、ET Type、Property選項,其中Material下轄四個參數,分別是材料名稱material name、彈性模量EX、泊松比NEXY、材料密度DENS等常用參數。ET Type包含的參數有Shell、Solid、Beam、Mass等單元,根據實際模型選出需要的參數類型,點擊一次按鈕即可創建。Property設置為點擊即可自動提取comps名稱中的關鍵字,自動生成Real Sets等參數,并對應地關聯到Component Manager中完成模型的屬性賦予操作。Property操作界面如圖2、圖3所示。

圖2 Property界面表層

圖3 Property界面里層
依據上述思路,基于ANSYS模板來進行二次開發。根據Property的設計,用戶需要提前將處理模型、網格劃分時的分組comps按照特定的命名規則進行規范化重命名,將comps名稱使用“_”符號進行分割。例如:SW_shell_8mm_AL,其中第一位SW代指單元在模型中所處的位置,為sidewall的縮寫(具體的位置名稱可按工程師自己的習慣進行命名,方便閱讀即可),第二位shell代指單元類型,第三位代指單元相關參數,如8 mm即為板件的厚度,第四位代指材料類型。
規范命名不但有助于二次開發的數據提取,也大幅提高了模型前處理的可讀性,方便進行工作交接以及交流研討。腳本會自動拆分后面三個位置并以此為基準對應地關聯到Component Manager中[7],完成屬性賦予的最終步驟。部分屬性賦予程序如下:
set compslistname [hm_getmark comps 1]
foreach comp $compslistname {
set comps_listname [hm_getvalue comps id=$comp dataname=name]
set lst [split $comps_listname "_-"]
set prop_name [lindex $lst 1]
set prop_thick [lindex $lst 2]
set prop_mat [lindex $lst 3]
}
if {$prop_name == "shell"} {
*createentity props cardimage=SHELL181p
name = $prop_thick
*setvalue props name=$prop_thick STATUS=2
136 = {$prop_thick 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0}
set prop_id [hm_getvalue props name=$prop_thick dataname=id]
*setvalue comps id=$comp cardimage="HM_COMP"
*setvalue comps id=$comp propertyid={props $prop_id}
set sensors_id [hm_getvalue sensors name=shell dataname=id]
*setvalue comps id=$comp STATUS=2 3081={sensors $sensors_id}
set mat_id [hm_getvalue material name=$prop_mat dataname=id]
*setvalue comps id=$comp materialid={mats $mat_id}
}
新開發模型屬性賦予工具的使用方法為:在完成模型幾何清理、中面抽取、劃分網格、按要求分組命名等常規操作之后,將材料參數輸入到Material一欄中,點擊Create即可完成材料創建。ET Type一欄里選擇單元類型,點擊一次即可完成單元類型的創建。最后的屬性賦予以及關聯到Component Manager過程需要在Property一欄中點擊Auto Attribute,右側會彈出窗口供工程師選擇需要賦予屬性的comps,勾選出需要賦予屬性的comps后點擊select以及proceed即可快速完成模型屬性賦予工作。新開發屬性賦予工具界面如圖4所示。

圖4 新開發屬性賦予界面
開發模式分為同步模式與異步模式。同步模式是指開發插件隨HyperMesh軟件一同啟動,不單獨運行。異步模式是指二次開發的插件獨立運行,只是在運行過程中調用HyperMesh軟件,建立數據通信。以往的二次開發多將界面設計為彈窗式,每次使用時需要工程師在命令行輸入source手動調用腳本,操作較為繁瑣。此次二次開發利用Tcl/Tk腳本語言將屬性賦予工具固化到HyperMesh主界面中,無需再次手動調用腳本,實現同步模式二次開發。將原先繁瑣復雜的模型屬性賦予操作簡化、集成為在一個頁面內即可完成的操作,工程師按照從上到下的順序依次填入數據、點擊按鈕即可快速完成模型屬性的賦予,且每次啟動HyperMesh都會自動在主界面Tab頁面下顯示新開發的模型屬性賦予工具界面,操作簡潔明了。
以某項目車頂罩板模型為測試對象,測試新開發屬性賦予工具的使用效果。該車頂罩板模型零部件共劃分為10組,其中涉及單元類型2類、材料2種,單元總數為243 587。
原始HyperMesh軟件界面及某項目車頂罩板模型如圖5所示。模型中可見每一個component中的value值均為空,需要工程師填寫Type、Property、Material三項。使用常規模型屬性賦予方法,單次屬性賦予至少需要34次點擊操作、7次輸入操作才能完成從材料建立、單元類型創建到屬性關聯等操作。未進行屬性賦予的Component Manager界面如圖6所示。

圖5 原始HyperMesh軟件界面

圖6 未賦予屬性的Component Manager界面
使用二次開發改進后的模型屬性賦予工具,單次屬性賦予僅需要8次點擊、4次輸入操作即可完成。工作界面位于Tab頁面下,如圖7所示,自上而下依次填入Material參數、選擇單元類型,最后點擊Auto attribute即可完成屬性賦予工作。完成屬性賦予后的Component Manager界面如圖8所示。統計常規屬性賦予操作次數和使用二次開發后的屬性賦予工具所需的操作次數,統計對比結果見表1。

圖7 二次開發后HyperMesh軟件界面

圖8 完成屬性賦予的Component Manager界面
以前文提到的不銹鋼點焊車為例,該大型模型使用二次開發工具賦予屬性僅需十余分鐘即可完成工作。通過表1中數據對比亦可見使用Tcl/Tk腳本進行二次開發改進后的模型屬性賦予工具可使仿真分析工程師無需反復進行頁面切換、點擊、輸入、關聯等操作,不僅大大降低了賦屬性時的工作強度,而且顯著提高了模型賦屬性的準確度與工作效率。

表1 操作次數對比
當工程師使用HyperMesh軟件進行產品的仿真分析前處理時,經常會遇到重復性、標準化的任務,若能對這些重復出現且具有標準操作的任務進行簡化,則可大大提高前處理的效率,而前處理的效率直接影響產品設計周期。本文針對前處理中可簡化的操作對HyperMesh進行了具備行業風格的二次開發,優化了操作流程,既減小了人工操作出錯的概率又提高了前處理的效率,為相關工作人員提供了便利工具。