CPCLAB-UNIPI / SIPPY

Systems Identification Package for PYthon
GNU Lesser General Public License v3.0
269 stars 92 forks source link

Welcome to SIPPY!

Systems Identification Package for PYthon (SIPPY)

The main objective of this code is to provide different identification methods to build linear models of dynamic systems, starting from input-output collected data. The models can be built as transfer functions or state-space models in discrete-time domain. The Python user has many options in terms of identification algorithms and in terms of settings to look for the best model. It is originally developed by Giuseppe Armenise at the Department of Civil and Industrial Engineering of University of Pisa under supervision of Prof. Gabriele Pannocchia. The identification code is distributed under the LGPL license, meaning the code can be used royalty-free even in commercial applications. The developed code is quite simple to use and, having default settings, it can be used by beginners but also by experts, having many adjustable settings that can be changed according to the particular case. Furthermore, there are some functions that the user can use, e.g. to test if the identified system follows the plant data. The linear model to be identified can be chosen between:

Installation and package content

The code has been implemented in Python 2.7, compatible with Python 3.7, (download it here) and requires the following packages: NumPy, SciPy, control (version >= 0.8.2), math, Slycot, Future (See installation instruction here), CasADi (see here). The Slycot package is available here or alternatively the binaries can be found here.

In order to make the installation easier, the user can simply use the quick command python setup.py install in order to gather all the required packages all together.

SIPPY is distributed as packed file SIPPY.zip (download it from here) that contains the following items:

In the folder sippy/ there are other files .py, that are called by the main file, so the user has not to use them.