Files
PLFM_RADAR/5_Simulations/Slotted_DielectricFilled_Waveguide.m
T
2026-03-09 00:05:18 +00:00

96 lines
4.1 KiB
Matlab
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
%% ---- Slotted waveguide column (dielectric-filled, alumina) ----
% Your numbers:
f0 = 10.5e9; % Hz
eps_r = 9.8; % alumina (99.599.8%)
a = 8.5e-3; % broad wall (m)
b = 3.5e-3; % narrow wall (m)
Mcols = 16; % (for panel-level, not used here)
Nslots = 32; % per column
% Physical constants
c0 = physconst('LightSpeed');
lam0 = c0/f0;
%% ---- Rectangular waveguide TE10 cutoff (filled with eps_r) ----
% fc10 = (c0 / (2*a*sqrt(eps_r)))
fc10 = c0/(2*a*sqrt(eps_r));
if f0 <= fc10
error('f0 is below TE10 cutoff for the filled waveguide.')
end
% Guide wavelength in dielectric: λg = λ0 / sqrt(1 - (fc10/f0)^2)
lamg = lam0 / sqrt(1 - (fc10/f0)^2);
%% ---- Design rules derived from λg ----
% Slot spacing: s = λg/2
slotSpacing = lamg/2; % ~ 16.915 mm (with λg=33.83 mm)
% Slot length (longitudinal): L ≈ 0.47*λg (trim in proto if needed)
slotLen = 0.47*lamg; % ~ 15.9 mm
% Slot width: keep electrically narrow but machinable
slotWid = 0.02*lam0; % ~ 0.57 mm at 10.5 GHz
% Slot offset from centerline: start ~ 0.25*a (tune per-slot for taper)
x_offset = 0.25*a; % ~ 2.1 mm
% Probe length inside dielectric (for note/consistency):
Lprobe = lam0/(4*sqrt(eps_r)); % ~ 2.28 mm
%% ---- Overall waveguide length and feed locations ----
% Center the slot train about z=0 (Antenna Toolbox uses feed/slot offsets
% relative to the waveguide center by default).
z_first = ((Nslots)/2-0.5)*slotSpacing ; % first-slot z position (centered array)
z_feed = -z_first - lamg/4; % ~ quarter-wave behind first slot
z_short = z_feed - lamg/4; % backshort another quarter-wave behind
% Put some margin beyond the last slot and behind the short:
z_margin_front = 2*slotSpacing;
z_margin_back = 2*slotSpacing;
wgLength = lamg + (Nslots-1)*slotSpacing;
% This keeps the backshort inside the model and gives space beyond last slot.
% Antenna Toolbox expects total Length (z extent), Width (y=a), Height (x=b)
Length = wgLength;
Width = a;
Height = b;
% Slot-to-top: distance from slot center to the top (outer) broad-wall edge.
% If the slot offset from center is +x_offset toward the top wall,
% then SlotToTop ≈ (a/2 - x_offset).
slotToTop = (a/2 - x_offset);
% The SlotOffset property is the lateral offset from the guide centerline.
% Use +x_offset (sign convention follows object; if inverted, use -x_offset).
slotOffset = x_offset;
% Feed parameters:
feedHeight = Lprobe; % use the probe length as the pin intrusion (model note)
feedWidth = 1.2e-3; % ~1.2 mm hole/pin diameter (adjust to your connector)
feedOffset = [z_feed, 0]; % [z y] offset (y=0 at column center)
%% ---- Build the slotted waveguide in Antenna Toolbox ----
slotShape = antenna.Rectangle('Length',slotLen,'Width',slotWid);
ant = waveguideSlotted( ...
'Length', Length, ...
'Width', Width, ...
'Height', Height, ...
'NumSlots', Nslots, ...
'Slot', slotShape, ...
'SlotSpacing', slotSpacing, ...
'SlotOffset', slotOffset, ...
'ClosedWaveguide', 1, ...
'SlotToTop', lamg/2, ...
'FeedHeight', feedHeight, ...
'FeedOffset', feedOffset, ...
'FeedWidth', feedWidth);
% For plotting/inspection
figure; show(ant); title('Dielectric-informed slotted waveguide (geometry driven)');
%% ---- Optional: verify positions quickly in the command window ----
fprintf('lambda0 = %.3f mm, lambda_g = %.3f mm\n', lam0*1e3, lamg*1e3);
fprintf('SlotSpacing = %.3f mm, SlotLen = %.3f mm, SlotWid = %.3f mm\n', slotSpacing*1e3, slotLen*1e3, slotWid*1e3);
fprintf('Slot offset = %.3f mm (SlotToTop = %.3f mm)\n', slotOffset*1e3, slotToTop*1e3);
fprintf('z_first = %.2f mm, z_feed = %.2f mm, z_short = %.2f mm\n', z_first*1e3, z_feed*1e3, z_short*1e3);
fprintf('FeedHeight (probe) ~ %.2f mm, FeedWidth ~ %.2f mm\n', feedHeight*1e3, feedWidth*1e3);