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

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

8
2
9