宋 明, 王文慧, 吳 瓊, 曹宇光, 杜傳勝
(中國石油大學(華東)a. 儲運與建筑工程學院;b. 海洋與空間信息學院;c. 材料科學與工程學院,山東青島266580)
小沖桿實驗方法[1-4](Small Punch Test,SPT)是一種微試樣實驗技術。目前該技術無論是實驗操作還是有限元理論模擬都已經日趨成熟[5,6],它利用尺寸極其微小的試樣對服役材料進行失效分析和壽命預測,分析測試材料的基本力學性能,包括屈服強度、抗拉強度、韌脆性轉變溫度、斷裂韌性和蠕變性能等[7-9];國內外研究者也提出了多種含有損傷參數的小沖桿實驗有限元模型,典型的如含有連續介質損傷(Gurson-Tvergaard-Needleman,GTN)模型參數的小沖桿實驗模型[6]。隨著國家新工科教育理念的提出與推廣,該實驗已作為創新型實驗逐步引入大學生創新創業項目,通過該實驗能夠讓學生更形象、深刻地學習和理解力學中材料大變形、非線性接觸、摩擦、應變強化、連續介質損傷等問題。Matlab / GUI 是一種新型的圖形用戶界面開發方式,通過此界面可以方便地實現用戶的一些特定操作需求,簡單易學且功能強大。既能嵌入已有的仿真程序,又能把仿真的圖形化結果以人機交互的動態方式呈現給用戶,使用者不需要學習復雜的代碼,只需了解具體操作步驟,即可方便地操作界面[10-13]。
本文設計并建立了一種基于Matlab / GUI 和Abaqus的小沖桿實驗學習與應用虛擬平臺。該平臺包括學習和應用兩個模式,不僅可以實現學生對小沖桿實驗理論基礎的自學,了解小沖桿實驗過程,還可以通過平臺應用模式,直接啟用Abaqus 進行有限元模擬,分析不同參數對實驗結果的影響。使用者只需將程序下載至電腦即可使用,操作簡單;也可以通過進一步修改m程序文件,實現對實驗平臺的再開發。此過程不僅能夠加深學生對實驗的認識,還可提高其編程能力。該實驗平臺的人機交互性不僅使實驗容易理解,激發學生對小沖桿實驗方法研究的濃厚興趣,更加突破了傳統實驗對時間、空間的限制,提高了實驗效率。
小沖桿實驗學習與應用平臺結構與主要功能如圖1 所示。該平臺有學習和應用兩種模式。學習模式又包含理論基礎和實驗操作兩大模塊,應用模式包括與Abaqus交互的小沖桿實驗有限元模擬模塊和各種參數對實驗結果分析影響模塊;理論基礎包括實驗背景、定義、目的、優勢、原理、進展和實驗裝置認識[14-15]。實驗操作分為:取樣、試樣加工、加載測試、獲得曲線、數據處理5 個步驟。有限元分析操作主要有修改inp文件相關參數、提交計算、查看結果。參數影響分析模塊采用控制變量法,分別賦予試樣厚度、沖頭直徑、沖桿速度、下模具孔徑、材料彈性模量以及泊松比6 種參數不同的值,使實驗的載荷位移曲線產生變化,得出各參數對實驗結果的影響。實驗平臺所有界面均使用Matlab GUI工具箱設計,通過編寫回調函數實現相關功能。

圖1 小沖桿實驗學習與應用平臺結構與功能示意圖
小沖桿實驗學習與應用平臺的主界面如圖2 所示,其特點為設計簡潔,操作明了。主界面由標題、封面圖片、模式選擇、“OK”按鈕和“EXIT”按鈕組成,使用到的組件為Static Text、Axes、Pushbutton 和Popupmenu控件,主要實現模式選擇功能。用戶首先選擇一種模式,點擊“OK”按鈕,系統進入相應的模式界面,該功能通過回調函數的switch-case 語句實現。主界面右下角的“EXIT”按鈕用來退出并關閉實驗平臺的運行,其回調函數為:clear;close(gcf)。

