999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Matlab與VB的光柵衍射綜合實驗仿真

2012-04-12 00:00:00趙華芬孔德明
現(xiàn)代電子技術 2012年4期

摘要:以光柵衍射為例,編寫了基于Matlab的仿真程序。利用DLL接口技術,結合Matlab強大的科學計算功能以及Visual Basic的可視化功能,通過改變輸入?yún)?shù)實現(xiàn)了對光柵衍射、單縫衍射、楊氏雙縫干涉以及多光束干涉的光學實驗進行生動形象的仿真模擬。實驗結果的圖樣細致逼真,可為光學的理論分析和實驗教學提供新的有效輔助手段,并為相關課件的設計提供了新的途徑。

關鍵詞:Matlab; Visual Basic; 光柵; DLL

中圖分類號:G434; TP311文獻標識碼:A文章編號:1004373X(2012)04005705

Synthetic Experiment Simulation of grating diffraction Based on MATLAB and VB

ZHAO Huafen, KONG Deming

(Dept. of Physical Science and Technology, Central South University, Changsha 410083, China)

Abstract: Taking the grating diffraction as an example, the simulation program based on MATLAB is compiled, and then using the interfacing technology of DLL, combining MATLAB powerful function of scientific calculation and visualization function of Visual Basic, the optical experiments of grating diffraction, single slot diffraction, Young′s doubleslit interference and multibeam interference are imitated vividly by changing the input parameters. The patterns of the experiment are delicate and distinct. It offers a new effective supplementary means for optical theory analysis and experiment teaching. In addition, it provides a new way for courseware design.

Keywords: Matlab; Visual Basic; grating diffraction; multibeam interference; DLL; interface

收稿日期:20110910

基金項目:教育部高等學校物理基礎課程教學指導分委員會資助項目(WJZW2010472n)0引言

隨著信息技術的發(fā)展,光學實驗的計算機仿真在科學工程以及光學教學方面引起了廣大工作者的廣泛關注[ 12]。但是,過去大多光學仿真軟件的開發(fā)都是基于Flash,Photoshop,3DMax之類的圖像軟件,而這類軟件對光學實驗規(guī)律和過程很少涉及,很難做到真正的交互使用。因此,在開發(fā)波動光學仿真系統(tǒng)時應選擇計算功能強、人機界面好的軟件作為基礎。

目前,越來越多的教學工作者采用Matlab軟件進行仿真軟件的開發(fā)[ 36]。雖然Matlab軟件提供了強大的科學運算、圖像處理、高效靈活的程序設計方法、以及便捷的與其他軟件間進行數(shù)據(jù)交換的功能,但是Matlab在交互式、可視化、高水平仿真圖像、人性化仿真界面和快速開發(fā)等方面遠遠比不上Visual Basic(VB)。

VB是一種超強的可視化編程語言,但是VB 只提供了基本的數(shù)學函數(shù)庫,如果使用 VB 編寫特殊功能的數(shù)學函數(shù)庫,必須要求用戶對算法有深入的理解。因此,如果能結合Matlab與VB各自的優(yōu)勢開發(fā)仿真軟件是一種很好的方案。但是,鑒于Matlab及VB軟件之間的接口存在一定的難度,目前將Matlab及VB結合仿真光學實驗的報道還比較少見[7]。因此,還有大量的工作需要去探討與研究。

本文借助Matlab與VB各自的優(yōu)勢,通過Matlab及VB之間的接口技術,在VB界面改變輸入?yún)?shù)并調用Matlab編寫的函數(shù)程序,實現(xiàn)同一個程序仿真光柵衍射、單縫衍射、楊氏雙縫干涉以及多光束干涉的實驗現(xiàn)象。

1Matlab與VB接口方法簡介

目前,VB調用Matlab的接口可以通過ActiveX自動化技術,COM Builder技術以及DLL動態(tài)鏈接庫三種方法實現(xiàn)[8]。但是利用ActiveX自動化技術時會在后臺啟動一個Matlab進程,不能脫離Matlab環(huán)境,而且實時性差。通過COM Builder技術雖然可以脫離Matlab環(huán)境,但是一些工具箱函數(shù)還是無法編譯,有一定的局限性,這兩種方法都難以滿足軟件開發(fā)的要求[ 911 ]。而DLL動態(tài)鏈接庫方法不僅可以脫離Matlab環(huán)境運行,并且可以大大提高程序的運行效率,降低對系統(tǒng)資源的占用率。它的原理主要就是將Matlab的.m文件轉變成為VB可以調用的DLL文件,從而實現(xiàn)VB對Matlab的調用[89]。在此借助DLL動態(tài)鏈接庫方法實現(xiàn)VB調用Matlab中的函數(shù)。

