MATLAB在电磁学中的应用.docx
《MATLAB在电磁学中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在电磁学中的应用.docx(13页珍藏版)》请在冰点文库上搜索。
MATLAB在电磁学中的应用
电磁学
一、
1、点电荷的电场
研究真空中,两个带正电的点电荷,在电量相同与电量不同情况下的电场分布。
V=V1+V2=
+
E=-▽V
2、程序实现
主程序文件名为point、m
clearall
ep0=8、85*le-12;%真空中的电容率
c0=1/(4*pi*ep0);
e=1、6e-10;
h=0、018;
x=-0、5:
h:
0、5;
y=-0、5:
h:
0、5;
str{1}=’两同号等量点电荷’;
str{2}=’两同号不等量点电荷’;
[X,Y]=meshgrid(x,y);
q=[e;1、9*e];
fori=1:
2
V=c0*e、/sqrt((X+0、2)、^2+Y、^2)+c0、*q(i)、/sqrt((X-0、2)、^2+Y、^2);%求电势
[Ex,Ey]=gradient(-V,h);%求电场
figure(i)
counter(X(:
:
1),Y(:
:
1),V,…%等势面
[20,-20,19,-19,18,-18,17,-17,16,-16,15,-15,14,-14,13,-13,12,-12,11,-11,10,-10],’r’);
Axis([-0、38,0、38,-0、28,0、28])
holdon
phi=0:
pi/17:
2*pi;%以下画电场线
sx1=0、2+0、01*cos(phi);
sy1=0、01*sin(phi);
streamline(X(:
:
1),Y(:
:
1),Ex,Ey,sx1,sy1);
holdon
sx2=-0、2+0、01*cos(phi);
sy2=0、01*sin(phi);
streamline(X(:
:
1),Y(:
:
1),Ex,Ey,sx2,sy2);
title(str(i))
text(-0、215,0,’+’,’fontsize’,20);%标示点电荷
text(0、185,0,’+’,’fontsize’,20);
end
二、带电细棒的电场
1、若电荷Q均匀分布在长为L的细棒上,求真空中,带电细棒的电场在xy平面内的分布情况。
点电荷产生的电位可表示为
就是一个标量。
其中r为电荷到测量点的距离。
线电荷所产生的电位可用积分或叠加的方法来求。
为此把线电荷分为N段,每段长为dL。
每段上电荷为q*dL,瞧作集中在中点的点电荷,它产生的电位为
然后对全部电荷求与即可。
把xy平面分成网格,因为xy平面上的电位仅取决于离原点的垂直距离R,所以可以省略一维,只取R为自变量。
把R从0到10米分成Nr+1点,对每一点计算其电位。
2、程序实现
matlab程序
clearall;
L=input('线电荷长度L=:
');
N=input('分段数N=:
');
Nr=input('分段数Nr=:
');
q=input('电荷密度q=:
');
E0=8、85e-12;
C0=1/4/pi/E0;
L0=linspace(-L,L,N+1);
L1=L0(1:
N);L2=L0(2:
N+1);
Lm=(L1+L2)/2;dL=2*L/N;
R=linspace(0,10,Nr+1);
fork=1:
Nr+1
Rk=sqrt(Lm、^2+R(k)^2);
Vk=C0*dL*q、/Rk;
V(k)=sum(Vk);
end
[max(V),min(V)]
plot(R,V)
三、带电圆环的电场
1、真空中,一个半径为R的圆形细环上,均匀分布电荷Q,求其电场强度的分布。
主程序的文件名为ering、m
2、程序
clearall
lam=1e-9;%带电环的电荷线密度
ep0=8、85*1e-12;%真空中的电容率
c0=lam/(4*pi*ep0);%归并常数
R=1、2;%带电环半径
y=-6:
0、1:
6;
z=-6:
0、1:
6;
phi=0:
pi/60:
2*pi;
[Y,Z,PHI]=meshgrid(y,z,phi);
r=sqrt(R*cos(PHI)、^2+Y-R*sin(PHI)、^2+Z、^2);
dv=c0、/r;
V=pi/40*trapz(dv,3);%求电势
[Ey,Ez]=gradient(-V,0、2);%求电场
figure
axis([-55-55]);
line(R,0,'marker','、','markersize',25,'color','k');%画带电环的yz截面
line(-R,0,'marker','、','markersize',25,'color','k');
holdon
contour(Y(:
:
1),Z(:
:
1),V,[2,4,6,8,10,12,14,16,18,20,22,24,28,30,32],'g')%画电势分布
holdon
sz=0、1;
sy=[0、3:
0、15:
1、5];
[Sy,Sz]=meshgrid(sy,sz);%计算电场线分布
streamline(Y(:
:
1),Z(:
:
1),Ey,Ez,Sy,Sz);
streamline(-Y(:
:
1),Z(:
:
1),-Ey,Ez,-Sy,Sz);
streamline(-Y(:
:
1),-Z(:
:
1),-Ey,-Ez,-Sy,-Sz);
streamline(Y(:
:
1),-Z(:
:
1),Ey,-Ez,Sy,-Sz);
streamline(Y(:
:
1),Z(:
:
1),Ey,Ez,0,0);
streamline(Y(:
:
1),-Z(:
:
1),Ey,-Ez,0,0);
streamline(Y(:
:
1),Z(:
:
1),Ey,Ez,1、5,0);
streamline(Y(:
:
1),Z(:
:
1),Ey,Ez,-1、5,0);
xlabel('y');
ylabel('z');
title('带电圆环的电势及电场分布')
四、平面上N个电荷之间的库仑引力
建模:
由库仑定律:
其分量的公式可以写成:
编写程序时,先输入电荷的数目,各电荷的坐标及电荷量,再选一个电荷,求其它电荷对它的作用力,叠加求合力。
再选下一个电荷,依次类推。
Matlab程序:
clearall;
N=input('输入电荷数目N=:
');
foric=1:
N%输入给定条件
fprintf('----/n对电荷#%g\n',ic);
rc=input('输入电荷位置[x,y](米):
');
x(ic)=rc
(1);%电荷ic的x坐标
y(ic)=rc
(2);%电荷ic的y坐标
q(ic)=input('输入电荷量(库仑):
');
end
E0=8、85e-12;%真空中的常数
C0=1/(4*pi*E0);%合并常数
foric=1:
N%循环计每个电荷所受的力
Fx=0、0;Fy=0、0;
forjc=1:
N
if(ic~=jc)
xij=x(ic)-x(jc);yij=y(ic)-y(jc);
Rij=sqrt(xij^2+yij^2);
Fx=Fx+C0*q(ic)*q(jc)*xij/Rij^3;
Fy=Fy+C0*q(ic)*q(jc)*yij/Rij^3;
end
end
fprintf('其它电荷作用在电荷#%g上的合力为:
\n',ic);
fprintf('x-分量:
%gN\n',Fx);
fprintf('y-分量:
%gN\n',Fy);
end
本程序注意学会循环提示并输入参数的方法,以及用双循环解决较复杂的计算过程的编程问题。
练习:
一、载流圆环的磁场
1、在真空中,在一个半径为R的载流导线,通过的电流I,试求此载流圆环磁感强度B的空间分布。
clearall
R=1、5;
I0=100;
mu0=4*pi*1e-7;C0=mu0/(4*pi);
N=20;%电流环分段
x=linspace(-3,3,N);y=x;%观察点范围
theta0=linspace(0,2*pi,1+N);%环的圆周角分段
theta1=theta0(1:
N);
y1=R*cos(theta1);z1=R*sin(theta1);%环隔断矢量起始坐标y1,z1
theta2=theta0(2:
N+1);
y2=R*cos(theta2);z2=R*sin(theta2);%终点坐标y2,z2
xc=0;yc=(y2+y1)、/2;zc=(z2+z1)、/2;%计算环隔断矢量中点的三个坐标分量
dlx=0;dly=y2-y1;dlz=z2-z1;
fori=1:
N%循环计算B(x,y)的值
forj=1:
N
rx=x(j)-xc;ry=y(i)-yc;rz=0-zc;%r的3个长度分量,r在z=0平面
r3=sqrt(rx、^2+ry、^2+rz、^2)、^3;
dlXr_x=dly、*rz-dlz、*ry;
dlXr_y=dlz、*rx-dlx、*rz;
Bx(i,j)=sum(C0*I0、*dlXr_x、/r3);%把环各段参数的磁场分量累加
By(i,j)=sum(C0*I0、*dlXr_y、/r3);
B=(Bx、^2+By、^2)、^0、5;
end
end
subplot(1,2,1),quiver(x,y,Bx,By),%画矢量图
holdon
plot(0,1、5,'ro',0,-1、5,'bo'),
xlabel('x'),ylabel('y'),
axis([-3,3,-3,3]),
subplot(1,2,2)
mesh(x,y,B),axis([-3,3,-3,3,0,1e-4])%画磁场大小分布图
xlabel('x'),ylabel('y'),zlabel('B')
结果:
二、、带电粒子在电磁场中的运动
1、有均匀电场E与均匀磁场B两者方向互相垂直,分三种情况研究带电粒子在其中的运动情况。
(1)电场强度与磁感应强度都不为零;
(2)电场强度为零,磁感应强度不为零;(3)电场强度不为零,磁感应强度为零。
代码:
m=1;Bz=1;q=1;Ey=1;Ez=1;vx=1;vy=1;vz=1;%电场强度与磁场强度都不为0
a=q*Bz/m;
t=1:
0、01:
100;
x=Ey/Bz*t+vy/a-vy/a*cos(a*t)+(vx-Ey/Bz)/a*sin(a*t);
y=vy/a*sin(a*t)+(vx-Ey/Bz)/a*cos(a*t)-(vx-Ey/Bz)/a;
z=vz*t+a*t、^2/2;
axes('Position',[0、3,0、6,0、4,0、4]);
plot3(x,y,z,'g');xlabel('X');ylabel('Y');zlabel('Z');
m=1;q=1;Ey=1;Ez=1;vx=1;vy=1;vz=1;%磁场强度为0,电场强度不为0、
t=linspace(0,100,10000);
x=vx*t;
y=q*Ez/(2*m)*t、^2++vy*t;
z=vz*t;
axes('Position',[0、6,0、1,0、4,0、4]);
plot3(x,y,z);
xlabel('X');
ylabel('Y');
zlabel('Z');
m=1;Bz=1;q=1;Ey=0;Ez=0;vx=1;vy=1;vz=1;%电场强度为0,磁场强度不为0、
a=q*Bz/m;t=1:
0、01:
100;
x=Ey/Bz*t+vy/a-vy/a*cos(a*t)+(vx-Ey/Bz)/a*sin(a*t);
y=vy/a*sin(a*t)+(vx-Ey/Bz)/a*cos(a*t)-(vx-Ey/Bz)/a;
z=vz*t+a*t、^2/2;
axes('Position',[0、1,0、1,0、4,0、4]);
plot3(x,y,z,'k');xlabel('X');ylabel('Y');zlabel('Z');
结果:
三、三个电荷量相等的电荷q固定在一边长a=1米的等边三角形的顶点上试编写一段计算机程序,画出三电荷系统x轴线上的电势分布。
代码:
clearall
a=1;%边长
e0=8、85*10^(-12);
q=1、6e-10;%电量q
pi=3、14;
x=0、1:
0、01:
6;
V=(q/(4*pi*e0))*(2、/sqrt((a^2)/4+(x-(a/2)*sqrt(3))、^2)-1、/x);%求电势
plot(x,V,'b',[0,6],[0,0],'k')%画轴线上的电势曲线
xlabel('x/m');ylabel('V/V')
grid
结果:
四、在zOy平面上有一半径为R的圆环,均匀带有电荷量q。
试用作图的方法求圆环轴线(Ox轴)上的电场强度与电势的分布,并讨论在什么位置它们有极大值。
代码:
R=0、1;
x=(-8:
0、001:
8)*R;%轴线上的位置
E=x、/(R^2+x、^2)、^(3/2);%轴线上的电场强度分布
V=1、/sqrt(R^2+x、^2);%计算轴线的电势分布
subplot(2,1,1)
plot(x,E,[-0、80、8],[00],'k',[00],[-4040],'k')%画轴线上的电场强度曲线
xlabel('x/m');ylabel('E/V/m');
subplot(2,1,2)
plot(x,V,[00],[015])%画轴线上的电势曲线
xlabel('x/m');ylabel('V/V');
[Em,n1]=max(E);
Exm=R*((n1-1)*0、001-8)%输出电场强度极大值的位置
[Vm,n2]=max(V);
Vxm=R*((n2-1)*0、001-8)%输出电势极大值位置
结果:
1、电场强度与电势的分布
2极大值位置
Exm=
0、0707
Vxm=
0
由输出可知电场强度极大值x=0、0707(m)
电势极大值位置x=0