Skip to content
oravec-juraj edited this page Aug 13, 2024 · 21 revisions

MUP R20240813

R20240813 [changelog] [RMPC_BLOCK] [MUP and CLI] [SOFT-CON]

wiki20240813.1

MUP Description

MUP is a MATLAB/Simulink toolbox for online robust MPC design in the LMI-framework. MUP toolbox represents an effective and user-friendly tool. Therefore it is recommended to use the software for educational purposes. MUP is distributed in the hope that it will be useful, but without any warranty. Required dependencies are YALMIP and recommended solver is SeDuMi or Mosek. They are not included in the toolbox.

If you use the MUP toolbox, we would be happy to hear about it. Please let us know at [email protected].

MUP Citation

MUP toolbox has been presented at the American Control Conference, June 4-6 2014, in Portland, Oregon, USA:

Bakošová, M. - Oravec, J.: Robust Model Predictive Control of a Laboratory Two-Tank System. In Proc. of the American Control Conference, Portland, Oregon, USA, pp. 5242-5247, 2014.

BibTeX entry for use in LATEX with \usepackage{url}:

@inproceedings{mup,

author = {Bako\v{s}ov'a, M. and Oravec, J.},

title = {Robust Model Predictive Control of Uncertain Linear Systems with Persistent Disturbances and Input Constraints},

booktitle = {American Control Conference},

year = {2014},

pages = {5242--5247},

address = {Portland, Oregon, USA},

url = {https://github.com/oravec-juraj/mup/wiki/}

}

MUP Disclaimer

MUP toolbox is distributed under the GNU General Public License (GPL), but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is the user's responsibility to assess the correctness of the theory and software implementation before putting it to use in their own research or exploiting the results commercially. We are, however, very happy to answer any questions and investigate any bug reports.

MUP Localization

The software is recently localized into the following languages:

  • English

MUP Compatibility

The toolbox has been created in the MATLAB/Simulink programming environment. It can be run in MATLAB 2014a - Simulink v8.3 and newer.

MUP Installation

To install the toolbox in a successful way, go through the following seven steps:

  1. Download the software package from the link: download.
  2. Unzip the package into the required home folder (e.g.: MATLAB/toolbox/mup).
  3. Run MATLAB.
  4. In the MATLAB menu use File/Set Path...
  5. Use the button [Add with Subfolders...].
  6. Find out the chosen home folder.
  7. Use the button [Save] to save the changes.

Alternatively, you can use tbxmanager to install MUP by typing:

tbxmanager install mup

and to update mup you can type:

tbxmanager update mup

To check the functionality of the MUP toolbox type:

muptest;

Then the output may look like the following:

 MUPTEST finished.
 RMPC design methods are available.
 List of available methods:
   1: Cao et al. (2005)
  ...
  19: Zhang et al. (2013)
 YALMIP found.
 SDP solver(s): MOSEK,SCS,SeDuMi.
 SOFT-CON module is available.
 No problems detected.

Problem to solve:

The task is to find an optimal robustly stabilizing state-feedback control law. The control inputs are computed using the gain matrix of the state-feedback control law. This matrix is designed to solve the semidefinite programming (SDP) of the convex optimization problem. The problem is formulated using linear matrix inequalities (LMI). The infinity prediction horizon is considered. The controlled process is described using the linear state-space system with parametric uncertainties in the discrete-time domain given by:

x(t+Ts) = A x(t) + B u(t), x(0) = x0, y(t) = C x(t),

[A,B,C] \in S, S = convhull([A(v),B(v),C(v)], \forall v \in {1,\ldots, Nv}),

where

  • x(t) is Nx-dimensional real-valued vector of system states,
  • u(t) is Nu-dimensional real-valued vector of system inputs,
  • y(t) is Ny-dimensional real-valued vector of system outputs,
  • x0 is Nx-dimensional real-valued vector of system initial conditions,
  • A(v) is (Nx)-dimensional square matrix of system states,
  • B(v) is (Nx)-times-(Nu)-dimensional matrix of system inputs,
  • C(v) is (Ny)-times-(Nu)-dimensional matrix of system outputs,
  • v denotes the vertex-dependence of the uncertain system,
  • Ts is the sampling time,
  • S is a family of the uncertain system determined by the convex hull of vertex systems.

Then the state-feedback control law is designed as follows:

u(t) = F(t) x(t)

where

  • F(t) is (Nu)-times-(Nx)-dimensional gain matrix of robust MPC.

The aim of control is to ensure robust stability in the sense of Lyapunov and simultaneously minimize the quadratic cost function value:

J(0 -> N) = sum_(t=0)^(N) ( x(t)' Wx x(t) + u(t)' Wu u(t) )

where

  • N is the total time of control,
  • J(0 -> N) is the cost function value on the time interval [0,N],
  • Wx is the positively-semidefinite Nx-dimensional real-valued square matrix,
  • Wu is the positively-definite Nu-dimensional real-valued square matrix.

A presentation about MUP Toolbox can be downloaded here [How2use_mup.pdf] .

Implemented RMPC methods

MATLAB/Simulink RMPC_BLOCK enables the computation of online robust MPC control input for a given system state. The controller is designed based on the following robust MPC design approaches:

There are five more alternative robust MPC design approaches:

  • nominal-system-optimization and additional-control-input-saturation-based RMPC method (denoted by: NSO and ACIS),
  • nominal-system-optimization and weighted-additional-control-input-saturation-based RMPC method (denoted by: NSO and WACIS),
  • nominal-system-optimization and saturation-dependent-Lyapunov-function-based RMPC method (denoted by: NSO and SDLF),
  • parameter-dependent-Lyapunov-function and additional-control-input-saturation-based RMPC method (denoted by: PDLF and ACIS),
  • parameter-dependent-Lyapunov-function and weighted-additional-control-input-saturation-based RMPC method (denoted by: PDLF and WACIS),

and these approaches were published in the paper of BibTeX entry for use in LATEX with \usepackage{url}:

@inproceedings{AltRMPC,

author = {Oravec, J. and Bako\v{s}ov'a, M.},

title = {Alternative {LMI}-based Robust MPC Design Approaches},

booktitle = {Proceedings of the 8th IFAC Symposium on Robust Control Design},

year = {2015},

pages = {179--184},

number = {8},

address = {Bratislava, Slovak Republic},

url = {https://github.com/oravec-juraj/mup/wiki/}

}

RMPC_BLOCK

[RMPC_BLOCK]

We developed MATLAB/Simulink block RMPC_BLOCK that enables the design of RMPC in an efficient and user-friendly way. It can be initialized by typing in COMMAND-WINDOW of MATLAB R2021a (or later):

mup_rmpcblock_init

To run RMPC_BLOCK in MATLAB R2019b, R2020a, R2020b:

mup_rmpcblock_init_r2019b

To run RMPC_BLOCK in MATLAB 2019a and older (up to MATLAB R2014a):

mup_rmpcblock_init_r2014a

To demonstrate robust MPC design using our MATLAB/Simulink block type in MATLAB COMMAND-WINDOW:

mup_rmpcblock_demo

More information can be found on the wiki page RMPC_BLOCK.

RMPC Design using MATLAB CLI

[MUP and CLI]

MUP enables the design of RMPC also using MATLAB Command Line Interface (CLI). It enables to implementation of the RMPC design into the more complex control problems. To demonstrate robust MPC design using MATLAB CLI type in MATLAB COMMAND-WINDOW:

mup_rmpc_demo

More information can be found on the wiki page MUP and CLI.

SOFT-CON

MUP toolbox has the module to implement LMI-based soft constraints on control inputs and system outputs. More information can be found using SOFT-CON module homapge.

Benchmarks

It is possible to implement the RMPC considering some benchmark uncertain systems:

To load, e.g., a benchmark of Kothare et al. (1996) type:

benchmark_kothare % to load the benchmark system
mup_expand_rmpc_block_ws % to expand its variables