Create array of customAntennaStl with multiple feeding points
2 views (last 30 days)
Show older comments
Hi,
I am new to Matlab.
I want to create an array of antennas from a STL model I have made.
So far my code looks like this:
antenna = customAntennaStl(FileName=...*insert filepath*);
antenna.createFeed([0.55 0.635 0],1);
% Reduce the mesh size for faster calculations
mesh(antenna, MaxEdgeLength = 0.05);
figure
show(antenna)
I have tried unsuccessfully to create an array out of this single element. All the methods I found only work for predesigned antennas.
Ideally I want to create a square array of such antennas that would look like the photo attached, with multiple feeding points, since the antennas are not connected.
Please note that I am not attached to using a customAntennaStl, I would be interested in any other method, as long as I can roughly keep the shape of the antenna. The antenna can also be flattened to two dimensions. Any suggestions appreciated
--------
For completeness in the simulation I want to do, antennas facing each other are driven with opposite phases at a certain frequency. The two pairs of antennas are driven in quadrature.
Necessary files are attached.
0 Comments
Answers (1)
Aditya Saikumar
on 15 Jul 2024
Hi Youssef,
To create an array of antennas as shown in the image given, "circularArray" function can be used.
Create array of antennas:
% Read the STL file
tr = stlread('single_antenna_for_matlab_3d.stl');
antennaShape = shape.Custom3D(tr);
% Create antennas
antenna1 = customAntenna(shape=antennaShape);
antenna2 = customAntenna(shape=antennaShape);
antenna3 = customAntenna(shape=antennaShape);
antenna4 = customAntenna(shape=antennaShape);
% Create feed points for each antenna
antenna1.createFeed([0.55 0.635 0],1);
antenna2.createFeed([0.55 0.635 0],1);
antenna3.createFeed([0.55 0.635 0],1);
antenna4.createFeed([0.55 0.635 0],1);
% Tilt the antennas
antenna1.Tilt = 270;
antenna1.TiltAxis = "Z";
antenna2.Tilt = 0;
antenna2.TiltAxis = "Z";
antenna3.Tilt = 90;
antenna3.TiltAxis = "Z";
antenna4.Tilt = 180;
antenna4.TiltAxis = "Z";
% Create a vector of the antennas
antennas = [antenna1, antenna2, antenna3, antenna4];
% Create a circular antenna array
array = circularArray('Element', antennas, 'Radius', 0.7); % Adjust radius as needed
% Set phase shift
array.PhaseShift = [0 0 180 180];
% Reduce the mesh size for faster calculations
mesh(array, 'MaxEdgeLength', 0.05);
% Visualize the antenna array
figure;
show(array);
Output:
"circularArray" object can be used to set properties for the whole array. To learn more about it, please go through the following documentation link:
"customAntenna" object can be used to set properties for the individual antennas. To learn more about it, please go through the following documentation link:
To learn more about rotating antennas and arrays, please go through the following documentation link:
Regards,
Aditya
0 Comments
See Also
Categories
Find more on Analysis, Benchmarking, and Verification 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!