toc
About the Developers
Choosing Your System Identification Strategy
Recommended Model Estimation Sequence
Supported Models for Time- and Frequency-Domain Data
Supported Models for Time-Domain Data
Continuous-Time Models
Discrete-Time Models
ODEs (Grey-Box Models)
Nonlinear Models
Supported Models for Frequency-Domain Data
Continuous-Time Models
Discrete-Time Models
ODEs (Grey-Box Models)
Nonlinear Black-Box Models
Supported Continuous-Time and Discrete-Time Models
Commands for Model Estimation
Creating Model Structures at the Command Line
About System Identification Toolbox Model Objects
When to Construct a Model Structure Independently of Estimation
Commands for Constructing Model Structures
Model Properties
Categories of Model Properties
Specifying Model Properties for Estimation
Viewing Model Properties and Estimated Parameters
Getting Help on Model Properties at the Command Line
See Also
Modeling Multiple-Output Systems
About Modeling Multiple-Output Systems
Modeling Multiple Outputs Directly
Modeling Multiple Outputs as a Combination of Single-Output Mode
Improving Multiple-Output Estimation Results by Weighing Outputs
Data Import and Processing
Types of Data You Can Model
Ways to Process Data for System Identification
Represent data for system identification
Analyze data quality
Preprocess data
Select a subset of your data
Combine data from multiple experiments
Requirements on Data Sampling
Importing Data into the MATLAB Workspace
Importing Time-Domain Data into MATLAB
Importing Time-Series Data into MATLAB
Importing Frequency-Domain Data into MATLAB
What Is Frequency-Domain Data?
How to Import Frequency-Domain Data into MATLAB
Importing Frequency-Response Data into MATLAB
What Is Frequency-Response Data?
How to Import Frequency-Response Data into the Software
Importing Data into the GUI
Types of Data You Can Import into the GUI
Importing Time-Domain Data into the GUI
Importing Frequency-Domain Data into the GUI
Importing Frequency-Response Data into the GUI
Prerequisite
Importing Complex-Valued Frequency-Response Data
Importing Amplitude and Phase Frequency-Response Data
Importing Data Objects into the GUI
Specifying the Data Sampling Interval
Specifying Estimation and Validation Data
Preprocessing Data Using Quick Start
Creating Data Sets from a Subset of Signal Channels
Creating Multiexperiment Data Sets in the GUI
Why Create Multiexperiment Data?
Limitations on Data Sets
Merging Data Sets
Extracting Specific Experiments from a Multiexperiment Data Set
Viewing Data Properties
Renaming Data and Changing Display Color
Distinguishing Data Types in the GUI
Organizing Data Icons
Deleting Data Sets in the GUI
Exporting Data from the GUI to the MATLAB Workspace
Representing Time- and Frequency-Domain Data Using iddata Object
iddata Constructor
Requirements for Constructing an iddata Object
Constructing an iddata Object for Time-Domain Data
Constructing an iddata Object for Frequency-Domain Data
iddata Properties
Creating Multiexperiment Data at the Command Line
Why Create Multiexperiment Data Sets?
Limitations on Data Sets
Entering Multiexperiment Data Directly
Merging Data Sets
Adding Experiments to an Existing iddata Object
Subreferencing iddata Objects
Subreferencing Input and Output Data
Subreferencing Data Channels
Subreferencing Experiments
Modifying Time and Frequency Vectors
Naming, Adding, and Removing Data Channels
What Are Input and Output Channels?
Naming Channels
Adding Channels
Modifying Channel Data
Concatenating iddata Objects
iddata Properties Storing Input and Output Data
Horizontal Concatenation
Vertical Concatenation
Representing Frequency-Response Data Using idfrd Objects
idfrd Constructor
idfrd Properties
Subreferencing idfrd Objects
Concatenating idfrd Objects
About Concatenating idfrd Models
Horizontal Concatenation of idfrd Objects
Vertical Concatenation of idfrd Objects
Concatenating Noise Spectral Data of idfrd Objects
See Also
Analyzing Data Quality
Is Your Data Ready for Modeling?
See Also
Plotting Data in the GUI Versus at the Command Line
How to Plot Data in the GUI
How to Plot Data in the GUI
Manipulating a Time Plot
Manipulating Data Spectra Plot
Manipulating a Frequency Function Plot
How to Plot Data at the Command Line
How to Analyze Data Using the advice Command
See Also
Selecting Subsets of Data
Why Select Subsets of Data?
Selecting Data Using the GUI
Ways to Select Data in the GUI
Selecting a Range for Time-Domain Data
Selecting a Range of Frequency-Domain Data
Selecting Data at the Command Line
Handling Missing Data and Outliers
Handling Missing Data
Handling Outliers
Example – Extracting and Modeling Specific Data Segments
See Also
Handling Offsets and Trends in Data
When to Detrend Data
Alternatives for Detrending Data in GUI or at the Command-Line
How to Detrend Data Using the GUI
How to Detrend Data at the Command Line
Detrending Steady-State Data
Detrending Transient Data
See Also
Next Steps After Detrending
Resampling Data
What Is Resampling?
Resampling Data Using the GUI
Resampling Data at the Command Line
Resampling Data Without Aliasing Effects
See Also
Filtering Data
Supported Filters
Choosing to Prefilter Your Data
How to Filter Data Using the GUI
Filtering Time-Domain Data in the GUI
Filtering Frequency-Domain or Frequency-Response Data in the GUI
How to Filter Data at the Command Line
Simple Passband Filter
Defining a Custom Filter
Causal and Noncausal Filters
See Also
Generating Data Using Simulation
Commands for Generating and Simulating Data
Example – Creating Data with Periodic Inputs
Example – Generating Data Using Simulation
Simulating Data Using Other MathWorks Products
Transforming Between Time- and Frequency-Domain Data
Transforming Data Domain in the GUI
Transforming Time-Domain Data
Transforming Frequency-Domain Data
Transforming Frequency-Response Data
See Also
Transforming Data Domain at the Command Line
Supported Data Transformations
Transforming Between Time and Frequency Domain
Transforming Between Frequency-Domain and Frequency-Response Dat
See Also
Manipulating Complex-Valued Data
Supported Operations for Complex Data
Processing Complex iddata Signals at the Command Line
Linear Model Identification
Identifying Frequency-Response Models
What Is a Frequency-Response Model?
Data Supported by Frequency-Response Models
How to Estimate Frequency-Response Models in the GUI
How to Estimate Frequency-Response Models at the Command Line
Options for Computing Spectral Models
Options for Frequency Resolution
What Is Frequency Resolution?
Frequency Resolution for etfe and spa
Frequency Resolution for spafdr
etfe Frequency Resolution for Periodic Input
Spectrum Normalization
Identifying Impulse-Response Models
What Is Time-Domain Correlation Analysis?
Data Supported by Correlation Analysis
How to Estimate Impulse and Step Response Models Using the GUI
Next Steps
How to Estimate Impulse and Step Response Models at the Command
Next Steps
How to Compute Response Values
How to Identify Delay Using Transient-Response Plots
Algorithm for Correlation Analysis
Identifying Low-Order Transfer Functions (Process Models)
What Is a Process Model?
Data Supported by a Process Model
How to Estimate Process Models Using the GUI
Next Steps
How to Estimate Process Models at the Command Line
Prerequisites
Using pem to Estimate Process Models
Example – Estimating Process Models with Free Parameters at the
Example – Estimating Process Models with Fixed Parameters at the
Options for Specifying the Process-Model Structure
Options for Multiple-Input Models
Options for the Disturbance Model Structure
Options for Frequency-Weighing Focus
Options for Initial States
Identifying Input-Output Polynomial Models
What Are Black-Box Polynomial Models?
Polynomial Model Structure
Understanding the Time-Shift Operator q
Definition of a Discrete-Time Polynomial Model
Definition of a Continuous-Time Polynomial Model
Definition of Multiple-Output ARX Models
Data Supported by Polynomial Models
Types of Supported Data
Designating Data for Estimating Continuous-Time Models
Designating Data for Estimating Discrete-Time Models
Preliminary Step – Estimating Model Orders and Input Delays
Why Estimate Model Orders and Delays?
Estimating Orders and Delays in the GUI
Estimating Model Orders at the Command Line
Estimating Delays at the Command Line
Selecting Model Orders from the Best ARX Structure
How to Estimate Polynomial Models in the GUI
Next Steps
How to Estimate Polynomial Models at the Command Line
Prerequisites
Using arx and iv4 to Estimate ARX Models
Using pem to Estimate Polynomial Models
Options for Multiple-Input and Multiple-Output ARX Orders
Option for Frequency-Weighing Focus
Options for Initial States
Algorithms for Estimating Polynomial Models
Example – Estimating Models Using armax
Identifying State-Space Models
What Are State-Space Models?
Definition of State-Space Models
Continuous-Time Representation
Discrete-Time Representation
Relationship Between Continuous-Time and Discrete-Time State Mat
State-Space Representation of Transfer Functions
Data Supported by State-Space Models
Types of Supported Data
Estimating Continuous-Time Models
Designating Data for Estimating Discrete-Time Models
Supported State-Space Parameterizations
Preliminary Step – Estimating State-Space Model Orders
Why Estimate Model Orders?
Estimating Model Order in the GUI
Estimating the Model Order at the Command Line
Using the Model Order Selection Window
How to Estimate State-Space Models in the GUI
Supported State-Space Models in the GUI
Prerequisites
Estimating State-Space Models in the GUI
Next Steps
How to Estimate State-Space Models at the Command Line
Supported State-Space Models
Prerequisites
Estimating State-Space Models Using pem and n4sid
Common Properties to Specify Model Estimation
Choosing to Estimate D, K, and X0 Matrices
How to Estimate Free-Parameterization State-Space Models
How to Estimate State-Space Models with Canonical Parameterizati
What Is Canonical Parameterization?
Estimating Canonical State-Space Models
How to Estimate State-Space Models with Structured Parameterizat
What Is Structured Parameterization?
Specifying the State-Space Structure
Are Grey-Box Models Similar to State-Space Models with Structure
Example – Estimating Structured Discrete-Time State-Space Models
Example – Estimating Structured Continuous-Time State-Space Mode
How to Estimate the State-Space Equivalent of ARMAX and OE Model
Options for Frequency-Weighing Focus
Options for Initial States
Algorithms for Estimating State-Space Models
Refining Linear Parametric Models
When to Refine Models
What You Specify to Refine a Model
How to Refine Linear Parametric Models in the GUI
How to Refine Linear Parametric Models at the Command Line
Example – Refining an Initial ARMAX Model at the Command Line
Example – Refining an ARMAX Model with Initial Parameter Guesses
Extracting Parameter Values from Linear Models
Extracting Dynamic Model and Noise Model Separately
Transforming Between Discrete-Time and Continuous-Time Represent
Why Transform Between Continuous and Discrete Time?
Using the c2d, d2c, and d2d Commands
Specifying Intersample Behavior
How d2c Handles Input Delays
Effects on the Noise Model
Transforming Between Linear Model Representations
Subreferencing Model Objects
What Is Subreferencing?
Limitation on Supported Models
Subreferencing Specific Measured Channels
Subreferencing Measured and Noise Models
Treating Noise Channels as Measured Inputs
Concatenating Model Objects
About Concatenating Models
Limitation on Supported Models
Horizontal Concatenation of Model Objects
Vertical Concatenation of Model Objects
Concatenating Noise Spectral Data of idfrd Objects
See Also
Merging Model Objects
Nonlinear Black-Box Model Identification
Supported Data for Estimating Nonlinear Black-Box Models
Supported Nonlinear Black-Box Models
Identifying Nonlinear ARX Models
Supported Data for Nonlinear ARX Models
Definition of the Nonlinear ARX Model
Using Regressors
Specifying Model Order and Delays
Example – Relationship Between Regressors, Model Orders, and Del
Using Custom Regressors
Nonlinearity Estimators for Nonlinear ARX Models
How to Estimate Nonlinear ARX Models in the GUI
How to Estimate Nonlinear ARX Models at the Command Line
General nlarx Syntax
Example – Using nlarx to Estimate Nonlinear ARX Models
Identifying Hammerstein-Wiener Models
Supported Data for Estimating Hammerstein-Wiener Models
Definition of the Hammerstein-Wiener Model
Nonlinearity Estimators for Hammerstein-Wiener Models
How to Estimate Hammerstein-Wiener Models in the GUI
How to Estimate Hammerstein-Wiener Models at the Command Line
General nlhw Syntax
Improving Estimation Results Using Initial States
Example – Using nlhw to Estimate Hammerstein-Wiener Models
Supported Nonlinearity Estimators
Types of Nonlinearity Estimators
Creating Custom Nonlinearities
Refining Nonlinear Black-Box Models
How to Refine Nonlinear Black-Box Models in the GUI
How to Refine Nonlinear Black-Box Models at the Command Line
Extracting Parameter Values from Nonlinear Black-Box Models
Nonlinear ARX Parameter Values
Hammerstein-Wiener Parameter values
Next Steps After Estimating Nonlinear Black-Box Models
Computing Linear Approximations of Nonlinear Black-Box Models
Why Compute a Linearize Approximation of a Nonlinear Model?
Choosing Your Linear Approximation Approach
Linear Approximation of Nonlinear Black-Box Models for a Given I
Tangent Linearization of Nonlinear Black-Box Models
Computing Operating Points for Nonlinear Black-Box Models
Computing Operating Point from Steady-State Specifications
Computing Operating Points at a Simulation Snapshot
ODE Parameter Estimation (Grey-Box Modeling)
Supported Grey-Box Models
Data Supported by Grey-Box Models
Choosing idgrey or idnlgrey Model Object
Estimating Linear Grey-Box Models
Specifying the Linear Grey-Box Model Structure
Example – Representing a Grey-Box Model in an M-File
Example – Estimating a Continuous-Time Grey-Box Model for Heat D
Example – Estimating a Discrete-Time Grey-Box Model with Paramet
Description of the SISO System
Estimating the Parameters of an idgrey Model
Estimating Nonlinear Grey-Box Models
Supported Nonlinear Grey-Box Models
Nonlinear Grey-Box Demos and Examples
Specifying the Nonlinear Grey-Box Model Structure
Constructing the idnlgrey Object
Using pem to Estimate Nonlinear Grey-Box Models
Options for the Estimation Algorithm
Simulation Method
Search Method
Gradient Options
Example – Specifying Algorithm Properties
After Estimating Grey-Box Models
Time Series Model Identification
What Are Time-Series Models?
Preparing Time-Series Data
Estimating Time-Series Power Spectra
How to Estimate Time-Series Power Spectra Using the GUI
How to Estimate Time-Series Power Spectra at the Command Line
Estimating AR and ARMA Models
Definition of AR and ARMA Models
Estimating Polynomial Time-Series Models in the GUI
Estimating AR and ARMA Models at the Command Line
Estimating State-Space Time-Series Models
Definition of State-Space Time-Series Model
Estimating State-Space Models at the Command Line
Example – Identifying Time-Series Models at the Command Line
Estimating Nonlinear Models for Time-Series Data
Recursive Techniques for Model Identification
What Is Recursive Estimation?
Commands for Recursive Estimation
Algorithms for Recursive Estimation
Types of Recursive Estimation Algorithms
General Form of Recursive Estimation Algorithm
Kalman Filter Algorithm
Mathematics of the Kalman Filter Algorithm
Using the Kalman Filter Algorithm
Forgetting Factor Algorithm
Mathematics of the Forgetting Factor Algorithm
Using the Forgetting Factor Algorithm
Unnormalized and Normalized Gradient Algorithms
Mathematics of the Unnormalized and Normalized Gradient Algorith
Using the Unnormalized and Normalized Gradient Algorithms
Data Segmentation
Model Analysis
Overview of Model Validation and Plots
When to Validate Models
Ways to Validate Models
Data for Validating Models
Supported Model Plots
Plotting Models in the GUI
Getting Advice About Models
Simulating and Predicting Model Output
Choosing to Simulate or Predict Model Output
See Also
Simulation and Prediction in the GUI
How to Plot Model Output
Interpreting the Model Output Plot
Changing Model Output Plot Settings
Definition: Confidence Interval
Simulation and Prediction at the Command Line
Summary of Simulation and Prediction Commands
Initial States in Simulation and Prediction
Example – Simulating Model Output with Noise at the Command Line
Example – Simulating a Continuous-Time State-Space Model at the
Example – Predicting Time Series
Residual Analysis
What Is Residual Analysis?
Supported Model Types
What Residual Plots Show for Different Data Domains
Displaying the Confidence Interval
How to Plot Residuals Using the GUI
How to Plot Residuals at the Command Line
Example – Examining Model Residuals
Creating Residual Plots
Description of the Residual Plot Axes
Validating Models Using Analyzing Residuals
Impulse and Step Response Plots
Supported Models
How Transient Response Helps to Validate Models
What Does a Transient Response Plot Show?
How to Plot Impulse and Step Response Using the GUI
Displaying the Confidence Interval
How to Plot Impulse and Step Response at the Command Line
Frequency Response Plots
What Is Frequency Response?
How Frequency Response Helps to Validate Models
What Does a Frequency-Response Plot Show?
How to Plot Bode Plots Using the GUI
How to Plot Bode and Nyquist Plots at the Command Line
Noise Spectrum Plots
Supported Models
What Does a Noise Spectrum Plot Show?
Displaying the Confidence Interval
How to Plot the Noise Spectrum Using the GUI
How to Plot the Noise Spectrum at the Command Line
Pole and Zero Plots
Supported Models
What Does a Pole-Zero Plot Show?
How to Plot Model Poles and Zeros Using the GUI
How to Plot Poles and Zeros at the Command Line
Reducing Model Order Using Pole-Zero Plots
Nonlinear ARX Model Plots
About Nonlinear ARX Plots
How to Plot Nonlinear ARX Plots Using the GUI
Configuring the Nonlinear ARX Plot
Axis Limits, Legend, and 3-D Rotation
How to Plot Nonlinear ARX Plots at the Command Line
Hammerstein-Wiener Model Plots
About Hammerstein-Wiener Plots
How to Create Hammerstein-Wiener Plots in the GUI
How to Plot Hammerstein-Wiener Plots at the Command Line
Plotting Nonlinear Block Characteristics
Plotting Linear Block Characteristics
Akaike’s Criteria for Model Validation
Definition of FPE
Computing FPE
Definition of AIC
Computing AIC
Computing Model Uncertainty
Why Analyze Model Uncertainty?
What Is Model Covariance?
Viewing Model Uncertainty Information
Troubleshooting Models
About Troubleshooting Models
Model Order Is Too High or Too Low
Nonlinearity Estimator Produces a Poor Fit
Substantial Noise in the System
Unstable Models
Unstable Linear Model
Unstable Nonlinear Models
Missing Input Variables
Complicated Nonlinearities
Next Steps After Getting an Accurate Model
Using Identified Models in Control Design
Using Models with Control System Toolbox Software
How Control System Toolbox Software Works with Identified Models
Using balred to Reduce Model Order
Compensator Design Using Control System Toolbox Software
Converting Models to LTI Objects
Viewing Model Response Using the LTI Viewer
What Is the LTI Viewer?
Displaying Identified Models in the LTI Viewer
Combining Model Objects
Example – Using System Identification Toolbox Software with Cont
Using System Identification Toolbox Blocks
System Identification Toolbox Block Library
Opening the System Identification Toolbox Block Library
Preparing Data
Identifying Linear Models
Simulating Model Output
When to Use Simulation Blocks
Summary of Simulation Blocks
Specifying Initial Conditions for Simulation
Specifying Initial States of Linear Models
Specifying Initial States of Nonlinear ARX Models
Specifying Initial States of Hammerstein-Wiener Models
Example – Simulating a Model Using Simulink Software
Using the System Identification Tool GUI
Steps for Using the System Identification Tool GUI
Starting and Managing GUI Sessions
What Is a System Identification Tool Session?
Starting a New Session in the GUI
Description of the System Identification Tool Window
Opening a Saved Session
Saving, Merging, and Closing Sessions
Deleting a Session
Getting Help in the GUI
Exiting the System Identification Tool GUI
Managing Models in the GUI
Importing Models into the GUI
Viewing Model Properties
Renaming Models and Changing Display Color
Organizing Model Icons
Deleting Models in the GUI
Exporting Models from the GUI to the MATLAB Workspace
Working with Plots in the System Identification Tool GUI
Identifying Data Sets and Models on Plots
Changing and Restoring Default Axis Limits
Magnifying Plots
Setting Axis Limits
Selecting Measured and Noise Channels in Plots
Grid and Line Styles in Plots
Grid Lines
Solid or Dashed Lines
Opening a Plot in a MATLAB Figure Window
Printing Plots
Customizing the System Identification Tool GUI
Types of GUI Customization
Displaying Warnings While You Work
Saving Session Preferences
Modifying idlayout.m
Index
tables
Supported Continuous-Time Models
Supported Discrete-Time Models
Commands for Constructing and Estimating Models
Summary of Model Constructors
Help Commands for Model Properties
iddata Time-Vector Properties
iddata Frequency-Vector Properties
Time Plot Options
Data Spectra Plot Options
Frequency Function Plot Options
Commands for Plotting Data
Commands for Generating and Simulating Data
Commands for Frequency Response
Commands for Impulse and Step Response
Commands for Extracting Numerical Model Data
Syntax for Extracting Transfer-Function Data
Commands for Transforming Model Representations
Comparison of idgrey and idnlgrey Objects
Estimating Frequency Response of Time Series
Commands for Estimating Polynomial Time-Series Models
Commands for Estimating State-Space Time-Series Models
Commands for Linear Recursive Estimation
Model Output Plot Settings
Residual Analysis Plot Settings
Transient Response Plot Settings
Frequency Function Plot Settings
Noise Spectrum Plot Settings
Zeros and Poles Plot Settings
Changing Appearance of the Nonlinear ARX Plot
Commands for Converting Models to LTI Objects