用Matlab解决静电场中的问题
           
【摘要】Matlab是一种用于算法开发,数据可视化,数值分析及数值图形生成的高级工具语言,它主要被应用于信号和图像处理,通讯,控制系统设计,测试和测量等广泛领域。在本文中,我用Matlab的功能使静电场里的某些模型(电场强度电势、电场线、等势线、等势面)可视化,方便了我们对有关静电场的知识的学习,提高了我们对知识的理解和运用能力,本文主要是从图像处理功能方面介绍了Matlab语言在静电场一些问题中的应用。
关键字】:Mtalab  电场强度  电势  电场线  等势线  等势面
一、引言
Matlab是美国Mathworks公司开发1984年推出的一套高性能的数值计算和可视化软件。它是一种以矩阵运算为基础的交互式程序语言,其应用范围涵盖了当今几乎所有的工业应用与科学研究领域,,集数值分析、矩阵运算、信号处理和图形显示于一体。.此外,Matlab更强大的功能还表现在其有大量的工具箱(Toolbox),如:控制系统、数值模拟、信号处理及偏微分
方程等工具箱。因此,Matlab已成为美国和其它发达国家大学教育和科学研究中必不可少的工具。
静电场中的电场线,等势线,等势面等图形是一种抽象的模型,在现实世界不具可视化的空间场的物体。所以,形象的模拟出以上问题的图形,对于更进一步学习与研究电场知识有很大的意义。静电场的问题学习与理解起来具有一定的特殊性:它既有理论数值的计算,又有图形图像的辅助处理与理解。例如:形象的模拟出电场线,等势线,等势面,这能在教学中解决教师的授课难题,又能解决学生的理解上的困难。近年来,一直有人在不断的探索这方面的问题,并且取得一定的成绩。但还存在一定的缺陷,而Matlab恰好解决了这些问题!这使得这些抽象问题能有一门精确的工具软件来处理完成。这正是Matlab在图像方面问题处理的应用。
二、Matlab在静电场中的应用
问题一:等量同号点电荷的电场线的绘制
根据库仑定律:在真空中,两个静止的点电荷之间的作用力与这两个电荷的电量乘积成正
比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号维斥力,异号为吸力,他们之间的力F满足:
                                (1)
由电场强度E的定义可知:
                                  (2)
对于点电荷,根据场论基础中的定义,有势场E的势函数为:
                                  (3)
                                (4)
在matlab中,由以上公式算出各点的电势U,电场强度E后,可以用matlab自带的库函数绘出一对点电荷的电场线和等势线,其matlab程序如下:
clear
q=0.5;
xm=2.5;
ym=2;
x=linspace(-xm,xm); %横坐标向量
y=linspace(-ym,ym); %纵坐标向量
[X,Y]=meshgrid(x,y);%产生自变量网络坐标
R1=sqrt((X+1).^2+Y.^2); %第一个正电荷到场点的距离
R2=sqrt((X-1).^2+Y.^2); %第二个正电荷到场点的距离
U=1./R1+q./R2; %计算电势
u=1:0.5:4; %等势线的电场向量
figure
contour(X,Y,U,u) %画等势线
grid on %有网格
matlab学好了有什么用
hold on %设置图形保持状态
plot([-xm;xm],[0;0]) %画水平线
plot([0;0],[-ym;ym]) %画竖直线
plot(-1,0,'o','MarkerSize',12)
plot(1,0,'o','MarkerSize',12)
[Ex,Ey]=gradient(-U,x(2)-x(1),y(2)-y(1)); %用等势梯度求场强的两个分量
dth1=20;
th1=(dth1:dth1:180-dth1)*pi/180; %电场线的起始角度
r0=0.1;
x1=r0*cos(th1)-1; %电场线的起点横坐标
y1=r0*sin(th1);  %电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x1,y1) %画左上电场线
streamline(X,-Y,Ex,-Ey,x1,-y1)%画左下电场线
dth2=dth1/q;%右边电场线角度间隔
th2=(180-dth2:-dth2:dth2)*pi/180;
x2=r0*cos(th2)+1; %电场线的起点横坐标
y2=r0*sin(th2); %电场线的起点纵坐标
streamline(X,Y,Ex,Ey,x2,y2) %画右下电场线
streamline(X,-Y,Ex,-Ey,x2,-y2) %画右下电场线
axis equal tight  %纵横坐标轴采用等长刻度
xlabel('x','fontsize',16)  %X轴说明
ylabel('y','fontsize',16)  %Y轴说明
图1  同号点电荷的电场线和电势线
        小结1:由图1可以清楚的看出同号电荷相互排斥的现象,各电荷的等势线呈圈状围在电荷周围,且越靠近电荷电场线分布越密集。
