Skip to content

Implement SLS MPC for linear systems subject to polytopic model uncertainty and additive disturbances.

Notifications You must be signed in to change notification settings

ShaoruChen/Polytopic-SLSMPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polytopic-SLSMPC

This repository contains codes to implement the robust model predictive control (MPC) method, SLS MPC, proposed in

Robust Model Predictive Control with Polytopic Model Uncertainty through System Level Synthesis
Shaoru Chen, Victor M. Preciado, Manfred Morari, Nikolai Matni
Automatica, 2024

and the robust MPC baselines therein.

Overview of SLS MPC

Problem formulation

In robust MPC of an uncertain linear time-invariant system, we consider solving a finite-horizon robust optimal control problem with the current state $x(k)$ as follows

where the model uncertainty parameters $(\Delta_A, \Delta_B)$ lies in a polytopic set which means they belong to a convex hull of a finite number of vertices and the additive disturbances $w_t$ belongs to a polytope $\mathcal{W}$. We want to find a robust feedback controller $\pi_t(\cdot)$ such that the polytopic state and input constraints $\mathcal{X}$ and $\mathcal{U}$ are robustly satisfied.

There is a naturally a tension in the parameterization of the feedback policy $\pi_t$ and the constraint tightening to guarantee robust constraint satisfaction of the above robust optimal control problem. A complex policy parameterization of $\pi_t$ makes it hard to tighten the constraints, while a simple policy parameterization is inherently conservative. We need to balance these two aspects in a good way.

Features of SLS MPC

Our proposed method, SLS MPC, has the following features:

  1. It searches linear time-varying state feedback controller $\pi_t(x_{0:t}) = K^{t,t}x_0 + \cdots + K^{t,0}x_t$ where the feedback gains $K^{t,t-i}$ are optimized online.
  2. Instead of searching the controller parameter $K^{t,t-i}$ directly which often leads to nonconvex optimization, we use System Level Synthesis (SLS) to reparameterize the controller in the system response space which reveals useful structures about the robust optimal control problem.
  3. SLS MPC introduces a virtual additive disturabnce signal to over-approximate the uncertainty effects and simplifies constraint tightening. The reach set of the virtual additive disturbance signal is optimized online jointly with the feedback controller parameters through a set of linear constraints.
  4. Using the virtual additive disturbances, we can easily derive an upper bound on the worst-case cost of the robust optimal control problem and minimize it.

Effectiveness of SLS MPC

We compare SLS MPC with several baselines, including tube-based methods and methods that also optimize over LTV state feedback controllers, in solving the robust optimal control problem and compare their feasible domains with varying uncertainty parameters.

In the first figure, coverage = (size of the feasible domain of each MPC method)/(size of the maximal robust control invariant set). The denominator is the theoretical upper bound on the feasible domain of any robust MPC method. $\epsilon_A$ denotes the level of model uncertainty. Note that SLS MPC always achieves more than 90% coverage even when the uncertainty parameters become large and is resilient to the change of MPC horizon. In the second figure, we directly plot the feasible domain estimations of different robust MPC methods.

In the following figure, we compare the coverages of different robust MPC methods on randomly generated systems and observe that SLS MPC achieves the best coverage in almost all examples, often with a significant tightness margin compared with the second-best method.

More details about these examples are included in the paper.

Installation

Add the mpc folder to MATLAB path and then you can run the examples in the paper.

Required toolboxes

Yalmip for formulating the control problems. MOSEK is used as the default solver in the codes.

MPT3 for polyhedron operations.

MatlabProgressBar for progress display (Not required if you remove the progress function in each for-loop, e.g. for i = progress(1:10) --> for i = 1:10).

Robust MPC baselines

Different robust MPC methods are implemented in the mpc folder and are summarized below (naming follows from the SLS MPC paper).

Tube-based methods

Uncertainty over-approximation-based methods

About

Implement SLS MPC for linear systems subject to polytopic model uncertainty and additive disturbances.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages