ANSYS拓撲優化
2017-03-02 by:CAE仿真在線 來源:互聯網
第二章 拓撲優化
什么是拓撲優化?
拓撲優化是指形狀優化,有時也稱為外型優化。拓撲優化的目標是尋找承受單載荷或多載荷的物體的最佳材料分配方案。這種方案在拓撲優化中表現為“最大剛度”設計。
與傳統的優化設計不同的是,拓撲優化不需要給出參數和優化變量的定義。目標函數、狀態變量和設計變量(參見“優化設計”一章)都是預定義好的。用戶只需要給出結構的參數(材料特性、模型、載荷等)和要省去的材料百分比。
拓撲優化的目標——目標函數——是在滿足結構的約束(V)情況下減少結構的變形能。減小結構的變形能相當于提高結構的剛度。這個技術通過使用設計變量(hi)給每個有限元的單元賦予內部偽密度來實現。這些偽密度用PLNSOL,TOPO命令來繪出。
例如,給定V=60表示在給定載荷并滿足最大剛度準則要求的情況下省去60%的材料。圖2-1表示滿足約束和載荷要求的拓撲優化結果。圖2-1a表示載荷和邊界條件,圖2-2b表示以密度云圖形式繪制的拓撲結果。
圖2-1 體積減少60%的拓撲優化示例
如何做拓撲優化
拓撲優化包括如下主要步驟:
1. 定義拓撲優化問題。
2. 選擇單元類型。
3. 指定要優化和不優化的區域。
4. 定義和控制載荷工況。
5. 定義和控制優化過程。
6. 查看結果。
拓撲優化的細節在下面給出。關于批處理方式和圖形菜單方式
不同的做法也同樣提及。
定義拓撲優化問題
定義拓撲優化問題同定義其他線性,彈性結構問題做法一樣。用戶需要定義材料特性(楊氏模量和泊松比),選擇合適的單元類型生成有限元模型,施加載荷和邊界條件做單載荷步或多載荷步分析。參見“ANSYS Analysis Procedures Guides”第一、二章。
選擇單元類型
拓撲優化功能可以使用二維平面單元,三維塊單元和殼單元。要使用這個功能,模型中只能有下列單元類型:
二維實體單元:SOLID2和SOLID82
三維實體單元:SOLID92和SOLID95
殼單元:SHELL93
二維單元用于平面應力問題。
指定要優化和不優化的區域
只有單元類型號為1的單元才能做拓撲優化。可以使用這種限制控制模型優化和不優化的部分。例如,如果要保留接近圓孔部分或支架部分的材料,將這部分單元類型號指定為2或更大即可:
…
ET,1,SOLID92
ET,2,SOLID92
…
TYPE,1
VSEL,S,NUM,,1,,2 !用這些單元劃分的實體將被優化
VMESH,ALL
TYPE,2
VSEL,S,NUM,,3 !用這些單元劃分的實體將保持原狀
VMESH,ALL
…
用戶可以使用ANSYS的選擇和修改命令控制單元劃分和類型號定義。
定義和控制載荷工況
可以在單個載荷工況和多個載荷工況下做拓撲優化。單載荷工況是最簡便的。
要在幾個獨立的載荷工況中得到優化結果時,必須用到寫載荷工況和求解功能。在定義完每個載荷工況后,要用LSWRITE命令將數據寫入文件,然后用LSSOLVE命令求解載荷工況的集合。
例如,下面的輸入演示如何將三個載荷工況聯合做一個拓撲優化分析。
…
D,10,ALL,0,,20,1 !定義第一個載荷工況的約束和載荷
NSEL,S,LOC,Y,0
SF,
ALLSEL
LSWRITE,1 !寫第一個載荷工況
DDEL,
SFDEL,
NSEL,S,LOC,X,0,1
D,ALL,ALL,0
NSEL,ALL
F,212,FX
LSWRITE,2 !寫第二個載荷工況
…
LSWRITE,3 !寫第三個載荷工況
…
FINISH
/SOLUTION
TOPDEF,10,3 !定義優化的參數
LSSOLVE,1,3,1 !在拓撲優化前做所有三個載荷工況求解
…
定義和控制優化過程
拓撲優化過程包括兩部分:定義優化參數和進行拓撲優化。用戶可以用兩種方式運行拓撲優化:控制并執行每一次迭代,或自動進行多次迭代。
ANSYS有三個命令定義和執行拓撲優化:TOPDEF,TOPEXE和TOPITER。TOPDEF命令定義要省去材料的量,要處理載荷工況的數目,收斂的公差。TOPEXE命令執行一次優化迭代。TOPITER命令執行多次優化迭代。
— 定義優化參數
首先要定義優化參數。用戶要定義要省去材料的百分比,要處理載荷工況的數目,收斂的公差。
命令:TOPDEF
GUI:Main Menu>Solution>-Solve-Topological opt
注——本步所定義的內容并不存入ANSYS數據庫中,因此在下一個拓撲優化中要重新使用TOPDEF命令。
— 執行單次迭代
定義好優化參數以后,可以執行一次迭代。迭代后用戶可以查看收斂情況并繪出或列出當前的拓撲優化結果。可以繼續做迭代直到滿足要求為止。如果是在GUI方式下執行,在Topological Optimization 對話框(ITER域)中選擇一次迭代。
命令:TOPEXE
GUI:Main Menu>Solution>-Solve-Topological opt
下面的例子說明了如何在拓撲優化中每次執行一次迭代:
…
/SOLUTION
TOPDEF,25,1 !移去25%體積并處理一個載荷工況
SOLVE !執行第一次應力分析
TOPEXE !執行第一次拓撲優化迭代
FINISH
/POST1 !進入后處理器
PLNSOL,TOP0 !畫出優化結果
*GET,TIPSRAT,TOPO,,CONV !讀取拓撲收斂狀態
*STATUS,TOPSTAT !列表
/SOLUTION
SOLVE !執行第二次應力分析
TOPEXE !執行第二次拓撲優化迭代
FINISH
/POST1
…
TOPEXE的主要優點是用戶可以設計自己的迭代宏進行自動優化循環和繪圖。在下一節,可以看到TOPITER命令是一個ANSYS的宏,用來執行多次優化迭代。
— 自動執行多次迭代
在定義好優化參數以后,用戶可以自動執行多次迭代。在迭代完成以后,可以查看收斂情況并繪出或列出當前拓撲形狀。如果需要的話,可以繼續執行求解和迭代。TOPITER命令實際是一個ANSYS的宏,可以拷貝和定制(見APDL Programmer’s Guide)。
命令:TOPITER
GUI:Main Menu>Solution>-Solve-Topological opt
下面的例子說明了如何使用TOPITER宏執行多次迭代:
… !定義并寫第一個載荷工況
LSWRITE
… !定義并寫第二個載荷工況
LSWRITE
… !定義并寫第三個載荷工況
LSWRITE
…
TOPDEF,80,3,.001 !80%體積減少,3個載荷工況
… 0.001為收斂公差
/DSCALE,,OFF !關閉形狀改變
/CONTOUR,,3 !每次顯示3個輪廓數值
TOPITER,20,1 !最大20次迭代。每次迭代求解并繪出
… 結果
每次迭代執行一次LSSOLVE命令,一次TOPEXE命令和一次PLNSOL,TOPO顯示命令。當收斂公差達到(用TOPDEF定義)或最大迭代次數(用TOPITER定義)達到時優化迭代過程終止。
查看結果。
拓撲優化結束后,ANSYS結果文件(Jobname.RST)將存儲優化結果供通用后處理器使用。用戶可以使用后面提到的后處理命令。要得到更詳細的信息,請查閱ANSYS Commands Reference或ANSYS Basic Analysis Procedures Guide第五章。
要列出結點解和/或繪出偽密度,使用PRNSOL和PLNSOL命令的TOPO變量。
要列出單元解和/或繪出偽密度,使用PLESOL和PRESOL命令的TOPO變量。
可以使用ANSYS表格功能查看結果:
ETABLE,EDENS,TOPO
PLETAB,EDENS
PRETAB,EDENS
ESEL,S,ETAB,EDENS,0.9,1.0
EPLOT
要查看最近(最后一次迭代)的收斂情況和結構變形能,使用*GET命令:
*GET,TOPCV,TOP0,,CONV !如果TOPCV=1(收斂)
*GET,ECOMP,TP0,,COMP !ECOMP=變形能
*STAT
二維多載荷優化設計示例
在本例中,對承受兩個載荷工況的梁進行拓撲優化。
問題描述
圖2-2表示一個承載的彈性梁。梁兩端固定,承受兩個載荷工況。梁的一個面是用一號單元劃分的,用于拓撲優化,另一個面是用二號單元劃分的,不作優化。最后的形狀是單元1的體積減少50%。
圖2-2 承受兩個載荷工況的梁
本問題是用下列的ANSYS命令流求解的。兩個載荷工況定義并用LSWRITE命令寫入文件。使用ANSYS選擇功能,單元SOLID82通過類型號1和2分別指定優化和不優化的部分。TOPDEF命令定義問題有兩個載荷工況并要求50%體積減少。TOPEXE命令在本例中沒有使用,代之以用TOPITER宏命令指定最大迭代次數為12次。
/TITLE,A 2-d,multiple-load example of topological optimization
/PREP7
BLC4,0,0,3,1 !生成實體模型(3X1矩形)
ET,1,82 !二維實體單元,1號為優化
ET,2,82 !2號不優化
MP,EX,1,118E9 !線性各項同性材料
MP,NUXY,1,0.3
ESIZE,0.05 !較細的網格密度
TYPE,1
AMESH,ALL !自由矩形網格劃分
NSEL,S,LOC,X,0,0.4 !選擇不優化的部分
ESLN
TYPE,2
EMODI,ALL !定義2號單元
ALLSEL
NSEL,S,LOC,X,0
D,ALL,ALL,0 !在X=0處固定
NSEL,S,LOC,X,3
D,ALL,ALL,0 !在X=3處固定
FORCE=1000 !載荷數值
NSEL,S,LOC,X,1
NSEL,R,LOC,Y,1
F,ALL,FY,FORCE !定義第一個載荷工況
ALLSEL
LSWRITE,1 !寫第一個載荷工況
FDEL,ALL
NSEL,S,LOC,X,2
NSEL,R,LOC,Y,0
F,ALL,FY,-FORCE !定義第二個載荷工況
ALLSEL
LSWRITE,2 !寫第二個載荷工況
FDEL,ALL
TOPDEF,50,2 !定義拓撲優化有兩個載荷工況
/SHOW,topo,grph !將圖形輸出到文件(在交互方式下刪
除本命令
/DSCALE,,OFF
/CONTOUR,,2
TOPITER,12,1 !執行不多于12次迭代
FINISH
求解結果
圖2-3表示上例的計算結果。這些結果存入top.grph文件便于后續的顯示處理。如果是交互地運行ANSYS程序,將/SHOW命令刪除以觀看每次迭代的結果。
圖2-3 拓撲優化結果——50%體積減少
一些說明
l 結果對載荷情況十分敏感。很小的載荷變化將導致很大的優化結果差異。
l 結果對網格劃分密度敏感。一般來說,很細的網格可以產生“清晰”的拓撲結果,而較粗的網格會生成“混亂”的結果。但是,較大的有限元模型需要更多的收斂時間。
l 在一些情況下會得到珩架形狀的拓撲結果。這通常在用戶指定很大的體積減少值和較細的網格劃分時出現。很大的體積減少值如80%或更大(TOPDEF命令)。
l 如果有多個載荷工況時,有多種方式將其聯合進行拓撲優化求解。例如,考慮有五個載荷工況的情況。可以選擇使用五個單獨的拓撲優化分析過程,也可以使用包括這五個工況的一次拓撲優化分析。還有,也可以將這五個工況合成為一個工況,然后做一次優化。綜合起來,可以有七個不同的拓撲優化求解:
5 獨立的拓撲優化求解(每個工況一次)
1 拓撲優化求解針對五個工況
1 拓撲優化求解針對一個聯合工況
附加的結果或結果的組合都是可用的。
l 結果對泊松比敏感但對楊氏模量不敏感。但是,隨泊松比變化的效果不明顯。
l TOPDEF和TOPITER命令中的指定值并不存儲在ANSYS數據庫中;因此,用戶必須在每次拓撲優化時重新指定優化目標和定義。
相關標簽搜索:ANSYS拓撲優化 Ansys有限元培訓 Ansys workbench培訓 ansys視頻教程 ansys workbench教程 ansys APDL經典教程 ansys資料下載 ansys技術咨詢 ansys基礎知識 ansys代做 Fluent、CFX流體分析 HFSS電磁分析 Abaqus培訓