当前位置:文档之家› 浅析Matlab模拟静电场三维图与恒定电流场模拟静电场

浅析Matlab模拟静电场三维图与恒定电流场模拟静电场

浅析Matlab模拟静电场三维图与恒定电流场模拟静电场摘要:本文利用恒定电流场模拟静电场,通过寻找等势点的方法描绘出点电荷对的电力线和电势面;而后利用Matlab来实现点电荷对在三维空间里的电力线以及等势面的描绘,并且给出其详尽的计算程序以及注释,使Matlab初学者能够轻松的看懂程序;同时对Matlab模拟静电场和恒定电流模拟静电场两种方法描绘点电荷对之间的电力线图以及等势线图进行分析对比。

关键词:Matlab;电力线;等势面;三维1 引言对于静电场的描绘有很多方法以及改进。

代伟等人对传统的恒定电流法模拟静电场的实验做出了导电介质、等位点观测以及等位点记录等方面做了改进,使实验结果更加精确[1]。

而对于Matlab描绘静电场中,王明美利用streamline命令描绘出了一对点电荷的二维电力线和等势线[2]。

王静将两点电荷的电荷量改为比值,对Matlab描绘静电场实验进行了优化[3]。

周胜利用循环和ode45解微分方程的方法描绘出点电荷的电场[4]。

张雅男等人对恒定电流模拟静电场和matlab模拟静电场二维情况下绘制出的图形进行比较,并且通过分析得出两种方法所得的结果相似却并不完全一致[5]。

本文通过比较matlab来模拟描绘电荷对之间的静电场的方法与恒定电流法描绘静电场的方法,对两种实验的原理、过程以及结果进行比较,进而了解两种方法之间的区别、联系以及优缺点。

2 利用恒定电流场模拟静电场2.1 简介恒定电流场模拟静电场实验原理带电体在周围空间产生的电场可以用电场强度E或者电势U来描述。

由于静电场中不会有电流,不能够用直流电表直接测量。

而静电式仪表要用到金属制的探头,当探头伸入静电场中时,静电场会发生显著变化。

不能够直接在静电场中绘制等势线。

而从静电场和电流场都引入电势U,都遵守高斯定理等相似的地方,所以可以利用恒定电流场来对静电场进行模拟[6]。

2.2 恒定电流场模拟静电场实验当绘制点电荷对电场时,通过两个电极接到导电介质上,再在电极上加上恒定直流电压,就可以得到了恒定电流场。

导电介质可以选取导电纸、水、导电玻璃等,本文选用的导电介质是导电纸。

实验结果可以利用等臂记录法、复写纸法、放大尺法等方法来记录。

本文利用了补偿法电路[6]和复写纸法来寻找等势点并减小误差。

并且绘制出了等量异号点电荷对形成的等势线以及电力线,并且取点在excel 中拟合出图形,如图1。

图1 等量异种点电荷的等势线和电力线Fig.1 The power line and potential of a pair of diffientclass equivalent point charges图1显示:等量异种点电荷等势线越靠近电荷越密集。

电力线起于正电荷终于负电荷。

3 利用Matlab 模拟静电场3.1 简介Matlab 部分编程命令Plot3是画三维曲线的命令,可以描绘出空间中立体电力线。

Surf 是将三维网格连成曲面的命令,可以形成三维空间下的电势面。

Contour 是等高线命令,可以画出平面等势线。

Gradient 是求梯度的命令。

由于电场强度是电势的负梯度[7]公式:→∂∂-=n e nV E ,利用命令[Ex,Ey]=gradient(-U),求出电场在空间各点的x 分量和y 分量。

Ode45是matlab 中一个常用的解微分方程的命令[8]。

3.2 实现Matlab 模拟静电场编程3.2.1 点电荷对电力线画法常用的点电荷对电力线画法有两种:第一种叫做切线法,第二种是解微分方程[3],本文应用第二种方法。

设电荷量为q1、q2的两点电荷在(-1,0,0)处和(1,0,0)处,空间任意一点p (x,y)。

