• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于A(yíng)NSYS和MATLAB的優(yōu)化設(shè)計(jì)

      2016-10-13 02:09:26李成陽(yáng)何劍平
      船電技術(shù) 2016年5期
      關(guān)鍵詞:調(diào)用命令適應(yīng)度

      李成陽(yáng),何劍平,鄭 軍

      ?

      基于A(yíng)NSYS和MATLAB的優(yōu)化設(shè)計(jì)

      李成陽(yáng),何劍平,鄭 軍

      (武漢船用電力推進(jìn)裝置研究所,武漢430064)

      針對(duì)ANSYS在優(yōu)化設(shè)計(jì)上存在的不足,本文提出了一種通過(guò)MATLAB和ANSYS共同進(jìn)行有限元分析和優(yōu)化設(shè)計(jì)的方法。ANSYS執(zhí)行有限元分析,MATLAB調(diào)用ANSYS的結(jié)果,通過(guò)優(yōu)化算法工具箱完成優(yōu)化設(shè)計(jì)。以高溫超導(dǎo)電機(jī)為例,介紹了兩個(gè)軟件實(shí)現(xiàn)聯(lián)合優(yōu)化的過(guò)程。

      ANSYS MATLAB 有限元分析 諧波優(yōu)化

      0 引言

      ANSYS是世界上主流的有限元分析軟件,被廣泛的應(yīng)用在結(jié)構(gòu)力學(xué)、電磁場(chǎng)、溫度場(chǎng)等多個(gè)領(lǐng)域中。ANSYS不僅具有強(qiáng)大的前后處理功能,還可以通過(guò)ANSYS參數(shù)化設(shè)計(jì)語(yǔ)言(ANSYS Parametric Design Language, APDL)來(lái)實(shí)現(xiàn)有限元分析的二次開(kāi)發(fā)工作。但是ANSYS在完成設(shè)計(jì)變量的優(yōu)化方面有以下不足[1]:1)ANSYS優(yōu)化設(shè)計(jì)模塊優(yōu)化功能有限,設(shè)計(jì)變量超過(guò)20個(gè)之后有可能會(huì)收斂到局部最優(yōu)解,并且只能添加數(shù)值形式的約束條件。2)使用ANSYS的優(yōu)化模塊需要購(gòu)買(mǎi)額外授權(quán),價(jià)格不菲。3)APDL中包含的命令更多的偏向于建模和有限元分析,在數(shù)值計(jì)算和矩陣操作方面較為不足。APDL通過(guò)ANSYS的命令行窗口進(jìn)行編譯,缺少功能強(qiáng)大的調(diào)試工具。4)APDL的大多數(shù)語(yǔ)法來(lái)自于早期的科學(xué)計(jì)算語(yǔ)言FORTRAN-77,和目前主流的C語(yǔ)言區(qū)別較大,同時(shí)命令中包含的參數(shù)多,比較難以記憶,學(xué)習(xí)成本高。

      MATLAB是功能強(qiáng)大的科學(xué)計(jì)算軟件,具有豐富的矩陣操作命令和數(shù)值計(jì)算函數(shù),可以方便和快速的使用優(yōu)化算法實(shí)現(xiàn)對(duì)象設(shè)計(jì)參數(shù)的優(yōu)化。因此本文設(shè)想把ANSYS和MATLAB兩種軟件結(jié)合起來(lái),共同完成設(shè)計(jì)參數(shù)的優(yōu)化設(shè)計(jì)。

      1 MATLAB和ANSYS的聯(lián)合優(yōu)化

      1.1優(yōu)化算法

      MATLAB除了可以通過(guò)m語(yǔ)言任意編寫(xiě)優(yōu)化算法之外,還可以通過(guò)一套被稱(chēng)為工具箱(Toolbox)的擴(kuò)展應(yīng)用子程序調(diào)用一些常用的優(yōu)化算法。在MATLAB自帶的優(yōu)化工具箱中全局搜索能力較為優(yōu)秀的算法包括多起點(diǎn)搜索、模式搜索、遺傳算法以及模擬退火等。

      這里以?xún)?yōu)化工具箱中的遺傳算法為例介紹算法的調(diào)用過(guò)程。首先創(chuàng)建一個(gè)名為optimization的m文件,通過(guò)MATLAB自帶的ga函數(shù)就可以完成對(duì)工具箱中遺傳算法的調(diào)用[2]。

      [x,fval]=ga(fitnessfuction,nvars,A,b,Aeq,…beq,lb,ub,constraintfunction]

      函數(shù)中是最優(yōu)解輸出矩陣。是目標(biāo)函數(shù)的最優(yōu)適應(yīng)值。是變量個(gè)數(shù)。是輸入變量受到的線(xiàn)性約束的相關(guān)參數(shù),約束表達(dá)式為和。是輸入?yún)?shù)上限和下限,即。

      ConstraintFunction是輸入變量受到的非線(xiàn)性約束函數(shù)句柄。若要建立一個(gè)這樣一個(gè)非約束性的條件,那么只需要將約束條件轉(zhuǎn)換為的形式,然后創(chuàng)建一個(gè)約束函數(shù)example的m文件:

      function [c,ceq]=example(x,y)

      c=[x+y-10];

      ceq=[]; %ceq是等式約束%

      然后在optimization文件中用以下命令調(diào)用非線(xiàn)性約束函數(shù)的句柄。

      ConstraintFunctioin=@example;

      FitnessFunction是適應(yīng)度函數(shù)句柄。和一般的優(yōu)化計(jì)算不同的是,本文中的適應(yīng)度函數(shù)沒(méi)有解析表達(dá)式,適應(yīng)度的具體數(shù)值需要通過(guò)MATLAB調(diào)用ANSYS進(jìn)行有限元計(jì)算得到。首先新建一個(gè)名為fitness的m文件,假定適應(yīng)度函數(shù)的名稱(chēng)為fitness,然后在fitness文件中通過(guò)下面的語(yǔ)句定義適應(yīng)度函數(shù)。

      function y=fitness(x);%x為設(shè)計(jì)參數(shù)矩陣,y為輸出變量。

      %此部分為MATLAB調(diào)用ANSYS進(jìn)行有限元分析的計(jì)算程序%

      y=fitness_value;

      fitness_value是有限元分析結(jié)束后導(dǎo)入到MATLAB中的結(jié)果矩陣。最后需要在optimization文件中使用以下命令調(diào)用適應(yīng)度計(jì)算函數(shù)

      fitnessfunction=@instance;

      1.2 MATLAB和ANSYS的數(shù)據(jù)傳遞

      MATLAB和ANSYS都具有很強(qiáng)的文件讀寫(xiě)能力,通過(guò)下述操作可以實(shí)現(xiàn)相互之間的數(shù)據(jù)傳遞。

      首先分別創(chuàng)建名為data.txt和result.txt的文本文檔作為數(shù)據(jù)存儲(chǔ)的中介。

      1)設(shè)計(jì)參數(shù)寫(xiě)入data.txt

      MATLAB需要以下語(yǔ)句將輸入變量矩陣的寫(xiě)入到data.txt的文件中[3]。

      fid = fopen (‘data.txt’ ’w+’);

      fprintf ( fid,%f, x);

      fclos (fid);

      語(yǔ)句中的fid是data.txt文件的句柄,當(dāng)文件打開(kāi)成功時(shí),fid的返回值為0,反之則為1?!痺+’表示文件是以讀寫(xiě)的形式打開(kāi),%f表示寫(xiě)入的數(shù)據(jù)格式為浮點(diǎn)型。

      2)data.txt文件中的數(shù)據(jù)寫(xiě)入到ANSYS

      首先利用記事本創(chuàng)建一個(gè)后綴名為.mac的APDL的宏文件,然后在該文件中通過(guò)*VREAD命令將存儲(chǔ)在data.txt文件中的設(shè)計(jì)變量矩陣讀入到design變量當(dāng)中[4]。

      *DIM,design,array,n,m

      *VREAD,design(1),d:data,txt,,IJK,n,m

      (format)

      其中IJK是矩陣讀取的順序說(shuō)明,一般使用JIK格式,將矩陣元素按行寫(xiě)入。n,m在JIK格式下分別表示design數(shù)組的列數(shù)和行數(shù)。Format為數(shù)據(jù)讀取格式,可以參照FORTRAN-77的相關(guān)命令。比如3F7.3表示每行讀取3個(gè)元素,每個(gè)矩陣元素占用7個(gè)字符寬度,小數(shù)點(diǎn)后保留3位有效數(shù)字。

      3)ANSYS將有限元計(jì)算結(jié)果寫(xiě)入到result.txt

      ANSYS在完成有限元計(jì)算之后,需要通過(guò)以下語(yǔ)句,將分析的結(jié)果fitness矩陣寫(xiě)入到result.txt文檔中。

      *CFOPEN, result, txt

      *VWRITE, fitness

      (format)

      *CFCLOS

      4)MATLAB完成計(jì)算結(jié)果的讀取

      在完成了對(duì)于A(yíng)NSYS有限元分析程序的調(diào)用之后,MATLAB需要讀取result.txt文件中的數(shù)據(jù)并存入適應(yīng)度f(wàn)itness_value中。相關(guān)的語(yǔ)句如下。

      fid = fopen ( ‘result.txt’, ’w+’ );

      fitness_value = fscanf ( fid, %f, format );

      fclos ( fid );

      在MATLAB成功讀取適應(yīng)度之后,遺傳算法函數(shù)會(huì)自動(dòng)根據(jù)適應(yīng)度挑選下一代種群,并開(kāi)始新的一輪循環(huán)計(jì)算,直到結(jié)果收斂為止。

      1.3 MATLAB調(diào)用ANSYS

      ANSYS提供了一種特殊Batch(批處理)模式,透過(guò)批處理模式,ANSYS能夠在不打開(kāi)程序窗口界面的情況下執(zhí)行APDL。MATLAB可以通過(guò)system命令調(diào)用ANSYS批處理模式完成適應(yīng)度的計(jì)算。

      cd:(‘d:Ansys Incv145ansysinwinx64’)

      system(‘a(chǎn)nsys145.exe–b-pane3fl–iC:ansys_analysis.mac-oC:output.txt’)

      由于A(yíng)NSYS的文件路徑中存在空格,因此需要首先使用cd命令表示將MATLAB的默認(rèn)啟動(dòng)目錄修改為ANSYS的安裝位置,以避免MATLAB無(wú)法搜索到ANSYS。-b表示ANSYS運(yùn)行在批處理模式;-p ane3fl是ANSYS多物理場(chǎng)分析模塊Multiphysics的產(chǎn)品代碼。C:ansys_analysis.mac是MATLAB需要調(diào)用的APDL宏文件所在的路徑;-o C:output.txt是命令自動(dòng)創(chuàng)建的運(yùn)行結(jié)果輸出文件,內(nèi)容包含了調(diào)用過(guò)程中出現(xiàn)的錯(cuò)誤提示和ANSYS的運(yùn)行日志。

      1.4 ANSYS的自動(dòng)優(yōu)化的步驟

      在A(yíng)NSYS利用APDL命令流進(jìn)行自動(dòng)優(yōu)化的過(guò)程中包含了自動(dòng)建模,自適應(yīng)網(wǎng)格劃分以及模型的自動(dòng)求解等步驟。在自動(dòng)優(yōu)化的過(guò)程中,模型和參數(shù)占用的內(nèi)存將不斷增大,因此在每次優(yōu)化循環(huán)開(kāi)始前需要通過(guò)FINISH和/CLEAR命令將內(nèi)存中所有的模型和參數(shù)加以清除。

      但是清除后重新建立模型時(shí)不能使用常用的RESUME命令,一旦使用,系統(tǒng)所有參數(shù)將恢復(fù)為第一次創(chuàng)建有限元模型過(guò)程中輸入的參數(shù),遺傳算法函數(shù)新產(chǎn)生的設(shè)計(jì)參數(shù)值將失去控制作用。

      為了實(shí)現(xiàn)設(shè)計(jì)參數(shù)在循環(huán)中自動(dòng)更新,首先需要?jiǎng)?chuàng)建一個(gè)后綴名為.txt的文本文檔,在A(yíng)NSYS完成建模前中使用PARSAV命令把除設(shè)計(jì)參數(shù)之外的其他參數(shù)保存在該文檔中。在A(yíng)NSYS讀取了遺傳算法產(chǎn)生的新設(shè)計(jì)參數(shù)之后,再通過(guò)PARRES命令將已保存參數(shù)從文本文檔中恢復(fù)。

      1.5 MATLAB和ANSYS聯(lián)合優(yōu)化的步驟

      根據(jù)上述分析,MATLAB和ANSYS共同優(yōu)化的過(guò)程如圖1所示[6]。其中給定初始變量參數(shù)、判斷優(yōu)化算法是否收斂以及重新取變量賦值等操作在已經(jīng)包含在優(yōu)化函數(shù)中。

      2 應(yīng)用舉例

      2.1 研究對(duì)象和約束條件

      本文以高溫超導(dǎo)電機(jī)為優(yōu)化對(duì)象,由于高溫超導(dǎo)電機(jī)磁極對(duì)稱(chēng),為了方便,建模時(shí)采用1/2磁極截面。勵(lì)磁線(xiàn)圈由5個(gè)雙餅型跑道線(xiàn)圈疊合制成,單根導(dǎo)線(xiàn)寬為5mm。表1列出了電機(jī)模型機(jī)結(jié)構(gòu)的基本參數(shù)。

      受到制造工藝和轉(zhuǎn)子空間的限制,繞組的形狀必須滿(mǎn)足一定的約束條件。電機(jī)磁體是用多個(gè)不同半徑的雙餅型跑道線(xiàn)圈疊合而成。為了易于繞制和焊接,要求雙餅型線(xiàn)圈的內(nèi)徑相同,相鄰雙餅線(xiàn)圈的外徑相同[5]。

      此外,勵(lì)磁線(xiàn)圈必須保持在轉(zhuǎn)子的內(nèi)部空間中。利用APDL建立的電機(jī)模型如下圖2所示。

      2.2 優(yōu)化目標(biāo)

      優(yōu)化目標(biāo)是在電機(jī)結(jié)構(gòu)、勵(lì)磁線(xiàn)圈通過(guò)的電流密度以及設(shè)定的約束條件等其他因素不變的情況下,通過(guò)改變電機(jī)磁體的結(jié)構(gòu)參數(shù),盡可能的降低氣隙磁通的總諧波畸變率。

      在A(yíng)NSYS中,可以通過(guò)*MFOURI命令完成對(duì)氣隙磁通的傅立葉分析。本文通過(guò)諧波畸變率(THD)評(píng)價(jià)電機(jī)氣隙磁通的質(zhì)量。在通過(guò)*GET命令獲得磁場(chǎng)測(cè)量路徑中各階氣隙磁通的數(shù)據(jù)后,總諧波畸變率可以通過(guò)下面的公式計(jì)算。

      2.3 優(yōu)化結(jié)果

      當(dāng)定轉(zhuǎn)子氣隙磁通的總諧波畸變率最小時(shí),每層線(xiàn)圈的內(nèi)徑和外徑如表3所示。

      由于3次之后的諧波的幅值很小,相比基波,其影響可以忽略不計(jì),因此在計(jì)算的時(shí)候只統(tǒng)計(jì)3次以下的諧波。

      在優(yōu)化前和優(yōu)化后,根據(jù)公式分別對(duì)氣隙磁通諧波畸變率進(jìn)行計(jì)算,最終結(jié)果如表4所示。

      3 結(jié)論

      根據(jù)應(yīng)用實(shí)例中的結(jié)果,MATLAB和ANSYS的聯(lián)合優(yōu)化有效的降低了定轉(zhuǎn)子氣隙磁通中諧波含量,使磁通波形更加趨近于正弦波,證明了MATLAB和ANSYS聯(lián)合優(yōu)化的可行性和有效性。

      與常規(guī)參數(shù)優(yōu)化中使用手工方法不斷修改參數(shù)集合,根據(jù)計(jì)算結(jié)果進(jìn)行尋優(yōu)的方法相比,基于A(yíng)NSYS和MATLAB的優(yōu)化方法充分發(fā)揮了ANSYS和MATLAB兩種軟件的特長(zhǎng),具有自動(dòng)建模,尋優(yōu)精度高,不需要人工干預(yù)等優(yōu)點(diǎn)。優(yōu)化模塊和建模模塊分別通過(guò)兩個(gè)不同軟件實(shí)現(xiàn),有利未來(lái)對(duì)模型和優(yōu)化算法分別進(jìn)行改進(jìn),并且優(yōu)化程序可以獨(dú)立移植到其他的項(xiàng)目中。

      [1] MVK Chari. Finite-element solution of the Eddy-current problem in magnetic structures [J].IEEE Transactions on Power Apparatus & System, 1974.

      [2] 龔純,王正林. MATLAB最優(yōu)化計(jì)算[M].子工業(yè)出版社.

      [3] MATLAB user’s guide [M]. THWORKS Corporation.

      [4] ANSYS Programmer’s Manual[M]. ANSYS Corporation.

      [5] 何劍平. 高溫超導(dǎo)同步電機(jī)及其磁場(chǎng)分析[D]. 華中科技大學(xué),2006.

      [6] Joosun Kang,Joon hon Lee. The optimal of shape of HTS motor to improve the critical current of field winding [J]. IEEE Transaction Superconductivity, 2003.


      Application of ANSYS and MATLAB to Optimization Design

      Li Chengyang, He Jianping, Zheng Jun

      ( Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)

      TM37

      A

      1003-4862(2016)05-0051-04

      2016-01-09

      李成陽(yáng)(1991-),男,碩士研究生。研究方向:高溫超導(dǎo)電機(jī)電磁場(chǎng)分析。

      猜你喜歡
      調(diào)用命令適應(yīng)度
      改進(jìn)的自適應(yīng)復(fù)制、交叉和突變遺傳算法
      只聽(tīng)主人的命令
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于A(yíng)ctiveX技術(shù)的Excel調(diào)用
      移防命令下達(dá)后
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      基于空調(diào)導(dǎo)風(fēng)板成型工藝的Kriging模型適應(yīng)度研究
      這是人民的命令
      少數(shù)民族大學(xué)生文化適應(yīng)度調(diào)查
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      华坪县| 正安县| 内乡县| 辉南县| 四川省| 社旗县| 南昌市| 纳雍县| 城固县| 广州市| 赤壁市| 洪湖市| 开封县| 横峰县| 社旗县| 张家口市| 平山县| 洱源县| 翁源县| 繁峙县| 张北县| 札达县| 滕州市| 南丰县| 余姚市| 彩票| 毕节市| 封开县| 金昌市| 衡水市| 盐亭县| 邢台市| 新丰县| 于田县| 江阴市| 两当县| 洞头县| 获嘉县| 乡城县| 古交市| 车致|