ANSYS子模型分析的一般步驟-實例講解

作者:張應遷

子模型簡介

      子模型是得到模型部分區域中更加精確解的有限單元技術。在有限元分析中往往出現這種情況,即對于用戶關心的區域,如應力集中區域,網格太疏不能得到滿意的結果,而對于這些區域之外的部分,網格密度已經足夠了。如圖1所示。

ANSYS子模型分析的一般步驟-實例講解的圖1

圖1 輪轂和輪輻的子模型 a)粗糙模型,b)疊加的子模型

       要得到這些區域的較精確的解,可以采取兩種辦法:(a)用較細的網格重新劃分并分析整個模型;(b)只在關心的區域細化網格并對其分析。顯而易見,方法(a)太耗費機時,方法(b)即為子模型技術。

     子模型方法又稱為切割邊界位移法或特定邊界位移法。切割邊界就是子模型從整個較粗糙的模型分割開的邊界。整體模型切割邊界的計算位移值即為子模型的邊界條件。

      子模型基于圣維南原理,即如果實際分布載荷被等效載荷代替以后,應力和應變只在載荷施加的位置附近有改變。這說明只有在載荷集中位置才有應力集中效應,如果子模型的位置遠離應力集中位置,則子模型內就可以得到較精確的結果。

       ANSYS并不限制子模型分析必須為結構(應力)分析。子模型也可以有效地應用于其他分析中。如在電磁分析中,可以用子模型計算感興趣區域的電磁力。

除了能求得模型某部分的精確解以外,子模型技術還有如下幾個優點:

?  它減少甚至取消了有限元實體模型中所需的復雜的傳遞區域。

?  它使得用戶可以在感興趣的區域就不同的設計(如不同的圓角半徑)進行分析。

?  它幫助用戶證明網格劃分是否足夠細。

值得注意的是,使用子模型也有一些限制條件具體如下:

?  只對體單元和殼單元有效。

?  子模型的原理要求切割邊界應遠離應力集中區域。用戶必須驗證是否滿足這個要求。


子模型分析的一般步驟

子模型分析的過程一般包括以下步驟:

1、 生成并分析較粗糙的模型。

2、 生成子模型。

3、 提供切割邊界插值。

4、 分析子模型。

5、 驗證切割邊界和應力集中區域的距離應足夠遠。

第一步:生成并分析較粗糙的模型

第一個步驟是對整體建模并分析。(注:為了方便區分這個原始模型,我們將其稱為粗糙模型。這并不表示模型的網格劃分必須是粗糙的,而是說模型的網格劃分相對子模型的網格是較粗糙的。)

分析類型可以是靜態或瞬態的,其操作、分析的步驟與一般分析相同。下面列出了其它的一些要特別注意的方面:

(1)   文件名——粗糙模型和子模型應該使用不同的文件名。這樣既可以保證文件不被覆蓋,而且在切割邊界插值時可以方便地指出粗糙模型的文件。用下列方法指定文件名:

Command: /FILNAME

GUI: Utility Menu>File>Change Jobname

(2)   單元類型——子模型技術只能使用體單元和殼單元。分析模型中可以有其他單元類型(如梁單元作為加強筋),但切割邊界只能經過體和殼單元。

(3)   建?!诤芏嗲闆r下,粗糙模型不需要包含局部的細節如圓角等,如圖2所示。但是,有限元網格必須細化到足以得到較準確的位移解。這一點很重要,因為子模型的結果是根據切割邊界的位移解插值得到的。

ANSYS子模型分析的一般步驟-實例講解的圖2

圖2 粗糙模型可以不包括一些細節部分

(4)   文件——結果文件(Jobname.RST,Jobname.RMG等)和數據庫文件(Jobname.DB,包含幾何模型)在粗糙模型分析中是需要的。在生成子模型前應存儲數據庫文件。用下列方法存儲數據庫:

Command: SAVE

GUI: Utility Menu>File>Save as

Utility Menu>File>Save as Jobname.db

第二步:生成子模型

      子模型是完全依靠粗糙模型的。因此在初始分析后的第一步就是在初始狀態清除數據庫(另一種方法是退出并重新進入ANSYS)。用下列方法清除數據庫:

Command: /CLEAR

GUI: Utility Menu>File>Clear&Start New

同時,應記住用另外的文件名以防止粗糙模型文件被覆蓋。用下列方法指定文件名:

Command: /FILNAME

GUI: Utility Menu>File>Change Jobname

然后進入PREP7并建立子模型。需要記住下列幾點:

(1)   使用與粗糙模型中同樣的單元類型。同時應指定相同的單元實參(如殼厚)和材料特性。(另一種子模型技術——殼到體技術——允許從粗糙模型的殼單元轉換為體單元。)

(2)   子模型的位置(相對全局坐標原點)應與粗糙模型的相應部分相同,如圖3所示。

