An open API service indexing awesome lists of open source software.

https://github.com/eric-bradford/sdd-gp-mpc

This repository contains the source code for "Stochastic data-driven model predictive control using Gaussian processes" (SDD-GP-MPC).
https://github.com/eric-bradford/sdd-gp-mpc

casadi chemical-engineering constraints differential-equations gaussian-processes machine-learning model-predictive-control monte-carlo-simulation optimization-algorithms python3 state-space-model stochastic-processes

Last synced: 5 months ago
JSON representation

This repository contains the source code for "Stochastic data-driven model predictive control using Gaussian processes" (SDD-GP-MPC).

Awesome Lists containing this project

README

        

# Stochastic data-driven model predictive control using Gaussian processes
---
This repository contains the source code of the work in *[Bradford et al., 2020](#Bradford2020)*. In this work we proposed a new method to design a GP-based NMPC algorithm for finite horizon control problems. The method generates Monte Carlo samples of the GP offline for constraint tightening using back-offs. The tightened constraints then guarantee the satisfaction of chance constraints online. Advantages of our proposed approach over existing methods include fast online evaluation, consideration of closed-loop behaviour, and the possibility to alleviate conservativeness by considering both online learning and state dependency of the uncertainty. The algorithm is verified on a challenging semi-batch bioprocess case study.

If you found this code helpful please consider citing *[Bradford et al., 2020](#Bradford2020)*.

---
## Highlights




A robust data-driven model predictive control algorithm is presented.


Construction of a probabilistic state space model using Gaussian processes.


Back-offs are computed offline using closed-loop Monte Carlo simulations.


Independence of samples allows probabilistic guarantees to be derived.


Explicit consideration of online learning and state dependency of the uncertainty.



---
## Getting started
Create a new environment in conda using the *environment.yml* file:

```
conda env create --file environment.yml
```
Then you should be able to run the simulation file *[GP_NMPC_batch_simulation.py](GP_NMPC_batch_simulation.py)*. To adjust the problem, simply amend the problem definition given in *[Problem_definition.py](Problem_definition.py)*.

---
## Reference
Bradford, E., Imsland, L., Zhang, D., del Rio-Chanona, E.A., 2020. [Stochastic data-driven model predictive control using Gaussian processes](https://doi.org/10.1016/j.compchemeng.2020.106844). Computers & Chemical Engineering 139, 106844.

---
## Acknowledgements
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie SklodowskaCurie grant agreement No 675215.

---
## Legal information
This project is licensed under the MIT license – see *[LICENSE.md](LICENSE)* in the repository for details.