Matlab“稍作修改”Abaqus-odb结果!!!

知乎、B站[易木木响叮当]
关注可了解更多的有限元数值仿真技巧。问题或建议,请公众号留言;
如果你觉得木木同学对你有帮助,欢迎赞赏。

Abaqus是一款强大的有限元分析软件,随着版本的更迭,产品逐渐包含了前处理模块、求解器、后处理模块,用户上手难度越来越小。

Matlab同样也是一款强大的商业数值计算软件,其可视化能力强的一批,作为兴趣研究,可多玩玩这些工具联合使用的效果,这次将这两款工具联合使用,介绍Matlab如何读取Abaqus的.inp、.odb文件?

故事的开头

木木平时喜欢玩一些有限元的东西,有一次在模型分析完毕后,我突发奇想:能否自定义obd文件,使之显示成我想要的样子?

我怀揣着这个想法,尝试修改.odb文件,可是当我打开文件后,傻眼了...

Matlab“稍作修改”Abaqus-odb结果!!!的图1
某.odb文件

这看不懂啊,好像Abaqus在说:少年,别动我的数据!

我偏要对其作出修改!

进入正题

主要编制了两个函数文件:loadinp用于读取.inp文件,meshplot用于可视化绘图。该程序是国外一个大佬编制的小工具,结合具体案例可灵活使用。

Abaqus案例模型介绍

边界条件及单元类型可见下图,蓝色区域使用CPS4单元,黄色区域使用CPS3单元

Matlab“稍作修改”Abaqus-odb结果!!!的图2
边界条件

Abaqus分析结果如下,我将两个Part分开展示,因为本次提供的Matlab程序不能完成装配功能,为了与Matlab结果对比分析,只能分Part显示。

Matlab“稍作修改”Abaqus-odb结果!!!的图3
Abaqus分析结果

Matlab读入结果文件

导入inp文件,对文件中的单元节点信息进行绘制部件模型。

inp = 'example_data/abaqus_input_2D.inp';
parts = loadinp(inp);
% parts(i)                          : corresponds to the i-th part (struct)
% parts(i).Name                     : corresponds to the i-th part's name (string)
% parts(i).Nodes                    : corresponds to the i-th part's nodes (matrix)
% parts(i).Elements                 : corresponds to the i-th part's elements (struct array)
% parts(i).Elements(n)              : corresponds to the i-th part's n-th element (struct)
% parts(i).Elements(n).Type         : corresponds to the i-th part's n-th element type (string)
% parts(i).Elements(n).Connectivity : corresponds to the i-th part's n-th element nodal connectivity (array)

% plot the parts
figure(1);
subplot(121); meshplot(parts(1)); title(parts(1).Name);
subplot(122); meshplot(parts(2)); title(parts(2).Name);
Matlab“稍作修改”Abaqus-odb结果!!!的图4
Matlab绘制部件模型

接下来是重中之重了,也就是如何绘制场变量云图?

用户可在后处理模块将场变量信息导出至外部文件中,Report-Report Field Output选择要操作的变量,Setup,File类型选择csv,此时导入进Excel中的数据是一列的数据,如下图所示:

Matlab“稍作修改”Abaqus-odb结果!!!的图5
导出.csv文件

此时,数据均在一列显示,我们需要在Excel中按照空格进行分列,最终的数据效果如下图所示:

Matlab“稍作修改”Abaqus-odb结果!!!的图6
处理好的数据
results = readtable('example_data/abaqus_results_2D.csv');
mises_beam = results.S_Mises(2961:2994);
meshplot(parts(2), mises_beam);

选取有关part-2Mises应力数据,调用meshplot函数进行绘图,如下:

Matlab“稍作修改”Abaqus-odb结果!!!的图7
Part-1

Matlab“稍作修改”Abaqus-odb结果!!!的图8
Part-2

稍作修改

以上方法带着大家演示了如何用Matlab绘制Abaqus场变量云图,如果我们想更改,那就可以在该区域对应的Excel部分进行修改,即可操作成功。

有时,我们在分析断裂问题时,最后一步的节点坐标与初始坐标相差可能较大,此时我们可以在调用meshplot函数时,将最后一步的节点坐标写入形参,即可显示断裂面。

【获取方式】Matlab“稍作修改”Abaqus-odb结果!!!


-----粉丝交流群-----

参与更多互动交流,快快在下方留言区留下你的小脚印吧~

粉丝交流群 Beamer群 有限元群
后台回复关键词 Beamer交流 stress


-End-

♡若喜欢这篇文章,欢迎随时带它去朋友圈逛♡

易木木响叮当

想陪你一起度过短暂且漫长的科研生活

Matlab“稍作修改”Abaqus-odb结果!!!的图9

(1条)
默认 最新
评论 点赞
点赞 7 评论 1 收藏 7
关注