rddc
This repository contains the supplementary code for the paper "Robust Direct Data-Driven Control for Probabilistic Systems"
https://github.com/data-science-in-mechanical-engineering/rddc
Science Score: 75.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, sciencedirect.com -
○Academic email domains
-
✓Institutional organization owner
Organization data-science-in-mechanical-engineering has institutional domain (www.dsme.rwth-aachen.de) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.4%) to scientific vocabulary
Repository
This repository contains the supplementary code for the paper "Robust Direct Data-Driven Control for Probabilistic Systems"
Basic Info
- Host: GitHub
- Owner: Data-Science-in-Mechanical-Engineering
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://www.sciencedirect.com/science/article/pii/S0167691124002998
- Size: 4.31 MB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Robust Direct Data-Driven Control for Probabilistic Systems
This repository contains the supplementary code for the paper Robust Direct Data-Driven Control for Probabilistic Systems published at the Systems & Control Letters.
A preprint of the paper is on arXiv.
Abstract
We propose a data-driven control method for systems with aleatoric uncertainty, such as robot fleets with variations between agents. Our method leverages shared trajectory data to increase the robustness of the designed controller and thus facilitate transfer to new variations without the need for prior parameter and uncertainty estimation. In contrast to existing work on experience transfer for performance, our approach focuses on robustness and uses data collected from multiple realizations to guarantee generalization to unseen ones. Our method is based on scenario optimization combined with recent formulations for direct data-driven control. We derive upper bounds on the minimal amount of data required to provably achieve quadratic stability for probabilistic systems with aleatoric uncertainty and demonstrate the benefits of our data-driven method through a numerical example. We find that the learned controllers generalize well to high variations in the dynamics even when based on only a few short open-loop trajectories. Robust experience transfer enables the design of safe and robust controllers that work ``out of the box'' without additional learning during deployment.
Citation
If you find our code or paper useful, please consider citing
bibtex
@article{vonrohr2024robust,
title = {Robust direct data-driven control for probabilistic systems},
author = {Alexander {von Rohr} and Dmitrii Likhachev and Sebastian Trimpe},
journal = {Systems & Control Letters},
volume = {196},
pages = {106011},
year = {2025},
issn = {0167-6911},
doi = {https://doi.org/10.1016/j.sysconle.2024.106011},
url = {https://www.sciencedirect.com/science/article/pii/S0167691124002998},
}
How to use the supplementary code
Software Requirements
- python 3.8
- pipenv
- mosek (preferred) / cvxopt
- latex (e.g.
texlive-latex-recommended+texlive-latex-extra)
Installation
- Install the basic software requirements
- Clone this repository
- Install the dependencies using pipenv:
bash
pipenv install
Running the environment
- Navigate to the root of the installation
- activate the virtual environment
bash
pipenv shell
if this command doesn't work, try python -m pipenv shell
- Run modules from the root of the installation using
python -m, e.g.
bash
python -m rddc.run.1d_sigma_regions
Reproduction of the results
After each simulation / variation run, the data will be stored in data/. The figures are always generated from that data using separate scripts and stored in figures/.
Make sure to start every attempt at reproducing the results with an empty corresponding data folder.
Fig. 2 (Illustrative example of scenario optimization for a fleet of one-dimensional systems)
bash
python -m rddc.run.1d_sigma_regions
python -m rddc.evaluation.plot_sigma_regions
Fig. 3 (Synthetic example with different number of observed systems and varying degree of uncertainty)
This figure visualizes a comprehensive parameter study. Recreating the data and reproducing the plots might require significant amount of computational resources (~2000 core-hours). Go to step 3 to recreate the plots with the data from this repository.
- Adjust the number of cores available for computation in
rddc/run/settings/dean_var_sigma_N.py. - If desired, adjust the parameters to vary in the same file (function
get_variations()).
Simulate the parameter study: (Skip this if data is already available and stored in
./data/dean_var_sigma_N)bash python -m rddc.run.synthetic --testcase dean --mode var_sigma_NExtract the data
bash python -m rddc.evaluation.heatmap_sigma_N_extract_data --testcase dean --mode var_sigma_NCreate the plots
bash python -m rddc.evaluation.heatmap_sigma_N
Fig. 4 (Synthetic example with different number of observed systems and varying trajectory length)
This figure visualizes a comprehensive parameter study. Recreating the data and reproducing the plots might require significant amount of computational resources (~2000 core-hours). Go to step 3 to recreate the plots with the data from this repository.
- Adjust the number of cores available for computation in
rddc/run/settings/dean_var_T_N.py. - If desired, adjust the parameters to vary in the same file (function
get_variations()).
Simulate the parameter study: (Skip this if data is already available and stored in
./data/dean_var_T_N)bash python -m rddc.run.synthetic --testcase dean --mode var_T_NExtract the data
bash python -m rddc.evaluation.heatmap_T_N_extract_data --testcase dean --mode var_T_NCreate the plots
bash python -m rddc.evaluation.heatmap_T_N
Troubleshooting
If you encounter issues with paths, check the following files and adjust the variables basepath to the global path of your installation:
rddc/evaluation/plot_sigma_regions.pyrddc/evaluation/heatmap_sigma_N_extract_data.pyrddc/evaluation/heatmap_sigma_N.pyrddc/evaluation/heatmap_T_N_extract_data.pyrddc/evaluation/heatmap_T_N.py
Owner
- Name: Data Science in Mechanical Engineering (DSME)
- Login: Data-Science-in-Mechanical-Engineering
- Kind: organization
- Location: Aachen, Germany
- Website: https://www.dsme.rwth-aachen.de
- Repositories: 3
- Profile: https://github.com/Data-Science-in-Mechanical-Engineering
Public code repository of the Institute for Data Science in Mechanical Engineering at the RWTH Aachen University
Citation (CITATION.cff)
cff-version: 1.2.0
preferred-citation:
type: article
authors:
- family-names: "von Rohr"
given-names: "Alexander"
orcid: "https://orcid.org/0000-0002-0005-0310"
- family-names: "Likhachev"
given-names: "Dmitrii"
- family-names: "Trimpe"
given-names: "Sebastian"
orcid: "https://orcid.org/0000-0002-2785-2487"
title: "Robust direct data-driven control for probabilistic systems"
journal: "Systems & Control Letters"
volume: "196"
pages: "106011"
year: 2025
issn: "0167-6911"
doi: "https://doi.org/10.1016/j.sysconle.2024.106011"
url: "https://www.sciencedirect.com/science/article/pii/S0167691124002998"
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2