问题二:等量异种电荷的电势,电场的分布
1. 物理理论:平面上在x=2, y=0处有一正电荷,x=-2, y=0处有一负电荷根据:
                        (5)
  其中
r=                        (6)
为两点间的距离。
2.matlab程序:
(1)电势的分布
[x,y]=meshgrid(-5:0.2:5,-4:0.2:4); %建立数据网格
z=1./sqrt((x-2).^2+y.^2+0.01)-1./sqrt((x+2).^2+y.^2+0.01);%电势的表达式
mesh(x,y,z) %三维曲面绘图
运行结果如图2所示:
图2 电势的分布
    小结2:由图2可以看出,在不同位置的两正负电荷由于所带电性的不同电势分布也大不相同,也可以说是在某些角度看来是完全相反的。
(2)电场的分布
[x,y] =meshgrid(-2:0.1:2,-2:0.1:2);    %以0.1为步长建立平面数据网格.x,y的取值范围都是[-2,2]
z= 1./sqrt((x-1).^2+y.^2+0.01)-1./sqrt((x+1).^2+y.^2+0.01);                %电势公式
[px,py]=gradient(z);                        %求电势在x,y方向的梯度即电场强度
contour(x,y,z,[-12,-8,-5,-3,-1,-0.5,-0.1,0.1,0.5,1,3,5,8,12])                %画出等势线
hold on                                                %保留上一次作图痕迹
quiver(x,y,px,py, 'k')      %画出各点上电场的大小和方向,'k'为图形参数控制
%quiver是绘制点[x,y]处的矢量[px,py],即画出各点电场的大小和方向
运行结果如图3所示
    图3  电场线分布
    小结3:由图3可以直观的观察到两电荷电场线的分布,在离场源电荷越远的地方电场线分布越疏,这也代表着电场强度的减弱。
问题三:线电荷的电势分布
1.物理理论:长为l的线电荷,电荷线密度为dg=λ(x)dx,求其电势分布。
电场中任意一点的电势为
                  (7)     
   
2.Matlab程序:
[X,Y]=meshgrid([-1.5:1/(4*pi):1.5]);    % 构造三维图形用X,Y阵列
n=2001;                                        %给n赋值
dx=2/(n-1);                                    %建立微分元
x=-1:dx:1;                                    %定义以dx为步长的矩阵
Z=zeros(size(X));                              %产生零矩阵,查询矩阵维数
for i=1:n-1
  lpi=x(i)^2+1; Z=Z+lpi./sqrt((x(i)-X).^2+Y.^2);          %电势公式
end
Z=Z*dx;l=linspace(min(min(Z)),max(max(Z)),10);      %构造线性分布向量求向量中最大元素和最小元素
surf(X,Y,Z);                                  %画等高线
运行结果如图4所示。
图4 线电荷的电势分布图
    小结4:由图4可以看到长为l电荷线密度为dg=λ(x)dx的线电荷的电势分布情况,同理借助这样的Matlab程序我们也可以直观的看到其他更多的电荷的电势分布图。
问题四:点电荷系问题
1.物理理论:真空中的一点电荷系,如果电场是由n个点电荷所激发,
某点P的电势分布:由场强叠加原理可知:
                      (8)
式中是P点电荷的距离在空间直角坐标系下,设P点坐标为(x y z), 所在位置的坐标为(,)则在点P(X, Y, Z)处的电势为:
                  (9)
2.Matlab程序:
clear
v='1./((x-3).^2+y.^2).^0.5+1./((x+3).^2+y.^2).^0.5'%读取电势计算式
xmax=10;ymax=10;ngrid=30;