Skip to main content

Python implementation of various advanced MPC algorithms

Project description

AMPyC

GitHub | PyPI | Issues | Changelog

ampyc -- Advanced Model Predictive Control in Python

General Python package for control theory research, including some reference implementations of various advanced model predictive control (MPC) algorithms.

Features:

  • Implements dynamical systems and control interfaces to allow seamless interactions
  • Provides abstract base classes to allow custom implementation of any type of dynamical system and controller
  • Reference implementations of many advanced MPC algorithms; for a full list of implemented algorithms see below
  • Global parameter management for easy experiment setup and management
  • Various utility tools for set computations, polytope manipulation, and plotting
  • Lecture-style notes and notebook tutorials explaining advanced predictive control concepts

Installation

ampyc requires Python 3.10 or higher. Just use pip for Python 3 to install ampyc and its dependencies:

    python3 -m pip install ampyc

Local (editable) installation

  1. Clone this repository using
    git clone git@github.com:IntelligentControlSystems/ampyc.git
  1. Install all dependencies (preferably in a virtual environment) using
    python3 -m pip install -r requirements.txt
  1. Install ampyc in editable mode for development. Navigate to this top-level folder and run
    pip install -e .

Getting Started

To get started with the ampyc package, run the tutorial notebook, which provides an introduction to all parts of the package.

For specific control algorithms implemented in ampyc, run the associated notebook in the notebook folder.

Implemented Control Algorithms

Year Authors Method/Paper AMPyC
- - Linear Model Predictive Control code
- - Nonlinear Model Predictive Control code
2001 Chisci et al. Systems with persistent disturbances: predictive control with restricted constraints code
2005 Mayne et al. Robust model predictive control of constrained linear systems with bounded disturbances code
2013 Bayer et al. Discrete-time incremental ISS: A framework for robust NMPC code
2017 Lorenzen et al. Constraint-Tightening and Stability in Stochastic Model Predictive Control code
2018 Hewing & Zeilinger Stochastic Model Predictive Control for Linear Systems Using Probabilistic Reachable Sets code
2020 Hewing et al. Recursively feasible stochastic model predictive control using indirect feedback code

Cite this Package & Developers

If you find this package/repository helpful, please cite our work:

@software{ampyc,
  title  = {AMPyC: Advanced Model Predictive Control in Python},
  author = {Sieber, Jerome and Didier, Alexandre and Rickenbach, Rahel and Zeilinger, Melanie},
  url    = {https://github.com/IntelligentControlSystems/ampyc},
  month  = jun,
  year   = {2025}
}

Principal Developers

  Jerome Sieber     |   Alex Didier     |   Mike Zhang     |   Rahel Rickenbach  

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

ampyc-0.0.1.tar.gz (48.8 MB view details)

Uploaded Source

Built Distribution

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

ampyc-0.0.1-py3-none-any.whl (54.2 kB view details)

Uploaded Python 3

File details

Details for the file ampyc-0.0.1.tar.gz.

File metadata

  • Download URL: ampyc-0.0.1.tar.gz
  • Upload date:
  • Size: 48.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for ampyc-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f1999cef55272060a65ab5fc2b04067dc0f9dda225d81c510488fe33f0f19695
MD5 599315d1013b7a3d0dbd7087f1ebc18a
BLAKE2b-256 6cab4d813a06a195c9dc65043d9fc4a1f1a01a7eda6807416dc3993d286ab0df

See more details on using hashes here.

File details

Details for the file ampyc-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: ampyc-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 54.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for ampyc-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aa7ad70abec563d8da22f27a94ea31d7966a0ee896ef1b00d163ad206a40e12b
MD5 b6e134b8a94c8f612ec017ff134a7bda
BLAKE2b-256 12972bd94a3d02d9ffcf2a84c7358fe909a9849e2efa48f02448ec6e921839f5

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