声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6239|回复: 11

[其他相关] [求助]matlab与ansys的接口问题

[复制链接]
发表于 2005-9-8 08:01 | 显示全部楼层 |阅读模式

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

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

x
我想实现在matlab程序中调用ansys,并返回结果给matlab程序使用,请问该怎么实现?
回复
分享到:

使用道具 举报

发表于 2005-9-8 10:21 | 显示全部楼层

回复:(sunny)[求助]matlab与ansys的接口问题

对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。具体调用方法如下: <BR>1.在VC中调用ANSYS <BR>VC调用ANSYS的示例程序。 <BR>//Test.cpp <BR>#include "stdio.h" <BR>#include"process.h" <BR>void main() <BR>{ <BR>int result; <BR>printf("Solving..."); <BR>result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out"); <BR>printf("Solution finished..."); <BR>} <BR><BR>知道怎么做了吗?
发表于 2005-9-8 10:56 | 显示全部楼层
<P>除了以上的形式外,ansys也可以被编译成子程序的模式供fortran程序调用。安装目录内custom目录的ansys.f文件内包含了使用说明。</P>
[此贴子已经被作者于2005-9-8 10:56:47编辑过]

发表于 2008-9-24 11:09 | 显示全部楼层
〖原创〗在matlab中调用ansys的方法


很多人都关心在matlab里如何调用ansys计算,我也曾经困惑过一段时间,到各个论坛去找资料,问大家,但是没有一个非常明确的答案。有很多在c语言和forthan中调用ansys的资料,但是对matlab没有什么可借鉴性
经过很多次的实践总结,我把我的经验贴出来,希望能够对大家有所帮助
  
matlab中
     
    save('E:\ansys\opt\zs\try\dam.txt','dd','-ascii')  
    !D:\Ansys\v90\ANSYS\bin\intel\ansys90 -b -p ane3fl -i ... E:\ansys\opt\zs\try\yh2.mac -o E:\ansys\opt\zs\try\yh.out
    load('-ascii','E:\ansys\opt\zs\try\zx.txt')
  
第一行是matlab中数据dd保存为ansys可读的形式
第二行是调用ansys计算(一共三个路径,第一个是ansys程序的,第二三个分别为输入输出文件的路径)
第三行是matlab调用ansys的结果
  
ansys中
  
读matlab数据的命令流
*dim, xx,, 15,1  
*VREAD,xx,E:\ansys\opt\zs\try\dam,txt,,ijk,15
(15f16.6)
  
写数据的命令流
finish
/post1
!将模态分析结果写入txt文件
*mwrite,zx,E:\ansys\opt\zs\try\zx,txt,,ijk,16
(16f16.6)
  
*vread和*mwrite的具体解释看看帮助吧
  
还有一个问题是ansys必须是命令流形式,最好保存为mac格式,这样可以直接运行
  
本贴同时发于对我有帮助的baisi、紫丁香bbs、simwe、傲雪和振动论坛上,如有转载,请注明Elvin原创。
发表于 2008-9-24 11:10 | 显示全部楼层
一点有益的补充:
1。当matlab调用的时候,可以采用!的方式和system函数两种方式。注意第一个ansys80这个可执行文件目录中不能有空格,否则matlab不能识别。即可以采用如下的调用方式:
system('D:\ANSYS\v80\ANSYS\bin\intel\ansys80 -b -p ane3fl -i C:\sibian.dat -o C:\vm5.out')
2。这部分是关于batch的使用的,应尽量避免目录中的空格,减小不必要的麻烦。下边的batch模式是正确的。
"D:\ANSYS\v80\ANSYS\bin\intel\ansys80" -b -p ane3fl -i C:\sibian.dat -o C:\vm1.out
我的经验是输入文件和输出文件的目录不能太长,且最好不带空格。刚刚开始的时候我的输入文件的目录是C:\Documents and Settings\Administrator\sibian.dat,结果batch不能执行。改为C:\sibian.dat 即可执行了。
3。 *vread的例子,关于这个命令的帖子很多了,这里重复一下,算是方便新手了。
For example, given the following data file named dataval:
1.5     7.8  12.3
15.6  -45.6  42.5
采用如下命令流读入:
*create,ff
*DIM,EXAMPLE,,2,3
*VREAD,EXAMPLE(1,1),dataval,,,JIK,3,2
(3F6.1)
*end
/input,ff
结果:
EXAMPLE = 1.5     7.8  12.3
               15.6  -45.6  42.5

评分

1

查看全部评分

发表于 2010-3-15 05:23 | 显示全部楼层
很好的说!
发表于 2011-2-26 23:08 | 显示全部楼层
发表于 2011-5-20 11:05 | 显示全部楼层
长见识,谢谢!
发表于 2011-5-31 09:54 | 显示全部楼层
真牛呀!
发表于 2012-6-19 14:30 | 显示全部楼层
还没看懂……
发表于 2012-6-23 18:04 | 显示全部楼层
新人不懂。。。。。。。。。
发表于 2012-9-23 10:33 | 显示全部楼层
学习一下,看看能实现吗
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-17 16:51 , Processed in 0.068652 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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