optimize
Syntax
Description
optimizes the antenna or the array at the specified frequency using the specified objective
function and the antenna or array properties and their bounds.optimizedelement
= optimize(element
,frequency
,objectivefunction
,propertynames
,bounds
)
optimizes the antenna or the array using additional name value pairs.optimizedelement
= optimize(___,Name,Value
)
Examples
Maximize Gain of Dipole Antenna
Create and view a default dipole antenna.
ant = dipole; show(ant)
Maximize the gain of the antenna by changing the antenna length from 3 m to 7 m and the width from 0.11 m to 0.13 m.
Optimize the antenna at a frequency of 75 MHz.
optAnt = optimize(ant, 75e6, 'maximizeGain', ... {'Length', 'Width'}, {3 0.11; 7 0.13})
optAnt = dipole with properties: Length: 4.7973 Width: 0.1290 FeedOffset: 0 Conductor: [1x1 metal] Tilt: 0 TiltAxis: [1 0 0] Load: [1x1 lumpedElement]
show(optAnt)
Input Arguments
element
— Antenna or array element
object
Antenna or array element, specified as an antenna object from the Antenna Catalog or array object from the Array Catalog.
frequency
— Frequency of antenna or array analysis during optimization
nonnegative scalar
Frequency of the antenna or array analysis during optimization, specified as a nonnegative scalar in hertz.
Data Types: double
objectivefunction
— Objective of antenna or array optimization
'maximizeGain'
| 'fronttoBackLobeRatio'
| 'maximizeBandwidth'
| 'minimizeBandwidth'
| 'maximizeSLL'
| 'minimizeArea'
Objective of antenna or array optimization, specified as one of the following:
'maximizeGain'
— Maximize the gain of the given antenna or array element'fronttoBackRatio'
— Increase the front-lobe-to-back-lobe ratio of the antenna or array element'maximizeBandwidth'
— Maximize the operation bandwidth of the antenna or array element. Use this objective function for optimizing antennas or arrays for wideband applications.'minimizeBandwidth'
— Minimize the operation bandwidth of the antenna or array element. Use this objective function for optimizing antennas or arrays for narrowband applications.'maximizeSLL'
— Maximize the ratio between the front lobe and the first side lobes of the antenna or array pattern.'minimizeArea'
— Minimizes the maximum area occupied by the antenna or the array element. If the dimension of the element in the array is smaller than the aperture, the objective function minimizes the array aperture.
Data Types: string
| char
propertynames
— Properties of optimizing antenna or array
cell array character vectors
Properties of optimizing antenna or array, specified as a cell array of character vectors. The property names are selected as the design variables in optimization.
Data Types: cell
bounds
— Lower and upper bounds of design variables
two-row cell array
Lower and upper bounds of design variables, specified as a two-row cell array.
Data Types: double
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: optAnt = optimize(ant, 75e6, 'maximizeGain',{'Length', 'Width'}, {3
0.11; 7 0.13})
Constraints
— Optimization constraints
cell array of strings or character vectors
Antenna or array optimization constraints, specified as the comma-separated pair
consisting of 'Constraints'
and a cell array of strings or
character vectors. Each character vector or string must be of the form: (analysis
function) (inequality sign) (value). You can specify any of the following analysis functions:
'Area'
in meter square'Volume'
in meter cube'S11'
in dB'Gain'
in dBi'F/B'
in dBi'SLL'
in dBi
The inequality signs '<'
or '>'
and the
values specifies the analysis function limits. For example, Area <
0.03
indicates that the area of the optimizing antenna must be lesser than
0.03 square meter.
Example: 'Constraints',{Area<0.03}
Data Types: char
| string
Weights
— Weight or penalty of each constraint function
vector of positive integers in the range (1,100)
Weight or penalty of each constraint function, specified as the comma-separated
pair consisting of 'Weights'
and a vector of positive integers in
the range (1,100). If the penalty is set to high, a higher priority is given to the
constraint function in case of multiple constraint optimization. All constraint
functions are weighted equally by default.
Example: 'Weights',8
Data Types: double
FrequencyRange
— Range of frequencies for vector frequency analysis
vector of nonnegative numbers
Range of frequencies for vector frequency analysis like S-parameters, specified as
the comma-separated pair consisting of 'FrequencyRange'
and a
vector of nonnegative numbers with each element unit in hertz.
The default frequency range is obtained from the center frequency considering a bandwidth of less than 10 percent.
Example: 'FrequencyRange',linspace(1e9,2e9,10)
Data Types: double
ReferenceImpedance
— Reference impedance of optimizing antenna or array
50
(default) | scalar
Reference impedance of antenna or array being optimized, specified as the
comma-separated pair consisting of 'ReferenceImpedance'
and a
scalar in ohms
Example: 'ReferenceImpedance',50
Data Types: double
MainLobeDirection
— Azimuth and elevation of main lobe
[0,90]
(default) | two-element vector
Azimuth and elevation of main lobe of antenna or array being optimized, specified
as the comma-separated pair consisting of 'MainLobeDirection'
and a
two-element vector with each element unit in degrees. The first element represents
azimuth and the second element represents elevation.
Example: 'MainLobeDirection',[20 30]
Data Types: double
Iterations
— Number of iterations to run optimizer
200
(default) | positive scalar
Number of iterations to run the optimizer after you build the model, specified as
the comma-separated pair consisting of 'Iterations'
and a positive
scalar.
Example: 'Iterations',40
Data Types: double
UseParallel
— Use Parallel Computing Toolbox™ during optimization
false
(default) | true
Use Parallel Computing Toolbox during optimization, specified as the comma-separated pair consisting of
'UseParallel'
and true
or
false
.
Example: 'UseParallel',true
Data Types: logical
EnableCoupling
— Enable mutual coupling of elements in arrays during optimization
true
(default) | false
Enable mutual coupling of elements in an array during optimization, specified as
the comma-separated pair consisting of 'EnableCoupling'
and
true
or false
.
Example: 'EnableCoupling',false
Data Types: logical
EnableLog
— Enable printing iteration number and value of convergence on command line
false
(default) | true
Enable printing iteration number and value of convergence on the command line,
specified as the comma-separated pair consisting of 'EnableLog'
and
true
or false
.
Example: 'EnableLog',true
Data Types: logical
Output Arguments
optimizedelement
— Optimized antenna or array element
antenna or array object
Optimized antenna or array element, returned as an antenna or array object.
Version History
Introduced in R2020b
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)