电磁场仿真matlab

2018-12-29 20:18

电磁场边值问题求解

一、实验目的

一个二维静电场,电位函数为??x,y?,边界条件如题4.29图所示,将正方形场域分成20个正方形网格。有16个内部网格点。假定16个网格点的初始值都定为零,试用超松弛法确定16个内网格点的电位值。

二、实验程序

100V

100V Matlab 程序如下:

M=6;

N=6; %网格节点数6*6=36个

U1=ones(N,M); %行列二维数组 0V m=5,n=5; %横纵向网格数

U1(1,:)=ones(1,M)*50; %条件边界值

U1(N,:)=ones(1,M)*100;

for i= 1:N

U1(i,1)=0;

U1(i,M)=100;

end

50V t1=(cos(pi/m)+cos(pi/n))/2; w=2/(1+sqrt(1-t1*t1));

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; %差分方程 T=abs(U2(i,j)-U1(i,j)); if (T>P) P=T; end

end end U1=U2; end

subplot(1,2,1),mesh(U2); %三维图 axis([0,6,0,6,0,100]);

subplot(1,2,2),contour(U2,15); %等电位线 hold on;

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'); %根据梯度画箭头 axis([-1.5,M+2.5,-2,13]); %坐标边框设置 plot([1,1,M,M,1],[1,N,N,1,1],'K'); %画导体边框 text(M/2-0.5,N+0.4,'100V','fontsize',6);%上标注 text(M/2,0.3,'50V','fontsize',6);%下标注 text(-0.3,N/2,'0V','fontsize',5);%左标注

text(M+0.1,N/2,'100V','fontsize',5);%右标注 hold off

三、程序运行结果:

1、场域内等电位线、电场线分布图

所求16个内网格点电位值如下表(精度1e-5)

四、实验总结

通过这次使用matlab编写程序求解电磁场的实验,对电磁场这门课程的我有了更加直观的图形理解和计算机求解的认识。实验用超松弛法求解有界电场内的16个内网格点的过程让我亲身实践了电磁场理论计算的形象化结果,加深了我对电磁场边值问题的理解,特别是超松弛方法和简单迭代的运用。


电磁场仿真matlab.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:资产评估业务约定书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: