Skip to main content

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
2016 Kouvaritakis & Cannon Stochastic constraint-tightening Model Predictive Control code
2017 Agrawal & Sreenath Discrete control barrier functions for safety-critical control of discrete systems with application to bipedal robot navigation code
2018 Wabersich & Zeilinger Scalable synthesis of safety certificates from data with application to learning-based control code
2018 Wabersich & Zeilinger Linear model predictive safety certification for learning-based 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  

Metadata

Release files for ampyc 0.0.3

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

Source distribution (sdist)

Source distribution for ampyc 0.0.3
File Size Uploaded
ampyc-0.0.3.tar.gz 67.4 MB Details

Built distribution (wheel)

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

Total release size: 67.5 MB

Release files / ampyc-0.0.3.tar.gz

Download URL ampyc-0.0.3.tar.gz
Size 67.4 MB
Tags Source
SHA-256 checksum
How to use checksums
18bb8ec46b06b1afdd07a5341fbc8a013062fe6349163b328bc17304edb2958b
BLAKE2b-256 checksum
How to use checksums
93a7f0d3ff6dd20dfb665d4d8a125d1b5c5a8636e8b1192adafa67d2210f1b33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / ampyc-0.0.3-py3-none-any.whl

Download URL ampyc-0.0.3-py3-none-any.whl
Size 63.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e121d5581db1c97ca703ae77f19479e346add1126c70a0cdf547bc539a6a3433
BLAKE2b-256 checksum
How to use checksums
52f807e2c2fb012def169fd327cdd0ff262e53ed1de564faec58a6b44cd338f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

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