电磁场数值分析作业(西电)共5次【2021】


作业1

一个二维正方形(边长a=10mm)的静电场区域,电位边界条件如图所示(单位:V),求区域内的电位分布。要求用超松弛迭代法求解差分方程组进行计算。
在这里插入图片描述

clc
clear
close all
hx=11;
hy=11;
v1=zeros(hy,hx);
v1(hy,:)=ones(1,hx)*100;
v1(1,:)=ones(1,hx)*50;
for  i=1:hy
    v1(i,1)=0;
    v1(i,hx)=100;
end
w=2/(1+sin(pi/(hx-1)));
maxt=1;
t=0;
v2=v1;
n=0;
while (maxt>1e-6)
    n=n+1;
    maxt=0;
    for  i=2:hy-1
        for  j=2:hx-1
            v2(i,j)=(1-w)*v1(i,j)+w*(v1(i+1,j)+v1(i,j+1)+v2(i-1,j)+v2(i,j-1))/4;
            t=abs(v2(i,j)-v1(i,j));
            if  (t>maxt)
                maxt=t;
            end
        end
    end
    v1=v2;
end
subplot(1,2,1)
surf(v2)
colormap winter
axis([0,11,0,11,0,100])
subplot(1,2,2)
contour(v2,20)

作业2

如图微带线,𝑤∕ℎ=1,ε𝑟 = 9.5。试用有限差分法求其有效介电常数εe及特阻抗Z0。(作为对照:采用保角变换法 解析结果为εe = 6.5,Z0 = 49.5)
在这里插入图片描述

clc
clear
close all

hx = 11; % 设置x方向网格节点数 间隔 .5 w
hy = 11; % 设置y方向网格节点数
v1 = zeros(hy, hx); % 设置二维数组,赋初值
v1(hy,:) = zeros(1, hx); % y=a 边界条件
v1(1, :) = zeros(1, hx); % y=0边界条件
v1(:, hx) = zeros(hy, 1); % x=hx边界条件
p = 2; q = 3; e = 1;%9.5; % 相对介电常数
for j = 1:p
    v1(q, j) = 1; % 微带线边界条件
end
maxt = 1; t = 0; % 设置误差和最大误差参量
v2 = v1; n = 0;
while maxt>2e-6
    n = n+1; % 迭代次数
    maxt = 0;
    for i = 2:q-1 % 对称轴
        v2(i, 1) = (2*v1(i, 2)+v1(i+1, 1)+v2(i-1, 1))/4;
    end
    for i = q+1:hy-1
        v2(i, 1) = (2*v1(i, 2)+v1(i+1, 1)+v2(i-1, 1))/4;
    end
    for i = 2:q-1  % 均匀区域
        for j = 2:hx-1
            v2(i, j) = (v1(i, j+1)+v1(i+1, j)+v2(i, j-1)+v2(i-1, j))/4;
        end
    end
    
    for j = q+1:hy-1
        v2(q, j) = (v1(q, j+1)+2/(1+e)*v1(q+1, j)+v2(q, j-1)...
            +2/(1+e)*e*v2(q-1, j))/4;
    end
    for i = q+1:hy-1  % 均匀区域
        for j = 2:hx-1
            v2(i, j) = (v1(i, j+1)+v1(i+1, j)+v2(i, j-1)+v2(i-1, j))/4;
        end
    end
    for i = 1:hy
        for j = 1:hx
            t = abs(v2(i, j)-v1(i, j)); % 收敛精度判断
            if t>maxt
                maxt = t;
            end
        end
    end
    v1 = v2;
end
surfl(v1)
colormap jet

在这里插入图片描述

作业3

模拟真空中二维TM电磁波的传播,边界设置为一阶Mur吸收边界,观察电磁波的传播过程。波源为正弦函数:
在这里插入图片描述

clc
clear
close all
xmesh=150;
ymesh=150;
mu0=4*pi*(1.0e-7);
eps0=8.85e-12;
c=3.0e8;
dx=1.0;
dt=0.7*dx/c;
timestep=200;
ez(1:xmesh+1,1:ymesh+1)=0.0;
hx(1:xmesh+1,1:ymesh)=0.0;
hy(1:xmesh,1:ymesh+1)=0.0;
coef1=dt/(mu0*dx);
coef2=dt/(eps0*dx);
coef3=(c*dt-dx)/(c*dt+dx);
ez1=ez;
for now=1:timestep
    hx=hx-coef1*(ez(:,2:ymesh+1)-ez(:,1:ymesh));
    hy=hy+coef1*(ez(2:xmesh+1,:)-ez(1:xmesh,:));
    ez(2:xmesh,2:ymesh)=ez(2:xmesh,2:ymesh)- ...
    coef2*(hx(2:xmesh,2:ymesh)-hx(2:xmesh,1:ymesh-1))+ ...
    coef2*(hy(2:xmesh,2:ymesh)-hy(1:xmesh-1,2:ymesh));
    ez(1,:)=ez1(2,:)+coef3*(ez(2,:)-ez1(1,:));
    ez(xmesh+1,:)=ez1(xmesh,:)+coef3*(ez(xmesh,:)-ez1(xmesh+1,:));
    ez(:,1)=ez1(:,2)+coef3*(ez(:,2)-ez1(:,1));
    ez(:,ymesh+1)=ez1(:,ymesh)+coef3*(ez(:,ymesh)-ez1(:,ymesh+1));
    ez(xmesh/2+1,ymesh/2+1)=sin(now*dt*2*pi*c/25.0);
    mesh(ez)
    pause(0.01)
    ez1=ez;
end

作业4

基于Pocklington方程用MoM分析半波对称振子天线:
观察天线线径和分段数目分别取不同值对天线阻抗和辐射特性的影响 (半径分别取 0.001λ, 0.0001λ, 0.00001λ,分段数取11,21,31)

clc
clear
close all
% 初始化参数
c=3e8;
r=1;
f=c/r;
w=2*pi*f;
e0=8.85e-12;
u0=4*pi*1e-7;
a=0.0001*r;
L=0.5*r;
k=2*pi/r;
N=31;
dl=L/(N+1);
l=L/2-dl/2;
lz=-l:dl:1;
lzs=lz(1:N);
lzm=lz(1:N)+dl/2;
lze=lz(2:N+1);
% 阻抗矩阵元素求解
fi=log(dl/a)/(2*pi*dl)-k/(4*pi)*1j;
fi_1=exp(-k*dl*1j)/(4*pi*dl);
fi_2=exp(-k*2*dl*1j)/(8*pi*dl);
z=ones(N,N);
for  m=1:N
    for  n=1:N
        if  m==n
            fi1=fi;
            fi2=fi_1;
            fi3=fi_2;
            z(m,n)=((k^2*dl^2-2)*fi1+fi2+fi3);
        elseif  abs(m-n)==1
            fi1=fi_1;
            fi2=fi;
            fi3=fi_2;
            z(m,n)=((k^2*dl^2-2)*fi+fi2+fi3);
        else
            fi1=exp(-k*abs(m-n)*dl*1j)/(4*pi*abs(m-n)*dl);
            fi2= exp(-k*abs(m+1-n)*dl*1j)/(4*pi*abs(m+1-n)*dl);
            fi3=exp(-k*abs(n+1-m)*dl*1j)/(4*pi*abs(n+1-m)*dl);
            z(m,n)=((k^2*dl^2-2)*fi+fi2+fi3);
        end
    end
end
% 电压矩阵求解
V=zeros(N,1);
V((N+1)/2)=-1*(1j*w*e0);
I=z\V;
Z_in=1/I((N+1)/2);
disp([ ' 输入阻抗 =' ,num2str(Z_in)])
I_amp=abs(I);
Max=max(I_amp);
Iunit2=[0;I_amp/Max(1);0];
figure(1)
h=0:dl/r:L/r;
Ithe=sin(pi*h*r/L);
plot(h,Iunit2, ':g' ,h,Ithe, 'r' , 'linewidth' ,2)
legend( 'pocklinton' , ' 解析值 ' )
grid  on
xlabel( ' 电长度 ' )
ylabel( ' 归一化电流 ' )
% 方向图
theta=0:0.01:2*pi;
abs_f=zeros(1,length(theta));
for  n=1:1:N
    abs_f=abs_f+I(n)*exp(k*(n*dl-L/2)*cos(theta)*1j);
