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,我就可以为所欲为了,随便打扮这个小姑娘了,哈哈哈。

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