基于Matlab GUI的物理演示实验设计

2017-09-11 12:49张光斌王冰雪
物理通报 2017年7期
关键词:图形用户界面布朗运动控件

张光斌 王冰雪

(陕西师范大学物理学与信息技术学院 陕西 西安 710119)

基于Matlab GUI的物理演示实验设计

张光斌 王冰雪

(陕西师范大学物理学与信息技术学院 陕西 西安 710119)

以中学物理实验中的布朗运动、光的干涉以及波的合成与叠加为例,运用Matlab语言在图形可视化、图形用户界面设计(GUI)等方面的优势,通过模拟仿真及动态演示,将复杂、抽象的物理过程直观地体现在教学过程中,使教学效果更加突出明显,内容更加形象生动,达到提高课堂教学效率的目的.

中学物理实验设计 Matlab GUI 布朗运动 光的干涉 波的叠加

1 引言

物理实验在物理学的发展过程中占据着重要的地位.生活中的一些物理现象可以帮助学生探究自然的规律,构建物理学基础知识,并有利于培养学生的形象思维能力.一般探究性实验可以使学生通过实验探究物理学规律,加深对物理知识的理解;开放性实验可以充分发挥学生的想象力,通过设计不同的实验过程,培养学生的发散性思维和创新性能力.但是在实际的教学过程中,我们往往会遇到一些对实验设施要求高、实验现象不够明显甚至观察不到的问题,从而给学生对物理知识的学习和理解造成一定的影响.随着计算机技术的发展,利用计算机软件模拟和仿真一些抽象的物理实验现象成为解决这一问题的重要手段[1~3].Matlab语言在数值仿真、实验数据处理、图像可视化等具有独特的优势,已经有很多学者将其应用于大学数学、物理和电子类课程的教学中.本文利用Matlab GUI(Graphical UserInterfaces)在图形演示方面的独特优势,开发了几个可用于中学物理演示实验的图形用户界面,该实验演示界面可以将复杂、抽象的物理过程和现象,直观地展现在学生的面前,使学生对知识点有全新的认识,从而提高学生的认知和理解能力.

2 Matlab GUI概述

Matlab是MathWorks[3]公司于1984 年推出的一套具有科学计算、符号运算和图像处理等多种功能的高性能软件,其应用领域主要包括数值计算、数据处理、统计分析、工程等各个方面,在各大公司、科研机构和高校得到了普遍应用.Matlab GUI是一种交互式的软件开发工具,利用其在软件开发方面的的强大功能,结合实际应用背景,可以开发出具有不同应用的工具箱[4].

2.1 GUI简介

GUI是由窗口、光标、按键、菜单、文字说明等对象构成的一个具有开发功能的图形用户界面,如图1所示.

图1 Matlab GUI界面设计模板

用户可以通过Matlab的句柄操作,选择、激活这些图形对象,使计算机产生某种动作或变化,实现参数变化、数值计算、图形显示等.一般创建Matlab图形用户界面必须具有以下3个基本元素.

(1)组件

在Matlab GUI中的每一个项目(如按钮、标签、面板、编辑框等)都是一个图形化组件.组件可分为3类:图形化控件(如按钮、编辑框、列表、滚动条等)、静态元素(如窗口和文本字符串)、菜单和坐标系.

图形化控件和静态元素由函数uicontrol创建,菜单由函数uimenu和uicontextmenu创建,坐标系经常用于显示图形化数据,由函数axes创建.

(2)图形用户界面

GUI的每一个组件都必须安排在图形用户界面中.在画数据图像时,图像窗口通常会被自动创建.但还可以用函数figure来创建空图像窗口,空图像窗口经常用于放置各种类型的组件.

(3)编写组件回调程序

图形用户界面上的组件是可以被用户用鼠标单击或者用键盘输入一些信息来进行控制.在Matlab GUI中,是通过编写每一个组件的回调程序来实现对每一个组件的控制,从而在用鼠标点击时,组件可以完成相应的功能.

2.2 GUI设计原则与步骤

(1)GUI的设计原则

一般而言,一个较好的GUI应遵循以下原则:

1)简单性.是指在设计GUI界面时,应力求简洁、直观、清晰地体现出界面的功能和特征,删除一些可有可无的设计.

2)一致性.是指界面的风格尽量一致.

3)习惯性.是指用户在设计界面时,应尽量使用人们熟悉和经常使用的的符号和标志,设计出友好的用户界面.

(2)GUI的一般设计步骤

GUI的设计主要包括界面设计和程序实现,一般制作步骤如下.

步骤1:分析界面所要实现的主要功能,明确设计任务;

步骤2:从使用者和功能实现的角度出发,构思草图,并上机实现;

步骤3:编写对象的相应实现程序,对其要实现的功能进行逐项检查.

3 基于Matlab GUI的物理演示实验设计

下面以3个典型的物理实验为例[5,6],设计 Matlab GUI界面,并通过编写回调程序来实现对物理实验现象的演示.

3.1 用Matlab GUI演示分子的布朗运动

3.1.1 实验原理

1827年英国植物学家布朗用显微镜观察悬浮在液体中的花粉时发现,悬浮在液体中的小颗粒总在不断地做无规则运动,后来把悬浮微粒的这种无规则运动叫做布朗运动.在液体中,悬浮颗粒受到来自各个方向的液体分子不断撞击,当颗粒足够小时,受到来自各个方向液体分子的撞击是不平衡的.在某一瞬间,微粒在某个方向受到的撞击作用强,致使微粒沿着这个方向运动.在下一瞬间,微粒在另一方向受到的撞击强,致使悬浮微粒又朝着另一个方向运动.这样,就导致了悬浮微粒的无规则的布朗运动[6].

3.1.2 布朗运动的GUI窗口设计

(1)建立1个坐标轴对象,用于显示布朗运动的动态模拟;

(2)建立3个按钮,分别用于开始、结束布朗运动和关闭窗口;

(3)建立1个静态文本标签,用于显示实验名称.

创建好GUI界面并调整好各控件的大概位置后,设置这些控件的属性,布朗运动的仿真实验结果如图2所示.

图2 布朗运动演示实验界面

图2中,可以通过点击“开始”按钮来显示分子的布朗运动,通过点击“结束”按钮结束程序.

3.2 用Matlab GUI演示光的双缝干涉

3.2.1 实验原理

如图3所示,当某一单色光通过两个窄缝射向屏幕时,位置不同的两个相同频率相同相位的相干光源S1和S2在相遇时形成光的叠加.由于到达屏幕各点的距离不同,引起相位差,在某些区域始终加强,在另一些区域始终减弱,造成了光的干涉现象.

图3 双缝干涉示意图

两个相干光源到屏幕上任意点的距离为

其中,L1为S1到屏幕上一点P的距离,L2为S2到屏幕上P点的距离,则光程差为

ΔL=L1-L2

相位差为

式中λ为单色光的波长.则两个振幅A0合成后的振幅和光强分别为

(1)

3.2.2 光的双缝干涉实验界面设计

根据光的双缝干涉的实验原理,按照以下的步骤设计实验的GUI界面.

(1)建立2个坐标轴对象,用于显示双缝干涉的图样条纹和光强分布;

(2)建立3个按钮,用于绘制图样、清空图样和结束程序;

(3)建立1个静态文本标签,用于显示实验名称;

(4)建立3个可编辑文本框,分别用来输入波长、双缝之间的距离d和光栅到屏幕的距离L;

(5)建立3个静态文本标签,用来标注相应控件的提示.

创建好GUI界面并调整好各控件的大概位置后,设置这些控件的属性,并通过编写回调程序对控件进行操作,双缝干涉的仿真实验结果如图4所示.实验中,可用改变波长、缝的距离和光栅到屏幕的距离,观察不同的光双峰干涉图像.

图4 光的双缝干涉实验仿真界面

3.3 波形图的绘制及波的叠加

3.3.1 波的叠加原理

不同波源产生的几列波在同一种介质中传播时,每列波都会保持各自的特性(频率、波长、振幅、传播方向等),每一列波并不因其他波的存在而改变其传播规律.在几列波相遇的区域内,任何一个质点的振动都等于各列波单独传播时在该位置所引起的振动之和,这叫做 “波的叠加原理”.

设有以下两列简谐波,其方程分别为

y1=a1cos(ω1t+θ1)y2=a2cos(ω2t+θ2)

(2)

根据波叠加原理,叠加后的方程为

y=y1+y2=

a1cos(ω1t+θ1)+a2cos(ω2t+θ2)

(3)

3.3.2 波的叠加GUI实验界面设计

(1)建立3个坐标轴对象,用于显示已知波的图像和叠加后波的图像;

(2)建立3个按钮,用于绘制图像、清空图像和结束程序;

(3)建立6个可编辑文本框,用来输入对应变量;

(4)建立6个静态文本标签,用来标注相应控件的提示.

(5)建立1个静态文本标签,用于显示实验名称;

(6)建立2个面板,分别用于显示已知波形的相关参数.

创建好GUI界面并调整好各控件的大概位置后,设置这些控件的属性,仿真实验结果如图5所示.该图像用户界面可用分别输入两个波的振幅、频率和相位,实现对不同频率、不同幅度和相位的两个波叠加后波形的观察.

图5 波的叠加实验仿真结果

4 结论

本文利用Matlab软件对中学物理实验中常见的布朗运动、波的干涉、波的叠加进行了GUI界面设计,利用图形用户界面设计可以更容易地改变实验参数,应用图像显示可以很方便地显示在不同条件下的实验现象和实验结论.

因此,基于Matlab语言的物理实验模拟方法具有教学意图明确、成本低廉、操作简单、人机交互性强、交互参数调节方便、响应速度快等特点.在教学中适当地引入Matlab物理实验辅助教学,可以使教学内容更加生动形象,有助于学生对物理概念的深入理解,提高课堂的教学效果.

1 李斌,谭鹏,陈国杰,等.MATLAB GUI 在大学物理实验教学中的应用.实验科学与技术,2013,11(3):35~37

2 于建,姚宇凤.基于Matlab GUI的“信号与系统”课程教学仿真系统开发.河北民族师范学院学报,2016,36(2):105~109

3 崔祥霞,杨兆华,陈君.基于MATLAB的光学衍射与干涉实验仿真.泰山学院学报,2009,31(3):109~113

4 陈垚光,毛涛涛,王正林,等.精通MATLAB GUI设计.北京:电子工业出版社,2008

5 范中和.大学物理学下册.(第二版).西安:陕西师范大学出版社, 2008

6 肖明,肖飞,主编.普通物理实验教程.北京:科学出版社,2011

2016-12-26)

猜你喜欢
图形用户界面布朗运动控件
基于.net的用户定义验证控件的应用分析
Java图形用户界面编程在文本格式化设置系统中的教学研究
双分数布朗运动重整化自相交局部时的光滑性
分数布朗运动驱动的脉冲中立型随机泛函微分方程的渐近稳定性
关于.net控件数组的探讨
布朗运动说明了什么
浅谈图形用户界面的保护
次分数布朗运动环境下可转换债券的定价
sgRNAcas9软件图形用户界面开发及应用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用