# Wiki

# mup / Home

# MUP

*r20161207* [changelog] [RMPC_BLOCK] [MUP and CLI] [SOFT-CON]

*wiki20161207.1*

## MUP Description:

MUP is MATLAB/Simulink toolbox for on-line robust MPC design in LMI-framework. MUP toolbox represents the 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 dependences 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 juraj.oravec@stuba.sk.

## MUP Citation:

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

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://bitbucket.org/oravec/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 in assessing 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 following languages:

- English

## MUP Compatibility:

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

## MUP Installation:

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

- Download the software package from the link: download.
- Unzip the package into the required home-folder (e.g.: MATLAB/toolbox/mup).
- Run MATLAB.
- In the MATLAB menu use File/Set Path...
- Use button [Add with Subfolders...].
- Find out the chosen home-folder.
- Use 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 MUP toolbox type:

muptest;

Then the output may looks like follow:

MUPTEST finished. RMPC methods available. YALMIP found. SDP solver(s): CSDP,DSDP,MOSEK,PENLAB,SDPA,SDPLR,SDPT3,SeDuMi. No problems detected.

## Problem to solve:

The task is to find optimal robustly stabilizing state-feedback control law. The control inputs are computed using the gain matrix of state-feedback control law. This matrix is designed solving the semidefinite programming (SDP) of convex optimization problem. The problem is formulated using the 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 family of uncertain system determined by 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 the 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.

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

## Implemented RMPC methods:

MATLAB/Simulink RMPC_BLOCK enables to compute on-line robust MPC control input for a given system state. The controller is designed based on the following robust MPC design approaches:

- M. V. Kothare, V. Balakrishnan, M. Morari (1996): Robust Constrained Model Predictive Control Using Linear Matrix Inequalities. Automatica 32, 10, 1361-1379.
- F. A. Cuzzola, J. C. Geromel, M. Morari (2002): An Improved Approach for Constrained Robust Model Predictive Control, Automatica 38, 7, 1183-1189.
- W. J. Mao (2003): Robust Stabilization of Uncertain Time-Varying Discrete Systems and Comments on "An Improved Approach for Constrained Robust Model Predictive Control". Automatica 39, 1109-1112.
- Z. Wan, M. V. Kothare (2003): Efficient Robust Constrained Model Predictive Control with a Time Varying Terminal Constraint Set. System & Control Letters 48, 375-383.
- Y. Y. Cao, Z. Lin (2005): Min-max MPC Algorithm for LPV Systems Subject to Input Saturation. Control Theory and Applications, IEE Proceedings 153, 266-272.
- B. C. Ding, Y. G. Xi, M. T. Cychowski, T. O'Mahoney (2007): Improving Off-line Approach to Robust MPC Based-on Nominal Performance Cost, Automatica, 43, 158-163.
- Z. Li, Y. Shi, D. Sun, L. Wang (2008): An Improved Constrained Robust Model Predictive Control Algorithm for Linear Systems with Polytopic Uncertainty. Proc. of the 2008 IEEE/ASME Int. Conf. on Advanced Intelligent Mechatronics, Xi'an, China, 1272-1277.
- H. Huang, D. Li, Z. Lin, Y. Xi (2011): An Improved Robust Model Predictive Control Design in the Presence of Actuator Saturation. Automatica 47, 861-864.
- L. Zhang, J. Wang, K. Li (2013): Min-Max MPC for LPV Systems Subject to Actuator Saturation by a Saturation-dependent Lyapunov Function. Proc. of the 32th Chinese Control Cnference, Xi'an, China, 4087-4092.

There are five more alternative robust MPC design approaches:

- nominal-system-optimization and addtional-control-input-saturation-based RMPC method (denoted by: NSO and ACIS),
- nominal-system-optimization and weighted-addtional-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 addtional-control-input-saturation-based RMPC method (denoted by: PDLF and ACIS),
- parameter-dependent-Lyapunov-function and weighted-addtional-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://bitbucket.org/oravec/mup/wiki/},

}

## RMPC_BLOCK

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

mup_rmpcblock_init

To run RMPC_BLOCK in MATLAB 2012a, 2012b, 2013a, or 2013b type (*.slx*):

mup_rmpcblock_init_r2012a

To run RMPC_BLOCK in MATLAB 2011b (*.mdl*):

mup_rmpcblock_init_r2011b

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

mup_rmpcblock_demo

The more information can be found in wiki page RMPC_BLOCK.

## RMPC Design using MATLAB CLI

MUP enables to design RMPC also using MATLAB Command Line Interface (CLI). It enables to implement 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

The more information can be found in 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:

- benchmark of the paper Kothare et al. (1996):
*benchmark_kothare*, - benchmark of the paper Cuzzola et al. (2002):
*benchmark_cuzzola*.

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

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

Updated