Add files via upload
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
%% ---- Slotted waveguide column (dielectric-filled, alumina) ----
|
||||
% Your numbers:
|
||||
f0 = 10.5e9; % Hz
|
||||
eps_r = 9.8; % alumina (99.5–99.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);
|
||||
Reference in New Issue
Block a user