我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Ansys教程

ANSYS拓撲優化

時間:2010-11-14 11:28:59 來源:未知

什么是拓撲優化?
拓撲優化是指形狀優化,有時也稱為外型優化。拓撲優化的目標是尋找承受單載荷或多載荷的物體的最佳材料分配方案。這種方案在拓撲優化中表現為“最大剛度”設計。
與傳統的優化設計不同的是,拓撲優化不需要給出參數和優化變量的定義。目標函數、狀態變量和設計變量(參見“優化設計”一章)都是預定義好的。用戶只需要給出結構的參數(材料特性、模型、載荷等)和要省去的材料百分比。
拓撲優化的目標——目標函數——是在滿足結構的約束(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在使用這種優化思想的原理是讓系統的材料發揮最大的應用率,同時保證滿足工程問題的實際需要,如同時保證整體剛度、滿足自振頻率等條件下獲得問題的極大或極小值。當前應用中,拓撲優化主要應用于線性靜力和模態分析中。
1、引言
    ANSYS拓撲優化技術不需要人工定義優化參數,而是自動將材料分布當作優化參數。在進行拓撲優化分析時,同其他分析過程一樣需要定義幾何結構、有限元模型、載荷與邊界條件等,然后定義優化的目標函數、約束參數。拓撲優化的最終目標是滿足給定的實際約束條件(如體積最小、重量最小等)需要極大地或極小化參數,通常采用的目標函數是結構柔量能量(the energy of structural compliance)極小化和基頻最大等。
拓撲優化的原理是在滿足結構體積縮減量的條件下使結構的柔度極小化。極小化得結構度實際就是要求結構剛度最大化。
2、拓撲優化分析步驟
在ANSYS程序中,又專門用于拓撲優化分析的菜單,使用這些菜單能夠進行拓撲優化分析過程,分析的基本步驟如下:
    1)定義結構問題;
    2)選擇單元類型;
    3)確定優化區域;
    4)定義并控制載荷工況或者頻率提取;
    5)定義并控制優化過程;
    6)查看和分析拓撲優化結果。
    ANSYS中拓撲優化菜單如圖1所示。

ANSYS能夠提供工
2.1 定義結構問題
定義拓撲優化問題同ANSYS其他線性分析過程一樣,需要定義材料特性(楊氏模量、泊松比和材料密度等),然后選擇適用于拓撲優化的單元類型、生成有限元模型,最后根據問題實際情況需求定義拓撲優化的菜單。對此,有兩種操作需要定義:
    1)采用單載荷步或多載荷步的線性靜力分析時,施加相應的載荷和邊界條件;
    2)采用模態頻率分析,只需施加邊界條件。
2.2 選擇單元類型
拓撲優化分析可以使用的單元類型有二維平面單元、三維塊單元和殼單元。如果使用這種功能,模型中只能有下列單元類型:
    1)二維實體單元:PLANE2和PLANE82,用于平面應力和軸對稱問題;
    2)三維實體單元:SOLID92和SOLID95;
    3)殼單元:SHELL93。
2.3 確定優化區域
    ANSYS程序只對單元類型編號等于1的單元網格部分進行拓撲優化,對于單元類型編號等于或者大于2的網格部分不進行拓撲優化。所以,在進行模型網格定義時,必須確保拓撲優化的區域劃分成單元類型1。定義優化和不優化區域的方法既可以通過命令流修改選擇的單元類型屬性,也可以通過菜單操作完成對單元類型屬性的修改。
2.4 定義并控制載荷工況或頻率提取
    ANSYS拓撲優化功能當前只能用于線性結構靜力分析或模態分析,其他分析類型暫不常用或不支持。針對這兩種分析類型,ANSYS實際提供的拓撲優化為基于線性結構精力分析的最大靜態剛度拓撲優化設計和基于模態分析的最大動態剛度優化設計,同時兩種優化設計都要求達到體積最小化的目的。
    1)基于線性結構靜力分析的最大靜態剛度拓撲優化設計,是將結構柔度作為優化目標或優化約束條件(TOCOMP,TOVAR)。此時,必須在拓撲優化循環中執行線性結構靜力分析,并接可以使基于單載荷工況求解進行拓撲優化,或是基于多載荷工況求解進行的拓撲優化。