2光柵衍射的光強分布

光學實驗的仿真模擬主要是根據(jù)光強分布的理論公式,通過編程得到仿真曲線,然后通過改變參數(shù)實現(xiàn)動態(tài)模擬[1213]。圖1為光柵衍射示意圖。

圖1光柵衍射示意圖假設入射光的波長為λ,光柵的縫數(shù)為N,各縫的寬度為b,光柵常數(shù)為d,入射光與法線正方向的夾角為α(斜向上入射,規(guī)定α>0;斜向下入射,規(guī)定α<0)。可以得到觀察屏上P點得光強分布函數(shù)[14]為:I=I0(sin φφ)2·(sin Nβsin β)2(1)式中:I0為屏中心的最大光強;(sin φ/φ)2為單縫衍射因子;(sin Nβ/sin β)2為多光束干涉因子;φ=πb/λ(sin θ-sin α),β=πd/λ(sin θ-sin α)。衍射角θ滿足sin θ=y/y2+f2。其中y是P點y方向的坐標,f是凸透鏡的焦距。

(1) 當N=1時,式(1)變?yōu)镮=I0(sin φ/φ)2,對應于單縫衍射的光強分布函數(shù)。

(2) 當b<<λ,式(1)變?yōu)镮=I0(sin Nβ/sin β)2,對應于多光束干涉的光強分布函數(shù)。

(3) 當N=2且b<<λ時,式(1)變?yōu)镮=4I0cos2 β,對應于楊氏雙縫干涉的光強分布函數(shù)。

由以上分析可知,單縫衍射、楊氏雙縫干涉以及多光束干涉可以看作是光柵衍射的特例。因此,可以利用式(1)進行編程,然后通過改變輸入?yún)?shù),達到仿真多個實驗的目的。這樣避免了單個實驗進行編程仿真的累贅,并且通過仿真可以讓學生更清楚地了解光柵衍射的實質。

另外,還可以利用楊氏雙縫干涉或多光束干涉實驗,通過調整入射光的入射角度,使得第j級干涉條紋移動到y(tǒng)軸的中心0處,記錄此時光的入射角度α,然后計算入射光的波長,其

3.2將Matlab函數(shù)轉化為DLL文件

用Matcom 4.5將.m文件轉化成DLL的過程如下:運行Matcom 4.5,點擊菜單File/ Compile to dll,選擇寫好的yanshe.m文件,點擊OK。這時在對應的Debug目錄下,有三個需要在VB開發(fā)環(huán)境中使用的文件yanshe.dll,yanshe.bas,yanshe.cls。

3.3在VB中實現(xiàn)調用DLL文件

為了能適應Matlab強大的矩陣運算功能,必須將MaxtrixVB庫加入到工程中,過程為:點擊菜單VB中的工程,選擇引用,在可用的引用對話框中選中Mmatrix,點擊OK。

將yanshe.bas和yanshe.cls加入到工程中,過程為:

(1) 點擊VB中的工程/添加模塊 /Matcom 4.5/Debug/yanshe.bas。

(2) 點擊VB中的工程/添加類模塊 /Matcom 4.5/Debug/yanshe.cls。

最后將生成的Matcom 4.5/Debug/目錄下的yanshe.dll文件拷貝到Windows/System 32目錄下,這樣就可以實現(xiàn)VB與Matlab之間的接口鏈接,在VB中調用yanshe.m函數(shù)。

3.4VB窗體及程序代碼設計

在VB中建一個工程窗體Form1,在窗體中添加控件,如圖2所示。

圖2仿真主界面各控件的代碼如下:

在VB中新建第二個工程窗體Form2,如圖3所示。

圖3仿真說明在窗體中添加文本框控件,并在其中給出仿真說明的內(nèi)容。在Form2窗體中添加命令按鈕控件,并編寫程序代碼如下:

Private Sub Command1_Click()

Form1.Show′ 彈出Form1窗體

Form2.Hide ′ 關閉Form2窗體

End Sub

圖3窗體與圖2主窗體之間的運行方式是在圖2主界面運行過程中,點擊仿真說明按鈕,彈出圖3窗體,主界面隱藏。在圖3窗體中點擊返回按鈕,彈出圖2主界面,圖3窗體隱藏。

