APP下载

基于MATLAB GUI的波动光学仿真平台

2013-10-25张卫山尚剑锋刘雪林

大学物理实验 2013年3期
关键词:控件牛顿光学

张卫山,尚剑锋,刘雪林,刘 冰

(中国石油大学(华东),山东 青岛 266580)

1 设计原则

该仿真平台构建的原则是使最终的平台具有系统性、交互性、实时性、保密性和实用性的特点。为了解决现在仿真项目单一不系统的问题,该平台利用GUI设计编制了人机友好的图形用户界面,采用交互式动态的展现各物理参数对波动光学现象的影响,摆脱了一个界面只能模拟一个实验现象的局限。该仿真平台分两大模块,即主界面和次界面,具体系统结构见图1。在主界面中通过下拉式菜单进入不同的次界面中,在次界面上有参数输入区和图像绘制区,输入不同参数即可模拟出相应波动光学条纹及光强,改变参数可模拟出另一组图像,与前一组可进行观察对比,可模拟平面图像,也可模拟出三维光强图像,此外还可从部分界面中显示出相应波动光学实验的器材图片。为了使该平台具有易操作性和便携性,脱离庞大的MATLAB平台运行,提高该平台的实用性,在项目的最后阶段利用mcc编译生成可脱离matlab环境独立运行的可执行文件,从而也提高了系统的保密性。

图1 波动光学仿真平台结构图

2 图形用户界面的设计

2.1 设计步骤

用Matlab GUI设计的波动光学仿真界面,主要有以下几个步骤:

(1)整理草图,构思控件的布局。打开Matlab程序,在file菜单中选择new gui,打开guide设计界面模板,界面模板左边各个控件可以在编辑框内进行编排。

(2)主界面和次界面的设计。该仿真平台包括光的干涉和衍射实验两个方面。主界面见图2,点击相应的选项即可进入下一界面,同时在部分子界面中加入相关实验器材图片以及绘制三维的光强图像等功能,并且可以通过get()和close()函数随时扩展实验,将各个实验模块化,增强平台的拓展性[8]。

图2 系统主界面

(3)设置各个控件的属性。比如设置各控件的颜色、大小、文字等。

(4)代码的设计。关键是OpeningFcn(初始界面函数)和控件的Callback(回调函数)代码的设计。回调函数是关键,是对界面控件触发时的事件响应函数[9]。

(5)mcc编译。为了实现平台的保密性以及实用性,该平台利用mcc编译生成可脱离matlab环境独立运行的可执行文件。

在进入ADC中断服务程序之前一定要对EV和AD初始化并打开相应中断,ADC中断程序主要是处理采集的10次数据先按从小到大排列后,然后经过中值滤波,再按获得的增益量和偏移量来校准采集的结果,最后把校准后的结果保存在DSP内部寄存器中,等待DSP读取最后结果通过SPI总线输出到LCD上显示。AD转化流程图,如图5所示。

2.2 仿真实验的设计

2.2.1 夫琅和费双缝衍射实验的仿真设计

本文以夫琅和费双缝衍射实验和牛顿环实验为例,介绍其仿真界面设计过程及仿真结果。双缝衍射实验的示意图如图3所示。

图3 夫琅和费双缝衍射实验示意图

设双缝S1、S2的距离为d,屏幕到双缝的距离为z,且z≫d,则在演示屏上观察到的光强分布为[10]:

其中:α=πasinθ/λ,β=πdsinθ/λ。

根据设计步骤,在编辑框中设置相应控件,文本框用来输入相应参数,坐标轴Axes1用来显示三维衍射强度曲线,另外弹出的Figure1用来显示双缝衍射条纹,界面可直接输入缝的中心间距d、波长λ和双缝到屏幕的距离z等参数。设计“绘制图形”控件的回调函数的代码,在界面中输入相应的参数,点击“绘制图形”控件,即可得到夫琅和费双缝衍射实验的仿真结果,如图4所示。

图4 夫琅和费双缝衍射实验仿真结果

2.2.2 牛顿环实验的仿真设计

牛顿环实验的示意图如图5所示。

图5 牛顿环实验示意图

设输入透镜曲率半径为R,光波长为λ,m级干涉条纹半径为r则屏幕上的牛顿环光强分布的公式为[11]

