The workflow for specifying model dependencies for parallel computing has been streamlined:
Simulink^{®} model variables that are in the MATLAB^{®} base workspace, now get automatically copied to the remote workers. The change ensures that the model on the workers has access to the variables.
You no longer need to either add the variables to the model
workspace, or add a script to the model PreloadFcn
or PostloadFcn
callbacks.
You can now specify file dependencies of your model in the tool and command line. The files get copied to the remote workers.
In the Parameter Estimation or Response Optimization tool:
In the Parallel Options tab of the Options dialog box, select Use the parallel pool during optimization. This option checks for model dependencies and displays the file dependencies in the Model file dependencies tab. The file dependencies check may be incomplete. Enter any undetected file dependencies manually, or click Add file dependency, and select the file to add.
At the command line, use sdo.getModelDependencies
to
get the file and path dependencies of the model.
For more information, see How to Use Parallel Computing for Parameter Estimation, How to Use Parallel Computing for Response Optimization, and How to Use Parallel Computing for Sensitivity Analysis.
You can now generate MATLAB code to perform batch estimation and objective function customization tasks using the Parameter Estimation tool.
For an example, see Generate MATLAB Code for Parameter Estimation Problems (GUI).
A redesigned Parameter Estimation tool streamlines and improves parameter estimation workflows. You can:
Open legacy projects or create new sessions
Preprocess data
Create experiments to store estimation or validation data
Select parameters to estimate
Select estimation options
Validate estimation results
Create estimation progress, measured versus simulated, parameter trajectory, and residual plots
Save sessions
For more information on using the tool, see the Prepare Data for Parameter Estimation and Estimate Parameters from Measured Data examples.
You can now estimate parameters on a perexperiment basis in the Parameter Estimation tool. You can use multiple experiments to estimate a mix of model parameter values, some that are estimated using all the experiments and others that are estimated using individual experiments. For more information, see the Estimate Model Parameters Per Experiment (GUI) example.
Use new commands to analyze the sensitivity of the optimization cost function to model parameters or states. This analysis is also referred to as sensitivity analysis. The new commands support global sensitivity analysis. You sample parameters, specifying distributions such as normal or uniform. (If you have a Statistics Toolbox™ license, you can use its other distributions and Latin hypercube sampling.) Then, evaluate the optimization cost function at each sample point. You can plot the cost function output for the samples to visually analyze trends. You can also quantitatively analyze the relation between the evaluation function and the samples. Analysis methods include correlation, partial correlation (requires a Statistics Toolbox license), and standardized regression. You can configure each analysis method to use either the raw or ranked data.
Examples of using sensitivity analysis:
Before optimization — Determine the influence of the parameters of a Simulink model on the output. Use sensitivity analysis to rank parameters in order of influence so that you can determine the most influential parameters. Optimize the model by tuning the most influential parameters or perform experiments to better characterize those parameters.
After optimization — Test how robust the cost function is to small changes in the values of optimized parameters.
The new commands include sdo.sample
, sdo.evaluate
, sdo.analyze
,
and sdo.scatterPlot
.
For examples of using these commands, see Design
Exploration using Parameter Sampling (Code) or Identify
Key Parameters for Estimation (Code).
RobustCost
property for reducing influence
of outliers in signal trackingUse the new RobustCost
property of sdo.requirements.SignalTracking
objects
for robust treatment of outliers when the software evaluates the requirements.
This option reduces the influence of outliers on the estimation without
you manually modifying your data.
For more information, see sdo.requirements.SignalTracking
.
The default algorithm for the fmincon
method
is Sequential Quadratic Programming (SQP). Previously, the default
algorithm was Active Set.
SQP is better suited than Active Set for problems that specify
both an objective function and constraints. SQP ensures that every
iterate satisfies the specified upper and lower bounds. When an objective
or constraint function returns Inf
, NaN
,
or complex values, the algorithm takes a smaller step, and continues.
If a constraintsonly problem is not successfully solved by SQP, use
Active Set instead.
When performing design optimization or parameter estimation
programmatically, you can specify optimization options using sdo.OptimizeOptions
.
The default value of the MethodOptions.Algorithm
property
of the options object is 'sqp'
. In the
Design Optimization tool, the default Algorithm for Gradient
Descent
is Sequential Quadratic
Programming
.
For more information, see:
fmincon SQP Algorithm in the Optimization Toolbox™ documentation
Design Optimization tool sessions created in previous releases retain their saved optimization settings.
The results of your code, written in a previous release, may be affected if you use the default solver with the default algorithm. That is, your code may yield different results if you:
Call sdo.optimize
with
only two inputs.
Specify an optimization options set with the default
values of the Method
and MethodOptions.Algorithm
properties.
You can revert the optimization settings by using an options
object with sdo.optimize
. This object must specify
the Method
and MethodOptions.Algorithm
properties
as 'fmincon'
and 'activeset'
.
Note:
Your results may be affected by SQP and Active Set treating
the constraint function tolerance differently. SQP treats this tolerance
as a relative bound, proportional to the initial constraint violation,
while Active Set treats it as an absolute bound. To specify a value
for this tolerance at the command line, use the 
The new Design Optimization with Uncertain Variables (Code) example shows how to programmatically optimize a design when there are uncertain variables.
The new Specify Custom Signal Objective with Uncertain Variable (GUI) example shows how to specify a custom objective function for a model signal in the Design Optimization tool.
Redesigned commands and objects streamline the programmatic parameter estimation workflow. You can now:
Estimate parameters and initial conditions on a per experiment basis.
Specify custom parameter constraints, such as enforcing that the static friction coefficient be greater than or equal the dynamic friction coefficient for a simple friction model.
Similarly, you can specify custom initial condition constraints.
Specify custom cost functions, such as loglikelihood
and weighted sum square. Previously, you could specify sum of squared
errors (SSE
), or sum of absolute errors (SAE
)
cost functions.
Redesigned commands and objects include:
sdo.Experiment
for specifying
measured input/output data, parameter values and initialstates for
estimation.
For more information, see sdo.Experiment
.
sdo.getStateFromModel
for returning
an object that parameterizes the initialstate of a Simulink model
you are estimating.
For more information, see sdo.getStateFromModel
.
InitialState
property of sdo.SimulationTest
for
specifying the model initialstate.
For more information, see sdo.SimulationTest
.
ref
input of sdo.requirements.SignalTracking.evalRequirement
for
specifying the reference signal for evaluating this requirement using
the new input of this method.
For more information, see sdo.requirements.SignalTracking.evalRequirement
.
For information on how the estimation is computed, see Computing the Estimation Error (Code).
For examples of programmatic parameter estimation, see:
Parameter estimation commands from previous releases now warn and will be removed in a future version. Use the new parameter estimation commands instead.
For information regarding parameter estimation commands from previous releases, see Estimate Parameters Using Parameter Estimation Objects.
You can now generate MATLAB code to perform batch optimization of model responses using the Design Optimization Tool.
For an example, see Generate MATLAB Code for Design Optimization Problems (GUI) .
This release introduces functionality in the Design Optimization tool to prevent model evaluation with parameters that lead to a simulation error.
For an example, see Skip Model Simulation Based on Parameter Constraint Violation (GUI).
You can now specify frequencydomain requirements, without adding blocks to the model, using the Design Optimization tool. This feature requires Simulink Control Design™ software.
The type of frequencydomain requirements that you can specify include:
Bounds on the gain and phase margin of a linear system
Piecewise linear bounds on the Bode magnitude of the system response
Bounds on the closedloop peak response of a system
Bounds on the damping ratio of the poles of a linear system
Bounds on the natural frequency of the poles of a linear system
Bounds on the location of the poles of a linear system such that an equivalent second order system would have a specified settling time
Piecewise linear bound on the singular values of a linear system
Bounds on the step response of a linear system
For more information, see how to specify requirements in Design Optimization to Meet FrequencyDomain Requirements.Design Optimization to Meet FrequencyDomain Requirements.
You can now compare design variable values and requirement values using a spider plot in the Design Optimization tool. Also known as radar charts, spider plots depict multivariate data using an axis for each variable. The various axes share a starting point, as this example plot shows:
For more information, see:
A redesigned Design Optimization tool and new commands streamline and improve response optimization workflows. You can now:
Create multiple sets of design and uncertain variables and time and frequencydomain design requirements. This enables you to optimize the design using different combinations of variable sets and requirements.
Specify design requirements without blocks, using Check blocks from the Signal Constraints library, or a combination of both.
Monitor optimization progress using design variable values plot.
Access the MATLAB and Simulink workspaces using the Data Browser area of the Design Optimization tool.
For more information, see:
Optimize Controller Parameters to Meet Step Response Requirements (GUI)
Optimize Controller Parameters to Meet Step Response Requirements (Code)
Optimize Controller Parameters to Track Reference Signal (GUI)
Design Optimization to Meet FrequencyDomain Requirements (GUI, with Check Block)
Design Optimization to Meet Time and FrequencyDomain Requirements
Commands from previous releases now warn and will be removed in a future version. Use the new Response Optimization commands instead.
The Signal Constraint block has been removed from
the block library. Use
to
automatically update your model to use the equivalent Check blocks
from the Signal Constraints library.sdoupdate
('modelname')
Simulation options, such as start and stop times and solver type, can no longer be set using Simulink Design Optimization™ software. Use the Configuration Parameters Dialog Box in Simulink instead.
You can now specify timedomain requirements without adding Check blocks
to the Simulink model. You can do so from the Design Optimization
tool or programmatically using requirement objects
such as sdo.requirements.StepResponseEnvelope
, sdo.requirements.SignalBound
and sdo.requirements.SignalTracking
.
Similarly, you can programmatically specify frequencydomain
requirements without adding Check blocks
from the Simulink Control Design library to the model. Frequencydomain
requirement objects include sdo.requirements.BodeMagnitude
and sdo.requirements.GainPhaseMargin
.
For more information, see how to specify requirements in the following topics:
If your Simulink model has Simulink Control Design Model Verification blocks, you can optimize the model response to meet the frequencydomain requirements specified in them. For example, you can optimize the model response to meet Bode magnitude requirements. You can also include timedomain requirements such as step response characteristics for optimization.
For more information, see:
You can optimize model response to meet requirements specified in Check Static Gap, Check Static Lower Bound and Check Static Upper Bound blocks from the Simulink Model Verification library. The Design Optimization tool automatically includes the design requirements when you open the tool.
This release provides functionality to specify custom requirements such as minimizing a cost function, an inequality constraint or an equality constraint. You write a function describing the custom requirement that you include for optimization either from the graphical user interface or programmatically.
For more information, see:
The Check Custom Bounds, Check Step Response Characteristics and Check Against Reference blocks in the Model Verification library detect assertions during simulation. Use these blocks to verify the timedomain characteristics of a nonlinear Simulink model satisfy specified bounds during simulation. For example, you can verify whether a model signal satisfies upper and lower bounds on its values. See TimeDomain Model Verification.
You can also use these blocks with the Model Verification blocks from Simulink and Simulink Control Design libraries to include frequencydomain bounds and build complex logic for model verification.
If you have Simulink Verification and Validation™ software, you can construct simulation tests for your model using the Verification Manager. For more information, see Verification Manager.
You can now estimate the initial states of:
Model references
SimHydraulics^{®} blocks
SimMechanics™ blocks
SimPowerSystems™ blocks
Simscape™ blocks
You can perform initial state estimation either using the GUI or from the commandline interface. For more information, see:
Previously, you represented the states of an Integrator
block having multiple state names by using one StateData
or State
object.
Now, each state name requires one StateData
or State
object.
Therefore, estimating the states of such an Integrator block errors.
Instead, create a TransientExperiment
or Estimation
object
to automatically create StateData
and State
objects,
respectively.
Previously, the Domain
property
of the State Data
and State
objects
was used to track SimMechanics and SimPowerSystems blocks
with states. This property is no longer required and has been removed.
Function or Function Element Name  What Happens When you Use the Function or Element?  Use This Instead  Compatibility Considerations 

Domain property of the State Data and State objects  Errors  Not applicable  See the Compatibility Considerations subheading for this change: 
The new Engine Design and Cost TradeoffsEngine Design and Cost Tradeoffs demo shows how to use the Simulink Design Optimization software to optimize a design for performance and cost.
This version of the product includes changes at the command
line to make the fmincon
and lsqnonlin
methods
to be consistent with the Optimization Toolbox software:
Algorithm
property renamed to Method
.
New Algorithm
option.
LargeScale
option removed.
The following table summarizes values of the new Algorithm
option.
Method  Algorithm Values 

fmincon 

lsqnonlin 

Previously, to specify the algorithm at the command line, you
set the LargeScale
option to 'on'
or 'off'
.
If you used LargeScale='on'
in a previous
release, use Algorithm='trustregionreflective'
instead.
If you used LargeScale='off'
, use the
following instead:
For fmincon
– Use Algorithm='activeset'
.
For lsqnonlin
– Use Algorithm='levenbergmarquardt'
.
For more information about these options, see the Optimization Toolbox User's Guide.
The Options dialog box includes the following updates to the Gradient
descent
and Nonlinear least
squares
methods that correspond to the commandline
changes.
Algorithm option is renamed to Method.
Model size option is deprecated and replaced by Algorithm.
When you load a saved project, the software uses the Model size value to update the Algorithm value automatically.
When you optimize parameters using the Gradient
Descent
method, an Algorithm value
other than the default value of ActiveSet
can
lead to a slightly different result.
For more information on how to specify the method and its algorithm, see Estimation Options and Optimization Options.
You can now use optimizationbased compensator design for frequencyresponse data (FRD) plants or plants with exact time delays in the SISO Design Tool. For more information, see Designing OptimizationBased Controllers for LTI Systems and Designing Linear Controllers for Simulink Models in the Simulink Design Optimization User's Guide.
Function or Property Name  What Happens When You Use Function or Property?  Use This Instead  Compatibility Considerations 

Algorithm  Errors  Method  See New Algorithm Option for fmincon (Gradient descent) and lsqnonlin (Nonlinear least squares) Methods, LargeScale (Model size) Option Removed 
LargeScale  Errors  Algorithm  See New Algorithm Option for fmincon (Gradient descent) and lsqnonlin (Nonlinear least squares) Methods, LargeScale (Model size) Option Removed 
As of R2009a, Simulink Parameter Estimation™ and Simulink Response Optimization™ functionality are merged into a new product, Simulink Design Optimization. Simulink Parameter Estimation and Simulink Response Optimization are no longer available.
If you have the Parallel Computing Toolbox™ software installed,
you can use parallel computing to speed up estimating parameters of
a Simulink model. The parallel computing option is available
in the Nonlinear least squares
, Gradient
descent
and Pattern search
algorithms.
You can enable this option from either the GUI or at the command line.
Using parallel computing can speed up the estimation time in the following situations:
The model contains a large number of parameters to estimate.
The model is complex and takes a long time to simulate.
For more information about using parallel computing for estimating model parameters, see Speedup Using Parallel Computing in the Simulink Design Optimization documentation.
The Simulink Design Optimization demos have been categorized into the following new categories:
Parameter Estimation in Simulink
Response Optimization in Simulink
Response Optimization in SISO Design Tool
Design Optimization Using Parallel Computing
Adaptive Lookup Tables
To open the Simulink Design Optimization demos, type
demo simulink 'simulink design optimization'
Prior to R14, Simulink Response Optimization software was
called Nonlinear Control Design Blockset software. If you are upgrading
from Nonlinear Control Design Blockset software, your models will
not work with Simulink Design Optimization software. To make the
models compatible with Simulink Design Optimization software, use ncdupdate
.
Release  Features or Changes with Compatibility Considerations 

R2015a  None 
R2014b  None 
R2014a  None 
R2013b  None 
R2013a  Sequential Quadratic Programming is default for fmincon (Gradient Descent) algorithm 
R2012b  Redesigned commands for parameter estimation, enabling custom cost functions, parameter constraints, and estimation of parameters per experiment 
R2012a  None 
R2011b  
R2011a  None 
R2010b  
R2010a  None 
R2009b  Functions and Properties Being Removed 
R2009a  Upgrading from Nonlinear Control Design Blockset Software 