龍志超,楊曉莉,陳長海
(湖北民族學院 科技學院,湖北 恩施 445000)
基于GUI的可視化光學實驗的仿真
龍志超,楊曉莉*,陳長海
(湖北民族學院 科技學院,湖北 恩施 445000)
隨著計算機運算性能的快速提高,以及仿真軟件的功能越來越強大,光學實驗仿真在優(yōu)化光學系統(tǒng)和模擬設(shè)計的過程中迅速發(fā)展起來,仿真系統(tǒng)引起了人們廣泛的關(guān)注.本課題利用Matlab軟件對經(jīng)典的光學實驗進行數(shù)學建模,編程運算,然后對實驗進行計算機仿真,最后創(chuàng)建人機交互式GUI界面.使用者只需通過改變輸入?yún)?shù)就可以模擬不同條件下的不同光學實驗的實驗現(xiàn)象.最終成果是設(shè)計完成一個實用的光學實驗仿真平臺.
光學實驗;GUI;MATLAB;仿真
隨著科學的發(fā)展,計算機在各行各業(yè)都有著廣泛的應(yīng)用,極大的方便了人們的生活.伴隨著計算機技術(shù)的快速發(fā)展,計算機仿真技術(shù)也迎來了蓬勃的發(fā)展,在科學研究,工程應(yīng)用,產(chǎn)品開發(fā)設(shè)計等領(lǐng)域,都可以見到仿真技術(shù)廣泛應(yīng)用的身影[1-3].光學計算機仿真技術(shù)也因?qū)嶋H的需要而得到快速的發(fā)展.目前,利用Matlab軟件來實現(xiàn)光學實驗?zāi)M演示已經(jīng)有較多的相關(guān)成果.但是,真正把光學實驗[4-5]的仿真做成一個人機交互式界面的還是比較少.能夠把界面做成一個功能完善,界面美觀的仿真平臺的更少.大多數(shù)的仿真程序,需要直接輸入設(shè)計的仿真程序,然后運行相應(yīng)程序,才可以演示仿真的光學實驗.使用過程中需要對仿真程序的實現(xiàn)過程和指令有一定的理解,對于仿真程序的使用者門檻較高.而人機交互式界面的設(shè)計把仿真程序做成一個界面,則會大大降低使用者的使用難度,通過鼠標和鍵盤就可以在仿真界面上直接改變仿真程序的參數(shù).所以利用Matlab軟件將光學實驗做成一個功能完善,界面美觀的人機交互式界面是一個值得探索和研究的課題.
1)GUI背景替換
ha=axes('units','normalized','position',[0 0 1 1]);
uistack(ha,'down')
II=imread('圖片.jpg');
image(II)
2)參數(shù)調(diào)節(jié)控件[6]
if sel1==1;
……(第一個仿真實驗程序)
elseif se2==1;
……(第二個仿真實驗程序)
end
3)滑動條和可編輯文本框的結(jié)合使用
核心程序如下:
滑動條回調(diào)函數(shù)[7]
val=get(hObject,'value')
set(handles.edit1,'string',val)%讓可編輯文本框顯示滑動條的值
可編輯文本框回調(diào)函數(shù)
shu=get(hObject,'String') %獲取文本內(nèi)容
val=str2double(shu)%將文本內(nèi)容轉(zhuǎn)化為數(shù)字
set(handles.slider1,'value',val)%設(shè)定滑動條的value值和文本框的輸入?yún)?shù)大小一致
圖3 主界面Fig.3 Main interface
4)回調(diào)函數(shù)之間的數(shù)據(jù)傳遞
Global a b c;%將a,b,c設(shè)置為全局變量
仿真平臺由一個主界面和七個子界面組成,下面所示分別是主界面的程序流程圖,如圖1.其中一個子界面的程序流程圖,如圖2.其它的程序流程圖不一一列出.
圖1 總流程圖 圖2 介質(zhì)薄膜等傾干涉Fig.1 The total program flow chart Fig.2 Thin-film equal inclination interference
在命令欄輸入GDI指令彈出仿真平臺的主界面,如圖3.用鼠標點擊主界面的對應(yīng)按鈕可分別打開單縫衍射等仿真界面,通過拖動滑動條或者文本框輸入數(shù)字完成仿真程序的參數(shù)設(shè)定,并時時的繪出仿真效果.圖4~8分別為單縫衍射、光柵衍射、單晶體子波波陣面、雙縫干涉和介質(zhì)薄膜等傾干涉的仿真效果圖.圖9、圖10為平臺介紹和使用幫助界面的仿真效果.
(a) (b) (c)圖4 單縫衍射Fig.4 Single slit diffraction
(a) (b)圖5 光柵衍射 Fig.5 Optical grating diffraction
(a) (b) 圖6 單晶體子波波陣面 Fig.6 Single crystal wave front
(a) (b)圖7 雙縫干涉 Fig.7 Two-slit interference
(a) (b) 圖8 介質(zhì)薄膜等傾干涉 Fig.8 Thin-film interferenc
圖9 平臺介紹 圖10 使用幫助 Fig.9 Introduction to platform Fig.10 Usinghelp
本文利用MATLAB軟件完成了光學實驗仿真平臺的設(shè)計.平臺演示了單縫衍射,介質(zhì)薄膜等傾干涉,雙縫干涉,單晶體子波波陣面,光柵衍射五個光學實驗.仿真平臺程序運行穩(wěn)定,操作簡單,仿真效果明顯.完成后的光學實驗仿真平臺如果用于輔助教學,可以延長實驗器材的使用壽命,減少實驗儀器的損壞,降低實驗成本,方便老師光學教學和學生學習,具有一定實用價值.
[1] 陳怡.虛擬實驗室平臺設(shè)計的研究與實現(xiàn)[D].成都:西南交通大學,2010.
[2] 趙盾.光學實驗計算機仿真平臺的構(gòu)建[D].武漢:武漢理工大學,2010.
[3] 曲偉娟.基于MATLAB的光學實驗仿真[D].西安:西北工業(yè)大學,2004.
[4] 梁紹榮,劉昌年,盛正華,等.普通物理學·光學[M].3版.北京:高等教育出版社,1988:160-202.
[5] 程守洙,江之永,胡盤新,等.普通物理學1[M].5版.北京:高等教育出版社,1998:1-20.
[6] 張志剛,劉麗梅,朱婧,等.Matlab與數(shù)學實驗[M].2版.北京:中國鐵道出版社,2004:1-200.
[7] 羅華飛.MATLAB gui設(shè)計學習手記[M].2版.北京:北京航空航天大學出版社,2010:345-428.
VisualOpticalExperimentalSimulationBasedonGUI
LONG Zhi-chao,YANG Xiao-li*,CHEN Chang-hai
(Science and Technology College of Hubei University for Nationalities,Enshi 445000,China)
With the rapid development of computers’ computing ability and the more powerful function of simulation software, optical experimental simulation has been developed in the process of simulation design and optimization of optical systems. Therefore,simulation system has attracted widespread attention.This project uses MATLAB software to establish mathematical model for the typical optical experiment, make computer simulation on the experiment and create the interactive GUI interface. Users can simulate different optical experimental phenomena under different conditions by changing the input parameters. The final result is to design a practical optical experiment simulation platform.
optical experiment;GUI;MATLAB;experimental simulation
2013-04-11.
國家自然科學基金項目(11147012);湖北民族學院科技學院校級教研項目(KY201107);國家級大學生創(chuàng)新創(chuàng)業(yè)訓練計劃項目(201210517013).
龍志超(1989- ),男,碩士研究生,主要從事理論物理的研究;*
:楊曉莉(1982-),女,講師,碩士,主要從事多光譜技術(shù)研究.
O436;TP391.76;G434
A
1008-8423(2013)02-0200-04