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.Weight=[100;40;35;90;15]; outputTable.Units={'dB';'dB';'dB';'bits';'dB'}; outputTable.Spec={'> 72';'> 74';'> 72';'maximize 11.5';'< -78'}
outputTable=5×5 table
Test Name Weight Units Spec
________ ______________ ______ ________ _________________
"ACMeas" {'SNR' } 100 {'dB' } {'> 72' }
"ACMeas" {'SFDR' } 40 {'dB' } {'> 74' }
"ACMeas" {'SINAD' } 35 {'dB' } {'> 72' }
"ACMeas" {'ENOB' } 90 {'bits'} {'maximize 11.5'}
"ACMeas" {'NoiseFloor'} 15 {'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')
Number of parameters: 4 Recommended max number of simulations: 200 Recommended min surrogate points: 120
moptimizer =
msbOptimizer with properties:
DesignName: 'DSM2ndOrder'
Solver: "surrogateopt"
SimulationEnvironment: 'simulink'
BestSolution: []
BestMetrics: []
FinalOptimizerStatus: []
OutputsSetup: [5×5 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×11 table]
Corners: []
ParameterScaleFactor: [0.0050 0.0050 0.0050 0.0050]
Optimize the parameters.
[sol,metric] = moptimizer.optimizeDesign
Maximum number of simulations: 64
Number of parallel simulations: 8
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Running 8 simulations in Simulink...
Optimizer was unable to meet some or all the specifications.
You can continue optimization from the current state by using the checkpoint file.
E.g., if your object is called 'optimizer', run the following command:
[solution, bestMetrics] = optimizer.optimizeDesign('useCheckPoint',true)

sol=4×2 table
Name Value
____ _____
"a1" 0.155
"a2" 0.6
"b1" 0.155
"b2" 0.66
metric=5×4 table
Name FinalMetrics Specs Units
____________ ____________ _______________ ______
"SNR" 70.699 "> 72" "dB"
"SFDR" 80.248 "> 74" "dB"
"SINAD" 70.699 "> 72" "dB"
"ENOB" 11.452 "maximize 11.5" "bits"
"NoiseFloor" -78.276 "< -78" "dB"
As you can see, the function was not able to meet the required SNR amd SINAD specifications. You can use the check point file to continue optimizing 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.
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.
Data Types: double
Show optimization progress in a plot.
Data Types: logical
Name of the file to create checkpoints and restart the optimization process, specified as a string or char 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.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- 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)