https://github.com/antoineleeman/sls_safety_filter
Matlab implementation of the paper "Predictive Safety Filter using System Level Synthesis"
https://github.com/antoineleeman/sls_safety_filter
control machine-learning mpc optimization safety-critical
Last synced: about 2 months ago
JSON representation
Matlab implementation of the paper "Predictive Safety Filter using System Level Synthesis"
- Host: GitHub
- URL: https://github.com/antoineleeman/sls_safety_filter
- Owner: antoineleeman
- License: mit
- Created: 2023-05-11T07:42:36.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-24T16:46:04.000Z (about 1 year ago)
- Last Synced: 2024-04-24T19:39:59.635Z (about 1 year ago)
- Topics: control, machine-learning, mpc, optimization, safety-critical
- Language: MATLAB
- Homepage: https://www.research-collection.ethz.ch/handle/20.500.11850/615512
- Size: 1.29 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Predictive safety filter using system level synthesis
This repository contains the MATLAB code that accompanies the research paper:
> Leeman AP., Köhler J., Bennani S., Zeilinger MN. “Predictive safety filter using system level synthesis.”
> Proceedings of The 5th Annual Learning for Dynamics and Control Conference, PMLR 211:1180-1192 (2023) doi:10.3929/ethz-b-000615512This repository contains the MATLAB implementation of the System Level Synthesis based Model Predictive Safety Filter (SL-MPSF) scheme presented in our paper. This novel approach to safety filters enhances the safety of control systems, especially those using learning-based controllers or human inputs, by ensuring constraint satisfaction.
Our code provides an implementation of an improved Model Predictive Safety Filter (MPSF) formulation that integrates System Level Synthesis (SLS) techniques. The resulting SL-MPSF scheme guarantees safety for linear systems that are subject to bounded disturbances and provides an enlarged safe set. Compared to conventional MPSF formulations, our approach requires fewer and less severe modifications of potentially unsafe control inputs to certify safety.
Additionally, this repository includes an implementation of an explicit variant of the SL-MPSF formulation. This variant reduces the required online computational effort, which is a major drawback of traditional MPSF approaches.
The code contains a numerical example demonstrating the advantages of our SL-MPSF formulations over state-of-the-art MPSF formulations.

The paper is freely available on [PMLR](https://proceedings.mlr.press/v211/leeman23a/leeman23a.pdf).
## Prerequisites
- MATLAB (tested with version R2020b)
- Multi-Parametric Toolbox 3 (MPT3)
- MOSEK## Installation
1. Download and install MATLAB from the [official website](https://www.mathworks.com/products/matlab.html).2. Install Mosek by following the instructions from the [official Mosek documentation](https://docs.mosek.com/9.2/install/installation.html).
3. Install the Multi-Parametric Toolbox 3 (MPT3) by following the instructions from the [official MPT3 documentation](https://www.mpt3.org/). In summary, you will need to:
4. Clone this repository or download the code as a ZIP archive and extract it to a folder of your choice.5. Add the code folder to your MATLAB path by running the following command in the MATLAB Command Window:
addpath('/path/to/your/code/folder');
## UsageRun the main script (i.e., main.m) to execute the algorithms and models discussed in the paper. Refer to the comments and documentation within the code for further details on the implementation.
## License
This project is licensed under the MIT License.
## Citation
If you use this code in your research, please cite our paper:
```
@inproceedings{leeman2023_L4DC,
title = {Predictive safety filter using system level synthesis},
year = {2023},
booktitle = {Proceedings of the 5th Annual Learning for Dynamics and Control Conference, PMLR},
volume = {211},
author={Leeman, Antoine P. and K{\"o}hler, Johannes and Benanni, Samir and Zeilinger, Melanie N.},
pages = {1180-1192},
doi = {10.3929/ethz-b-000615512}
}
```
## Support and Contact
For any questions or issues related to this code, please contact the author:
- Antoine Leeman: aleeman(at)ethz(dot)ch
We appreciate any feedback, bug reports, or suggestions for improvements.