首页/文章/ 详情

MATLAB与ANSYS联合仿真设置

6月前浏览20808

本文摘要(由AI生成):

本文介绍了如何使用ANSYS as a Server (aaS)实现MATLAB与ANSYS软件的联合仿真。首先,以aaS模式启动ANSYS软件,对于Workbench需要以批处理模式启动,并添加启动参数。然后,安装ANSYS_aaS MATLAB Toolbox,按照安装步骤操作。接着,在MATLAB中实例化ORB,初始化ANSYS_aaS ToolBox,并启动与ANSYS软件的连接。最后,通过MATLAB脚本,通过CORBA接口实时向ANSYS产品发送脚本代码,实现MATLAB与ANSYS间的联合仿真。


导语:

ANSYS 15.0以后所有版本的Mechanical APDLFluentWorkbench都支持ANSYS as a Server(aaS) – 服务器模式。安装ANSYS_aaS Matlab Toolbox,可实现与上述ANSYS软件的实时通信,通过传递脚本代码可以实现联合仿真。

一、以aaS模式启动ANSYS

对于Fluent或者MAPDL有两种启动模式:
  • 批处理启动模式下:添加-aas选项启动;
  • 界面启动模式下:MAPDL在Customization/Preferences标签的Additional Parameters栏中输入-aas;Fluent在Environment标签下输入FLUENT_AAS=1,如下所示。

01.png

02.png

对于Workbench需要以批处理模式启动,然后添加如下启动参数:

c1.png

例如,在Windows平台,若Workbench安装在C盘的Program Files目录,启动的完整命令如下:

c2.png

MAPDL、Fluent、Workbench软件启动完成后,会生成aaS连接的秘钥,默认名称如下:
  • MAPDL:aaS_MapdlId.txt
  • Fluent:aaS_FluentId.txt
  • Workbench:aaS_WbId.txt 


二、安装ANSYS_aaS MATLAB Toolbox

按照以下步骤安装ANSYS_aaS MATLAB Toolbox文件:
  • 保存ANSYS_aaS 1.1.9.mltbx文件至MATLAB能访问的文件位置;
  • 打开MATLAB软件,打工具箱文件所在文件夹,找到.mltbx文件;
  • 鼠标右键点击ANSYS_aaS 1.1.9.mltbx文件,选择Install安装工具。

三、MATLAB驱动ANSYS软件

ANSYS_aaS MATLAB工具箱安装完成后可按照以下步骤操作:
1、MATLAB中实例化ORB

两者间通信是基于CORBA规范的,所以在执行会话之前需要实例化ORB,代码如下:

c3.png

2、初始化ANSYS_aaS ToolBox
在MATLAB中执行以下代码,加载工具:

c5.png

3、启动与ANSYS软件的连接
读取aaS秘钥,然后可连接到MAPL、Fluent、Workbench软件,代码如下:

c6.png

4、MATLAB与ANSYS联合仿真

通过使用MATLAB脚本,通过CORBA接口实时向ANSYS产品发送脚本代码(如Fluent:TUI命令;MAPDL:APDL命令;Workbench:Python脚本),可实现MATLAB与ANSYS间的联合仿真,具体代码如下。

c7.png

四、后记

MATLAB通过CORBA接口可以访问ANSYS产品,然后传递脚本命令以驱动软件执行仿真操作,所以在整个联合仿真的过程中,ANSYS软件脚本的开发显得至关重要。同时基于Workbench的强大集成和脚本功能,我们也能轻易去完成多物理场的联合仿真。
如果你还不了解ANSYS产品脚本相关知识,可以翻看往期文章。后续我会给大家分享如何通过Python去调用ANSYS产品,敬请期待。
Mechanical APDLFluentWorkbench二次开发MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-03-01
最近编辑:6月前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 645粉丝 3746文章 62课程 4
点赞
收藏
作者推荐
未登录
12条评论
18天前
orb=initialize_orb();
load_ansys_aas();
actwbserver(<'AAS_Key_Folder>\aaS_WbId.txt')
最后一行代码提示运算符异常是为什么?
回复
嗨害嗨
签名征集中
1年前
如果可以解答,万分感谢
回复
嗨害嗨
签名征集中
1年前
at AAS_CORBA.EFluentGenericErrorHelper.read(EFluentGenericErrorHelper.java:80)
at AAS_CORBA._ICoFluentSchemeControllerStub.doMenuCommandToString(_ICoFluentSchemeControllerStub.java:126)因为字数限制刚刚没打全
回复 2条回复
嗨害嗨
签名征集中
1年前
小田老师您好,我按照这个教程设置matlab和fluent连接的时候出现了这个错误,Java exception occurred:
AAS_CORBA.EFluentGenericError: IDL:AAS_CORBA/EFluentGenericError:1.0
请问这个怎么解决呢
回复
仿真秀0503165323
签名征集中
2年前
小田老师你好。我发现在执行关闭fluent命令iFluentTuiInterpreter.doMenuCommandToString('exit yes');时,会提示Java exception occurred:
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe
请问有解决办法吗
回复 1条回复
领带鱼
签名征集中
2年前
小田老师,我连接好matlab和fluent以后,总是会出现一下情况:提示JAVA程序有问题
AAS_CORBA.EFluentGenericError: IDL:AAS_CORBA/EFluentGenericError:1.0
at AAS_CORBA.EFluentGenericErrorHelper.read(EFluentGenericErrorHelp
更新Java也不行,求指点!
回复
半月
签名征集中
3年前
小田老师 您好 很感谢你做了这个教程
我也实现了使用matlab控制fluent 比如导入模型等等
但是我使用 iFluentTuiInterpreter.doMenuCommandToString('file/read-journal/name.jou') 语句时matlab总是会报错 直接把file/read-journal/name.jou输入到fluent却是可以运行的
期待老师的指点
回复 5条回复
学府
签名征集中
3年前
很不错的教程
回复
仿真秀0206145933
签名征集中
3年前
老师您好,完成您上面的流程后,如何判断自己完成联合呢?
回复
有限无限
签名征集中
3年前
老师您好,我按照你说的步骤执行到读取aaS秘钥时,程序actwbserver('<AAS_Key_Folder>/aaS_WbId.txt')提示错误使用,这是什么原因呢?
回复 3条回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