Documentation 
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).
Use 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 MethodOptions.TolCon property of the optimization options set. 
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 sdoupdate('modelname') to automatically update your model to use the equivalent Check blocks from the Signal Constraints library.
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'
at the MATLAB prompt.
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 

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 