Skip to content

aalanwar/Data-Driven-Predictive-Control

Repository files navigation

Robust Data-Driven Predictive Control using Reachability Analysis



ECC 2022 talk

Seminar



This repo contains the code for our two papers:
[1] Amr Alanwar*, Yvonne Stürz*, Karl Johansson "Robust Data-Driven Predictive Control using Reachability Analysis" European Journal of Control


We present a robust data-driven control scheme for unknown linear systems with a bounded process and measurement noise. Instead of depending on a system model as in traditional predictive control, a controller utilizing a data-driven reachable region is proposed. The data-driven reachable regions are based on a matrix zonotope recursion and are computed based on only noisy input-output data of the system's trajectory. We assume measurement and process noise which are contained in bounded sets. While we assume knowledge of these bounds, no knowledge about the statistical properties of the noise is assumed. Our proposed scheme guarantees robust constraint satisfaction under measurement and process noise, which is essential in safety-critical applications.



Subject Pronouns

[2] Mahsa Farjadnia*, Amr Alanwar, Muhammad Umar B. Niazi, Marco Molinari, and Karl Henrik Johansson. "Robust Data-Driven Predictive Control of Unknown Nonlinear Systems using Reachability Analysis." Accepted to European Control Conference (ECC) 2023.


We present a robust data-driven predictive control approach for unknown nonlinear systems in the presence of bounded process and measurement noise. By using the past noisy input-output data in the learning phase, we propose a novel method to over-approximate reachable sets of an unknown nonlinear system. Then, we propose a data-driven predictive control approach to compute safe and robust control policies from noisy online data. The constraints are guaranteed in the control phase with robust safety margins through the effective use of the predicted output reachable set obtained in the learning phase.



Running

Note: Remove any version of CORA toolboxes from the Matlab path before starting.

paper [1]


1- Download MPT and install mosek toolboxs.
2- Add MPT folder and subfolders to the Matlab path.
3- Add the whole folder of this repo and subfolders to the Matlab path.
4- run ZPC.m.
5- run Robust_MPC_polytopes.m.
6- run plotPolyZono.m

paper [2]


1- Download and install the [MPT](https://www.mpt3.org) and [mosek](https://www.mosek.com/products/academic-licenses/) toolboxes.
2- Add the MPT folder and its subfolders to the Matlab path.
3- Include the entire folder of this repository, along with its subfolders, in the Matlab path.
4- Execute the NZPC_Predictive_Control.m file.


Ack

Note that portion of this code is from CORA toolbox and from Felix Gruber, and Matthias Althoff "Scalable Robust Model Predictive Control for Linear Sampled-Data Systems" We acknowledge the efforts by Paul George (UWaterloo) in fixing one Bug in the code. Many thanks!

Our paper Bibtex is as follows:

@article{alanwar2022robust,
  title={Robust data-driven predictive control using reachability analysis},
  author={Alanwar, Amr and St{\"u}rz, Yvonne and Johansson, Karl Henrik},
  journal={European Journal of Control},
  pages={100666},
  year={2022},
  publisher={Elsevier}
}
@article{farjadnia2022robust,
  title={Robust Data-Driven Predictive Control of Unknown Nonlinear Systems using Reachability Analysis},
  author={Farjadnia, Mahsa and Alanwar, Amr and Niazi, Muhammad Umar B and Molinari, Marco and Johansson, Karl Henrik},
  journal={arXiv preprint arXiv:2211.05867, Accepted at European Control Conference (ECC)},
  year={2023}
}