Dynamic Systems Identification (Polynomial Models)

Version 3.0.2 (96.2 KB) by Márcio
The "dsi" identifies polynomial models via a pipeline: term generation, structure detection, parameter estimation, and dynamic validadation.
53 Downloads
Updated 14 Apr 2025

View License

Dynamic Systems Identification (Polynomial Models)
The dsi class is an advanced tool designed for Dynamic Systems Identification of polynomial models. Its structured pipeline enables comprehensive system characterization, including candidate term generation, structure detection, parameter estimation, and both dynamic and static model validation. This package is particularly suited for analyzing flow plant systems with inherent noise and errors, modeled as a quadratic polynomial corrupted by white noise.
Key Features:
  • Dynamic Data Analysis: Processes input and output time-series data and validates datasets for identification and validation purposes.
  • Structure Detection: Removes unsuitable clusters and applies optimization algorithms such as AIC and ERR to refine the model structure.
  • Parameter Estimation: Computes model parameters using Extended Least Squares (ELS) or Restricted Extended Least Squares (RELS).
  • Model Validation: Evaluates model performance through residual analysis and correlation coefficients.
  • Static Model Simulation: Generates static responses and simulates system behavior under various input conditions.
Methods Overview:
The class includes several methods to support the identification process:
  1. generateCandidateTerms: Constructs a matrix of candidate terms for system characterization.
  2. detectStructure: Applies algorithms to precisely identify the model structure.
  3. estimateParametersELS: Estimates dynamic model parameters using Extended Least Squares.
  4. estimateParametersRELS: Computes parameters using Restricted Extended Least Squares.
  5. validateModel: Analyzes model accuracy and validates residual behavior.
  6. buildStaticResponse: Simulates the static model's response to varied inputs.
  7. displayModel: Displays the identified dynamic model in textual and panel formats.
  8. displayStaticModel: Presents the static model and its simulation results.
Usage Instructions:
To utilize this package effectively, follow the steps below:
1 - Prepare and Load Data Load dynamic datasets representing the system's input and output signals.
2 - Visualize Input/Output Create visual plots to inspect and compare the identification and validation datasets.
3 - Generate Candidate Terms Use the method dsi.generateCandidateTerms to create potential terms for system characterization.
4 - Detect Model Structure
  • Apply dsi.removeClusters to filter invalid term groupings.
  • Use dsi.detectStructure to refine the model structure with algorithms such as AIC and ERR.
5 - Estimate Parameters
  • Extract dynamic information using dsi.getInfo.
  • Estimate model parameters by invoking dsi.estimateParametersELS or dsi.estimateParametersRELS.
6 - Validate the Model
  • Evaluate the model's dynamic accuracy using dsi.validateModel.
  • Simulate the static model using dsi.buildStaticResponse and visualize it with dsi.displayStaticModel.
7 - Analyze Results Assess the root mean square error (RMSE), residual correlations, and verify the alignment between real and simulated data.
For more information:
For more information on the Restricted Least Squares Estimator, please refer to the following paper:
Imposing steady-state performance on identified nonlinear polynomial models by means of constrained parameter estimation
Practical Example:
Load exempleELS.m and exempleRELS.m to explore parameter estimation methods.

Cite As

Barroso, M. F. S, Mendes, E. M. A. M. and Marciano, J. J. S. (2025). Dynamic Systems Identification (Polynomial Models) (https://www.mathworks.com/matlabcentral/fileexchange/180279), MATLAB Central File Exchange. Retrieved March 2, 2025.

MATLAB Release Compatibility
Created with R2010b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
3.0.2

Description update

3.0.1

New Help

3.0.0

Optimization in the simulation of models

2.0.4

New Help

2.0.3

New helps

2.0.2

New Plot Functions

2.0.1

New models disp

2.0.0

New static model viewer

1.2.5

Improvement in the visualization of equations

1.2.4

Performance improvement.

1.2.3

Fixed Akaike bug

1.2.2

Bug fix

1.2.1

New correlation function

1.2

Bug Fix and new functions

1.1.9

Bug fix

1.1.8

Bug fix

1.1.7

New function in class

1.1.6

New functions

1.1.5

Systemic bug fix

1.1.4

Systemic bug fix

1.1.3

New Description

1.1.2

New Description

1.1.1

New function build

1.1.0