Offset paraboloid reflector design

8 views (last 30 days)
Albert Zurita
Albert Zurita on 13 Jun 2024
Edited: Umeshraja on 23 Sep 2024
I'm playing with the Antenna Toolbox, but I can't generate an offset reflector where the paraboloid is not symmetric (e.g., I would like only to have a section of the parabola, defining focal length, diameter, clearance...). Any attempt of using the propertires of the reflectorParabolic just moves the feed, reflector size, tilt...but always symmetric parabola.
ant = reflectorParabolic;
ant.Exciter = design(hornConical,18e9);
ant.Tilt = 40;
ant.Radius = 0.5;
ant.FocalLength = 1;
ant.FeedOffset = [0 0 0];
ant.Exciter.Tilt = 90;
show(ant)

Answers (1)

Umeshraja
Umeshraja on 23 Sep 2024
Edited: Umeshraja on 23 Sep 2024
I understand you're trying to create an offset paraboloid reflector design using MATLAB's Antenna Toolbox, but you are having trouble generating an asymmetric section of the parabola. To achieve this, you can isolate the mesh for the reflector and extract only the desired portion of the parabola. You can then create an STL file from the reflector surface and use it as the platform for an installed antenna analysis.
Here's a demonstration which considered reflector with a dipole exciter, focusing on a specific section of the parabola within the specified range
close all;
% Define frequency and dimensions
f = 3.5e9; % Frequency in Hz
D = 1.2; % Diameter of the reflector
F_by_D = 0.3; % Focal length to diameter ratio
% Design the parabolic reflector
p = design(reflectorParabolic, f);
p.Radius = D/2; % Set the radius of the reflector
p.FocalLength = F_by_D * D; % Set the focal length
p.Tilt = 90; % Tilt the reflector
p.TiltAxis = [0 1 0]; % Define the tilt axis
feedLoc = p.FeedLocation; % Get the feed location
% Display the designed reflector
figure;
show(p);
% Display the radiation pattern
figure;
Dmax = pattern(p, f, 0, 0);
pattern(p, f);
%% Isolate and export the desired section of the parabolic reflector
p.FeedOffset = [0, 0, 0]; % Reset feed offset
[Pt, t] = exportMesh(p); % Export the mesh points and connectivity list
% Identify the indices of points to be removed, keeping only the range -0.3 to 0.3
idrad = find(Pt(:,1) >= p.FocalLength | Pt(:,3) >= 0.3 | Pt(:,3) <= -0.3);
% Initialize array to store triangles to be removed
removeTri = [];
for i = 1:size(t,1)
if (any(t(i,1)==idrad)|| any(t(i,2)==idrad)||any(t(i,3)==idrad))
removeTri = [removeTri, i];
end
end
% Remove identified triangles
tref = t;
tref(removeTri,:) = [];
% Create a triangulation object and export to STL
TR = triangulation(tref(:,1:3), Pt);
Warning: Some input points are not referenced by the triangulation.
stlwrite(TR, 'UpdatedAnt.stl');
% Set up the installed antenna with the custom platform
pn = installedAntenna;
pl = platform;
exciter = p.Exciter;
exciter.Tilt = 0;
exciter.TiltAxis = [1 0 0];
pl.FileName = 'UpdatedAnt.stl';
pl.Units = 'm';
pn.Platform = pl;
pn.Element = exciter; % Excitation element is the same as before
pn.ElementPosition = [p.FeedLocation(1), 0, 0];
% Display the installed antenna
figure;
show(pn);
% Display the pattern of the installed antenna
figure;
pattern(pn, f);
We can also create custom antenna using 'shape.custom3D'
To know more, please refer to the following MATLAB R2023b documentation

Categories

Find more on Installed Antenna and Large Structures in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!