电磁场的Matlab仿真.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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 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;

同号电荷的静电场图像为:

50

40

30

20

10

0-2

2

同理,将程序稍作修改,便可以得到异号电荷的静电场图像:

403020100-10-20-30-402

2.5

三、线电荷产生的电位:

设电荷均匀分布在从z=-L到z=L,通过原点的线段上,其密度为q(单位C/m,求在xy 平面上的电位分布。

点电荷产生的电位可表示为

V = Q / 4 π r ε 0

是一个标量。其中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;

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 结果为:

相关文档
最新文档