电磁场的Matlab仿真
电磁场的Matlab仿真.
Matlab 与电磁场模拟一单电荷的场分布:单电荷的外部电位计算公式:qφ=4πε0r等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向外辐射的线。
MATLAB 程序:theta=[0:.01:2*pi]'; r=0:10;x=sin(theta*r; y=cos(theta*r; plot(x,y,'b' x=linspace(-5,5,100; for theta=[-pi/4 0 pi/4] y=x*tan(theta; hold on ; plot(x,y; end grid on单电荷的等位线和电力线分布图:二多个点电荷的电场情况:模拟一对同号点电荷的静电场设有两个同号点电荷, 其带电量分别为 +Q1和+Q2(Q1、Q2>0 距离为 2a 则两电荷在点P(x, y处产生的电势为:由电场强度可得E = -∇U, 在xOy 平面上, 电场强度的公式为:为了简单起见, 对电势U 做如下变换:。
Matlab 程序:q=1; 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 onlegend(num2str(u' hold onplot([-xm;xm],[0;0] plot([0;0],[-ym;ym]plot(-1,0,'o' , 'MarkerSize' ,12 plot(1,0,'o' , 'MarkerSize' ,12 [DX,DY] = gradient(U; quiver(X,Y,-DX,-DY; surf(X,Y,U;同号电荷的静电场图像为:50403020100-22同理,将程序稍作修改,便可以得到异号电荷的静电场图像:403020100-10-20-30-4022.5三、线电荷产生的电位:设电荷均匀分布在从z=-L到z=L,通过原点的线段上,其密度为q(单位C/m,求在xy 平面上的电位分布。
华科电磁场matlab仿真作业
电磁场作业电气1202 XXX U201200000一.作业一1.程序框图2.程序clear;col = 61; %第一行点数row = col; %行数span = 0.3/(col-1); %步长End = ones(1,col)*col; %每一行的终止点Start = ones(1,col); %每一行的起始点A = zeros(row,col); %A矩正存储每点电势for i = (col-1)/3+1:(col-1)*2/3+1for j = (col-1)/3+1:(col-1)*2/3+1A(i,j) =100;endend %初始化电势完毕temp = A;for n= 1:500 %迭代次数for i = 2:row-1if ( i<((col-1)/3+1)||i>( (col-1)*2/3+1 ) )for j = Start(i)+1:End(i)-1temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endelsefor j = 2:(col-1)/3temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endfor j = 2*(col-1)/3+2:col-1temp(i,j)=(A(i-1,j) +A(i+1,j) +A(i,j-1) +A(i,j+1))/4;endendA = temp;endendX = row:-1:1;Y = col:-1:1;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,2));figure(2);contour(rot90(A,2));hold on;[Gx,Gy] = gradient(A,1,1);quiver(Gx,Gy);3.计算机绘图二.作业二1.程序框图2.程序100V0Vclear;col=101;row=101;A=zeros(row,col);for i=11:101A(i,11)=100;endfor j=11:101A(11,j)=100;endfor i=2:10A(i,col)=10*i-10;endfor j=2:10A(row,j)=10*j-10;endA1=A;x=1;t=0;while x>0.1x=0;for i=2:100for j=2:100if (i>1&&i<11)||(j>1&&j<11)A1(i,j)=(A(i,j-1)+A(i,j+1)+A(i-1,j)+A(i+1,j))/4;t=abs(A(i,j)-A1(i,j));if (t>x)x=t;endendendendA=A1;endX = 1:1:row;Y = 1:1:col;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,4));figure(2);contour(rot90(A,4));hold on;[Gx,Gy] = gradient(A,1,1);quiver(Gx,Gy);3.计算机绘图三.作业三1.程序框图2.程序clear;N = 41; %第一行点数h = 0.2/(N-1); %步长row = (N+1)/2; %行数E = N:-1:N-row+1;%每一行的终止点S = 1:1:N-row+1;%每一行的起始点A = zeros(row,N); %A矩阵存储每点电势A(1,:)=ones(1,E(1))*100; %初始化电势for i = 1:rowA(i,S(i)) = 0;A(i,E(i)) = 0;end %初始化电势完毕temp = A;for n= 1:600 %迭代次数for i = 2:rowfor j = S(i):E(i)if j ==S(i) || j==E(i)temp(i,j)=0;elsetemp(i,j)=(3*A(i-1,j) +3*A(i+1,j) +A(i,j-1) +A(i,j+1))/8;endendendA = temp;endX = row:-1:1;Y = N:-1:1;[X,Y] = meshgrid(X,Y);figure(1);surf(rot90(A,2));figure(2);contour(rot90(A,2));3.计算机绘图。
matlab模拟的电磁学数值技术代码
一、概述电磁学作为物理学的一个重要分支,其研究对象涉及电场、磁场和电磁波等内容。
在现代科学技术的发展中,电磁学的应用范围愈发广泛,然而电磁学问题的解决往往需要大量的数值计算和模拟。
其中,利用Matlab等软件进行电磁学数值模拟已经成为一种常见的技术手段。
本文将从电磁学数值模拟的原理、技术和代码编写等方面展开探讨。
二、电磁学数值模拟的原理电磁学数值模拟是利用计算机对电磁学问题进行模拟和计算。
其原理是基于Maxwell方程组进行离散化处理,将连续性的数学模型转化为适合计算机处理的离散模型,然后通过数值算法求解相关方程,得到电磁场的分布情况。
常见的数值算法包括有限差分法、有限元法、边界元法等。
这些数值算法的选择和设计对于模拟结果的精确性和计算效率具有重要影响。
三、电磁学数值模拟的技术1. 有限差分法有限差分法是一种常见的电磁学数值模拟技术,其基本思想是将空间连续的电磁场分布离散化为有限个点,并通过有限差分近似求解Maxwell方程组。
有限差分法主要包括差分格式的选取、边界条件的处理和数值稳定性的分析等内容。
在Matlab中,可以通过编写相应的有限差分法程序来实现电磁场模拟。
2. 有限元法有限元法是另一种常用的数值模拟技术,其基本思想是将连续的电磁场分布离散化为有限个基函数的线性组合,并通过有限元插值和数值积分求解Maxwell方程组。
有限元法适用于比较复杂的几何结构和边界条件,能够精确地描述电磁场在非均匀介质中的分布情况。
3. 边界元法边界元法是一种基于格林函数的数值模拟技术,其基本思想是将电磁问题转化为边界积分方程,并利用格林函数求解边界上的电磁场分布。
边界元法对于处理边界条件和界面问题有独特优势,能够有效地模拟电磁场在复杂边界下的分布情况。
四、Matlab模拟的电磁学数值技术代码编写1. 有限差分法的Matlab编写在使用Matlab进行有限差分法的电磁学数值模拟时,首先需要确定问题的空间离散化和时间离散化等参数,然后编写相应的差分格式和边界条件处理程序。
电磁场matlab仿真实验
电磁场matlab 仿真实验一实验一:[例7-5]试分析一对等量异号的电荷周围空间上的电位和电场分布情况。
分析:将等量异号的电荷的几何中心放置于坐标原点位置,则它们在空间某点p 处产生的点位为:()G q g g q r r q r q r q02102102010*******πξπξπξπξπξϕ=-=⎪⎪⎭⎫ ⎝⎛-=-= 其中G 为格林函数 ()()22222cos 2/cos 2/1r dr d r r dr d r +-=+-=θθ 将G 用片面积坐标表示为⎪⎪⎭⎫ ⎝⎛=12ln g g G 在编程时,将G 当作点位函数处理,并利用梯度求出唱腔E=-▽φ。
用matlab 的m 语言编写的程序如下:[x,y]=meshgrid(-10:0.1:10);[Q,R]=cart2pol(x,y);R(R<=1)=NaN;q=input('请输入电偶极子的电量q =') %原程序有误,以此为准d=input('请输入电偶极子的间距d =') %原程序有误,以此为准E0=8.85*1e-12;K0=q/4/pi/E0;g1=sqrt((d./2).^2-d.*R.*cos(Q)+R.^2); %原程序有误,以此为准g2=sqrt((d./2).^2+d.*R.*cos(Q)+R.^2); %原程序有误,以此为准G=log(K0*g2./g1);contour(x,y,G,17,'g');hold on[ex,ey]=gradient(-G);tt=0:pi/10:2*pi; %原程序未定义tt ,以此为准sx=5*sin(tt);sy=5*cos(tt);streamline(x,y,ex,ey,sx,sy);xlabel('x');ylabel('y');hold off;当运行此程序后,按提示输入电偶极子电量和嗲耨集子间距如下:请输入电偶极子的电量q =0.5*1e-10请输入电偶极子的间距d =0.01即可汇出入图说使得嗲耨集资周围的长的分布图。
带电粒子在电磁场中运动的MATLAB仿真
目录第1章概述 (1)第2章MATLAB的基础知识 (2)2.1 MATLAB使用介绍 (2)2.2 MATLAB的基本知识 (2)2.3利用MATLAB作图 (5)第3章实验原理及仿真结果分析 (7)3.1 带电粒子在电磁场中运动的原理 (7)3.2 质量较大的带电微粒在复合场中的运动 (7)3.3 带电粒子垂直射入E和B正交的叠加场的运动分析 (8)3.4 实验内容 (8)第4章 MATLAB仿真的应用 (11)4.1 用MATLAB仿真带电粒子在磁场中运动的优点 (11)4.2 用MATLAB仿真在物理实验中的应用 (11)第5章总结 (12)参考文献 (13)附录 (14)第1章概述计算机数值模拟的研究方法已成为继实验研究和理论分析之外的第三种研究手段,在基础物理学习中适当引入计算机数值方法,有助于将一些高深的物理知识深入浅出、生动形象地学习。
随着计算机的普及,MATLAB在基础物理中的应用日益广泛。
MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30 多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB具有其他高级语言难以比拟的一些优点,如编写简单、编程效率高、易学易懂等,因此MATLAB 语言也被通俗地称为演算纸式科学算法语言。
在控制、通信、信号处理及科学计算等领域中,MATLAB 都被广泛地应用,已经被认为能够有效提高工作效率、改善设计手段的工具软件,掌握了MATLAB 好比掌握了开启这些专业领域大门的钥匙[1]。
带电体在复合场中运动的基本分析:这里所讲的复合场指电场、磁场和重力场并存, 或其中某两场并存, 或分区域存在, 带电体连续运动时, 一般须同时考虑电场力、洛仑兹力和重力的作用。
在不计粒子所受的重力的情况下,带电粒子只受电场和洛仑兹力的作用,粒子所受的合外力就是这两种力的合力,其运动加速度遵从牛顿第二定律。
MATLAB实验电磁实验仿真
实验四 电磁实验仿真 —点电荷电场分布的模拟一. 实验目的电磁场是一种看不见摸不着但又客观存在的物质,通过使用Matlab 仿真电磁场的空间分布可以帮助我们建立场的图景,加深对电磁理论的理解和掌握。
按照矢量分析,一个矢量场的空间分布可由其矢量线(也称力线)来形象表示。
点电荷的电场就是一个矢量场,模拟其电力线的分布可以得到电场的空间分布。
通过本次上机实验希望达到以下目的:1. 学会使用MATLAB 绘制电磁场力线图和矢量图的方法;2. 熟悉二维绘图函数contour 、quiver 的使用方法。
二. 实验原理根据库仑定律,真空中的一个点电荷q 激发的电场3r E q r=v v (高斯制) (1) 其中r 是观察点相对电荷的位置矢量。
考虑相距为d 的两个点电荷q 1和q 2,以它们的中点建立坐标(如图),根据叠加原理,q 1和q 2激发的电场为:12123312r r E q q r r =+v v v (2) 由于对称性,所有包含电荷的平面上,电场的分布一样,所以只需要考虑xy 平面上的电场分布,故121233331212(/2)(/2)ˆˆˆˆ()[]x y E E q x q x q y d q y d E j j r r r r i i -+==++++v (3)其中12 r r ==。
根据电动力学知识(参见谢处方,《电磁场与电磁波》,1.4.1节),电场矢量线(或电力线)满足微分方程: yx E dydx E = (4) 代入(3)式解得电力线满足的方程 1212(/2)(/2)q y d q y d r r C -++= (5) 其中C 是积分常数。
每一个C 值对应一根电力线。
电场的分布也可以由电势U 的梯度(gradient ,为矢量)的负值计算,根据电磁学知识,易知两点电荷q 1和q 2的电势1212q q U r r =+(6)那么电场为 E gradU U =-=-∇v (7)或者 ()(),x y x y E U E U =-∇=-∇ (8)在Matlab 中,提供了计算梯度的函数gradient()。
matlab电磁场仿真作业
matlab电磁场仿真作业一、介绍本文将介绍matlab电磁场仿真作业的相关知识和技巧。
电磁场仿真是指利用计算机模拟电磁场的分布和变化规律,以实现对电磁场问题的分析和解决。
matlab是一种强大的数学软件,可以用于各种科学计算、数据分析和图形处理等工作。
在电磁场仿真中,matlab具有良好的适用性和灵活性,可以方便地进行数据处理、可视化和模拟等操作。
二、基本概念1. 电磁场电磁场是指由带电粒子或导体所产生的物理现象,包括静电场、磁场和电磁波等。
在空间中,任何带有电荷或运动电荷的物体都会产生相应的电磁场。
2. 仿真仿真是指利用计算机模拟某个系统或过程的行为方式和结果。
在电磁场仿真中,可以通过建立数学模型来描述物理系统,并利用计算机进行计算和可视化。
3. 离散化离散化是指将连续变量转换为离散变量的过程。
在matlab中进行离散化操作可以将连续的电磁场分布转换为离散的数据点,以便进行计算和可视化。
三、matlab电磁场仿真的步骤1. 建立模型在进行电磁场仿真前,需要建立合适的模型来描述物理系统。
模型应该包括几何形状、物理特性和边界条件等信息。
可以使用matlab中的几何建模工具来创建三维模型,并定义相应的物理参数。
2. 离散化将连续的电磁场分布离散化为数据点。
可以使用matlab中的网格生成工具来生成离散化网格,并对网格进行调整以满足精度和计算效率要求。
3. 求解方程根据物理特性和边界条件,建立相应的方程组并求解。
常用的求解方法包括有限元法、有限差分法和边界元法等。
在matlab中,可以利用数值计算工具箱提供的函数来求解方程组。
4. 可视化将结果可视化以便于分析和展示。
可以使用matlab中强大的图形处理工具来生成二维或三维图像,并添加必要的标注和注释。
四、实例演示以下是一个简单的电磁场仿真实例,演示了如何在matlab中进行电磁场仿真。
1. 建立模型假设有一个长方体导体,其底面和侧面都被接地,导体顶部施加了一个电势差为V的电源。
MATLAB电磁场与微波技术仿真
精彩摘录
《MATLAB电磁场与微波技术仿真》精彩摘录
《MATLAB电磁场与微波技术仿真》这本书是学习电磁场与微波技术仿真的必 备教材,其中包含了许多精彩的摘录,让我们一起来欣赏一下。
书中提到了MATLAB在电磁场与微波技术仿真中的应用。摘录中写道: “MATLAB是一种功能强大的数值计算软件,广泛应用于电磁场与微波技术仿真。 它提供了丰富的函数库和工具箱,可以方便地实现各种复杂的电磁场和微波技术 问题的仿真。”这段摘录强调了MATLAB在电磁场与微波技术仿真中的重要地位, 为读者提供了学习的方向。
MATLAB电磁场与微波技术仿 真
读书笔记
01 思维导图
03 精彩摘录 05 目录分析
目录
02 内容摘要 04 阅读感受 06 作者简介
思维导图
本书关键字分析思维导图
电磁场
微波技术 matlab
详细 介绍
仿真
可以
matlab
仿真
电磁场 读者
分析
微波技术
进行
方面
内容
感兴趣
数据
非常
内容摘要
内容摘要
目录分析
《MATLAB电磁场与微波技术仿真》是一本深入浅出地介绍如何使用MATLAB进 行电磁场与微波技术仿真的书籍。该书不仅涵盖了电磁场与微波技术的基本原理, 而且通过大量的实例和练习,引导读者逐步掌握使用MATLAB进行仿真的技巧。在 本书中,我们将对这本书的目录进行详细分析,以便更好地理解其结构和内容。
阅读感受
《MATLAB电磁场与微波技术仿真》读后感
在科技日新月异的时代,电磁场与微波技术作为现代通信、雷达、导航等领 域的关键技术,其研究与应用价值不言而喻。而MATLAB作为一种功能强大的数学 计算软件,其灵活性和实用性在科学研究领域有着广泛的应用。《MATLAB电磁场 与微波技术仿真》这本书,便为我们提供了一个全新的视角,将两者完美结合, 为读者展现了一个丰富多彩的仿真世界。
电磁场仿真matlab
一、实验目的
一个二维静电场,电位函数为 ,边界条件如题4.29图所示,将正方形场域分成20个正方形网格。有16个内部网格点。假定16个网格点的初始值都定为零,试用超松弛法确定16个内网格点的电位值。
100V
Matlab程序如下:
M=6;
N=6; %网格节点数6*6=36个
U1=ones(N,M); %行列二维数组
U2=U1; P=1;T=0; %初始化
k=0
while(P>1e-5) %由v1迭代,算出v2,迭代精度1e-5
k=k+1; %计算迭代次数
P=0;
for i=2:N-1; %行循环
for j=2:M-1; %列循环
U2(i,j)=U1(i,j)+(U1(i,j+1)+U1(i+1,j)+U2(i-1,j)+U2(i,j-1)-4*U1(i,j))*w/4; %差分方程
hold off
三、
1、场域内等电位线、电场线分布图
所求16个内网格点电位值如下表(精度1e-5)
四、
通过这次使用matlab编写程序求解电磁场的实验,对电磁场这门课程的我有了更加直观的图形理解和计算机求解的认识。实验用超松弛法求解有界电场内的16个内网格点的过程让我亲身实践了电磁场理论计算的形象化结果,加深了我对电磁场边值问题的理解,特别是超松弛方法和简单迭代的运用。
x=1:1:M; y=1:1:N
[xx,yy]=meshgrid(x,y); %栅格
[Gx,Gy]=gradient(U2,0.6,0.6); %梯度
quiver(xx,yy,Gx,Gy,-1.0,'r'); %根据梯度画箭头
基于MATLAB的电磁场动画仿真
[X,Y]=meshgrid(x,y);
axis([-5,5,-5,5]);
r1=sqrt((X-3).^2+Y.^2); hold on;
u=k*q1./r1;
plot(3,0,'O','MarkerSize',1
n=(-5:.5:5);
5);
[Ex,Ey]=gradient(-u);
contour(X,Y,u,n,'r.');
gradient 求梯度 contour 画等高(势)线
pause movie2avi的简单举例
clear all;close all;clc;%清除变量,关闭图像,清屏
w=2*pi;
t=0;
%设置时间
x=0:0.01:9;
for i=1:300Fra biblioteky=sin(w*t-x);
plot(x,y);
title('正弦波传播');
Ex=Ex./sqrt(Ex.^2+Ey.^2); quiver(X,Y,Ex,Ey);
Ey=Ey./sqrt(Ex.^2+Ey.^2);
实例演示
实例演示
clear;clc;close all;%清除历史变量和操作 t=0;%设置初始时间 k=2; w=10; y=(0:0.1:30);l=zeros(size(y)); for i=1:300
%延时
t=t+0.00334; mov(i)=getframe(gcf);
%时间增加
hold off;
end;
movie2avi(mov,’垂直极化波.avi')
实例演示
实例演示
Matlab在电磁场仿真中的应用指南
Matlab在电磁场仿真中的应用指南引言:随着科技的不断进步,电磁场仿真逐渐成为理解和设计电磁系统的重要工具。
然而,对于初学者来说,电磁场仿真可能会显得有些困难。
幸运的是,Matlab提供了强大的仿真工具箱,可以简化这一过程并提供准确的结果。
本文将深入探讨Matlab在电磁场仿真中的应用,并提供一些实用的指南。
1. 电磁场建模在进行电磁场仿真前,需要对电磁场进行建模。
建模的目的是确定物理模型和相关参数,以便计算和分析电磁现象。
Matlab提供了各种建模工具,如有限元法、边界元法和有限差分法等。
根据不同的情况,选择适合的建模方法非常重要。
2. 材料属性的处理在电磁场仿真中,物体的材料属性对电磁现象起着重要作用。
Matlab提供了各种处理材料属性的函数和工具箱。
例如,可以使用Matlab的材料库来获取不同材料的电磁参数。
此外,Matlab还提供了处理非均匀材料和各向异性材料的功能。
正确理解和使用这些函数和工具箱可以提高仿真的准确性和效率。
3. 边界条件的设定在电磁场仿真中,边界条件的设定对结果的准确性至关重要。
Matlab提供了多种处理边界条件的方法。
例如,可以使用无限远场边界条件来模拟开放区域,或者使用周期性边界条件来模拟周期性结构。
Matlab还支持自定义边界条件,使用户能够根据实际需求进行设置。
4. 电磁场分析在电磁场仿真中,对电磁场进行分析是重要的一步。
Matlab提供了多种电磁场分析的函数和工具箱。
例如,可以使用电场和磁场分布函数来可视化电磁场的分布情况。
此外,还可以使用功率流密度函数来分析电磁场中的能量传输情况。
通过深入理解这些函数和工具箱,可以获得更详细的电磁场分析结果。
5. 结果验证与优化在进行电磁场仿真后,需要对结果进行验证和优化。
Matlab提供了多种验证结果的方法。
例如,可以与已知的解析解进行比较,或者与实验数据进行对比。
通过检验仿真结果的准确性,可以确保模型的可信度。
此外,Matlab还提供了多个优化函数和工具箱,可以用于对电磁系统进行优化,以达到更好的设计效果。
Matlab仿真带电粒子在匀强正交电磁场中运动.
引言在文[1]中对匀强正交电磁场中带电粒子的运动状态进行了分析,得到了运动方程,但人们却不能对带电粒子在此电磁场中的运动有比较直观形象的想象。
Matlab 是一款通用数学工具软件,有许多常用数学组件,文[3]作了许多相关介绍。
为了能直观形象地演示带电粒子的运动过程,文[2]采用了一阶差分线性方程组进行模拟。
本文也采用了一阶差分线性方程组的方法进行数值计算,并得到了图形结果,将常见粒子的运动进行了比较,可以方便人们得到直观印象,为进一步工作提供方便。
1问题分析本文主要研究带电粒子在均匀稳定的电磁场中的运动。
带电粒子质量为m ,电量为q (q>0,此带电粒子的运动微分方程为:m d 2!"r dt2=q "E +q "v ×"B (1以电磁场中某点为原点,以E 为Oy 方向,B 为Oz 方向建立坐标系O-xyz 。
由于ω=qB/m ,则(1式的投影方程为:d 2x dt 2=ωdy dtd 2y dt 2=qE m -ωdx dt d 2z dt 2=#%%%%%%%%$%%%%%%%%&0(2将其转换为一阶微分线性方程组,以便用差分替代微分作数值计算,令w 1=x ,w 2=dy/dx,w 3=y ,w 4=dy/dt ,w 5=z ,w 6=dz/dt ,则(2式成为:dw 1dt=w2dw 2dt=ωw 4dw 3dt=w4dw 4dt =qE m -ωw 2dw 5dt =w6dw 6dt=#%%%%%%%%%%%%%%%%%’%%%%%%%%%%%%%%%%%&0(32Matlab 数值求解与仿真演示Matlab 是一款通用性很强的优秀数学软件,借助于Matlab 对(3式进行差分迭代,数值求解,并将结果逐点描绘,用图像显示其运动轨迹。
下面分三种情况考虑:(1电场强度和磁场强度都不为零;(2电场强度为零,磁场强度不为零;(3电场强度不为零,磁场强度为零。
电磁场的Matlab仿真.
Matlab 与电磁场模拟一单电荷的场分布:单电荷的外部电位计算公式:qφ=4πε0r等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向外辐射的线。
MATLAB 程序:theta=[0:.01:2*pi]'; r=0:10;x=sin(theta*r; y=cos(theta*r; plot(x,y,'b' x=linspace(-5,5,100; for theta=[-pi/4 0 pi/4] y=x*tan(theta; hold on ; plot(x,y; end grid on单电荷的等位线和电力线分布图:二多个点电荷的电场情况:模拟一对同号点电荷的静电场设有两个同号点电荷, 其带电量分别为 +Q1和+Q2(Q1、Q2>0 距离为 2a 则两电荷在点P(x, y处产生的电势为:由电场强度可得E = -∇U, 在xOy 平面上, 电场强度的公式为:为了简单起见, 对电势U 做如下变换:。
Matlab 程序:q=1; 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 onlegend(num2str(u' hold onplot([-xm;xm],[0;0] plot([0;0],[-ym;ym]plot(-1,0,'o' , 'MarkerSize' ,12 plot(1,0,'o' , 'MarkerSize' ,12 [DX,DY] = gradient(U; quiver(X,Y,-DX,-DY; surf(X,Y,U;同号电荷的静电场图像为:50403020100-22同理,将程序稍作修改,便可以得到异号电荷的静电场图像:403020100-10-20-30-4022.5三、线电荷产生的电位:设电荷均匀分布在从z=-L到z=L,通过原点的线段上,其密度为q(单位C/m,求在xy 平面上的电位分布。
点电荷电场分布的模拟-电磁场与电磁波实验8 MATLAB仿真代码
点电荷电场分布模拟实验MATLAB仿真代码及结果曲线图※说明:本代码的运行结果是将三个曲线合并作在一幅图中(并包含图例);若欲修改曲线或标注颜色可在Figure绘图窗口中编辑,还可通过修改代码(修改制图函数或标注函数的颜色参数的值)的方式修改;本代码绘制的图经适当缩放后可刚好(正向)嵌入实验报告纸或A4纸大小的页面中,但切勿放大过度,以免导致曲线图模糊等。
·代码运行结果(绘制曲线图)预览(文档最后有附结果图):·命令部分:q1=1;q2=-4;[X,Y]=meshgrid(-5:0.1:5,-5:0.1:5);r1=sqrt(X.^2+(Y-1).^2);r2=sqrt(X.^2+(Y+1).^2);Q=q1.*(Y-1)./r1+q2.*(Y+1)./r2;F=(-5:0.22:5);U=q1./r1+q2./r2;u=(-4:0.55:1);[Ex,Ey]=gradient(-U);E=sqrt(Ex.^2+Ey.^2);Ex=Ex./E;Ey=Ey./E;grid on;[C,h] = contour(X,Y,Q,F);set(h,'linecolor','c');hold on;[S,h]=contour(X,Y,U,u);set(h,'linecolor','m');hold on;H=quiver(X,Y,Ex,Ey,0.4,'color','g');legend('电力线','等势线','电场矢量线','Location','North','AutoUpdate','off'); legend boxoff;clabel(C,'FontSize',12,'Color','c');clabel(S,'FontSize',12,'Color','m');hold on;plot([-5;5],[0;0],'k-');plot([0;0],[-5;5],'k-');plot(0,1,'ro',0,1,'r+','LineWidth',1.1,'MarkerSize',6);plot(0,-1,'bo','LineWidth',1.1,'MarkerSize',6);plot([-0.033;0.033],[-1;-1],'b-','LineWidth',1.1);title('电力线、电势分布图及电场矢量图');·(附)运行结果图:。
电磁场的matlab仿真实验--m语言1
实验三:等量异号点电荷的电势分布一、实验目的与要求1.掌握命令窗口中直接输入语句,进行编程绘制等量异号点电荷的电势分布图;2.掌握二维网格和三维曲面绘图的语句。
二、实验类型设计三、实验原理及说明这里在命令窗口中直接输入简单的语句进行编程设计。
MATLAB有几千个通用和专用五、实验内容和步骤(一)建立等量异号点电荷的电势方程物理情景是oxy平面上在x=2,y=0处有一正电荷,x= -2,y=0处有一负电荷,根据计算两点电荷电场中电势的分布,由于(二)利用MA TLAB的函数, 绘制等量异号点电荷的电势分布图首先选定一系列的x和y后,组成了平面上的网络点,再计算对应每一点上的z值。
例如-5:0.2:5,-4:0.2:4分别是选取横坐标与纵坐标的一系列数值,meshgrid是生成数据网格的命令,[x,y]是xy平面上的坐标网格点。
z是场点(x ,y)的电势,要求写出z的表达式。
这里用到MA TLAB的函数mesh()描绘3D网格图,meshgrid()描绘在3D图形上加坐标网格,sqrt()求变量的平方根。
mesh()是三维网格作图命令,mesh(x,y,z)画出了每一个格点(x,y)上对应的z值(电势)。
在命令窗口中直接输入简单的语句,如下。
解1解2当场点即在电荷处时,会出现分母为零的情况,因此在r里加了一个小量0.01,这样既可以完成计算,又不会对结果的正确性造成太大影响。
另外需要注意的是表达式中的“./ ”、“.^ ”是对数组运算的算符,含义与数值运算中的“./ ”、“.^ ”相同,不同之处是后者只对单个数值变量进行运算,而前者对整个数组变量中的所有元素同时进行运算。
解2为了减少计算量,增加精确度,与先前的示例相比,计算范围由原先的-5<x<5 ,-4<y<4改为-2<x<2 ,-2<y<2 ;步长由0.5改为0.1,电荷位置也改在(-1,0)和(1,0)处。
Matlab在电磁学中的仿真应用论文 精华版
Matlab 在电磁场中的应用摘要Matlab是美国Mathworks公司于80年代推出的大型数学软件,通过多年的升级换代,现在已发展成为集数值计算、符号计算、可视化功能以及诸多的工具箱为一体的大型科学计算软件,它已广泛应用于科研院所、工程技术等各个部门,并成为大学生、研究生必备的工具软件。
电磁学是物理学的一个分支,是研究电场和电磁的相互作用现象。
电磁学从原来互相独立的两门科学(电学、磁学)发展成为物理学中一个完整的分支学科,主要是基于电流的磁效应和变化的磁场的电效应的发现。
这两个实验现象,加上麦克斯韦关于变化电场产生磁场的假设,奠定了电磁学的整个理论体系,发展了对现代文明起重大影响的电工和电子技术。
针对电磁场学习理论性强、概念抽象等特点,利用Matlab强大的数值计算和图形技术,通过具体实例进行仿真,绘制相应的图形,使其形象化,便于对其的理解和掌握。
将Matlab引入电磁学中,利用其可视化功能对电磁学实验现象进行计算机模拟,可以提高学习效率于学习积极性,使学习效果明显。
本文通过Matlab软件工具,对点电荷电场、线电荷产生的电位、平面上N 个电荷之间的库仑引力、仿真电荷在变化磁场中的运动等问题分别给出了直观形象的的仿真图,形实现了可视化学习,丰富了学习内容,提高了对电磁场理论知识的兴趣。
关键词:Matlab 电磁学仿真计算机模拟(一)等量同号点电荷的电场线的绘制首先建立电场线的微分方程(二维情况). 因为电场中任一点的电场方向都沿该点电场线的切线方向,所以满足:引入参变量t得到:设二点电荷位于(-2,0)和(2,0),二点电荷“电量”为q1和q2(均等于10), 由库伦定律和电场的叠加原理,得出下列微分方程:解此方程就可以绘制出电场线.下面是写微分方程的函数文件:function ydot=dcx1fun(t,y,flag,p1,p2)%p1,p2是参量,表示电量ydot=[p1*(y(1)+2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+...p2*(y(1)-2)/(sqrt((y(1)-2).^2+y(2).^2).^3);%dx/dt=Exp1*y(2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+...p2*y(2)/(sqrt((y(1)-2).^2+y(2).^2).^3)];%dy/dt=Ey这里的y是微分方程的解矢量,它包含两个分量,y(1)表示x,y(2)表示y,解出y后就得到了x与y的关系,即可依此绘制出电场线.编写好函数文件后,命名为dcx1fun.m存在当前路径下,然后开始编写解微分方程的主程序dcx1.m:p1=10; p2=10; %点电荷所带电量axis([-5,5,-5,5]); %设定坐标轴范围-5≤x≤5,-5≤y≤5hold on %图形控制,不可擦除模式plot(2,0,'*r'); plot(-2,0,'*r') %绘制两源电荷a=(pi/24):pi/12:(2*pi-pi/24);%圆周上电场线起点所对应的角度b=0.1*cos(a);c=0.1*sin(a);%电场线起点所对应的相对坐标b1=-2+b;b2=2+b; %把起点圆周的圆心放置在源电荷处b0=[b1 b2]; c0=[c c]; %初始条件,所有电场线的起点%的横、纵坐标构成了矢量b0和c0for i=1:48 %循环求解48次微分方程[t,y]=ode45('dcx1fun',[0:0.05:40],[b0(i),c0(i)],[ ],p1,p2);%调用ode45求解,对应一个初条件(起点),求解出一条电场线plot(y(:,1),y(:,2),'b') %绘制出此条电场线end %结束循环,共绘制出48条电场线在确定初始条件时,因为源点处是奇点,这点上微分方程的分母为0,所以电场线不能从源点处绘制,而应当从它附近的邻域圆上绘制. 我们将电场线的起点定在以源点为圆心,0.1为半径的圆周上.在程序中就是通过从圆周上取了24个不同的角度(从π/24到2π-π/24,每隔π/12取一个角度),然后算出每个角度上的起点的横、纵坐标值;[b1,c]和[b2,c]分别是以两个源点电荷为圆心,0.1为半径的邻域圆周上的起点位置. b0=[b1 b2],c0=[c c]是合并矢量,将两个源点处的初始条件组成的矢量放在一起处理.最后所得结果如图1左图所示,将左端源电荷附近放大可以看到这些电场线的起点都在源电荷的邻域圆上,如图1右图所示. 从这个圆周上发出的电场线共24条,另一端也是相同的情况.图1 等量同号点电荷的电场线(二)带电粒子在均匀电磁场中的运动设带电粒子质量为m,带电量为,电场强度E沿方向,磁感应强度B沿qyz方向. 则带电粒子在均匀电磁场中的运动微分方程为令,,则上面微分方程可化作:选择E和B为参量,就可以分别研究0≠E,0=B和,等情况. 下面编写微分方程函数文件ddlzfun.m:0=E0≠Bfunction ydot=ddlzfun(t,y,flag,q,m,B,E) %q,m,B,E为参量ydot=[ y(2);q*B*y(4)/m;y(4);q*E/m-q*B*y(2)/m;y(6);0];再编写解微分方程的主程序ddlz.m:q=1.6e-2; m=0.02; %为粒子的带电量和质量赋值B=2; E=1; %为电磁场的磁感强度和电场强度赋值[t,y]=ode23('ddlzfun',[0:0.1:20],...[0,0.01,0,6,0,0.01],[ ],q,m,B,E);%用ode23解微分方程组,时间设为20s%指定初始条件,传递相关参数plot3(y(:,1),y(:,3),y(:,5),'linewidth',2);%绘出三维空间内粒子运动的轨迹,线宽2磅grid on %开启坐标网格线xlabel('x'); ylabel('y'); zlabel('z'); %为坐标轴命名运行结果如图2所示. 研究时可以采用不同的初始条件和不同的参量观察不同的现象. 例如令E=0,B=2,所得结果如图3所示.图2 现有参数运行结果图3 修改参数运行结果(三)利用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');figureplot(t,y(:,3));%comet(t,y(:,3));xlabel('t');ylabel('y');figureplot(t,y(:,5));%comet(t,y(:,5));xlabel('t');ylabel('z');figureplot(y(:,3),y(:,5));%comet(y(:,3),y(:,5));xlabel('y');ylabel('z');figureplot3(y(:,1),y(:,3),y(:,5)) %绘制一般三维曲线图%comet3(y(:,1),y(:,3),y(:,5)) %绘制三维动态轨迹xlabel('x');ylabe('y');zlabel('z');%电荷在非均匀磁场中运动的微分方程function f=yy(t,y);global A; %定义全局变量A=100; %设定qB0/mf=[y(2);0;y(4);A*y(6)*y(1);y(6);-A*y(4)*y(1)]; %写入微分方程图(4-1)电荷在x轴上运动轨迹图(4-3)电荷在z轴上的运动轨迹图(4-4)电荷在yz平面上的运动轨迹结论通过以上学习可以看下出,利用Matlab强大的计算与图像功能模拟各类物理场的实验是成功的。
matlab空心圆柱线圈的电磁场数值模拟 源代码
一、概述电磁场模拟是电磁学领域中一项重要的研究工作,它对于理解电磁现象、设计电磁设备以及解决实际工程问题具有重要意义。
在电磁场数值模拟中,使用计算机软件进行仿真是一种常见的手段。
Matlab作为一种强大的科学计算软件,被广泛应用于电磁场数值模拟工作中。
本文将重点介绍在Matlab中对空心圆柱线圈的电磁场进行数值模拟的源代码。
二、空心圆柱线圈的电磁场数值模拟原理空心圆柱线圈是一种常见的电磁场源,它在电磁学和电气工程中有着重要的应用。
对空心圆柱线圈的电磁场进行数值模拟,可以帮助我们了解其电磁特性,对其设计和优化提供科学依据。
在空心圆柱线圈的电磁场数值模拟中,通常采用有限元方法或有限差分法进行计算。
本文将以有限元方法为例,介绍在Matlab中实现空心圆柱线圈电磁场数值模拟的源代码。
三、Matlab空心圆柱线圈电磁场数值模拟源代码```matlab定义空心圆柱线圈的几何参数radius_outer = 0.1; 外半径radius_inner = 0.05; 内半径height = 0.2; 高度定义空心圆柱线圈的材料参数mu_r = 1000; 相对磁导率sigma = 1e6; 电导率定义有限元网格nx = 50; x方向网格数ny = 50; y方向网格数nz = 100; z方向网格数创建有限元网格mesh = createMesh([nx, ny, nz], ... [radius_outer, -radius_outer], ... [radius_outer, -radius_outer], ... [0, height]);初始化有限元模拟FEM = createFEM(mesh);FEM = buildFEM(FEM);施加边界条件FEM = applyBoundaryCondition(FEM, 'Dirichlet', 5, 0);施加外部激励excitation = [0; 0; 1.0]; 外部激励磁场FEM.periodic = 0;FEM = addExternalField(FEM, excitation);进行有限元求解FEM = solveFEM(FEM);可视化电磁场visualizeFEM(FEM, 'magnetic_field');```四、结论通过以上源代码,我们可以在Matlab中对空心圆柱线圈的电磁场进行数值模拟。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 与电磁场模拟
一 单电荷的场分布: 单电荷的外部电位计算公式:
等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向外辐射的线。
MATLAB 程序:
theta=[0:.01:2*pi]'; r=0:10;
x=sin(theta)*r; y=cos(theta)*r; plot(x,y,'b')
x=linspace(-5,5,100); for theta=[-pi/4 0 pi/4] y=x*tan(theta); hold on;
plot(x,y); end grid on
单电荷的等位线和电力线分布图:
r q
04πεφ=
二多个点电荷的电场情况:
模拟一对同号点电荷的静电场
设有两个同号点电荷,其带电量分别为 +Q1和+Q2(Q1、Q2>0 )距离为2a则两电荷在点P(x, y)处产生的电势为:
由电场强度可得E = -∇U,在xOy平面上,电场强度的公式为:
为了简单起见,对电势U做如下变换:。
Matlab程序:
q=1;
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
legend(num2str(u'))
hold on
plot([-xm;xm],[0;0])
plot([0;0],[-ym;ym])
plot(-1,0,'o','MarkerSize',12) plot(1,0,'o','MarkerSize',12) [DX,DY] = gradient(U);
quiver(X,Y,-DX,-DY);
surf(X,Y,U);
同号电荷的静电场图像为:
-2
010
20
30
40
50
同理,将程序稍作修改,便可以得到异号电荷的静电场图像:
-2.5
-40-30-20-10010203040
三、线电荷产生的电位:
设电荷均匀分布在从z=-L 到z=L,通过原点的线段上,其密度为q(单位C/m),求在xy 平面上的电位分布。
点电荷产生的电位可表示为 是一个标量。
其中
r
法来求。
为此把线电荷分为N 段,每段长为dL 。
每段上电荷为q*dL,看作集中在中点的点电荷,它产生的电位为 然后对全部电荷求和即可。
把xy 平面分成网格,因为xy 平面上的电位仅取决于离原点的垂直距离R ,所以可以省略一维,只取R 为自变量。
把R 从0到10米分成Nr+1点,对每一点计算其电位。
Matlab 程序: clear all;
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;
4
R=linspace(0,10,Nr+1);
for k=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),grid
线电荷产生的静电位分布图:
四计算平面上N个电荷之间的库伦引力1 建模:
由库仑定律:
Matlab程序:
clear all;
N = input('ÊäÈëµçºÉÊýÄ¿N=:');
for ic = 1:N
fprintf('----/n¸öµçºÉ#%g\n',ic);
rc = input('ÊäÈëµçºÉλÖÃ[x,y]£¨Ã×£©:'); x(ic) = rc(1);
y(ic) = rc(2);
q(ic) = input('ÊäÈëµçºÉÁ¿£¨¿âÂØ£©£º'); end
E0 = 8.85e-12;
C0 = 1/(4*pi*E0);
for ic = 1:N
Fx = 0.0;Fy = 0.0;
for jc = 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-·ÖÁ¿:%e\n',Fx);
fprintf('y-·ÖÁ¿:%e\n',Fy);
end
五有限差分法处理电磁场问题
Matlab程序:
m=40
for k=1:m
for j=1:m
if k==1
V(j,k)=1;
elseif((j==1)|(j==m)|(k==m))
V(j,k)=0;
else
V(j,k)=0.5;
end
end
end
cha=0.01;
delta=0;
n=0;
while(1)
n=n+1;
for k=2:m-1
for j=2:m-1
Vnew(j,k)=1/4*(V(j+1,k)+V(j-1,k)+V(j,k+1)+V(j,k-1)); d=abs((Vnew(j,k)-V(j,k))/V(j,k));
if d>delta
delta=d;
end
V(j,k)=Vnew(j,k); end
end
if delta>cha
break;
end
if(n>100)
break;
end
delta=0.;
end
结果为:。