由于电场里面任意一点电场线的切线方向就是该点的场强方向,可以得到:dy dx Ey Ex =,引入参变量t :t Eydy Ex dx ==,利用库伦定理和场强叠加原理,则可以求出两点电荷在p 点的场强分别为:232211])1[(])1[(y x yj i x q kE ++++= 232222])1[(])1[(y x yj i x q k E +-+-= 计算其和场强为:jE i E j y x y q y x y q k i y x x q y x x q k E E E y x +=+-+++++--++++=+=}])1[(])1[({}])1[()1(])1[()1({2322223221232222322121 由此我们可以得到电力线的微分方程:2322223221])1[()1(])1[()1(y x x kq y x x kq E dt dx x +--++++==2322223221])1[(])1[(y x y kq y x y kq E dt dy y +-+++== 在计算公式中静电力常量229100.9-••⨯=C m N k ,由于我们运用matlab 模拟绘图,可以将k 值取为1,所得出的静电场图形不变[3]。

将此微分方程编成函数文件:function dxdy=fun1(t,p,flag,q1,q2);dxdy=[q1*p(1)./(sqrt((p(2)+1).^2+p(1).^2).^3)+q2*p(1)./(sqrt((p(2)-1).^2+p(1).^2).^3);q1*(p(2)+1)./(sqrt((p(2)+1).^2+p(1).^2).^3)+q2*(p(2)-1)./(sqrt((p(2)-1).^2+p(1).^2).^3)];命名为fun1.m 。

接下来利用上面编辑好的微分方程函数来绘出等量同种点电荷对的电力线。

首先可以将电荷量设为e 的倍数,我们在输入电荷量的时候就可以简化为输入实数来描绘静电场了。

clear,clc,close all %清除命令q1=2;q2=2; %确定两点电荷的电荷量a=1; %设定两点电荷到原点的距离 a0=0.1; %设定点电荷的半径figure (1); %建立图形窗口1box on; %形成框状坐标轴hold on; %控制图像不可擦除模式 xlabel(‘X ’,’fontsize ’,16);ylabel(‘Y ’,’fontsize ’,16);zlabel(‘Z ’,’fontsize ’,16); %标注X,Y ,Z 轴,字号16[t,p,l]=sphere; %形成球形坐标矩阵surf(a0*t+1,a0*p+0,a0*l+0); %在(1,0,0)处画出第一个点电荷surf(a0*t-1,a0*p+0,a0*l+0); %在(-1,0,0)处画出第一个点电荷x0=2;y0=2;z0=1; %设定坐标范围x=linspace(-x0,x0,20);y=linspace(-y0,y0,20); %设定坐标向量z=linspace(-z0,z0,20); %设定坐标向量[X,Y,Z]=meshgrid(x,y,z); %设置坐标网格q=0:pi/5:2*pi; %确定电场线在圆周上的起始角度a1=a0*cos(q); b1=-1+a0*sin(q);b2=1+a0*sin(q); %起点对应的相对坐标xm=[a1 a1];ym=[b1 b2]; %设定起点横、纵坐标构成的矢量th0=0:pi/4:2*pi; %设定绕X轴的旋转角for i=1:22; %设置循环,循环22次求解[t,p]=ode45(‘fun1’,[0:0.05:40],[xm(i),ym(i)],[],q1,q2);%调用ode45解微分方程xx=p(:,2);yy=p(:,1); %将解微分方程产生的值分别装入并且形成坐标矩阵(注意:p(2)是横坐标值,p(1)是纵坐标值)。

XX=xx*ones(size(th0));YY=yy*cos(th0);ZZ=yy*sin(th0);%将得到的二维坐标绕X轴旋转plot3(XX,YY,ZZ,’r’); %用红色画出立体电力线end运行此程序可以得到等量同号点电荷对之间的电力线,在得出的窗口中可以利用3D模式从各个角度观察电力线。

本文截取了两个方向的图分别是如图2中的(a)和(b)。

YXX YZ图2 等量同号点电荷对之间的电力线Fig.2 The power line of a pair of same classequivalent point charges图2中显示:等量同种点电荷对产生的电力线是关于两点电荷连线的垂直平分面对称。

将程序中的电荷量改为“q1=2;q2=6”,可以得到不等量同号电荷对之间的电力线,如图3中的(a)和(b)。

XY(a)(b) (a)-6XZ图3 不等量同号电荷对之间的电力线Fig.3 The power line of a pair of same classdifferent amounts point charges图3中显示:不等量同号点电荷之间的电力线偏向电荷量较弱的电荷。

上述程序中,本文通过将解微分方程得出的二维坐标(xx ,yy ),通过旋转的方法形成新的三维坐标(XX,YY ,ZZ );由于是绕X 轴旋转,则横坐标值不用变化,直接将原来的xx 乘以一个全一矩阵形成三维情况下的横坐标矩阵,而三维情况下的纵坐标和竖坐标,通过空间几何我们可以得到:新纵坐标=原纵坐标×cos (旋转角度)、新竖坐标=原纵坐标×sin (旋转角度)。

3.2.2 点电荷对电势面画法同样由库伦定理和场强叠加原理可得:→→+=22212121r r e r q k e r q k E 则电势为:2121r kq r kq U +=同样为了便于计算,将电势化为:2211r q r q U +=。

接下来利用contour 和surf 命令画出等量同种电荷对之间形成的等势面: clear,clc,close all %清除命令q1=2;q2=2; %确定两点电荷的电荷量a=1; %设定两点电荷到原点的距离 x0=3;y0=3; %设定坐标范围x=linspace(-x0,x0,60);y=linspace(-y0,y0,60); %设定坐标向量hold on; %设置图形不可擦除模式grid on; %设置网格开启模式(b)[X,Y]=meshgrid(x,y); %设置坐标网格r1=sqrt((X+a).^2+Y.^2);r2=sqrt((X-a).^2+Y.^2);%计算场点到两点电荷之间的距离U=q1./r1+q2./r2; %计算场点的电势figure (1); %建立图形窗口1contour(X,Y,U); %利用等高线命令画出等势线figure (2); %建立图形窗口2surf(X,Y,U); %画出三维情况下的等势面运行上述程序画出了等量同种点电荷对的平面等势线如图4中的(a),以及三维情况下的等势面如图4中的(b)。

相关主题