MATLAB调用ANSYS进行有限元分析

7 篇文章 4 订阅
5 篇文章 0 订阅

在有限元分析中,当我们需要改变模型的多个物理参数反复进行分析求解。在ANSYS环境下重复操作费时费力。因此,可以使用MATLAB和ANSYS联合进行求解。
MATLAB调用ANSYS进行有限元分析步骤如下:

  1. MATLAB生成数据,并以科学计数法的形式写出到一个txt文件“input.txt”中;
  2. 编写ansys的APDL程序,在MATLAB环境下调用APDL程序,ANSYS以batch方式运行进行分析求解,并输出想要分析的结果,写出到一个txt文件“output.txt”中;;
  3. MATLAB调用“output.txt”,进行数据分析。

在上述步骤中,有3个 最最核心的关键:

  1. 以科学计数法的形式生成数据文件“input.txt”,是为了能够让“input.txt”正确调用到创建的ANSYS数组中,只有数据正确调用到ANSYS中才能准确进行有限元求解。(科学计数法的形式是目前我发现的最方便调用的数据形式)
%% 将matlab中的样本数据以科学计数法的形式导出成txt文件
sample = [2.5e-3, 2.1e11, 1.185e-3, 2.1e11, 3.031e-3, 2.1e11, 5.0e4, 5.0e4 5.0e4];
fid = fopen('truss.txt', 'wt');                                % -t模式按照文本而非二进制模式读写 
fprintf(fid,[repmat('  %.4e  ', 1, size(sample,2)), '\n'], sample');      % 转置并适时(写完一列后)添加换行
fclose(fid); 
  1. 在编写APDL代码时,首先要创建一个数组用于储存输入数据“input.txt”,
! 文件写入
*Create, dataread, mac
*DIM, input, array, 1, 9                    ! 创建样本数据存储的数组
*VREAD, input(1,1), F:\MATLAB_ANSYS\input, TXT, , JIK, 9, 1
(9f14.4)
*End
Dataread

然后进行有限元分析之后,对于想要输出的结果进行输出,创建一个数组储存想要输出的数据并将其写出到一个txt文件“output.txt”。

! 将数据导出
*DIM, output, array, 1, 1                    ! 创建数据存储的数组
*get, output(1), node, 5, U, y   ! 返回节点5的Y位置,并将结果作为output存储。 
*create, datawrite, mac
*cfopen, F:\MATLAB_ANSYS\output, txt
*vwrite, output(1,1)
  (f14.6)
*cfclose
*end
Datawrite
finish

上述代码具体含义参考;
使用MATLAB和ANSYS解决大量不同几何参数和荷载样本下连续求解结点位移.

  1. MATLAB调用ANSYS的操作流程
% ansys 版本中的可执行文件,path中有空格要加:""
ansys_path=strcat('"E:\ANSYS150\ANSYS Inc\v150\ansys\bin\winx64\ansys150.exe"');
% jobname,不需要后缀
jobname='truss';
% 是命令流文件,也就是用ansys写的apdl语言,matlab调用时,他将以批处理方式运行,需要后缀
skriptFileName='F:\MATLAB_ANSYS\truss_ansys.mac';
% 输出文件所在位置,输出文件保存了程序运行的相关信息,需要后缀
outputFilename='F:\MATLAB_ANSYS\ans.out';
% 最终总的调用字符串,其中:32代表空格的字符串ASCII码
sys_char=strcat('SET KMP_STACKSIZE=2048k &',32,ansys_path,32,...
    '-b -p ane3fl -i',32,skriptFileName,32,...
    '-j',32,jobname,32,...
    '-o',32,outputFilename),
% 调用ANSYS
ans1=system(sys_char);

上述代码具体含义参考;
Matlab调用ANSYS的三种方法.

之后再用matlab调用ANSYS的输出文件“output.txt”就可以进行数据分析了。

  • 12
    点赞
  • 156
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
本书的第1 章简要地介绍了 MATLAB 的基本知识和编程中常用的语句及函数 , 使者能够阅读本书各章节中的程序。 第2 章系统地介绍了有限元的理论基础———微分方程的近似解法。 这部分内容在一的有限元书籍中是很少介绍的 , 它不仅可以使我们了解有限元的发展过程 , 也能够使读者加深对有限元方法的理解。 第3 章介绍了广义坐标有限元方法。 它是物理坐标下的直接方法 , 读者可以通过该章的学习了解和掌握有限元方法的一般步骤。 第4 章简要介绍了有限元编程方法。 与大多数有限元书籍不同的是 , 用其他高级语言编写有限元程序时所需的一般编程技巧在 MATLAB 中不再需要 , 因此 , 本书不再赘述。 第5 章详细讨论了构造单元和插值函数的原则和方法 , 并着重讨论了在实际中有着广泛应用的等参数单元的构造方法和表达格式 , 以及与广义坐标单元的变换方法。 第6 章和第7 章讨论了杆系结构有限元问题。由于杆系结构与一般的二维和三维弹性体结构有较大的区别 , 因此 , 杆系结构的单元及其插值函数是区别于一般二维和三维单元的特殊单元 , 同时 , 桁架的杆单元和框架的梁单元也是完全不同的两类单元。 第8 章详细讨论了一般弹性力学问题的有限元方法 , 包括稳定问题和动力学问题。 第9 章讨论了板问题的有限元方法 , 其中介绍了多种类型和不同位移模式的板单元 ,包括用于复合材料结构的层状单元。 第10 章介绍了系统建模、 线性系统分析及结构振动控制的基础知识 , 并详细地介绍了如何用 MATLAB 来实现。
Matlab可以通过设置参数和选项来调用Ansys进行有限元分析。首先,在Matlab中使用Ansys主控程序作为主程序,并将所有的参数和选项设置好传递给Ansys进行计算Ansys计算结束后,Matlab可以处理Ansys的输出文件。这种方式可以实现计算的自动化和参数的统一设置,省去了参数同步的工作。在调用Ansys时,可以使用-b参数指定使用batch方式运行Ansys,-i参数指定输入文件,-o参数指定输出文件。需要注意的是,这里的输出文件是指在Ansys的图形界面中的输出内容,而不是我们想要的结果文件。因此,我们可以使用Ansys的命令(如*vwrite、*mwrite等)将结果写入文件,以供Matlab使用。同时,我们可以通过文件方式传递Matlab要传递给Ansys的参数。这样,MatlabAnsys可以联合进行有限元分析。具体步骤为:Matlab生成数据,并将其以科学计数法的形式写入一个txt文件中;编写Ansys的APDL程序,在Matlab环境下调用APDL程序,以batch方式运行Ansys进行分析求解,并将结果输出到一个txt文件中;Matlab调用该输出文件进行数据分析。123 #### 引用[.reference_title] - *1* *2* [Matlab调用ANSYS的三种方法](https://blog.csdn.net/xifegnlie/article/details/104130185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [MATLAB调用ANSYS进行有限元分析](https://blog.csdn.net/ikhui7/article/details/107135488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值