//Logo Image
作者:許銘修(2002-10-28);推薦:(2002-10-29)

MATLAB中呼叫ANSYS執行分析工作

進行結構最佳化設計時,通常都是以迭代形式在限制條件範圍內獲得目標函數最小值,且必須透過有限元素軟體(如ANSYS)的計算而獲得目標函數或限制條件的數值解,再丟回演算法中。為了使整個結構最佳化程序為一自動化程序,不需要由人工來操作有限元素軟體,必須利用由最佳化演算演算法程式中直接呼叫有限元素軟體進行計算的技巧。

本文即在介紹以MATLAB撰寫最佳化演算法時,如何由MATLAB程式來呼叫ANSYS執行結構分析的技巧。

1.     MATLAB中執行DOS指令

MATLAB程式中提供了一個可以呼叫系統指令(Invoke operating system command)的指令,“!”。此指令可以用來執行DOS指令,例如表1中程式即是以此指令將“C:\matlab\work\file.err”檔案複製到“D:\temp\”目錄底下,動作完成後,MATLAB會出現“複製了1個檔案。”的完成訊息

1. MATLAB中以“!”進行檔案複製

! copy C:\matlab\work\file.err D:\temp\

複製了         1 個檔案。

2是另一個簡單的範例,剛剛被複製到“D:\temp\”的檔案“file.err”,可以經由表2中的指令而被刪除掉。

2. MATLAB中以“!”進行檔案刪除

! del D:\temp\file.err

2.     MATLAB中呼叫ANSYS

MATLAB“!”指令可以用來執行DOS指令,當然也可以用來呼叫ANSYSANSYS軟體除了以GUI介面模式進行分析工作外,同時也具有以批次(Batch)方式進行分析的功能,只是以批次方式進行分析時,分析輸入檔必須先撰寫完成。表3中即為以MATLAB呼叫ANSYS的範例,這裡所使用的ANSYS版本為5.6版,其他版本並不會有太大差異。“c:\ansys56\bin\intel\ansys56”ANSYS執行檔的位置與名稱;“-m 512”定義整個工作空間(workspace)的大小,單位為MB,範例中使用的工作空間為512MB“-db 256”定義資料庫(database)的大小,單位亦為MB,範例中使用的資料庫為256MB“-p ansysrf”指定所使用的ANSYS模組名稱,範例中所使用的模組為ansysrf,代表的是ResearchFS模組。相關的模組名稱請參閱各版本的ANSYS Licensing Guide3.1.10節。“-i”後所接的為欲分析的ANSYS輸入檔位置及檔案名稱,此處是執行“d:\research\”底下的“fem_inp.inp”輸入檔;“-o”則指定輸出檔的位置及檔名,這裡的輸出檔指的是ANSYS執行過程中的執行資訊,所需要的分析結果檔則是在輸入檔中另外儲存。-m, -db, -pANSYS Batch參數中較常使用的幾個,其他相關參數可以參看ANSYS Operation Guide中第三章的說明。

3. MATLAB呼叫ANSYS

! c:\ansys56\bin\intel\ansys56 -m 512 -db 256 -p ansysrf -i d:\research\fem_inp.inp -o c:\research\fem_temp.out