📄 rect-wave.m
字号:
close all
clear
clc
prompt = {'lambda (m) ' , 'breadth (a/lambda) along x-axis ', 'height (b/lambda) along y-axis ', 'length (L/lambda) along z-axis ', 'Conductivity (S/m) ', 'Maximum a/b ratio for plot of Lost Power '};
str = 'Rectangular Waveguide Parameters';
def = {'0.3', '2', '1', '1','1e+4', '5'};
variables = {'lambda', 'a', 'b', 'L', 'sigma', 'max_a_by_b'};
info = inputdlg(prompt,str,1,def);
if ~isempty(info)
info = cell2struct(info, variables);
lambda = str2num(info.lambda);
a = lambda*str2num(info.a);
b = lambda*str2num(info.b);
L = lambda*str2num(info.L);
sigma = str2num(info.sigma);
max_a_by_b = str2num(info.max_a_by_b);
end
% disp('********************************************');
% disp('RECTANGULAR WAVEGUIDE PARAMETERS');
% disp('********************************************');
% lambda = input('Wavelength (m) : ');
% a = lambda*input('Breadth a/lambda (along x-axis) : ');
% b = lambda*input('Height b/lambda (along y-axis) : ');
% L = lambda*input('Length L/lambda (along z) : ');
% disp('********************************************');
%
len = 0:L/40:L;
x = 0:a/10:a;
y = 0:b/10:b;
A10 = 1;
% TE10 mode
beta = (2*pi/lambda)*((1-(lambda/(2*a)))^0.5);
f = 3e+8/lambda;
t = 0.5/f;
omega = 2*pi*f;
mu = 4*pi*10^(-7);
% x=0 (left wall)
J_x0_z = zeros(length(y), length(len));
for i = 1:length(y)
J_x0_y(i,:) = -A10*ones(1,length(len)) .* cos(omega*t-beta*len);
end
figure
[LEN,Y] = meshgrid(beta*len, y/b);
subplot(2,1,1), quiver(LEN,Y, J_x0_z, J_x0_y, 0.5);
title('Current Density Distribution on the Wall of the Waveguide at x=0');
xlabel('{\beta}z');
ylabel('y/b');
% y=0 (bottom wall)
for i = 1:length(x)
for z = 1:length(len)
J_y0_z(i,z) = (beta*a/pi)*A10*sin(pi*x(i)/a) * sin(omega*t-beta*len(z));
end
end
for i = 1:length(x)
for z = 1:length(len)
J_y0_x(i,z) = A10*cos(pi*x(i)/a) * cos(omega*t-beta*len(z));
end
end
[LEN,X] = meshgrid(beta*len, x/a);
subplot(2,1,2), quiver(LEN,X, J_y0_z,J_y0_x);
title('Current Density Distribution on the Wall of the Waveguide at y=0');
xlabel('{\beta}z');
ylabel('x/a');
J_x = zeros(length(x),length(y),length(len));
J_y = zeros(length(x),length(y),length(len));
J_z = zeros(length(x),length(y),length(len));
J_y(:,1,:) = J_x0_y;
J_x(1,:,:) = J_y0_x;
J_z(1,:,:) = J_y0_z;
scrsz = get(0,'ScreenSize');
h=struct('Position',[1 1 scrsz(3) scrsz(4)]);
figure(h);
[X3,Y3,LEN3] = meshgrid(x/a,y/b,len*beta);
quiver3(X3,Y3,LEN3, J_x,J_y,J_z, 1.8);
axis([0 1 0 1 0 beta*L]);
title('Current Density Distribution on 2 Walls of the Waveguide');
xlabel('x/a');
ylabel('y/b');
zlabel('{\beta}z');
% J_y(:,length(x),:) = J_x0_y;
% J_x(length(y),:,:) = -J_y0_x;
% J_z(length(y),:,:) = -J_y0_z;
% h=struct('Position',[5 0 1145 795]);
% figure(h);
% quiver3(X3,Y3,LEN3, J_x,J_y,J_z, 1.5);
% axis([0 1 0 1 0 beta*L]);
% title('Current Density Distribution on all the Walls of the Waveguide');
% xlabel('x/a');
% ylabel('y/b');
% zlabel('{\beta}z');
Rs = (omega*mu/(2*sigma))^0.5;
a = b*(0.2:0.01:max_a_by_b);
% power lost per unit length
P_L = Rs*(abs(A10)^2)*(b + 0.5.*a + 0.5*((beta/pi)^2).*(a.^3) );
figure
plot(a/b, P_L);
grid;
xlabel('a/b');
ylabel('Power lost per unit length due to finite wall conductivity');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -