HILO-MPC


NameHILO-MPC JSON
Version 1.0.3 PyPI version JSON
download
home_pagehttps://www.ccps.tu-darmstadt.de/research_ccps/hilo_mpc/
SummaryHILO-MPC is a toolbox for easy, flexible and fast development of machine-learning-supported optimal control and estimation problems
upload_time2023-04-30 07:38:22
maintainerHILO-MPC Developers
docs_urlNone
author
requires_python>=3.7
licenseGNU Lesser General Public License v3 (LGPLv3)
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            HILO-MPC 
========

[![python](https://img.shields.io/badge/Python-3.7%20%7C%203.8%20%7C%203.9-informational)](https://www.python.org/downloads/)
[![Documentation Status](https://readthedocs.org/projects/ansicolortags/badge/?version=latest)](https://hilo-mpc.github.io/hilo-mpc/)
[![tests](https://github.com/hilo-mpc/hilo-mpc/workflows/Tests/badge.svg)](https://github.com/hilo-mpc/hilo-mpc/actions?query=workflow%3ATests)
<!--[![codecov](https://codecov.io/gh/hilo-mpc/hilo-mpc/branch/master/graph/badge.svg?token=7U83P1M0H4)](https://codecov.io/gh/hilo-mpc/hilo-mpc)-->
[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/hilo-mpc/hilo-mpc.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/hilo-mpc/hilo-mpc/context:python)
[![doi](https://img.shields.io/badge/DOI-10.48550%2FarXiv.2203.13671-informational)](https://doi.org/10.48550/arXiv.2203.13671)
[![Github license](https://img.shields.io/github/license/hilo-mpc/hilo-mpc.svg)](https://github.com/hilo-mpc/hilo-mpc/blob/master/LICENSE)
[![Github release](https://img.shields.io/github/release/hilo-mpc/hilo-mpc.svg)](https://GitHub.com/hilo-mpc/hilo-mpc/releases/)

HILO-MPC is a Python toolbox for **easy, flexible and fast realization of machine-learning-supported optimal control, and 
estimation problems** developed mainly at the [Control and Cyber-Physical Systems Laboratory, TU Darmstadt](https://www.ccps.tu-darmstadt.de), and the [Laboratory for Systems Theory and Control, Otto von Guericke University](http://ifatwww.et.uni-magdeburg.de/syst/). It can be used for model predictive control, moving horizon estimation, Kalman filters, solving optimal control problems and has interfaces to embedded model predictive control tools.

HILO-MPC can interface directly to [TensorFlow](https://www.tensorflow.org/) and [PyTorch](https://pytorch.org/)
to create machine learning models and the [CasADi](https://web.casadi.org/) framework to efficiently
build control and estimation problems. The machine learning models can be used (almost) everywhere in the setup
of these problems. 

![plot](docs/docsource/images/overview.svg)

Currently the following machine learning models are supported:

- Feedforward neural networks
- Gaussian processes
 
The following machine learning models are currently under development:
 
- Bayesian neural network
- Recurrent neural network

At the moment the following MPC and optimal control problems can be solved:

- Reference tracking nonlinear MPC
- Trajectory tracking nonlinear MPC
- Path following nonlinear MPC
- Economic nonlinear MPC
- Linear MPC
- Traditional optimal control problems

All the nonlinear MPCs support soft constraints, time-variant systems, time-varying parameters and can be used to solve 
minimum-time problems. They work for continuous-time and discrete-time models, in DAE or ODE form. Linear MPC is currently limited towards discrete-time models. 

A rich set of [examples](https://github.com/hilo-mpc/examples) is available, spanning:
- NMPC for bioreactors using hybrid first principle and learned models
- Trajectory tracking and path following model predictive control with learning and obstacle avoidance
- Output feedback MPC of a continuous stirred tank reactor with a Gaussian process prediction model
- Learning NMPC control using a neural network
- Simple LQR, PID 
- Moving horizon estimation, extended Kalman filter, unscented Kalman filter, and particle filter for a continuous stirred tank reactor

Installation
------------
You can use pip to install HILO-MPC as follows 

```shell
pip install hilo-mpc
```

Additional Packages
-------------------
If you want to make use of the complete functionality of the toolbox, you may want to install one of the following 
packages

| Package                                          | Version          | Usage                                          |
|--------------------------------------------------|------------------|------------------------------------------------|
| [TensorFlow](https://www.tensorflow.org)         | \>=2.3.0, <2.8.0 | Training of neural networks                    |
| [PyTorch](https://pytorch.org)                   | \>=1.2.0         | Training of neural networks                    |
| [scikit-learn](https://scikit-learn.org/stable/) | \>=0.19.2        | Normalizing of training data                   |
| [Bokeh](https://bokeh.org)                       | \>=2.3.0         | Plotting                                       |
| [Matplotlib](https://matplotlib.org)             | \>=3.0.0         | Plotting                                       |
| [pandas](https://pandas.pydata.org)              | \>=1.0.0         | Providing data for training of neural networks |

Documentation
-------------
A preliminary documentation can be found [here](https://hilo-mpc.github.io/hilo-mpc/). Note that this documentation is
not complete and will be updated over time.

Citing HILO-MPC
---------------
If you use HILO-MPC for your research, please cite the following publication:

* J. Pohlodek, B. Morabito, C. Schlauch, P. Zometa, R. Findeisen. **[Flexible development and evaluation of 
machine-learning-supported optimal control and estimation methods via HILO-MPC](https://arxiv.org/abs/2203.13671)**. 
arXiv. 2022.

```
@misc{pohlodek2022hilompc,
    title = {Flexible development and evaluation of machine-learning-supported optimal control and estimation methods via {HILO-MPC}},
    author = {Pohlodek, Johannes and Morabito, Bruno and Schlauch, Christian and Zometa, Pablo and Findeisen, Rolf},
    publisher = {arXiv},
    year = {2022},
    doi = {10.48550/ARXIV.2203.13671}
}
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.ccps.tu-darmstadt.de/research_ccps/hilo_mpc/",
    "name": "HILO-MPC",
    "maintainer": "HILO-MPC Developers",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/3b/cf/9ce08e6963bd867a5127a5bc219c5f5dd119546d8f18742a8ab1101cf2a3/HILO-MPC-1.0.3.tar.gz",
    "platform": "Windows",
    "description": "HILO-MPC \n========\n\n[![python](https://img.shields.io/badge/Python-3.7%20%7C%203.8%20%7C%203.9-informational)](https://www.python.org/downloads/)\n[![Documentation Status](https://readthedocs.org/projects/ansicolortags/badge/?version=latest)](https://hilo-mpc.github.io/hilo-mpc/)\n[![tests](https://github.com/hilo-mpc/hilo-mpc/workflows/Tests/badge.svg)](https://github.com/hilo-mpc/hilo-mpc/actions?query=workflow%3ATests)\n<!--[![codecov](https://codecov.io/gh/hilo-mpc/hilo-mpc/branch/master/graph/badge.svg?token=7U83P1M0H4)](https://codecov.io/gh/hilo-mpc/hilo-mpc)-->\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/hilo-mpc/hilo-mpc.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/hilo-mpc/hilo-mpc/context:python)\n[![doi](https://img.shields.io/badge/DOI-10.48550%2FarXiv.2203.13671-informational)](https://doi.org/10.48550/arXiv.2203.13671)\n[![Github license](https://img.shields.io/github/license/hilo-mpc/hilo-mpc.svg)](https://github.com/hilo-mpc/hilo-mpc/blob/master/LICENSE)\n[![Github release](https://img.shields.io/github/release/hilo-mpc/hilo-mpc.svg)](https://GitHub.com/hilo-mpc/hilo-mpc/releases/)\n\nHILO-MPC is a Python toolbox for **easy, flexible and fast realization of machine-learning-supported optimal control, and \nestimation problems** developed mainly at the [Control and Cyber-Physical Systems Laboratory, TU Darmstadt](https://www.ccps.tu-darmstadt.de), and the [Laboratory for Systems Theory and Control, Otto von Guericke University](http://ifatwww.et.uni-magdeburg.de/syst/). It can be used for model predictive control, moving horizon estimation, Kalman filters, solving optimal control problems and has interfaces to embedded model predictive control tools.\n\nHILO-MPC can interface directly to [TensorFlow](https://www.tensorflow.org/) and [PyTorch](https://pytorch.org/)\nto create machine learning models and the [CasADi](https://web.casadi.org/) framework to efficiently\nbuild control and estimation problems. The machine learning models can be used (almost) everywhere in the setup\nof these problems. \n\n![plot](docs/docsource/images/overview.svg)\n\nCurrently the following machine learning models are supported:\n\n- Feedforward neural networks\n- Gaussian processes\n \nThe following machine learning models are currently under development:\n \n- Bayesian neural network\n- Recurrent neural network\n\nAt the moment the following MPC and optimal control problems can be solved:\n\n- Reference tracking nonlinear MPC\n- Trajectory tracking nonlinear MPC\n- Path following nonlinear MPC\n- Economic nonlinear MPC\n- Linear MPC\n- Traditional optimal control problems\n\nAll the nonlinear MPCs support soft constraints, time-variant systems, time-varying parameters and can be used to solve \nminimum-time problems. They work for continuous-time and discrete-time models, in DAE or ODE form. Linear MPC is currently limited towards discrete-time models. \n\nA rich set of [examples](https://github.com/hilo-mpc/examples) is available, spanning:\n- NMPC for bioreactors using hybrid first principle and learned models\n- Trajectory tracking and path following model predictive control with learning and obstacle avoidance\n- Output feedback MPC of a continuous stirred tank reactor with a Gaussian process prediction model\n- Learning NMPC control using a neural network\n- Simple LQR, PID \n- Moving horizon estimation, extended Kalman filter, unscented Kalman filter, and particle filter for a continuous stirred tank reactor\n\nInstallation\n------------\nYou can use pip to install HILO-MPC as follows \n\n```shell\npip install hilo-mpc\n```\n\nAdditional Packages\n-------------------\nIf you want to make use of the complete functionality of the toolbox, you may want to install one of the following \npackages\n\n| Package                                          | Version          | Usage                                          |\n|--------------------------------------------------|------------------|------------------------------------------------|\n| [TensorFlow](https://www.tensorflow.org)         | \\>=2.3.0, <2.8.0 | Training of neural networks                    |\n| [PyTorch](https://pytorch.org)                   | \\>=1.2.0         | Training of neural networks                    |\n| [scikit-learn](https://scikit-learn.org/stable/) | \\>=0.19.2        | Normalizing of training data                   |\n| [Bokeh](https://bokeh.org)                       | \\>=2.3.0         | Plotting                                       |\n| [Matplotlib](https://matplotlib.org)             | \\>=3.0.0         | Plotting                                       |\n| [pandas](https://pandas.pydata.org)              | \\>=1.0.0         | Providing data for training of neural networks |\n\nDocumentation\n-------------\nA preliminary documentation can be found [here](https://hilo-mpc.github.io/hilo-mpc/). Note that this documentation is\nnot complete and will be updated over time.\n\nCiting HILO-MPC\n---------------\nIf you use HILO-MPC for your research, please cite the following publication:\n\n* J. Pohlodek, B. Morabito, C. Schlauch, P. Zometa, R. Findeisen. **[Flexible development and evaluation of \nmachine-learning-supported optimal control and estimation methods via HILO-MPC](https://arxiv.org/abs/2203.13671)**. \narXiv. 2022.\n\n```\n@misc{pohlodek2022hilompc,\n    title = {Flexible development and evaluation of machine-learning-supported optimal control and estimation methods via {HILO-MPC}},\n    author = {Pohlodek, Johannes and Morabito, Bruno and Schlauch, Christian and Zometa, Pablo and Findeisen, Rolf},\n    publisher = {arXiv},\n    year = {2022},\n    doi = {10.48550/ARXIV.2203.13671}\n}\n```\n",
    "bugtrack_url": null,
    "license": "GNU Lesser General Public License v3 (LGPLv3)",
    "summary": "HILO-MPC is a toolbox for easy, flexible and fast development of machine-learning-supported optimal control and estimation problems",
    "version": "1.0.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/hilo-mpc/hilo-mpc/issues",
        "Documentation": "https://hilo-mpc.github.io/hilo-mpc/",
        "Download": "https://github.com/hilo-mpc/hilo-mpc/releases",
        "Homepage": "https://www.ccps.tu-darmstadt.de/research_ccps/hilo_mpc/",
        "Source Code": "https://github.com/hilo-mpc/hilo-mpc"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0ea63d5512789c68fd4a557cc770f7f9fc9ea11f2f6a242501540bcdb4df3ba2",
                "md5": "462fce01e032371d239338b9fe07705f",
                "sha256": "1256e8d6436609a94ef54d352b52f6e2f78f7c91c0fd15d127ca4c8e4ea2aa58"
            },
            "downloads": -1,
            "filename": "HILO_MPC-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "462fce01e032371d239338b9fe07705f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 256158,
            "upload_time": "2023-04-30T07:38:20",
            "upload_time_iso_8601": "2023-04-30T07:38:20.169791Z",
            "url": "https://files.pythonhosted.org/packages/0e/a6/3d5512789c68fd4a557cc770f7f9fc9ea11f2f6a242501540bcdb4df3ba2/HILO_MPC-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3bcf9ce08e6963bd867a5127a5bc219c5f5dd119546d8f18742a8ab1101cf2a3",
                "md5": "7b15bc6e2333a6effc44ddeae858438a",
                "sha256": "e46d7b8e41e5af5c6a266fb5e4ed41701cdea6508c181dc09607d271ff309390"
            },
            "downloads": -1,
            "filename": "HILO-MPC-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "7b15bc6e2333a6effc44ddeae858438a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 238331,
            "upload_time": "2023-04-30T07:38:22",
            "upload_time_iso_8601": "2023-04-30T07:38:22.115758Z",
            "url": "https://files.pythonhosted.org/packages/3b/cf/9ce08e6963bd867a5127a5bc219c5f5dd119546d8f18742a8ab1101cf2a3/HILO-MPC-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-30 07:38:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "hilo-mpc",
    "github_project": "hilo-mpc",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "hilo-mpc"
}
        
Elapsed time: 0.25122s