MATLAB进行等倾干涉动态模拟仿真

更新时间:2024-05-06 07:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

5.使用MATLAB进行等倾干涉动态模拟仿真 5.1. 界面设计

GUI界面设计[6]主要包括以下几个步骤:

第一步构思草图,编排控件的布局。打开MATLAB程序,在FILE菜单中选择NEW GUI,打开guide设计界面模板,界面模板左边的各个控件可以直接用鼠标拖到编辑框。

第二步设置各控件的属性。如设置各个控件的标识(Tag),字体等。 第三步各个控件代码的设计。关键是OpeningFcn(初始界面函数)和控件的CallBack(回调函数)代码的设计。初始界面函数即设定各参数的初始值,可根据实际情况设定。回调函数是核心,是对界面控件触发时的事件响应函数。 根据需要,等倾干涉条纹的动态模拟图形用户界面使用了2个按钮(Push Button),标识为绘图和退出,用鼠标点击任一项目,则会执行相应的功能;4个静态文本框(Static Text)用于输入波长,厚度及各自的单位;2个滑动条(Slider),用鼠标拖动相应的滑动条就可以改变波长和厚度的大小;1个坐标轴对象(Axes)用于显示仿真结果。界面如图4。

图 4 仿真界面

5.2 演示控件的回调函数

演示控件的功能是通过其回调程序来实现的,用户界面设计完成之后,选中控件用鼠标双击,在弹出的菜单中选择Viewbacks,在其子菜单中选择CallBack,就可以进入回调程序编辑器中,在编辑器中编写控件代码,使图形界面完成约定的功能。

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

lambda=get(handles.slider1,'value'); d=get(handles.slider2,'value'); f=200; n=1; N=300; xmax=10; ymax=10;

x=linspace(-xmax,xmax,N); y=linspace(-ymax,ymax,N); for i=1:N for j=1:N

r(i,j)=sqrt(x(i)^2+y(j)^2);

B(i,j)=cos(pi*(2*n*d*cos(asin(n*sin(atan(r(i,j)/f)))))/lambda).^2;

end end

NCLevels=255; Br=4*B*NCLevels;

colormap(gray(NCLevels)); image(x,y,Br); axes(handles.axes1)

5.3改变参数对比相邻亮条纹间距变化规律

用户通过调节平台的滑动条,分别改变入射波长,厚度影响等倾干涉的两个参数,可以分别得到不同的干涉图样。

5.3.1 改变入射波长

图6 厚度d=0.0049405mm不变,波长为?=0.00045mm时,等倾干涉图

图7 厚度d=0.0049405mm不变,波长为?=0.0005mm时,等倾干涉图

图8 厚度d=0.0049405mm不变,波长为?=0.0006mm时,等倾干涉图

条纹变化特征:从图6到图8的调节过程中,随着参数?的增加,相邻的亮条纹之间的距离越来越大。 5.3.2 改变薄膜厚度

图9厚度为d=0.6mm波长,为?=0.0005mm时,等倾干涉图

图10 厚度为d=0.7mm,波长为?=0.0005mm时,等倾干涉图

图11厚度为d=0.8mm,波长为?=0.0005mm时,等倾干涉图

从图中可以看出条纹变化特征:薄膜的厚度d越大,即相邻的亮条纹之间的距离越小,条纹越密,越不易辨认。

6 结束语

在光学领域里,计算机仿真技术也在发挥着越来越重要的作用,特别是在光学教学过程中,对光学现象的理解离不开光学实验。本文对等倾干涉实验理论进行了分析,应用MATLAB指令,采用计算机模拟仿真技术对其干涉条纹进行了模拟仿真,得到了光学实验的仿真图像。利用matlab来开发光学信息处理实验仿真系统,提高了实验的效率,快速实现研究中的新构想,这为光学的理论分析与实验提供了方便,并为相关课件设计提供了新的途径。因此,推广应用类似于matlab这样功能强大的编程软件来进行仿真实验的开发,将给教学和科研带来便利。

参考文献

[1] 张平.matlab基础与应用简明教程[M].电子工业出版社.2001

[2] 曲伟娟.基于Matlab的光学实验仿真[J].西北工业大学学报,2004,21(3):21-24. [3] 姚启均.光学教程[M].北京:高等教育出版社,2002.

[4] 谢谦.关于等倾干涉的讨论[J].商洛师范专科学校学报,2002,16(2):71-73. [5] 张智星.Matlab程序设计与应用[M].电子工业出版社,2001.

[6] 李季军.matlab GUI在光学仿真中的应用[J]通化师范学院学报,2012 31(2):52-54.

本文来源:https://www.bwwdw.com/article/35vg.html

Top