电磁场的Matlab仿真.docx
- 文档编号:17418698
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:10
- 大小:1.24MB
电磁场的Matlab仿真.docx
《电磁场的Matlab仿真.docx》由会员分享,可在线阅读,更多相关《电磁场的Matlab仿真.docx(10页珍藏版)》请在冰点文库上搜索。
电磁场的Matlab仿真
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);
fortheta=[-pi/40pi/4]
y=x*tan(theta);
holdon;
plot(x,y);
end
gridon
单电荷的等位线和电力线分布图:
二多个点电荷的电场情况:
模拟一对同号点电荷的静电场
设有两个同号点电荷,其带电量分别为+Q1和+Q2(Q1、Q2>0)距离为2a则两电荷在点P(x,y)处产生的电势为:
由电场强度可得E=-∇U,在xOy平面上,电场强度的公式为:
为了简单起见,对电势U做如下变换:
。
Matlab程序:
q=1;
xm=;
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:
:
4;
figure
contour(X,Y,U,u)
gridon
legend(num2str(u'))
holdon
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);
同号电荷的静电场图像为:
同理,将程序稍作修改,便可以得到异号电荷的静电场图像:
三、线电荷产生的电位:
设电荷均匀分布在从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=;
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),grid
线电荷产生的静电位分布图:
四计算平面上N个电荷之间的库伦引力
1建模:
由库仑定律:
先输入电荷的数目,各电荷的坐标及电荷量,再选一个电荷,求其它电荷对它的作用力,叠加求合力。
再选下一个电荷,依次类推。
Matlab程序:
clearall;
N=input('ÊäÈëµçºÉÊýÄ¿N=:
');
foric=1:
N
fprintf('----/n¸öµçºÉ#%g\n',ic);
rc=input('ÊäÈëµçºÉλÖÃ[x,y]£¨Ã×£©:
');
x(ic)=rc
(1);
y(ic)=rc
(2);
q(ic)=input('ÊäÈëµçºÉÁ¿£¨¿âÂØ£©£º');
end
E0=;
C0=1/(4*pi*E0);
foric=1:
N
Fx=;Fy=;
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-·ÖÁ¿:
%e\n',Fx);
fprintf('y-·ÖÁ¿:
%e\n',Fy);
end
五有限差分法处理电磁场问题
Matlab程序:
m=40
fork=1:
m
forj=1:
m
ifk==1
V(j,k)=1;
elseif((j==1)|(j==m)|(k==m))
V(j,k)=0;
else
V(j,k)=;
end
end
end
cha=;
delta=0;
n=0;
while
(1)
n=n+1;
fork=2:
m-1
forj=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));
ifd>delta
delta=d;
end
V(j,k)=Vnew(j,k);
end
end
ifdelta>cha
break;
end
if(n>100)
break;
end
delta=0.;
end
结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电磁场 Matlab 仿真
![提示](https://static.bingdoc.com/images/bang_tan.gif)