3.5仿真結果

圖4是N=5時的光柵衍射圖樣。由圖可以看到,該衍射圖樣實際上是縫間的干涉條紋受到單縫衍射調制的結果。另外,作為一個特例,假定d/b=3,仿真結果中還可以看到±3,±6…級缺級的現(xiàn)象。

圖4光柵衍射的仿真結果圖5是N=1時的單縫衍射圖樣。此時,不存在縫間的干涉現(xiàn)象,衍射圖樣中央明紋光強最大,隨著級次的增大,各級明紋的光強迅速減小。另外,還可以看到中央明紋的寬度比其他明紋寬。在仿真過程中還可以發(fā)現(xiàn):λ愈大或b愈小,各級明紋的寬度就越大,說明衍射作用愈明顯。反之,λ愈小或b愈大,各級明紋的寬度就越小,并且各級明紋都向中央明紋靠攏,逐漸分辨不清,說明衍射作用也就愈不明顯。

圖5單縫衍射仿真結果圖6是縫寬b較小時的光柵衍射圖樣。該衍射圖樣類似于楊氏雙縫干涉或多光束干涉的圖樣。該圖樣形成的主要原因是隨著縫寬b的減小,單縫衍射作用下的中央明紋寬度將逐漸增大,其光強分布曲線將逐漸伸展,也即由于單縫衍射作用而形成的中央包絡線越寬,進而使得在觀察的視野中看到更多的明紋。當b<<λ,單縫衍射光強分布將伸展為一條直線,此時式(1)中的單縫衍射因子可以忽略不計,仿真得到的便是楊氏雙縫干涉或多光束干涉的圖樣。在真實的實驗情況下,條件b<<λ很難滿足,楊氏雙縫干涉以及多光束干涉實際上仍是縫間干涉被單縫衍射調制后結果。另外需要說明的是,在仿真過程中還發(fā)現(xiàn)隨著縫數(shù)N逐漸增大,各明紋的寬度以及位置不變,但光強卻逐漸增大。

圖6縫寬b較小時的仿真結果在對光柵衍射進行仿真時,當改變?nèi)肷涔獾娜肷浣嵌葧r,還可以看到衍射條紋的形狀與光強不會發(fā)生改變,只是作整體平移。當增大斜向上的入射角度時,各級條紋將向y軸的正方向移動。反之,當增大斜向下的入射角度時,各級條紋將向y軸的負方向移動。另外,在縫寬b較小的情況下,通過調整入射光的入射角度,利用仿真圖樣還可以測量入射光的波長。作為特例,本文取N=5,d=6×10-7,b=1×10-9,λ=5×10-7,增大向上斜入射光的入射角度,通過仿真記錄當入射角度為0.016 65 rad時,第j=-2級明條紋移動到軸的中央0處,利用公式λ=-dsin α/j便可計算出光的波長為λ=4.994 8×10-7,這一結果與λ=5×10-7之間的誤差較小。在實際應用中,該方法對測量光的波長具有一定的指導意義。

4結語

本文利用DLL動態(tài)鏈接庫方法實現(xiàn)VB與Matlab之間的接口連接,在VB界面可方便地改變輸入?yún)?shù),實現(xiàn)縫的干涉與衍射實驗現(xiàn)象的仿真。通過仿真,可以很清楚地知道單縫衍射、楊氏雙縫干涉以及多光束干涉實際上是光柵衍射在一定條件下的特例,并且該仿真可使更好地了解縫的干涉與衍射的本質。另外,在實際的楊氏雙縫干涉與多光束干涉實驗過程中,很難做到b<<λ,因此實際實驗觀察到的現(xiàn)象仍是光的干涉與衍射的結果。通過光學仿真,便可以觀察到無衍射作用的楊氏雙縫干涉與多光束干涉實驗現(xiàn)象,彌補了實際實驗的不足。同時,計算機仿真可逼真地顯示各實驗現(xiàn)象,能給學生提供形象直觀的仿真圖樣,這在開拓學生的視野、激發(fā)學習興趣,提高教學效率方面起到重要的作用。

參考文獻

[1]黃篤之,周沛鋒,付學政.光學偏振實驗仿真設計[J].大學物理實驗,2003,16(4):6668.

