电磁场实验指导书及实验报告.docx
《电磁场实验指导书及实验报告.docx》由会员分享,可在线阅读,更多相关《电磁场实验指导书及实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
![电磁场实验指导书及实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/8/0953fe19-f027-4ee7-b2a4-c391d89a7d34/0953fe19-f027-4ee7-b2a4-c391d89a7d341.gif)
电磁场实验指导书及实验报告
CENTRALSOUTHUNIVERSITY
题目
利用Matlab模拟点电荷电场的分布
姓名
xxxx
学号
xxxxxxxxxx
班级
电气xxxx班
任课老师
xxxx
实验日期
2010—10
电磁场理论实验一
-—利用Matlab模拟点电荷电场的分布
一.实验目的:
1.熟悉单个点电荷及一对点电荷的电场分布情况;
2.学会使用Matlab进行数值计算,并绘出相应的图形;
二.实验原理:
根据库伦定律:
在真空中,两个静止点电荷之间的作用力与这两个电荷的电量乘积成正比,与它们之间距离的平方成反比,作用力的方向在两个电荷的连线上,两电荷同号为斥力,异号为吸力,它们之间的力F满足:
(式1)
由电场强度E的定义可知:
(式2)
对于点电荷,根据场论基础中的定义,有势场E的势函数为
(式3)
而(式4)
在Matlab中,由以上公式算出各点的电势U,电场强度E后,可以用Matlab自带的库函数绘出相应电荷的电场分布情况。
三.实验内容:
1.单个点电荷
点电荷的平面电力线和等势线
真空中点电荷的场强大小是E=kq/r^2,其中k为静电力恒量,q为电量,r为点电荷到场点P(x,y)的距离。
电场呈球对称分布,取电量q〉0,电力线是以电荷为起点的射线簇。
以无穷远处为零势点,点电荷的电势为U=kq/r,当U取常数时,此式就是等势面方程.等势面是以电荷为中心以r为半径的球面。
◆平面电力线的画法
在平面上,电力线是等角分布的射线簇,用MATLAB画射线簇很简单。
取射线的半径为(都取国际制单位)r0=0。
12,不同的角度用向量表示(单位为弧度)th=linspace(0,2*pi,13).射线簇的终点的直角坐标为:
[x,y]=pol2cart(th,r0)。
插入x的起始坐标x=[x;0。
1*x]。
同样插入y的起始坐标,y=[y;0。
1*y],x和y都是二维数组,每一列是一条射线的起始和终止坐标。
用二维画线命令plot(x,y)就画出所有电力线。
◆平面等势线的画法
在过电荷的截面上,等势线就是以电荷为中心的圆簇,用MATLAB画等势线更加简单.静电力常量为k=9e9,电量可取为q=1e-9;最大的等势线的半径应该比射线的半径小一点?
r0=0。
1。
其电势为u0=k8q/r0。
如果从外到里取7条等势线,最里面的等势线的电势是最外面的3倍,那么各条线的电势用向量表示为:
u=linspace(1,3,7)*u0。
从-r0到r0取偶数个点,例如100个点,使最中心点的坐标绕过0,各点的坐标可用向量表示:
x=linspace(—r0,r0,100),在直角坐标系中可形成网格坐标:
[X,Y]=meshgrid(x).各点到原点的距离为:
r=sqrt(X.^2+Y.^2),在乘方时,乘方号前面要加点,表示对变量中的元素进行乘方计算.各点的电势为U=k8q./r,在进行除法运算时,除号前面也要加点,同样表示对变量中的元素进行除法运算。
用等高线命令即可画出等势线contour(X,Y,U,u),在画等势线后一般会把电力线擦除,在画等势线之前插入如下命令holdon就行了。
平面电力线和等势线如图1,其中插入了标题等等。
越靠近点电荷的中心,电势越高,电场强度越大,电力线和等势线也越密。
图1
源程序:
%点电荷的平面电力线和等势线
%平面电力线的画法
q=1e—9;
r0=0。
12;
th=linspace(0,2*pi,13);
[x,y]=pol2cart(th,r0);
x=[x;0.1*x];
y=[y;0。
1*y];
plot(x,y);
gridon
holdon
plot(0,0,’o',’MarkerSize’,12)
xlabel(’x',’fontsize’,16)
ylabel('y’,’fontsize’,16)
title(’单个点电荷的电场线与等势线’,’fontsize’,20)
%平面等势线的画法
k=9e9;
r0=0.1;
u0=k*q/r0;
u=linspace(1,3,7)*u0;
x=linspace(—r0,r0,100);
[X,Y]=meshgrid(x);
r=sqrt(X.^2+Y。
^2);
U=k*q。
/r;
holdon;
contour(X,Y,U,u)
clear;
点电荷的立体电力线和等势面
◆立体电力线的画法
先形成三维单位球面坐标,绕z轴一周有8条电力线[X,Y,Z]=sphere(8),每维都是9×9的网格矩阵,将X化为行向量,就形成各条电力线的终点x坐标x=r0=X(:
)′,其他两个坐标也可同样形成终点坐标y=r0+Y(:
)',z=r0+Z(:
)'.对x坐标插入原点x=[x(zeros(size(x))],其他两个坐标如下形成y=[y(zeros(size(y))],z=[z(zeros(size(z))],用三维画线命令plot3(x,y,z),就画出所有电力线。
◆立体等势面的画法
画5条等势面时,各面的电势为u=linspace(1,3,5)+u0,各等势面的半径为r=k6q./u,其中第一个球面的半径为rr=r
(1)。
三维单位球面的坐标可由[X,Y,Z]=sphere命令形成,每维都是21×21的网格矩阵,由于外球会包围内球,因此把球面的四分之一设为非数,表示割去该部分Z(X<0&Y<0)=nan.用曲面命令可画出第一个曲面surf(rr6X,rr6Y,rr6Z),只要取不同的半径就能画出不同的等势面。
为了使等势面好看,可设置一个颜色浓淡连续变化的命令shadinginterp。
点电荷的立体电力线和等势面如图2,旋转图片可从不同的角度观察。
图2
源程序:
%立体电力线的画法
q=1e—9;
[X,Y,Z]=sphere(8);
r0=0。
18;
r1=0。
2;
k=9e9;
u0=k*q/r0;
x=r1*X(:
)’;
y=r1*Y(:
)’;
z=r1*Z(:
)';
x=[x;zeros(size(x))];
y=[y;zeros(size(y))];
z=[z;zeros(size(z))];
plot3(x,y,z)
holdon;
%立体等势线之画法
u=linspace(1,3,5)*u0;%画5条等势面时,各面的电势为u=linspace(1,3,5)+u0,
r=k*q。
/u;%各等势面的半径为r=k6q./u
[X,Y,Z]=sphere;
Z(X〈0&Y<0)=nan;
surf(r
(1)*X,r
(1)*Y,r
(1)*Z);%第一到第五个球面
surf(r
(2)*X,r
(2)*Y,r
(2)*Z);
surf(r(3)*X,r(3)*Y,r(3)*Z);
surf(r(4)*X,r(4)*Y,r(4)*Z);
surf(r(5)*X,r(5)*Y,r(5)*Z);
shadinginterp%个颜色浓淡连续变化的命令shadinginterp.
xlabel('x’,’fontsize',16);
ylabel('y’,'fontsize’,16);
zlabel(’z','fontsize’,16);
title(’正电荷电场线等势面的三维图形',’fontsize',20);
clear;
2.一对点电荷
◆平面等势线的画法
仍然用MATLAB的等高线命令画等势线。
对于正负两个点电荷,电量不妨分别取q1=2e—9,q2=-1e-9,正电荷在x轴正方,负电荷在x轴负方,它们到原点的距离定为a=0。
02;假设平面范围为xx0=0.05,yy0=0.04,两个坐标向量分别x=linspace(-xx0,xx0,20)和y=linspace(-yy0,yy0,50)。
设置平面网格坐标为[X,Y]=meshgrid(x),各点到两电荷的距离分别为r1=sqrt((X-a)。
^2+Y.^2)和r2=sqrt((X+a)。
^2+Y。
^2)。
各点的电势为U=k6q1./r1+k6q2./r2,取最高电势为u0=50,最低电势取其负值。
在两者之间取11个电势向量u=linspace(u0,-u0,11),等高线命令contour(X,Y,U,u,'k—')用黑实线,画出等势线如图2所示,其中,左边从里到外的第6条包围负电荷的等势线为零势线。
◆平面电力线的画法
利用MATLAB的箭头命令,可用各点的电场强度方向代替电力线。
根据梯度可求各点的场强的两个分量[Ex,Ey]=gradient(-U),合场强为E=sqrt(Ex。
^2+Ey.^2).为了使箭头等长,将场强Ex=Ex./E,Ey=Ey./E归一化,用箭头命令quiver(X,Y,Ex,Ey)可标出各网点的电场强度的方向,异号点电荷对的场点方向如图3所示。
为了画出连续的电力线,先确定电力线的起点。
电荷的半径可取为r0=0.002,如图4所示,假设第一条电力线的起始角为30度,其弧度为q=30+pi/180,起始点到第一个点电荷的坐标为x1=r0+cos(q),y=r0+sin(q),到第二个点电荷的坐标只有横坐标x2=2+a+x1不同。
用前面的方法可求出该点到两个电荷之间的距离r1和r2,从而计算场强的两个分量以及总场强Ex=q1+x1/r1^3+q2+x2/r2^3,Ey=q1+y/r1^3+q2+y/r2^3,E=sqrt(Ex6Ex+Ey6Ey)。
下面只要用到场强分量与总场强的比值,在计算场强分量时没有乘以静电力常量k.由于电力线的方向与场强的切线方向相同,取线段为s=0.0001,由此可求出终点的坐标为x1=x1+s#Ex/E,y=y+s+Ey/E,从而计算x2。
以终点为新的起点就能计算其他终点。
当终点出界时或者到达另一点电荷时,这个终点可作为最后终点.这种计算电力线的方法称为切线法。
源程序:
%一对电荷平面等势线和电场线图
clearall;
clf;
%平面等势线的画法
q1=2e-9;
q2=-1e-9;
a=0.02;%到原点的距离
xx0=0.05;
yy0=0.04;
k=9e9;
x=linspace(-xx0,xx0,20);
y=linspace(—yy0,yy0,50);
[X,Y]=meshgrid(x);
r11=sqrt((xx0/1。
7-a)^2+(yy0/1.7)^2);
r22=sqrt((xx0/1。
7+a)^2+(yy0/1.7)^2);
r1=sqrt((X-a)。
^2+Y.^2);%各点到点电荷的距离
r2=sqrt((X+a)。
^2+Y。
^2);
U=k*q1。
/r1+k*q2。
/r2;%各点的电势
u0=k*q1/r11+k*q2/r22;
u=linspace(u0,-u0,11);%取21个等势向量
contour(X,Y,U,u,’k—’);
holdon
gridon
plot(a,0,'o’,’MarkerSize',12);
plot(-a,0,'o',’MarkerSize',12);
xlabel('x','fontsize’,16);
ylabel('y','fontsize’,16);
%平面电力线的画法
[Ex,Ey]=gradient(—U);
E=sqrt(Ex.^2+Ey.^2);
Ex=Ex./E;
Ey=Ey。
/E;
holdon;
quiver(X,Y,Ex,Ey);
title(’一对不相等的电荷的等势线图和电场线图’,’fontsize',20)
clear;
图3
源程序:
%一对电荷平面等势线和电场线图
clearall;
clf;
%平面等势线的画法
q1=1;
q2=1;
a=0。
02;
xx0=0。
05;
yy0=0。
04;
k=9e9;
x=linspace(-xx0,xx0,20);
y=linspace(-yy0,yy0,50);
[X,Y]=meshgrid(x);
r11=sqrt((xx0/1。
7—a)^2+(yy0/1。
7)^2);
r22=sqrt((xx0/1。
7+a)^2+(yy0/1.7)^2);
r1=sqrt((X-a)。
^2+Y.^2);
r2=sqrt((X+a)。
^2+Y.^2);
U=k*q1./r1+k*q2./r2;
u0=k*q1/r11+k*q2/r22;
u=linspace(u0,—u0,11);
contour(X,Y,U,u,'k-’);
holdon
%平面电力线的画法
[Ex,Ey]=gradient(—U);
E=sqrt(Ex。
^2+Ey。
^2);
Ex=Ex。
/E;
Ey=Ey。
/E;
dth1=20;
th1=(dth1:
dth1:
180—dth1)*pi/180;
r0=a/5;
x1=r0*cos(th1)+a;
y1=r0*sin(th1);
streamline(X,Y,Ex,Ey,x1,y1);
streamline(—X,-Y,—Ex,-Ey,x1,-y1);
q=abs(q1/q2);
dth2=dth1/q;
th2=(180—dth2:
—dth2:
dth2)*pi/180;
x2=r0*cos(th2)—a;
y2=r0*sin(th2);
streamline(X,Y,Ex,Ey,x2,y2);
streamline(X,-Y,Ex,—Ey,x2,—y2);
gridon
plot(a,0,'o’,'MarkerSize’,12);
plot(-a,0,'o','MarkerSize',12);
xlabel('x',’fontsize',16);
ylabel('y',’fontsize’,16);
title(’一对点电荷的电场分布图’);
clear;
图4
图5
四.实验心得
本次电磁场实验是利用Matlab模拟点电荷电场的分布,刚收到实验指导书时,并不知道该怎么做,由于我们并没有正式学过Matlab,只是在部分课程如信号,自控等课上对该软件有所接触。
接到实验指导书后,我去图书馆借阅了有关Matlab基础的书籍,了解了其中基础部分以及和实验有关的部分,并在网上搜约了相关资料,最后在同组同学的努力以及老师的指导下终于成功完成了实验。
通过这次试验,我了解了Matlab的基本操作以及其中部分函数的应用,学会用利用Matlab模拟点电荷电场的分布。
另外,我还体会到自学的重要性,大学有很多东西需要自学,只有通过自学更多的知识才能更好的应用所学的课程。
电磁场理论实验二
-利用Matlab模拟带电粒子在磁场中的运动
一.实验目的:
(1)理解数值模拟研究物理问题的思路,能独立地运用此方法研究物理问题,掌握数值模拟的编程。
(2)运用Matlab数值模拟的方法研究三维空间中带电粒子在复杂磁场环境下的运动行为。
3.实验原理:
带电粒子在磁场中运动时会受到洛伦兹力的作用,且随着初始运动方向和磁场分布的不同,其运动轨迹会发生不同的变化.
由洛伦兹力的推导公式可知,它垂直于粒子的运动速度,不对运动粒子作功,只改变其运动方向,其大小为:
;
因此,综合牛顿运动定律就可以精确确定带电粒子在磁场中的运动轨迹.
4.实验内容:
1.用Matlab数值模拟的方法模拟带电粒子在恒定磁场中的螺旋运动,即带电粒子进入磁场的方向与磁场方向的角度()。
2.用Matlab数值模拟的方法模拟磁聚焦现象,即在均匀磁场中某点引入一发散角不大的带电粒子束,并使束中粒子的速度v大致相同。
3.有兴趣的同学可以尝试模拟磁镜现象,即从带电粒子束进入方向,磁场逐渐增强.
5.实验步骤:
(一)
1)带电粒子在均匀稳定电磁场中受力分析:
2)带电粒子在均匀稳定电磁场中的运动微分方程为:
可将上式分解在直角坐标系展成标量式:
令,,
则化简为:
令
则得出可以用MATLAB数值积分的一次微分方程组:
3)根据上述方程进行MATLAB编程:
建立微分方程函数:
%实验微分方程电磁场中带电粒子
functionydot=mf1(t,y,flag,q,m,b1,b2,b3)
ydot=[y
(2);
q*b3*y(4)/m-q*b2*y(6)/m;
y(4);
-q*b3*y
(2)/m+q*b1*y(6)/m;
y(6);
+q*b2*y
(2)/m-q*b1*y(4)/m];
设置各参数的初值,并在commandwindows中输入相关命令,
B1=0;
B2=0;
B3=2;
c=[0,5,0,9,0,8];
q=1.6e—2;m=0.02
figure
strd{1}='E(x)\neq1,E(y)\neq1,E(z)\neq1,B(x)\neqo,B(y)\neqo,B(z)\neq1’;
[t,y]=ode23(’mf1',[0:
0。
001:
20],c,[],q,m,B1,B2,B3);
title(strd{1},’fontsize',12,’fontweight’,'demi’);
xlabel(’x’);ylabel('y');zlabel('z’);
view([-51,18]);
comet3(y(:
,1),y(:
,3),y(:
,5));
plot3(y(:
1),y(:
,3),y(:
5));
gridon
程序中利用了ode23求解数值微分,事实上,如果利用符号积分计算运动轨迹,由于计算机速度的限制,得不到结果。
利用comet3绘制3-D动态图,利用plot3绘制3—D静止图.
实验结果如图:
(二)
一个带电粒子进入磁场时速度的方向不与磁场垂直,则可将入射速度分解为沿着磁场方向的速度v1和垂直磁场的速度v2。
在垂直磁场方向,由于粒子受到洛伦兹力的作用,做圆周运动,运动周期为,粒子平行于磁场方向的分速度不受磁场的影响,因而将具有沿磁场方向的匀速运动。
上述两种运动的合成是一个沿磁场方向的螺旋运动,这一螺旋轨迹的螺距为h=v1*T。
如果在均匀磁场中某点引入一发散角不太大的带电粒子束,其中粒子的速度又大致相同;则这些粒子沿磁场方向的分速度大小就几乎一样,因而其轨迹有相同的螺距.这样,经过一个周期后,这些粒子将重新会聚到另一点,这种现象叫做磁聚焦。
编写如下Matlab程序来验证这个现象。
t=0:
0.01:
2*pi;al=0。
5。
*(t-pi);
forthe=[—16:
2:
10]*pi/180;
axis([07—11-0.40。
4]);gridon;view(12,18);holdon;
comet3(cos(the).*t,2*sin(the).*cos(al)。
^2,2*sin(the)。
*cos(al).*sin(al));end
程序中默认粒子入射速度相同。
运行结果是一束带电粒子做螺旋运动的三维动画,我们可以从不同的视角进行观察,并可发现当发散角不大时粒子确实会聚到同一点。
(三)
对于实验提高部分,由于时间,水平有限,没有观测到磁镜现象,仅得到如下图所示半径逐渐变小的运动轨迹:
6.实验心得
这次试验是电磁场的第二次试验-—利用Matlab模拟带电粒子在磁场中的运动。
刚接到实验指导书时,必不知道从何下手,通过在图书馆和网上的找来资料,以及和同组同学的讨论,我们开始着手这次试验.由于有了上次试验的经历,我们在做这个实验时,并没有像上次那样无从下手,但毕竟这次实验内容和上次大不相同,而且我们并没有正式学过Matlab,不过最后我们还是顺利完成了这次试验任务。
通过这次试验让我更实习了Matlab软件的使用,加深了对电磁场这门课程的学习,同时让我认识到了自己不会还需要学习的东西还有很多很多。
在今后的学习了,我会更加努力.