基于MATLAB的点电荷系电场分布的用户图形界面设计

2016-11-14 06:45玲刘杰冯立军
物理与工程 2016年4期
关键词:电场线点电荷控件

栾 玲刘 杰冯立军

(1大连大学物理科学与技术学院,辽宁大连 116622;2海军大连舰艇学院基础部,辽宁大连 116018)

基于MATLAB的点电荷系电场分布的用户图形界面设计

栾 玲1刘 杰1冯立军2

(1大连大学物理科学与技术学院,辽宁大连 116622;2海军大连舰艇学院基础部,辽宁大连 116018)

电场强度与电势是描述静电场性质的重要物理量,利用电场线与等势面可以形象地描述静电场的分布,对其进行数值计算和模拟显示,可以使教学内容更加直观,提高教学效率.本文利用MATLAB编程和MATLAB的GUIDE开发了点电荷系所形成的电场场强分布及电势分布的用户图形界面(GUI),实现了二维平面内任意点电荷系电场的电场线和等势面分布的可视化,并可以方便地调整电荷数目、电量及位置并实时显示,在教学中能起到很好的演示作用.

Matlab;用户图形界面;等势面;电场线

静电场是大学物理教学的重要组成部分.由于场的概念比较抽象,学生对其理解相对困难.电场线与等势面可以形象地描述静电场的分布,因此研究用计算机绘制电场线和等势面具有重要的现实意义.近年来一些文献利用各类工程计算和数据分析软件,对静电场的分布进行数值计算和模拟显示,但其研究往往局限于特定点数目、电量和特定位置的点电荷系[1-3].本文利用Matlab这一高级矩阵语言的强大矩阵运算能力和图形显示能力,直接计算出任意点电荷系在平面各点的电势和电场强度,然后针对数值计算结果,利用Matlab的GUIDE开发了点电荷系电场分布的用户图形界面(GUI),绘制出等势线以及电场线的矢量图.用户根据需求在一定范围内任意调整各点电荷的数目、电量及位置,即可实时显示出该条件下的电场线和等势面,具有良好的交互性,便于学生进行自主学习.

1 点电荷系的电场强度与电势的计算

设真空中某平面上分布有若干个点电荷,电量分别为Q1,Q2,Q3,……,Qn,则点电荷系在场点P的电场强度为[4]

式中,ri为点电荷Qi到场点P的距离,ei为Qi指向场点P的位矢ri的单位矢量.

建立平面直角坐标系,设场点P的坐标为(x,y)、点电荷Qi的坐标为(xi,yi),则点电荷Qi在场点P处的电场强度的数值为

其分量分别为

则点电荷系在场点P处的电场强度为

该点电荷系在场点P的电势为[4]

2 GUI的创建及程序实现

2.1 界面设计

GUI(Graphical User Interface),即图形用户接口,是一个整合了诸如窗口、图标、按钮、菜单和文本等图形对象的用户接口.选中或者激活这些对象通常都会导致某个动作或变化的发生.最常用的激活方法是用鼠标或其他定点设备来控制屏幕上指针或光标的移动,并通过按下鼠标按键通知应用程序选中一个对象或要执行其他的操作[5].

GUIDE全称为Graphical User Interface Development Environment,是Matlab提供的用于开发GUI的专用环境.在编辑器中使用鼠标拖动需要的控件进行布局.

界面分为图形显示和参数设定两个区域.图形显示设置有axes控件,用于电场线及等势线的显示.参数设定区域设置有“基本参数”“当前调整电荷”“显示模式”“点电荷相关参数”4个uipanel.“基本参数”uipanel设定点电荷的数目以及显示电场线时矢量箭头的大小比例,2个参数可以通过Edit Text输入,也可以使用Slider连续调整.“点电荷相关参数”uipanel集中设定点电荷的坐标、电量等参数.“当前调整电荷”uipanel通过Radio Button来设定当前调整的是哪一个电荷的参数.“显示模式”uipanel通过Radio Button设定电荷分布于二维平面上或是三维立体空间内.

图1 GUI界面设计

各控件拖放完成后,要对其属性进行适当设置.如各控件的Tag值、取值范围、缺省值,Slider控件的步长,以及各控件的callback属性等.其中Tag值影响到回调操作,而callback属性直接定义控件对象的控制动作.

3.2 M文件与callback函数

GUI的M文件是由GUIDE命令生成的,它控制整个GUI并决定它对用户的行为进行响应.但是GUIDE命令只产生了M文件的骨架,为了实现必要的功能,用户必须对各个响应进行编程,即编写callback函数.

编写callback函数时,要注意以下几个方面的问题:

(1)Edit Text与Slider的协调

由于多个参数都可以通过Edit Text或Slider输入,在使用一个控件输入时,另一个控件的值要随之改变,并做出相应的显示.而且各控件的取值要合理,如不能出现非整数个电荷数,不允许输入非数字的字符.必要时要通过程序检错和自动纠错.

(2)Radio Button的显示

当设定了点电荷的数目时,“当前调整”uipanel中要显示相应的Radio Button.例如,电荷数目为“1”时,只显示标记为“1”的Radio Button;电荷数目为“2”时,显示标记为“1”和“2”的2个Radio Button;以此类推.

