This repository contains the MATLAB code that accompanies the research paper:
Leeman, Antoine P and Kohler, Johannes and Messerer, Florian and Lahr, Amon and Diehl, Moritz and Zeilinger, Melanie N “Fast System Level Synthesis: Robust Model Predictive Control using Riccati Recursions” IFAC Conference on Nonlinear Model Predictive Control (NMPC), 58(18), 173-180, 2024.
The paper is available online and was recognized as a finalist for the Young Author Award.
- MATLAB (tested with version R2023b running on Macbook Pro with M1 processor with 8 cores and 16GB of RAM running macOS Sonoma)
- Casadi (tested with casadi-3.6.4-osx_arm64-matlab2018b )
Only for performance comparison:
- Yalmip (tested with Version 22-June-2023)
- Mosek (tested with Version 10.3)
- Gurobi (tested with Version 10.0.3)
-
Download and install MATLAB from the official website.
-
Install Casadi by following the instructions from the official Casadi documentation.
-
(optionnal) If you want to run the comparisons
-
Install Yalmip
-
Download MOSEK, (request a license), and add it to your matlab path
addpath('C:/Users/Documents/mosek/10.3/toolbox/r2022b/mosekopt.mexmaca64'); % Adjust this path to your MOSEK installation savepath; % Save the updated path for future MATLAB sessions
-
Downlaod Gurobi, (request a license), and add it to your matlab path
addpath('C:/Users/gurobi/macos_universal2/'); % Adjust this path to your Gurobi installation savepath; % Save the updated path for future MATLAB sessions
-
Clone this repository or download the code as a ZIP archive and extract it to a folder of your choice.
-
Add the code folder to your MATLAB path by running the following command in the MATLAB Command Window:
addpath('/path/to/your/code/folder');
Run the main script (i.e., main.m) to execute the algorithms and models discussed in the paper.
This project is licensed under the MIT License.
If you use this code in your research, please cite our paper:
@article{LEEMAN2024_fastSLS,
title = {Fast System Level Synthesis: Robust Model Predictive Control using {Riccati} Recursions},
journal = {IFAC-PapersOnLine (Conference on Nonlinear MPC)},
volume = {58},
number = {18},
pages = {173-180},
year = {2024},
issn = {2405-8963},
doi = {https://doi.org/10.1016/j.ifacol.2024.09.027},
author = {Antoine P. Leeman and Johannes K{\"o}hler and Florian Messerer and Amon Lahr and Moritz Diehl and Melanie N. Zeilinger},
keywords = {Optimization and Model Predictive Control, Robust Model Predictive Control, Real-Time Implementation of Model Predictive Control},
}
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.