龙志超,杨晓莉,陈长海
(湖北民族学院 科技学院,湖北 恩施 445000)
基于GUI的可视化光学实验的仿真
龙志超,杨晓莉*,陈长海
(湖北民族学院 科技学院,湖北 恩施 445000)
随着计算机运算性能的快速提高,以及仿真软件的功能越来越强大,光学实验仿真在优化光学系统和模拟设计的过程中迅速发展起来,仿真系统引起了人们广泛的关注.本课题利用Matlab软件对经典的光学实验进行数学建模,编程运算,然后对实验进行计算机仿真,最后创建人机交互式GUI界面.使用者只需通过改变输入参数就可以模拟不同条件下的不同光学实验的实验现象.最终成果是设计完成一个实用的光学实验仿真平台.
光学实验;GUI;MATLAB;仿真
随着科学的发展,计算机在各行各业都有着广泛的应用,极大的方便了人们的生活.伴随着计算机技术的快速发展,计算机仿真技术也迎来了蓬勃的发展,在科学研究,工程应用,产品开发设计等领域,都可以见到仿真技术广泛应用的身影[1-3].光学计算机仿真技术也因实际的需要而得到快速的发展.目前,利用Matlab软件来实现光学实验模拟演示已经有较多的相关成果.但是,真正把光学实验[4-5]的仿真做成一个人机交互式界面的还是比较少.能够把界面做成一个功能完善,界面美观的仿真平台的更少.大多数的仿真程序,需要直接输入设计的仿真程序,然后运行相应程序,才可以演示仿真的光学实验.使用过程中需要对仿真程序的实现过程和指令有一定的理解,对于仿真程序的使用者门槛较高.而人机交互式界面的设计把仿真程序做成一个界面,则会大大降低使用者的使用难度,通过鼠标和键盘就可以在仿真界面上直接改变仿真程序的参数.所以利用Matlab软件将光学实验做成一个功能完善,界面美观的人机交互式界面是一个值得探索和研究的课题.
1)GUI背景替换
ha=axes('units','normalized','position',[0 0 1 1]);
uistack(ha,'down')
II=imread('图片.jpg');
image(II)
2)参数调节控件[6]
if sel1==1;
……(第一个仿真实验程序)
elseif se2==1;
……(第二个仿真实验程序)
end
3)滑动条和可编辑文本框的结合使用
核心程序如下:
滑动条回调函数[7]
val=get(hObject,'value')
set(handles.edit1,'string',val)%让可编辑文本框显示滑动条的值
可编辑文本框回调函数
shu=get(hObject,'String') %获取文本内容
val=str2double(shu)%将文本内容转化为数字
set(handles.slider1,'value',val)%设定滑动条的value值和文本框的输入参数大小一致
图3 主界面Fig.3 Main interface
4)回调函数之间的数据传递
Global a b c;%将a,b,c设置为全局变量
仿真平台由一个主界面和七个子界面组成,下面所示分别是主界面的程序流程图,如图1.其中一个子界面的程序流程图,如图2.其它的程序流程图不一一列出.
图1 总流程图 图2 介质薄膜等倾干涉Fig.1 The total program flow chart Fig.2 Thin-film equal inclination interference
在命令栏输入GDI指令弹出仿真平台的主界面,如图3.用鼠标点击主界面的对应按钮可分别打开单缝衍射等仿真界面,通过拖动滑动条或者文本框输入数字完成仿真程序的参数设定,并时时的绘出仿真效果.图4~8分别为单缝衍射、光栅衍射、单晶体子波波阵面、双缝干涉和介质薄膜等倾干涉的仿真效果图.图9、图10为平台介绍和使用帮助界面的仿真效果.
(a) (b) (c)图4 单缝衍射Fig.4 Single slit diffraction
(a) (b)图5 光栅衍射 Fig.5 Optical grating diffraction
(a) (b) 图6 单晶体子波波阵面 Fig.6 Single crystal wave front
(a) (b)图7 双缝干涉 Fig.7 Two-slit interference
(a) (b) 图8 介质薄膜等倾干涉 Fig.8 Thin-film interferenc
图9 平台介绍 图10 使用帮助 Fig.9 Introduction to platform Fig.10 Usinghelp
本文利用MATLAB软件完成了光学实验仿真平台的设计.平台演示了单缝衍射,介质薄膜等倾干涉,双缝干涉,单晶体子波波阵面,光栅衍射五个光学实验.仿真平台程序运行稳定,操作简单,仿真效果明显.完成后的光学实验仿真平台如果用于辅助教学,可以延长实验器材的使用寿命,减少实验仪器的损坏,降低实验成本,方便老师光学教学和学生学习,具有一定实用价值.
[1] 陈怡.虚拟实验室平台设计的研究与实现[D].成都:西南交通大学,2010.
[2] 赵盾.光学实验计算机仿真平台的构建[D].武汉:武汉理工大学,2010.
[3] 曲伟娟.基于MATLAB的光学实验仿真[D].西安:西北工业大学,2004.
[4] 梁绍荣,刘昌年,盛正华,等.普通物理学·光学[M].3版.北京:高等教育出版社,1988:160-202.
[5] 程守洙,江之永,胡盘新,等.普通物理学1[M].5版.北京:高等教育出版社,1998:1-20.
[6] 张志刚,刘丽梅,朱婧,等.Matlab与数学实验[M].2版.北京:中国铁道出版社,2004:1-200.
[7] 罗华飞.MATLAB gui设计学习手记[M].2版.北京:北京航空航天大学出版社,2010:345-428.
VisualOpticalExperimentalSimulationBasedonGUI
LONG Zhi-chao,YANG Xiao-li*,CHEN Chang-hai
(Science and Technology College of Hubei University for Nationalities,Enshi 445000,China)
With the rapid development of computers’ computing ability and the more powerful function of simulation software, optical experimental simulation has been developed in the process of simulation design and optimization of optical systems. Therefore,simulation system has attracted widespread attention.This project uses MATLAB software to establish mathematical model for the typical optical experiment, make computer simulation on the experiment and create the interactive GUI interface. Users can simulate different optical experimental phenomena under different conditions by changing the input parameters. The final result is to design a practical optical experiment simulation platform.
optical experiment;GUI;MATLAB;experimental simulation
2013-04-11.
国家自然科学基金项目(11147012);湖北民族学院科技学院校级教研项目(KY201107);国家级大学生创新创业训练计划项目(201210517013).
龙志超(1989- ),男,硕士研究生,主要从事理论物理的研究;*
:杨晓莉(1982-),女,讲师,硕士,主要从事多光谱技术研究.
O436;TP391.76;G434
A
1008-8423(2013)02-0200-04