(3)电荷的空间分布

当电荷分布于二维平面上时,平面内电场强度的分布、等势线的分布以及电场强度与等势线的关系,在图形中都能够清晰准确地显示,便于学生观察理解.

而考虑到普遍性,电荷可能分布于三维空间中.需要对三维情况中的电场强度分布重新计算,并进行绘图处理.由于数据处理及绘图的复杂性,程序中对于步长的处理可不同于二维情况.

(4)电场分布的实时显示

当重新设定了某个参数时,要立即刷新显示出当前条件下的电场线与等势线.

如图2正电荷以红色“+”表示,负电荷以蓝色“-”表示.等势线依其电势的高低,从红色逐渐过渡到蓝色.用箭头表示各点的电场强度的方向,箭头的长度取决于该点场强的大小.当箭头过小不便于观察时,通过改变“场强显示比例”同步按比例地调整各箭头的大小.

3 GUI应用示例

设定显示模式为“2D”,即电荷分布于同一平面,在该平面内观察电场强度及电势的分布.此时“点电荷相关参数”uipanel只允许设定电荷的x、y坐标及电量,而不显示设定z坐标的Edit Text和Slider.取点电荷数目为4,设各点电荷的坐标分别为(-3,0)、(3,0)、(0,3)、(0,-3),电量分别为+1c、+1c、+1c和-1c,电场分布如图2所示.用Edit Text控件或Slider控件改变各点电荷的坐标或电量,可以看到电场分布的动态演化.

图2 程序运行示例1

设定显示模式为“3D”,即电荷分布于三维立体空间中.“点电荷相关参数”uipanel中出现设定z坐标的Edit Text和Slider.其余参数则继承了二维情况时的各参数值.此时电场空间分布如图3所示.同样,通过Edit Text控件或Slider控件改变各点电荷的参数,可以看到电场空间分布的动态演化.

图3 程序运行示例2

由于点电荷的数目、坐标、电量等可以任意设置,尤其是可以通过Slider控件不间断地连续调整参数,可以观察到电场的动态变化.4 结语

利用MATLAB设计了点电荷系电场分布的用户图形界面,实现了电荷数目不限的点电荷系电场线和等势面分布的计算和显示.用户图形界面,不需要改动源程序,就可以任意设定电荷的数量、位置及电荷量,可以直观地分析比较不同条件下的电场分布情况,具有良好交互性,使用过程简单、清晰.

[1]莫照,胡奇光.用计算机模拟点电荷在二维平面上的静电场[J].大学物理,2003,1(22):31-33.

[2]刘雅彬,鲁晓东.Matlab对静电场等势线的最小二乘描绘[J].大学物理实验,2013,2(26):82-84.

[3]陈伟,易志俊,丁益民.利用Matlab模拟点电荷系的电场线和等势面[J].大学物理实验,2014,3(27):94-96.

[4]马文蔚.物理学(上册)[M].北京:高等教育出版社,2006: 154-178.

[5]亨塞尔曼.精通Matlab7[M].北京:清华大学出版社,2006: 440-463.

DISTRIBUTION OF THE ELECTRIC FIELD OF A POINT CHARGE SYSTEM BASED ON THE GUI OF MATLAB

Luan Ling1Liu Jie1Feng Lijun2
(1College of Physical Science and Technology,Dalian University,Dalian,Liaoning 116622;2Dept.of Basic Science,Dalian Naval Academy,Dalian,Liaoning 116018)

The electric field intensity and the electric potential are two fundamental physical quantities describing the static electric field,while the electric field lines and the equipotential surfaces are applied to describe the distribution of the electrostatic field graphically,whose numerical and analog displays can make teaching more intuitive and effective.MATLAB is used to develop the graphical user interface(GUI)of the distribution of the electric field intensity and the electric potential of a point charge system in this paper.The visualization of the distribution of the electric field is achieved at any point within a two-dimensional plane.The number together with the quantity and the position of the electric charges can be easily adjusted,which provide an effective demonstration in teaching.

MATLAB;Graphical User Interface(GUI);equipotential surface;electric field lines

2015-09-24;

2016-03-09

辽宁省教育厅高等教育本科教学改革研究项目(UPRP20140568);教育部高等学校大学物理课程教学指导委员会高等学校教学改革研究项目(DWJZW201403db).

栾玲,女,副教授,主要从事非线性光学与混沌同步研究和大学物理教学工作.luanling@dlu.edu.cn

栾玲,刘杰,冯立军.基于Matlab的点电荷系电场分布的用户图形界面设计[J].物理与工程,2016,26(4):72-74,78.

猜你喜欢
电场线点电荷控件
基于.net的用户定义验证控件的应用分析
点电荷的平衡与非平衡问题的进阶学习
点电荷的平衡与非平衡问题的进阶学习
关于.net控件数组的探讨
新高考下关于电场强度的求解方法
电场线和等势面的理解与应用
浅议CAI中电场变化的模拟描述
理解电场线含义攻克静电场问题
基于EMD和4阶累积量的船舶轴频电场线谱提取
基于嵌入式MINIGUI控件子类化技术的深入研究与应用