颜利芬,黄运米,黄晓虹,王振国
(温州大学 数理学院,浙江 温州 325000)
Matlab、Mathematica等科学计算软件具有强大的计算功能和绘图功能,在大学物理实验教学中应用这些软件来进行实验模拟和数据处理,有利于提高学生利用计算机解决问题的能力,加深学生对物理实验的理解[1-2]。在Matlab中,通过创建图形用户界面(Graphical user interface,GUI),数据处理过程更加可视化,能够将数据处理结果直观地显示出来,并加快了实验的运算过程。采用静态拉伸法来测量金属丝的杨氏弹性模量[3-4],实验数据多,计算量大,借助于Matlab GUI处理实验数据,帮助学生更好更快地进行数据处理,对实验进行更有意义的思考和探索。
(1)
y是金属材料的杨氏弹性模量,是表征材料力学性能的一个物理量[4-6]。测量(1)式等号右边各个物理量,杨氏模量y便可求得。拉力F、金属丝长度L和金属丝直径d都可用一般方法测量得到。金属丝伸长量ΔL变化微小,一般工具无法测量准确,本实验采用光杠杆法测定,其原理如下:
图1 光杠杆系统的放大原理图
(2)
F为标尺刻度变化Δh时相应的拉力。
Matlab软件有强大的计算和绘图功能,通过GUI实现数据的交互式显示,可以直接在界面上输入和改变参数,将结果快速、准确的显示出来[7-9]。本论文分别采用逐差法和最小二乘法来处理实验数据。
GUI程序运行流程如图2所示。
图2 GUI界面程序运行流程图
GUI是Matlab图形用户操作界面,通过在Matlab软件主页-新建-图形用户界面,打开Guide设计界面模板,或者直接在命令行窗口输入“guide”[10]。GUI可将开发好的图形交互界面保存在一个.fig文件中,同时还生成了与之同名的.m 文件,使用该文件可实现界面各种对象(如文本框、控件等)的函数回调,通过运行.m文件或生成的.fig文件,导入测量数据,输入相关的参数,可将计算结果显示出来。
首先,采用2个切换按钮来控制页面显示逐差法界面Uipanel或最小二乘法界面Uipanel(如图3、图4所示),在两个Uipanel中设计草图并编排表格、文本框、按等控件的布局,设置界面各控件的属性(如设置各控件的标识(Tag)、颜色、字体等)。把实验数据记录在Excel表格中,通过Uigetfile语句将数据导入界面的表格Uitable中,将保存数据的Excel文件与Matlab软件的.fig和.m等计算文件放在同一个目录中。
图3 逐差法界面及数据处理结果
图4 最小二乘法界面及数据处理结果
然后通过对控件的Callback(回调函数)代码的设计,计算金属丝的杨氏弹性模量和相对误差、绝对误差。回调函数是对界面对象触发时的响应函数,通过编辑回调函数来解决所有的数据处理。通过按钮组“参数输入”输入直接测量的金属丝长度L,光杠杆臂长D和镜面与标尺距离R值,点击“计算杨氏弹性模量”控件,结果显示在按钮组“结果输出”。最后的计算结果显示在图3中,杨氏模量y=1.96×1011N/m2,相对不确定度为2.3%,不确定度为0.05×1011N/m2。
本文基于Matlab GUI设计了拉伸法测杨氏弹性模量实验的数据处理软件,应用逐差法和最小二乘法实现对测量数据进行平均值和不确定度等的计算功能,求得了杨氏模量值及其误差。相较于传统实验,本文采用Matlab GUI设计数据处理过程,允许实验者通过GUI界面导入实验数据和改变测量参数,应用最小二乘法拟合曲线并绘制出拟合直线图,编辑程序计算出杨氏模量值及其不确定度,可视化地输出了计算结果。