APP下载

正交柱面透镜的等厚干涉的MATLAB仿真*

2020-07-01周国全段玉婕

物理通报 2020年7期
关键词:控件条纹滑动

周国全 段玉婕

(武汉大学物理科学与技术学院 湖北 武汉 430072)

通常的牛顿环干涉现象是发生于球面平凸-平板透镜间,或其推广与扩充的平凸-平凸、平凸-平凹球面透镜间的双光束傍轴等厚干涉[1~5];它不同于等倾干涉现象[3,6~8];而平凸-平板(平凸、平凹)柱面透镜间的等厚干涉,也是基于牛顿环干涉现象衍生而来的一种新型等厚干涉形式[9,10],文献[9]分析讨论了各类平行放置的柱面透镜间的等厚干涉现象,得到的是不等间隔的直条纹;而文献[10]分析讨论了各类正交柱面透镜间的等厚干涉现象, 条纹形状典型而独特,可以呈现亮暗相间的椭圆或双曲型的条纹,也出现类似于牛顿环干涉实验的圆环条纹,甚至还能得到极为特殊的直条纹. 正是条纹多样性的这一优点,使得它在光学教学与研究以及技术开发方面会有重要的应用前景. 另一方面MATLAB是一款能对物理过程及科学规律进行精确模拟与仿真的优秀软件,具有强大的科学计算与可视化功能, 以及可扩展环境、简单易用、可开放式等特点.

本文以正交柱面透镜的等厚干涉为研究对象[10], 运用MATLAB软件对其干涉规律进行具体形象和分门别类的研究与展示,设计了模拟仿真实验平台,以开拓其在光学系统设计与教学领域更为广阔的应用范围.

1 平凸-平凸/平凹柱面透镜的等厚椭圆/双曲条纹

如图1所示为平凸-平凸柱面正交干涉结构, 两透镜柱面外切, 剖面相互平行,对称面彼此垂直. 两柱面切点O为直角坐标系O-xyz原点,取上、下柱面(半径分别为R1和R2)过切点O而相交的两条母线分别为y,x轴; 当波长为λ的单色光沿负z轴方向射入透镜,来自两圆柱表面的傍轴反射光将发生等厚干涉;条纹形状为间隔不均的椭圆形. 离中心斑块愈远的地方条纹愈密. 下面简述其干涉条件与分布规律[10].

图1 平凸-平凸柱面正交干涉结构

设x和y是柱面上点P(或Q)分别到zOy平面、zOx平面的距离. 设n为柱面间媒质(如空气)的折射率,考虑反射半波损失(位相突变),设透过读数显微镜,点(x,y) 落在第m级亮或暗纹上, 则光线在上下两柱面的反射光程差及干涉条件是[10]

(1)

m=0相应于零级暗斑;当m≠0时,不妨设R2

(2)

显然这是第m级正椭圆形等厚干涉暗环,其半长轴、半短轴分别

并满足与干涉序m无关的如下规律

(3)

(4)

此外,若将两柱面之曲率半径R1,R2看成代数量,统一规定符号,即可统一地表达两种不同正交干涉结构的条纹分布规律及干涉条件.符号法则具体如下:平凸(凹)柱面的曲率半径之符号为正(负). 按此规定, 当上、下两侧皆为平凸柱面时,其曲率半径R1>0,R2>0;而当下侧是平凹柱面透镜时, 其曲率半径R2<0,进而bm是虚数.如图2所示,对应于平凸-平凹柱面正交干涉结构.

图2 平凸-平凹柱面正交干涉结构

如此则两套干涉结构的光程差公式与干涉条件统一于式(1),亮暗条纹轨迹方程及分布规律统一于式(2)、(4).对于平凸-平凹正交干涉结构,允许m取负整数,则其拥有开口分别在x,y方向的两个双曲线族;对于暗纹,当R1>0,R2<0,m>0时,式(2)变为

(5)

其半长、短轴分别为

可发现如下规律

(6)

二是四萼猕猴桃与中华猕猴桃嫁接亲合力好,成活率可以达到70%以上,根系发达,有“小脚”现象,抗根腐病、溃疡病效果好,嫁接的苗木生长比较旺盛,适宜在南方栽培。

而R1>0,R2<0,m=0满足式(5)的暗纹条件,对应两双曲线族共享的两渐近线暗直纹方程.

