matlab調用ANSYS--------2

最近使用ANSYS計算溫度場方面的東西,每次都要手動運行,自己處理計算結果。可憐無助的我深感勞累啊,最主要的是怎麼能把我寶貴的時間用在重複的勞動中。so,出於懶的需要,查詢了一些關於matlab調用ANSYS的資料,經過自己實踐,整理了以下內容。

1、調用ANSYS

!"D:\ANSYS Inc\v180\ANSYS\bin\winx64\ansys180.exe" -b -i "E:\ansys2matlab\work.txt" -o "E:\ansys2matlab\process.out";

以上爲在matlab中調用ANSYS內核的代碼。

"D:\ANSYS Inc\v180\ANSYS\bin\winx64\ansys180.exe" 是ANSYS的絕對路徑,依據ANSYS的安裝位置改寫即可;

-b 是使用batch方式運行ANSYS;

-i 是輸入文件;

"E:\ansys2matlab\work.txt" 是用ANSYS APDL語言編制的計算模型

-o 是輸出文件;

"E:\ansys2matlab\process.out" 是ANSYS計算過程的輸出文件。個人認爲沒啥用,純屬記錄運行過程。

 

tips:

執行上述命令後,計算機調用ANSYS內核計算,不會顯示經典的ANSYS界面;

過程文件process.out不包含計算結果,計算結果需要用APDL語言在work.txt裏編寫,以文本格式輸出。

2、APDL語言調出計算結果

調用ANSYS計算之後會發現,在matlab裏找不到計算結果,只能悲催的打開ANSYS經典界面,載入計算結果。啊,天老爺啊,我折騰了半天,就給我看這個。我真是@#¥¥%&&**

不過後來我發現可以在計算模型work.txt中,添加一部分APDL代碼,將該死的計算結果保存出來。

以下是我輕(da)鬆(fei)寫(zhou)意(zhang),編寫的小東西:

  1. /post1
  2. c_node=node(0,0,0) ! 從座標獲得節點編號
  3. *get,n_set,active,0,set,nset !獲得總共運行了多少步
  4. *cfopen,'dataout','txt' !創建輸出文本
  5. *do,j,1,n_set,1
  6. set,,j
  7. *get,v_time,active,0,set,time
  8. *get,c_temp,node,c_node,temp
  9. *vwrite,j,v_time,c_temp
  10. (F5.0,' ',f8.2,' ',F10.4)
  11. *enddo
  12. *cfclos !關閉文本

3、用matlab對計算結果進行處理

終於到這一步了。

只需要用load函數將 dataout.txt 載入matlab,我就可以爲所欲爲了,隨便打扮這個小姑娘了,哈哈哈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章