張婕妤 呂懌彤 孫碧蓮 王琪 趙興東
【摘? ?要】伴隨著信息化技術(shù)和虛擬仿真實(shí)驗(yàn)教學(xué)的發(fā)展,越來越多的計(jì)算機(jī)語言和技術(shù)被用于在線實(shí)驗(yàn)課程和虛擬仿真平臺建設(shè)。模擬仿真作為一種重要的輔助工具在教學(xué)中應(yīng)用愈加廣泛,利用計(jì)算機(jī)仿真技術(shù)輔助課堂教學(xué)逐漸成為了光學(xué)教學(xué)改革的重要組成部分.本文通過三個光學(xué)演示實(shí)例介紹借助Python建立圖形用戶界面模擬仿真光學(xué)實(shí)驗(yàn)的過程,包括反射折射、楊氏雙縫干涉實(shí)驗(yàn)、夫瑯禾費(fèi)矩孔衍射實(shí)驗(yàn),從而說明利用Python輔助開展光學(xué)課程教學(xué)的可行性和優(yōu)點(diǎn),增強(qiáng)教與學(xué)的效果,為現(xiàn)代光學(xué)教學(xué)提供一種新的途徑。
【關(guān)鍵詞】Python;仿真模擬;物理光學(xué)
引言
物理光學(xué)是光學(xué)類專業(yè)本科生的學(xué)科核心基礎(chǔ)課程,是從事光學(xué)工程及相關(guān)研究的知識基礎(chǔ),其在專業(yè)課程體系中的重要性是毋庸置疑的.隨著信息技術(shù)的迅速發(fā)展,光學(xué)教學(xué)課程難度在逐漸增加,教學(xué)面臨著越來越多的困難。一方面,光學(xué)課程理論枯燥,內(nèi)容抽象,部分高校仍以傳統(tǒng)教育為主導(dǎo),教師和學(xué)生之間缺乏交流,教學(xué)效果并不理想. 另一方面學(xué)生規(guī)模在逐年增加,獨(dú)立開設(shè)的物理光學(xué)實(shí)驗(yàn)課程,實(shí)驗(yàn)儀器精密并且容易損壞,部分高校教學(xué)資源很難達(dá)到要求,教學(xué)效率低.為幫助學(xué)生打好光學(xué)專業(yè)知識基礎(chǔ),增強(qiáng)學(xué)習(xí)興趣,激發(fā)創(chuàng)造力,借助計(jì)算機(jī)仿真技術(shù)輔助課堂教學(xué)成為了光學(xué)課程教學(xué)改革的新方向。
仿真技術(shù)是指利用計(jì)算機(jī)等軟件來模擬物理過程和現(xiàn)象的一種技術(shù)手段.利用計(jì)算機(jī)仿真技術(shù)輔助教學(xué),教師可以將光學(xué)理論、規(guī)律及其現(xiàn)象直觀化,使抽象的光學(xué)內(nèi)容可視化,激發(fā)學(xué)生對光有關(guān)理論學(xué)習(xí)的興趣,增強(qiáng)教學(xué)效果。
Python是一種面向?qū)ο蟆⒁子跀U(kuò)展的解釋型計(jì)算機(jī)語言,相比其他軟件而言其程序設(shè)計(jì)簡單易學(xué),容易上手,可操作性強(qiáng),在模擬仿真教學(xué)方面有著自己的優(yōu)越之處.同時借助GUI界面可獨(dú)立調(diào)節(jié)實(shí)驗(yàn)參數(shù),將多種光學(xué)實(shí)驗(yàn)現(xiàn)象集中在一個操作界面上,便于學(xué)生學(xué)習(xí)理解.通過Python軟件實(shí)現(xiàn)光學(xué)實(shí)驗(yàn)可視化,輔助課堂教學(xué),能夠加深學(xué)生對知識的理解,提高教學(xué)質(zhì)量。
本文通過三個光學(xué)演示實(shí)例由淺入深地介紹了借助Python建立圖形用戶界面模擬仿真光學(xué)實(shí)驗(yàn)的過程,直觀的分析數(shù)值變化對實(shí)驗(yàn)結(jié)果的影響,將光學(xué)基礎(chǔ)理論內(nèi)容與虛擬仿真技術(shù)相結(jié)合,激發(fā)學(xué)生對知識領(lǐng)域的進(jìn)一步探索,培養(yǎng)他們的創(chuàng)新能力。
1.實(shí)例—反射折射
當(dāng)光波傳播到不同煤質(zhì)分界面上時,會與物質(zhì)相互作用發(fā)生反射折射。一部分光在分界面上改變傳播方向又返回原來煤質(zhì)中,這種現(xiàn)象稱為光的反射;另一部分光穿過分界面,進(jìn)入第二種煤質(zhì),這種現(xiàn)象稱為光的折射。
在折射現(xiàn)象中,折射角的正弦與入射角的正弦之比由分界面兩側(cè)煤質(zhì)決定。對于一定波長的光波而言,在外界條件一定的條件下,該比值為一常數(shù),等于入射光所在煤質(zhì)的折射率與折射光所在煤質(zhì)的折射率之比,即
在折射反射的相關(guān)理論的基礎(chǔ)上,利用Python強(qiáng)大的計(jì)算和交互界面的功能,編寫相關(guān)程序,可實(shí)現(xiàn)改變參數(shù)的同時,圖像也在同步變化的教學(xué)效果。
當(dāng)光波從光密介質(zhì)進(jìn)入光疏介質(zhì)中時,當(dāng)入射角大于某一臨界角時會發(fā)生全反射現(xiàn)象。假設(shè)媒質(zhì)1的折射率為1,媒質(zhì)2的折射率為0.5,由折射定律可得:
使用Python仿真的反射折射仿真界面如圖1,可見仿真結(jié)果符合全反射現(xiàn)象的結(jié)果。由此可得,根據(jù)折射反射的相關(guān)理論,進(jìn)一步地,我們對經(jīng)典的光學(xué)干涉衍射實(shí)驗(yàn)進(jìn)行了模擬仿真。
2.實(shí)例—楊氏雙縫干涉
2.1原理闡述
楊氏雙縫干涉實(shí)驗(yàn)是利用分波振面法獲得相干光束的典型實(shí)驗(yàn),如圖2所示,在普通單色光光源后放一狹縫 ,后又放有與平行且等距離的兩平行狹縫和單色光通過兩個狹縫射向屏幕,相當(dāng)于不同位置兩個同頻率同相位光源向屏幕照射后進(jìn)行疊加產(chǎn)生干涉現(xiàn)象。為兩縫間距,為屏幕到兩縫的距離。
考慮兩束相干光到屏幕上任一點(diǎn)的距離為:
具體推導(dǎo)過程可參考工程光學(xué)一書,屏上任一點(diǎn)的干涉條紋光強(qiáng)取決于兩光波在該點(diǎn)的光程差或相位差:
設(shè)兩束相干光源在屏幕上點(diǎn)相遇時的振幅相同,均為,則夾角為的兩個矢量的合成矢量的幅度為:
光強(qiáng)正比于振幅的平方,故P點(diǎn)光強(qiáng)為:
2.2仿真界面
我們以楊氏雙縫干涉為例,利用Python人機(jī)交互界面,設(shè)計(jì)三種調(diào)節(jié)控件來描述干涉現(xiàn)象發(fā)生時的參數(shù),具體包括:
(1)入射光的波長,
(2)兩縫的間隔
(3)光屏到雙縫平面的距離。
由楊氏雙縫實(shí)驗(yàn)原理,楊氏雙縫干涉光路圖,借助Python的數(shù)值計(jì)算、模擬仿真工具庫,直觀呈現(xiàn)兩相干光疊加后形成的干涉圖樣,得到干涉條紋分布圖。同時將三個參數(shù)變量在GUI界面中設(shè)計(jì)為可調(diào)節(jié)的滾動條,便于教師課堂展示,對比教學(xué).運(yùn)行程序后結(jié)果如圖3所示,得到了波長為560、雙縫間隔為8.1cm、縫與屏距離為50cm的單色光產(chǎn)生楊氏雙縫干涉后的干涉圖樣。
3.夫瑯禾費(fèi)矩孔衍射
在夫瑯禾費(fèi)衍射實(shí)驗(yàn)的實(shí)際操作過程中,由于實(shí)驗(yàn)要求精密,需要盡可能的減小誤差,才有可能出來比較標(biāo)準(zhǔn)的圖.利用 Python圖形用戶界面,實(shí)現(xiàn)實(shí)驗(yàn)參數(shù)的靈活改變,從而得到不同類型的衍射仿真圖樣,進(jìn)行對比示范教學(xué),為光學(xué)理論教學(xué)和實(shí)驗(yàn)教學(xué)提供一個新的途徑。
3.1原理闡述
光的衍射是指光波在其傳播路徑上遇到障礙物時偏離直線傳播,繞過障礙物而進(jìn)入幾何陰影區(qū),在屏幕上出現(xiàn)光強(qiáng)不均勻分布的現(xiàn)象.在衍射中,若是光源與衍射屏、衍射屏與接收屏之間的距離為有限遠(yuǎn),則稱為菲涅爾衍射;若是光源與衍射屏、衍射屏與接收屏之間的距離為無限遠(yuǎn),則稱為夫瑯禾費(fèi)衍射.借助惠更斯-菲涅耳原理可以解釋和描述光束通過各種形狀的障礙物時所產(chǎn)生的衍射現(xiàn)象。觀察夫瑯禾費(fèi)衍射需要把觀察屏放置在離衍射孔徑很遠(yuǎn)的地方,因此這里加入一個透鏡用來聚焦,實(shí)驗(yàn)裝置的光路圖如圖4所示。
3.2仿真界面
我們以不透明擋板上一定尺寸的矩形孔為例,直觀呈現(xiàn)了光線入射時其對光的衍射現(xiàn)象,用Python GUI呈現(xiàn)出人機(jī)交互的界面,設(shè)計(jì)可拖動的滑動條方便地調(diào)節(jié)參數(shù)和計(jì)算有關(guān)物理量.繪出衍射條紋圖樣。建立5個可編輯的文本框,設(shè)計(jì)五種調(diào)節(jié)控件來描述衍射現(xiàn)象發(fā)生時的參數(shù),具體包括:
(1)入射光的波長
(2)光屏的尺寸
(3)透鏡焦距
(4)矩孔寬度
(5)矩孔高度。
根據(jù)夫瑯禾費(fèi)矩孔衍射理論編寫程序,點(diǎn)擊鼠標(biāo)“運(yùn)行”,可以得到夫瑯禾費(fèi)衍射實(shí)驗(yàn)的Python圖形用戶界面,在界面輸入實(shí)驗(yàn)參數(shù),或者通過拖動滑動條改變參數(shù),可實(shí)時觀察對比條紋圖樣變化,分析比較不同參數(shù)下的衍射實(shí)驗(yàn)結(jié)果. 通過模擬仿真結(jié)果圖5可看出,隨著相關(guān)參數(shù)的改變,衍射圖樣發(fā)生變化,且變化規(guī)律與理論一致。控制其他參數(shù)不變,只調(diào)節(jié)孔徑寬度的數(shù)值為所設(shè)區(qū)間的最大值,得到如圖6仿真結(jié)果。由圖6(a)、(b)容易看出,單縫衍射即為矩孔衍射的特例,并且孔徑越大,衍射條紋越密。
同樣的,修改其他任一參數(shù),可進(jìn)一步模擬入射光波波長、透鏡焦距等因素對衍射結(jié)果的影響。此交互界面形成的仿真模擬實(shí)驗(yàn)可以較好的達(dá)到理想的夫瑯禾費(fèi)衍射圖樣,有助于深入理解光學(xué)衍射理論及進(jìn)行輔助教學(xué),減少不必要的誤差和實(shí)驗(yàn)儀器的損耗。從圖樣分析結(jié)果可以看出,該模擬仿真過程對于實(shí)驗(yàn)驗(yàn)證和計(jì)算較為復(fù)雜的夫瑯禾費(fèi)衍射現(xiàn)象,具有重要的理論參考意義.在教學(xué)過程中教師可以借助此模擬仿真程序演示講解夫瑯禾費(fèi)單縫衍射實(shí)驗(yàn),仿真實(shí)驗(yàn)所提供的清晰物理圖像可以幫助教師簡化基本理論的教學(xué),增強(qiáng)學(xué)生對衍射現(xiàn)象的理解,明確衍射所需要控制的變量對衍射圖樣的影響,有助于學(xué)生更加深刻地理解夫瑯禾費(fèi)矩孔衍射的特征和規(guī)律。
4.結(jié)語
本文通過對物理光學(xué)課程中部分典型光學(xué)實(shí)驗(yàn)的仿真為例,全面地介紹了如何借助Python輔助課堂教學(xué)。對學(xué)生而言,通過模擬仿真教學(xué),將抽象難懂的物理概念和規(guī)律直觀的展現(xiàn)出來,增強(qiáng)教學(xué)效果. 同時可以讓學(xué)生課后自主設(shè)計(jì)光學(xué)實(shí)驗(yàn)仿真程序,對比分析總結(jié)實(shí)驗(yàn)規(guī)律,提高其科學(xué)探索能力和創(chuàng)新能力;對教師而言,可以在理論學(xué)習(xí)和實(shí)驗(yàn)驗(yàn)證這兩個環(huán)節(jié)之間增加仿真實(shí)驗(yàn),引導(dǎo)學(xué)生深入學(xué)習(xí),為光學(xué)課程的開展提供新的途徑。
從以上實(shí)驗(yàn)仿真可以看出, Python圖形用戶界面使用簡單、圖象直觀,可以根據(jù)需要設(shè)計(jì)出符合教學(xué)要求的人機(jī)交互界面。Python程序語言設(shè)計(jì)簡單,容易上手,可移植性強(qiáng),使不具備編程能力的學(xué)生也可以獨(dú)立操作,培養(yǎng)學(xué)生計(jì)算思維能力.此外,該系統(tǒng)不受實(shí)驗(yàn)儀器和時域的限制,只需輸入?yún)?shù)即可獲得不同條件下的實(shí)驗(yàn)仿真圖樣,提高教學(xué)效率。通過簡單的建模和可視化的形式展現(xiàn),使得光學(xué)的課堂教學(xué)變得生動直觀,提高學(xué)生濃厚的學(xué)習(xí)興趣,增強(qiáng)了教學(xué)效果,實(shí)現(xiàn)了光學(xué)教學(xué)的現(xiàn)代化。
參考文獻(xiàn)
[1]白昌盛.Python編程特點(diǎn)及優(yōu)勢研究[J].電子測試,2020(18):125-126.
[2]郁道銀,談恒英.工程光學(xué)[M]. 4版.北京:機(jī)械工業(yè)出版社,2016:354-407.
[3]李瑞,劉鑫鵬,徐林軒,張華,楊研.計(jì)算機(jī)仿真在光學(xué)教學(xué)中的應(yīng)用[J].大學(xué)物理實(shí)驗(yàn),2020,33(05):113-117.
[4]唐安科,汪霖,林偉華.學(xué)生自主設(shè)計(jì)物理實(shí)驗(yàn)可視化程序?qū)嵺`與探索[J].大學(xué)物理,2020,39(04):67-72.
[5]錢義先,任志君.虛擬仿真的可視化物理光學(xué)課堂教學(xué)探索[J].物理通報(bào),2018(07):22-25.
作者簡介:張婕妤(2000.11-), 女,漢族, 河南許昌人,本科生。
1.河南師范大學(xué) 物理學(xué)院? ? 河南新鄉(xiāng)? ? 453007;
2. 河南師范大學(xué) 國家級物理實(shí)驗(yàn)教學(xué)示范中心? ? 河南新鄉(xiāng)? ? ?453007