Giter Club home page Giter Club logo

sippy's Introduction

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:

  • input-output structures: FIR, ARX, ARMAX, ARMA, ARARX, ARARMAX, OE, BJ, GEN;
  • state-space structures: N4SID, MOESP, CVA, PARSIM-P, PARSIM-S or PARSIM-K. All the proposed structures are available both in the SISO case, for which the information criteria are available, and in the MIMO case.

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:

  • user_guide.pdf: documentation for Identification_code usage.
  • sippy/__init__.py: main file containing the function that has to be recalled to perform the identifications.
  • Examples/Ex_ARMAX_MIMO.py: example of usage of the Identification_code for ARMAX systems (multi input-multi output case).
  • Examples/Ex_ARX_MIMO.py: example of usage of the Identification_code for ARX systems (multi input-multi output case).
  • Examples/Ex_ARMAX.py: example of usage of the Identification_code for ARMAX systems (single input-single output case, using the information criteria).
  • Examples/SS.py: example of usage of the Identification_code for State-space systems.
  • Examples/Ex_OPT_GEN-INOUT.py: example of usage of the Identification_code for the input-output structures using optimization methods.
  • Examples/Ex_RECURSIVE.py: example of usage of the Identification_code for the input-output structures using recursive methods.
  • Examples/Ex_CST.py: example of usage of the Identification_code for a Continuous Stirred Tank system.
  • sippy/functionset.py: file containing most of the functions used by the identification functions and other useful functions (see the user_guide for the usage).
  • sippy/functionset_OPT.py: file containing the nonlinear optimization problem used by some of the identification methods.
  • sippy/functionsetSIM.py: additional functions used by the Subspace identification functions and other useful functions for state space models (see the user_guide for the usage).

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

sippy's People

Contributors

camerondevine avatar mvaccariunipi avatar cpclab-unipi avatar don4get avatar garmenise avatar nitroxknight avatar imgeorgiev avatar rbdc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.