ANSYS子模型分析的一般步驟-實例講解的圖3

圖3 疊加在粗糙模型上的子模型

(3)   指定合適的節點旋轉位移。切割邊界結點的旋轉角在插值步驟一一寫入結點文件時不應改變(見第三步:生成切割邊界插值)。用下列方法指定節點旋轉:

Command:NROTAT

GUI: Main Menu>Preprocessor>Create>Nodes>-Rotate Node CS-To Active CS

    Main Menu>Preprocessor>Move/Modify>-Rotate Node CS-To ACtive CS

注意:節點旋轉角會因為施加節點約束,傳遞線上約束或面上約束等操作而改變,同樣也會為更加明顯的操作如[NROTAT和NMODIF]等改變。粗糙模型中節點旋轉角的出現或缺省并不影響子模型。

第三步:生成切割邊界插值

      本步是子模型的關鍵步驟。用戶定義切割邊界的節點,ANSYS用粗糙模型結果插值方法計算這些點上的自由度數值(位移等),如圖4所示。對于子模型切割邊界上的所有節點,程序用粗糙模型網格中相應的單元確定自由度數值,然后這些數值用單元形狀功能插值到切割邊界上。

在切割邊界插值中有如下幾步操作:

(1)   指定子模型切割邊界的結點并將其寫入一個文件(缺省為Jobname.NODE)中。可以

在PREP7 中選擇切割邊界的節點,用下列命令將其寫入文件:

Command: NWRITE

GUI: Main Menu>Preprocessor>Create>Nodes>Write Node File

下面是一個NWRITE命令的例子:

NSEL,...                !選擇切割邊界上的結點

NWRITE                  !將其寫入Jobname.NODE

ANSYS子模型分析的一般步驟-實例講解的圖4

圖4 子模型切割邊界

在這里討論一下溫度插值的問題。在包含特性隨溫度變化的材料的分析中,或熱-應力耦合分析中,粗糙模型和子模型中的溫度分布是相同的。在這種情況下,必須將粗糙模型的溫度插值到子模型中的所有結點上。要完成這步操作,要選擇子模型中所有結點并寫入另外一個文件中,使用NWRITE,Filename,Ext。 記住必須另外指定一個文件名,否則切割邊界結點文件將被覆蓋!第7步中說明了關于溫度插值的命令。

(2)   重新選擇所有結點并將數據庫存入Jobname.DB中,然后退出PREP7。 必須將數據庫寫入文件,因為在后面子模型分析中要使用到。

用下列命令重新選擇所有結點:

Command: ALLSEL

GUI: Utility Menu>Select>Everything

用下列命令存儲數據庫:

Command: SAVE

GUI: Utility Menu>File>Save as Jobname.db

(3)   要進行切割邊界插值(和溫度插值),數據庫中必須包含粗糙模型的幾何特征。因此要用下列一種方法讀入粗糙模型數據庫:

Command: RESUME

GUI: Utility Menu>File>Resume from

如粗糙模型文件名為COARSE,就輸入命令RESUME,COARSE,DB。

(4)   進入POST1,即通用后處理器(/POST1或Main Menu>General Postproc)。插值只有在POST1中進行。

(5)   指向粗糙模型結果文件(FILE或Main Menu>General Postproc>Data & File Opts)。

(6)   讀入結果文件中相應的數據(SET或Main Menu>General Postproc>-Read Results-option)。

(7)   開始切割邊界插值。用下列方法完成本步操作:

Command: CBDOF

GUI: Main Menu>General Postproc>Submodeling>Interpolate DOF

缺省狀態下,CBDOF命令假定切割邊界結點在文件Jobname.NODE中。ANSYS將計算切割邊界的DOF數值并用D命令的形式寫入文件Jobname.CBDO中。

用下列方法作溫度插值,但要保證文件包含所有子模型結點:

Command: BFINT

GUI: Main Menu>General Postproc>Submodeling>Interp Body Forc

溫度插值以BF命令的格式寫入文件Jobname.BFIN中。

注意:如果數據包括實部和虛部的話,比如聲壓等,步驟6和7就要作兩遍。先用SET 命令讀入實部的數據并作插值[CBDOF和/或BFINT],然后用SET命令將域設為1 讀入虛部的數據并重新進行插值,但這次將虛部插值寫入另一個文件。

(8)至此,所有的插值任務完成,退出POST1[FINISH]并讀入子模型數據庫(RESUME或Main Menu>File>Resume from)。

第四步:分析子模型

在本步中,用戶指定分析類型和分析選項,加入插值的DOF數值(和溫度數值),施加其他的載荷和邊界條件,指定載荷步選項,并對子模型求解。

首先進入求解器(/SOLU或Main Menu>Solution)。

然后定義分析類型(一般為靜態)和分析選項。