此外,对于这种双光束干涉,其光强I(x,y)分布与相位差δφ之间函授关系为

(7)

(8)

将式(8)代入式(7),易知干涉场强I随点(x,y)而变化.具有等相位差δφ(x,y)的光线相遇点P在xOy平面上的投影轨迹,呈现出正椭圆/双曲形状的干涉条纹.

2 正交柱面透镜的椭圆/双曲型等厚干涉条纹仿真

2.1 仿真程序建立的历程

为了方便读者分析实验参数对干涉条纹的影响, 观察图像随参数的动态变化,我们根据柱面正交透镜的干涉理论,设计了仿真程序. 历程如下:

(1)先用Origin软件根据光强分布函数,将正交柱面透镜的椭圆/双曲型条纹仿真出来,有了一个好的开端,为下一步MATLAB仿真奠定了基础;

(2)进一步编写代码,在MATLAB中仿真出来正交柱面透镜的椭圆/双曲型条纹;

(3)设计图形用户界面,建立Guide, 在MATLAB gui 中仿真;

(5)添加弹跳式菜单,添加两个面板,分别显示正交柱面透镜的椭圆型及双曲型等厚干涉条纹程序,进而可以通过下拉菜单有选择地模拟仿真正交柱面透镜的椭圆型及双曲型条纹.

2.2 图形用户界面的设计

构建仿真程序所依据的核心原则是使仿真平台具有交互性、系统性、实时性、实用性和保密性的特点. 该平台利用MATLAB Gui设计编制了图形用户界面,合理地解决了仿真实验项目单一及系统性、对比性不强的问题,而且采用交互式,其人机互动友好,动态地展现物理参数对椭圆/双曲型干涉条纹的影响,通过下拉菜单有选择地模拟仿真相应的椭圆型/双曲型等厚干涉条纹,突破了一个界面只能模拟一个实验现象的局限性.

按照步骤依次打开MATLAB软件、Guide设计界面模板,接着对界面模板左边各个控件在编辑框内进行编排.添加控件,首先,在MATLAB的“命令”窗口中输入Guide命令,打开GUIDE Quick Start对话框. 其次,选择Blank GUI (Default),点击OK按钮建立一个空白的GUI模版. 然后用鼠标拖动模版左边的控件到设计工作区,并拖动工作区缩放句柄改变窗口的大小.GUI最主要包含5个静态文本框(static text),用来显示该仿真平台中的仿真实验和仿真实验装置的名称;2个滑动条(slider),分别用于修改下侧平凸或平凹柱面透镜的曲率半径大小;4个坐标轴(Axes),分别用于显示干涉图样和干涉实验装置;2个可编辑文本框(Edit text),显示实时的凸透镜或凹透镜半径的大小;1个下拉式菜单(Popupmenu),如图3所示, 便于读者选择实验仿真项目;最后,2个面板,用于分别显示正交柱面透镜的椭圆或双曲型干涉条纹的整套实验仿真程序.

图3 选择实验仿真项目

在Gui界面上, 通过调节2个滑动条, 观察改变实验装置下侧透镜曲率半径大小对椭圆型或双曲线型干涉条纹的影响. 增加下侧平凸柱面透镜的曲率半径,中央暗条纹宽度及各条纹间的间隔也减小,反之亦有相反现象出现. 当滑动条设置到R1=R2=R时,条纹由椭圆型条纹变成圆型条纹. 再逐渐增大R2,即将滑动条逐渐向右滑动时条纹又逐渐由椭圆型条纹变成等厚干涉型的直条纹,如图4所示. 观察这一动态变化,可发现两边的椭圆型条纹,先变成直条纹,中间还是一个椭圆型的暗斑,慢慢的随着滑动条向右移动,这一暗斑也变成矩形的了,即变成直条纹了. 同样,增大下侧平凹柱面透镜的曲率半径时,即移动另一个滑动条时,这次是向左移动,中央暗条纹面积也减少,4个开口大小也在减小,各条纹之间的间隔也减小;反之亦有相反现象出现.

图4 椭圆型条纹变直条纹图

2.3 设置各个控件的属性