同样的方法设计界面,可调节的参数有:λ,R和r。在界面中输入不同的参数可以分析比较在不同条件下的实验仿真结果,如图6所示。随着参数的变化可以看出,干涉条纹也在发生变化,变化规律与理论相吻合。还可以改变其他参数,观察分析参数的变化对牛顿环光强的影响。

2.3 mcc编译

2.3.1 编译文件

在mcc编译前安装编译器,通过在Matlab命令窗口输入:mbuild-setup,按提示选择 MATLAB自带编译器LCC,在文件路径下命令行输入(以牛顿环的制作为例):mcc-mniudunhuan.m,将M文件编译为脱离matlab环境运行所必需的可执行文件:niudunhuan.exe等文件。

图6 牛顿环实验的仿真结果

2.3.2 运行编译文件

在 MATLAB\toolbox\compiler\deploy\win32下找MCRInstaller.exe文件,在没有安装MATLAB的电脑上安装 MCRInstaller到D:\MATLAB Component Runtime。

设置环境变量,右键点击我的电脑-属性-高级-环境变量-新建。

变量名:Path

变量值:D:\MCR\v70\runtime\win32

运行exe文件,每次都是出现DOS界面后,几秒钟会自动关闭。

2.3.3 消除DOS黑窗口

去除独立可执行程序运行时的“DOS黑窗口”时,在 MATLAB命令行输入:cd(prefdir)和edit compopts.bat,此时compopts.bat打开,在文件 最 后 添 加:set LINKFLAGS =%LINKFLAGS%-subsystem windows。然后再重新生成.exe文件,运行此文件即可消除黑色窗口界面[12]。

3 结 论

通过以上方法构建的波动光学仿真平台具有界面友好、操作方便、可移植性强、实用性及保密性好等优点。该平台能够实现实验项目的选取和实验参数的灵活设置,为光学理论教学和实验教学提供一个新的途径,其理论和实际意义在于突破了教学空间、仪器设备等因素的限制,减少了实验损耗,把抽象的问题进行简明直观的动态展示,让学生直观、方便地观察到模拟的实验现象以便更好地理解理论知识,进一步推动了基础课程教学方法的现代信息技术的应用。

[1] 符运良.MATLAB在光学教学中的应用[J].华南热带农业大学学报,2004,10(3):55-57.

[2] 曲伟娟.基于 Matlab的光学实验仿真[D].西安:西北工业大学,2004.

[3] 唐慧琴,郑小娟.工科大学物理“光学”课程建设的实践与思考[J].红河学院学报,2010,8(2):16-17.

[4] 陈小莉,钟生海.MATLAB在光学实验中的应用[J].安康师专学报,2003(15):64-67.

[5] 庄建,青莉.基于 Matlab的光学实验仿真平台[J].成都大学学报:自然科学版,2006,25(1):70-72.

[6] 孙绪保,光学实验与仿真[M].北京:北京理工大学出版社,2009.

[7] 赵盾.光学实验计算机仿真平台的构建[D].武汉:武汉理工大学,2010:4-5.

[8] 胡昌奎,杨应平等.光学实验计算机仿真平台的构建[J].大学物理实验,2011,24(1):69-70.

[9] 钟可君,张海林.基于 Matlab GUI设计的光学实验仿真[J].实验室研究与探索,2010,29(10):52-53.

[10] 游璞,于国萍.光学[M].北京:高等教育出版社,2008:121-124.

[11] 张慧兰.牛顿环干涉中光强分布的探讨[J].南方冶金学院学报,1996,17(4):17-21.

[12] 罗华飞.MATLAB GUI设计学习笔记[M].北京:北京航空航天大学出版社,2008:328-329.

[13] 宋璐.基于MATLAB GVI的拍频实现方法的研究[J].大学物理实验,2012,06:98-99.

[14] 王秀芳.Matlab-GVI在偏振光实验中的应用[J].大学物理实验,2013,02:70-74.

猜你喜欢

控件牛顿光学
滑轮组的装配
光学常见考题逐个击破
基于.net的用户定义验证控件的应用分析
牛顿忘食
关于.net控件数组的探讨
风中的牛顿
失信的牛顿
光学遥感压缩成像技术
Endress+Hauser 光学分析仪WA系列
基于嵌入式MINIGUI控件子类化技术的深入研究与应用