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