matlab node._matlab调用ansys
今天来介绍matlab调用ansys计算的详细程序和相关命令流,我找这方面的资料并实现它用了一个星期,我希望下次有人被这个问题所困扰时,可以搜到这篇推送,用半天就能搞定matlab调用ansys。本文所用matlab2018b,ansys17.0,其实调用是否能成功,与软件版本没有太大关系,仅为说明。
主要流程为
1、在matlab中输入载荷大小
2、调用ansys计算模型
3、提取ansys的计算位移结果并在matlab中进行展示
也就是说相当于把ansys当做一个子函数一样使用。在做的过程中也遇到了很多问题,目前百度上查到的命令及方法,我借鉴过来只能进行前处理建模以及提取模型的节点坐标数据,但是加上求解命令就出错。功夫不负苦心人,最后终于通过其他渠道发现只要在原有的程序前面加上一句代码,就可以使用solve,进而可以实现提取ansys的位移应力应变等计算结果。计算模型很简单,是一个平板矩形悬臂梁,一端固支一端受集中力。
ansys计算结果
matlab提取ansys计算结果的节点坐标与位移
关于程序实现主要注意两点即可:
1.调用ansys的关键代码为:
很多博客或者其他网站上提供的程序是这样的,经过我的试验,此程序不能满足求解需要
!"D:\ProgramFiles\ANSYSInc\v170\ansys\bin\winx64\ANSYS170.exe"-b -i pingban.txt -o output.txt
2.Ansys的安装目录中默认是ANSYS Inc中间有空格,如果程序运行有问题,卸载掉,再次安装时,在这一步将空格去掉即可。这样安装目录中就不会出现空格。
下面是全部程序和命令流。
Matlab程序
分为main.m文件和runansys.m子函数(乱码的均是汉语注释不影响运行,结尾会有完整文件分享)
main.m
clear all
clc
close all
F = -1000;
%% ´ò¿ªdataÎļþ½«¸üеÄÉè¼Æ±äÁ¿Ð´Èë
fid=fopen('para_in.txt','wt');%´ò¿ªÎļþ½«Êý¾ÝдÈë
fprintf(fid,'%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f%20.12f\n',F);
fclose(fid);
%---runansys-----------------------------------------------------------------------
tic
runansys()
toc
%--------------------------------------------------------------------------
% the file name of the coordinate out parameter
output_file_coordi='para_out3.txt';
% the file name of the displacement out parameter
output_file_displa='para_out4.txt';
% read the coor result
coor_all =load(output_file_coordi);
coor =coor_all(:,2:4);
% read thedisplacement result
displa_all =load(output_file_displa);
displa =displa_all(:,2:4);
%--plot------------------------------
figure(1)
plot3(coor(:,1),coor(:,2),coor(:,3),'b*')
hold on
plot3(coor(:,1)+displa(:,1),coor(:,2)+displa(:,2),coor(:,3)+displa(:,3),'ro')
hold off
axis tight;
axis on;
grid on;
runansys.m
function runansys()
%pingban.txtΪapdlÃüÁîÁ÷Îļþ£¬ÀïÃæ°üº¬¶ÁÈëºÍд³öµÄÎļþ²Ù×÷¡£
%output.txt Ϊansys apdlÔËÐÐʱµÄÊä³ö´°¿Ú¼Ç¼
% apdl.txtÖÐÓйØÓÚ¶ÁÈëtxtÎļþµÄÃüÁîÁ÷
!SET KMP_STACKSIZE=15000k &"D:\ProgramFiles\ANSYSInc\v170\ansys\bin\winx64\ANSYS170.exe" -b -ipingban.txt -o output.txt
end
ansys命令流文件
pingban.txt
/COM,
/COM,Preferences for GUI filtering have been set to display:
/COM, Structural
!*
!---read the input parameters in para_in.txt----------
*DIM,para,ARRAY,6,1
*CREATE,ansuitmp
*VREAD,para,para_in,txt,
(10F9.0)
*END
/INPUT,ansuitmp
!-----------------------------------------------------
/PREP7 !进入前处理
!=====设置单元和材料
ET,1,PLANE42 !定义单元类型
KEYOPT,1,3,3 !带厚度的平面应力问题
MP,EX,1,1.0e7 !定义材料弹性模量
MP,PRXY,1,0.33333333 !定义材料泊松比
R,1,0.1 !定义实常数(平板厚度0.1)
RECTNG,0,1,0,0.3,
ESIZE,0.02,0,
MSHAPE,0,2D
MSHKEY,1
!*
CM,_Y,AREA
ASEL, , , , 1
CM,_Y1,AREA
CHKMSH,'AREA'
CMSEL,S,_Y
!*
AMESH,_Y1
!*
CMDELE,_Y
CMDELE,_Y1
CMDELE,_Y2
!*
FINISH
/SOL
FLST,2,1,4,ORDE,1
FITEM,2,4
!*
/GO
DL,P51X, ,ALL,
FLST,2,1,1,ORDE,1
FITEM,2,2
!*
/GO
TORQ = para(1)
F,P51X,FY,TORQ
/STATUS,SOLU
SOLVE
!!!输出节点坐标
*get,nodenum,node,,num,max ! 获得节点的数目
*dim,nodepos,array,nodenum,3 ! nodepos存放节点的坐标
*do,i,1,nodenum,1
*get,nodepos(i,1),node,i,loc,x !获得节点的X坐标
*get,nodepos(i,2),node,i,loc,y
*get,nodepos(i,3),node,i,loc,z
*enddo
!!!输出节点位移
*get,nodenum,node,,num,max ! 获得节点的数目
*dim,node_displa,array,nodenum,3 ! node_displa存放节点的坐标
*do,i,1,nodenum,1
*get,node_displa(i,1),node,i,U,x !获得节点的X坐标
*get,node_displa(i,2),node,i,U,y
*get,node_displa(i,3),node,i,U,z
*enddo
!-------output the result to para_out3.txt---------------
*CFOPEN,para_out3,txt
*creat,ee
*VWRITE,sequ,nodepos(1,1),nodepos(1,2),nodepos(1,3)
(F8.0,3e16.8)
*end
/input,ee
*CFCLOS
!-------------------------------------------------------
!-------output the result to para_out4.txt---------------
*CFOPEN,para_out4,txt
*creat,ee
*VWRITE,sequ,node_displa(1,1),node_displa(1,2),node_displa(1,3)
(F8.0,3e16.8)
*end
/input,ee
*CFCLOS
!-------------------------------------------------------
为避免出现空格影响等问题,完整的程序和命令流仍然以文件的方式分享:
链接:https://pan.baidu.com/s/1elJtvuNkF5KF0PwzWQVZZA
提取码:8ogp
matlab node._matlab调用ansys相关推荐
- python和matlab交互_MATLAB调用python,交互
MATLAB调用python 1. 先配置 路径 2. 在调用 numpy cv2时,经常会出现问题 Solutions: open matlab in Anaconda Prompt, as sho ...
- matlab doc 离线下载,matlab调用ansys
文件介绍: 该文件为 doc 格式,下载需要0积分 matlab调用ansys 很多人都关心在matlab里如何调用ansys计算,我也曾经困惑过一段时间,到各个论坛去找资料,问大家,但是没有一个非常 ...
- ansys matlab 调用,在matlab中调用ansys的方法 [转,原创:Elvin]
很多人都关心在matlab里如何调用ansys计算,我也曾经困惑过一段时间,到各个论坛去找资料,问大家,但是没有一个非常明确的答案.有很多在c语言和forthan中调用ansys的资料,但是对matl ...
- ansys matlab 调用,matlab 调用ansys (转载)
问题的提出:我们经常会需要用ansys计算一些东西,之后再用matlab来处理计算的结果.当修改某些参数重复上述过程的时候,就比较容易出现问题--比如ansys模型中的参数和matlab程序中参数的一 ...
- Matlab调用ANSYS的三种方法
采用matlab作为主控程序,设置好所有的参数与选项传递给ansys(通过文件)并调用ansys计算.ansys计算结束后(默认情况下,matlab会自己等着,这一点很方便,呵呵)再用matlab处理 ...
- Node.js调用C#代码
https://github.com/tjanczuk/edge 运行的时候会报 System.DllnotfoundException 无法加载node.dll,要把\packages\Edge.j ...
- 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)
matlab没有直接调用tensorflow模型的接口,但是有调用keras模型的接口,而keras又是tensorflow的高级封装版本,所以就研究一下这个--可以将model-based方法和le ...
- c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)
<matlab和c++调用DLL方法(最新整理)>由会员分享,可在线阅读,更多相关<matlab和c++调用DLL方法(最新整理)(6页珍藏版)>请在人人文库网上搜索. 1.M ...
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- node.js调用ejs模板,在浏览器上打印出ejs模板内代码的解决方案
2019独角兽企业重金招聘Python工程师标准>>> 今天遇到一个非常奇葩的问题,node.js调用ejs模板的时候,在浏览器端居然把此模板内的所有代码都打印出来了,当时我和我的小 ...
最新文章
- ssh遇到port 22:No route to host问题的解决方法
- 注册表修改之USB口启用
- untitled软件怎么用_苹果手机怎么用4G网络于App Store下载超过200MB以上的软件
- 【ES11(2020)】全局属性 globalThis
- 10.搭建vs2010+Qt4.8.5+QtCreator3.4.0开发环境
- RFIC4463_F2C
- 利用波士顿房价数据集实现房价预测
- VS 反编译工具 ildasm
- 报童问题求解最大利润_矩问题和分布式鲁棒优化:由阿里数学竞赛题说开...
- 项目管理PMP:项目绩效考核管理制度(全岗位流程图66页)
- 天龙八部TLBB系列 - 网单服务端各目录文件说明【超详细】
- python识别二维码条形码?用pyzbar一招搞掂(含代码)!
- 全志T3开发板——嵌入式入门学习测试教程(4)
- 工作中常见的开会问题
- kubernetes组件_Service_普通Service和无头Service
- Tensorflow Privacy
- MSRA的2022秋招各大厂SSP+ offer
- 大一计算机word作业朱自清,Word文档打字练习.docx
- 如何配置nginx,实现在手机上查看页面?
- 把Fusioncharts封装成Ext组件的思路