System Identification Toolbox



System Identification Toolbox

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

System Identification Toolbox™ provides MATLAB® functions, Simulink® blocks, and an app for dynamic system modeling, time-series analysis, and forecasting. You can learn dynamic relationships among measured variables to create transfer functions, process models, and state-space models in either continuous or discrete time while using time- or frequency-domain data. You can forecast time series using AR, ARMA, and other linear and nonlinear autoregressive modeling techniques.

The toolbox lets you estimate nonlinear system dynamics using Hammerstein-Wiener and Nonlinear ARX models with machine learning techniques such as Gaussian Processes (GP), Support Vector Machines (SVM), and other representations. Alternatively, you can create neural ordinary differential equation (ODE) models using deep learning to capture nonlinear system dynamics. The toolbox lets you perform grey-box system identification for estimating parameters of a user-defined model. You can integrate identified models into Simulink for rapid simulations to enable control design and diagnostic and prognostic applications.

You can perform online parameter and state estimation using extended or unscented Kalman filters and particle filters for adaptive control, fault detection, and soft sensing applications. The toolbox lets you generate C/C++ code for online estimation algorithms to target embedded devices.

System Identification App

Use the System Identification app to interactively estimate linear and nonlinear models of your system. Import and preprocess time-domain and frequency-domain data. Identify and compare models, analyze their properties, and validate models against test data sets.

Linear System Identification

Estimate linear models from measured time- or frequency-domain data for applications such as control design, system simulation, and forecasting. Create transfer functions, process models, state-space models, and polynomial models in continuous or discrete time. Estimate frequency-response models using spectral analysis. Compute and visualize the effect of parameter uncertainties on the model response in time and frequency domains.

Nonlinear System Identification

Estimate nonlinear ARX and Hammerstein-Wiener models to capture the nonlinear dynamics of your system. Use nonlinear ARX models to combine autoregressive models with dynamic nonlinearities represented by wavelet networks, tree-partitioning, and sigmoid networks. Additionally, specify regressors to capture the physics of your system, or automatically select an optimal subset of regressors for nonlinear ARX models. Use Hammerstein-Wiener models to estimate input and output nonlinearities of an otherwise linear system.

AI-Based Nonlinear System Identification

Combine machine learning and deep learning techniques with nonlinear ARX and Hammerstein-Wiener models to describe nonlinear dynamics of your system. With Statistics and Machine Learning Toolbox™ and Deep Learning Toolbox™, use support vector machines (SVM), tree ensembles, Gaussian processes, and feedforward networks to represent nonlinearities. Additionally, create deep learning-based nonlinear state-space models using neural ODEs.

Grey-Box System Identification

Model your system using linear or nonlinear differential equations, difference equations, or a state-space system. Estimate specified parameters of your grey-box model from measured input-output data to capture the dynamics of your system.

Time-Series Models

Estimate time-series or signal models to fit measured data from your system. Forecast time series using linear models such as AR, ARMA, ARIMA, and state-space models or nonlinear models such as nonlinear ARX.

Online Estimation

Estimate a model of your system in real-time using recursive algorithms that update model parameters as new data becomes available. Estimate system states using linear, extended, or unscented Kalman filters as well as particle filters.

Control System Design and Simulink

Use your estimated models as plant models for designing and tuning controllers with Control System Toolbox™. Implement estimated models, state estimators, and recursive models in Simulink using built-in blocks for system analysis, virtual sensor modeling, reduced order modeling, and control design.


Use code generation to deploy estimated models, state estimators, and recursive models for applications such as online fault detection, reduced order modeling (ROM), and diagnostics and prognostics. Generate C/C++ code and IEC 61131-3 Structured Text using Simulink Coder™ and Simulink PLC Coder™ respectively, for models implemented in Simulink. Use MATLAB Coder™ to generate C/C++code in MATLAB. Alternatively, use MATLAB Compiler™ to generate standalone applications.

"By improving the performance of our existing AFR control system using Optimization Toolbox and System Identification Toolbox, we significantly reduced exhaust gas production. As part of a development evaluation study with an engine under development, we found that under certain conditions, NOx and CO emissions were reduced by half or more.”

Hiroshi Katoh, Nissan Motor Corporation