电磁场仿真实验-用超松弛法求二维静电场域的电位分布
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名:梁鸿宇学号:19 班级:10通信
实验目的:
通过用MATLAB等软件编程计算电磁场问题,掌握有限差分法的基本思想,掌握电磁场数值计算的基本思想和方法,掌握MATLAB等软件编程技巧,学会用MATLAB等软件应用于有限差分法的数值解。
实验内容:
用MATLAB等软件编程计算电磁场问题,给出有关波形和图表。
分析数值解和解析解的优缺点。
题目如下:
实验程序与结果分析:
程序(MATLAB)
%电位函数为φ(x,y) ,边界条件φ(x,y)=0(x=0);φ(x,y)=50(y=0);
% φ(x,y)=100(x=a);φ(x,y)=100(y=a);
hx=11;hy=11; %设置网格节点数
v1=ones(hy,hx); %设置行列二维数组
m=10;n=10; %横纵向网格数
%上下两行的Dirichlet条件边界值:
v1(1,:)=ones(1,hx)*50;
v1(hy,:)=ones(1,hx)*100;
%左右两列的Dirichlet条件边界值:
for i=1:hy
v1(i,1)=0;
v1(i,hx)=100;
end
%计算松弛因子
t1=(cos(pi/m)+cos(pi/n))/2;
w=2/(1+sqrt(1-t1^2));
v2=v1;maxt=1;t=0; %初始化
k=0
while(maxt>1e-6) %由V1迭代V2.迭代精度为k=k+1 %计算迭代次数maxt=0;
for i=2:hy-1 %从2到hy-1行循环for j=2:hx-1 %从2到hx-1列循环
v2(i,j)=v1(i,j)+(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1)-4*v1(i,j))*w/4;
% 拉普拉斯方程差分式
t=abs(v2(i,j)-v1(i,j));
if(t>maxt) maxt=t;end
end
end
v1=v2
end
contour(v2,20) %画等电位线图
hold on
x=1:1:hx;y=1:1:hy
[xx,yy]=meshgrid(x,y); %形成栅格
[Ex,Ey]=gradient(v2,,; %计算梯度
AE=sqrt(Ex.^2+Ey.^2);Ex=Ex./AE;Ey=Ey./AE; % 场强归一化,使箭头等长quiver(xx,yy,Ex,Ey, %根据梯度数据画箭头
axis([,hx+,-2,13]) %设置坐标边框
plot([1,1,hx,hx,1],[1,hy,hy,1,1],'k') %画导体边框
text(hx/,hy+,'100V','fontsize',11); %上标注
text(hx/2,,'50V','fontsize',11); %下标注
text,hy/2,'0V','fontsize',11); %左标注
text(hx+,hy/2,'100V','fontsize',11); %右标注hold offhx=11;hy=11;
输出图形(MATLAB)
总结和体会:
这次仿真实验,是自己学习NATLAB的基本操作的,在了解这个全英版的软件之前,觉得很茫然。
后来看了教程,有点了解之后,才发现MATLAB软件处理问题的强大之处。