宋 明, 王文慧, 吴 琼, 曹宇光, 杜传胜
(中国石油大学(华东)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开发的小冲杆实验学习与应用虚拟平台,实现了小冲杆实验教学工作的直观、高效和经济性,不仅可以使学生充分学习小冲杆实验中包含的基础力学理论知识,为进一步研究工作打好基础,并通过对交互性应用界面的探索,激发学生学习与科研的兴趣。通过实验平台的长期运行与补充,可知本文所开发的小冲杆实验学习与应用平台具有设计简单、可再开发性强、操作人性化等优点。