IdentPy is a framework for estimation of parameters of mathematical models used for describing dynamic nonlinear systems.
The following estimation methods are implemented on identPy and can be used to estimate the model parameters. The corresponding classes can be found inside the methods
subfolder.
- Mean-Variance Mapping Optimization (MVMO)
- Trajectory Sensitivity
The following systems have mathematical models implemented and can be estimated using on identPy. The corresponding classes can be found inside the models
subfolder.
- Spring-Mass
- Simple Pendulum
- Linearized Z-IM Load Model
- DFIG Model (2 mathematical models)
IdentPy requires Python 3.6 or higher as weel as blinker, numpy, scipy and matplotlib packages.
Installation of identPy can be done by following the instructions below.
Users can install identPy by downloading the project from its GitHub page and running the following command on terminal.
$ git clone https://github.com/gnegrelli/identPy.git
$ pip install <path/to/identPy>
In order to contribute to this package, the user must install the package in develop mode. When contributing to identPy, it is generally recommended to install packages in a virtual environment to avoid modifying system state:
$ git clone https://github.com/gnegrelli/identPy.git
$ cd identPy
$ python -m venv venv
$ source venv/bin/activate
(venv)$ pip install -e .
Inside the scripts
folder, users can look at examples on how to perform parameter estimation using identPy.
On run_estimation.py
, MVMO and TSM are used to estimate the parameters of an improved DFIG model with measurements imported from a file. The output behaviour are plotted throughout the estimation process and, at the its end, the error evolution is also presented.
The population_size_analysis.py
script was developed to evaluate the effects of population size on the estimation performance. For every size given in a list, 35 estimations are performed and their results, as well as the time duration, are saved into a file.
This project is licensed under the MIT License - see the LICENSE file for details.