- 积分
- 0
- 注册时间
- 2005-5-24
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2008-7-30 10:15:11
|
显示全部楼层
来自 江苏南京
怎么实现matlab反复调用ansys(ansys每次执行完不退出只是等待)
matlab调用ansys我基本能够实现了
% matlab中
!"C:\Program Files\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe" -b -p ane3fl -i F:\ansysmatlab\x1111.mac -o "F:\ansysmatlab\output1.txt"
load('-ascii','E:\MATLAB\R2008a\callansys\resultshear.txt')
现在的问题是如何在不退出ansys的情况下多次传递数据并调用ansys进行多次计算(每次计算时由matlab根据ansys上一次的计算结果修改ansys本次计算需要的参量)简单言之就是ansys每次计算有些量是不变的有些量由matlab修改
上面例子是batch模式 计算结束了ansys就退出了,不合适。
版主在【原创】如何在ANSYS中调用其他程序(matlab, C, fortran)和数据交换中
中提到:
(1)ANSYS 和 外部程序同时运行 -- 需要建立一个flag文件。通过在ANSYS和程序中读其内容来判断对方是否在运行。在ANSYS和外部程序运行完一个step,改变flag,告诉对方自己当前运行结束,对方可以继续运行,否则必须等待。
所以在ANSYS中,一旦完成当前步运算,要设置flag,告诉matlab去处理结果,同时在ANSYS中立即进入一个loop,来判断matlab是否完成处理(reset flag in matlab)。 在matlab中也有相对应的loop.
如何实现1等待和2调用的功能(用上述loop)能详细点吗?
如:
在matlab文件中添加:
for i=1:
????????
end
在ansys 命令流文件中添加:
*do,j,1,
??????
*enddo
还是其他形式 请各位高人百忙之中抽空,解决小可的困难,不胜感激 |
评分
-
1
查看全部评分
-
|