周國(guó)全 段玉婕
(武漢大學(xué)物理科學(xué)與技術(shù)學(xué)院 湖北 武漢 430072)
通常的牛頓環(huán)干涉現(xiàn)象是發(fā)生于球面平凸-平板透鏡間,或其推廣與擴(kuò)充的平凸-平凸、平凸-平凹球面透鏡間的雙光束傍軸等厚干涉[1~5];它不同于等傾干涉現(xiàn)象[3,6~8];而平凸-平板(平凸、平凹)柱面透鏡間的等厚干涉,也是基于牛頓環(huán)干涉現(xiàn)象衍生而來(lái)的一種新型等厚干涉形式[9,10],文獻(xiàn)[9]分析討論了各類平行放置的柱面透鏡間的等厚干涉現(xiàn)象,得到的是不等間隔的直條紋;而文獻(xiàn)[10]分析討論了各類正交柱面透鏡間的等厚干涉現(xiàn)象, 條紋形狀典型而獨(dú)特,可以呈現(xiàn)亮暗相間的橢圓或雙曲型的條紋,也出現(xiàn)類似于牛頓環(huán)干涉實(shí)驗(yàn)的圓環(huán)條紋,甚至還能得到極為特殊的直條紋. 正是條紋多樣性的這一優(yōu)點(diǎn),使得它在光學(xué)教學(xué)與研究以及技術(shù)開(kāi)發(fā)方面會(huì)有重要的應(yīng)用前景. 另一方面MATLAB是一款能對(duì)物理過(guò)程及科學(xué)規(guī)律進(jìn)行精確模擬與仿真的優(yōu)秀軟件,具有強(qiáng)大的科學(xué)計(jì)算與可視化功能, 以及可擴(kuò)展環(huán)境、簡(jiǎn)單易用、可開(kāi)放式等特點(diǎn).
本文以正交柱面透鏡的等厚干涉為研究對(duì)象[10], 運(yùn)用MATLAB軟件對(duì)其干涉規(guī)律進(jìn)行具體形象和分門別類的研究與展示,設(shè)計(jì)了模擬仿真實(shí)驗(yàn)平臺(tái),以開(kāi)拓其在光學(xué)系統(tǒng)設(shè)計(jì)與教學(xué)領(lǐng)域更為廣闊的應(yīng)用范圍.
如圖1所示為平凸-平凸柱面正交干涉結(jié)構(gòu), 兩透鏡柱面外切, 剖面相互平行,對(duì)稱面彼此垂直. 兩柱面切點(diǎn)O為直角坐標(biāo)系O-xyz原點(diǎn),取上、下柱面(半徑分別為R1和R2)過(guò)切點(diǎn)O而相交的兩條母線分別為y,x軸; 當(dāng)波長(zhǎng)為λ的單色光沿負(fù)z軸方向射入透鏡,來(lái)自兩圓柱表面的傍軸反射光將發(fā)生等厚干涉;條紋形狀為間隔不均的橢圓形. 離中心斑塊愈遠(yuǎn)的地方條紋愈密. 下面簡(jiǎn)述其干涉條件與分布規(guī)律[10].
圖1 平凸-平凸柱面正交干涉結(jié)構(gòu)
設(shè)x和y是柱面上點(diǎn)P(或Q)分別到zOy平面、zOx平面的距離. 設(shè)n為柱面間媒質(zhì)(如空氣)的折射率,考慮反射半波損失(位相突變),設(shè)透過(guò)讀數(shù)顯微鏡,點(diǎn)(x,y) 落在第m級(jí)亮或暗紋上, 則光線在上下兩柱面的反射光程差及干涉條件是[10]
(1)
m=0相應(yīng)于零級(jí)暗斑;當(dāng)m≠0時(shí),不妨設(shè)R2 (2) 顯然這是第m級(jí)正橢圓形等厚干涉暗環(huán),其半長(zhǎng)軸、半短軸分別 并滿足與干涉序m無(wú)關(guān)的如下規(guī)律 (3) (4) 此外,若將兩柱面之曲率半徑R1,R2看成代數(shù)量,統(tǒng)一規(guī)定符號(hào),即可統(tǒng)一地表達(dá)兩種不同正交干涉結(jié)構(gòu)的條紋分布規(guī)律及干涉條件.符號(hào)法則具體如下:平凸(凹)柱面的曲率半徑之符號(hào)為正(負(fù)). 按此規(guī)定, 當(dāng)上、下兩側(cè)皆為平凸柱面時(shí),其曲率半徑R1>0,R2>0;而當(dāng)下側(cè)是平凹柱面透鏡時(shí), 其曲率半徑R2<0,進(jìn)而bm是虛數(shù).如圖2所示,對(duì)應(yīng)于平凸-平凹柱面正交干涉結(jié)構(gòu). 圖2 平凸-平凹柱面正交干涉結(jié)構(gòu) 如此則兩套干涉結(jié)構(gòu)的光程差公式與干涉條件統(tǒng)一于式(1),亮暗條紋軌跡方程及分布規(guī)律統(tǒng)一于式(2)、(4).對(duì)于平凸-平凹正交干涉結(jié)構(gòu),允許m取負(fù)整數(shù),則其擁有開(kāi)口分別在x,y方向的兩個(gè)雙曲線族;對(duì)于暗紋,當(dāng)R1>0,R2<0,m>0時(shí),式(2)變?yōu)?/p> (5) 其半長(zhǎng)、短軸分別為 可發(fā)現(xiàn)如下規(guī)律 (6) 二是四萼獼猴桃與中華獼猴桃嫁接親合力好,成活率可以達(dá)到70%以上,根系發(fā)達(dá),有“小腳”現(xiàn)象,抗根腐病、潰瘍病效果好,嫁接的苗木生長(zhǎng)比較旺盛,適宜在南方栽培。 而R1>0,R2<0,m=0滿足式(5)的暗紋條件,對(duì)應(yīng)兩雙曲線族共享的兩漸近線暗直紋方程. 此外,對(duì)于這種雙光束干涉,其光強(qiáng)I(x,y)分布與相位差δφ之間函授關(guān)系為 (7) (8) 將式(8)代入式(7),易知干涉場(chǎng)強(qiáng)I隨點(diǎn)(x,y)而變化.具有等相位差δφ(x,y)的光線相遇點(diǎn)P在xOy平面上的投影軌跡,呈現(xiàn)出正橢圓/雙曲形狀的干涉條紋. 為了方便讀者分析實(shí)驗(yàn)參數(shù)對(duì)干涉條紋的影響, 觀察圖像隨參數(shù)的動(dòng)態(tài)變化,我們根據(jù)柱面正交透鏡的干涉理論,設(shè)計(jì)了仿真程序. 歷程如下: (1)先用Origin軟件根據(jù)光強(qiáng)分布函數(shù),將正交柱面透鏡的橢圓/雙曲型條紋仿真出來(lái),有了一個(gè)好的開(kāi)端,為下一步MATLAB仿真奠定了基礎(chǔ); (2)進(jìn)一步編寫代碼,在MATLAB中仿真出來(lái)正交柱面透鏡的橢圓/雙曲型條紋; (3)設(shè)計(jì)圖形用戶界面,建立Guide, 在MATLAB gui 中仿真; (5)添加彈跳式菜單,添加兩個(gè)面板,分別顯示正交柱面透鏡的橢圓型及雙曲型等厚干涉條紋程序,進(jìn)而可以通過(guò)下拉菜單有選擇地模擬仿真正交柱面透鏡的橢圓型及雙曲型條紋. 構(gòu)建仿真程序所依據(jù)的核心原則是使仿真平臺(tái)具有交互性、系統(tǒng)性、實(shí)時(shí)性、實(shí)用性和保密性的特點(diǎn). 該平臺(tái)利用MATLAB Gui設(shè)計(jì)編制了圖形用戶界面,合理地解決了仿真實(shí)驗(yàn)項(xiàng)目單一及系統(tǒng)性、對(duì)比性不強(qiáng)的問(wèn)題,而且采用交互式,其人機(jī)互動(dòng)友好,動(dòng)態(tài)地展現(xiàn)物理參數(shù)對(duì)橢圓/雙曲型干涉條紋的影響,通過(guò)下拉菜單有選擇地模擬仿真相應(yīng)的橢圓型/雙曲型等厚干涉條紋,突破了一個(gè)界面只能模擬一個(gè)實(shí)驗(yàn)現(xiàn)象的局限性. 按照步驟依次打開(kāi)MATLAB軟件、Guide設(shè)計(jì)界面模板,接著對(duì)界面模板左邊各個(gè)控件在編輯框內(nèi)進(jìn)行編排.添加控件,首先,在MATLAB的“命令”窗口中輸入Guide命令,打開(kāi)GUIDE Quick Start對(duì)話框. 其次,選擇Blank GUI (Default),點(diǎn)擊OK按鈕建立一個(gè)空白的GUI模版. 然后用鼠標(biāo)拖動(dòng)模版左邊的控件到設(shè)計(jì)工作區(qū),并拖動(dòng)工作區(qū)縮放句柄改變窗口的大小.GUI最主要包含5個(gè)靜態(tài)文本框(static text),用來(lái)顯示該仿真平臺(tái)中的仿真實(shí)驗(yàn)和仿真實(shí)驗(yàn)裝置的名稱;2個(gè)滑動(dòng)條(slider),分別用于修改下側(cè)平凸或平凹柱面透鏡的曲率半徑大??;4個(gè)坐標(biāo)軸(Axes),分別用于顯示干涉圖樣和干涉實(shí)驗(yàn)裝置;2個(gè)可編輯文本框(Edit text),顯示實(shí)時(shí)的凸透鏡或凹透鏡半徑的大?。?個(gè)下拉式菜單(Popupmenu),如圖3所示, 便于讀者選擇實(shí)驗(yàn)仿真項(xiàng)目;最后,2個(gè)面板,用于分別顯示正交柱面透鏡的橢圓或雙曲型干涉條紋的整套實(shí)驗(yàn)仿真程序. 圖3 選擇實(shí)驗(yàn)仿真項(xiàng)目 在Gui界面上, 通過(guò)調(diào)節(jié)2個(gè)滑動(dòng)條, 觀察改變實(shí)驗(yàn)裝置下側(cè)透鏡曲率半徑大小對(duì)橢圓型或雙曲線型干涉條紋的影響. 增加下側(cè)平凸柱面透鏡的曲率半徑,中央暗條紋寬度及各條紋間的間隔也減小,反之亦有相反現(xiàn)象出現(xiàn). 當(dāng)滑動(dòng)條設(shè)置到R1=R2=R時(shí),條紋由橢圓型條紋變成圓型條紋. 再逐漸增大R2,即將滑動(dòng)條逐漸向右滑動(dòng)時(shí)條紋又逐漸由橢圓型條紋變成等厚干涉型的直條紋,如圖4所示. 觀察這一動(dòng)態(tài)變化,可發(fā)現(xiàn)兩邊的橢圓型條紋,先變成直條紋,中間還是一個(gè)橢圓型的暗斑,慢慢的隨著滑動(dòng)條向右移動(dòng),這一暗斑也變成矩形的了,即變成直條紋了. 同樣,增大下側(cè)平凹柱面透鏡的曲率半徑時(shí),即移動(dòng)另一個(gè)滑動(dòng)條時(shí),這次是向左移動(dòng),中央暗條紋面積也減少,4個(gè)開(kāi)口大小也在減小,各條紋之間的間隔也減?。环粗嘤邢喾船F(xiàn)象出現(xiàn). 圖4 橢圓型條紋變直條紋圖 經(jīng)過(guò)調(diào)整并確定上節(jié)的圖形化界面中各控件布局之后,必須對(duì)各控件的顏色、大小、文字、String 和 Tag 等屬性進(jìn)行設(shè)置. 其中滑動(dòng)條還要設(shè)置取值區(qū)間,所以還需要設(shè)置Mix和Max屬性. 下拉菜單(Popupmenu)組件是實(shí)現(xiàn)對(duì)模擬仿真實(shí)驗(yàn)項(xiàng)目的選擇功能的重要控件之一,所以也需要將界面編輯器中下拉菜單 String內(nèi)容設(shè)置為正交柱面透鏡間的等厚干涉實(shí)驗(yàn)、平凸-平凸柱面透鏡間的等厚橢圓條紋、平凸-平凹柱面透鏡間的等厚雙曲線條紋. 為了完全實(shí)現(xiàn)對(duì)模擬仿真實(shí)驗(yàn)項(xiàng)目的選擇功能,還需要2個(gè)面板,把每一套完整的模擬仿真實(shí)驗(yàn)程序所需要的各組件分別放在一個(gè)面板上,當(dāng)需要運(yùn)行其中的一個(gè)模擬仿真實(shí)驗(yàn)時(shí),只需要讓該程序?qū)?yīng)面板的visible屬性設(shè)為“on”,其他面板的visible屬性設(shè)為“off”, 這樣界面就能實(shí)現(xiàn)只顯示一個(gè)實(shí)驗(yàn)項(xiàng)目了. 不過(guò)在點(diǎn)擊運(yùn)行菜單時(shí),所有面板還是會(huì)全部顯示,所以剛開(kāi)始需要把所有面板的visible屬性設(shè)為“off”. 代碼設(shè)計(jì)是程序設(shè)計(jì)的一個(gè)重要部分,其設(shè)計(jì)關(guān)鍵又是界面編輯器中的控件和m文件中的OpeningFcn(初始界面函數(shù))和Callback(回調(diào)函數(shù))的代碼設(shè)計(jì). 使界面控件觸發(fā)時(shí)的事件響應(yīng)是回調(diào)函數(shù)的關(guān)鍵作用. 具體做法是在完成基本布局,并設(shè)置完組件基礎(chǔ)屬性后,我們就需要對(duì)各組件屬性進(jìn)行設(shè)計(jì). 在組件對(duì)象上右擊鼠標(biāo),選擇回調(diào)函數(shù)即view Callback / Callback,就會(huì)自動(dòng)生成與gui仿真實(shí)驗(yàn)程序相對(duì)應(yīng)的m文件,鼠標(biāo)也會(huì)自動(dòng)定位在該組件的Callback 回調(diào)函數(shù)中編寫代碼的位置. 本文先在m文件的OpeningFcn(初始界面函數(shù))的Callback(回調(diào)函數(shù))中編寫代碼,基于正交柱面透鏡的等厚干涉理論仿真出來(lái)一個(gè)靜態(tài)的橢圓型等厚干涉條紋.仿真時(shí)設(shè)置的參數(shù)如下:上、下側(cè)2個(gè)平凸柱面透鏡的曲率半徑分別為R1=1.85 m與R2=0.86 m,n=1.00為空氣折射率的取值.然后在滑動(dòng)條即slider1的Callback(回調(diào)函數(shù))中編寫代碼,使得滑動(dòng)條代表下側(cè)平凸柱面透鏡的曲率半徑R2的取值,隨著滑動(dòng)條的滑動(dòng),R2的取值也發(fā)生變化,然后模擬仿真的橢圓等厚干涉條紋也會(huì)發(fā)生變化.再后獲取滑動(dòng)條的實(shí)時(shí)值,接著編寫可編輯文本框的Callback(回調(diào)函數(shù))中的代碼,目的是獲取滑動(dòng)條的實(shí)時(shí)值,使其顯示在該文本框中,使代表R2大小的滑動(dòng)條的值,實(shí)時(shí)顯示在可編輯文本框中. 最后在面板即panel1的Callback(回調(diào)函數(shù))中編寫代碼. 利用switch語(yǔ)句實(shí)現(xiàn)當(dāng)面板1出現(xiàn)時(shí),面板2和其他面板就隱不可見(jiàn).同樣,面板2出現(xiàn)時(shí),面板1和其他面板隱藏起來(lái). 最后可得完整動(dòng)態(tài)仿真實(shí)驗(yàn)程序,典型仿真結(jié)果如圖5和圖6所示;同時(shí)運(yùn)用MATLAB仿真技術(shù),還能模擬兩類干涉條紋強(qiáng)度分布的三維立體圖,如圖7和圖8所示. 圖5 橢圓型等厚干涉圖 圖6 雙曲線型等厚干涉圖 圖 7 橢圓型等厚條紋三維圖 圖8 雙曲線型等厚條紋三維圖 迄今已有一些學(xué)者運(yùn)用MATLAB軟件實(shí)現(xiàn)了不同類型光學(xué)干涉實(shí)驗(yàn)的模擬仿真,并已經(jīng)出現(xiàn)了一些不錯(cuò)的研究成果[11~14].但是真正的有關(guān)人機(jī)交互式界面的仿真實(shí)驗(yàn)還是不夠成熟,故很少有人能將圖形化界面設(shè)計(jì)成為功能完善、簡(jiǎn)潔明了的仿真平臺(tái).它們大多需要在命令窗口輸入指令,方能運(yùn)行所設(shè)計(jì)的仿真程序,演示所仿真的光學(xué)干涉實(shí)驗(yàn).使用該軟件,需具有較高的軟件知識(shí)與技能,對(duì)仿真程序的實(shí)現(xiàn)過(guò)程和指令有一定的理解.本文采用人機(jī)交互式界面,將仿真程序制作成一個(gè)界面,通過(guò)鼠標(biāo)和鍵盤就可直接改變仿真程序的參數(shù),能夠大大簡(jiǎn)化操作手續(xù),降低使用者的操作難度. 本文以MATLAB高級(jí)語(yǔ)言為工具對(duì)抽象的正交柱面透鏡干涉進(jìn)行仿真,并基于它的GUI界面和繪圖底層函數(shù)將干涉條紋的二維及三維分布圖樣直觀地反映出來(lái),具有參數(shù)靈活可變、實(shí)驗(yàn)現(xiàn)象直觀豐富、界面友好、速度快、效率高的優(yōu)點(diǎn). 這為相關(guān)教學(xué)研究問(wèn)題提供了高效、快速的解決路徑.2 正交柱面透鏡的橢圓/雙曲型等厚干涉條紋仿真
2.1 仿真程序建立的歷程
2.2 圖形用戶界面的設(shè)計(jì)
2.3 設(shè)置各個(gè)控件的屬性
2.4 代碼的設(shè)計(jì)
3 應(yīng)用前景與結(jié)論