end
abs_f=abs(sin(theta)*dl.*abs_f);
Max_f=abs(sum(I)*dl);
Far_patten2=abs_f/Max_f(1);
theta_2=0:0.1:2*pi;
Far_theory=abs((cos(k*(L/2)*cos(theta_2))-cos(k*L/2)) ./sin(theta_2));
figure(2)
polarplot(theta,Far_patten2, '-b' )
hold  on
polarplot(theta_2,Far_theory, 'or' )
hold  off
legend( 'pocklinton' , ' 解析值 ' )
title( ' 半波阵子天线 E 面方向图 ' )
figure(3)
polarplot(theta,ones(1,length(theta)), '-b' )
title( ' 半波阵子天线 H 面方向图 ' )
% 半波阵子增益
I_in=I((N+1)/2);
A=(w*u0)^2/(4*pi*sqrt(u0/e0)*real(Z_in)*(abs(I_in))^2);
G_theta=A*abs_f.^2;
Max_gain=max(G_theta);
Max_gain_dB=10*log10(Max_gain);
disp([ ' 半波阵子增益 =' ,sprintf( '%.4fdB' ,Max_gain_dB)])

在这里插入图片描述

作业5

基于电场积分方程用MoM分析对称振子天线:
计算振子总长度分别为0.25λ ,0.5λ,λ,1.5λ时,振子的输入阻抗和E面方向图。

clc
clear
close all
lamda=1;
c = 3e8;
f = c/lamda; % 频率
w = 2*pi*f; % 角频率
e0 = 8.85e-12; % 介电常数
u0 = 4*pi*1e-7; % 磁导率
a = .001*lamda; % 半径

nn = 1.5;
L = nn*lamda; % 振子长度
k = 2*pi/lamda;

N = 11; % 分段数

dl = L/(N+1);
l = L/2-dl/2;
lz = -1:dl:l;
lzs = lz(1:N);
lzm = lz(1:N)+dl/2;
lze = lz(2:N+1);

fi = 2*log(dl/a)/dl-k*1i;
fi_1 = exp(-k*dl*1i)/dl;
fi_2 = exp(-k*2*dl*1i)/(2*dl);


for  m=1:N
    for  n=1:N
        if  n==m
            fi11 = fi;
            fi12 = fi;
            fi13 = fi;
            fi2 = fi_1;
            fi3 = fi_1;
        elseif  abs(n-m)==1
            fi11 = fi_1;
            fi12 = fi_1;
            fi13 = fi_1;
            if  n>m
                fi2 = fi_2;
                fi3 = fi;
            else
                fi3 = fi_2;
                fi2 = fi;
            end
        else
            fi11 = exp(-k*abs(m-n)*dl*1i)/(abs(m-n)*dl);
            fi12 = exp(-k*abs(m-n)*dl*1i)/(abs(m-n)*dl);
            fi13 = exp(-k*abs(m-n)*dl*1i)/(abs(m-n)*dl);
            if  n>m
                fi2 = exp(-k*abs(n-m+1)*dl*1i)/(abs(n-m+1)*dl);
                fi3 = exp(-k*abs(n-m-1)*dl*1i)/(abs(n-m-1)*dl);
            else
                fi2 = exp(-k*abs(n-m-1)*dl*1i)/(abs(n-m-1)*dl);
                fi3 = exp(-k*abs(n-m+1)*dl*1i)/(abs(n-m+1)*dl);
            end
        end
        z(m,n)=1j*w*u0/(4*pi)*dl*dl*fi11+(1/(1i*4*pi*w*e0))*(fi12-fi3-fi2+fi13);
    end
end

% 电压矩阵求解
v = zeros(N, 1);
v((N+1)/2) = 1;
% 电流系数矩阵
I = z\v;
% 输入阻抗
zin = 1/I((N+1)/2);
disp(['输入阻抗 = ',  num2str(zin)]);

theta = 0:.001:2*pi;
abs_f = zeros(1, length(theta));
for n = 1:1:N
    abs_f = abs_f+I(n)*exp(k*(n*dl-L/2)*cos(theta)*1i);
end

abs_f = abs(sin(theta)*dl.*abs_f);
max_f = abs(sum(I)*dl);
far_patten2 = abs_f/max_f(1);

polarplot(theta,far_patten2, 'R--' )
  • 48
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

薛定谔的壳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值