Wiki

Clone wiki

mup / rmpc_block

RMPC_BLOCK

r20150616 [Home] [changelog]

wiki20161207.1

This page briefly describes the MATLAB/Siumulink block RMPC_BLOCK for RMPC design in efficient and user-friendly way.

RMPC_BLOCK Initialization:

The MATLAB/Simulink block RMPC_BLOCK can be obtained 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

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),
  • NSO and ACIS,
  • NSO and WACIS,
  • NSO and SDLF,
  • PDLF and ACIS,
  • PDLF and WACIS.

where the last five methods represent our alternative robust MPC design approaches that 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/},

}

  • Feasibility Check: check (enable) / uncheck (disable)- 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. The last vertex stands for nominal system matrix, when considered.
  • 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. The last vertex stands for nominal system matrix, when considered.
  • System Output Matrix: C: [real-valued Ny-dimensional square matrix of MATLAB-class "cell-array" is required] - the linear state-space model output matrix C of MATLAB-class "cell-array", where each cell represent the uncertain system vertex. The last vertex stands for nominal system matrix, when considered.
  • 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. Empty vector stands for unconstrained control inputs.
  • Symmetric Constraints on System Outputs: y_max: [real-valued Ny-dimensional vector is required] - symmetric constraints on the system outputs. Empty vector stands for unconstrained control outputs.
  • Parameters: [format depends on chosen Robust MPC Approach] - additional robust MPC tuning parameters.

Setup:

  • SDP Solver: enables to choose the solver to be used for solving the semidefinite optimization problem. List of supported solvers (based on YALMIP-supported SDP solvers ):
    • CSDP
    • DSDP
    • LMILAB
    • LOGDETPPA
    • MOSEK
    • PENBMI
    • PENLAB
    • PENSDP
    • SDPA
    • SDPLR
    • SDPT3
    • SDPNAL
    • SEDUMI
  • Verbose Mode: Normal/Silent/Loud - mode of information messages shown in MATLAB COMMAND-WINDOW.
  • YALMIP Verbose Mode: Silent/Loud - mode of information messages generated by YALMIP toolbox and solver shown in MATLAB COMMAND-WINDOW.

RMPC_BLOCK Inputs:

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.

RMPC_BLOCK Outputs:

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.
  • gamma: returns current value of optimizer GAMMA.
  • solver_time: if feasibility check is enabled, then returns current value of solver-time, otherwise returns -1.
  • counter: returns value current control step.

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

RMPC_BLOCK Demo:

You can run the demo projects of RMPC design using the MATLAB/Simulink block RMPC_BLOCK to investigate the properties of the MUP toolbox.

You can type:

mup_rmpcblock_demo
to run demo of robust MPC design using the MATLAB/Simulink block RMPC_BLOCK.

Updated