-
Notifications
You must be signed in to change notification settings - Fork 0
Home
R20240813 [changelog] [RMPC_BLOCK] [MUP and CLI] [SOFT-CON]
wiki20240813.1
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 toolbox has been presented at the 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},
}
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.
The software is recently localized into the following languages:
- English
The toolbox has been created in the MATLAB/Simulink programming environment. It can be run in MATLAB 2014a - Simulink v8.3 and newer.
To install the toolbox in a 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 the button [Add with Subfolders...].
- Find out the chosen home folder.
- 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.
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] .
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:
- 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.
- T. Shi, H. Su, J. Chu (2013): An Improved Model Predictive Control for Uncertain Systems With Input Constraints. Journal of Franklin Institute, 350, 2757-2768.
- 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 32nd Chinese Control Conference, Xi'an, China, 4087-4092.
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},
}
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.
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.
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.
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., a benchmark of Kothare et al. (1996) type:
benchmark_kothare % to load the benchmark system
mup_expand_rmpc_block_ws % to expand its variables