劉乾
(200093 上海市 上海理工大學)
在新車型的研發設計中,車輛本身的碰撞安全性能是重要的考量指標。在目前的研發流程中,一般將有限元分析作為先期評價手段,通過有限元分析進行碰撞仿真來對車型的碰撞安全性做出評價。碰撞仿真分析一般分為有限元模型搭建、模型前處理、導入求解器求解計算、計算結果后處理4 個環節。其中較為耗費時間的模型搭建和前后處理,這一過程基本要占到整個碰撞仿真工作量的80%~90%,直接影響到仿真分析的效率和新車型的設計周期。
Altair HyperWorks 是一款有限元分析軟件,由于需要兼顧太多不同的求解器,導致其操作流程過于瑣碎,在某些標準化設計研發流程中,其操作顯得過于復雜與重復,與企業標準化、高效化的設計研發思路不符[1]。Altair 公司為了解決這個問題,賦予了該軟件二次開發的功能,讓使用者可以根據自己的需求對HyperWorks 軟件進行定制化的二次開發,使得軟件的操作可以與企業新車型的研發流程深度匹配。這種模式已經逐漸成為行業內的一種潮流。
本文針對整車仿真碰撞分析前處理過程,基于CAE 平臺HyperWorks 中負責前處理的HyperMesh 軟件的二次開發,重點設計了針對零部件自動定位的功能模塊,以適應企業快速、準確開發需求。
Tcl/Tk 是由John K.Ousterhout 于1988 年開發的一種用于控制和擴展應用程序的動態語言(也稱為腳本語言);該名稱代表“工具命令語言”(tool command language)[2]。TCL 語言提供的通用編程能力可以滿足大多數應用程序的需要。HyperMesh 軟件使用該語言作為自己的主要開發語言和二次開發語言。
由于HyperMesh 軟件的操作有很多是通過調用軟件自帶的相應TCL 腳本完成的,而對于相應所有對模型的操作所調用的內部函數都會被記錄在一個名為command.tcl 的文件中,編輯程序時,可以通過查閱command.tcl 文件獲取所需的相應函數[1]。除此之外,有些在HyperMesh 中使用的查詢命令,也就是hm_開頭的命令,則需要去軟件自帶的幫助文檔HyperWorks Help Home中查詢。
開發交互界面的語言是TK。TK 可以視為TCL 語言最常用和有用的一個擴展,它是一個用于開發圖形用戶界面(graphical user interface,GUI)應用程序的工具集。TK 擴展了TCL 內核的功能,增加了構架用戶界面的命令,使您可以只用TCL 腳本來構建圖形用戶,而不必編寫C語言代碼。
整車建模一般是根據車型的參數圖紙,先通過3D 建模軟件(例如CATIA,UG/NX 等)建立含底盤的整車3D 模型,而用于碰撞仿真的整車模型,由于其中的一些線路和管路的連接質量較小,所以在3D 建模時一般將其省略[3]。
在完成3D 模型建立后,將3D 模型導入有限元前處理軟件HyperMesh 進行網格劃分、材料賦予、工況加載等。在網格劃分時,一般為了平衡求解的速度與精度,會將車身結構的有限元單元長度設置為10 mm,而在車身前部的主要吸能區域,由于需要更高的仿真進度,所以會適當的減小有限元單元大小,但是一般也會控制在不小于5 mm[3]。
除整車模型外,在碰撞仿真中還需要剛性壁障的3D 模型。在真實的碰撞實驗中,剛性墻一般是由鋼筋與混凝土制成的,其尺寸則根據各個評價指標的實驗要求來確定。在有限元仿真建模中,是將剛性壁障視作剛性平面,所以在進行前處理時材料類型選用了剛性體模型,單元類型采用了殼單元,然后工況設置遵循實驗要求。
一般來說,進行有限元碰撞仿真的步驟大體可以分為3D 模型搭建、有限元模型前處理、仿真軟件計算、計算結果后處理以及最后的編寫仿真分析報告。對于工程師們來說,主要的工作量集中在前后處理中,尤其是前處理工作中有大量的低效的重復勞動,例如材料賦予、工況加載、零部件定位等工作,在相同的碰撞仿真實驗中是相同或者相似的,所以我們可以使用二次開發自動化腳本來簡化這些工作流程,把工程師們從這種枯燥重復的工作中解放出來,縮短新車型研發中進行碰撞仿真的工時,提高工作效率。
在整車碰撞仿真中,一般有兩個模型主體,整車模型和用來進行碰撞的剛性壁障,其中整車模型是由多個零部件組成的,不需要一個個查找各個零部件的坐標,可以直接將整個整車模型視為整體,確定位置。在具體實踐中,可以將整車模型視作一個立方體,通過實際的車輛尺寸,或者直接查找相對應的單元節點位置信息去計算整車模型大概尺寸,得出一個可以完全包裹整車模型的立方體,本文之后會以整車模型立方體外輪廓代指這個立方體。具體模型圖像如圖1 所示。

圖1 整車模型與立方體外輪廓Fig.1 Whole vehicle model and cube outer contour
在HyperMesh 軟件中,軟件無法直接獲得零部件的坐標信息,它只會獲取模型進行有限元網格劃分后各個節點的坐標信息。為了獲得整體零部件的位置坐標信息,就要獲取各個零部件在進行有限元網格劃分后各節點的坐標信息。
在HyperMesh 軟件的內置函數中,提供了可以獲取零部件節點列表的函數hm_nodelist 與獲取節點坐標信息的函數hm_nodevalue,通過使用這兩個函數,可以獲得模型有限元節點的坐標。在獲得節點位置坐標信息后,下一步就是以此為根據去確定零部件的位置。
在獲取到有限元模型所有節點的位置信息后,就需要尋找特征點。這里的特征點指的是能夠反映出整車模型在各個坐標軸方向極值(最大值和最小值)的點,最終需要獲得的數據就是整車模型在X 軸坐標上的最大值和最小值,Y 軸坐標上的最大值和最小值,Z 軸坐標上的最大值和最小值。由這6 個數值確定整車模型立方體外輪廓的4 個端點位置坐標,進而確定了整車模型的位置坐標。
在工程實踐中,圖1 所示的四方體外輪廓是不存在的,這時要完成零件定位的自動化,則需要計算機去計算車輛四方體4 個端點的位置。
前文提到過,可以通過hm_nodelist 與hm_nodevalue 獲得有限元節點ID 與在大坐標系中的位置信息[4],但是如果直接在HyperMesh 輸入這兩個命令,軟件會報錯。錯誤的原因是有限元節點并非直接從屬于零部件,也就是component 這一層級。在對整車模型進行有限元網格劃分后,所生成的各個有限元節點其實是直接從屬于有限元網格這一層,也就是軟件中的element 這一級,所以如果要獲得單元節點,也就是node 的信息,首先需要去查詢element,也就是各個有限元網格的ID。在這里,HyperMesh 軟件是提供了內部命令的,hm_elemlist 這一內置函數可以獲取到模型上所有有限元網格的ID。
獲得了這些數據后,需要通過對于這些數據的計算,查找整車模型立方體外輪廓的4 個端點。這里最主要的任務就是通過計算和比較得到整車模型在3 個方向坐標軸的極值。這里使用最簡單的最大值最小值排序算法即可,不再贅述。
在獲得4 個端點坐標,構建出整車模型的立方體外輪廓后,由于本文主要探討的是正面碰撞仿真,所以選取整車模型立方體外輪廓在車頭方向的平面中心替代整車模型的位置。在確定整車模型位置后,需要確定剛性壁障的位置,由于是正面碰撞仿真,所以在這里所使用的剛性壁障一般為剛性墻。在有限元仿真中,一般將剛性墻簡化為圖2 所示狀態。

圖2 剛性墻簡化模型Fig.2 Simplified model of rigid wall
同樣,依照前文所述方法,可以得到剛性墻的中心點坐標,之后就可以使用剛性墻的中心點坐標和整車模型立方體外輪廓在車頭方向的平面中心坐標進行相對位置比較,再結合實驗標準中對于車輛與剛性墻位置的實驗標準,將兩者的模型調整到符合實驗要求,最終的定位工具界面如圖3 所示。

圖3 自動定位工具界面Fig.3 Automatic positioning tool interface
有時碰撞仿真的實驗要求并不是標準的,或者有時提出了新的實驗標準,導致剛性墻與整車模型的位置需要調整,而定位工具更新沒有這么及時,需要工程師手動進行調整,所以出于這個需求,自動定位工具中提供了一個便捷的模型移動工具。工具界面如圖4 所示。

圖4 便捷移動工具界面Fig.4 Convenient mobile tool interface
相較于HyperMesh 自帶的模型移動功能translate,該工具可以更加直觀、便捷地控制模型的移動。HyperMesh 軟件自帶的translate 在移動時有2 種途徑:一種就是傳統的根據坐標軸移動,但是需要工程師不停地調整需要根據哪根坐標軸移動,操作繁瑣;另一種是需要目標位置的3 個點來定位移動方向與距離。如果目標位置確定,且已經有了平面存在,這個途徑操作還不算復雜,但如果這兩個條件都不滿足,模型移動就會很復雜,而這個便捷移動工具就很好地解決了這個問題。
本文主要論述了通過二次開發技術對碰撞仿真進行自動化的可行性與實際效果,在實際的工程實踐中,通過對正面碰撞仿真模型定位的自動化技術,能極大地提高碰撞仿真前處理的效率,為整個新車設計階段節省大量的工時。對于車企來說,就相當于縮減了不少的時間與經濟成本,提高了新車型的設計性能與換代周期,從而能夠更好地搶占市場,創造更多的經濟效益與更好的市場口碑。