background image

 要: 本文以光学等倾干涉实验为例,利用 MATLAB GUI 设计实验仿真界面,界面友好

直观,内容丰富,可以通过界面的滑动条改变相关参数,动态显示仿真结果,观察和分析
各参数对干涉条纹的影响,为光学理论分析与实验教学提供了方便,为相关课件的设计提
供了新的途径。

 

  关键词:

 光学实验教学 MATLAB GUI 等倾干涉 仿真 

  

 

  

1.引言 

  光学实验是物理实验的重要内容。对光学实验进行计算机仿真,具有重要意义[1-2
]:可以把抽象的概念、现象和规律通过仿真生动形象地表达出来,使学生利于理解,加深
印象;不必通过具体仪器的调试,通过电脑就可演示,节省了时间,减少了贵重仪器的损
伤,等等。通过

GUI 设计,可以设计出界面良好、操作简便、功能强大的用户界面,而且人

机交互性好,可以直接在界面上更改参数而不必修改程序,动态显示仿真结果,更利于学
生观察和分析各参数对干涉条纹的影响,也为相关课件的设计提供了新的途径。[3-4

MATLAB 是集数值运算、符号运算和图形处理等功能于一体的科学计算语言,而且提供

了功能强大的图形用户设计界面,可设计出方便直观的智能型交互界面[5-6]。我用
MATLAB 语言的 GUI 设计,以等倾干涉为例,设计了仿真界面,并应用于光学实验教学中,
取得了很好效果。

 

  

2.等倾干涉原理和实验的主要内容[7-8] 

  把单色点光源

S 放在会聚透镜 L 的焦点处,使平行光束 ab 照射到薄膜表面上。光束分

为两部分:一部分是反射光束

ab;另一部分折射后又反射,然后折射成 ab,如图 1 所示。

通过透镜

L 使 ab、ab 在点 S

′叠加,产生干涉。由于干涉条纹与 ab 的入射角有关,因此称其

为等倾干涉。

 

  等倾干涉的光强分布为:

I=Icos[2πdcos],其中 d 为薄膜的厚度,f 为 L 焦距,r=。 

  等倾干涉实验的主要内容包括实验目的、实验原理、实验步骤、数据处理和思考与练习。

 

  

3.界面设计 

  

Gui 界面设计主要包括以下几个步骤。 

  第一步构思草图,编排控件的布局。打开

Matlab 程序,在 file 菜单中选择 new gui,打

guide 设计界面模板,界面模板左边的各个控件可以直接用鼠标拖到编辑框。 

  第二步设置各控件的属性。比如设置各控件的标识

(Tag)、颜色、字体等。 

  第三步各个控件代码的设计。关键是

OpeningFcn(初始界面函数)和控件的 Callback(回调

函数

)代码的设计。 初始界面函数即设定各参数的初始值,可根据实际情况设定。回调函数

是核心,是对界面控件触发时的事件响应函数。

 

  根据需要,界面使用了

7 个按钮(Push Button),标识分别为:实验目的、实验演示、实验

步骤、数据处理、思考与练习、实验演示和系统退出,用鼠标点击任一个项目,则会执行相应
的功能;

2 个静态文本框(Static Text)用于输入波长和薄膜厚度;2 个滑动条(Slide),用鼠标

拖动滑动条可以改变波长和厚度的大小;

1 个坐标轴对象(Axes)用于显示仿真结果。界面如

2 所示。 

  

4.演示控件的回调函数 

  控件的功能是通过执行其回调程序来实现的,用户界面设计完成后,选中控件用鼠标
双击,在弹出的菜单中选择

View Callbacks,在其子菜单中选择 Callback,就可以进入回调

程序编译器中,在回调程序编译器中编写个控件的代码,就可以使图形界面完成约定的任
务。

 

  演示控件的回调函数代码:

 

  

Lambda=str2num(get(handles.slide1,

’String’)); %从滑动条中获取波长的大小