曾 鋒
(廈門(mén)金龍旅行車(chē)有限公司,福建廈門(mén) 361006)
隨著客車(chē)產(chǎn)業(yè)迅速發(fā)展,設(shè)計(jì)模型越來(lái)越精細(xì)化,對(duì)仿真分析效率的要求也越來(lái)越高[1]。加上傳統(tǒng)客車(chē)行業(yè)本身具有產(chǎn)品研發(fā)周期較短的特點(diǎn),因此盡可能縮短CAE分析所需的時(shí)間從而加快項(xiàng)目進(jìn)度,是一項(xiàng)非常有意義的工作。在整個(gè)CAE分析過(guò)程中,前處理工作大約占據(jù)80%的工作量,不僅耗時(shí)耗力,還容易出現(xiàn)人為的錯(cuò)誤和遺漏。傳統(tǒng)的CAE仿真前處理模式已逐漸不能滿(mǎn)足實(shí)際工作的需求,因此需要引入流程自動(dòng)化的概念,利用二次開(kāi)發(fā)手段提升CAE 前處理的效率和精度[2-6]。
Tcl/Tk是由John K.Ousterhout于1988年開(kāi)始開(kāi)發(fā)的解釋型、可拓展的腳本語(yǔ)言[7]。Tcl語(yǔ)言簡(jiǎn)明、高效、易拓展,常用于快速原型開(kāi)發(fā)、腳本編輯、GUI和測(cè)試等方面[8];Tk是使用最廣泛的Tcl拓展,為用戶(hù)提供簡(jiǎn)潔豐富的圖形功能,讓用戶(hù)可以輕松地創(chuàng)建簡(jiǎn)單的圖形界面。HyperMesh是應(yīng)用廣泛的有限元前處理軟件,其提供了基于Tcl/Tk的API,與Tcl/Tk是無(wú)縫銜接的,讓用戶(hù)可以方便地進(jìn)行二次開(kāi)發(fā),從而根據(jù)自身工作需求開(kāi)發(fā)出各種功能,實(shí)現(xiàn)將繁瑣、重復(fù)的操作一次性完成并保持高度準(zhǔn)確性。筆者利用Tcl/Tk語(yǔ)言開(kāi)發(fā)CAE前處理小工具,主要在 HyperMesh軟件中實(shí)現(xiàn)3個(gè)功能:模型樹(shù)管理、自動(dòng)賦予材料屬性、自動(dòng)創(chuàng)建質(zhì)量單元。
客車(chē)白車(chē)身由許多矩形管、槽形件和弧形件組成。根據(jù)我司企業(yè)標(biāo)準(zhǔn),在利用HyperMesh進(jìn)行白車(chē)身有限元前處理時(shí),每一根型材都應(yīng)當(dāng)存放在一個(gè)獨(dú)立的component里面,并且按照規(guī)定的格式對(duì)其進(jìn)行命名和分類(lèi),從而方便有限元模型的查看和管理。對(duì)于CAE工程師來(lái)說(shuō),對(duì)上千根型材進(jìn)行規(guī)范化的分類(lèi)管理無(wú)疑是巨大的工作量。這項(xiàng)繁瑣的工作可通過(guò)二次開(kāi)發(fā)的模型樹(shù)管理工具一鍵自動(dòng)完成[9]。
具體來(lái)說(shuō),Tcl/Tk語(yǔ)言通過(guò)完成以下步驟來(lái)實(shí)現(xiàn)模型管理:讀取某根型材的幾何厚度信息;讀取該型材的材料信息;判斷該型材所屬的子系統(tǒng)(如前圍總成等);按照“總成號(hào)_組件編號(hào)_厚度_材料”的標(biāo)準(zhǔn)格式對(duì)其進(jìn)行重命名及歸類(lèi)。
其中,讀取厚度信息主要通過(guò) hm_getgeometricthinsolidinfo函數(shù)來(lái)實(shí)現(xiàn)。該函數(shù)是HyperMesh軟件提供的API,其功能是返回指定實(shí)體的厚度及ID號(hào)信息。材料參數(shù)則是利用tk_getOpenFile命令來(lái)選取BOM表,并讀入內(nèi)部的材料信息并寫(xiě)入變量中。編好主程序后,新建mac文件,并利用*createbutton命令創(chuàng)建功能鍵,則可在HyperMesh界面下使用該功能鍵直接調(diào)用主程序。
以往人們開(kāi)發(fā)的模型樹(shù)管理工具大多是對(duì)已賦予材料和屬性的component進(jìn)行重命名及分類(lèi),本文二次開(kāi)發(fā)工具的特點(diǎn)在于直接讀取幾何的厚度和BOM表,更加方便快捷,原本需要3~4天的模型樹(shù)管理工作可縮短至幾秒鐘內(nèi)完成,大大節(jié)省了時(shí)間。
在完成模型樹(shù)的自動(dòng)化管理后,每個(gè)component都有統(tǒng)一格式的名稱(chēng),名稱(chēng)中包含材料和厚度等信息,在此基礎(chǔ)上可以進(jìn)行材料屬性的批量自動(dòng)化創(chuàng)建和更新。創(chuàng)建材料和屬性的具體Tcl/Tk程序代碼可以通過(guò)查詢(xún)HyperMesh的cmf文件來(lái)得到。用戶(hù)在HyperMesh完成某步操作后,cmf文件都保存下了相應(yīng)的命令流,其中的命令函數(shù)可以與HyperMesh中的數(shù)據(jù)庫(kù)進(jìn)行通訊[1]。
如圖1所示,將創(chuàng)建材料的cmf命令包裝成函數(shù)的形式:proc matCreate{name E Nu Rho},括號(hào)內(nèi)的4個(gè)變量分別表示材料的名稱(chēng)、彈性模量、泊松比和密度,這樣就可以方便地調(diào)用該函數(shù)。同理,將創(chuàng)建屬性的命令也寫(xiě)成函數(shù)的形式:proc propCreate{material thickness}。其中的材料名和厚度均可通過(guò)component名稱(chēng)中包含的信息來(lái)獲得。
圖1 材料屬性自動(dòng)管理工具開(kāi)發(fā)邏輯圖
通過(guò)上述Tcl程序,可以為每個(gè)component自動(dòng)創(chuàng)建和更新相應(yīng)的材料和屬性。無(wú)論進(jìn)行何種仿真分析項(xiàng)目,材料屬性的精確設(shè)置對(duì)分析結(jié)果至關(guān)重要。通過(guò)二次開(kāi)發(fā)工具完成材料屬性的設(shè)置,避免了其中可能出現(xiàn)的人為錯(cuò)誤,提高了模型精準(zhǔn)度;同時(shí)極大地簡(jiǎn)化了操作步驟,顯著地提升了工作效率。
在客車(chē)有限元前處理過(guò)程中,某些零部件或者人員(如發(fā)動(dòng)機(jī)、燃油箱、乘客等)無(wú)需考慮其自身應(yīng)力或者變形的情況,可以采用賦予質(zhì)量單元的方式在整車(chē)模型中進(jìn)行簡(jiǎn)化模擬。通常設(shè)計(jì)部門(mén)會(huì)提供配重參數(shù),如表1所示。
表1 配重參數(shù)表
通過(guò)Tcl/Tk語(yǔ)言,HyperMesh軟件可以自動(dòng)讀取表格中每行的參數(shù),并在各坐標(biāo)點(diǎn)上快速創(chuàng)建相應(yīng)的質(zhì)量單元。具體方法為:
1)讀取表格中各質(zhì)心點(diǎn)的x、y、z坐標(biāo)以及質(zhì)量信息。
2)利用*createnode命令在各坐標(biāo)位置創(chuàng)建節(jié)點(diǎn)。
3)利用*createmark nodes命令選取各個(gè)節(jié)點(diǎn)并放置于指定的mark ID中。
4)利用*masselement命令在指定mark ID的節(jié)點(diǎn)上創(chuàng)建集中質(zhì)量單元。
該工具可以幫助CAE工程師快速、批量化地創(chuàng)建質(zhì)量單元,只要有配重參數(shù)表,即可在HyperMesh中全部一鍵生成,避免了大量的重復(fù)勞動(dòng)。實(shí)踐證明,利用自動(dòng)創(chuàng)建質(zhì)量單元工具,每輛車(chē)的CAE分析可以節(jié)省一名成熟CAE工程師1~2天的時(shí)間。
本文主要介紹了利用Tcl/Tk語(yǔ)言開(kāi)發(fā)的HyperMesh前處理自動(dòng)化小工具。其實(shí)現(xiàn)的某些定制化功能主要是考慮到我司CAE團(tuán)隊(duì)自身的特定需求,對(duì)客車(chē)行業(yè)也具有一些通用性的指導(dǎo)意義??蛙?chē)有限元建模中一些相似、重復(fù)、繁瑣的操作,可以利用二次開(kāi)發(fā)手段很好地解決,從而達(dá)到簡(jiǎn)化流程、規(guī)范操作的目的。