MATLAB GUI 动态仿真在光学实验教学中应用.docVIP

MATLAB GUI 动态仿真在光学实验教学中应用.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB GUI 动态仿真在光学实验教学中应用

MATLAB GUI 动态仿真在光学实验教学中的应用   摘 要: 本文以光学等倾干涉实验为例,利用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’)); %从滑动条中获取波长的大小   d=str2num(get(slide2,’String’)); %从滑动条中获取厚度的大小   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)*x(i)+y(j)*y(j));   B(i,j)=cos(pi*(2*n*d*cos(asin(n*sin(atan(r(i,j)/f)))))/Lambda).^2;   end    end%计算光强的大小    Br=4*B*NCL;NCL=255; colormap(gray(NCL)); %设定灰度等级   axes(handles.axes1) image(x,y,Br); %在坐标轴对象中显示仿真结果   5.仿真结果和结果分析   在界面中设定波长的初始数据为,厚度,用鼠标点击演示控件,得到如图3的仿真结果。   用鼠标拖动

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档