要施加切割邊界自由度約束,用下列命令讀入CBDOF命令生成的由D命令組成的文件:

Command: /INPUT

GUI: Utility Menu>File>Read Input from

要施加溫度插值,用下列命令讀入BFINT命令生成的由BF命令組成的文件:

Command: /INPUT

GUI: Utility Menu>File>Read Input from

如果數據有實部和虛部,先讀入實部數據文件,指定自由度約束數值和(/或)結點體載荷是否計算,然后讀入虛部數據文件。

用下列方法指定計算自由度約束數值:

Command: DCUM,ADD

GUI: Main Menu>Preprocessor>Loads>-Loads-Settings>Contraints

    Main Menu>Solution>-Loads-Settings>Constraints

用下列方法指定計算結點體載荷數值:

Command: BFCUM,ADD

GUI: Main Menu>Preprocessor>Loads>-Loads-Settings>Nodal Body Ld

    Main Menu>Solution>-Loads-Settings>Nodal Body Ld

注意在執行DCUM和BFCUM命令時要先將其初始狀態設為初始值。

重要的一點是要將粗糙模型上所有其他載荷和邊界條件復制到子模型上。比如對稱邊界條件,面力,慣性載荷(如重量),集中力等(如圖5所示)。

ANSYS子模型分析的一般步驟-實例講解的圖5

圖5  子模型的載荷

然后指定載荷步選項(如輸出控制)并開始計算:

Command: SOLVE

GUI: Main Menu>Solution>Current LS

    Main Menu>Solution>Run FLOTRAN

在求解完成后,退出SOLUTION。[FINISH]

子模型的數據流向(無溫度插值)如圖6所示。

ANSYS子模型分析的一般步驟-實例講解的圖6

圖6 子模型分析(無溫度插值)的數據流向

第五步:驗證切割邊界和應力集中位置的距離是否足夠

最后一步是驗證子模型切割邊界是否遠離應力集中部分??梢酝ㄟ^比較切割邊界上的結果(應力,磁通密度等)與粗糙模型相應位置的結果是否一致來驗證。如果結果符合得很好,證明切割邊界的選取是正確的。如果不符合的話,就要重新定義離感興趣部分更遠一些的切割邊界重新生成和計算子模型。

一個比較結果的有效方法是使用云圖顯示和路徑顯示,如圖7和8所示。

ANSYS子模型分析的一般步驟-實例講解的圖7

圖7 比較結果時的云圖顯示

ANSYS子模型分析的一般步驟-實例講解的圖8

圖8 比較結果時的路徑顯示

下面列出了一個子模型分析的輸入示例:

!開始子模型分析

/FILNAME,coarse                !工作文件名為coarse

/PREP7                         !進入PREP7

....

....                           !生成粗糙模型

FINISH

 

/SOLU                          !進入求解器

ANTYPE,...                     !分析類型和分析選項

...

D,....                         !載荷和載荷步選項

DSYMM,...

ACEL,...

...

SAVE                           !粗糙模型數據庫文件coarse.db

SOLVE                          !求解粗糙模型

                               !結果在文件coarse.rst(或rmg等)

FINISH

 

!生成子模型

/CLEAR                         !清除數據庫(或退出ANSYS并重新進入)

/FILNAME,submod                !新工作文件名為submod

/PREP7                         !重新進入PREP7

...

...                            !生成子模型

 

!進行切割邊界插值

NSEL,...                       !選擇切割邊界上的結點

NWRITE                         !將其寫入文件submod.node

ALLSEL                         !讀入所有實體

NWRITE,temp,node              !將所有結點寫入文件temp.node(用于

                               溫度插值)

SAVE                          !存儲子模型數據庫文件submod.db

FINISH

 

RESUME,coarse,db              !讀入粗糙模型數據庫(coarse.db)

/POST1                        !進入POST1

FILE,coarse,rst               !使用粗糙模型結果文件

SET,...                       !讀入需要的結果數據

CBDOF                        !從submod.node中讀入切割邊界結點并

                              將D命令寫入submod.cbdo

BFINT,temps,node             !從temps.node中讀入所有子模型結點

                              并將BF命令寫入文件submod.bfin(用

                              于溫度插值)

FINISH                       !結束插值過程

 

RESUME                       !讀入子模型數據庫(submod.db)

/SOLU                        !進入求解器

ANTYPE,...                   !分析類型和選項

...

/INPUT,submod,cbdo           !切割邊界自由度

/INPUT,submod,bfin           !溫度插值

DSYMM,...                    !其他載荷和載荷步選項

ACEL,...

...

SOLVE                        !子模型求解

FINISH

 

/POST1                       !進入POST1

...

...                          !驗證子模型數據

FINISH

注:新版軟件遇到上述部分命令無法識別時請自行做相應修改。

本文出自張應遷老師著作《ANSYS有限元分析從入門到精通》

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

16
2