1、引言
ANSYS程序最常見(jiàn)的優(yōu)化算法有零階方法,一階方法,隨機(jī)搜索法,等步長(zhǎng)搜索法,乘子計(jì)算法和最優(yōu)梯度法。本篇僅作簡(jiǎn)單描述,更多的細(xì)節(jié)參見(jiàn)ANSYS Theory Reference chapter 20。要想深刻的了解這些算法,需要具有一定數(shù)學(xué)知識(shí),并有一定的興趣愛(ài)好才能精下心了好好的理解和學(xué)習(xí)這一部分的理論性內(nèi)容,但這也是快速提升自己水平的好途徑。
2、優(yōu)化算法簡(jiǎn)介
2.1 零介方法
零階方法之所以稱為零階方法是由于它只用到因變量而不用到它的偏導(dǎo)數(shù)。在零階方法中有兩個(gè)重要的概念:
1)目標(biāo)函數(shù)和狀態(tài)變量的逼近方法;
2)由約束的優(yōu)化問(wèn)題轉(zhuǎn)換為非約束的優(yōu)化問(wèn)題。
逼近方法是指程序用曲線擬合來(lái)建立目標(biāo)函數(shù)和設(shè)計(jì)變量之間的關(guān)系。這是通過(guò)用幾個(gè)設(shè)計(jì)變量序列計(jì)算目標(biāo)函數(shù)然后求得各數(shù)據(jù)點(diǎn)間最小平方實(shí)現(xiàn)的。該結(jié)果曲線(或平面)叫做逼近。每次優(yōu)化循環(huán)生成一個(gè)新的數(shù)據(jù)點(diǎn),目標(biāo)函數(shù)就完成一次更新。實(shí)際上是逼近被求解最小值而并非目標(biāo)函數(shù)。狀態(tài)變量也是同樣處理的。每個(gè)狀態(tài)變量都生成一個(gè)逼近并在每次循環(huán)后更新。用戶可以控制優(yōu)化近似的逼近曲線??梢灾付ň€性擬合,平方擬合或平方差擬合。缺省情況下,用平方差擬合目標(biāo)函數(shù),用平方擬合狀態(tài)變量。用下列方法實(shí)現(xiàn)該控制功能:
Command: OPEQN
GUI: Main Menu>Design Opt>Method/Tool
轉(zhuǎn)換為非約束問(wèn)題的原因是狀態(tài)變量和設(shè)計(jì)變量的數(shù)值范圍約束了設(shè)計(jì),優(yōu)化問(wèn)題就成為約束的優(yōu)化問(wèn)題。ANSYS程序?qū)⑵滢D(zhuǎn)化為非約束問(wèn)題,因?yàn)楹笳叩淖钚』椒ū惹罢吒行省^D(zhuǎn)換的實(shí)現(xiàn)方法是通過(guò)對(duì)目標(biāo)函數(shù)逼近加罰函數(shù)的方法計(jì)入所加約束的。
收斂檢查:前面的或最佳設(shè)計(jì)是合理的而且滿足下列條件之一時(shí),問(wèn)題就是收斂的:
1)目標(biāo)函數(shù)值由最佳合理設(shè)計(jì)到當(dāng)前設(shè)計(jì)的變化應(yīng)小于目標(biāo)函數(shù)允差。
2)最后兩個(gè)設(shè)計(jì)之間的差值應(yīng)小于目標(biāo)函數(shù)允差。
3)從當(dāng)前設(shè)計(jì)到最佳合理設(shè)計(jì)所有設(shè)計(jì)變量的變化值應(yīng)小于各自的允差。
4)最后兩個(gè)設(shè)計(jì)所有設(shè)計(jì)變量的變化值應(yīng)小于各自的允差。
但收斂并不代表實(shí)際的最小值已經(jīng)得到了,只說(shuō)明以上四個(gè)準(zhǔn)則之一滿足了。因此,用戶必須確定當(dāng)前設(shè)計(jì)優(yōu)化的結(jié)果是否足夠。如果不足的話,就要另外做附加的優(yōu)化分析。
對(duì)于零階方法,優(yōu)化處理器開(kāi)始通過(guò)隨機(jī)搜索建立狀態(tài)變量和目標(biāo)函數(shù)的逼近。由于是隨機(jī)搜索,收斂的速度可能很慢。用戶有時(shí)可以通過(guò)給出多個(gè)合理的起始設(shè)計(jì)來(lái)加速收斂。只簡(jiǎn)單的運(yùn)行一系列的隨機(jī)搜索并刪除所有不合理的設(shè)計(jì)。也可以運(yùn)行多次單獨(dú)的循環(huán),并在每次運(yùn)行前指定新的設(shè)計(jì)變量序列來(lái)生成起始設(shè)計(jì)序列。
2.2 一階方法
一階方法同零階方法一樣,一階方法通過(guò)對(duì)目標(biāo)函數(shù)添加罰函數(shù)將問(wèn)題轉(zhuǎn)換為非約束的。但是,與零階方法不同的是,一階方法將真實(shí)的有限元結(jié)果最小化,而不是對(duì)逼近數(shù)值進(jìn)行操作。
一階方法使用因變量對(duì)設(shè)計(jì)變量的偏導(dǎo)數(shù)。在每次迭代中,梯度計(jì)算(用最大斜度法或共軛方向法)確定搜索方向,并用線搜索法對(duì)非約束問(wèn)題進(jìn)行最小化。因此,每次迭代都有一系列的子迭代(其中包括搜索方向和梯度計(jì)算)組成。這就使得一次優(yōu)化迭代有多次分析循環(huán)。
OPFRST命令(Main Menu>Design Opt>Method/Tool)有兩個(gè)輸入域可以用來(lái)改善一階方法的收斂。用戶可以指定計(jì)算梯度的設(shè)計(jì)變量范圍變化程度,也可以指定線搜索步長(zhǎng)的范圍。一般來(lái)說(shuō),這兩個(gè)輸入值的缺省數(shù)值就足夠了。見(jiàn)ANSYS Theory Reference。
一階方法在收斂或中斷時(shí)結(jié)束。當(dāng)當(dāng)前的設(shè)計(jì)序列相對(duì)于前面的和最佳序列滿足下面任意一種情況時(shí),問(wèn)題就稱為收斂:
1)目標(biāo)函數(shù)值由最佳合理設(shè)計(jì)到當(dāng)前設(shè)計(jì)的變化應(yīng)小于目標(biāo)函數(shù)允差。
2)從當(dāng)前設(shè)計(jì)到前面設(shè)計(jì)目標(biāo)函數(shù)的變化值應(yīng)小于允差。
3)同時(shí)要求最后的迭代使用最大斜度搜索,否則要進(jìn)行附加的迭代。
與零階方法相比,一階方法計(jì)算量大且結(jié)果精確。但是,精確度高并不能保證最佳求解。一階方法可能在不合理的設(shè)計(jì)序列上收斂。這時(shí)可能是找到了一個(gè)局部最小值,或是不存在合理設(shè)計(jì)空間。如果出現(xiàn)這種情況,可以使用零階方法,因其可以更好的研究整個(gè)設(shè)計(jì)空間。也可以先運(yùn)行隨機(jī)搜索確定合理設(shè)計(jì)空間(如果存在的話),然后以合理設(shè)計(jì)序列為起點(diǎn)重新運(yùn)行一階方法。一階方法更容易獲得局部最小值。(見(jiàn)后面“局部和全局最小值”的說(shuō)明。)這是因?yàn)橐浑A方法從設(shè)計(jì)空間的一個(gè)序列開(kāi)始計(jì)算求解,如果起點(diǎn)很接近局部最小值的話,就會(huì)選擇該最小值而找不到全局最小值。
2.3 隨機(jī)搜索法
隨機(jī)搜索法[OPTYPE,RAND],程序完成指定次數(shù)的分析循環(huán),并在每次循環(huán)中使用隨機(jī)搜索變量值。用戶可以用OPRAND命令(Main Menu>Design Opt>Method/Tool)指定最大迭代次數(shù)和最大合理設(shè)計(jì)數(shù)。如果給出了最大合理設(shè)計(jì)數(shù),在達(dá)到這個(gè)數(shù)值時(shí)循環(huán)將終止,而忽略最大迭代次數(shù)是否達(dá)到。
隨機(jī)搜索法往往作為零階方法的先期處理。它也可以用來(lái)完成一些小的設(shè)計(jì)任務(wù)。例如可以做一系列的隨機(jī)搜索,然后通過(guò)查看結(jié)果來(lái)判斷當(dāng)前設(shè)計(jì)空間是否合理。
2.4 等步長(zhǎng)搜索法
等步長(zhǎng)搜索法[OPTYPE,SWEEP]用于在設(shè)計(jì)空間內(nèi)完成掃描分析。將生成n*NSPS個(gè)設(shè)計(jì)序列,n是設(shè)計(jì)變量的個(gè)數(shù),NSPS是每個(gè)掃描中評(píng)估點(diǎn)的數(shù)目(由OPSWEEP命令指定)。對(duì)于每個(gè)設(shè)計(jì)變量,變量范圍將劃分為NSPS-1個(gè)相等的步長(zhǎng),進(jìn)行NSPS次循環(huán)。問(wèn)題的設(shè)計(jì)變量在每次循環(huán)中以步長(zhǎng)遞增,其他的設(shè)計(jì)變量保持其參考值不變。設(shè)計(jì)序列中設(shè)計(jì)變量的參考值用OPSWEEP命令的Dset指定(Main Menu>Design Opt>Method/Tool)。
用下列方法圖示設(shè)計(jì)變量數(shù)值和響應(yīng)變量的數(shù)值關(guān)系:
Command: OPLSW
GUI: Main Menu>Design Opt>Tool Results>Sweeps
2.5 乘子計(jì)算法
乘子計(jì)算法[OPTYPE,F(xiàn)ACT]用二階技術(shù)生成設(shè)計(jì)空間上極值點(diǎn)上的設(shè)計(jì)序列數(shù)值。(這個(gè)二階技術(shù)在每個(gè)設(shè)計(jì)變量的兩個(gè)極值點(diǎn)上取值。)可以用OPFACT命令(Main Menu>Design Opt>Method/Tool)指定是完成整體的還是部分子的評(píng)估。對(duì)于整體評(píng)估,程序進(jìn)行2n次循環(huán),n是設(shè)計(jì)變量的個(gè)數(shù)。1/2部分的評(píng)估進(jìn)行2n/2次循環(huán),依此類推。
可以用棒式圖和表格顯示目標(biāo)函數(shù)或狀態(tài)變量的某些方面。例如,可以圖示每個(gè)設(shè)計(jì)變量對(duì)目標(biāo)函數(shù)的主要作用。用戶同樣可以查看兩個(gè)和三個(gè)變量之間的互相作用。
用下列命令顯示棒式圖:
Command: OPLFA
GUI: Main Menu>Design Opt>Tool Results>Factorial
2.6 最優(yōu)梯度法
最優(yōu)梯度法[OPTYPE,GRAD]計(jì)算設(shè)計(jì)空間中某一點(diǎn)的梯度。梯度結(jié)果用于研究目標(biāo)函數(shù)或狀態(tài)變量的敏感性。用下列方式指定在哪個(gè)設(shè)計(jì)序列計(jì)算梯度:Command: OPGRAD
GUI: Main Menu>Design Opt>Method/Tool
用戶可以用圖顯示設(shè)計(jì)變量和響應(yīng)變量的數(shù)值。縱坐標(biāo)表示目標(biāo)函數(shù)或狀態(tài)變量的實(shí)際數(shù)值。橫坐標(biāo)表示設(shè)計(jì)變量一個(gè)小的(1%)變化值。用下列方法列表表示結(jié)果:
Command: OPRGR
GUI: Main Menu>Design Opt>Tool Results>Print
3、本篇總結(jié)
本篇介紹了ANSYS優(yōu)化設(shè)計(jì)模塊集成的優(yōu)化設(shè)計(jì)算法的基本思想,對(duì)想要進(jìn)行學(xué)習(xí)和研究ANSYS優(yōu)化設(shè)計(jì)的人來(lái)說(shuō),深刻的理解了這些算法才能更好的將優(yōu)化設(shè)計(jì)應(yīng)用于工程問(wèn)題的分析,并且能夠?qū)⒆约旱膬?yōu)化思想轉(zhuǎn)換成優(yōu)化算法集成到ANSYS平臺(tái)下,為自己的分析服務(wù)。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書(shū)Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書(shū) AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF