Metadata-Version: 2.2
Name: dsi-toolkit
Version: 1.0.2
Summary: The provided script 'dsi-toolkit' leverages a package designed for identifying polynomial models.
Home-page: https://www.mathworks.com/matlabcentral/fileexchange/180279-dynamic-systems-identification-polynomial-models
Author: Márcio Falcão dos Santos Barroso
Author-email: Márcio Falcão dos Santos Barroso <barroso@ufsj.edu.br>, "Eduardo M. A. M. Mendes" <emmendes@ufmg.br>, Jim Jones da Silveira Marciano <jimjonessm@gmail.com>
License: Proprietary
Project-URL: Homepage, https://www.mathworks.com/matlabcentral/fileexchange/180279-dynamic-systems-identification-polynomial-models
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: Other/Proprietary License
Classifier: Intended Audience :: Developers
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: matplotlib
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# Dynamic Systems Identification (Polynomial Models)

![Python Version](https://img.shields.io/badge/python-3.8%2B-blue)

## Description
Dynamic Systems Identification (Polynomial Models) :
The provided script “dsi” leverages a package designed for identifying polynomial models. This is accomplished through a structured pipeline that includes generating candidate terms, detecting the model structure, estimating parameters, and validating both dynamic and static models. The core functionality focuses on analyzing flow plant systems with inherent noise and errors, specifically modeled as a quadratic polynomial corrupted by white noise.
The package supports the following features:
•	Dynamic Data Analysis: Processing and validating input and output time-series data using identification and validation datasets.
•	Structure Detection: Removing unsuitable clusters and applying optimization algorithms (such as AIC and ERR) to refine the model structure.
•	Parameter Estimation: Utilizing methods like Extended Least Squares (ELS) and Restricted Extended Least Squares (RELS) to compute model parameters.
•	Model Validation: Evaluating performance through residual analysis and correlation coefficients.
•	Static Model Simulation: Generating static responses and simulating system behavior under various input conditions.
Usage Instructions:
To use this class/package, follow these steps:
1.	Prepare and Load Data: Load dynamic data (flow_dataset and static_dataset) representing the system's input and output.
2.	Visualize Input/Output: Create visual plots to inspect and compare identification and validation datasets.
3.	Generate Candidate Model Terms: Use dsi.generateCandidateTerms to build a matrix of potential terms for system characterization.
4.	Detect Model Structure:
	    Use dsi.removeClusters to filter out invalid clusters and refine the model structure.
	    Run dsi.detectStructure to apply algorithms like AIC and ERR for precise structural identification.
5.	Estimate Model Parameters:
            Extract dynamic information using dsi.getInfo.
            Apply dsi.estimateParametersELS or  dsi.estimateParametersRELS to calculate the model parameters.
6.	Validate the Model:
            Use dsi.validateModel to verify the dynamic model's accuracy and analyze residual behavior.
            Simulate the static model using functions like dsi.buildStaticResponse and sysident.displayStaticModel to derive and simulate the system's static behavior.
7.	Analyze Results: Evaluate the root mean square error (RMSE), residual correlations, and validate the alignment between real and simulated data.
For more information please see the examples files: exampleELS and exampleRELS

Cite As:
Barroso, M. F. S, Mendes, E. M. A. M. and Marciano, J. J. S. (2025). Dynamic Systems Identification (Polynomial Models) (https://pypi.org/project/dsi-toolkit/), pypi.org. Retrieved March 16, 2025.
## Installation
To install the package, use:
```sh
pip install dsi_toolkit
