System Identification Toolbox

 

System Identification Toolbox

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

System Identification Toolbox 提供用于动态系统建模、时间序列分析和预测的 MATLAB 函数、Simulink 模块和 App。您可以了解测得变量之间的动态关系,以使用时域或频域数据创建连续或离散时间的传递函数、过程模型和状态空间模型。您可以使用 AR、ARMA 及其他线性和非线性自回归建模方法来预测时间序列。

本工具箱支持您通过 Hammerstein-Wiener 和非线性 ARX 模型使用机器学习方法(如高斯过程 (GP)、支持向量机 (SVM) 和其他表示法)来估计非线性系统动态特性。您也可以使用深度学习来创建神经常微分方程 (ODE) 模型来捕获非线性系统动态特性。本工具箱可让您执行灰箱系统辨识以估计用户定义模型的参数。您可以将辨识的模型集成到 Simulink 中进行快速仿真,以实现控制设计以及诊断和预后应用。

您可以使用扩展或无迹卡尔曼滤波器和粒子滤波器进行在线参数和状态估计,用于自适应控制、故障检测和软测量应用。该工具箱支持您为在线估计算法生成 C/C++ 代码以部署到嵌入式设备。

视频长度为 2:46

使用交互式 App 估计模型

使用交互式 App 基于测量数据估计、分析、比较和验证动态模型。借助自动化工作流创建并比较线性、非线性和深度学习模型,并将模型导出到 Simulink,以集成到更大型的系统中。

线性系统辨识

根据测得的时域或频域数据估计线性模型,用于控制设计、系统仿真和预测等应用。创建连续或离散时间的传递函数、过程模型、状态空间模型和多项式模型。使用频谱分析估计频率响应模型。计算并可视化在时域和频域中参数不确定性对模型响应的影响。

非线性系统辨识

通过估计非线性 ARX 和 Hammerstein-Wiener 模型来捕获系统的非线性动态特性。使用非线性 ARX 模型将自回归模型与由小波网络、树分区和 S 型网络表示的动态非线性结合起来。此外,指定回归量以捕获系统的物理特性,或为非线性 ARX 模型自动选择回归量的最佳子集。使用 Hammerstein-Wiener 模型来估计一个线性系统的输入和输出的非线性。

基于人工智能的非线性系统辨识

使用神经常微分方程创建基于深度学习的状态空间模型,直接从数据中学习非线性系统行为。将机器学习和深度学习技术与非线性 ARX 和 Hammerstein-Wiener 结构相结合,并使用 Statistics and Machine Learning Toolbox™ 和 Deep Learning Toolbox™ 中提供的自配置神经网络、树集成和高斯过程来表示非线性。

直流电机的线性灰箱模型。

灰箱系统辨识

使用线性或非线性微分方程、差分方程或状态空间系统对系统建模。根据测得的输入-输出数据估计灰箱模型的指定参数,以捕获系统的动态特性。

感应炉时间序列模型的预测响应图,其预测具有置信边界。

时间序列模型

估计时间序列或信号模型以对从系统测得的数据进行拟合。使用线性模型(如 AR、ARMA、ARIMA 和状态空间模型)或非线性模型(如非线性 ARX)预测时间序列。

在线估计

使用递归算法实时估计系统模型,该算法会在有新数据可用时更新模型参数。使用线性、扩展或无迹卡尔曼滤波器以及粒子滤波器估计系统状态。

部署

使用代码生成为在线故障检测、降阶建模 (ROM) 以及诊断和预测等应用部署估计的模型、状态估计器和递归模型。分别使用 Simulink Coder 和 Simulink PLC Coder 为在 Simulink 中实现的模型生成 C/C++ 代码和 IEC 61131-3 结构化文本。使用 MATLAB Coder 在 MATLAB 中生成 C/C++ 代码。或者,使用 MATLAB Compiler 生成独立应用。

“通过使用 Optimization Toolbox 和 System Identification Toolbox 改进我们现有的 AFR 控制系统的性能,我们显著减少了废气的产生。在对我们正在开发的发动机进行评估时,我们发现在某些条件下 NOx 和 CO 排放至少减少了一半。”

System Identification Toolbox FAQs

System Identification Toolbox provides MATLAB functions, Simulink blocks, and an app for creating linear and nonlinear dynamic system models from input-output data, enabling time-series analysis and forecasting.

You can create transfer functions, process models, state-space models, nonlinear ARX models, Hammerstein-Wiener models, and neural ODE models in continuous or discrete time using time- or frequency-domain data.

The toolbox estimates nonlinear dynamics using Hammerstein-Wiener and Nonlinear ARX models, leveraging machine learning techniques such as Gaussian processes, support vector machines, and tree ensembles to represent nonlinearities. It also supports deep-learning-based state-space modeling using neural ODEs.

Grey-box system identification lets you model your system using linear or nonlinear differential equations, difference equations, or state-space systems, then estimate specified parameters from measured input-output data.

Yes, you can integrate identified models into Simulink for simulations and use them as plant models for designing and tuning controllers with Control System Toolbox.

Yes, the toolbox enables online parameter and state estimation using extended or unscented Kalman filters and particle filters for adaptive control, fault detection, and soft sensing applications.

Yes, you can generate C/C++ code using MATLAB Coder or Simulink Coder, and IEC 61131-3 Structured Text using Simulink PLC Coder for applications like online fault detection and diagnostics.

The System Identification app lets you interactively estimate linear and nonlinear models by importing and preprocessing time-domain and frequency-domain data, then identifying, comparing, and validating models against test data sets.

The toolbox supports importing frequency-response data (such as Bode plot measurements or FRF data from modal testing) and fitting transfer function or state-space models directly. You can also compute nonparametric frequency-response estimates using spectral analysis methods and then refine them into parametric models.

Use online estimation techniques like extended Kalman filters, unscented Kalman filters, or particle filters to estimate unmeasured system states from available sensor data. These virtual sensors can replace expensive or unreliable physical sensors and can be deployed to embedded hardware using code generation.

Use System Identification Toolbox when your system exhibits dynamic temporal behavior, when datasets are limited or expensive to collect, when model interpretability and stability analysis are required, or when the model must integrate with control or estimation algorithms like MPC or Kalman filtering. Generic machine learning approaches are often better suited for large-data predictive tasks where black-box accuracy is prioritized over physical interpretability, dynamical structure, or control-oriented analysis.

Yes. Use MATLAB Compiler to deploy time-series and system modeling algorithms as standalone applications, Docker containers, or web apps. For embedded systems, generate C/C++ code using MATLAB Coder or Simulink Coder for real-time online estimation and fault detection.