張巖文
(石河子大學(xué), 新疆 石河子 832000)
?
MatlabGUI仿真在原子物理學(xué)教學(xué)中的應(yīng)用
張巖文
(石河子大學(xué), 新疆 石河子832000)
摘 要:利用MatlabGUI設(shè)計(jì)了實(shí)驗(yàn)仿真界面,仿真實(shí)驗(yàn)界面友好直觀、內(nèi)容豐富,可以設(shè)定并改變相關(guān)參數(shù)動(dòng)態(tài)顯示仿真結(jié)果,能方便地觀察到實(shí)驗(yàn)現(xiàn)象,并且可以分析各參數(shù)對(duì)原子束裂紋條數(shù)的影響,為原子物理學(xué)理論分析與教學(xué)提供了新的手段。
關(guān)鍵詞:原子物理學(xué)教學(xué);斯特恩-蓋拉赫實(shí)驗(yàn);MatlabGUI仿真
史特恩-蓋拉赫實(shí)驗(yàn)是原子物理學(xué)中的一個(gè)重要實(shí)驗(yàn),該實(shí)驗(yàn)對(duì)電子自旋理論、角動(dòng)量量子化理論及空間取向的量子化假設(shè)都有重要意義。論文以施特恩-蓋拉赫實(shí)驗(yàn)為例,提出了利用計(jì)算機(jī)仿真軟件MatlabGUI來制作仿真實(shí)驗(yàn)的方法,詳細(xì)地說明了MatlabGUI制作仿真實(shí)驗(yàn)的主要過程和技巧。在制作的仿真實(shí)驗(yàn)中明確地顯示該實(shí)驗(yàn)的實(shí)驗(yàn)裝置以及實(shí)驗(yàn)結(jié)果隨實(shí)驗(yàn)參數(shù)的變化,可以自由的設(shè)定想要計(jì)算的對(duì)象,并清楚地給出原子束分裂的實(shí)驗(yàn)結(jié)果,使學(xué)生更加形象具體地認(rèn)識(shí)原子在外場中角動(dòng)量空間取向的量子化現(xiàn)象,同時(shí)也將科學(xué)技術(shù)運(yùn)用到課程教學(xué)中,達(dá)到科學(xué)與教學(xué)相統(tǒng)一[1-4]。
1施特恩-蓋拉赫實(shí)驗(yàn)基本原理
原子束在通過一個(gè)不均勻的磁場區(qū)域,在磁場作用下發(fā)生偏折,最后沉積在屏上,實(shí)驗(yàn)發(fā)現(xiàn)屏上形成了幾條清晰的黑斑,這一實(shí)驗(yàn)表明原子的磁矩只能取幾個(gè)特定的方向,從而驗(yàn)證了原子角動(dòng)量的投影是量子化的。原子束偏轉(zhuǎn)的距離取決于以下的公式:原子在非均勻磁場中偏轉(zhuǎn):
其中磁量子數(shù)M=J,J-1,J-2,……,-J;μz為原子在z軸方向的磁矩;g為朗德因子; μB為玻爾磁子;M為磁量子數(shù)[5]。
考慮了原子的自旋后,在原子處于某個(gè)確定的總角動(dòng)量J狀態(tài)時(shí),磁量子數(shù)M為2J+1個(gè),就是說原子束通過非均勻磁場后將分裂成2J+1束。
2施特恩-蓋拉赫實(shí)驗(yàn)的MatlabGUI仿真
2.1界面設(shè)計(jì)
界面設(shè)計(jì)主要分為三步:一是整體規(guī)劃界面布局,進(jìn)行控件的選擇和位置的確定;二是是控件的屬性設(shè)置;三是對(duì)各個(gè)控件代碼進(jìn)行設(shè)計(jì)。
第一步構(gòu)思草圖、編排控件的布局。界面如圖1所示,界面布局為4個(gè)部分,左上方是選擇原子麥克斯韋速率分布曲線以及相關(guān)參數(shù)設(shè)定部分,1個(gè)坐標(biāo)軸(Axes)對(duì)象用來顯示原子的麥克斯韋速率分布曲線;其中3個(gè) 靜 態(tài) 文 本 框 (static text),前面2個(gè)用于輸入原子量和溫度,后面1個(gè)用于顯示最概然速率,右上方是斯特恩-蓋拉赫實(shí)驗(yàn)裝置示意圖;左下方總共有7個(gè)靜態(tài)文本框,用于輸入原子狀態(tài)量子數(shù)和實(shí)驗(yàn)相關(guān)參數(shù);右下角是原子通過非均勻磁場的偏轉(zhuǎn)實(shí)驗(yàn)結(jié)果顯示圖,用于顯示仿真結(jié)果[6]。
第二步,完成打開matlab程序在file菜 單 中 選 擇new gui 打 開 guide設(shè) 計(jì) 界 面 模 板,界 面 模 板 左邊的各個(gè)控件可以直接用鼠標(biāo)拖到編輯框,。然后設(shè)置各控件的屬性 比如設(shè)置各控件的標(biāo)識(shí)(Tag)顏色字體等。
最后一步是對(duì)各個(gè)控件代碼的進(jìn)行設(shè)計(jì)。這一步最關(guān)鍵是OpeningFCN(初始界面函數(shù))和控 件的Callback(回 調(diào) 函 數(shù))代碼的設(shè)計(jì)。初始界面函數(shù)即設(shè)定各參數(shù)的初始值,可根據(jù)實(shí)際情況設(shè)定,回調(diào)函數(shù)是核心,是對(duì)界面控件觸發(fā)時(shí)的事件響應(yīng)函數(shù)[6]。
圖1 施特恩-蓋拉赫實(shí)驗(yàn)的MatlabGUI仿真界面布局
2.2功能調(diào)用
控件除了基本屬性的設(shè)置外,還有可能具有執(zhí)行或調(diào)用其他控件的屬性值的功能。每個(gè)控件的功能設(shè)置類似于高級(jí)語言編程中的子程序,但在MATLAB的GUI設(shè)計(jì)中要簡單得多。由于MATLAB語言具有豐富的函數(shù),編寫控件的功能時(shí),只要調(diào)用MATLAB的函數(shù)和必要的控制語句即可,不需對(duì)控件的屬性作過多的描述,對(duì)于不熟悉語言編程的設(shè)計(jì)者,亦不難掌握。具體操作是,在屬性窗口中,選擇屬性“callback”,直接輸入調(diào)用語句,即可實(shí)現(xiàn),。以下是幾個(gè)關(guān)鍵的回調(diào)程序。
2.2.1麥克斯韋速率分布曲線:
function calculate_Callback(Object,eventdata,handles)
m=str2num(get(handles.Mmol,'String'))
Mmol=m(1);
t=str2num(get(handles.edit14,'String'))
T=t(1);
syms v ;
k=1.381e-23;
NA=6.022e23;
f=4*pi*(((Mmol*10^(-3))/6.022e23)/(2*pi*k*T))^(3/2)*exp(-((Mmol*10^(-3))/6.022e23)*v^2/(2*k*T))*v^2;
axes(handles.mxwl);
v = 0:10:1500;
fmxwl=4*pi*(((Mmol*10.^(-3))/NA)./(2*pi*k*T)).^(3/2).*exp(-((Mmol*10.^(-3))/NA)*v.^2./(2*k*T)).*v.^2;
plot(v,fmxwl,'b:*')
set(gca,'XTick',0:200:1500)
xlabel('Independent Variable v(m/s)')
ylabel('MXWL function f(v)')
title('f(v)-v','FontName','old english ','FontSize',16)
holdon,grid on,
2.2.2Vp值返回
R=8.31;
vp=1.41*sqrt(R*T/(Mmol*10^(-3)));
set(handles.edit15,'string',num2str(vp));
2.2.3斯特恩-蓋拉赫實(shí)驗(yàn)結(jié)果顯示
% --- Executes on button press in result.
function result_Callback(hObject,eventdata,handles)
m=str2num(get(handles.Mmol,'String'))
Mmol=m(1);
t=str2num(get(handles.edit14,'String'))
T=t(1);
vp=str2num(get(handles.edit15,'String'))
v=vp(1);
i=0;
for j=J:-1:-J
i=i+1;
JJ(i)=j
end
x=JJ.*(1+((J.*(J+1)-L.*(L+1)+S.*(S+1))./(2.*J.*(J+1)))).*6*delB.*v;
cont=1;
y=repmat(cont,size(x));
axes(handles.resultfig);
bar(x,y,0.3,'k','stacked')
axes(handles.axes5);
k=1.381e-23;
NA=6.022e23;
v = [0:10:1500];
SS=0.5*6.022e23*10^3/Mmol.*jj.*(1+((J.*(J+1)-L.*(L+1)+S.*(S+1))./(2.*J.*(J+1)))).*delB.*9.27400915*10^(-24)*L.^2*v^(-2);
dN=N.*4*pi*(((Mmol*10^(-3))/6.022e23)/(2*pi*k*T))^(3/2)*exp(-((Mmol*10^(-3))/6.022e23)*v^2/(2*k*T))*v^2;
plot(dN,SS,'k')
xlabel('粒子數(shù)密度');ylabel('偏轉(zhuǎn)距離');
title('斯特恩蓋拉赫實(shí)驗(yàn)')
holdon,grid on,
2.3仿真結(jié)果和結(jié)果分析
如圖2所示,在量子數(shù)為J=2時(shí),磁量子數(shù)M可以取5個(gè)值-2,-1,0,1,2,原子束被分成了5條。
圖2 在量子數(shù)分別為J=2,L=1,S=3時(shí)的施特恩-蓋拉赫實(shí)驗(yàn)MatlabGUI 仿真結(jié)果
如圖3所示,改變參數(shù)J,在量子數(shù)為J=3/2時(shí),磁量子數(shù)M可以取4個(gè)值-3/2,-1/2,1/2,3/2,原子束被分成了4條。
通過改變其它的參數(shù),還可以得到不同條件下的施特恩-蓋拉赫實(shí)驗(yàn)MatlabGUI仿真結(jié)果。
圖3 在量子數(shù)分別為J=3/2,L=1,S=1時(shí)的施特恩-蓋拉赫實(shí)驗(yàn)MatlabGUI仿真結(jié)果
2.4改進(jìn)的方法及設(shè)想
在施特恩-蓋拉赫實(shí)驗(yàn)Matlab GUI仿真過程中,選取了一定溫度下原子氣體最概然速率Vp作為原子束的速率,然后進(jìn)行的仿真,這與真實(shí)的實(shí)驗(yàn)之間還有一定的差距,需要做出修正。修正的設(shè)想是,利用泄流分布方程給出原子隨位置的沉積概率公式,從而實(shí)現(xiàn)全部氣體分子在不同位置的沉積結(jié)果,這樣就可以更加真實(shí)地模擬施特恩-蓋拉赫實(shí)驗(yàn)。
3結(jié)論
利用MatlabGUI進(jìn)行了施特恩-蓋拉赫實(shí)驗(yàn)的仿真,設(shè)計(jì)出了直觀的原子物理學(xué)實(shí)驗(yàn)仿真界面,并且在界面上可以輸入?yún)?shù),通過改變各個(gè)參數(shù)和原子的狀態(tài)量子數(shù),就可以給出相應(yīng)的實(shí)驗(yàn)結(jié)果。該仿真實(shí)驗(yàn)有利于學(xué)生觀察和分析各參數(shù)對(duì)實(shí)驗(yàn)的影響,能使原子物理學(xué)教學(xué)更生動(dòng)、更高效,提高了學(xué)生的學(xué)習(xí)興趣,也為相關(guān)課件的設(shè)計(jì)提供了新的途徑。
參考文獻(xiàn):
[1]楊福家.原子物理學(xué)[M].3版,北京:高教出版社,2000:157-159.
[2]邱忠安,宋昭朋.堿束施特恩-格拉赫實(shí)驗(yàn)[J].物理實(shí)驗(yàn),2002,22(11):3-6.
[3]Cohen V W,Ellett A.Velocity Analysis by Means of the Stern-Gerlach Effect[J].Phys Rev,1937,52:502-504.
[4]趙凱華,羅蔚茵.新概念物理教程—熱學(xué)[M].北京:高等教育出版社:69-71.
[5]張容.基于MATLAB的弗蘭克赫茲實(shí)驗(yàn)數(shù)據(jù)處理[J].大學(xué)物理實(shí)驗(yàn),2014(5):6-8.
[6]王棟,等.基于Matlab光電效應(yīng)測(cè)量光速的新方法研究[J].大學(xué)物理實(shí)驗(yàn),2014(4):31-32.
MatlabGUI Simulation Application in Atomic Physics Teaching
ZHANG Yan-wen
(Faculty of Science,Shihezi University,Xinjiang Shihezi 832003)
Abstract:The simulation interface is designed using the matlabGUI,simulation experiment has a friendly and intuitive interface,rich in content,can set and change the related parameters of the dynamic display of the simulation results,can be conveniently observed experimental phenomena and can analysis of the influence of various parameters on the number of atomic beam cracks,provides a new method for the analysis of atomic physics theory and teaching.
Key words:atomic physics teaching;Stern Gerlach experiment;MatlabGUI simulation
中圖分類號(hào):O 4-39
文獻(xiàn)標(biāo)志碼:A
DOI:10.14139/j.cnki.cn22-1228.2016.001.023
文章編號(hào):1007-2934(2016)01-0090-04
基金項(xiàng)目:石河子大學(xué)應(yīng)用基礎(chǔ)研究青年項(xiàng)目(2014ZRKXYQ08)
收稿日期:2015-09-20