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