您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页MATLAB语言课程论文基于MATLAB的电磁场数值图像分析

MATLAB语言课程论文基于MATLAB的电磁场数值图像分析

来源:五一七教育网
基于MATLAB的电磁场数值分析应用

[摘要] MATLAB使用计算机进行电磁场数值分析已成为电磁场的工程开发、科研和教学的

重要手段。编程实现从电磁场微分方程到有限元求解全过程需要很好的理论基础和编程技巧,难度较高。该文介绍了电磁场数值分析的基本理论并通过几个实例介绍了使用MATLAB 实现电磁场偏微分方程的有限元解法。 实验结果表明这一方法具有操作简单明了!运算速度快,计算误差可控制等优点

[关键词 电磁场数值分析 MATLAB 麦克斯韦方程

一、问题的提出

电磁学是物理学的一个分支,是研究电场和电磁的相互作用现象。电磁学从原来互相的两门科学(电学、磁学)发展成为物理学中一个完整的分支学科,主要是基于电流的磁效应和变化的磁场的电效应的发现。这两个实验现象,加上麦克斯韦关于变化电场产生磁场的假设,奠定了电磁学的整个理论体系,发展了对现代文明起重大影响的电工和电子技术。

针对电磁场学习理论性强、概念抽象等特点,利用Matlab强大的数值计算和图形技术,通过具体实例进行仿真,绘制相应的图形,使其形象化,便于对其的理解和掌握。将Matlab引入电磁学中,利用其可视化功能对电磁学实验现象进行计算机模拟,可以提高学习效率于学习积极性,使学习效果明显。

通过Matlab软件工具,对点电荷电场、线电荷产生的电位、平面上N个电荷之间的库仑引力、仿真电荷在变化磁场中的运动等问题分别给出了直观形象的的仿真图和数值分析,形实现了可视化学习,丰富了学习内容,提高了对电磁场理论知识的兴趣。从而更好地解决电磁场中数值分析的问题。

二、电磁场数值解法

麦克斯韦方程组是电磁场理论的基础,也是电磁场数值分析的出发点。它的微分形式方程:

.

HJcBtDtEB0

D (1)

式中磁场强度电通密度电场强度磁感应强度。电磁场中各种场量之间的关系由媒质的特性确定。在各向同性媒质中,由下列结构方程组确定

DEBH

JE (2)

为获得电磁场问题的唯一解!除上述方程组之外尚需给出定解条件,对静态场和稳态场只需加边界条件,对时变场还需另加初始条件。边界条件包括: (1)第一类边界条件是给定边界上的值,其中是边界点的函数或常数; (2)第二类边界条件给定边界上法向导数的值;

(3)第三类边界条件给定边界值与法向导数的线性组合

n

fPfP12 (3)

根据麦克斯韦方程组和结构方程组!在静电场中,以电位 为求解对象,在各向

同性介质中,电位满足泊松方程:

22 (4)

在恒定磁场中,取矢量磁位为求解对象,令有

AJc2 (5)

考虑电磁波动方程:

E0tHH0t (6)

2E2222在正弦稳态条件下,上式可分别导出亥姆霍兹方程:

.

EE0H0 (7)

H2222如上述几个例子,对于不同的电磁场实际应用问题求解可以得到对应的电磁场偏微分方程,直接用解析法求解这些方程组往往会遇到很多困难甚至无法求解,电磁场数值分析方法已成为求解电磁场问题的重要方法。

数值分析方法将原来连续的场域离散化求解, 再用离散点的结果近似逼近连续场域的解&常用的电磁场数值分析方法包括有限差分法、边界元法和有限元法。 有限差分法是以差分原理为基础的一种数值计算方法,即用差分方程代替偏微分方程,把要求解的边值问题转化为一组相应的差分问题,将求解区域划分,求解差分方程组从而得出各网格单元的场值。

这种方法的特点是方法简单,网格划分容易,但对不规则边界处理不便,网格划分缺乏灵活性。边界元法以麦克斯韦积分方程为基础,它采用分步积分如格林定理等在一定条件下把该积分方程转化为关于边界的积分方程,并据此进行离散获得对应的代数方程!求出场域中变量的数值。 它的特点是将数值法与解析法相结合, 在数学上起到降维的作用,减少了计算量,但对非线性情况失去了高精度特点,有局限性。

有限元法由于单元定义灵活,处理边界条件容易,具有正定对称系数矩阵而占据主导地位&有限元法是根据变分原理和离散化而取得近似解的方法。是先从偏微分方程边值问题出发,找出一个能量泛函的积分式,并令其在满足第一类边界条件的前提下取极值,即构成条件变分问题& 例如与上式对应的二维泊松场第三类边界条件下的泛函极值问题为:

1Fs2x12dxdyf2y2'L2221f2dlmin

L2f0 (8)

与上式对应的亥姆霍兹方程泛函为:

F

12Dkdxdydl222L2n (9)

这个条件变分问题是和偏微分方程边值问题等价的。有限元法便是以条件

变分问题为对象来求解电磁场问题。在求解过程中,将场的求解区域剖分成有限个单元,因此在单元中构造出插值函数,将插值函数代入能量泛函的积分式,再把泛函离散化成多元函数。通过多元函数极值求极值方法得到一个代数方程组。最后由此方程组求解得到数值解。下面举几例论证: 例证1

设圆线圈的中心为O,半径为R,放置于y-z平面,线圈通过的电流为I0,如右图所示。用毕奥-萨伐尔定律计算载流圆线圈在z=0处x-y平面上的磁场分布。

解题分析

.

根据毕奥-萨伐尔定律,

dB04 (10) 线圈上任一点处的电流元在x-y平面上一点P产生的元磁场为dB。在编制程序时,将电流环分为N段,每一小段视为一电流元,然后求出每一电流元在观察点处的磁场分量,求出总磁场,最后叠加。 MATLAB程序如下:

clear all %清除

R=input('请输入圆环半径,R='); %定义输入变量 I0=input('请输入电流,I0='); %定义输出变量 mu0=4*pi*1e-7; C0=mu0/(4*pi); %归并常数 N=20; %电流环分段数 x=linspace(-3,3,N); y=x; %确定观测点范围 theta0=linspace(0,2*pi,N+1); %环的圆周角分段 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;

%计算环各段矢量中点的三个坐标分量xc,yc,zc dlx=0;dly=y2-y1;dlz=z2-z1;

%计算环各段矢量dl的三个长度分量,其中x1=x2=0。

NGx=N; NGy=NGx; %网格线数

for i=1:NGy %循环计算各网点上的B(x,y)值 for j=1:NGx

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; %计算r3

dlXr_x=dly.*rz-dlz.*ry; %计算叉乘dl×r的x和y分量,z分量为0 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; %计算B的大小 end end

subplot(1,2,1), quiver(x,y,Bx,By), %画矢量场图 hold on

plot(0,1,'ro',0,-1,'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]) %画磁场大小分布图

LIdlrr3.

xlabel('x'),ylabel('y'),zlabel('B')

运行该程序,例如,在命令窗中的R和I0的提示后分别键入1和100,运行结果如图1所示

图1 载流圆线圈的磁场分布度及位置曲线

例证2

一对相同的圆形线圈,彼此平行而共轴。设两线圈内的电流都是I,且回绕方向一致,线圈的半径为R,二者的间距为a(当a=R时,称为亥姆霍兹线圈),求轴线附近的磁场分布。

解题分析

本题是把观测区域取在两线圈之间的小范围内。线圈B生成的左边的磁场等于线圈A的左边磁场。因 此,A、B两线圈在中间部分的合成磁场等于A线圈的右磁场与其左磁场平移R后的和。 MATLAB程序如下:

clear all %清除

mu0=4*pi*1e-7;C0=mu0/(4*pi); %归并常数

I0=5.0;R=1; NGx=21;NGy=21; %设定网格线数

x=linspace(-1,1,NGx); %确定观测点范围

y=linspace(-1,1,NGy); N=20; %电流环分段数

.

theta0=linspace(0,2*pi,N+1); %环的圆周角分段 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 dlx=0;dly=y2-y1;dlz=z2-z1;

%计算环各段矢量dl的三个长度分量,其中x1=x2=0。 xc=0; yc=(y2+y1)/2; zc=(z2+z1)/2; for i=1:NGy for j=1:NGx

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; %计算叉乘dl×r的x和y分量,z分量为0

dlXr_y=dly.*rx-dlx.*rz;

Bx(i,j)=sum(C0*I0*dlXr_x./r3); %把环各段产生的磁场分量累加 By(i,j)=sum(C0*I0*dlXr_y./r3); end end

Bax=Bx(:,11:21)+Bx(:,1:11); %把x<0区域内的磁场平移,叠加到x>0区域

Bay=By(:,11:21)+By(:,1:11);

subplot(1,2,1),mesh(x(11:21),y,Bax);xlabel('x');ylabel('y');zlabel('B');

subplot(1,2,2),quiver(x,y,Bx,By,1.5), axis('square'),axis([-1,1,-1,1]),

xlabel('x');ylabel('y');

运行结果如图2所示。可以看出,在轴线附近磁场大小均匀且沿x方向。

.

图2 亥姆霍兹线圈轴线附近Bx在x-y平面上的分布及矢量场

例证3

设带电粒子质量为m,带电量为,电场强度E沿方向,磁感应强度B沿qyz方向. 则带电粒子在均匀电磁场中的运动微分方程为

qBqBxmvymyqqBqqBymEmvxmEmx (11)

z0令, 则上面微分方程可化作:

dy1dy2qBy2,y4dtdtmdy3dy4qqBy4,Ey2dtdtmmdy5dy6y6,0dtdt (12)

选择和为参量,就可以分别研究0≠E,0=B和,等情况. 编写MATLAB程序

如下:

clear %清除

syms w x y z t B E m q; %定义变量

E=input('E=');B=input('B='); %输入E和B值

[x,y,z]=dsolve('D2x=q*B/m*Dy','D2y=q*E/m-q*B/m*Dx','D2z=0','x(0)

=0','y(0)=0','z(0)=0','Dx(0)=0.01','Dy(0)=6','Dz(0)=0.01') ;

.

%初始条件取x(0)=y(0)=z(0)=0,Dx(0)=0.01,Dy(0)=6,Dz(0)=0.01 q=1.6e-2; m=0.02; %赋值

X=subs([x y z]); x=X(1),y=X(2),z=X(3), ezplot3(X(1),X(2),X(3)) %绘图函数调用

运行上述程序,例如,取E=4, B=8可得下列特解并给出图运行结果如图3所示。 研究时可以采用不同的初始条件和不同的参量观察不同的现象。运算特解如下:

x =

(t*exp(1))/8 - (100*i*exp(1) - 8*i + 4800)/(10240*exp((32*i*t)/5)) - (exp((32*i*t)/5)*(8*i - 100*i*exp(1) + 4800))/10240 + 15/16 y =

(5*exp(1))/256 + (i*(100*i*exp(1) - 8*i + 4800))/(10240*exp((32*i*t)/5)) - (i*exp((32*i*t)/5)*(8*i - 100*i*exp(1) + 4800))/10240 - 1/0 z = t/100

图3现有E=4, B=8参数运行结果

例证4

如右图所示,求垂直于无限长载流直导线的平面内磁感应强度的分布。

解题分析

.

设场点P的位置为x0iy0jz0k,电流元位置为xiyjzk,电流元矢量为

IdlI(dxidyjdzk)。由此,场点P相对于电流元的位置矢量为

r(x0x)i(y0y)j(z0z)k

i利用行列式计算Idl×r ,可写为 dlrdxx0xjdyy0ykdz z0z(13)

也可利用MATLAB中的det 命令函数来求该行列式,MATLAB程序如下:

syms dx dy dz x0 x y0 y z0 z; %定义变量 dl=[dx,dy,dz]; %定义行列式 r=[x0-x,y0-y, z0-z];

d1cr=cross(dl,r) %求dl×r的积

运行结果为

d1cr = [ dy*(z0-z)-dz*(y0-y), dz*(x0-x)-dx*(z0-z), dx*(y0-y)-dy*(x0-x)]

即dlr(z0z)dy(y0y)dzi(x0x)dz(z0z)dxj(y0y)dx(x0x)dyk 又,r的大小为 r(x0x)2(y0y)2(z0z)2 设载流导体通过坐标原点垂直于 x-y平面放置,电流元 Idl沿z轴正向,场点P位于x-y平面上。对本题目而言,dx=dy=0,x=y=0, z0=0, 矢量叉乘积为dlry0dzix0dzj,r的大小为 rx02y02z2

由毕奥-萨伐尔定律

Idlr dB4Lr3 (14)

0dBx Bx0Iy0dz0Ix0dzdB; y 22224(x0y0z2)3/24(x0y0z2)3/20I4y0dz0IB2223/2; y(x0y0z)4x0dz2223/2 (x0y0z)BBx2By2 (15)

MATLAB程序

1、 用符号运算求B的表达式

.

syms C0 I z x y r r0; %定义变量

Bx=C0.*I.*int(-y./(x.^2+y.^2+z.^2).^(3/2),'z',-inf,inf) By=C0.*I.*int(x./(x.^2+y.^2+z.^2).^(3/2),'z',-inf,inf) B=(Bx.^2+By.^2).^0.5

运行结果:

Bx =-2*C0*I*y/(x^2+y^2)^(3/2)/(1/(x^2+y^2))^(1/2) By =2*C0*I*x/(x^2+y^2)^(3/2)/(1/(x^2+y^2))^(1/2)

B =(4*C0^2*I^2*y^2/(x^2+y^2)^2+4*C0^2*I^2*x^2/(x^2+y^2)^2)^(1/2)

即 Bx0I2ydz;

4(x2y2)22xdzBy;

4(x2y2)20IB02I (16)

4x2y22、绘制磁场大小分布图和矢量场图

x=-0.5:0.05:0.5;y=x; %赋值 I=input('请输入电流I='); %设置输入 mu0=4*pi*1e-7; C0=mu0/(4*pi); %设置函数 [X,Y]=meshgrid(x,y);

Bx =-2.*C0.*I.*Y./(X.^2+Y.^2).^(3./2.)./(1./(X.^2+Y.^2)).^(1./2); By =2.*C0.*I.*X./(X.^2+Y.^2).^(3./2)./(1./(X.^2+Y.^2)).^(1./2); B=(4.*C0.^2.*I.^2.*Y.^2./(X.^2+Y.^2).^2+4.*C0.^2.*I.^2.*X.^2./(X.^2+Y.^2).^2).^(1./2);

subplot(1,2,1) %选择1×2区域中的1号区

quiver(X,Y,Bx,By,2), axis([-0.5,0.5,-0.5,0.5]), axis('square'), subplot(1,2,2) %选择1×2区域中的2号区 mesh(X,Y,B) %绘图

运行该程序,在命令窗中的提示后键入I0值 (例如,取I0=100A),便得到图4所示图形。

.

图4长载流导线的磁场在x-y平面上的分布

三、结论

从以上利用MATLAB语言对几种电磁场模型的分析我们不难的出以下结论: 电磁场与电磁波理论作为电子信息类专业的一门重要基础课程,该课程的特点 是:一是理论性强,课程中涉及许多高等数学方面的计算,特别是需要应用矢量分析和微分方程,致使电磁场问题的求解十分复杂;二是理论模型抽象,各种电磁场与电磁波现象都具有复杂的空间分布,而电磁场与电磁波又都具有不可见和不可触摸的特性,只能进行抽象的想象或通过仪器进行数据测量;三是电磁波是动态的,电磁波是电磁场相互激发的结果,可以通过麦克斯韦方程和边界条件来定量描述,它在空间的传播每时每刻的位置和状态都在发生变化。

四、课程体会

通过在本次写论文的过程中,我受益匪浅。在我选择MATLAB论文的题目的过程中,我通过查找大量的资料,发现MATLAB涉及的范围非常的大,例如在物理学中、电磁学中、线性代数等中的应用,认识到MATLAB对我们是如此的实用。其次,在初学习的MATLAB的时候,觉得它和我们大一第一学期学的C语言有很多相似之处,在老师讲的过程中,我争取好好的听每一节课,每次在实验课上我也认真的做好每一个实验的题目,每次在程序结果运行出来的时候,我觉得特有成就感,同时我感觉到了MATLAB强大功能。

.

经过一学期紧张而有序的课程学习,在忙碌之余也得到了颇多的收获。我深深体会到MATLAB语言相对于同类程序语言更方便更简洁易懂。利用Matlab 可以设计大量仿真实验,把理论学习和仿真实验教学有效结合起来,加深了对理论学习的理解,自己动手利用MATLAB 解决电磁场与电磁波一些实际问题,这也是培养了我们综合素质。 [参考文献]

[1] 刘卫国.MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006.

[2] 马文蔚.物理学(中册)(第四版)[M],北京:高等教育出版社,1999.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务