![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1734263/image.png)
Create array of customAntennaStl with multiple feeding points
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Aditya Saikumar
el 15 de Jul. de 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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1734263/image.png)
"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 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!