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).
- Host: GitHub
- URL: https://github.com/eric-bradford/sdd-gp-mpc
- Owner: Eric-Bradford
- License: mit
- Created: 2023-03-05T19:30:20.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-09T09:18:23.000Z (about 2 years ago)
- Last Synced: 2024-12-30T01:41:58.840Z (5 months ago)
- Topics: casadi, chemical-engineering, constraints, differential-equations, gaussian-processes, machine-learning, model-predictive-control, monte-carlo-simulation, optimization-algorithms, python3, state-space-model, stochastic-processes
- Language: Python
- Homepage:
- Size: 18.4 MB
- Stars: 50
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.