基于單載荷工況求解進行拓撲優化非常簡單,但是基于多載荷工況求解進行的拓撲優化則需要利用ANSYS的寫載荷工況文件和多載荷工況批求解技術。每個工況都要定義載荷和邊界條件,然后利用LSWRITE命令將載荷工況數據寫入載荷工況文件,然后利用LSSOLVE命令一次性的按順序求解完所有載荷工況。
    2)最大動態剛度優化設計:基于模態分析
基于模態分析的拓撲優化,是將固有的振動頻率作為拓撲優化的目標函數(TOFREO,TOVAR)。此時,在優化循環中必須進行模態分析,并且需要利用MODOPT命令指定求解時提取的模態頻率數目,利用MXPAND命令指定要擴展的模態數,同事單元結果計算選項必須設置為:YES。
程問題的拓撲優化技術,可用于確定系統的最佳幾何形狀,ANSYS在使用這種優化思想的原理是讓系統的材料發揮最大的應用率,同時保證滿足工程問題的實際需要,如同時保證整體剛度、滿足自振頻率等條件下獲得問題的極大或極小值。當前應用中,拓撲優化主要應用于線性靜力和模態分析中。

2.5 定義并控制優化過程
定義拓撲優化過程包含4個步驟:定義拓撲優化函數、定義拓撲目標函數、和約束條件、初始化拓撲優化和執行拓撲優化。執行拓撲優化可以有兩種方式進行:
    1)仔細控制并執行每一次的拓撲優化迭代。
    2)自動進行多次拓撲優化迭代。
    ANSYS提供了7條命令定義和執行拓撲優化:
    1)TOCOMP和TOFREO命令用于定義拓撲優化函數;
    2)TOVAR命令用于定義拓撲優化的目標函數和約束條件;
    3)TOTYPE命令用于定義拓撲優化求解時所用的方法;
    4)TODEF命令用于在拓撲優化過程中定義收斂公差及初始化。
    5)TOEXE執行一次拓撲優化迭代;
    6)TOLOOP執行多次拓撲優化迭代。
2.6 查看拓撲優化結果
拓撲優化求解結束后,所有的拓撲優化結果都會存儲在ANSYS的接過文件Jobname.rst中,可以直接在拓撲優化求解器環境中利用提供的專用拓撲優化結果處理菜單進行拓撲優化結果處理,也可以利用ANSYS的通用后處理器(POST1)進行拓撲結果后處理。
3、本篇總結
本篇主要講述ANSYS優化設計-拓撲優化技術的基本概念和基本步驟,只能用來參考,ANSYS使用者要想真正了解和掌握ANSYS的這種高級分析技術,途徑只有一條:練習和應用。


 

 

ANSYS高級分析-優化設計(一)

 

本篇作為ANSYS最常用也是最有用的高級分析技術優化設計技術的開篇,主要從概念上講述ANSYS優化設計以及在進行ANSYS優化設計分析時通用的基本步驟和考慮方法(本篇所講述優化分析同樣是基于APDL工具,其它優化設計技術具體實現過程隨著對優化設計的逐漸深入會逐步描述)。
1 前言
優化設計是一種尋找確定最優設計方案的技術。所謂“最優設計”,指的是一種方案可以滿足所有的設計要求,而且所需的支出(如重量,面積,體積,應力,費用等)最小。也就是說,最優設計方案就是一個最有效率的方案。設計方案的任何方面都是可以優化的,比如說:尺寸(如厚度),形狀(如過渡圓角的大小),支撐位置,制造費用,自然頻率,材料特性等。實際上,因為ANSYS具有專業的和強大的分析能力,具有開放的使用環境,所以所有可以參數化的ANSYS選項都可以作優化設計。
    ANSYS參數化設計語言APDL用建立智能分析的手段為用戶提供了自動循環的功能,也就是說,程序的輸入可設定為根據指定的函數、變量以及選出的分析標準決定輸入的形式。APDL允許復雜的數據輸入,使用戶實際上對任何設計或分析有控制權。例如尺寸、材料、載荷、約束位置和網格密度等。APDL擴展了傳統有限元分析之外的能力,并擴展了更高級運算,包括靈敏度研究、零件庫參數化建模,設計修改和設計優化。APDL是一種為ANSYS二次開發專門設計開發的解釋性文本語言,其內容包括參數、數組參數、表達式和函數、分支和循環、重復功能和縮寫以及宏和用戶程序等。
