劉助春,張 丹*
(湖南汽車工程職業學院,湖南 株洲 412001)
目前,CAE 技術被國內外學術界和眾多企業采用,模擬產品在特定工況下的運行情況,分析產品結構的性能,利用數學優化算法對產品結構進行優化,從而提高產品性能,縮短產品開發周期。然而,雖然CAE 技術的應用在一定程度上縮短了產品開發周期,降低了開發成本,但目前CAE 技術的應用主要還是基于人工使用計算機重復實際測試過程,每次分析都需要一個研究人員來做,迭代有限元建模成為一個繁瑣且耗時的過程,實際產品的設計往往需要重復有限元分析,完全手動的建模分析費時費力,結構優化效率低下。在有限元建模分析過程中,引入CAE 參數化設計思想和批處理技術,可解決結構優化中迭代建模帶來的人工迭代工作量大的問題,大幅度提高結構優化效率。
參考文獻[1]開發了基于ANSYS 二次開發功能的電梯設計參數化有限元分析軟件。參考文獻[2]以ANSYS 為軟件開發平臺,利用UG 幾何完成CST 部件有限元模塊的開發,解決了非標螺桿裝置部件的有限元模型無法自動創建設備吸收線切割能量的問題。參考文獻[3]介紹了材料成形計算模擬中的參數化有限元方法。參考文獻[4]介紹了基于幾何建模的有限元參數化建模,基于滿足形狀優化問題的應用需求,提出了一種有限元模型參數化建模方法。參考文獻[5]進行了CAD 軟件的二次開發,提出了完整的吸收建模模型,模型除了傳統的幾何模型外,還包含材料、等級等模型結構信息,刪除了模型無關的設計信息和其他信息。參考文獻[6]開發了一種基于Solidworks 的橋式起重機參數化設計軟件,解決工程圖自動生成過程中位置偏移、焊縫符號缺失等問題。文獻[7]開發了一種可用于吸能導向結構多目標優化的參數化建模優化軟件。文獻[8]在合理簡化刀架系統和盤面主次結構的基礎上,選取51 個結構特征設置參量將板材有限元模型與滾齒刀盤系統相結合,開發了基于ANSYS 使用的APDL 語言的TBM 切削系統有限元參數建模程序。
目前實現有限元分析過程參數化主要有兩種方法:
一種是使用參數化編程語言開發有限元分析軟件,通過后臺編程直接建立參數化有限元模型,其具體流程見圖1。
另一種是在有限元分析軟件中將預處理和后處理過程以“指令流”的形式進行編程,以二次開發有限元軟件。但是,雖然無論是基于有限元軟件的二次開發,還是直接使用CAE 軟件提供的參數化設計語言建立有限元模型,都可以實現有限元建模的參數化和結構優化的效率的提升,但是兩種方法各有利弊。
通過參數化編程語言創建參數化有限元模型,并完成其他有限元分析步驟,實現參數化建模分析的方法,不再需要開發專門的程序來控制不同程序的接口交換和數據交互,過程更加簡潔,但是由于該方法中的有限元模型是直接通過編程語言定義節點和元素、前后處理過程,而不是在軟件中建立幾何模型,然后將其劃分為網格構建有限元模型。因此,很難構建復雜的3D 模型,這種方法也對研究人員的編程水平提出了更高的要求,要求研究人員直接使用參數化設計語言編輯相關的有限元預處理指令,而不是修改“指令流”進行編程,需要有限元軟件開發的工作背景和對網格生成的深入了解,這導致該方法的應用人群較少,現在越來越多的學者通過有限元軟件的二次開發來進行參數化建模。
本研究綜合采納現有的有限元參數化建模方法的優點,摒棄其缺點,利用CAD 軟件建立幾何模型,然后利用CAE 軟件進行網格分割等預處理,完成第一個原始有限元模型的構建。有限元模型的批量化構建是通過用Fortran 語言編寫的外部程序根據給出的實驗參數直接修改有限元模型文件中相應節點的坐標來實現的,整體流程見圖2。該方法可以充分利用CAD 軟件和CAE 軟件自身在三維建模與有限元模型處理上的優勢,同時通過在參數化建模過程中直接由外部程序修改有限元模型文件,免去了重復調用CAD和CAE 軟件的麻煩,因此,不會出現不同軟件系統因需要進行數據交互而出現的軟件兼容性問題。
3D 模型的尺寸變化在微觀上表現為線條或表面的移動,在CAD 軟件中調整模型大小也是通過使用特定平面作為參考平面移動由點組成的其他線和曲面來完成的。由于移動一條線或曲面本質上是移動公共坐標中的一些節點(x、y 和z 坐標中的一個或兩個坐標相同),因此在調整有限元模型時,既可以先使用CAD 軟件修改模型的大小,也可以直接修改元模型文件中有限的模型節點信息。首先需要讀取節點的坐標信息,通過節點的坐標來識別和控制節點,選擇參考點的坐標,找出坐標變換值之間關系和變換值。利用曲面或直線上的節點有共同坐標的性質,同一曲面或直線上的節點受共同坐標控制,坐標變換值和模型大小根據節點之間的差異轉換值,這樣就不必使用節點編號來單獨控制每個節點的變化,從而可以通過修改節點的坐標來修改模型大小。
圖3 為簡支梁有限元模型圖,模型長寬高均為400 mm×200 mm×200 mm,模型長寬高減少10 mm(長寬高換算值為-10 mm)。首先,我們通過選擇基點坐標為(200,-100,-250)并變換模型的x,y,z 坐標來改變模型的大小。
模型長度(Y 方向):模型長度在Y 方向網格數為20,如果網格數量保持原樣,整體長度減少10 mm,則每個網格減少10/20=0.5 mm。在y 方向移動的距離L(一個節點的y 坐標必須增加或減少L),其他節點變化的距離不同,與到基點的距離有關。
式中:Li是節點i 必須經過的距離;yi是節點i 的y 坐標。新節點坐標等于原節點坐標減去節點行進距離L,等于原節點坐標加上節點變換值。
程序對模型節點坐標進行變換后,將修改后的有限元模型文件導入有限元軟件,觀察尺寸,觀察后變換后的模型尺寸為390×190×190 mm,說明模型已修改,并通過程序使節點坐標成功地達到了模型長、寬、高減少10 mm 的目的,表明可以通過變換模型節點的坐標來改變模型的大小。
將節點在模型長、寬、高三個方向上的運動規律排列,得到節點坐標變換量與尺寸變換值的關系,得到常用的坐標變換方程,如下:
式中:c 為尺寸變換值;l 為待移動節點與參考點在移動方向上的最大距離,節點原坐標為x原,節點新坐標為x新。基點坐標為x基。
變換原理見圖4。圖中a 型的網孔尺寸為10 mm,全長為100 mm。以最左邊的節點A 為參考點,設置尺寸參數c 為10 mm,按照上式變換模型a 中除基點外的其他節點坐標,則其他節點依次向右移動1、2.....10 mm,形成新的模型b,新模型b 的每個網格尺寸為11 mm,總長度為110 mm。
在子程序中編輯變換公式,作為本參數化建模方法的坐標變換基礎工具。根據具體模型情況,可以根據需要調用進主程序進行參數化建模。由于不同的模型有不同的變換尺寸,輸入子程序的基點坐標、需變化節點移動坐標、移動節點到基點的最大距離、尺寸參數都是不同的。
根據模型的實際尺寸參數修改節點坐標后,模型更新。此時只需按照原件的格式和順序依次填寫公共預處理信息,修改節點坐標信息,建立新的有限元模型文件new.dyn,完成模型修改。最后將該模塊進行封裝,作為子程序由進行優化的主程序根據實驗安排表進行周期性調用,根據實驗模型自動更新有限元模型,實現有限元模型的參數化優化。
在本研究中,筆者通過結合當前兩種主要參數化建模方法的優點并考慮到每種方法的缺點,提出了一種新的參數化建模方法。與參數化設計語言構建參數化有限元模型相比,該方法的建模過程更容易實現,可以處理更復雜的模型。對于開發人員在有限元方面的理論至少要求也相對較低,開發者只需學習一門適用于大規模數值運算處理的面向過程的編程語言,即可將本方法應用于相關產品的參數化有限元建模軟件的開發,具有較為廣泛的應用范圍。