宋宏偉,劉浩
(1.大連民族學院土木建筑工程學院,遼寧大連 116605; 2.大連理工大學建設工程學部,遼寧大連 116024)
基于MATLAB與ANSYS的結(jié)構(gòu)優(yōu)化設計
宋宏偉1,劉浩2
(1.大連民族學院土木建筑工程學院,遼寧大連 116605; 2.大連理工大學建設工程學部,遼寧大連 116024)
遺傳算法是近些年逐漸發(fā)展起來的一種智能的優(yōu)化算法。MATLAB中的遺傳算法工具箱集成了當前比較成熟的各種遺傳操作算子,借助它可以方便地完成各種問題的優(yōu)化。為使遺傳算法更高效的應用于結(jié)構(gòu)優(yōu)化設計,研究了在MATLAB中調(diào)用ANSYS的方法,實現(xiàn)了MATLAB與ANSYS的數(shù)據(jù)傳遞,并用該方法對一鋼框架結(jié)構(gòu)進行了優(yōu)化設計,驗證了此方法的可行性。
遺傳算法;優(yōu)化設計;ANSYS;MATLAB
伴隨著數(shù)學、力學和計算機的發(fā)展,結(jié)構(gòu)優(yōu)化設計也逐漸發(fā)展、成熟起來。ANSYS是最早開發(fā)結(jié)構(gòu)優(yōu)化設計模塊的有限元分析軟件之一,它提供兩種優(yōu)化方法,即零階方法和一階方法。二者均是將約束的優(yōu)化問題轉(zhuǎn)化為非約束的優(yōu)化問題來求解。零階方法只用到因變量而不用它的偏導數(shù),其全局搜索能力很強,而局部搜索能力較差,研究表明,該方法可以快速達到最優(yōu)解的80%,但卻很難收斂到最優(yōu)解。一階方法使用因變量的導數(shù)值來確定搜索方向,其局部搜索能力很強,但全局搜索能力較差,很容易收斂到局部極小值點。遺傳算法是近些年逐漸發(fā)展起來的一種智能的優(yōu)化算法,它具有較強的全局搜索能力,并且可以與其他常規(guī)優(yōu)化算法相結(jié)合,進而高效、準確地解決大多數(shù)的工程優(yōu)化問題1-4。MATLAB中的遺傳算法工具箱集成了當前比較成熟的各種遺傳算子,借助它可以方便地完成各種問題的優(yōu)化求解。本文通過在MATLAB中將ANSYS作為子程序調(diào)用的方法來研究遺傳算法在工程結(jié)構(gòu)優(yōu)化中的應用。
遺傳算法(GA)最初是由美國Michigan大學的John Holland教授于1975年提出的,它將達爾文的生物進化理論應用于優(yōu)化設計中,把解空間的某個點集映射為生物學中的種群,將目標函數(shù)映射為種群所處的環(huán)境,因此按照生物進化理論的觀點,種群中的個體會不斷向著適應環(huán)境的方向進化,經(jīng)過若干代進化之后該種群所代表的解就會收斂到問題的最優(yōu)解。該方法最大的特點是全局搜索能力強,并且不需要編程人員對問題的優(yōu)化過程有太深的了解,只要選定了種群,指定了種群所處的環(huán)境,該方法就會自動的、智能地向最優(yōu)解進化[5]。遺傳算法中最基本的操作是遺傳操作,包括選擇、交叉和變異。自然界中環(huán)境按照適者生存的原則來選擇優(yōu)良個體,使其優(yōu)良基因能夠傳遞到下一代,遺傳算法中的選擇操作即是模擬這一過程。首先計算種群中每個個體的適應度(Fitness),然后按照適者生存的原則進行選擇操作。交叉操作是模擬生物進化中的有性繁殖過程,種群個體之間通過基因重組生成新的個體。生命體在進化過程中某些基因常常會發(fā)生變異,好的變異會被環(huán)境選擇并遺傳到下一代,而不好的變異則會被環(huán)境淘汰,因此這種基因變異對種群的進化有巨大的推動作用。遺傳算法中應用這種變異來產(chǎn)生新的個體,使種群中的基因更加豐富,有利于算法的收斂。
MATLAB是矩陣實驗室的簡稱,它具有豐富的矩陣操作命令。使用MATLAB來實現(xiàn)遺傳算法是非常方便的,即將種群的數(shù)據(jù)存入矩陣中,然后就可以對整個種群而不是單個個體進行操作,從而大大提高了計算效率。更重要的是,MATLAB本身還帶有遺傳算法工具箱,它集成了當前較成熟的各種遺傳操作算子和各種改進型遺傳算法,使遺傳算法優(yōu)化變的更加簡單、高效。其主程序ga.m的調(diào)用格式如下:
此外,也可使用工具箱的GUI界面(交互式圖形用戶界面)來執(zhí)行遺傳操作,其特點是簡潔、直觀。
MATLAB遺傳算法工具箱需要輸入適應度函數(shù)。對于簡單問題,其適應度函數(shù)很好編寫,但對于大型的工程問題,其目標函數(shù)和狀態(tài)變量需要用有限元計算才能得到,因為僅使用MATLAB語言編寫程序來實現(xiàn)往往是很復雜有時甚至是不可能的,必須借助于成熟的有限元計算程序,而ANSYS由于其自帶的APDL語言則成為了有限元計算的首選。
若要實現(xiàn)MATLAB對ANSYS的調(diào)用,首先要能實現(xiàn)MATLAB與ANSYS的數(shù)據(jù)傳遞,而二者都有很強的文件操作功能,這使數(shù)據(jù)傳遞的實現(xiàn)成為可能。MATLAB在調(diào)用ANSYS時的數(shù)據(jù)流向如圖1。
圖1 MATLAB與ANSYS的數(shù)據(jù)傳遞
MATLAB打開并讀、寫數(shù)據(jù)文件的基本步驟如下:
ANSYS程序提供了batch(批處理)運行方式,可以在不打開ANSYS程序界面的情況下后臺運行計算,并輸出結(jié)果,這使得在其他程序中調(diào)用ANSYS成為可能。MATLAB調(diào)用ANSYS的語句如下:
以一3層4跨平面鋼框架結(jié)構(gòu)為例,如圖2。為了減少設計變量個數(shù),各層梁的尺寸(bb×bh)均相同,梁寬bb的變化范圍為0.1~0.3 m,梁高的變化范圍為0.2~0.4 m,各層柱均為方柱(cb× cb),柱寬的變化范圍為0.2~0.5 m。初始截面尺寸為bb=0.2 m、bh=0.3 m、cb=0.3 m。頂層承受200 kN的均布荷載,其余各層均承受100 kN的均布荷載。材料彈性模量為210 GPa,拉壓許用應力均為235 MPa。用混合遺傳算法優(yōu)化該結(jié)構(gòu),使其所用鋼材的體積最小。
圖2 平面框架結(jié)構(gòu)
為了對比,本文分別采用MATLAB遺傳算法工具箱中的混合遺傳算法及ANSYS中的零階方法、一階方法3種方法對該結(jié)構(gòu)進行了優(yōu)化設計,對比結(jié)果見表1。
表1 優(yōu)化設計結(jié)果
由表1可以看出,3種優(yōu)化方法中基于MATLAB與ANSYS的混合遺傳算法的精度最好,其最大應力最接近鋼材的容許應力,用鋼量最小。而零階方法的精度最差,其計算用鋼量與混合遺傳算法的計算用鋼量相比增大了16.8%。一階方法的計算結(jié)果與零階方法的計算結(jié)果稍好,但其用鋼量仍然比混合遺傳算法增大了8%。
MATLAB遺傳算法工具箱具有很強的優(yōu)化功能,且其操作簡單、直觀,而ANSYS又是通用大型有限元分析軟件。本文充分利用了二者的優(yōu)勢,實現(xiàn)了MATLAB與ANSYS的數(shù)據(jù)傳遞和調(diào)用,對一典型鋼框架結(jié)構(gòu)進行了優(yōu)化設計,驗證了該方法的可行性。但從分析精度來看,基于MATLAB與ANSYS的混合遺傳算法要優(yōu)于零階方法和一階方法。然而,從分析成本來看,混合遺傳算法的分析成本要遠遠的高于零階方法和一階方法,這是由于MATLAB與ANSYS的數(shù)據(jù)傳遞是間接的,每次循環(huán)過程計算機都要進行相應文件的讀取與寫入操作,占用了大部分的分析時間。因此,將該方法應用于大型結(jié)構(gòu)的優(yōu)化設計還需要進一步的探索與驗證。
[1]施雷,王琦,張文鵬,等.改進遺傳算法在桁架結(jié)構(gòu)優(yōu)化設計中的應用[J].南昌航空大學學報,2009 (1):32-36.
[2]楊周妮,吳作偉,雷鐵安,等.ANSYS優(yōu)化方法與遺傳算法在結(jié)構(gòu)優(yōu)化方面的比較[J].自動化技術與應用,2004,23(1):4-7.
[3]孫剛.基于ANSYS平臺的改進遺傳算法在結(jié)構(gòu)優(yōu)化中的研究和探討[D].南寧:廣西大學,2005.
[4]尚曉江,邱峰,趙海峰,等.ANSYS結(jié)構(gòu)有限元高級分析方法與范例應用[M].北京:中國水利水電出版社,2008.
[5]白新理.結(jié)構(gòu)優(yōu)化設計[M].河南:黃河水利出版社,2008.
Optimum Structural Design Based on MATLAB and ANSYS
SONG Hong-wei1,LIU Hao2
(1.Department of Civil Engineering,Dalian Nationalities University,Dalian Liaoning 116605,China; 2.Faculty of Infrastructure Engineering,Dalian University of Technology,Dalian Liaoning 116024,China)
The genetic algorithm is one kind of intelligent optimized algorithm which develops gradually in recent years.It has strong overall situation search ability.It also can solve most problems of the optimization of the engineering[1-3]efficiently and accurately through the combination with.There are varieties of mature genetic operators integrated in the genetic algorithm toolbox of the MATLAB,and we can complete variety of optimization problems easily through it.In order to make the genetic algorithm apply to optimum structural design,we studied the method of calling ANSYS in MATLAB,and completed the data transfer between MATLAB and ANSYS.Then we used this optimum design method on a steel frame structure,and veritied the feasibility of this method.
genetic algorithm;optimum design;ANSYS;MATLAB
TU391
A
1009-315X(2011)03-0284-04
2011-04-11;最后
2011-04-25
宋宏偉(1978-),男,河南漯河人,講師,大連理工大學建設工程學部博士研究生,主要從事工程結(jié)構(gòu)及新材料的研究。
(責任編輯 鄒永紅)