2 優化設計步驟
基于APDL的參數化設計的方法采用ANSYS的批處理方法進行優化的,其主要的優化設計過程通常包括以下幾個步驟,這些步驟根據用戶所選用優化方法的不同(批處理GUI方式)而有細微的差別。
生成分析文件:生成分析文件與通常的ANSYS分析并沒有很大的不同,唯一的區別就是:優化的分析文件必須是參數化的。也就是說,必須定義一些參量,至少要把所有的設計變量,狀態變量和目標變量定義為參量形式。而且,用于優化的參量只能是標量數值參量,而不是數組或者字符參量。
建立優化過程中的參數:在GUI方式下,優化過程中的參數一般在ANSYS數據庫中用分析文件來建立,這樣做的好處是初始參數值可以作為一階方法的起點,然而,對于各種優化過程來說,在數據庫中的參數可以在GUI下進行操作,便于定義優化變量。
進入OPT,指定分析文件:首次進入優化處理器時,ANSYS數據庫中的所有數據會自動作為設計序列,這些參數值假定是一個設計序列。在GUI方式下,用戶必須指定分析文件名,這個文件用于生成優化循環文件Jobname.LOOP,在ANSYS優化處理器中,分析文件名無缺省值,用戶必須指定一個分析文件名,否則將出錯。并且在分析文件中,/PREP7或/OPT命令必須出現在行的第一個非空字符處。在批處理方式中,分析文件通常是批處理命令流的第一部分,從文件的第一行命令到命令/OPT第一次出現時,其缺省的分析文件名是Jobname.BAT,因此在批處理方式下不需要指定分析文件名。
指定優化變量:即要求用戶指定哪些是設計變量、哪些是狀態變量和目標函數,對于設計變量和狀態變量,用戶可以指定其最大和最小值,同時每一個變量都有一個公差值,這個公差值可以用戶輸入,也可以由程序自動選取。用戶可以在任何時間簡單地通過重新定義參數來改變已經定義過的參數,也可以刪除一個優化變量,即該變量將不再作為優化變量使用,但該參數還存在。
選擇優化工具或優化方法:優化方法是使單個函數在控制條件下達到最小值的傳統優化方法。它由零階法、一階法和用戶自定義方法。但在使用任何一種方法之前,用戶必須指定一個目標函數。一般來說,一階法精度較高,但是耗費機時,零階方法速度較快,其精度較低,但對大多數工程問題而言,零階分析方法足夠了。
指定優化循環控制方式:每一種優化方法和優化工具都有相應的循環控制參數,因此在指定好優化優化方法和優化工具后,用戶還要選擇與此工具和方法相對應的循環控制參數。
進行優化分析:在進行優化分析時,優化循環文件Jobname.LOOP會根據分析文件生成,循環在滿足下列情況下終止:收斂、中斷、分析完成。所有優化變量和其他參數在每次迭代后將存儲在優化數據文件Jobname.OPT中,最多可以存儲130組這樣的序列,如果已經達到了130個序列,那么其中數據最“不好”的序列將被刪除。
察看設計序列結果:在優化設計完成后,用戶可以列出指定序列號的參數值,或列出所有參數的值;也可以用圖形的方式顯示指定的參數隨迭代次數的變化,可以看出變量是如何隨迭代過程變化的。同時也可以在POST1或POST26中對分析結果進行后處理,在缺省的方式下,最后一個設計序列的結果存儲在文件Jobname.RST或Jobname.RTH 中,如果在運行前將命令OPKEEP設置為on,則最佳設計序列的數據也將存儲在數據庫和結果文件中,最佳結果在文件Jobname.BEST(BRTH)中,最佳數據庫在文件Jobname.BDB中。
3 總結
如前面所述,優化是一個復雜的過程,復雜在當多個參數同時作用時再沒有經過時間的驗證前誰也不知道具體哪幾個參數做到最優時能夠使設計和產品最能夠最實用的要求,我們只能憑借經驗確定選擇哪幾個參數作為優化的最先考慮因素,而ANSYS提供給我們的便利僅僅是一種代替我們計算的工具,而不能替我們思考。所以要作真正分析領域的杰出人物,任何一種軟件僅僅只是工具,而真正的利器存在于頭腦之中,這種利器的來源只有一個-孜孜以求與不斷實踐。

 

 

ANSYS高級分析:優化設計(三)-優化算法

 

理解ANSYS優化模塊的計算機程序的算法是很有必要的,也只有這樣才能弄清楚ANSYS優化設計的來龍去脈,本篇主要講述了ANSYS優化設計時最常用的優化技術,但因為ANSYS能夠兼容使用者自己開發的優化算法,所以ANSYS優化技術有其廣闊的提升和發展空間。
1、引言
    ANSYS程序最常見的優化算法有零階方法,一階方法,隨機搜索法,等步長搜索法,乘子計算法和最優梯度法。本篇僅作簡單描述,更多的細節參見ANSYS Theory Reference  chapter 20。要想深刻的了解這些算法,需要具有一定數學知識,并有一定的興趣愛好才能精下心了好好的理解和學習這一部分的理論性內容,但這也是快速提升自己水平的好途徑。
2、優化算法簡介
2.1 零介方法
零階方法之所以稱為零階方法是由于它只用到因變量而不用到它的偏導數。在零階方法中有兩個重要的概念:
    1)目標函數和狀態變量的逼近方法;
    2)由約束的優化問題轉換為非約束的優化問題。
逼近方法是指程序用曲線擬合來建立目標函數和設計變量之間的關系。這是通過用幾個設計變量序列計算目標函數然后求得各數據點間最小平方實現的。該結果曲線(或平面)叫做逼近。每次優化循環生成一個新的數據點,目標函數就完成一次更新。實際上是逼近被求解最小值而并非目標函數。狀態變量也是同樣處理的。每個狀態變量都生成一個逼近并在每次循環后更新。用戶可以控制優化近似的逼近曲線。可以指定線性擬合,平方擬合或平方差擬合。缺省情況下,用平方差擬合目標函數,用平方擬合狀態變量。用下列方法實現該控制功能:
    Command: OPEQN
    GUI: Main Menu>Design Opt>Method/Tool
    轉換為非約束問題的原因是狀態變量和設計變量的數值范圍約束了設計,優化問題就成為約束的優化問題。ANSYS程序將其轉化為非約束問題,因為后者的最小化方法比前者更有效率。轉換的實現方法是通過對目標函數逼近加罰函數的方法計入所加約束的。
收斂檢查:前面的或最佳設計是合理的而且滿足下列條件之一時,問題就是收斂的:
    1)目標函數值由最佳合理設計到當前設計的變化應小于目標函數允差。
    2)最后兩個設計之間的差值應小于目標函數允差。
    3)從當前設計到最佳合理設計所有設計變量的變化值應小于各自的允差。
    4)最后兩個設計所有設計變量的變化值應小于各自的允差。
但收斂并不代表實際的最小值已經得到了,只說明以上四個準則之一滿足了。因此,用戶必須確定當前設計優化的結果是否足夠。如果不足的話,就要另外做附加的優化分析。
對于零階方法,優化處理器開始通過隨機搜索建立狀態變量和目標函數的逼近。由于是隨機搜索,收斂的速度可能很慢。用戶有時可以通過給出多個合理的起始設計來加速收斂。只簡單的運行一系列的隨機搜索并刪除所有不合理的設計。也可以運行多次單獨的循環,并在每次運行前指定新的設計變量序列來生成起始設計序列。
2.2 一階方法
一階方法同零階方法一樣,一階方法通過對目標函數添加罰函數將問題轉換為非約束的。但是,與零階方法不同的是,一階方法將真實的有限元結果最小化,而不是對逼近數值進行操作。
一階方法使用因變量對設計變量的偏導數。在每次迭代中,梯度計算(用最大斜度法或共軛方向法)確定搜索方向,并用線搜索法對非約束問題進行最小化。因此,每次迭代都有一系列的子迭代(其中包括搜索方向和梯度計算)組成。這就使得一次優化迭代有多次分析循環。
    OPFRST命令(Main Menu>Design Opt>Method/Tool)有兩個輸入域可以用來改善一階方法的收斂。用戶可以指定計算梯度的設計變量范圍變化程度,也可以指定線搜索步長的范圍。一般來說,這兩個輸入值的缺省數值就足夠了。見ANSYS TheoryReference。
