Main Content

design

Design prototype antenna or arrays for resonance around specified frequency or create AI-based antenna from antenna catalog objects

Description

example

hant = design(antenna,frequency) designs an antenna object from the antenna library that resonates at the specified frequency.

example

aiant = design(antenna,frequency,ForAI = true) creates an Artificial Intelligence (AI) based antenna with a set of tunable properties which you can tune to explore the design space and perform AI-based analysis.

Note

Supported antennas for this feature are:

To use this feature, you need license to the Statistics and Machine Learning Toolbox™ in addition to the Antenna Toolbox™.

harray = design(array,frequency) designs an array of dipoles that operates at the specified frequency. The spacing between elements is half a wavelength.

example

harray = design(array,frequency,elements) designs an array of elements for operation at the specified frequency. The spacing between elements is half a wavelength, if possible. If the object cannot achieve half-wavelength spacing, it uses the element size to calculate the separation between elements and evenly distributes the elements on a sphere with a radius proportional to the largest element in element.

harray = design(conformalarray,frequency) designs a conformal array of dipole and bowtie elements at the specified frequency. The object places the elements in the locations specified by the default conformalArray object. If the object cannot place elements at the specified positions due to the intersection of elements, it uses the element size to calculate the spacing between elements and distributes the elements on a sphere with a radius proportional to the largest element in the Elementsproperty of the conformalArray object.

harray = design(conformalarray,frequency,elements) designs a conformal array of the specified elements at the specified frequency.

harray = design(infinitearray,frequency) designs an infinite array with a reflector element at the specified frequency.

harray = design(infinitearray,frequency,elements) designs an infinite array of the specified elements at the specified frequency.

Note

  • Antennas or arrays that you design with the design function resonate around the design frequency with an error tolerance of 10–15%. To reduce this tolerance and optimize your antenna or array design, use the optimize function.

  • The design function uses air as its default substrate.

ha = design(planewaveexcitation,frequency) creates a plane-wave excitation environment and calculates the required orientation and polarization of the receiver antenna element to capture the maximum power from the incident plane-wave at the specified frequency.

ha = design(planewaveexcitation,frequency,direction) creates a plane-wave excitation environment with the receiver antenna element orientation direction and calculates the required polarization of this antenna to capture the maximum power from the incident plane-wave at the specified frequency.

Examples

collapse all

Design a prototype microstrip patch antenna that resonates at a frequency of 1 GHz.

p = design(patchMicrostrip,1e9)
p = 
  patchMicrostrip with properties:

               Length: 0.1439
                Width: 0.1874
               Height: 0.0030
            Substrate: [1x1 dielectric]
    GroundPlaneLength: 0.2998
     GroundPlaneWidth: 0.2998
    PatchCenterOffset: [0 0]
           FeedOffset: [0.0303 0]
            Conductor: [1x1 metal]
                 Tilt: 0
             TiltAxis: [1 0 0]
                 Load: [1x1 lumpedElement]

show(p)

Calculate the impedance of the above antenna at the same frequency.

Z = impedance(p,1e9)
Z = 45.5212 - 9.1874i

Design a rectangular array of reflector backed rounded bowtie antennas to operate at 500 MHz.

b = bowtieRounded(Tilt=90,TiltAxis=[0 1 0]);
r = reflector(Exciter=b);
ra = design(rectangularArray,500e6,r);
show(ra)

Plot the radiation pattern of the rectangular array at 500 MHz.

pattern(ra,500e6)

Create a default conformal array.

confarraydef = conformalArray
confarraydef = 
  conformalArray with properties:

            Element: {[1x1 dipole]  [1x1 bowtieTriangular]}
    ElementPosition: [2x3 double]
          Reference: 'feed'
     AmplitudeTaper: 1
         PhaseShift: 0
               Tilt: 0
           TiltAxis: [1 0 0]

Design a conformal array using a dipole antenna, folded dipole antenna, meander dipole antenna, and a monopole antenna at 1 GHz.

desC = design(confarraydef,1e9,{dipole, dipoleFolded, dipoleMeander, monopole}) 
desC = 
  conformalArray with properties:

            Element: {[1x1 dipole]  [1x1 dipoleFolded]  [1x1 dipoleMeander]  [1x1 monopole]}
    ElementPosition: [4x3 double]
          Reference: 'feed'
     AmplitudeTaper: 1
         PhaseShift: 0
               Tilt: 0
           TiltAxis: [1 0 0]

desC.ElementPosition
ans = 4×3

         0         0   -1.3016
         0         0   -2.6939
         0         0   -2.8594
         0         0   -3.1498

show(desC)

Create an infinite array.

infarrayV1 = infiniteArray
infarrayV1 = 
  infiniteArray with properties:

          Element: [1x1 reflector]
      ScanAzimuth: 0
    ScanElevation: 90
     RemoveGround: 0

show(infarrayV1)

Design the above array using a monopole antenna and at 1 GHz frequency.

infarrayV2 = design(infarrayV1,1e9,monopole)
infarrayV2 = 
  infiniteArray with properties:

          Element: [1x1 monopole]
      ScanAzimuth: 0
    ScanElevation: 90
     RemoveGround: 0

show(infarrayV2)

This example shows how to create an AI model based microstrip patch antenna operating at 1.67GHz, and calculate its bandwidth and resonant frequency.

Create AI Model based Microstrip Patch Antenna

Use the design function with ForAI flag set to true to create an AI model based microstrip patch antenna operating at 1.67 GHz.

pAI = design(patchMicrostrip,1.67e9,ForAI=true)
pAI = 
  AIAntenna with properties:

   Antenna Info
               AntennaType: 'patchMicrostrip'
    InitialDesignFrequency: 1.6700e+09

   Tunable Parameters
                    Length: 0.0862
                     Width: 0.1122
                    Height: 0.0018

Show read-only properties

Vary its length and width.

pAI.Length = 0.0855;
pAI.Width = 0.113;

Analyze Microstrip Patch Antenna

Calculate its bandwidth and its lower and upper bounds.

[absBW,fL,fU,matchingStatus] = bandwidth(pAI)
absBW = 2.3422e+07
fL = 1.6679e+09
fU = 1.6913e+09
matchingStatus = categorical
     Matched 

Calculate its resonant frequency.

fR = resonantFrequency(pAI)
fR = 1.7016e+09

Convert the AIAntenna to a regular microstrip patch antenna.

pm = exportAntenna(pAI)
pm = 
  patchMicrostrip with properties:

               Length: 0.0855
                Width: 0.1130
               Height: 0.0018
            Substrate: [1×1 dielectric]
    GroundPlaneLength: 0.1795
     GroundPlaneWidth: 0.1795
    PatchCenterOffset: [0 0]
           FeedOffset: [0.0181 0]
            Conductor: [1×1 metal]
                 Tilt: 0
             TiltAxis: [1 0 0]
                 Load: [1×1 lumpedElement]

Input Arguments

collapse all

Antenna to design, specified as an antenna object from the Antenna Catalog.

Example: dipole

Array to design, specified as a linearArray, rectangularArray, or circularArray object.

Example: rectangularArray

Conformal array to design, specified as a conformalArray object.

You can position elements in a conformal array in three ways:

  • Case 1: Points lie on a line.

  • Case 2: Points lie on a plane.

  • Case 3: Points lie in 3-D space.

Example: c = conformalArray;ca = design(c,50e6,{dipole,dipoleFolded, dipoleJ, bowtieTriangular,dipole,dipole,dipole,dipole,dipole}); Designs a conformal array of specified elements operating at a frequency of 50 MHz.

Infinite array to design, specified as an infiniteArray object.

Example: i = infiniteArray;ia = design(i,1e9,monopole); Designs an infinite array with a monopole antenna element operating at a frequency of 1 GHz.

Plane-wave excitation environment, specified as a planeWaveExcitation object.

Example: design(planeWaveExcitation,1e9); Creates a plane-wave excitation environment and calculates the orientation and polarization of the receiver antenna required to capture the maximum power from the incident plane-wave at 1 GHz.

Resonant frequency of the antenna, specified as a real positive scalar.

Example: 55e6

Data Types: double

Antenna object from the antenna library used in the array, specified as a single antenna element or a cell array in conformal array. For more information on element positions for conformal array, see conformalarray.

Example: r = reflector;ra = design(rectangularArray,500e6,r); Designs a rectangular array of reflectors operating at a frequency of 500 MHz.

Example: c = conformalArray;ca = design(c,50e6,{dipole,dipoleFolded, dipoleJ, bowtieTriangular,dipole,dipole,dipole,dipole,dipole}); Designs a conformal array of specified elements operating at a frequency of 50 MHz.

Orientation of the receiver antenna element, specified as a 1-by-3 vector of Cartesian coordinates or a 1-by-2 vector of azimuth and elevation angles. When you specify the Cartesian coordinates of a point, the function calculates the direction by joining a line from the origin to this point.

Example: design(planeWaveExcitation,1e9,[45 45])

Output Arguments

collapse all

Antenna object operating at the specified reference frequency, returned as an antenna object.

AI antenna object with set of tunable properties which you can tune to perform AI based analysis on this antenna.

Array object operating at the specified reference frequency and specified elements, returned as an array object.

Plane-wave excitation environment, returned as a planeWaveExcitation object. This output contains the receiver antenna orientation and polarization required to capture the maximum power from the incident plane-wave.

Tips

  • Use the mesh function to refine your antenna or array prototypes.

  • Changing the design frequency in the design function changes the antenna or array element dimensions, ground plane dimensions, substrate thickness, feed location, spacing between the array elements, and array radius.

Version History

Introduced in R2016b

expand all