Skip to content

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

License

Notifications You must be signed in to change notification settings

Eric-Bradford/SDD-GP-MPC

Repository files navigation

Stochastic data-driven model predictive control using Gaussian processes


This repository contains the source code of the work in Bradford et al., 2020. 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.


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. To adjust the problem, simply amend the problem definition given in 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. 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 in the repository for details.