Skip to content

Examples of stable distributed model predictive controllers for piecewise affine systems.

License

Notifications You must be signed in to change notification settings

SamuelMallick/stable-dmpc-pwa

Repository files navigation

Distributed MPC for PWA Systems Based on Switching ADMM

Source Code License Code style: black

This repository contains the source code used to produce the results obtained in [Distributed MPC for PWA Systems Based on Switching ADMM](PUT LINK) submitted to [PUT JOURNAL](PUT JOURNAL LINK).

In this work, we propose a novel approach for distributed MPC for PWA systems. The approach is based on a switching ADMM procedure that is developed to solve the globally formulated non-convex MPC optimal control problem distributively.

If you find the paper or this repository helpful in your publications, please consider citing it.

@article{
}

Installation

The code was created with Python 3.9. To access it, clone the repository

git clone https://github.com/SamuelMallick/stable-dmpc-pwa
cd stable-dmpc-pwa

and then install the required packages by, e.g., running

pip install -r requirements.txt

Structure

The repository code is structured in the following way

  • env.py contains the environment for simulating the system, i.e., stepping the dynamics and generating costs.
  • model.py contains all the relevant numerical definitions for the state space model of the system.
  • plotting.py contains functions for plotting the state trajectories of the system.
  • terminal_cost_calculations.py calculates appropriate terminal costs for the system via semi-definite programming.
  • generate_ICs.py generates the csv file ICS.csv.
  • ICs.csv contains the randomly generated initial conditions used in Distributed MPC for PWA Systems Based on Switching ADMM.
  • cent_MLD.py simulates the system under a centralized mixed logical dynamical MPC controller.
  • g_admm.py simulates the system under the distributed controller proposed in Distributed MPC for PWA Systems Based on Switching ADMM.
  • plt_traj/compare_trajs.py are scripts for generating the images in Distributed MPC for PWA Systems Based on Switching ADMM.
  • data contains data files for the results in Distributed MPC for PWA Systems Based on Switching ADMM.
  • MATLAB contains auxilarry Matlab scripts for the calculation of terminal sets for the system.

## License

The repository is provided under the GNU General Public License. See the [LICENSE](https://github.com/SamuelMallick/stable-dmpc-pwa/blob/main/LICENSE) file included with this repository.

---

## Author

[Samuel Mallick](https://www.tudelft.nl/staff/s.h.mallick/), PhD Candidate [s.mallick@tudelft.nl | sam.mallick.97@gmail.com]

> [Delft Center for Systems and Control](https://www.tudelft.nl/en/3me/about/departments/delft-center-for-systems-and-control/) in [Delft University of Technology](https://www.tudelft.nl/en/)

> This research is part of a project that has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme ([Grant agreement No. 101018826 - CLariNet](https://cordis.europa.eu/project/id/101018826)).

Copyright (c) 2023 Samuel Mallick.

Copyright notice: Technische Universiteit Delft hereby disclaims all copyright interest in the program “stable-dmpc-pwa” (Distributed MPC for PWA Systems Based on Switching ADMM) written by the Author(s). Prof. Dr. Ir. Fred van Keulen, Dean of 3mE.

About

Examples of stable distributed model predictive controllers for piecewise affine systems.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published