华玲玲 杨 阳
(1华北科技学院 基础部,北京 101601)
(2华北科技学院 计算机系,北京 101601)
光栅衍射是大学物理课程中比较复杂的问题,也是学生不易理解的问题.首先,计算光栅衍射的光强分布需利用菲涅耳-惠更斯原理[1]对复函数积分,通常很难得到解析解.由于菲涅耳衍射积分的复杂性,在目前的大学物理教材中,通常都是直接从原理上解释光栅衍射是由单缝衍射与多缝干涉共同作用的结果,然后直接给出光强分布公式,这难免使学生在学习过程中似懂非懂.其次,由于受光栅常数d、总缝数N、透光缝宽a、入射光波长λ、透镜焦距f、入射方向等多种因素的影响,光栅衍射谱线特征变化丰富.传统的光学演示实验对实验环境要求苛刻,很难引入课堂教学,而且也难以充分展示光栅衍射所有谱线特征.因此如何让学生充分地理解光栅衍射原理又能直观地观察谱线特征成为了教学的难点.
本文提出一种依据惠更斯-菲涅耳原理,用实函数积分直接导出光栅衍射在光屏上任一点的合振动的表达式以及光强分布函数的方法,无须采用复函数,也无须采用矢量合成法[2].同时,利用Matlab提供的图形用户界面(GUI)来设计光栅衍射仿真界面.此方法构建的仿真平台具有界面友好、操作简单、可扩展性强等优点,用户不需要懂得Matlab语言,只要点击相应按钮,改变相应参数,就可直观、形象地展示光栅衍射过程.对激发学生学习兴趣,总结实验规律,辅助教学等有显著效果.
衍射现象通常分为两类:菲涅耳衍射(近场衍射)和夫琅禾费衍射(远场衍射).本文以夫琅禾费透射光栅为例,实验光路见图1.设透射光栅有N条狭缝,透光部分宽度为a,不透光部分宽度为b,光栅常数为d=a+b,θ为衍射角,f为透镜焦距.
图1 夫琅禾费光栅衍射光路图
光栅衍射光强可以用惠更斯-菲涅耳原理来进行定量计算[3].第一个单缝的计算如图2所示,其他单缝的计算与此相似.
图2 第一个单缝的计算用图
为了便于利用惠更斯-菲涅耳原理来具体计算P点的光振动表达式,我们将单缝A1A2之间的波阵面(面积为al的长方形平面)分割成一个个与单缝上边平行的横条形面元,其中任一个面元与A1端的距离为x,宽度为dx,面积为dS=ldx,该面元到P点的光程为
其中,r表示波阵面A1C上各点到P点的光程,从该面元上发射的子波在P点的振幅可以表示为
其中,A0是单位面积的振幅.按照惠更斯-菲涅耳原理的数学表示式,从第一个单缝发射的次波在P点的合振动为如下积分
其他单缝发射的次波在P点的合振动与此积分相似,只是积分的上下限不同.光栅衍射在P点的合振动为N个分段积分之和,即
对于任一个单缝,设其起点的x坐标为B1、终点的x坐标为B2,(B2-B1=a),可导出如下积分公式
将式(4)代入式(3)得到
其中VN是N个等振幅等相位差的简谐振动的合成.依据合成公式,有
其中φ是合振动的初相位,与光强分布无关.故得到光栅衍射在P点的合振动的振幅为
式中,Ⅰ0为入射光强,通常称为单缝衍射因子为多缝干涉因子.
由公式(8)可知,光栅衍射的强度分布受到单缝衍射因子和多缝干涉因子的共同作用.当多光束干涉主极大的位置恰与单缝衍射的零点重合时,该级主极大消失,这种现象称为缺级.
光栅干涉主极大
单缝衍射极小
当θ角位置同时满足式(9)、(10)时,可将这一位置看成是光强度为零“干涉加强”.即本应出现某k级明条纹的位置,实际上却是暗条纹,k级明条纹不出现.缺级条件如下:
本仿真实验利用Matlab语言编写源程序实现.Matlab是具有强大的数值计算与可视化功能的软件,利用该软件实现光学实验可视化形象教学的案例[5]已有很多.与这些案例相比,本文所实现的仿真实验更突出了知识的综合性与操作的便捷性.本文利用Matlab提供的图形用户界面[6](GUI)来设计光栅衍射仿真界面,即通过图形用户界面把程序封装起来,让学生不用直接面对枯燥的程序代码就可以实现各种仿真的操作.
在Matlab命令窗口键入guide命令,得到如图3所示的设计窗口,其中右侧的窗口区域就是要设计窗口的雏形.在该界面的右侧工具栏中,提供了各种各样的控件,单击鼠标左键选中其中一个控件,这样就可以在左侧的雏形窗口中绘制出这个控件,并可以通过拖动网格区域的右下角来改变窗口和控件的大小.
图3 GUI窗口界面
用上述方法在雏形窗口中绘制出各种控件,实现所需图形用户界面的设计,各个控件的摆放如图4所示.文本框用于标注相应控件的提示,编辑框用于获得系统的参数,按钮用于执行由回调字符串所定义的动作,坐标轴用来显示光强分布和仿真条纹.双击各个控件,设置控件的属性.比如设置各控件的标志(Tag),标签文字(String),颜色(Color),字体(Fontsize)等.
图4 界面设计
点击工具栏中的运行界面按钮,可自动生成M文件.在原有程序的基础上设计代码,关键是初始界面函数(OpeningFcn)和控件的回调函数(Callback)代码的设计.初始界面函数即设定各参数的初始值,可根据实际情况设定.回调函数是核心,是对界面控件触发时的事件响应函数.光学实验仿真界面“运行”控件的回调函数设计流程如图5所示.
保存设计后“运行”控件的回调函数的代码,在界面上的相应编辑框输入参数,点击OK控件调用其Callback函数,可得到光栅衍射实验仿真设计结果.当输入参数分别为λ=600×10-9m,a=2×10-6m,f=0.64m,d=3a(m),N=4时,仿真结果如图6所示.
图5 “运行”控件的回调函数设计流程
图6 光栅衍射仿真实验
输入新的参数后,可点击“重置”控件删除图像,重新点击OK控件可得到更新后的图像.结束时,点击CLOSE控件调用其Callback函数,结束程序关闭图形.此方法构建的仿真平台具有界面友好、操作简单、可扩展性强等优点,用户不需要懂得Matlab语言,只要点击相应按钮,改变相应参数,就可直观、形象地展示光栅衍射过程.
本仿真实验在设计时将单缝衍射、多缝干涉和光栅衍射放在同一个界面,有利于对比学习.通过控制界面右侧的参数,既可以同时观察三个实验的光强和条纹变化特征,又可以通过对比观察,对光栅衍射条纹的产生机理有更深刻的理解,即通过光栅不同缝的光要发生干涉,而每个单缝又都有衍射,所以光栅衍射条纹应是同一单缝衍射因子调制下的N条缝的干涉条纹.
通过本仿真实验得到了光栅衍射分布有如下特点:① 多缝干涉图样与单缝衍射图样相比,出现了一系列新的强度最大值和最小值,其中那些较强的亮线叫主极大,较弱的亮线叫次极大;② 相邻主极大之间有N-1条暗纹(极小)和N-2条次极大,但因为次极大相比主极大来说强度很小,所以和暗纹连成一片形成暗区;③ 光强分布中都保留了单缝衍射的痕迹,即曲线的包络(外部轮廓)与单缝衍射强度曲线的形状一致.
5个参数的变化对光栅的衍射条纹、相对光强分布的影响,如表1所示,此结果与理论分析结果是一致的.
表1 参数变化对条纹的影响
缺级现象是光栅衍射所特有的现象,通常的光学实验很难观察到这一现象.本仿真实验通过改变d/a的比值,可清楚演示缺级现象.比如,令光栅总缝数N=4,d/a=3时,得到仿真结果如图7所示,这与理论分析得到的缺级出现在±3,±6,…结果一致.
点击图6中“干涉和衍射比较”控件,可得子界面,如图8所示.当令光栅缝数N=2时,可以比较双缝衍射和双缝干涉实验结果.杨氏双缝干涉的条纹是明暗相间的等间距等光强的条纹,而双缝衍射的条纹虽然也是等间距,但随着级数增大光强将减弱.理论分析表明,在杨氏双缝干涉中,认为a≪λ,单缝衍射因子的影响可以忽略,光栅衍射变为多光束干涉.在实际的杨氏双缝干涉实验中,因为透光缝宽a不可能做到无限窄,干涉和衍射同时存在,因此,实际实验观察到的现象其实是双缝衍射的结果.
图7 N=4,d/a=3时光栅缺级现象
图8 杨氏双缝干涉和光栅衍射比较
由此可见,光的干涉和衍射本质上是统一的,实际上都是光波的叠加,但在形成条件、分布规律以及数学处理方法上略有不同.
光栅衍射是大学物理教学中的一个难点.本文介绍了一种依据惠更斯-菲涅耳原理用实函数积分直接导出光栅衍射光强分布函数的方法,无须采用复函数,也无须采用矢量合成法.同时,利用Matlab提供的图形用户界面(GUI)设计了光栅衍射仿真界面,不仅可以逼真地显示干涉和衍射的图像,而且解决了真实的光学实验因环境限制而不能进入课堂的难题.通过改变相应参数不仅可以观察光栅衍射丰富的谱线变化特征,而且还可模拟单缝衍射、双缝衍射、双缝干涉、多缝干涉等多种实验现象,实现了一个程序仿真多个实验,有利于相互参照对比,加深对衍射和干涉原理的理解.用同样的方法还可以模拟其他光学现象以及电磁学、力学、热学等现象,因此在物理教学中具有重要的意义.
[1]姚启钧.光学教程[M].北京:高等教育出版社,2002.
[2]郭文珍.夫琅禾费衍射屏上光强分布研究[J].德州学院学报,2004,20(4):30~33.
[3]黄时中,孙秋锋.用实函数直接计算光栅衍射的光强分布[J].物理与工程,2011,21(1):19~24.
[4]张波涛,卢洵,余仲秋.多缝衍射的计算机模拟与演示[J].大学物理,2000,19(2):32~34.
[5]陈琳,朱湘柱.杨氏双缝干涉仿真模型设计[J].计算机仿真,2009,26(9):269~272.
[6]陈垚光,毛涛涛,王正林,等.精通 Matlab GUI设计[M].北京:电子工业出版社,2011.