Offset paraboloid reflector design
8 views (last 30 days)
Show older comments
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)
0 Comments
Answers (1)
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);
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
0 Comments
See Also
Categories
Find more on Installed Antenna and Large Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!