源:吴冠中作品
点击关注CAE仿真空间,
点亮“ 在看 ”,优质内容不错过注:本文为翻译文章,如有不当之处,欢迎交流指正!
虽然我比较熟悉ABAQUS,但是因为我最近的研究内容,促使我从ABAQUS转向了ANSYS。我最近这个项目完全利用APDL建立模型并希望开展参数化的仿真分析,但是每个模型利用2核的电脑计算需要花费我7~8个小时(小编很纳闷现在还用性能这么差的电脑?)。为了提高宏文件在ANSYS中的运行效率,决定利用MATLAB驱动ANSYS执行完成。
作为一个ANSYS的初学者之前从未使用该功能。我在Google上面搜索到了不同的实现方法;同时我也向我的一个朋友求助,她给了我3个文件,但是我还是不清楚怎么使用。然后我就基于她提供的方法针对性的进行查询搜索,搜索结果都描述的不是特别清楚,至少对我是这样。我多么希望能够有一个详细的例子介绍如何利用MATLAB运行ANSYS进行参数化研究。经过反复的尝试,最后我实现了一个个模型自动的运行计算。我决定把这个方法记录下来,也希望能够帮助到其它朋友。第一个文件:run_ansys.bat
SET ANS_CONSEC=YESSET ANSYS_LOCK=OFFSET KMP_STACKSIZE=1024k"C:\Program Files\ANSYS Inc\v181\ansys\bin\winx64\ANSYS181.exe" -b -i ansysinputreader.txt -o out.txt
最后一行代码含义:ANSYS读取ansysinputreader.txt分析并将输出结果保存在out.txt文件中。需要注意的是,KMP_STACKSIZE默认值是512k,如果不做设置很有可能无法运行分析,这个数值大小根据你的情况自己设定即可。当我在笔记本电脑上把数值设置为2048k(2核),任务管理器没有任何反应。这说明和我这个计算模型类似的情况,这个数值也不能设置过大。
第二个文件:ansysinputreader.txt
/INPUT,test,'txt','C:\ANSYS\paper1\',,0
这个文件告诉ANSYS去执行对应路径下的文件。有一点需要说明,开始我尝试了好多次,但是输出文件显示无法找到test.txt文件。后面我发现如果仅仅使用test,'txt'是可以的,而使用'test','txt'则可以看到所有的结果内容。我认为这是和使用不同的ANSYS版本有关。
当你有了这两个文件之后,你就可以在MATLAB中运行下面的代码。为了防止出错,我把所有文件都放在同一个文件夹下面。第三个文件 Run in MATLAB
cd 'C:\ANSYS\paper1'!run_ansys.bat
当你成功的运
行test.txt
中的APDL代码时,在你的工作路径下将会产生
out.txt
(你的第一个文件定义的)。下面的代码内容将会出现在你的文件中,你也可以在该文件内查看错误信息等。
***** ANSYS COMMAND LINE ARGUMENTS ***** BATCH MODE REQUESTED (-b) = LIST INPUT FILE COPY MODE (-c) = COPYRELEASE= Release 18.1 BUILD= 18.1 UP20170403 VERSION=WINDOWS x64 CURRENT JOBNAME=file 12:50:41 DEC 19, 2019 CP= 0.281 1 /INPUT,test,'txt','C:\ANSYS\paper1\',,0RUN SETUP PROCEDURE FROM FILE= C:\Program Files\ANSYS Inc\v181\ANSYS\apdl\start.ans/INPUT FILE= C:\Program Files\ANSYS Inc\v181\ANSYS\apdl\start.ans LINE= 0/INPUT FILE= C:\ANSYS\paper1\test.txt LINE= 0*** ANSYS - ENGINEERING ANALYSIS SYSTEM RELEASE Release 18.1 18.1 ***ANSYS Mechanical Enterprise 00000000 VERSION=WINDOWS x64 12:50:41 DEC 19, 2019 CP= 0.375
参数化分析:
我希望在ANSYS中进行参数化分析,所以需要利用MATLAB一个个的运行不同的模型。使用MATLAB中的for循环完成编写然后运行bat文件,简单的for循环代码如下所示。利用disp(wind_speed)提醒我哪些参数对应的模型已经提交运行。
matrix = [60,70,80];for wind_speed = matrix fileID = fopen(filename, 'w+'); fprintf(fileID, '/CLEAR \n'); fprintf(fileID, '/PREP7 \n'); fclose(fileID); !run_ansys.bat cd 'C:\ANSYS\paper1' disp(wind_speed)end
致谢:
感谢作者Dorothy分享!Dorothy,a Ph.D. student,Civil and Environment Engineering,University of Connecticut ( The Hong Kong Polytechnic University )
更多内容请参考
1.从本周公布的2019年图灵奖得主聊聊CAE和CG技术
2.ABAQUS求解器信使V2.0版插件
3.爬虫数据告诉你谁是CAE仿真讲师群里的网红战斗机?
4.基于Python脚本在Abaqus中实现Voronoi图绘制
5.基于python和abaqus实现SPH算法的粒子生成
6.这才是底层网格算法的无穷美学【附常见网格专用处理工具】
7.推荐一款轻量编辑器在abaqus仿真和编程开发中使用
8.CAE工程师崩溃的10个瞬间
9.瞎聊:机械工程专业的那些王牌学校和实验室
10.STL文件,一种前处理网格划分技术??
11.CAE仿真软件中的“华山论剑五绝”解读
12.CAE仿真领域 | 数一数2019国家科学技术奖励项目有哪些?
点亮“在看”支持一下!