声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3442|回复: 6

[综合讨论] ansys与matlab程序互相调用吗?

[复制链接]
发表于 2009-2-26 16:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
1.想在ansys计算完后,调用并运行matlab程序,对计算结果进行判断,以决定下一步计算施加的载荷情况,是否有可能实现?

2. matlab的数据读入ansys
我想在matlab中生成的数值,自动保存到.TXT 文档中,再在ansys中读表输入。
matlab保存.TXT数据格式为指数型:
如  1.0000000e-003  4.0300000e-005  8.0010000e+003
这样的数据在ansys 读入时,该用什么格式描述符才不至于出错呢?

[ 本帖最后由 16443 于 2009-2-26 16:55 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-2-26 17:26 | 显示全部楼层
可以看看simwe上的一个帖子
http://forum.simwe.com/viewthread.php?tid=699880

ANSYS虽然比较强大,但是不能象Femlab一样自定义模型方程。在某些情况下,必须用当前step的解作为条件,根据某些物理条件来改变单元的材料属性以及载荷,作为下一个step的初始条件。 用ANSYS自带的APDL可用于一般的流程控制,如果要实现特定的复杂物理模型就比较困难,而且速度极慢。可行的办法就是在ANSYS运行中把每一个step的结果传给外部程序,用来计算下一步的载荷和单元属性。

A. 和外部程序交换数据,首先要处理好协同问题,一般可用一下两种方法:
(1)ANSYS 和 外部程序同时运行 -- 需要建立一个flag文件。通过在ANSYS和程序中读其内容来判断对方是否在运行。在ANSYS和外部程序运行完一个step,改变flag,告诉对方自己当前运行结束,对方可以继续运行,否则必须等待。

(2)在ANSYS中调用/SYS命令执行外部程序。 此时ANSYS会暂时停止运行,直到外部程序结束运行,把执行权交还给ANSYS。

(1)适用与matlab等非编译语言。 (2)适用与C和Fortran等编译语言。

B. 如何在外部程序中告诉ANSYS改变单元属性和载荷变化:

在从ANSYS中导入数据后,外部程序一般可以根据具体物理模型来创建.mac文件,然后在此文件中写入MPCHG等APDL命令。例如用C创建一个"MD.mac"文本文件,用fsprintf(fp,"MPCHG %d,%d", element_num, Material_ID). 当程序结束运行,在ANSYS中用*use, MD.mac 来实现加载和单元属性的改变。

C. 如何在ANSYS和外部程序中传递数据。

一般在ANSYS中把当前结果写在数据文件中, 在外部程序中读取。一般常用的命令有*MOPER。*MOPER可以把节点(node)的结果例如T(x,y,z) 自动根据插值计算映射到用户自己定义的网络上。 然后可以用*MWRITE写入数据文件。例如,如果用free mesh, node 的坐标可能是很混乱的。用MOPER可以把结果映射到特定的有序的网络 (x0->x1,dx;y0->y1,dy;z0->z1,dz).

附上一个例子结果: transient simulation of optical phase change recording.
模拟可擦写光盘的读写过程。用ANSYS模拟激光加热光盘,每一步matlab读取温度场,并用相变模型模拟出写的记录点形状,然后根据记录点形状来修改所对应的单元热属性和加载(激光吸收的能量),反馈给ANSYS做下一部计算。

上图是开始和最后的温度场(ANSYS), 下图是开始和最后光盘上记录的形状(Matlab)。激光从左向右移动。
 楼主| 发表于 2009-2-27 15:48 | 显示全部楼层
感谢楼主,先学习学习:@) :@)
发表于 2009-4-8 18:42 | 显示全部楼层
看不到transient simulation of optical phase change recording.
发表于 2009-6-27 06:23 | 显示全部楼层
不知道老兄的问题解决了没有,可否分享一下?
发表于 2009-6-29 21:56 | 显示全部楼层

回复 沙发 16443 的帖子

看不见你给的例子,能否再发一遍呢 ,谢谢了
发表于 2013-11-28 15:51 | 显示全部楼层

(1)"ANSYS 和 外部程序同时运行 -- 需要建立一个flag文件。通过在ANSYS和程序中读其内容来判断对方是否在运行。在ANSYS和外部程序运行完一个step,改变flag,告诉对方自己当前运行结束,对方可以继续运行,否则必须等待"
     请问这个flag是个什么概念,在ansys中怎么实现啊?


“在从ANSYS中导入数据后,外部程序一般可以根据具体物理模型来创建.mac文件,然后在此文件中写入MPCHG等APDL命令。例如用C创建一个"MD.mac"文本文件,用fsprintf(fp,"MPCHG %d,%d", element_num, Material_ID). 当程序结束运行,在ANSYS中用*use, MD.mac 来实现加载和单元属性的改变”
   请问能不能在ansys进行时程分析的某一时间步暂停计算,改变某一单元属性后开始继续计算
  
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 12:39 , Processed in 0.084440 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表