Main Content

customAntennaStl

Create custom 3-D antenna geometry using STL, STEP, or IGES files

Since R2020a

Description

The customAntennaStl object creates a 3-D antenna geometry and mesh using stereolithography (STL), standard for the exchange of product model data (STEP), or initial graphics exchange specification (IGES) files. An STL file defines a 3-D surface in the form of points and triangles. While STEP and IGES files save the 3-D geometry data in ASCII format.

Top view of plateMesh.stl, a default custom antenna 3-D geometry file used in customAntennaStl object.

Creation

Description

ca = customAntennaStl returns a 3-D antenna represented by a custom geometry with default property values.

example

ca = customAntennaStl(Name=Value) sets properties using one or more name-value arguments. Name is the property name and Value is the corresponding value. You can specify several name-value arguments in any order as Name1=Value1,...,NameN=ValueN. Properties that you do not specify, retain their default values.

For example, ca = customAntennaStl(FileName="plate.stl",PhaseShift=10) creates a custom antenna from the geometry specified in the plate.stl file and applies a phase shift of 10 degrees to the element.

example

Properties

expand all

Name of the geometry information file to import, specified as a string scalar.

Example: "plate.stl"

Data Types: string

Units for the geometry imported from the STL, STEP, or IGES file, specified as "m", "mm", "cm", "um", "ft", or "in".

Note

This property is read-only for STEP and IGES files.

Example: "mm"

Data Types: string

This property is read-only.

Antenna feed location, specified as a three-element real vector in meters. The first, second, and third elements of the vector are the x-, y-, and z- coordinates, respectively, in a Cartesian coordinate system.

This property displays the antenna feed location that you set using the createFeed function.

Data Types: double

Excitation amplitude of antenna elements, specified as a positive scalar in volts.

Example: 1.8

Data Types: double

Phase shift for the antenna elements, specified as a numeric scalar in degrees.

Example: 10

Data Types: double

Option to use the input geometry file directly as a mesh for analysis, specified as a numeric or logical 1 (true) or 0 (false). To use the input file as a mesh, set this property to 1 (true).

Example: 1

Data Types: logical

Tilt angle of the antenna in degrees, specified as a scalar or vector. For more information, see Rotate Antennas and Arrays.

Example: 90

Example: Tilt=[90 90],TiltAxis=[0 1 0;0 1 1] tilts the antenna at 90 degrees about the two axes defined by the vectors.

Data Types: double

Tilt axis of the antenna, specified as one of these values:

  • Three-element vector of Cartesian coordinates in meters. In this case, each coordinate in the vector starts at the origin and lies along the specified points on the x-, y-, and z-axes.

  • Two points in space, specified as a 2-by-3 matrix corresponding to two three-element vectors of Cartesian coordinates. In this case, the antenna rotates around the line joining the two points.

  • "x", "y", or "z" to describe a rotation about the x-, y-, or z-axis, respectively.

For more information, see Rotate Antennas and Arrays.

Example: [0 1 0]

Example: [0 0 0;0 1 0]

Example: "Z"

Data Types: double | string

Object Functions

axialRatioCalculate and plot axial ratio of antenna or array
beamwidthBeamwidth of antenna
chargeCharge distribution on antenna or array surface
createFeedCreate feed location for customAntennaStl object
currentCurrent distribution on antenna or array surface
efficiencyCalculate and plot radiation efficiency of antenna or array
EHfieldsElectric and magnetic fields of antennas or embedded electric and magnetic fields of antenna element in arrays
feedCurrentCalculate current at feed for antenna or array
impedanceCalculate and plot input impedance of antenna or scan impedance of array
infoDisplay information about antenna, array, or platform
memoryEstimateEstimate memory required to solve antenna or array mesh
meshMesh properties of metal, dielectric antenna, or array structure
meshconfigChange meshing mode of antenna, array, custom antenna, custom array, or custom geometry
msiwriteWrite antenna or array analysis data to MSI planet file
patternPlot radiation pattern and phase of antenna or array or embedded pattern of antenna element in array
patternAzimuthAzimuth plane radiation pattern of antenna or array
patternElevationElevation plane radiation pattern of antenna or array
peakRadiationCalculate and mark maximum radiation points of antenna or array on radiation pattern
rcsCalculate and plot monostatic and bistatic radar cross section (RCS) of platform, antenna, or array
returnLossCalculate and plot return loss of antenna or scan return loss of array
showDisplay antenna, array structures, shapes, or platform
sparametersCalculate S-parameters for antenna or array
stlwriteWrite mesh information to STL file
vswrCalculate and plot voltage standing wave ratio (VSWR) of antenna or array element

Examples

collapse all