经过调整并确定上节的图形化界面中各控件布局之后,必须对各控件的颜色、大小、文字、String 和 Tag 等属性进行设置. 其中滑动条还要设置取值区间,所以还需要设置Mix和Max属性. 下拉菜单(Popupmenu)组件是实现对模拟仿真实验项目的选择功能的重要控件之一,所以也需要将界面编辑器中下拉菜单 String内容设置为正交柱面透镜间的等厚干涉实验、平凸-平凸柱面透镜间的等厚椭圆条纹、平凸-平凹柱面透镜间的等厚双曲线条纹. 为了完全实现对模拟仿真实验项目的选择功能,还需要2个面板,把每一套完整的模拟仿真实验程序所需要的各组件分别放在一个面板上,当需要运行其中的一个模拟仿真实验时,只需要让该程序对应面板的visible属性设为“on”,其他面板的visible属性设为“off”, 这样界面就能实现只显示一个实验项目了. 不过在点击运行菜单时,所有面板还是会全部显示,所以刚开始需要把所有面板的visible属性设为“off”.

2.4 代码的设计

代码设计是程序设计的一个重要部分,其设计关键又是界面编辑器中的控件和m文件中的OpeningFcn(初始界面函数)和Callback(回调函数)的代码设计. 使界面控件触发时的事件响应是回调函数的关键作用. 具体做法是在完成基本布局,并设置完组件基础属性后,我们就需要对各组件属性进行设计. 在组件对象上右击鼠标,选择回调函数即view Callback / Callback,就会自动生成与gui仿真实验程序相对应的m文件,鼠标也会自动定位在该组件的Callback 回调函数中编写代码的位置.

本文先在m文件的OpeningFcn(初始界面函数)的Callback(回调函数)中编写代码,基于正交柱面透镜的等厚干涉理论仿真出来一个静态的椭圆型等厚干涉条纹.仿真时设置的参数如下:上、下侧2个平凸柱面透镜的曲率半径分别为R1=1.85 m与R2=0.86 m,n=1.00为空气折射率的取值.然后在滑动条即slider1的Callback(回调函数)中编写代码,使得滑动条代表下侧平凸柱面透镜的曲率半径R2的取值,随着滑动条的滑动,R2的取值也发生变化,然后模拟仿真的椭圆等厚干涉条纹也会发生变化.再后获取滑动条的实时值,接着编写可编辑文本框的Callback(回调函数)中的代码,目的是获取滑动条的实时值,使其显示在该文本框中,使代表R2大小的滑动条的值,实时显示在可编辑文本框中. 最后在面板即panel1的Callback(回调函数)中编写代码. 利用switch语句实现当面板1出现时,面板2和其他面板就隐不可见.同样,面板2出现时,面板1和其他面板隐藏起来. 最后可得完整动态仿真实验程序,典型仿真结果如图5和图6所示;同时运用MATLAB仿真技术,还能模拟两类干涉条纹强度分布的三维立体图,如图7和图8所示.

图5 椭圆型等厚干涉图

图6 双曲线型等厚干涉图

图 7 椭圆型等厚条纹三维图

图8 双曲线型等厚条纹三维图

3 应用前景与结论

迄今已有一些学者运用MATLAB软件实现了不同类型光学干涉实验的模拟仿真,并已经出现了一些不错的研究成果[11~14].但是真正的有关人机交互式界面的仿真实验还是不够成熟,故很少有人能将图形化界面设计成为功能完善、简洁明了的仿真平台.它们大多需要在命令窗口输入指令,方能运行所设计的仿真程序,演示所仿真的光学干涉实验.使用该软件,需具有较高的软件知识与技能,对仿真程序的实现过程和指令有一定的理解.本文采用人机交互式界面,将仿真程序制作成一个界面,通过鼠标和键盘就可直接改变仿真程序的参数,能够大大简化操作手续,降低使用者的操作难度.

本文以MATLAB高级语言为工具对抽象的正交柱面透镜干涉进行仿真,并基于它的GUI界面和绘图底层函数将干涉条纹的二维及三维分布图样直观地反映出来,具有参数灵活可变、实验现象直观丰富、界面友好、速度快、效率高的优点. 这为相关教学研究问题提供了高效、快速的解决路径.

猜你喜欢

控件条纹滑动
用于弯管机的钢管自动上料装置
基于.net的用户定义验证控件的应用分析
谁是穷横条纹衣服的人
针对移动端设计的基于滑动响应方式的验证码研究
关于.net控件数组的探讨
Big Little lies: No One Is Perfect
条纹回归
春日条纹变奏曲
用于滑动部件的类金刚石碳覆膜特性及其应用
条纹,条纹,发现啦