Skip to main content

System identification Methods leveraging Backpropagation

Project description

SIMBa

System Identification Methods with Backpropagation

SIMBa (System Identification Methods leveraging Backpropagation) is an open-source toolbox leveraging Pytorch's Automatic Differentiation framework for stable state-space linear SysID. It allows the user to incorporate prior knowledge (like sparsity patterns of the state-space matrices) during the identification procedure.

Intallation

SIMBa is available on pypi, it can be installed with pip install simbapy.
Note that this will NOT install SIPPY to avoid compatibility issues. SIMBa will only try to use Matlab for initilization by default, but you can install SIPPY separately.

Alternatively, you can clone this github repository to use simba locally.

Compatibility with matlab

If matlab is installed on your machine, you can install matlabengine. If you are on the latest version of MATLAB, pip install matlabengine works, otherwise you might need to install an older version of matlabengine. See here the supported version of MATLAB.
SIMBa needs access the System Identification Toolbox and Symbolic Math Toolbox in MATLAB.
You can disable the use of matlab by overwriting IS_MATLAB in simba.parameters

Project status

SIMBa was first presented in Stable Linear Subspace Identification: A Machine Learning Approach and subsequently extended in SIMBa: System Identification Methods leveraging Backpropagation.

Known issue

For SIPPY users

There seems to be a bug in the control library when the dimension of the control input is one, which raises an unwanted exception.
This does not affect SIMBa in general but can fail is SIPPY is required (e.g., for SIMBa's initialization).

To correct it, you'll need to go to timeresp.py in the library, typically located in your virtual environment at .venv/lib/python3.x/site-packages/control/ and add the following transpose at line 1002, before _check_convert_array:

if len(U.shape) > 1:
    U = U.T

Contact

This project is jointly led by Loris Di Natale and Muhammad Zakwan, with the participation of Bratislav Svetozarevic, Philipp Heer, Giancarlo Ferrari Trecate, and Colin N. Jones.
Urban Energy Systems Lab, Empa, Switzerland
Laboratoire d'Automatique, EPFL, Switzerland

For more information, please contact loris.dinatale@alumni.epfl.ch

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simbapy-0.4.0.tar.gz (34.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simbapy-0.4.0-py3-none-any.whl (36.3 kB view details)

Uploaded Python 3

File details

Details for the file simbapy-0.4.0.tar.gz.

File metadata

  • Download URL: simbapy-0.4.0.tar.gz
  • Upload date:
  • Size: 34.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for simbapy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 4f29214588b2fa5f9d7458339e8e462c352102a0fee17d01f2eb7c5fc7584492
MD5 f3b71e67448ee990fe7b9111e4c43632
BLAKE2b-256 26c2df0c46f9f79820c573629dcc332d1bce809c6fd7c1c91eda22cb8d1d4d13

See more details on using hashes here.

File details

Details for the file simbapy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: simbapy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 36.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for simbapy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f3c13aab6a8da193da707124f899b23506cefb9a34b865a71cae738f809e030d
MD5 b929f194ade9f9f7de61b62c106666f0
BLAKE2b-256 60ee4e741947dc1a1f786637c0ba9e8be4df69308a695cd1e0857bd673dff37f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page