APP下载

MatlabGUI仿真在原子物理学教学中的应用

2016-04-07张岩文

大学物理实验 2016年1期
关键词:斯特恩

张岩文

(石河子大学, 新疆 石河子 832000)



MatlabGUI仿真在原子物理学教学中的应用

张岩文

(石河子大学, 新疆 石河子832000)

摘 要:利用MatlabGUI设计了实验仿真界面,仿真实验界面友好直观、内容丰富,可以设定并改变相关参数动态显示仿真结果,能方便地观察到实验现象,并且可以分析各参数对原子束裂纹条数的影响,为原子物理学理论分析与教学提供了新的手段。

关键词:原子物理学教学;斯特恩-盖拉赫实验;MatlabGUI仿真

史特恩-盖拉赫实验是原子物理学中的一个重要实验,该实验对电子自旋理论、角动量量子化理论及空间取向的量子化假设都有重要意义。论文以施特恩-盖拉赫实验为例,提出了利用计算机仿真软件MatlabGUI来制作仿真实验的方法,详细地说明了MatlabGUI制作仿真实验的主要过程和技巧。在制作的仿真实验中明确地显示该实验的实验装置以及实验结果随实验参数的变化,可以自由的设定想要计算的对象,并清楚地给出原子束分裂的实验结果,使学生更加形象具体地认识原子在外场中角动量空间取向的量子化现象,同时也将科学技术运用到课程教学中,达到科学与教学相统一[1-4]。

1施特恩-盖拉赫实验基本原理

原子束在通过一个不均匀的磁场区域,在磁场作用下发生偏折,最后沉积在屏上,实验发现屏上形成了几条清晰的黑斑,这一实验表明原子的磁矩只能取几个特定的方向,从而验证了原子角动量的投影是量子化的。原子束偏转的距离取决于以下的公式:原子在非均匀磁场中偏转:

其中磁量子数M=J,J-1,J-2,……,-J;μz为原子在z轴方向的磁矩;g为朗德因子; μB为玻尔磁子;M为磁量子数[5]。

考虑了原子的自旋后,在原子处于某个确定的总角动量J状态时,磁量子数M为2J+1个,就是说原子束通过非均匀磁场后将分裂成2J+1束。

2施特恩-盖拉赫实验的MatlabGUI仿真

2.1界面设计

界面设计主要分为三步:一是整体规划界面布局,进行控件的选择和位置的确定;二是是控件的属性设置;三是对各个控件代码进行设计。

第一步构思草图、编排控件的布局。界面如图1所示,界面布局为4个部分,左上方是选择原子麦克斯韦速率分布曲线以及相关参数设定部分,1个坐标轴(Axes)对象用来显示原子的麦克斯韦速率分布曲线;其中3个 静 态 文 本 框 (static text),前面2个用于输入原子量和温度,后面1个用于显示最概然速率,右上方是斯特恩-盖拉赫实验装置示意图;左下方总共有7个静态文本框,用于输入原子状态量子数和实验相关参数;右下角是原子通过非均匀磁场的偏转实验结果显示图,用于显示仿真结果[6]。

第二步,完成打开matlab程序在file菜 单 中 选 择new gui 打 开 guide设 计 界 面 模 板,界 面 模 板 左边的各个控件可以直接用鼠标拖到编辑框,。然后设置各控件的属性 比如设置各控件的标识(Tag)颜色字体等。

最后一步是对各个控件代码的进行设计。这一步最关键是OpeningFCN(初始界面函数)和控 件的Callback(回 调 函 数)代码的设计。初始界面函数即设定各参数的初始值,可根据实际情况设定,回调函数是核心,是对界面控件触发时的事件响应函数[6]。

图1 施特恩-盖拉赫实验的MatlabGUI仿真界面布局

2.2功能调用

控件除了基本属性的设置外,还有可能具有执行或调用其他控件的属性值的功能。每个控件的功能设置类似于高级语言编程中的子程序,但在MATLAB的GUI设计中要简单得多。由于MATLAB语言具有丰富的函数,编写控件的功能时,只要调用MATLAB的函数和必要的控制语句即可,不需对控件的属性作过多的描述,对于不熟悉语言编程的设计者,亦不难掌握。具体操作是,在属性窗口中,选择属性“callback”,直接输入调用语句,即可实现,。以下是几个关键的回调程序。

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斯特恩-盖拉赫实验结果显示

% --- 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('粒子数密度');ylabel('偏转距离');

title('斯特恩盖拉赫实验')

holdon,grid on,

2.3仿真结果和结果分析

如图2所示,在量子数为J=2时,磁量子数M可以取5个值-2,-1,0,1,2,原子束被分成了5条。

图2 在量子数分别为J=2,L=1,S=3时的施特恩-盖拉赫实验MatlabGUI 仿真结果

如图3所示,改变参数J,在量子数为J=3/2时,磁量子数M可以取4个值-3/2,-1/2,1/2,3/2,原子束被分成了4条。

通过改变其它的参数,还可以得到不同条件下的施特恩-盖拉赫实验MatlabGUI仿真结果。

图3 在量子数分别为J=3/2,L=1,S=1时的施特恩-盖拉赫实验MatlabGUI仿真结果

2.4改进的方法及设想

在施特恩-盖拉赫实验Matlab GUI仿真过程中,选取了一定温度下原子气体最概然速率Vp作为原子束的速率,然后进行的仿真,这与真实的实验之间还有一定的差距,需要做出修正。修正的设想是,利用泄流分布方程给出原子随位置的沉积概率公式,从而实现全部气体分子在不同位置的沉积结果,这样就可以更加真实地模拟施特恩-盖拉赫实验。

3结论

利用MatlabGUI进行了施特恩-盖拉赫实验的仿真,设计出了直观的原子物理学实验仿真界面,并且在界面上可以输入参数,通过改变各个参数和原子的状态量子数,就可以给出相应的实验结果。该仿真实验有利于学生观察和分析各参数对实验的影响,能使原子物理学教学更生动、更高效,提高了学生的学习兴趣,也为相关课件的设计提供了新的途径。

参考文献:

[1]杨福家.原子物理学[M].3版,北京:高教出版社,2000:157-159.

[2]邱忠安,宋昭朋.碱束施特恩-格拉赫实验[J].物理实验,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]赵凯华,罗蔚茵.新概念物理教程—热学[M].北京:高等教育出版社:69-71.

[5]张容.基于MATLAB的弗兰克赫兹实验数据处理[J].大学物理实验,2014(5):6-8.

[6]王栋,等.基于Matlab光电效应测量光速的新方法研究[J].大学物理实验,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

中图分类号:O 4-39

文献标志码:A

DOI:10.14139/j.cnki.cn22-1228.2016.001.023

文章编号:1007-2934(2016)01-0090-04

基金项目:石河子大学应用基础研究青年项目(2014ZRKXYQ08)

收稿日期:2015-09-20

猜你喜欢

斯特恩
A斯特恩、B斯特恩、C斯特恩
斯特恩 不打篮球的篮球人
斯特恩是个工作狂
前NBA总裁斯特恩因病去世
奠基者
斯特恩 成就巨人运动的“矮子”
《多情客游记》中的游戏精神解读
歧视之罪
谦和独裁者
《项狄传》:西方早期的实验小说