System Identification Toolbox

Create linear and nonlinear dynamic system models from measured input-output data


System Identification Toolbox™ provides MATLAB® functions, Simulink® blocks, and an app for constructing mathematical models of dynamic systems from measured input-output data. It lets you create and use models of dynamic systems not easily modeled from first principles or specifications. You can use time-domain and frequency-domain input-output data to identify continuous-time and discrete-time transfer functions, process models, and state-space models. The toolbox also provides algorithms for embedded online parameter estimation.

The toolbox provides identification techniques such as maximum likelihood, prediction-error minimization (PEM), and subspace system identification. To represent nonlinear system dynamics, you can estimate Hammerstein-Wiener models and nonlinear ARX models with wavelet network, tree-partition, and sigmoid network nonlinearities. The toolbox performs grey-box system identification for estimating parameters of a user-defined model. You can use the identified model for system response prediction and plant modeling in Simulink. The toolbox also supports time-series data modeling and time-series forecasting.

Get Started:

System Identification App

Interactively estimate linear and nonlinear models of your system using measured input-output data.

Data Import & Preprocessing

Import measured time-domain and frequency-domain data. You can preprocess the data by performing operations such as detrending, filtering, resampling, and also reconstruct missing data.

Model Estimation and Validation

Identify linear and nonlinear models from measured input-output data. You can compare identified models, analyze their properties, calculate their confidence bounds, and validate them against test datasets.

Linear Model Identification

Estimate linear models from your measured data for applications such as controller design.

Transfer Functions and Process Models

Estimate multi-input multi-output continuous or discrete-time transfer functions with a specified number of poles and zeros. You can specify the transport delay or let the toolbox determine it automatically.

State Space and Polynomial Models

Determine optimal model order and estimate state-space models of your system. You can also estimate ARX, ARMAX, Box-Jenkins, and Output-Error polynomial models.

Frequency & Impulse Response Models

Use spectral and correlation analysis to estimate models of your system from frequency and time-domain data. Frequency response data can also be obtained from a Simulink model using Simulink Control Design.

Online Estimation

Use online estimation models for applications such as adaptive control, fault detection, and soft sensing. You can deploy these models to run in real-time on embedded devices using live data.

Parameter Estimation with Recursive Models

Estimate a model of your system in real-time using recursive models that update their parameters as new data comes in. You can implement these models using built-in Simulink blocks. Generate C/C++ code from the blocks using Simulink Coder™ to target embedded devices.

State Estimation with Kalman Filters

Estimate system states from real-time data using linear, extended, or unscented Kalman filters as well as particle filters. You can implement these algorithms using built-in Simulink blocks. Generate C/C++ code from the blocks using Simulink Coder™ to target embedded devices.

Control System Design & Simulink

Implement estimated models in Simulink using built-in blocks. You can use the estimated models to represent plant models when designing controllers in MATLAB and Simulink.

Integration with Simulink

Implement estimated models, state estimators, and recursive models in Simulink using built-in blocks. You can perform system analysis and control design tasks using these blocks.

Controller Design

Use the models you have estimated for designing and tuning controllers with Control System Toolbox. Use system identification functionality in the PID Tuner app to estimate linear plant dynamics from measured data or Simulink models with discontinuities. 

Nonlinear Model Identification

Estimate models that can capture nonlinearities in your system.

Nonlinear ARX Models

Model your systems by combining autoregressive models with nonlinearities represented by wavelet networks, tree partitioning, sigmoid networks, and neural networks (with Deep Learning Toolbox™). 

Estimated Nonlinear ARX Model with Wavelet Nonlinearity.

Hammerstein-Wiener Models

Estimate static nonlinear distortions present at the input and output of an otherwise linear system. For example, you can estimate the saturation levels affecting the input current running a DC motor.

Grey-Box Model Identification

Build grey-box models which are represented by a set of equations with a mix of known and unknown parameters. You can then use measured test data to estimate these parameters and capture the dynamics of your system without changing the model structure.

Linear Grey-Box Models

Model your linear system using differential equations, difference equations, or a state-space system. Estimate specified model parameters such as pendulum mass and length or motor resistance and back-EMF constant from measured input-output data.

 Linear Grey-box Model of a DC Motor.

Nonlinear Grey-Box Models

Model your system using nonlinear differential equations or difference equations. Estimate specified model parameters from measured input-output data.

A Two-Tank System is Better Represented by a Nonlinear Grey-Box Model Than a Linear Model.

Time Series Models

Analyze time series data by identifying AR, ARMA, state-space and other linear and nonlinear models.

Time Series Models

Estimate time series models to fit measured data from your system. You can then forecast future values of the time series model to predict how your system will behave. 

Time Series Models can be used to predict equipment health.

Latest Features

Initial Conditions

Apply initial conditions when estimating and simulating transfer function, state-space, and polynomial models

Live Editor Tasks

Interactively perform state-space and process model identification tasks and generate MATLAB code in a live script

See release notes for details on any of these features and corresponding functions.