optimizeDesign
Syntax
Description
Examples
Define the performance specifications of a second-order DSM.
outputTable=table(); outputTable.Test=["ACMeas";"ACMeas";"ACMeas";"ACMeas";"ACMeas"]; outputTable.Name={'SNR';'SFDR';'SINAD';'ENOB';'NoiseFloor'}; outputTable.Units={'dB';'dB';'dB';'bits';'dB'}; outputTable.Spec={'> 72';'> 74';'> 72';'maximize 11.5';'< -78'}
outputTable=5×4 table
Test Name Units Spec
________ ______________ ________ _________________
"ACMeas" {'SNR' } {'dB' } {'> 72' }
"ACMeas" {'SFDR' } {'dB' } {'> 74' }
"ACMeas" {'SINAD' } {'dB' } {'> 72' }
"ACMeas" {'ENOB' } {'bits'} {'maximize 11.5'}
"ACMeas" {'NoiseFloor'} {'dB' } {'< -78' }
Define the variables to optimize.
variableTable=table();
variableTable.parameters={'a1';'a2';'b1';'b2'};
variableTable.values=["0.15:0.005:0.16";"0.55:0.005:0.7";"0.15:0.005:0.16";"0.55:0.005:0.7"]variableTable=4×2 table
parameters values
__________ _________________
{'a1'} "0.15:0.005:0.16"
{'a2'} "0.55:0.005:0.7"
{'b1'} "0.15:0.005:0.16"
{'b2'} "0.55:0.005:0.7"
Create the msbOptimizer object.
moptimizer = msbOptimizer(SimulationEnvironment='simulink',OutputsSetup=outputTable,VariableSetup=variableTable,DesignName='DSM2ndOrder')
moptimizer =
msbOptimizer with properties:
DesignName: 'DSM2ndOrder'
Solver: "surrogateopt"
SimulationEnvironment: 'simulink'
BestSolution: []
BestMetrics: []
FinalOptimizerStatus: []
OutputsSetup: [5×4 table]
ParametersSetup: [4×2 table]
ParameterNames: ["a1" "a2" "b1" "b2"]
ParameterValues: ["0.15:0.005:0.16" "0.55:0.005:0.7" "0.15:0.005:0.16" "0.55:0.005:0.7"]
Eflag: []
Trials: []
Constraints: [5×9 table]
Corners: []
Optimize the parameters.
[sol,metric] = moptimizer.optimizeDesign
Maximum number of simulations: 100 Number of parallel simulations: 1

Optimizer was able to meet all the specifications.
sol=4×2 table
Name Value
____ _____
"a1" 0.15
"a2" 0.575
"b1" 0.155
"b2" 0.635
metric=5×4 table
Name FinalMetrics Specs Units
____________ ____________ _______________ ______
"SNR" 72.519 "> 72" "dB"
"SFDR" 80.869 "> 74" "dB"
"SINAD" 72.519 "> 72" "dB"
"ENOB" 11.754 "maximize 11.5" "bits"
"NoiseFloor" -80.755 "< -78" "dB"
As you can see, the function meets the required specifications. You can use the check point file to continue further optimization from the current state.
Input Arguments
Circuit design to optimize, specified as an msbOptimizer object The
object includes the name of the simulation environment, the name of the circuit design,
the performance specifications, and the variables to optimize.
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.
Example: [sol,metric] =obj.optimizeDesign(ProgressPlot='true')
optimizes the circuit design defined in the obj object and shows the
optimization progress in a plot.
Number of parallel simulations per iteration, specified as a nonnegative integer scalar.
Data Types: double
Maximum number of simulations to run, specified as a nonnegative integer scalar.
The default is max(100,10*nvar), where nvar is the number of problem
variables.
Data Types: double
Minimum number of random sample points to create at the start of a surrogate
creation phase, specified as a nonnegative integer scalar. The default is max(20,2*nvar), where nvar is the number of problem
variables. For more information, see .Surrogate Optimization Algorithm (Global Optimization Toolbox).
Data Types: double
Show optimization progress in a plot.
Data Types: logical
The metric name to plot on the progress plot, specified as a string or character vector. The default is the first metric on the constraint table.
Name of the file to create checkpoints and restart the optimization process, specified as a string or character vector.
Use the checkpoint file for optimization. The function can only use this argument after the creation of a checkpoint file at the end of a simulation run.
Data Types: logical
Optimization solver used to optimize circuit parameters. You can only select
surrogateopt.
Handle to objective function that evaluates the objective.
Initial points for surrogate optimization, specified as a matrix or struct.
Data Types: double
Random number generator seed, specified as a nonnegative integer scalar.
Data Types: double
Random number generator algorithm used by optimization solver, specified as a string.
Data Types: char
Output Arguments
Optimized variables or parameters, returned as a table. The elements of the table
matches the variables or parameters defined in the VariableSetup
argument in mbsOptimizer object.
Performance metrics using optimized variables or parameters, returned as a table.
The elements of the table matches the variables or parameters defined in the
OutputsSetup argument in mbsOptimizer
object.
Version History
Introduced in R2024b
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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)