Giter Site home page Giter Site logo

teamparodis / parodis Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 2.0 717 KB

This is the official repository to PARODIS, the Matlab PAReto Optimal Model Predictive Control framework for DIstributed Systems.

License: BSD 2-Clause "Simplified" License

MATLAB 100.00%
mpc multi-objective-optimization pareto model-predictive-control nonlinear-control matlab framework

parodis's Introduction

PARODIS - Pareto Optimal MPC for (discrete) Distributed Systems

PARODIS is a MATLAB framework for Pareto Optimal (scenario-based economic) Model Predictive Control for Distributed Systems. The main strength of PARODIS is, that the underlying optimization problem can be formulated completely symbolically and parametrically. PARODIS uses the YALMIP library by Johan Löfberg for the symbolic representation of optimization problems and for interfacing the numerical solvers.

PARODIS was created by Thomas Schmitt, Jens Engel and Matthias Hoffmann at the Control Methods and Robotics institute at TU Darmstadt.

Contact: Thomas Schmitt - [email protected] (for support issues, please open an issue here on GitHub)

Features

  • Fully symbolic and parametric problem description
  • Support of wide class of problems through use of YALMIP and the the supported LP, QP and NLP solvers
  • (Interactive) Pareto optimization for Pareto optimal MPC, i.e. controlling a system by dynamically finding a compromise solution between multiple objectives. For more information, see the Wiki
  • Integrated support of distributed or hierarchical MPC through agent-based simulation
  • Direct consideration of (predicted) disturbances on system dynamics $x(k+1) = f(x(k), u(k), d(k))$
  • Efficient problem representation through use of YALMIP's optimizer to pre-compile optimization problems
  • On-the-fly evaluation of simulation results using user-defined evaluation functions
  • Easy-to-use (live) plotting

Requirements

PARODIS is compatible with any MATLAB Release upwards from R2018a. It further requires a current installation of YALMIP by Johan Löfberg.

No additional toolboxes are needed, though the MATLAB control toolbox may be recommended, if you need tools for discretizing time-continuous models.

Installation

To install PARODIS, download the latest release or clone this repository to your desired destination. Then, open MATLAB and run the install script. This script will add the correct directories to your MATLAB path and check if YALMIP is installed.

cd YourPARODISdirectoryGoesHere
install

Getting Started

For a quick glance into how PARODIS works, check out the provided examples in the examples directory. Just as PARODIS itself, they don't depend on anything but YALMIP and can be run just like that.

If you want to find out how to use PARODIS and implement your own models and problems, check out the Getting Started section in the Wiki.

Documentation

For a detailed description and documentation of how to use PARODIS and its components, check out our Wiki.

Citation

If you use PARODIS in your research, please consider citing it.

T. Schmitt, J. Engel, M. Hoffmann and T. Rodemann, "PARODIS: One MPC framework to control them all. Almost."
2021 IEEE Conference on Control Technology and Applications (CCTA), 2021, pp. 466-471, doi: 10.1109/CCTA48906.2021.9658821.

@INPROCEEDINGS{9658821,
  author={Schmitt, Thomas and Engel, Jens and Hoffmann, Matthias and Rodemann, Tobias},
  booktitle={2021 IEEE Conference on Control Technology and Applications (CCTA)}, 
  title={PARODIS: One MPC framework to control them all. Almost.}, 
  year={2021},
  volume={},
  number={},
  pages={466-471},
  doi={10.1109/CCTA48906.2021.9658821}
}

Attribution & Contribution

PARODIS is released under the BSD-2 license, so feel free to modify and use PARODIS as you wish. We'd really appreciate it though, if you would maybe put some kind of attribution in your project :)

Furthermore, you're very much encouraged to contribute to the development of PARODIS by telling us about any issues you encounter by opening an issue (duh) or by even contributing directly and asking us to pull your fixes.

parodis's People

Contributors

jengstud avatar mkhoffmann avatar t-schmitt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

parodis's Issues

Check dimension of x0 (and other)

If x0 has wrong dimension, an error is thrown in predictTrajectory()

  1. -> We should check the dimension in the initalization.
  2. Additional warnings in getDisturbance would ne nice, too

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.