内容发布更新时间 : 2024/12/23 4:10:51星期一 下面是文章的全部内容请认真阅读。
Matlab模拟静电场三维图与恒定电流场模拟静电场
1 引言
对于静电场的描绘有很多方法以及改进。代伟等人对传统的恒定电流法模拟静电场的实验做出了导电介质、等位点观测以及等位点记录等方面做了改进,使实验结果更加精确。而对于Matlab描绘静电场中,王明美利用streamline命令描绘出了一对点电荷的二维电力线和等势线。王静将两点电荷的电荷量改为比值,对Matlab描绘静电场实验进行了优化[3]。周胜利用循环和ode45解微分方程的方法描绘出点电荷的电场。张雅男等人对恒定电流模拟静电场和matlab模拟静电场二维情况下绘制出的图形进行比较,并且通过分析得出两种方法所得的结果相似却并不完全一致。
本文通过比较matlab来模拟描绘电荷对之间的静电场的方法与恒定电流法描绘静电场的方法,对两种实验的原理、过程以及结果进行比较,进而了解两种方法之间的区别、联系以及优缺点。 2 利用恒定电流场模拟静电场
2.1 简介恒定电流场模拟静电场实验原理
带电体在周围空间产生的电场可以用电场强度E或者电势U来描述。由于静电场中不会有电流,不能够用直流电表直接测量。而静电式仪表要用到金属制的探头,当探头伸入静电场中时,静电场会发生显著变化。不能够直接在静电场中绘制等势线。而从静电场和电流场都引入电势U,都遵守高斯定理等相似的地方,所以可以利用恒定电流场来对静电场进行模拟。 2.2 恒定电流场模拟静电场实验
当绘制点电荷对电场时,通过两个电极接到导电介质上,再在电极上加上恒定直流电压,就可以得到了恒定电流场。
导电介质可以选取导电纸、水、导电玻璃等,本文选用的导电介质是导电纸。 实验结果可以利用等臂记录法、复写纸法、放大尺法等方法来记录。本文利用了补偿法电路[6]和复写纸法来寻找等势点并减小误差。并且绘制出了等量异号点电荷对形成的等势线以及电力线,并且取点在excel中拟合出图形,如图1。
1
图1 等量异种点电荷的等势线和电力线 Fig.1 The power line and potential of a pair of diffient
class equivalent point charges
图1显示:等量异种点电荷等势线越靠近电荷越密集。电力线起于正电荷终于负电荷。
3 利用Matlab模拟静电场 3.1 简介Matlab部分编程命令
Plot3是画三维曲线的命令,可以描绘出空间中立体电力线。 Surf是将三维网格连成曲面的命令,可以形成三维空间下的电势面。 Contour是等高线命令,可以画出平面等势线。
Gradient是求梯度的命令。由于电场强度是电势的负梯度[7]公式:?V?E??en,利用命令[Ex,Ey]=gradient(-U),求出电场在空间各点的x分量和y
?n分量。
Ode45是matlab中一个常用的解微分方程的命令。 3.2 实现Matlab模拟静电场编程 3.2.1 点电荷对电力线画法
常用的点电荷对电力线画法有两种:第一种叫做切线法,第二种是解微分方程[3],本文应用第二种方法。
设电荷量为q1、q2的两点电荷在(-1,0,0)处和(1,0,0)处,空间任意一点p(x,y)。由于电场里面任意一点电场线的切线方向就是该点的场强方向,可以得到:
Exdxdxdy?,引入参变量t:??t,利用库伦定理和场强叠加原理,则可以EydyExEy求出两点电荷在p点的场强分别为:
2
E1?k计算其和场强为:
q1[(x?1)i?yj][(x?1)?y]2232 E2?kq2[(x?1)i?yj][(x?1)?y]2232
E?E1?E2q1(x?1)q2(x?1)q1yq2y?k{?}i?k{?}j 3333222222222222[(x?1)?y][(x?1)?y][(x?1)?y][(x?1)?y]?Exi?Eyj由此我们可以得到电力线的微分方程:
dxkq1(x?1)kq2(x?1)?Ex??33222222dt[(x?1)?y][(x?1)?y]dykq1ykq2y ?Ey??332222dt[(x?1)?y]2[(x?1)?y]2在计算公式中静电力常量k?9.0?109N?m2?C?2,由于我们运用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)]; end
命名为fun1.m。
接下来利用上面编辑好的微分方程函数来绘出等量同种点电荷对的电力线。首先可以将电荷量设为e的倍数,我们在输入电荷量的时候就可以简化为输入实数来描绘静电场了。clc,
clear, close all %清除命令
q1=2;q2=2; %确定两点电荷的电荷量 a=1; %设定两点电荷到原点的距离 a0=0.1; %设定点电荷的半径 figure (1); %建立图形窗口1 box on; %形成框状坐标轴 hold on; %控制图像不可擦除模式 xlabel('X','fontsize',16);ylabel('Y','fontsize',16);zlabel('Z','fontsize',16); %标注X,Y,Z轴,字号16
3
[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)。
4321Y0-1-2-3-4-5-4-3-2-1012345X
4
(a)
42Z0-2-4420-2-40-55Y(b)
X
图2 等量同号点电荷对之间的电力线 Fig.2 The power line of a pair of same class
equivalent point charges
图2中显示:等量同种点电荷对产生的电力线是关于两点电荷连线的垂直平分面对称。
将程序中的电荷量改为“q1=2;q2=6”,可以得到不等量同号电荷对之间的电力线,如图3中的(a)和(b)。
54321Y0-1-2-3-4-5-6-4-20246X(a)
5