[2]胡君輝,王修信,梁穎,等.大學物理波動光學仿真演示實驗的設計與實現(xiàn)[J].廣西物理,2004,25(1):4345.

[3]莊建,青莉.基于Matlab的光學實驗仿真平臺[J].成都大學學報,2006,25(1):7072.

[4]崔祥霞,楊兆華,陳君.基于Matlab的光學衍射與干涉實驗仿真[J].泰山學院學報,2009,31(3):109113.

[5]謝嘉寧,趙建林.光柵衍射現(xiàn)象的計算機仿真分析[J].佛山科學技術學院學報:自然科學版,2002,20(2):1518.

[6]藍海江.光柵衍射及其特例的Matlab仿真[J].柳州師專學報,2008,23(3):121124.

[7]成丕富,周青,朱力,等.用Matlab和VB實現(xiàn)光學實驗仿真系統(tǒng)的開發(fā)[J].現(xiàn)代電子技術,2009,32(4):169171.

[8]嚴澤民,辛顯雪.探討VB與Matlab相結合的幾種方法[J].遼寧工學院學報,2005,25(5):299301.

[9]黃錫泉,姚竹亭.VB和Matlab無縫接口編程[J].微計算機應用,2005,26(2):238240.

[10]譚炎,張凌燕.Matlab與VB混合編程技術研究[J].微計算機信息,2006,22(5):247249.

[11]王正祥,劉載文,楊斌,等.Matlab 6.5與VB混合編程中接口技術研究[J].微計算機信息,2006,22(10):187189.

[12]梁齊,許曉琳,王明虎.光干涉實驗的計算機模擬[J].大學物理實驗,2003,16(3):6163.

[13]董太源,劉建生,盧敏,等.光學干涉實驗的計算機仿真模擬[J].江西理工大學學報,2007,28(3):6567.

[14]姚啟鈞.光學教程[M].北京:高等教育出版社,1981.

主站蜘蛛池模板: 精品少妇人妻av无码久久| 幺女国产一级毛片| 国产激爽大片高清在线观看| 亚洲成在人线av品善网好看| 精品剧情v国产在线观看| 亚洲天堂福利视频| 国产精品一区二区不卡的视频| 国语少妇高潮| 蝌蚪国产精品视频第一页| 色视频久久| 在线免费无码视频| 亚洲精品国产首次亮相| 国产高清国内精品福利| 国产内射一区亚洲| 欧美日韩在线成人| 91久久精品国产| 亚洲福利片无码最新在线播放 | 国模沟沟一区二区三区| 久久福利片| 波多野结衣一区二区三区88| 日本一区二区不卡视频| 91视频免费观看网站| 欧美日本在线| 99热这里只有免费国产精品| 九九这里只有精品视频| 国产一区三区二区中文在线| 影音先锋丝袜制服| 爆乳熟妇一区二区三区| 蜜芽一区二区国产精品| 国产精品亚洲五月天高清| 国产特级毛片| 91色综合综合热五月激情| 国产极品美女在线观看| 乱人伦中文视频在线观看免费| 免费无码AV片在线观看国产| 激情乱人伦| 综合亚洲色图| 国产99免费视频| 超碰色了色| 日韩精品欧美国产在线| 国产一区在线观看无码| 三级国产在线观看| 毛片手机在线看| 国产喷水视频| 国产一级毛片yw| 国产呦精品一区二区三区下载| 天天操天天噜| 国产不卡网| 欧美区一区二区三| 亚洲av无码久久无遮挡| 欧美国产精品不卡在线观看| 最新精品久久精品| 草草线在成年免费视频2| 无码视频国产精品一区二区| 九九热这里只有国产精品| 国产成人一区免费观看| 日韩精品亚洲精品第一页| 高清不卡一区二区三区香蕉| 欧美成人aⅴ| 国产95在线 | 亚洲动漫h| 四虎精品黑人视频| 国产在线观看高清不卡| 91小视频在线观看| 日本道中文字幕久久一区| 欧美日韩高清在线| 亚洲精品无码av中文字幕| 国产在线日本| 欧美色图久久| 一级黄色片网| 午夜国产精品视频| 91成人在线免费视频| 国产欧美日韩免费| 国产成人AV大片大片在线播放 | 在线免费a视频| 无码一区二区三区视频在线播放| 欧美成人怡春院在线激情| 亚洲成人网在线观看| 国产99在线观看| 日本精品视频一区二区| 亚洲欧美精品一中文字幕| 直接黄91麻豆网站|