⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rect-wave.m

📁 Simulations of rectangular waveguide using matlab
💻 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 + -