brunzema / uitvbo

This repository contains the code for the paper "On Controller-Tuning with Time-Varying Optimization" (Accepted at the 61st IEEE Conference for Decision and Control).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

On Controller-Tuning with Time-Varying Bayesian Optimization

This repository contains the code for the paper "On Controller-Tuning with Time-Varying Bayesian Optimization (2022)" accepted at the 61st IEEE Conference on Decision and Control.

LQR_Regret_combined6

We propose a novel model for time-varying Bayesian optimization called UI-TVBO which leverages the concept of uncertainty injection. UI-TVBO is especially suitable for non-stationary time-varying optimization problems such as controller-tuning. Motivated by the LQR controller-tuning problem, we further include convexity constraints on the GP to increase sample efficiency. The model is implemented using GPyTorch and BoTorch.

If you find our code or paper useful, please consider citing

@inproceedings{brunzema2022controller,
  title={On controller tuning with time-varying {Bayesian} optimization},
  author={Brunzema, Paul and Von Rohr, Alexander and Trimpe, Sebastian},
  booktitle={2022 IEEE 61st Conference on Decision and Control (CDC)},
  pages={4046--4052},
  year={2022},
  organization={IEEE}
}

Install packages via pip

To install the necessary packages into an environment with python 3.9.10 use the requirements.txt file as

pip install -r requirements.txt

Results and parameters

All the hyperparameters (Gamma prior, feasible set, etc.) used in the paper are specified in the corresponding jupyter notebooks (*.ipynb). The parameters of the simulated inverted pendulum are based on a hardware experiment and are specified in src/objective_functions_LQR.py. To recreate our results, first install the necessary packages and then just run the notebooks. :)

About

This repository contains the code for the paper "On Controller-Tuning with Time-Varying Optimization" (Accepted at the 61st IEEE Conference for Decision and Control).

License:MIT License


Languages

Language:Python 86.6%Language:Jupyter Notebook 13.4%