[發(fā)明專(zhuān)利]一種基于ANSYS和MATLAB數(shù)據(jù)接口的結(jié)構(gòu)拓?fù)鋬?yōu)化設(shè)計(jì)平臺(tái)在審
| 申請(qǐng)?zhí)枺?/td> | 201811018803.4 | 申請(qǐng)日: | 2018-09-03 |
| 公開(kāi)(公告)號(hào): | CN109344440A | 公開(kāi)(公告)日: | 2019-02-15 |
| 發(fā)明(設(shè)計(jì))人: | 李迎 | 申請(qǐng)(專(zhuān)利權(quán))人: | 李迎 |
| 主分類(lèi)號(hào): | G06F17/50 | 分類(lèi)號(hào): | G06F17/50 |
| 代理公司: | 中國(guó)人民解放軍防化研究院專(zhuān)利服務(wù)中心 11046 | 代理人: | 劉永盛 |
| 地址: | 541004 廣西壯族自治*** | 國(guó)省代碼: | 廣西;45 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 結(jié)構(gòu)優(yōu)化 結(jié)構(gòu)拓?fù)鋬?yōu)化 設(shè)計(jì)平臺(tái) 結(jié)構(gòu)分析 主程序調(diào)用 優(yōu)化 編制優(yōu)化 模塊執(zhí)行 軟件實(shí)現(xiàn) 算法提供 拓?fù)湫螒B(tài) 主程序 算法 殺死 后臺(tái) | ||
1.一種基于ANSYS和MATLAB數(shù)據(jù)接口的結(jié)構(gòu)拓?fù)鋬?yōu)化設(shè)計(jì)平臺(tái),其特征是:ANSYS和MATLAB數(shù)據(jù)接口的結(jié)構(gòu)拓?fù)鋬?yōu)化平臺(tái)包括結(jié)構(gòu)優(yōu)化、結(jié)構(gòu)分析和執(zhí)行優(yōu)化三個(gè)部分,結(jié)構(gòu)分析是結(jié)構(gòu)優(yōu)化的基礎(chǔ),結(jié)構(gòu)優(yōu)化是執(zhí)行優(yōu)化的基礎(chǔ);
(1)結(jié)構(gòu)優(yōu)化:以MATLAB為平臺(tái)編制遺傳算法主程序,對(duì)于遺傳算子的操作編制自定義函數(shù)為主程序調(diào)用,結(jié)構(gòu)優(yōu)化方法步驟如下:
1)主程序中首先應(yīng)包括調(diào)用ANSYS讀取APDL命令流文件的程序
①技術(shù)原理:通過(guò)由MATLAB提供的用以執(zhí)行shell命令的操作符來(lái)實(shí)現(xiàn);
②技術(shù)特征:
!”D:\Program Files\ANSYS Inc\v120\ANSYS\bin\intel\ansys120.exe”-b-i inputfile-o out file.bat
其中,各參數(shù)具體內(nèi)容如下:
”D:\Program Files\ANSYS Inc\v120\ANSYS\bin\intel\ansys120.exe”:ANSYS軟件的安裝途徑,版本為12.0;
-b:指定使用Batch模式運(yùn)行ANSYS;
-i:指定輸入文件,為APDL命令流文件;
-o:指定輸出文件,為求解一次的結(jié)果,是指在Gui方式運(yùn)行output windows中的輸出內(nèi)容;
③作用:此時(shí)ANSYS的Batch模式后臺(tái)啟動(dòng),進(jìn)入到結(jié)構(gòu)分析部分;
④效果:結(jié)構(gòu)分析結(jié)束后,計(jì)算出當(dāng)前各單元應(yīng)力水平,用每個(gè)單元的應(yīng)力水平即該單元的當(dāng)量應(yīng)力與結(jié)構(gòu)最大當(dāng)量應(yīng)力的比值來(lái)評(píng)價(jià)該單元的靈敏度,把單元靈敏度作為該個(gè)體適應(yīng)值的度量,作為考量單元存活與否的標(biāo)準(zhǔn),并以txt格式存儲(chǔ)在主程序所在的目錄下,待主程序調(diào)用;
2)主程序調(diào)用-M文件,該文件中包括對(duì)應(yīng)以下內(nèi)容的程序:讀取適應(yīng)值txt文件;將適應(yīng)值按照從小到大進(jìn)行排序;排序結(jié)果仍存儲(chǔ)并覆蓋于原適應(yīng)值txt文件中,保存于主程序的目錄下,待主程序調(diào)用;
①技術(shù)原理:MATLAB調(diào)用其目錄下的包括每個(gè)單元適應(yīng)值的-M文件,在該文件中,每個(gè)單元適應(yīng)值和單元編號(hào)均豎向排列,第一列為單元序號(hào),第二列為對(duì)應(yīng)單元的適應(yīng)值,因此按照第二列適應(yīng)值進(jìn)行排序,排序結(jié)果覆蓋原文件;
②技術(shù)特征:
d=load(′c:\shiyingzhi.txt′); %讀入數(shù)據(jù)并存入變量
d=[[1:z]′,d];
d=sortrows(d,2); %按第二列排序,得到排好序的適應(yīng)值
d2=d(:,2);
[row,col]=size(d); %數(shù)據(jù)的維數(shù),row表示塊的數(shù)量
其中:z為在程序開(kāi)始運(yùn)行前需輸入的初始模型的總單元數(shù);
③作用:將作為考量單元存活與否標(biāo)準(zhǔn)的各單元適應(yīng)值進(jìn)行大小排序;
④效果:為下一步將排序在后的單元進(jìn)行遺傳算子的操作提供依據(jù);
3)主程序讀取txt文件適應(yīng)值排序結(jié)果,調(diào)用自定義函數(shù)完成選擇、變異、雜交遺傳算子的命令;
①技術(shù)原理:漸進(jìn)遺傳新型優(yōu)化算法,將初始結(jié)構(gòu)有限元離散成的單元映射為遺傳算法種群中的個(gè)體,每個(gè)單元映射一個(gè)n位二進(jìn)制串,用以代表單元去留的一種狀態(tài);在優(yōu)化開(kāi)始前,個(gè)體的n位二進(jìn)制串中的每一位均為1;此方法參照ANSYS自帶的Topology Opt優(yōu)化處理器的分析原理,把單元偽密度ηipseudodensity作為程序預(yù)先設(shè)定的優(yōu)化變量,ηi在(0,1)范圍內(nèi)變化,當(dāng)ηi=0時(shí)表示i單元應(yīng)從結(jié)構(gòu)中刪除,ηi=1表示i單元應(yīng)在結(jié)構(gòu)中被保留;
作用選擇算子:對(duì)靈敏度大小排序在后的m個(gè)個(gè)體以各自的選擇概率作用變異算子,采用“賭輪方法”計(jì)算選擇概率,將各個(gè)體被選中的概率映射為其適應(yīng)值與群體總適應(yīng)值的比值;作用變異算子:將原來(lái)代表單元應(yīng)被保留的基因全為1的染色體隨機(jī)尋找一個(gè)變異的位置點(diǎn),將該處的基因變?yōu)?;作用雜交算子:對(duì)群體隨機(jī)配對(duì)兩兩作用單點(diǎn)雜交算子,產(chǎn)生包括更復(fù)雜基因的新個(gè)體;
②技術(shù)特征:
③作用:得到基因全為0的染色體對(duì)應(yīng)的單元編號(hào)y,參照ANSYS自帶的Topology Opt優(yōu)化處理器的分析原理,則該單元偽密度為0,應(yīng)執(zhí)行舍去該單元的操作;
④效果:識(shí)別到執(zhí)行優(yōu)化部分進(jìn)行“單元生死”操作的確切位置;
4)MATLAB中輸出y的結(jié)果,將該結(jié)果寫(xiě)出并保存在另一txt文檔中供ANSYS讀??;
①技術(shù)原理:采用MATLAB寫(xiě)出數(shù)據(jù)文件的方法;
②技術(shù)特征:
y=d(x,1);
vv=load(′c:\duqu.txt′);
fid=fopen(′c:\duqu.txt′,′wt′);%以讀寫(xiě)方式打開(kāi)默認(rèn)目錄下的輸出文件名及格式
vv=[vv;y];
fprintf(fid,′%g\n′,vv); %以某種格式讀寫(xiě)關(guān)于變量vv的數(shù)據(jù)
fclose(fid);
③作用:將MATLAB輸出的應(yīng)刪除單元編號(hào)y的結(jié)果從MATLAB中寫(xiě)出;
④效果:供ANSYS調(diào)用,服務(wù)于執(zhí)行優(yōu)化環(huán)節(jié);
(2)結(jié)構(gòu)分析:以MATLAB為平臺(tái)運(yùn)行優(yōu)化程序的過(guò)程中,需二次進(jìn)入到結(jié)構(gòu)分析部分,由MATLAB調(diào)用APDL命令流文件,開(kāi)啟ANSYS的Batch模式進(jìn)行結(jié)構(gòu)分析和求解,并存儲(chǔ)在相應(yīng)文件中供MATLAB讀取并繼續(xù)下一步驟,結(jié)構(gòu)分析方法步驟如下:
1)第一個(gè)APDL命令流文件嵌于遺傳算法主程序需計(jì)算結(jié)構(gòu)各單元的適應(yīng)值時(shí),該文件包括對(duì)應(yīng)以下內(nèi)容的程序:根據(jù)工程實(shí)際受力情況和約束情況進(jìn)行分析和簡(jiǎn)化,建立初始結(jié)構(gòu)有限元模型并施加荷載和約束,劃分有限元網(wǎng)格,完成結(jié)構(gòu)靜力分析,計(jì)算出每個(gè)單元的當(dāng)量應(yīng)力;讀取并計(jì)算出各單元靈敏度作為適應(yīng)值;將適應(yīng)值寫(xiě)入txt文件,供MATLAB讀??;
①技術(shù)原理:采用ANSYS的Batch模式完成以上操作,運(yùn)行Batch模式需要命令流文件和相應(yīng)的調(diào)用命令;命令流文件采用ANSYS提供的內(nèi)置宏語(yǔ)言APDL語(yǔ)言對(duì)分析和優(yōu)化過(guò)程進(jìn)行編程得到,或在GUI方式下運(yùn)行得到的分析文件和優(yōu)化控制文件的基礎(chǔ)上,通過(guò)合并和修改得到;APDL命令流中還包括ANSYS寫(xiě)入數(shù)據(jù)到數(shù)據(jù)文件的語(yǔ)句格式;
②技術(shù)特征:
*cfopen,F(xiàn)name,Ext
*vwrite,Par
(format)
*cfclose
其中,各參數(shù)具體內(nèi)容如下:
Fname:文件名帶路徑,默認(rèn)路徑為工作目錄;
Ext:文件的擴(kuò)展名;
Par:允許寫(xiě)出的數(shù)據(jù)為常數(shù)、變量、數(shù)組;
Format:輸出格式說(shuō)明,以(F10.4)為例,總長(zhǎng)10個(gè)數(shù)字字符,小數(shù)點(diǎn)后保留四位數(shù)字;
③所起的作用:計(jì)算出結(jié)構(gòu)中各單元適應(yīng)值,并將其寫(xiě)入txt文件;
④達(dá)到的效果:APDL命令流文件成為MATLAB的求解器,服務(wù)于結(jié)構(gòu)優(yōu)化部分;
2)第二個(gè)APDL命令流文件嵌于執(zhí)行優(yōu)化部分以及執(zhí)行優(yōu)化后重新進(jìn)行靜力分析計(jì)算各單元新的適應(yīng)值并覆蓋原適應(yīng)值txt文檔,供主程序讀取進(jìn)行新一輪循環(huán)過(guò)程時(shí),該文件包括對(duì)應(yīng)以下內(nèi)容的程序:結(jié)構(gòu)建模、加載、約束、求解;將含待殺死單元的txt文件讀入ANSYS;執(zhí)行殺死單元的操作;重新計(jì)算各單元適應(yīng)值;
①技術(shù)原理:采用ANSYS的Batch模式完成以上操作,APDL命令流中應(yīng)包括ANSYS讀取數(shù)據(jù)文件的語(yǔ)句格式;執(zhí)行單元?dú)⑺啦僮骱?,結(jié)構(gòu)因形狀發(fā)生改變,性能指標(biāo)隨之發(fā)生改變;因此需重新計(jì)算各單元適應(yīng)值,增加結(jié)構(gòu)重分析的頻率,在程序出現(xiàn)應(yīng)刪除單元對(duì)應(yīng)的編號(hào)之后,第一時(shí)間返回靜力分析步驟獲取此時(shí)全體存活單元的相對(duì)應(yīng)力分布情況,確保結(jié)構(gòu)在相對(duì)剛度發(fā)生改變時(shí)獲取到最新的刪除單元評(píng)判指標(biāo);
②技術(shù)特征:
*dim,Par,array,a
*vread,ParR,F(xiàn)name,Ext,--,Label,n1,n2,n3,NSKIP
(format)
各參數(shù)具體內(nèi)容如下:
ParR:讀入數(shù)據(jù)的賦值對(duì)象數(shù)組;
Fname:文件名帶路徑,默認(rèn)路徑為工作目錄;
Ext:文件擴(kuò)展名;
--:表示該域是無(wú)需用到的值域;
Label:取值順序標(biāo)識(shí)字;
Fname:以某種格式讀取數(shù)據(jù);
n1,n2,n3:數(shù)組的行數(shù)、列數(shù)、面數(shù);
NSKIP:讀入數(shù)據(jù)文件時(shí)需跳過(guò)的開(kāi)始行數(shù),默認(rèn)為0,表示從第一行開(kāi)始讀入數(shù)據(jù);
③作用:將應(yīng)刪除的單元y讀入ANSYS中;
④效果:識(shí)別到執(zhí)行“單元生死”選項(xiàng)的確切位置,服務(wù)于執(zhí)行優(yōu)化環(huán)節(jié);
(3)執(zhí)行優(yōu)化:基于APDL技術(shù)和ANSYS的“單元生死”功能執(zhí)行單元?dú)⑺烂?,?zhí)行優(yōu)化方法步驟如下:
1)MATLAB主程序調(diào)用ANSYS,讀取APDL命令流文件,于ANSYS的Batch模式中,執(zhí)行刪除單元y的操作;
①技術(shù)原理:運(yùn)用ANSYS的“單元生死”功能,將其語(yǔ)句格式寫(xiě)入APDL命令流中;
②技術(shù)特征:
/sol
ekill,y
solve
esel,s,live
eplot
finish
③作用:殺死結(jié)構(gòu)優(yōu)化部分計(jì)算出的應(yīng)刪除單元y;
④效果:使剩余結(jié)構(gòu)構(gòu)成的結(jié)構(gòu)應(yīng)力分布趨于更加均勻,呈現(xiàn)合理空間分布形式;
2)判斷是否滿足收斂條件,不滿足則重復(fù)結(jié)構(gòu)優(yōu)化、結(jié)構(gòu)分析、執(zhí)行優(yōu)化三環(huán)節(jié),直至滿足收斂條件;滿足收斂條件則終止循環(huán);
①技術(shù)原理:收斂條件為剩下單元個(gè)數(shù)與預(yù)設(shè)單元個(gè)數(shù)的大小關(guān)系,刪除體積率來(lái)設(shè)置預(yù)設(shè)單元個(gè)數(shù);
②技術(shù)特征:
if(n>=row-length(dz))%塊的數(shù)量少于既定的值,結(jié)束迭代
v=1;
return;
end
③作用:通過(guò)循環(huán)過(guò)程不斷刪除應(yīng)力條件不符合要求的單元;
④效果:循環(huán)終止時(shí),在ANSYS中呈現(xiàn)預(yù)設(shè)刪除率的結(jié)構(gòu)最優(yōu)拓?fù)錁?gòu)型。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于李迎,未經(jīng)李迎許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811018803.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語(yǔ)言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫(kù)結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 一種高速立式加工中心大跨度橫梁拓?fù)鋬?yōu)化設(shè)計(jì)方法
- 一種混合網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)優(yōu)化設(shè)計(jì)方法
- 一種機(jī)床床身內(nèi)部結(jié)構(gòu)優(yōu)化設(shè)計(jì)方法
- 基于生長(zhǎng)性進(jìn)化結(jié)構(gòu)拓?fù)鋬?yōu)化方法
- 一種基于連續(xù)體結(jié)構(gòu)拓?fù)鋬?yōu)化的樹(shù)狀結(jié)構(gòu)拓?fù)鋭?chuàng)構(gòu)方法
- 一種攪拌摩擦焊機(jī)器人立柱結(jié)構(gòu)的拓?fù)鋬?yōu)化設(shè)計(jì)方法
- 一種基于重采樣粒子群優(yōu)化的結(jié)構(gòu)拓?fù)鋬?yōu)化求解方法
- 一種基于變密度法的應(yīng)力和應(yīng)變能雙約束的拓?fù)鋬?yōu)化方法
- 一種基于多種群遺傳算法的機(jī)械結(jié)構(gòu)拓?fù)鋬?yōu)化方法
- 風(fēng)力發(fā)電機(jī)組主機(jī)架的拓?fù)鋬?yōu)化設(shè)計(jì)方法





