Key Features

  • Transfer function, process model, and state-space model identification using time-domain and frequency-domain response data
  • Autoregressive (ARX, ARMAX), Box-Jenkins, and Output-Error model estimation using maximum likelihood, prediction-error minimization (PEM), and subspace system identification techniques
  • Online model parameter estimation
  • Time-series modeling (AR, ARMA) and forecasting
  • Identification of nonlinear ARX models and Hammerstein-Wiener models with input-output nonlinearities such as saturation and dead zone
  • Linear and nonlinear grey-box system identification for estimation of user-defined models
  • Delay estimation, detrending, filtering, resampling, and reconstruction of missing data

The principal architect of the toolbox is Professor Lennart Ljung, a recognized leader in the field of system identification.

Using System Identification Toolbox (top) to import, analyze, and preprocess data (left), estimate linear and nonlinear models (bottom), and validate estimated models (right).

Model Identification from Data

System Identification Toolbox lets you create models from measured input-output data. You can:

  • Analyze and process data
  • Determine suitable model structure and order, and estimate model parameters
  • Validate model accuracy
Get started with System Identification Toolbox.

You can use identified linear models for analysis and control system design with Control System Toolbox™. You can incorporate most identified models into Simulink using blocks the toolbox provides. You can also use identified models for forecasting.

Identifying a transfer function model from frequency-domain test data (top) and using the identified model in Simulink (bottom).

Analyzing and Processing Data

When preparing data for identifying models, you need to specify information such as input-output channel names, sampling time, and intersample behavior. The toolbox lets you attach this information to the data, which facilitates visualization of data, domain conversion, and various preprocessing tasks.

Measured data often has offsets, slow drifts, outliers, missing values, and other anomalies. The toolbox removes such anomalies by performing operations such as detrending, filtering, resampling, and reconstruction of missing data. The toolbox can analyze the suitability of data for identification and provide diagnostics on the persistence of excitation, existence of feedback loops, and presence of nonlinearities.

The toolbox estimates the impulse and frequency responses of the system directly from measured data. Using these responses, you can analyze system characteristics, such as dominant time constants, input delays, and resonant frequencies. You can also use these characteristics to configure the parametric models during estimation.

Import test data for estimating the model and validating results.
View test data, filter out noise, and remove offsets.

Estimating Model Parameters

Parametric models, such as transfer functions or state-space models, use a small number of parameters to capture system dynamics. System Identification Toolbox estimates model parameters and their uncertainties from time-response and frequency-response data. You can analyze these models using time-response and frequency-response plots, such as step, impulse, Bode plots, and pole-zero maps.

Estimate multiple models and validate against the validation data set.

Validating Results

System Identification Toolbox helps validate the accuracy of identified models using independent sets of measured data from a real system. For a given set of input data, the toolbox computes the output of the identified model and lets you compare that output with the measured output from a real system. You can also view the prediction error and produce time-response and frequency-response plots with confidence bounds to visualize the effect of parameter uncertainties on model responses.

Linear Model Identification

System Identification Toolbox lets you 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. In cases where you need a low-order continuous-time model in pole-zero form, the toolbox lets you estimate process models, which are simple transfer functions involving three or fewer poles, and optionally, a zero, a time-delay, and an integrator.

Estimate continuous-time and discrete-time transfer functions and low-order process models. Use the estimate models for analysis and control design.

You can identify polynomial and state-space models using estimation routines provided in the toolbox. These routines include autoregressive models (ARX, ARMAX), Box-Jenkins models, Output-Error models, and state-space parameterizations. Estimation techniques include maximum likelihood, prediction-error minimization schemes, and subspace methods based on N4SID, CVA, and MOESP algorithms. You can also estimate a model of the noise affecting the observed system. For all estimations, you can designate fixed model parameters and specify bounds for free parameters.

Determine optimal model order and estimate state-space models. Estimate ARX, ARMAX, Box-Jenkins, and Output-Error polynomial models.

You can use identified linear models directly with Control System Toolbox functions for analysis and compensator design without converting the models.

You can also identify process models from measured input-output data in the PID Tuner app in Control System Toolbox. You can interactively adjust system parameters such as gain and pole locations to match model response to measured output. System Identification Toolbox can then use these parameter values as initial guesses to automatically find parameter values that provide the best fit between the model and the measured data. Once the process model is created, the PID Tuner app uses it for automatically tuning PID Controller gains.

Identify a plant model from measured input-output data and use this model to tune PID Controller gains.

You can also use System Identification Toolbox with Simulink Control Design™, when tuning gains of PID Controller block. If the Simulink model linearizes to zero, System Identification Toolbox lets you estimate the process models from simulation input-output data in the PID Tuner Once the process model is created, PID Tuner uses it to tune the PID Controller block gains.

Design a PID controller for a model that cannot be linearized. Use system identification to identify a plant model from simulation input-output data.
MATLAB code for identifying a transfer function model from time-domain test data in System Identification Toolbox (top) and using the identified model to tune a PID controller in Control System Toolbox (bottom).

Nonlinear Model Identification

When linear models are not sufficient for capturing system dynamics, you can use System Identification Toolbox to estimate nonlinear models, such as nonlinear ARX and Hammerstein-Wiener.
Nonlinear ARX models enable you to model nonlinearities using wavelet networks, tree-partitioning, sigmoid networks, and neural networks (with Neural Network Toolbox™). Using Hammerstein-Wiener models, you can 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, or capture a complex nonlinearity at the output using a piecewise linear nonlinearity.

Estimate nonlinear ARX and Hammerstein-Wiener models.

Parameter Estimation in User-Defined Models

A user-defined (grey-box) model is a set of differential or difference equations with some unknown parameters. If you understand the physics of your system and can represent the system as a grey-box model, System Identification Toolbox lets you specify the model structure and estimate its parameters using nonlinear optimization techniques. For linear models, you can explicitly specify the structure of state-space matrices and impose constraints on identified parameters. You can specify differential equations as MATLAB, C, or Fortran code.

Online Parameter Estimation

System Identification Toolbox provides Simulink blocks for online parameter estimation. Applications for online parameter estimation include fault monitoring and adaptive control.

System Identification Toolbox lets you perform two types of online parameter estimation: recursive polynomial model estimation and recursive least squares estimation.

The Recursive Polynomial Model Estimator block estimates discrete-time, polynomial models of ARX or ARMAX structure from input and output data that are provided as inputs to the block. The toolbox lets you specify the order of the model and select the estimation method to use.

The Recursive Least Squares Estimator block estimates parameters of a model that maps model inputs (regressors) to a model output. The model has to be a linear combination of the regressors, but it can be used to describe nonlinear systems.

You can use online parameter estimation blocks for simulation and implementation. Using these blocks in simulation lets you validate the algorithms and choose the best model structure for your application.

The algorithms can then be deployed to an embedded target using automatic code generation with Simulink Coder™, Embedded Coder®, or Simulink PLC Coder™.

Program embedded processors to estimate parameters and detect changes in motor dynamics in real time using System Identification Toolbox.

Time-Series Data Modeling

A time series is one or more measured output channels with no measured input. System Identification Toolbox lets you create time-series data models to forecast future signal values based on previous ones. You can estimate time-series models using both time-domain and frequency-domain data.

You can estimate time-series spectra that describe time-series variations using cyclic components at different frequencies. You can also estimate parametric autoregressive (AR), autoregressive and moving average (ARMA), autoregressive integrated moving average (ARIMA), and state-space time-series models.

MATLAB code for creating a time-series data model and using it to forecast future signal values.