0 前言
基于二次開發,將有限元建模過程抽取出來,編寫成規范化的程序,可以極大地提高建模的效率,節省人力成本,縮短開發周期,同時減少乃至避免模型錯誤,提高模型的規范化以及極大地便于后期模型的維護、更新以及優化。本文以在HyperMesh的前處理環境下,基于TCL/TK,討論前處理建模二次開發的可能性以及優越性。
1 基于TCL/TK的手機整機跌落分析的二次開發
1.1模型描述
一部手機的模型規模大致在200-300個部件之間(有限元模型模擬要求),完成整機的模型網格化后,就需要通過BOM表建立部件的材料、屬性以及邊界條件。在HypeMesh(Abaqus Template)中,部件(Component)、屬性(Property)、材料(Material)三者的連接關系如下:
圖1 部件、屬性與材料的連接關系
在整機跌落分析中,我們需要建立的邊界條件是,在規定的特定的規范下,例如1.5m高度自由跌落,通過跌落高度,計算出整機快要接觸地面時的初始速度。計算公式為:
公式一 手機跌落分析初始速度計算公式
此外,地面簡化為剛體,并且約束地面所有自由度。
1.2二次開發思路
首先,我們需要建立標準的材料庫,以便于我們在后期自動調用。
通過對于跌落模型的分析,我們可以通過BOM表中的材料與部件的對應關系,通過編程,針對模型中的每一個部件去BOM表中查找對應的材料信息,然后循環調用,導入我們模型中所需要的材料信息以及厚度信息。然后通過單元類型綜合厚度信息,建立與之對應的屬性并且將屬性賦予部件。
實際上,根據分析和經驗,建立屬性和導入材料是在這個過程中是最繁重的工作內容,通過這樣一個循環調用的過程,則可以在無人干預的情況下,快速自動并且無差錯的完成這項耗時耗力的工作。
1.3代碼實現
代碼實現分為兩個部分:GUI部分以及過程實現部分。
其中,GUI部分如下圖所示:
圖2 GUI部分
通過上圖,將整個的整機跌落建模過程固化的一個面板中,可以極大地提高建模效率,簡化操作。
1.4建模示例
以某整機跌落分析為例,模型網格化后模型情況如下圖所示:
圖3 手機跌落分析有限元模型
其簡單的BOM表如下:
圖4 手機零部件BOM表
材料庫如下圖所示:
圖5 材料庫清單
通過以上二次開發插件完成后的模型如下圖所示:
圖6 通過TCL二次開發后的界面
1.5小結
通過以上建模示例可以看出,通過二次開發插件建模,在極大地提高建模效率的同時,所建立出來的模型是標準化的、規劃化的,這種方法建模,可以完全解決不同的工程師在建模習慣上的差異性。
2 二次開發在汽車整車結構有限元模型中的應用
通過以上二次開發在手機跌落建模過程中的應用,其優越性是顯而易見的。不言自明的是,同樣的,二次開發在汽車整車有限元模型的建立過程中也大有用武之地。
筆者在工作過程中,已經將汽車開閉件的抗凹性分析流程化。抗凹分析的困難性在于測試點比較的多,當你建好某一個測試點的模型時,在做其他的測試點則需要手動去移動壓頭,重新建立局部坐標系,更新載荷方向。如果一個開閉件的測試點達到七八個乃至十幾個,那么,四門兩蓋總共加起來就有五六十個測試點需要單獨建模,工作量可想而知。同時,由于是隱式分析(Abaqus),不同的建模差異,其模型的收斂性也是一個比較大的考驗。通過二次開發,可以很方便的解決上述問題。
其二次開發思路與上述手機整機跌落類似,上述建立屬性和材料信息的代碼可以再這里重用。其他的部分,同樣也需要建立標準的壓頭庫,通過代碼編寫,自動在壓頭庫中選擇需要的壓頭并導入到現有模型中,然后只需要在目標測試點出選擇關鍵的一個單元,插件即可以自動完成包括重新定位、局部坐標系、接觸關系以及載荷加載、分析步的建立,根本不需要去手動干預。
這樣建立出來的模型,除了測試點不同外,模型的其他部分完全相同,通過調節好壓頭的接觸關系,所建立出來的模型在收斂性上也是非常好的。
二次開發在汽車建模中的另一個應用是在懸架建模中。由于懸架的結構比較的復雜,模型中包含很多的連接單元(connector單元),如彈簧單元、減震器、導向單元等等,連接單元的建立比較復雜,并且類型眾多,同時很多類型的連接單元都需要建立局部坐標系。如此復雜的模型,很容易建出差異巨大的模型和收斂性不好甚至的結果不準確的模型。所以,通過將懸架的建模過程流程化是很有必要的。
在懸架的二次開發方面,只需要知道一些必要的硬點信息,同時將連接單元的類型信息賦予到節點編號當中,然后通過代碼,解析出節點編號中所攜帶的信息,就可以自動化完成懸架其他所有的建模過程。
3 二次開發在其他可能的應用場景中的應用
當然,二次開發的應用場景絕不僅僅只限于以上過程當中,二次開發在提高工程師的建模效率和準確率上是有不可替代的地位的。例如,在用RigidBody做螺栓連接時,可能需要手動去一個一個選擇螺栓孔上的節點,通過簡單的二次開發,可以快速的只去選擇螺栓孔上的單一節點就完成整個RigidBody的建立。其思路是通過所選擇的螺栓孔上的節點信息,得到螺栓孔的自由邊,然后通過自由邊反過來得到螺栓孔上所有的節點,建立RigidBody;在比如對于CAD數據的處理,由于設計部門過來的幾何數據可能每個部件的名稱比較的凌亂,通過二次開發,去解析部件所在的Assembly,將部件的名稱修改為正確的名稱;另一個例子在整個汽車碰撞模型與結構剛強度模型的轉化上。由于整車碰撞模型與結構剛強度所使用的求解器不同或者其建模要求存在差異,所以在一些建模方法上也就存在相當大的差異,可以通過二次開發的方法,很方便的將碰撞模型的建模轉化為剛強度分析中所要求的建模方法。比如對于白車身RigidBody的轉化,可能在碰撞模型當中,RigidBody的independent node是建立在螺栓孔上的節點,而剛強度中RigidBody的independent node則要求建立螺栓孔的中心處,如果在拿到碰撞模型中的白車身部分的時候,需要轉化RigidBody。而白車身的螺栓連接何其多,大約有上千個,如果手動的一個一個去手動重建,其工作量可想而知,同時非常容易就會漏掉一些螺栓連接。通過二次開發可以非常快捷并且毫不遺漏的轉化這些RigidBody。
4 總結
通過以上種種的簡單的討論,我們可以看出來二次開發對于有限元模型建模的重要性。它不僅可以極大地提高工程師的工作效率,將工程師從繁重單調的建模工作中解放出來,減少工程建模出錯的概率。另一個更加重要的好處就是,將建模的過程流程化后,所建立出來的模型不會因為不同的工程師、不同的項目、不同的時間而存在很大的差異,便于我們對于模型進行排錯、調試、維護以及更新。同時,在開發的不同階段,設計部門可能會對部件結構進行優化改進,而通過二次開發出來的模型更加有利于工程師對于之前自己所做模型的可讀性。
當然,二次開發是一個很大的概念,這里只是在筆者常用的工作環境下加以了簡單且粗略的討論。比如在其他的很多領域也會用到二次開發,比如Abaqus中利用二次開發對于模型結果進行后處理,通過二次開發建立自己所需要的本構模型等等。
實際上,二次開發都是在一定的平臺上實現的,它是軟件開發商在其自身的軟件功能上,給用戶提供的一個很好的擴展和定制化功能,絕大部分的軟件都會提供類似的擴展接口,比如Abaqus提供的Python接口,用戶子程序需要用到的Fortran接口,Ansa提供的C接口等等,其目的就是為了更好的為工程師的工作提供更大的想象空間以及便利性。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/