Matlab 在电磁场中的应用.docx
《Matlab 在电磁场中的应用.docx》由会员分享,可在线阅读,更多相关《Matlab 在电磁场中的应用.docx(13页珍藏版)》请在冰豆网上搜索。
Matlab在电磁场中的应用
西安理工大学
工程物理课程研究报告
课程名称:
任课教师:
报告题目:
完成日期:
学号:
姓名:
Matlab在电磁场中的应用
指导教师:
专业名称:
学生名称:
摘要
Matlab是美国Mathworks公司于80年代推出的大型数学软件,通过多年的升级换代,现在已发展成为集数值计算、符号计算、可视化功能以及诸多的工具箱为一体的大型科学计算软件,它已广泛应用于科研院所、工程技术等各个部门,并成为大学生、研究生必备的工具软件。
电磁学是物理学的一个分支,是研究电场和电磁的相互作用现象。
电磁学从原来互相独立的两门科学(电学、磁学)发展成为物理学中一个完整的分支学科,主要是基于电流的磁效应和变化的磁场的电效应的发现。
这两个实验现象,加上麦克斯韦关于变化电场产生磁场的假设,奠定了电磁学的整个理论体系,发展了对现代文明起重大影响的电工和电子技术。
针对电磁场学习理论性强、概念抽象等特点,利用Matlab强大的数值计算和图形技术,通过具体实例进行仿真,绘制相应的图形,使其形象化,便于对其的理解和掌握。
将Matlab引入电磁学中,利用其可视化功能对电磁学实验现象进行计算机模拟,可以提高学习效率于学习积极性,使学习效果明显。
本文通过Matlab软件工具,对点电荷电场、线电荷产生的电位、平面上N个电荷之间的库仑引力、仿真电荷在变化磁场中的运动等问题分别给出了直观形象的的仿真图,形实现了可视化学习,丰富了学习内容,提高了对电磁场理论知识的兴趣。
关键词:
Matlab电磁学仿真计算机模拟
一、点电荷电场
问题描述:
真空中,两个带正电的点电荷,在电量相同和电量不同情况下的电场分布。
根据电学知识,若电荷在空间激发的电势分布为V,则电场强度等于电势梯度的负值,即:
根据题意,真空中若以无穷远为电势零点,则在两个点电荷的电场中,空间的电势分布为:
程序实现:
clearall
ep0=8.85*1e-12;
c0=1/(4*pi*ep0);
e=1.60e-10;
h=0.018;
x=-0.5:
h:
0.5;
y=-0.5:
h:
0.5;
[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)
contour(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]);
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.212,0,'+','fontsize',20);
text(0.187,0,'+','fontsize',20);
end
图1-1两个同号等量电荷的电场分布图1-2两个同号不等量电荷的电场分布
二、线电荷产生的电位
设电荷均匀分布在从z=-L到z=L,通过原点的线段上,其密度为q(单位C/m),求在xy平面上的电位分布。
点电荷产生的电位可表示为
是一个标量。
其中r为电荷到测量点的距离。
线电荷所产生的电位可用积分或叠加的方法来求。
为此把线电荷分为N段,每段长为dL。
每段上电荷为q*dL,看作集中在中点的点电荷,它产生的电位为
然后对全部电荷求和即可。
把xy平面分成网格,因为xy平面上的电位仅取决于离原点的垂直距离R,所以可以省略一维,只取R为自变量。
把R从0到10米分成Nr+1点,对每一点计算其电位。
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),grad
输入:
线电荷长度L=:
5
分段数N=:
50
分段数Nr=:
50
电荷密度q=:
1
可得最大值和最小值为:
ans=
1.0e+010*[9.31990.8654]
图(2-1)线电荷产生的静电位分布图
三、平面上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
本程序注意学会循环提示并输入参数的方法,以及用双循环解决较复杂的计算过程的编程问题。
输入已知条件:
输入电荷数目N=3
-------对电荷#1
输入电荷位置[x,y](m):
[12]
输入电荷量(库仑):
2
-------对电荷#2
输入电荷位置[x,y](m):
[11]
输入电荷量(库仑):
1
-------对电荷#3
输入电荷位置[x,y](m):
[33]
输入电荷量(库仑):
3
计算结果:
其它电荷作用在#1上的合力为:
X-分量为:
-9.65102e+009N
Y-分量为1.31581e+010
其它电荷作用在#2上的合力为:
X-分量为:
-2.38431e+009N
Y-分量为-2.03679e+010
其它电荷作用在#3上的合力为:
X-分量为:
1.20353e+010N
Y-分量为7.20982e+009
四、利用matlab软件仿真电荷在变化磁场中的运动
程序一
%电荷在非均匀磁场中的运动
v=10;sita=pi/6;%设定带电粒子的初速度及入射角
v=v*cos(sita);
u=v*sin(sita);%计算x,y方向的初速度
w=0;
[t,y]=ode23('yy',[0:
0.002:
2],[0,v,0,u,0,w]);%求解名为“yy”的微分方程组
figure%描绘运动轨迹
plot(t,y(:
1));%绘制一般二维曲线
%comet(t,y(:
1));%绘制二维动态曲线
xlabel('t');ylabel('x');
figure
plot(t,y(:
3));
%comet(t,y(:
3));
xlabel('t');ylabel('y');
figure
plot(t,y(:
5));
%comet(t,y(:
5));
xlabel('t');ylabel('z');
figure
plot(y(:
3),y(:
5));
%comet(y(:
3),y(:
5));
xlabel('y');ylabel('z');
figure
plot3(y(:
1),y(:
3),y(:
5))%绘制一般三维曲线图
%comet3(y(:
1),y(:
3),y(:
5))%绘制三维动态轨迹
xlabel('x');ylabe('y');zlabel('z');
%电荷在非均匀磁场中运动的微分方程
functionf=yy(t,y);
globalA;%定义全局变量
A=100;%设定qB0/m
f=[y
(2);0;y(4);A*y(6)*y
(1);y(6);-A*y(4)*y
(1)];%写入微分方程
截图
图(4-1)电荷在x轴上运动轨迹
图(4-2)电荷在y轴上的运动轨迹
图(4-3)电荷在z轴上的运动轨迹
图(4-4)电荷在yz平面上的运动轨迹
图(4-5)电荷在三维空间中的运动轨
结论
通过以上学习可以看下出,利用Matlab强大的计算与图像功能模拟各类物理场的实验是成功的。
用Matlab可以解决除上述问题以外,还可以解决两根载流长直导线的磁场问题,大地中的电流问题,自由空间电磁波传播过程问题以及电磁场中梯度、散度、旋度问题等诸多问题。
该方法不仅为学习大学物理中电磁场等课程提供了良好的辅助手段,同时在科研当中为相关电磁场问题的设计分析开辟了另一条途径。
因此,将Matlab工具引入计算机模拟是可行和有必要的,而且具有良好的应用前景。
参考文献:
[1]刘群英,《Matlab在大学物理电磁场中的应用》,渝西学院学报,2005,P19
[2]王明军李应乐唐静,《MATLAB在电磁场与电磁波课程教学中的应用》,咸阳师范学院学报,2009,P89
[3]邵小桃郭勇李一玫,《电磁场与电磁波课程的Matlab辅助教学》,电气电子教学学报,2009,P111
[4]、冯慈璋,《电磁场》,高等教育出版社,1983,P1-23
[5]、李人厚张平安,《精通MATLAB综合辅导与指南》,西安交通大学,1997,P1-20
[6]、谢处方饶克瑾,《电磁场与电磁波》,人民教育出版社,1979,P35-36
[7]、XX百科2011年6月9日访问