Use geometry files with different extensions to create custom antennas. Create custom 3-D antennas using a customAntennaStl object.

c1 = customAntennaStl(FileName="plateMesh.stl");
c2 = customAntennaStl(FileName="cylinder.step");
c3 = customAntennaStl(FileName="cube.iges");

Create an antenna feed and calculate the antenna impedance at 110 MHz for the first and third antennas and 1 GHz for the second antenna.

c1.createFeed([0 0 0],1);
Z1 = impedance(c1,110e6);
disp(c1)
  customAntennaStl with properties:

          FileName: "plateMesh.stl"
             Units: 'm'
      FeedLocation: [0 0 0]
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]
c2.createFeed([0 -0.1 -0.05],1);
Z2 = impedance(c2,1e9);
disp(c2)
  customAntennaStl with properties:

          FileName: "cylinder.step"
             Units: 'mm'
      FeedLocation: [0 -0.1000 -0.0500]
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]
c3.createFeed([-0.05 -0.1 0.05],1);
Z3 = impedance(c3,110e6);
disp(c3)
  customAntennaStl with properties:

          FileName: "cube.iges"
             Units: 'mm'
      FeedLocation: [-0.0500 -0.1000 0.0500]
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]

Display the structure of custom 3-D antennas.

figure
show(c1)

Figure contains an axes object. The axes object with title customAntennaStl element, xlabel x (m), ylabel y (m) contains 3 objects of type patch, surface. These objects represent PEC, feed.

figure
show(c2)

Figure contains an axes object. The axes object with title customAntennaStl element, xlabel x (mm), ylabel y (mm) contains 3 objects of type patch, surface. These objects represent PEC, feed.

figure
show(c3)

Figure contains an axes object. The axes object with title customAntennaStl element, xlabel x (mm), ylabel y (mm) contains 3 objects of type patch, surface. These objects represent PEC, feed.

Create a customAntennaStl object using the specified STL file.

ant = customAntennaStl
ant = 
  customAntennaStl with properties:

          FileName: []
             Units: 'm'
      FeedLocation: []
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]

ant.FileName ="patchMicrostrip_ColumnFeed.stl"
ant = 
  customAntennaStl with properties:

          FileName: "patchMicrostrip_ColumnFeed.stl"
             Units: 'm'
      FeedLocation: []
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]

Specify the FeedLocation and NumEdges inputs to the createFeed function. Select the edges based on the distance between the feed location and the midpoints of the edges. Edges can be single-feed or a closed polygon.

ant.createFeed([-0.018750000000000 0 0],8)
show(ant)

Figure contains an axes object. The axes object with title customAntennaStl element, xlabel x (mm), ylabel y (mm) contains 3 objects of type patch, surface. These objects represent PEC, feed.

Plot the current distribution at 1.75 GHz.

figure
current(ant,1.75e9,Scale="log")

Figure contains an axes object. The axes object with title Current distribution (log), xlabel x (m), ylabel y (m) contains 3 objects of type patch.

Calculate the impedance at 1.75 GHz.

z = impedance(ant,1.75e9)
z = 
83.3968 -52.1467i

Create a customAntennaStl object.

ant = customAntennaStl;

Import the STL files.

ant.FileName = "patchMicrostrip_ColumnFeed.stl";

Create the antenna feed using the UI figure window.

createFeed(ant);

Figure Create Feed contains an axes object and other objects of type uipanel. The axes object with title Select a Feeding Edge or Polygon., xlabel x (mm), ylabel y (mm) is empty.

The UI figure window contains the Slice Antenna pane and the Add Feed pane.

Click Slicer Mode, then click YZ to select the plane along which to slice your antenna.

Select the region to hide and then click Hide to hide the selected region.

Repeat the process until you reach the region of interest.

Select Select a Feeding Edge or Polygon under the Add Feed pane to select the desired feeding edge or feeding polygon.

Select the edges of the column that forms a closed polygon. The selected edges must be connected to other edges, otherwise the UI figure window displays an error.

Click OK to define the selected edges as feeding edges. The software displays the structure with the feed.

The software also displays the feed location.

Verify the location of the antenna feed.

ant
ant = 
  customAntennaStl with properties:

          FileName: "patchMicrostrip_ColumnFeed.stl"
             Units: 'm'
      FeedLocation: []
    AmplitudeTaper: 1
        PhaseShift: 0
     UseFileAsMesh: 0
              Tilt: 0
          TiltAxis: [1 0 0]

References

[1] Balanis, Constantine A. Antenna Theory: Analysis and Design. Fourth edition. Hoboken, New Jersey: Wiley, 2016.

Version History

Introduced in R2020a

expand all