(一)自己也能開發(fā)ABAQUS復(fù)合材料層合板自動(dòng)建模工具?
以前做材料本構(gòu)和細(xì)觀建模的時(shí)候,第一個(gè)攔路虎就是建模。尤其是機(jī)織編織類的材料,需要搞懂一系列織造參數(shù),才可能完成三維模型創(chuàng)建。這還不算完,搞完模型還要繼續(xù)弄網(wǎng)格,一旦需要研究幾何參數(shù)變化規(guī)律,上述的過程又得整一遍。
即便后面我已經(jīng)很熟練了,這個(gè)過程仍然需要花費(fèi)很多時(shí)間。那個(gè)時(shí)候我就在想,以后要是能自己搞一個(gè)參數(shù)化建模工具就好了。
后來做項(xiàng)目多了,發(fā)現(xiàn)不僅是細(xì)觀結(jié)構(gòu),很多宏觀上的部件,比如加筋壁板。在結(jié)構(gòu)上設(shè)計(jì)迭代中,也需要一個(gè)自動(dòng)建模工具,最好是一步搞出網(wǎng)格然后直接可以導(dǎo)入ABAQUS中使用,這樣結(jié)構(gòu)-力學(xué)評(píng)估-優(yōu)化的效率將大大提高。
然而,對(duì)于復(fù)合材料而言,還面臨一個(gè)問題就是鋪層定義。尤其我們做UMAT/VUMAT,需要使用實(shí)體網(wǎng)格,這時(shí)候ABAQUS的自帶的鋪層模塊就沒法用了。鋪層一多,搞鋪層定義就需要花時(shí)間。
在這個(gè)執(zhí)念下,后來我編寫了很多參數(shù)化建模的小工具在項(xiàng)目里使用。
本期我們就以最簡(jiǎn)單的層合板為例,介紹一下自己搞自動(dòng)建模工具的思路,本次開發(fā)采用MATLAB語言。
了解數(shù)據(jù)結(jié)構(gòu)
我們首先需要了解兩個(gè)數(shù)據(jù)結(jié)構(gòu)。一是ABAQUS inp文件的數(shù)據(jù)格式,這是我們的工具需要輸出的。二是,了解ABAQUS有限元模型的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單講就是搞清楚網(wǎng)格這個(gè)東西在ABAQUS中是如何表達(dá)的。
隨手打開一個(gè)ABAQUS的inp文件,我們可以看到它主要包含如下部分:
1 Part
1.1 Node
1.2 Element
1.3 Nset
1.4 Elset
2 ASSEMBLY
2.1 Instance
2.2 Nset
2.3 Elset
3 MATERIALS
4 STEP
5 BOUNDARY CONDITIONS
6 OUTPUT REQUESTS
我們需要重點(diǎn)關(guān)注Part 和ASSEMBLY,前者負(fù)責(zé)創(chuàng)建網(wǎng)格,后者則關(guān)系到材料局部坐標(biāo)系的賦予,即鋪層定義的實(shí)現(xiàn)。
所有的有限元網(wǎng)格都是由節(jié)點(diǎn)坐標(biāo)信息(Node)和單元(Element)信息構(gòu)成。ABAQUS自然也不例外。它主要在Part部分。ABAQUS對(duì)于不同的網(wǎng)格,在描述單元內(nèi)節(jié)點(diǎn)排序的時(shí)候是有專門規(guī)律的,如果搞錯(cuò)了生成的單元就是負(fù)體積。
開發(fā)算法
對(duì)于層合板而言,我們知道它是一層一層的,像魔方一樣。
1. 基本思路
整個(gè)建模過程的基本思路是從二維平面網(wǎng)格出發(fā),通過坐標(biāo)擴(kuò)展生成三維實(shí)體網(wǎng)格,然后為每一層單元指定相應(yīng)的材料方向,最后按照ABAQUS的inp文件格式要求組織輸出。
首先需要明確層合板的基本幾何參數(shù),包括板的長(zhǎng)度、寬度、單層厚度以及總層數(shù)。這些參數(shù)構(gòu)成了后續(xù)網(wǎng)格生成的基礎(chǔ)。
在本方法中,用戶可以靈活設(shè)置這些尺寸參數(shù),同時(shí)還可以指定每一層的鋪層角度,形成一個(gè)角度向量。鋪層角度是層合板設(shè)計(jì)的核心參數(shù),不同的角度組合會(huì)帶來截然不同的力學(xué)性能。材料的彈性常數(shù)也需要在開始階段給定,這些參數(shù)將在后續(xù)的材料定義部分被使用。
2. 二維平面網(wǎng)格創(chuàng)建
二維平面網(wǎng)格的生成是整個(gè)建模過程的第一步。這一步的目標(biāo)是在層合板的中面上建立規(guī)則的四邊形網(wǎng)格劃分。網(wǎng)格劃分采用結(jié)構(gòu)化網(wǎng)格的方式,通過指定網(wǎng)格密度參數(shù)來控制單元數(shù)量。
具體實(shí)現(xiàn)時(shí):
- 首先在板的一條邊界上按照均勻間距生成一列節(jié)點(diǎn),這些節(jié)點(diǎn)的坐標(biāo)由板的寬度和網(wǎng)格密度決定。
- 然后通過坐標(biāo)平移的方式,沿著板的長(zhǎng)度方向復(fù)制這列節(jié)點(diǎn),生成整個(gè)平面上的節(jié)點(diǎn)矩陣。
- 每個(gè)節(jié)點(diǎn)都被賦予一個(gè)唯一的編號(hào),這個(gè)編號(hào)系統(tǒng)在后續(xù)的三維擴(kuò)展和單元定義中將被延續(xù)使用。
- 節(jié)點(diǎn)坐標(biāo)的生成采用了矩陣運(yùn)算的方式,利用MATLAB的向量化特性提高了計(jì)算效率。
在節(jié)點(diǎn)生成之后,需要根據(jù)節(jié)點(diǎn)的拓?fù)潢P(guān)系定義單元連接。
每個(gè)四邊形單元由四個(gè)節(jié)點(diǎn)按照逆時(shí)針順序定義。單元的生成同樣采用分列處理的策略,先定義第一列的單元連接關(guān)系,然后通過節(jié)點(diǎn)編號(hào)的規(guī)律性偏移生成其他列的單元。
這種方法保證了單元編號(hào)的連續(xù)性和規(guī)律性,為后續(xù)按層分配單元提供了便利。二維網(wǎng)格生成完成后,可以通過繪圖功能將網(wǎng)格可視化,檢查網(wǎng)格質(zhì)量和節(jié)點(diǎn)連接的正確性。
3. 三維平面網(wǎng)格創(chuàng)建
三維實(shí)體網(wǎng)格的生成是在二維平面網(wǎng)格的基礎(chǔ)上,沿著厚度方向進(jìn)行坐標(biāo)擴(kuò)展實(shí)現(xiàn)的。
層合板的每一層都需要上下兩個(gè)節(jié)點(diǎn)面,因此對(duì)于N層的層合板,需要生成N加1個(gè)節(jié)點(diǎn)層。三維節(jié)點(diǎn)的生成通過在二維節(jié)點(diǎn)坐標(biāo)上增加第三維坐標(biāo)分量來實(shí)現(xiàn),厚度方向的坐標(biāo)值由單層厚度和當(dāng)前層數(shù)決定。所有節(jié)點(diǎn)按照從下到上的順序依次編號(hào),這樣的編號(hào)規(guī)則使得同一豎直線上的節(jié)點(diǎn)編號(hào)具有固定的間隔,這個(gè)間隔等于單層平面節(jié)點(diǎn)的總數(shù)。這種規(guī)律性為后續(xù)單元定義中的節(jié)點(diǎn)檢索提供了極大便利。
三維單元的定義相比二維情況更為復(fù)雜,每個(gè)六面體單元需要八個(gè)節(jié)點(diǎn)來定義。這八個(gè)節(jié)點(diǎn)分為上下兩層,每層四個(gè)節(jié)點(diǎn),節(jié)點(diǎn)的排列順序必須符合ABAQUS對(duì)C3D8R單元類型的要求。單元的生成采用了逐層處理的策略,對(duì)于每一層材料,將二維網(wǎng)格信息復(fù)制并擴(kuò)展為三維單元信息。具體做法是,對(duì)于第i層,其下表面的四個(gè)節(jié)點(diǎn)來自第i層的二維網(wǎng)格節(jié)點(diǎn),而上表面的四個(gè)節(jié)點(diǎn)來自第i加1層的二維網(wǎng)格節(jié)點(diǎn)。通過節(jié)點(diǎn)編號(hào)的系統(tǒng)性偏移,可以高效地生成所有層的單元連接關(guān)系。生成的單元信息以矩陣形式存儲(chǔ),每一行代表一個(gè)單元,包含該單元的八個(gè)節(jié)點(diǎn)編號(hào)。
4. 材料方向的定義
材料方向的定義是層合板建模的核心內(nèi)容。每一層材料都有自己的纖維方向,這個(gè)方向通過局部坐標(biāo)系來描述。
在ABAQUS中,材料方向通過Orientation命令來定義,需要指定局部坐標(biāo)系的兩個(gè)基向量。
本方法采用的做法是,根據(jù)用戶給定的鋪層角度,計(jì)算該角度下的局部坐標(biāo)系基向量。第一個(gè)基向量沿著纖維方向,其在整體坐標(biāo)系中的分量可以通過角度的三角函數(shù)計(jì)算得到。第二個(gè)基向量垂直于纖維方向,在平面內(nèi)與第一個(gè)基向量正交。對(duì)于每一層,都生成一個(gè)獨(dú)立的Orientation定義,并賦予唯一的名稱。這些Orientation定義將在后續(xù)的Section定義中被引用。
5. 集合的定義
單元集合的定義是為了將屬于同一層的所有單元?dú)w為一組,以便對(duì)這一組單元統(tǒng)一指定材料方向和截面屬性。
由于單元是按層依次生成的,每層的單元編號(hào)是連續(xù)的,因此可以通過單元編號(hào)的范圍來定義每層的單元集合。
ABAQUS支持使用generate關(guān)鍵字來定義連續(xù)編號(hào)的單元集合,只需要指定起始編號(hào)、終止編號(hào)和步長(zhǎng)即可。
對(duì)于N層的層合板,會(huì)生成N個(gè)單元集合,每個(gè)集合對(duì)應(yīng)一層材料。這種按層分組的方式為后續(xù)的材料屬性指定提供了清晰的邏輯結(jié)構(gòu)。
6. 截面屬性的定義
截面屬性的定義將材料屬性、材料方向和單元集合關(guān)聯(lián)起來。
對(duì)于每一層,通過Solid Section命令定義該層的截面屬性,命令中需要指定該截面應(yīng)用的單元集合、使用的材料方向以及材料名稱。由于本方法假設(shè)所有層使用相同的材料,只是方向不同,因此所有Section定義都引用同一個(gè)材料定義,但引用不同的Orientation定義。這樣的設(shè)置準(zhǔn)確反映了層合板的真實(shí)構(gòu)造:材料相同但鋪設(shè)方向各異。
材料屬性的定義包括材料的彈性常數(shù)。對(duì)于正交各向異性材料,需要定義九個(gè)獨(dú)立的彈性常數(shù),包括三個(gè)方向的楊氏模量、三個(gè)泊松比和三個(gè)剪切模量。這些參數(shù)按照ABAQUS規(guī)定的順序排列輸出。材料定義部分相對(duì)獨(dú)立,可以根據(jù)實(shí)際材料的試驗(yàn)數(shù)據(jù)進(jìn)行修改。本方法中材料參數(shù)作為輸入變量,用戶可以根據(jù)實(shí)際使用的材料體系進(jìn)行調(diào)整。
7. inp的生成定義
inp文件的生成采用了模塊化的策略。整個(gè)inp文件被分解為多個(gè)模塊,包括文件頭、節(jié)點(diǎn)定義、單元定義、材料方向定義、裝配定義、材料屬性定義和分析步定義等。
每個(gè)模塊的內(nèi)容被分別寫入臨時(shí)文本文件,然后按照ABAQUS要求的順序?qū)⑦@些文件內(nèi)容合并,生成最終的inp文件。這種模塊化方法的優(yōu)點(diǎn)是結(jié)構(gòu)清晰,便于調(diào)試和修改。如果需要修改某一部分內(nèi)容,只需要修改對(duì)應(yīng)模塊的生成代碼即可,不影響其他部分。
效果
我們自己開發(fā)一個(gè)渲染程序,用于查看鋪層分布。
將生成的inp文件導(dǎo)入到ABAQUS中,可以看出鋪層定義正確:
歡迎關(guān)注“靜界有限元”
工作室面向在校學(xué)生、科研院所老師提供結(jié)構(gòu)有限元仿真(含二次開發(fā))、流體力學(xué)仿真、算法開發(fā)、軟件開發(fā)服務(wù)。
最后,有相關(guān)需求歡迎通過公眾號(hào)聯(lián)系我們。
工眾浩:靜界有限元
工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















