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
Last synced: 10 months ago · JSON representation ·

Repository

This repository contains the supplementary code for the paper "Robust Direct Data-Driven Control for Probabilistic Systems"

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

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()).
  1. 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_N

  2. Extract the data

    bash python -m rddc.evaluation.heatmap_sigma_N_extract_data --testcase dean --mode var_sigma_N

  3. Create 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()).
  1. 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_N

  2. Extract the data

    bash python -m rddc.evaluation.heatmap_T_N_extract_data --testcase dean --mode var_T_N

  3. Create 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.py
  • rddc/evaluation/heatmap_sigma_N_extract_data.py
  • rddc/evaluation/heatmap_sigma_N.py
  • rddc/evaluation/heatmap_T_N_extract_data.py
  • rddc/evaluation/heatmap_T_N.py

Owner

  • Name: Data Science in Mechanical Engineering (DSME)
  • Login: Data-Science-in-Mechanical-Engineering
  • Kind: organization
  • Location: Aachen, Germany

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