摘
要: 本文以光学等倾干涉实验为例,利用 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’)); %从滑动条中获取波长的大小