Skip to main content

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.

System dependencies

The code has been implemented in Python 3.10 and requires CasADi. The Slycot package is optional and can speed up validation. It is available at PyPI or alternatively as binaries.

Installation

To install from PyPI, run the following command:

pip install sippy_unipi

To install from the source code, run the following:

git clone https://github.com/CPCLAB-UNIPI/SIPPY.git
cd SIPPY
pip install -e .

We recommend using uv (https://docs.astral.sh/uv/) to install the package.

uv sync

Structure

SIPPY is distributed as package, with following notable items in the structure:

├── user_guide.pdf
│   └── Documentation for Identification_code usage.
├── sippy/
│   ├── __init__.py
│   │   └── Main entry point: contains the function to perform identifications.
│   ├── functionset.py
│   │   └── Core functions used by identification routines and other utilities (see user_guide for details).
│   ├── functionset_OPT.py
│   │   └── Nonlinear optimization routines used by some identification methods.
│   └── functionsetSIM.py
│       └── Additional functions for Subspace identification and state-space model utilities (see user_guide for details).
└── Examples/
    |   └── Examples of usage of the SIPPY package (available with installation from source)
    ├── Ex_ARMAX_MIMO.py
    │   └── Example: Identification_code usage for ARMAX systems (multi input-multi output).
    ├── Ex_ARX_MIMO.py
    │   └── Example: Identification_code usage for ARX systems (multi input-multi output).
    ├── Ex_ARMAX.py
    │   └── Example: Identification_code usage for ARMAX systems (single input-single output, with information criteria).
    ├── SS.py
    │   └── Example: Identification_code usage for State-space systems.
    ├── Ex_OPT_GEN-INOUT.py
    │   └── Example: Input-output structure identification using optimization methods.
    ├── Ex_RECURSIVE.py
    │   └── Example: Input-output structure identification using recursive methods.
    └── Ex_CST.py
        └── Example: Identification_code usage for a Continuous Stirred Tank system.

Metadata

Release files for sippy_unipi 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sippy_unipi 1.0.1
File Size Uploaded
sippy_unipi-1.0.1.tar.gz 423.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sippy_unipi 1.0.1
File Interpreter ABI Platform
sippy_unipi-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 467.2 kB

Release files / sippy_unipi-1.0.1.tar.gz

Download URL sippy_unipi-1.0.1.tar.gz
Size 423.3 kB
Tags Source
SHA-256 checksum
How to use checksums
50d91ff37934291f36a3e2985064282b8f6b301dd61028a274947b614e124780
BLAKE2b-256 checksum
How to use checksums
349371f2fcdfe8f3a260b7fc2e39e40af2950ca6eb97e32a4e35bba74c3f77db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / sippy_unipi-1.0.1-py3-none-any.whl

Download URL sippy_unipi-1.0.1-py3-none-any.whl
Size 43.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a741ed02c21109cce62499978996777738bfb3e2814a7547d1c9fa7e59bd2a34
BLAKE2b-256 checksum
How to use checksums
2ba04aa427fdc91b5dc31546f08189c6bc5b34ec55baf1cffab102cdaf2c6bff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release history Release notifications | RSS feed

1.0.2

2 release files

This release

1.0.1 This release

2 release files

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page