圖2 小沖桿實驗學習與應用平臺主界面
學習模塊包括理論基礎與實驗過程。操作者首先進入理論基礎界面,如圖3(a)所示,其中理論基礎包含“背景”“定義”“目的”“優勢”“原理”“進展”和“裝置”7 個內容。分別點擊前6 個按鈕,在空白框中展現相應的介紹;點擊“裝置”按鈕,將進入實驗裝置認識界面,可分別選擇“類型說明”“剖面圖”和“三維圖”實現多角度認識裝置。
以“目的”為例,顯示相應文本的回調函數如下:
function pushbutton3_Callback(hObject,eventdata,handles)
str1 =['基于‘無損取樣’的概念,通過“小沖桿試樣方法”,檢測、評價材料狀況以及預測其剩余壽命等。',10];%文本內容

圖3 小沖桿實驗理論基礎學習界面
set(handles. edit1,'string',str1,'FontSize',12,'ForegroundColor','b');%輸出文本
理論基礎學習完畢后,點擊如圖3(b)所示的“NEXT”,即可進入小沖桿實驗過程界面,如圖4所示。

圖4 小沖桿實驗過程界面
通過左上角的“實驗步驟”下拉菜單,即可學習取樣、試樣加工、加載測試、獲得曲線、數據處理5 個過程。其中加載變形分析界面如圖5 所示,可以實現裝置的組裝,沖桿的動態加載以及顯示加載過程中試樣的變形和內部應力分布動態演化示意圖。

圖5 小沖桿實驗過程加載變形分析界面
為實現視頻播放,首先應添加Windows Media Player視頻播放控件,然后通過回調函數控制視頻的讀取與播放。視頻讀取與播放的回調函數如下:
function pushbutton2_Callback(hObject,eventdata,handles)
url2 = 'D:\SPT INFORMATION\E. avi';%讀取視頻
set (handles. activex1,'URL ',url2);% 用Windows Media Player播放視頻
另外,小沖桿實驗裝置認識界面的按鈕組選擇回調函數如下:
function uibuttongroup1 _ SelectionChangedFcn (hObject,eventdata,handles)
str =get(hObject,'string');%拿到所選按鈕的名稱
axes(handles. axes1);
switch str
case '類型說明'
cla reset;
axis on;
a =imread('D:\SPT INFORMATION \ A. png');%讀取類型圖圖片
imshow(a);%圖片顯示
axis off;
size(a);
hold on;
set(handles. edit1,'visible','on');
str1 = ['說明:1—整體式沖桿;2—試樣;3—上夾具;4—下夾具;5—分體式沖桿;6—分體式沖頭。',10];
set(handles. edit1,'string',str1,'FontSize',12,'ForegroundColor','b');
case '剖面圖'
cla reset;
axis on;
b =imread('D:\ SPT INFORMATION \ B. png');%讀取剖面圖圖片
imshow(b);
axis off;
size(b);
hold on;
set(handles. edit1,'visible','on');
str1 =['此MEA測試夾具由五部分組成,包括環形柱1、壓緊件2、底座3、頂蓋4和小沖桿5。',10];
set(handles. edit1,'string',str1,'FontSize',12,'ForegroundColor','b');
case '三維圖'
cla reset;
set(handles. edit1,'visible','off');
axis on;
c =imread('D:\ SPT INFORMATION \ C. png');%讀取三維圖圖片
imshow(c);
axis off;
size(c);end
小沖桿實驗應用模式包括Abaqus 交互模塊和參數分析模塊,Abaqus交互模塊第1 部分介紹了國家標準中的規范參數;第2 部分則為Matlab與Abaqus的聯合應用,通過修改inp文件連接平臺與Abaqus數據接口,實現了由實驗平臺提交數據,Abaqus進行計算,最終實時得到小沖桿實驗有限元模擬結果的功能。參數分析模塊如圖6 所示。首先用戶在左側按鈕選擇一種分析參數,包括試樣厚度、沖頭直徑、沖桿速度、下模具孔徑、材料彈性模量和泊松比,文本框中將實時顯示除控制變量外其余參數的取值,然后在下拉菜單中選擇該研究參數的具體取值并提交進行計算,最終繪制得到相應的載荷位移曲線,進而分析各參數對實驗結果的影響。

