使用有限差分法求解无限长直的金属槽内的电位分布

使用有限差分法求解无限长直的金属槽内的电位分布

实验内容:

使用有限差分法求解无限长直的金属槽内的电位分布
在这里插入图片描述

实验源码:

%控制宽度
Length = 50;    %长度
Width = 50;     %宽度
Height = 1:1:50;

%控制轴的位置
Var_Xz = 25;
Var_Yz = 10;

Values1 = zeros(Width,Length);   %构造一个Width * Length的0矩阵
for m1 = 1 : Length              %将金属板盖设置为100V
    Values1(Width,m1)=100;
end

m=1;t=0;k=0;
Values2 = Values1;

while(m>0.001)
    m=0;
    k=k+1; %迭代次数
    
    %看做为网格,就是计算完成一个网格里的所有值与最初始的值对比误差
    for i=2:Width-1             %控制行;计算列值
        for j=2:Length-1        %控制列;计算行值    
            Values2(i,j)= (Values1(i,j+1) + Values1(i+1,j) + Values1(i-1,j) + Values1(i,j-1)) / 4;
            t=(Values2(i,j) - Values1(i,j));    % v2 与 v1 偏差
            if(t>m)                             %精度比较控制
                m=t;
            end 
        end
    end
    Values1=Values2;
end

%xoy面等势线截面
subplot(2,3,[1,2]);
contour(Values2,40);            %矩阵的等高线图
xlabel("x轴");
ylabel("y轴");
title(['1.xoy面等势线截面图','迭代次数:',num2str(k),'次'],'fontsize',10);

%xoy面电势分布
subplot(2,3,3);
face_xoy = surface(Values1);
face_xoy.FaceColor = 'flat';
face_xoy.EdgeColor = 'none';
axis([0,50,0,50]);
xlabel("x轴");
ylabel("y轴");
title("2.xoy面电势分布图",'fontsize',10);
%---------------------------------------------

%yoz面电势分布--当 x = Var_Xz
subplot(2,3,4);
yozValues = repmat(Values1(:,Var_Xz),1,50);
face_yoz = surface(yozValues);
face_yoz.EdgeColor = 'none';
axis([0,50,0,50]);
xlabel("z轴");
ylabel("y轴");
title(["3.yoz面电势分布-x = ",num2str(Var_Xz)],'fontsize',10);

%xoz面电势分布--当 y = Var_Yz
subplot(2,3,5);
xozValues = repmat(Values1(Var_Yz,:).',1,50);
face_xoz = surface(xozValues);
face_xoz.EdgeColor = 'none';
axis([0,50,0,50]);
xlabel("z轴");
ylabel("x轴");
title(["4.xoz面电势分布-y = ",num2str(Var_Yz)],'fontsize',10);

%截取一部分的立方体电势图
subplot(2,3,6);
[X, Y] = meshgrid(0:1:50, 0:1:50);
Z = zeros(size(X));
CO = Z; % blue
CO1 = Z * 50;

%xoy两面
xy1 = surf(X,Y,Z,Values1);hold on;
xy2 = surf(X,Y,Z+50,Values1);hold on;
%xoz两面
xz1 = surf(Y,Z,X,CO);hold on;
xz2 = surf(Y,Z+50,X,CO-10);hold on;
%yoz面
yz1 = surf(Z,Y,X,CO);hold on;
yz2 = surf(Z+50,Y,X,CO);hold on;

xz1.EdgeColor = 'none';
xz2.EdgeColor = 'none';
yz1.EdgeColor = 'none';
yz2.EdgeColor = 'none';
xy1.EdgeColor = 'none';
xy2.EdgeColor = 'none';

xlabel("x轴");
ylabel("y轴");
zlabel("z轴");
axis([0,60,0,60,0,60]);
title("5.带盖金属3D电势分布图");

实验截图

在这里插入图片描述

  • 有需要的可以一起交流学习、觉得有帮助的话,点个赞再走啦、谢谢啦
    在这里插入图片描述
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值