劉乾
(200093 上海市 上海理工大學(xué))
在新車型的研發(fā)設(shè)計(jì)中,車輛本身的碰撞安全性能是重要的考量指標(biāo)。在目前的研發(fā)流程中,一般將有限元分析作為先期評(píng)價(jià)手段,通過(guò)有限元分析進(jìn)行碰撞仿真來(lái)對(duì)車型的碰撞安全性做出評(píng)價(jià)。碰撞仿真分析一般分為有限元模型搭建、模型前處理、導(dǎo)入求解器求解計(jì)算、計(jì)算結(jié)果后處理4 個(gè)環(huán)節(jié)。其中較為耗費(fèi)時(shí)間的模型搭建和前后處理,這一過(guò)程基本要占到整個(gè)碰撞仿真工作量的80%~90%,直接影響到仿真分析的效率和新車型的設(shè)計(jì)周期。
Altair HyperWorks 是一款有限元分析軟件,由于需要兼顧太多不同的求解器,導(dǎo)致其操作流程過(guò)于瑣碎,在某些標(biāo)準(zhǔn)化設(shè)計(jì)研發(fā)流程中,其操作顯得過(guò)于復(fù)雜與重復(fù),與企業(yè)標(biāo)準(zhǔn)化、高效化的設(shè)計(jì)研發(fā)思路不符[1]。Altair 公司為了解決這個(gè)問(wèn)題,賦予了該軟件二次開(kāi)發(fā)的功能,讓使用者可以根據(jù)自己的需求對(duì)HyperWorks 軟件進(jìn)行定制化的二次開(kāi)發(fā),使得軟件的操作可以與企業(yè)新車型的研發(fā)流程深度匹配。這種模式已經(jīng)逐漸成為行業(yè)內(nèi)的一種潮流。
本文針對(duì)整車仿真碰撞分析前處理過(guò)程,基于CAE 平臺(tái)HyperWorks 中負(fù)責(zé)前處理的HyperMesh 軟件的二次開(kāi)發(fā),重點(diǎn)設(shè)計(jì)了針對(duì)零部件自動(dòng)定位的功能模塊,以適應(yīng)企業(yè)快速、準(zhǔn)確開(kāi)發(fā)需求。
Tcl/Tk 是由John K.Ousterhout 于1988 年開(kāi)發(fā)的一種用于控制和擴(kuò)展應(yīng)用程序的動(dòng)態(tài)語(yǔ)言(也稱為腳本語(yǔ)言);該名稱代表“工具命令語(yǔ)言”(tool command language)[2]。TCL 語(yǔ)言提供的通用編程能力可以滿足大多數(shù)應(yīng)用程序的需要。HyperMesh 軟件使用該語(yǔ)言作為自己的主要開(kāi)發(fā)語(yǔ)言和二次開(kāi)發(fā)語(yǔ)言。
由于HyperMesh 軟件的操作有很多是通過(guò)調(diào)用軟件自帶的相應(yīng)TCL 腳本完成的,而對(duì)于相應(yīng)所有對(duì)模型的操作所調(diào)用的內(nèi)部函數(shù)都會(huì)被記錄在一個(gè)名為command.tcl 的文件中,編輯程序時(shí),可以通過(guò)查閱command.tcl 文件獲取所需的相應(yīng)函數(shù)[1]。除此之外,有些在HyperMesh 中使用的查詢命令,也就是hm_開(kāi)頭的命令,則需要去軟件自帶的幫助文檔HyperWorks Help Home中查詢。
開(kāi)發(fā)交互界面的語(yǔ)言是TK。TK 可以視為T(mén)CL 語(yǔ)言最常用和有用的一個(gè)擴(kuò)展,它是一個(gè)用于開(kāi)發(fā)圖形用戶界面(graphical user interface,GUI)應(yīng)用程序的工具集。TK 擴(kuò)展了TCL 內(nèi)核的功能,增加了構(gòu)架用戶界面的命令,使您可以只用TCL 腳本來(lái)構(gòu)建圖形用戶,而不必編寫(xiě)C語(yǔ)言代碼。
整車建模一般是根據(jù)車型的參數(shù)圖紙,先通過(guò)3D 建模軟件(例如CATIA,UG/NX 等)建立含底盤(pán)的整車3D 模型,而用于碰撞仿真的整車模型,由于其中的一些線路和管路的連接質(zhì)量較小,所以在3D 建模時(shí)一般將其省略[3]。
在完成3D 模型建立后,將3D 模型導(dǎo)入有限元前處理軟件HyperMesh 進(jìn)行網(wǎng)格劃分、材料賦予、工況加載等。在網(wǎng)格劃分時(shí),一般為了平衡求解的速度與精度,會(huì)將車身結(jié)構(gòu)的有限元單元長(zhǎng)度設(shè)置為10 mm,而在車身前部的主要吸能區(qū)域,由于需要更高的仿真進(jìn)度,所以會(huì)適當(dāng)?shù)臏p小有限元單元大小,但是一般也會(huì)控制在不小于5 mm[3]。
除整車模型外,在碰撞仿真中還需要?jiǎng)傂员谡系?D 模型。在真實(shí)的碰撞實(shí)驗(yàn)中,剛性墻一般是由鋼筋與混凝土制成的,其尺寸則根據(jù)各個(gè)評(píng)價(jià)指標(biāo)的實(shí)驗(yàn)要求來(lái)確定。在有限元仿真建模中,是將剛性壁障視作剛性平面,所以在進(jìn)行前處理時(shí)材料類型選用了剛性體模型,單元類型采用了殼單元,然后工況設(shè)置遵循實(shí)驗(yàn)要求。
一般來(lái)說(shuō),進(jìn)行有限元碰撞仿真的步驟大體可以分為3D 模型搭建、有限元模型前處理、仿真軟件計(jì)算、計(jì)算結(jié)果后處理以及最后的編寫(xiě)仿真分析報(bào)告。對(duì)于工程師們來(lái)說(shuō),主要的工作量集中在前后處理中,尤其是前處理工作中有大量的低效的重復(fù)勞動(dòng),例如材料賦予、工況加載、零部件定位等工作,在相同的碰撞仿真實(shí)驗(yàn)中是相同或者相似的,所以我們可以使用二次開(kāi)發(fā)自動(dòng)化腳本來(lái)簡(jiǎn)化這些工作流程,把工程師們從這種枯燥重復(fù)的工作中解放出來(lái),縮短新車型研發(fā)中進(jìn)行碰撞仿真的工時(shí),提高工作效率。
在整車碰撞仿真中,一般有兩個(gè)模型主體,整車模型和用來(lái)進(jìn)行碰撞的剛性壁障,其中整車模型是由多個(gè)零部件組成的,不需要一個(gè)個(gè)查找各個(gè)零部件的坐標(biāo),可以直接將整個(gè)整車模型視為整體,確定位置。在具體實(shí)踐中,可以將整車模型視作一個(gè)立方體,通過(guò)實(shí)際的車輛尺寸,或者直接查找相對(duì)應(yīng)的單元節(jié)點(diǎn)位置信息去計(jì)算整車模型大概尺寸,得出一個(gè)可以完全包裹整車模型的立方體,本文之后會(huì)以整車模型立方體外輪廓代指這個(gè)立方體。具體模型圖像如圖1 所示。
圖1 整車模型與立方體外輪廓Fig.1 Whole vehicle model and cube outer contour
在HyperMesh 軟件中,軟件無(wú)法直接獲得零部件的坐標(biāo)信息,它只會(huì)獲取模型進(jìn)行有限元網(wǎng)格劃分后各個(gè)節(jié)點(diǎn)的坐標(biāo)信息。為了獲得整體零部件的位置坐標(biāo)信息,就要獲取各個(gè)零部件在進(jìn)行有限元網(wǎng)格劃分后各節(jié)點(diǎn)的坐標(biāo)信息。
在HyperMesh 軟件的內(nèi)置函數(shù)中,提供了可以獲取零部件節(jié)點(diǎn)列表的函數(shù)hm_nodelist 與獲取節(jié)點(diǎn)坐標(biāo)信息的函數(shù)hm_nodevalue,通過(guò)使用這兩個(gè)函數(shù),可以獲得模型有限元節(jié)點(diǎn)的坐標(biāo)。在獲得節(jié)點(diǎn)位置坐標(biāo)信息后,下一步就是以此為根據(jù)去確定零部件的位置。
在獲取到有限元模型所有節(jié)點(diǎn)的位置信息后,就需要尋找特征點(diǎn)。這里的特征點(diǎn)指的是能夠反映出整車模型在各個(gè)坐標(biāo)軸方向極值(最大值和最小值)的點(diǎn),最終需要獲得的數(shù)據(jù)就是整車模型在X 軸坐標(biāo)上的最大值和最小值,Y 軸坐標(biāo)上的最大值和最小值,Z 軸坐標(biāo)上的最大值和最小值。由這6 個(gè)數(shù)值確定整車模型立方體外輪廓的4 個(gè)端點(diǎn)位置坐標(biāo),進(jìn)而確定了整車模型的位置坐標(biāo)。
在工程實(shí)踐中,圖1 所示的四方體外輪廓是不存在的,這時(shí)要完成零件定位的自動(dòng)化,則需要計(jì)算機(jī)去計(jì)算車輛四方體4 個(gè)端點(diǎn)的位置。
前文提到過(guò),可以通過(guò)hm_nodelist 與hm_nodevalue 獲得有限元節(jié)點(diǎn)ID 與在大坐標(biāo)系中的位置信息[4],但是如果直接在HyperMesh 輸入這兩個(gè)命令,軟件會(huì)報(bào)錯(cuò)。錯(cuò)誤的原因是有限元節(jié)點(diǎn)并非直接從屬于零部件,也就是component 這一層級(jí)。在對(duì)整車模型進(jìn)行有限元網(wǎng)格劃分后,所生成的各個(gè)有限元節(jié)點(diǎn)其實(shí)是直接從屬于有限元網(wǎng)格這一層,也就是軟件中的element 這一級(jí),所以如果要獲得單元節(jié)點(diǎn),也就是node 的信息,首先需要去查詢element,也就是各個(gè)有限元網(wǎng)格的ID。在這里,HyperMesh 軟件是提供了內(nèi)部命令的,hm_elemlist 這一內(nèi)置函數(shù)可以獲取到模型上所有有限元網(wǎng)格的ID。
獲得了這些數(shù)據(jù)后,需要通過(guò)對(duì)于這些數(shù)據(jù)的計(jì)算,查找整車模型立方體外輪廓的4 個(gè)端點(diǎn)。這里最主要的任務(wù)就是通過(guò)計(jì)算和比較得到整車模型在3 個(gè)方向坐標(biāo)軸的極值。這里使用最簡(jiǎn)單的最大值最小值排序算法即可,不再贅述。
在獲得4 個(gè)端點(diǎn)坐標(biāo),構(gòu)建出整車模型的立方體外輪廓后,由于本文主要探討的是正面碰撞仿真,所以選取整車模型立方體外輪廓在車頭方向的平面中心替代整車模型的位置。在確定整車模型位置后,需要確定剛性壁障的位置,由于是正面碰撞仿真,所以在這里所使用的剛性壁障一般為剛性墻。在有限元仿真中,一般將剛性墻簡(jiǎn)化為圖2 所示狀態(tài)。
圖2 剛性墻簡(jiǎn)化模型Fig.2 Simplified model of rigid wall
同樣,依照前文所述方法,可以得到剛性墻的中心點(diǎn)坐標(biāo),之后就可以使用剛性墻的中心點(diǎn)坐標(biāo)和整車模型立方體外輪廓在車頭方向的平面中心坐標(biāo)進(jìn)行相對(duì)位置比較,再結(jié)合實(shí)驗(yàn)標(biāo)準(zhǔn)中對(duì)于車輛與剛性墻位置的實(shí)驗(yàn)標(biāo)準(zhǔn),將兩者的模型調(diào)整到符合實(shí)驗(yàn)要求,最終的定位工具界面如圖3 所示。
圖3 自動(dòng)定位工具界面Fig.3 Automatic positioning tool interface
有時(shí)碰撞仿真的實(shí)驗(yàn)要求并不是標(biāo)準(zhǔn)的,或者有時(shí)提出了新的實(shí)驗(yàn)標(biāo)準(zhǔn),導(dǎo)致剛性墻與整車模型的位置需要調(diào)整,而定位工具更新沒(méi)有這么及時(shí),需要工程師手動(dòng)進(jìn)行調(diào)整,所以出于這個(gè)需求,自動(dòng)定位工具中提供了一個(gè)便捷的模型移動(dòng)工具。工具界面如圖4 所示。
圖4 便捷移動(dòng)工具界面Fig.4 Convenient mobile tool interface
相較于HyperMesh 自帶的模型移動(dòng)功能translate,該工具可以更加直觀、便捷地控制模型的移動(dòng)。HyperMesh 軟件自帶的translate 在移動(dòng)時(shí)有2 種途徑:一種就是傳統(tǒng)的根據(jù)坐標(biāo)軸移動(dòng),但是需要工程師不停地調(diào)整需要根據(jù)哪根坐標(biāo)軸移動(dòng),操作繁瑣;另一種是需要目標(biāo)位置的3 個(gè)點(diǎn)來(lái)定位移動(dòng)方向與距離。如果目標(biāo)位置確定,且已經(jīng)有了平面存在,這個(gè)途徑操作還不算復(fù)雜,但如果這兩個(gè)條件都不滿足,模型移動(dòng)就會(huì)很復(fù)雜,而這個(gè)便捷移動(dòng)工具就很好地解決了這個(gè)問(wèn)題。
本文主要論述了通過(guò)二次開(kāi)發(fā)技術(shù)對(duì)碰撞仿真進(jìn)行自動(dòng)化的可行性與實(shí)際效果,在實(shí)際的工程實(shí)踐中,通過(guò)對(duì)正面碰撞仿真模型定位的自動(dòng)化技術(shù),能極大地提高碰撞仿真前處理的效率,為整個(gè)新車設(shè)計(jì)階段節(jié)省大量的工時(shí)。對(duì)于車企來(lái)說(shuō),就相當(dāng)于縮減了不少的時(shí)間與經(jīng)濟(jì)成本,提高了新車型的設(shè)計(jì)性能與換代周期,從而能夠更好地?fù)屨际袌?chǎng),創(chuàng)造更多的經(jīng)濟(jì)效益與更好的市場(chǎng)口碑。