Clone wiki

mup / MUP_v20150202


v20150202 [changelog]


There is a newer version of MUP toolbox available at HomeWiki. We recommend to use the up-to-date version.

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

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


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 = {},


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


The control inputs are computed using the matrix of state-feedback controller. This matrix is designed solving the semidefinite programming (SDP) of convex optimization problem. The problem is formulated using the linear matrix inequalities (LMI). It is assumed, the controlled system is influenced by interval polytopic uncertainties. The infinity prediction horizon is evaluated based on the uncertain linear parameter-varying (LPV) state-space model of controlled system in the form:

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

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


  • x(t) is Nx-dimensional real-valued vector of system states,
  • u(t) is Nu-dimensional real-valued vector of system inputs,
  • 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,
  • 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)


  • 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) )


  • 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.

RMPC_BLOCK Description:

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:

RMPC_BLOCK Initialization:

The MATLAB-Simulink block RMPC_BLOCK can be obtained by typing in COMMAND-WINDOW of MATLAB 2014a (or later):

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

RMPC_BLOCK Configuration:

In this part is described the configuration of RMPC_BLOCK mask. The configuration parameters are divided into the two cards - Robust MPC Configuration and Setup.

Robust MPC Configuration:

  • Robust MPC approach - enables to determine the robust MPC design approach (see the section RMPC_BLOCK Description):
  • Kothare et al. (1996),
  • Cuzzola et al. (2002),
  • Mao (2003),
  • Wan et al. (2003),
  • Cao et al. (2005),
  • Ding et al. (2007),
  • Li et al. (2008),
  • Huang et al. (2011),
  • Zhang et al. (2013).
  • Feasibility Check: disable/enable - serves to evaluate the feasibility check of solved SDP problem of robust MPC design.
  • Feasibility Tolerance: [real number is requires] - this parameter is relevant just in the case, when "Feasibility Check" is set to the choice "enable". The value of parameter serves to determine whether the found solution is feasible or not.
  • Initial Conditions of System States: x0: [real-valued Nx-dimensional vector is required] - vector of initial conditions of the controlled system.
  • System State Matrix: A: [real-valued Nx-dimensional square matrix of MATLAB-class "cell-array" is required] - the linear state-space model state matrix A of MATLAB-class "cell-array", where each cell represent the uncertain system vertex.
  • System Input Matrix: B: [real-valued (Nx)-times-(Nu)-dimensional matrix of MATLAB-class "cell-array" is required] - the linear state-space model input matrix B of MATLAB-class "cell-array", where each cell represent the uncertain system vertex.
  • Sampling Time: Ts: [real number is required] - sampling time of discrete-time control.
  • Cost Function Weight of Inputs: Wu: [positively-semidefinite real-valued Nu-dimensional square matrix is required] - the weight matrix of system inputs of quadratic cost function.
  • Cost Function Weight of States: Wx: [positively-defined real-valued Nx-dimensional square matrix is required] - the weight matrix of system states of quadratic cost function.
  • Symmetric Constraints on Control Input: u_max: [real-valued Nu-dimensional vector is required] - symmetric constraints on the control inputs.
  • Symmetric Constraints on System States: x_max: [real-valued Nx-dimensional vector is required] - symmetric constraints on the system states.
  • Parameters: [format depends on chosen Robust MPC Approach] - additional robust MPC tuning parameters.


  • Verbose Mode: Normal/Silent/Loud - mode of information messages shown in MATLAB COMMAND-WINDOW.
  • SDP Solver: MOSEK/SeDuMi/SDPA/SDPLR/SDPT3/VSDP - enables to choose the solver to be used for solving the semidefinite optimization problem.
  • YALMIP Verbose Mode: Silent/Loud - mode of information messages generated by YALMIP toolbox and solver shown in MATLAB COMMAND-WINDOW.


According to the considered state feedback control law (see the section RMPC BLOCK) there just the single input of the RMPC_BLOCK:

  • system states: x(t): [real-valued Nx-dimensional vector is required] - measured or estimated current values of the system states.


There is the list of RMPC_BLOCK outputs:

  • control inputs: u(t): returns computed control inputs.
  • cost: J(0 -> t): returns evaluated current cost function value.
  • feasibility: -1/0/1 - feasibility check returns value -1 when not evaluated, 0 when the SDP was found infeasible, and 1 when SDP was feasible.
  • controller: returns vector of the parameters of state feedback controller gain matrix.
  • counter: returns value current control step.


You can run the two demo projects to see the properties of the MUP toolbox. To demonstrate inline robust MPC design type in MATLAB COMMAND-WINDOW:

You can type:
to run demo of robust MPC using the MATLAB-Simulink model or type.