Wiki

Clone wiki

mup / MUP_r20151026

MUP

r20151026 [changelog] [RMPC_BLOCK] [MUP and CLI]

wiki20160215.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:

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://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:

  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 button [Add with Subfolders...].
  6. Find out the chosen home-folder.
  7. 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

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.

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:

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.

Updated