一階方法在收斂或中斷時結束。當當前的設計序列相對于前面的和最佳序列滿足下面任意一種情況時,問題就稱為收斂:
    1)目標函數值由最佳合理設計到當前設計的變化應小于目標函數允差。
    2)從當前設計到前面設計目標函數的變化值應小于允差。
    3)同時要求最后的迭代使用最大斜度搜索,否則要進行附加的迭代。
與零階方法相比,一階方法計算量大且結果精確。但是,精確度高并不能保證最佳求解。一階方法可能在不合理的設計序列上收斂。這時可能是找到了一個局部最小值,或是不存在合理設計空間。如果出現這種情況,可以使用零階方法,因其可以更好的研究整個設計空間。也可以先運行隨機搜索確定合理設計空間(如果存在的話),然后以合理設計序列為起點重新運行一階方法。一階方法更容易獲得局部最小值。(見后面“局部和全局最小值”的說明。)這是因為一階方法從設計空間的一個序列開始計算求解,如果起點很接近局部最小值的話,就會選擇該最小值而找不到全局最小值。
2.3 隨機搜索法
隨機搜索法[OPTYPE,RAND],程序完成指定次數的分析循環,并在每次循環中使用隨機搜索變量值。用戶可以用OPRAND命令(Main Menu>Design Opt>Method/Tool)指定最大迭代次數和最大合理設計數。如果給出了最大合理設計數,在達到這個數值時循環將終止,而忽略最大迭代次數是否達到。
隨機搜索法往往作為零階方法的先期處理。它也可以用來完成一些小的設計任務。例如可以做一系列的隨機搜索,然后通過查看結果來判斷當前設計空間是否合理。
2.4 等步長搜索法
等步長搜索法[OPTYPE,SWEEP]用于在設計空間內完成掃描分析。將生成n*NSPS個設計序列,n是設計變量的個數,NSPS是每個掃描中評估點的數目(由OPSWEEP命令指定)。對于每個設計變量,變量范圍將劃分為NSPS-1個相等的步長,進行NSPS次循環。問題的設計變量在每次循環中以步長遞增,其他的設計變量保持其參考值不變。設計序列中設計變量的參考值用OPSWEEP命令的Dset指定(Main Menu>Design Opt>Method/Tool)。
用下列方法圖示設計變量數值和響應變量的數值關系:
    Command: OPLSW
    GUI: Main Menu>Design Opt>Tool Results>Sweeps

理解ANSYS優化模塊的計算機程序的算法是很有必要的,也只有這樣才能弄清楚ANSYS優化設計的來龍去脈,本篇主要講述了ANSYS優化設計時最常用的優化技術,但因為ANSYS能夠兼容使用者自己開發的優化算法,所以ANSYS優化技術有其廣闊的提升和發展空間。
2.5 乘子計算法
乘子計算法[OPTYPE,FACT]用二階技術生成設計空間上極值點上的設計序列數值。(這個二階技術在每個設計變量的兩個極值點上取值。)可以用OPFACT命令(Main Menu>Design Opt>Method/Tool)指定是完成整體的還是部分子的評估。對于整體評估,程序進行2n次循環,n是設計變量的個數。1/2部分的評估進行2n/2次循環,依此類推。
可以用棒式圖和表格顯示目標函數或狀態變量的某些方面。例如,可以圖示每個設計變量對目標函數的主要作用。用戶同樣可以查看兩個和三個變量之間的互相作用。
用下列命令顯示棒式圖:
    Command: OPLFA
    GUI: Main Menu>Design Opt>Tool Results>Factorial
2.6 最優梯度法
最優梯度法[OPTYPE,GRAD]計算設計空間中某一點的梯度。梯度結果用于研究目標函數或狀態變量的敏感性。用下列方式指定在哪個設計序列計算梯度:Command: OPGRAD
GUI: Main Menu>Design Opt>Method/Tool
    用戶可以用圖顯示設計變量和響應變量的數值。縱坐標表示目標函數或狀態變量的實際數值。橫坐標表示設計變量一個小的(1%)變化值。用下列方法列表表示結果:
    Command: OPRGR
    GUI: Main Menu>Design Opt>Tool Results>Print
3、本篇總結
本篇介紹了ANSYS優化設計模塊集成的優化設計算法的基本思想,對想要進行學習和研究ANSYS優化設計的人來說,深刻的理解了這些算法才能更好的將優化設計應用于工程問題的分析,并且能夠將自己的優化思想轉換成優化算法集成到ANSYS平臺下,為自己的分析服務。