圖6 小沖桿實驗應用模式參數分析模塊界面
經分析可知,試樣厚度的選取要和試樣的直徑相協調,同時考慮尺寸效應[16],試樣厚度越大,相同位移下所需的載荷越大。沖頭直徑尺寸不同,載荷-位移曲線的高低差異很大,因此在小沖桿實驗研究中,沖頭直徑必須闡明。小沖桿實驗的載荷-位移曲線對下模具孔徑相當敏感,下模具孔徑的不同,直接影響相同沖桿位移條件下的最大載荷值,下模具孔徑越小,相同位移下所對應的載荷越大。材料的彈性模量、泊松比直接影響載荷-位移曲線的形狀,因而可用小沖桿實驗載荷位移曲線分析不同材料的力學性能。
其中,為實現實驗平臺直接提交inp 文件供Abaqus計算的功能而編寫的調用函數[17,18]如下:
% runabaqus. m
function [output_args ] =runabaqus(Path,InpFile,cpus)
inputFile = ['abaqus job = ',InpFile,' cpus = ',cpus];
t0 =tic;%開始計時
MatlabPath =pwd();%記下當前Matlab目錄
cd(Path);%進入inp文件所在目錄
[output_args ]=system(inputFile);%通過系統調用,運行Abaqus,提交inp文件
pause(3);%暫停3 s
cd(MatlabPath);%返回Matlab目錄
if (exist([Path,'’,InpFile,'. lck'],'file')= =2)%若提交成功
H =dialog('name','提示','position',[200 300 400 100]);
uicontrol('parent',H,'style','text','string','已提交,正在計算…請等待。','position',[20 40 350 20],'fontsize',12);%彈出提交成功的提示對話框
while exist([Path,'’,InpFile,'. lck'],'file')= =2 %提交成功
t =toc(t0);
h =fix(t/ 3600);
m =fix(mod(t,3600)/ 60);
sec =fix(mod(mod(t,3600),60));
pause(1);
fprintf('----------ABAQUS calculating----------\ n time costed
% d:% d:% d\n',h,m,sec);%輸出已計算時間
end
delete(H);
H =dialog('name','提示','position',[200 300 400 100]);%計算完成對話框
uicontrol('parent',H,'style','text','string','計算完成!','position',[20 40 350 20],'fontsize',12);
pause(3);
delete(H);
else %若提交不成功
h =errordlg('提交失敗,計算錯誤!','警告');%彈出警告對話框,提示提交失敗
ha =get(h,'children');
ht =findall(ha,'type','text');
set(ht,'fontsize',12);
end
通過mcc -m SPT1. m SPT2. m SPT3. m SPT4. m SPT5. m SPT6. m SPT7. m SPT8. m SPT10. m runabaqus.m語句便可將設計好的小沖桿實驗學習與應用平臺編譯為可獨立運行的. exe 應用程序。經整理,最終形成“SPT軟件包”文件夾,用戶只需按照文件夾中的安裝說明完成平臺安裝即可使用。
利用小沖桿實驗學習與應用平臺對實驗下模具孔徑及試樣厚度進行分析,得到的不同下模具孔徑和試樣厚度的載荷位移曲線如圖7 所示。可以發現隨著孔徑尺寸的進一步增大,如圖7(a)所示,得到的最大載荷也逐漸增大,但對實驗曲線的第一部分并沒有明顯影響。而圖7(b)的結果顯示,隨著試樣厚度逐漸增大,實驗曲線各個階段都呈現明顯上升的趨勢。

圖7 小沖桿實驗有限元仿真分析結果
通過在多臺計算機安裝測試以及教學實踐,眾多學生使用反饋表明:小沖桿實驗學習與應用平臺操作簡單,內容豐富,實用性強,達到了對未接觸過小沖桿實驗學生前期學習小沖桿實驗的教學目的。
該實驗平臺基于Matlab 語言設計,故通過繼續修改或編寫m程序文件,即可實現對實驗平臺的再開發與推廣。一方面可以向小沖桿實驗測量材料其他力學性能,如蠕變、斷裂韌性、損傷參數等多個方向進行開發,完善小沖桿實驗平臺內容;另一方面,可以從建立小沖桿實驗與其他力學實驗相關聯的方向進行開發,逐漸建立一個更完整更全面的虛擬實驗平臺。
基于Matlab / GUI和Abaqus開發的小沖桿實驗學習與應用虛擬平臺,實現了小沖桿實驗教學工作的直觀、高效和經濟性,不僅可以使學生充分學習小沖桿實驗中包含的基礎力學理論知識,為進一步研究工作打好基礎,并通過對交互性應用界面的探索,激發學生學習與科研的興趣。通過實驗平臺的長期運行與補充,可知本文所開發的小沖桿實驗學習與應用平臺具有設計簡單、可再開發性強、操作人性化等優點。