Main Content

customAntenna

Create custom antenna from geometric shapes

Since R2023b

    Description

    The customAntenna object lets you create an antenna from a custom shape. You can use the basic 2-D and 3-D shapes from the catalog and perform geometric operations on them to create a custom shape. You can also use the triangulation or shape vertices to create custom shapes. You assign a feed to a location on the shape to convert it into an antenna. Perform port, surface, and field analysis on this antenna. You can use this antenna as an exciter for the cavity and reflector type backing structures, element in the arrays, element for the installed antenna analysis, or element in the plane wave excitation environment.

    Creation

    Description

    c = customAntenna creates a custom antenna object.

    example

    c = customAntenna(Name=Value) sets additional 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 not specified retain their default values.

    example

    Properties

    expand all

    Antenna shape, specified as a shape object from these:

    Example: shape.Circle

    Example: shape.Sphere

    Location of the antenna feed created using the createFeed function, returned as either a two-element real vector for 2-D shapes or a three-element real vector for 3-D shapes. Feed location follows the Cartesian coordinate system.

    Example: [1.2 0.25]

    Example: [-0.0908 -0.1250 0.9755]

    Data Types: double

    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

    Lumped elements added to the antenna feed, specified as a lumpedElement object. You can add a load anywhere on the surface of the antenna. By default, the load is at the feed.

    Example: Load=lumpedElement(Impedance=75)

    Example: antenna.Load = lumpedElement(Impedance=75)

    Object Functions

    axialRatioCalculate and plot axial ratio of antenna or array
    bandwidthCalculate and plot absolute bandwidth of antenna or array
    beamwidthBeamwidth of antenna
    chargeCharge distribution on antenna or array surface
    createFeedCreate feed location for custom antenna
    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
    optimizeOptimize antenna or array using SADEA optimizer
    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
    resonantFrequencyCalculate and plot resonant frequency of antenna
    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

    This example shows how to build a horn antenna using 2D and 3D shapes from the shapes catalog and customAntenna object. Follow a two step approach to create a horn antenna. Divide a horn antenna into two parts - a waveguide and a horn taper. Join them to create the horn shape. Then use this shape to create the horn antenna. Add feed to this antenna and plot its directivity pattern.

    Define the dimensions of the horn and feed region in meters.

    length = 0.0095;
    width = 0.019;
    height = 0.05;
    feedHeight = 0.0048;
    feedWidth = 1e-4;
    feedOffset = [-0.0155 0];
    flarelength = 0.102;

    Use shape.Box object to create a box.

    wShape = shape.Box(Length=length, Width=width,...
        Height=height);

    Remove one face of the box to create a hollow box. Orient the shape appropriately.

    removeFaces(wShape,2);

    Figure contains an axes object. The axes object with xlabel x-axis, ylabel y-axis contains 10 objects of type patch.

    rotate(wShape,90,[0 0 0],[0 1 0]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    translate(wShape,[0 0 length/2]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    Create a horn taper by linearly extruding and orienting a rectangular shape.

    rect = shape.Rectangle(Length=length, Width=width);
    show(rect)

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    hornTaper = extrudeLinear(rect,flarelength, Scale=...
    [3.5579 3], NumSegments=1);
    show(hornTaper)

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains an object of type patch.

    rotate(hornTaper,90,[0 0 0],[0 1 0]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains an object of type patch.

    translate(hornTaper,[height/2 0 length/2]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains an object of type patch.

    Join the waveguide and horn taper shapes to form the horn shape.

    hornShape = add(wShape,hornTaper, RetainShape=1);
    show(hornShape)

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 3 objects of type patch.

    Create a rectangular feed probe and orient it.

    feedProbe = shape.Rectangle(Length=feedHeight, Width=feedWidth);
    rotate(feedProbe,90,[0 0 0],[0 1 0]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    translate(feedProbe,[feedOffset(1) feedOffset(2) feedHeight/2]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    Use the customAntenna object to create the horn antenna from the horn shape and add feed to it.

    ant = customAntenna(Shape=hornShape);
    ant = createFeed(ant,[feedOffset 0],1, FeedShape=feedProbe);
    show(ant)

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

    Plot the directivity pattern of the horn antenna at 7.847 GHz.

    pattern(ant,7.847e9)

    Figure contains 2 axes objects and other objects of type uicontrol. Axes object 1 contains 3 objects of type patch, surface. Hidden axes object 2 contains 17 objects of type surface, line, text, patch.

    This example shows how to create a custom antenna from an element in the antenna catalog.

    Create a default horn antenna and manually mesh it with a maximum edge length of 0.01 m.

    ant = horn;
    feedLoc = ant.FeedLocation;
    m = mesh(ant,MaxEdgeLength=0.01);

    Use triangulation to store the mesh data of this horn antenna.

    p = m.Points';
    t = m.Triangles';
    tr = triangulation(t(:,1:4),p)
    tr = 
      triangulation with properties:
    
                  Points: [328x3 double]
        ConnectivityList: [604x4 double]
    
    

    Use shape.Custom3D to generate a horn shape from triangulation data. Visualize the shape.

    hornShape = shape.Custom3D(tr);
    show(hornShape)

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    Create a box.

    hole = shape.Box(Length=0.012, Width=0.004, Height=0.005);
    translate(hole,[-hole.Length 0 (hole.Length/2)+hole.Height/2]);

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 2 objects of type patch.

    Cut a hole in the horn geometry by subtracting the box from it. Visualize the custom shape.

    hornShape = subtract(hornShape,hole);
    show(hornShape)

    Figure contains an axes object. The axes object with xlabel x (mm), ylabel y (mm) contains 3 objects of type patch.

    Use customAntenna to create a custom antenna from the custom horn shape. Add feed to it and visualize the antenna.

    ant = customAntenna(Shape=hornShape);
    [~] = createFeed(ant,feedLoc,1);
    figure
    show(ant)
    title("Custom Horn Antenna")

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

    This example shows how to create a conformal array of 4 custom microstrip patch antennas on a common ground plane.

    Create ground plane, patch, and feed shape. Add the patch and feed shapes to generate the patch antenna shape.

    gnd = shape.Rectangle(Length=0.2, Width=0.2);
    patch1 = shape.Rectangle(Length=0.02, Width=0.02);
    feed1 = shape.Rectangle(Length=0.006, Width=0.001);
    [~] = rotateY(feed1,90);
    [~] = translate(feed1,[0 0 feed1.Length/2]);
    [~] = translate(patch1,[0 0 feed1.Length]);
    ant1 = patch1 + feed1;

    Create 3 identical patch antenna shapes from the initial design.

    ant2 = copy(ant1);
    ant3 = copy(ant1);
    ant4 = copy(ant1);
    [~]= translate(ant1,[0.01 0 0]);
    [~]= translate(ant2,[0.06 -0.08 0]);
    [~]= translate(ant3,[0.05 0.04 0]);
    [~]= translate(ant4,[-0.065 0.06 0]);

    Add all the antenna shapes and the ground plane shape to generate a conformal array configuration.

    antShape = ant1 + ant2 + ant3 + ant4;
    arrayShape = antShape + gnd;

    Use this conformal array shape in a customAntenna and add feed points to the array elements. Visualize the conformal array.

    conformalArrayAntenna= customAntenna(Shape=arrayShape);
    [~] = createFeed(conformalArrayAntenna,[0.01 0 0; 0.06 -0.08 0; 0.05 0.04 0; -0.065 0.06 0],[1 1 1 1]);
    show(conformalArrayAntenna)

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

    Version History

    Introduced in R2023b