Main Content

mpcprops

Provide help on MPC controller properties

Syntax

Description

example

mpcprops displays details on the generic properties of MPC controllers. It provides a complete list of all the fields of MPC objects with a brief description of each field and the corresponding default values.

Examples

collapse all

Display all fields of MPC objects, with related explanation.

 MPC controller properties (with Ny output variables
     Nu manipulated variables, a prediction horizon of p intervals,
     and control horizon of m intervals):

 Model - 
 A structure consisting of plant,
 disturbance and noise models and their nominal values.
     Model.Plant -
     Plant model
         (LTI or linear model from System Identification Toolbox).
         Default: none, must be specified.

     Model.Disturbance -
         Model describing unmeasured input disturbances. Must be
         an LTI or linear model from System Identification Toolbox.
         Default: integrator (models step disturbance).
         See also: "getindist" and "setindist" commands.
     Model.Noise -
         Model describing added output measurement noise. Must be
         an LTI or linear model from System Identification Toolbox.
         Default: unity gain (models white noise).
     Model.Nominal -
         Structure containing nominal state, input,
         and output variable values:
         Model.Nominal.X -
             State of Model.Plant at the operating point.
         Model.Nominal.U -
             Input of Model.Plant at the operating point.
         Model.Nominal.Y -
             Output of Model.Plant at the operating point.
         Model.Nominal.DX -
             State derivative (for continuous time models) or update
             (for discrete time models) at the operating point.
         Default: all nominal values set to zero.
     
    Define input signal types in Model.Plant.InputGroup:
        ManipulatedVariables (or MV or Manipulated or Input) -
            Indices of manipulated variables.
        UnmeasuredDisturbances (or UD or Unmeasured) -
            Indices of unmeasured disturbances.
        MeasuredDisturbances (or MD or Measured) -
            Indices of measured disturbances.
    By default, all the plant inputs are manipulated variables.
    See also:  the "setmpcsignals" command.
    
    Define output signal types in Model.Plant.OutputGroup:
        MeasuredOutputs (or MO or Measured) -
            Indices of measured outputs.
        UnmeasuredOutputs (or UO or Unmeasured) -
            Indices of unmeasured outputs.
    By default, all the plant outputs are measured outputs.
    See also:  the "setmpcsignals" command.
    
 Ts - 
    Sample time of the MPC controller
    (in the same time units as Model.Plant).
    Default: if Model.Plant.Ts > 0, MPC.Ts = Model.Plant.Ts;
             otherwise, MPC.Ts must be specified.

 PredictionHorizon - 
     Intervals in the prediction horizon (scalar)
     Default: 10 + max intervals of delay in Model.Plant

 ControlHorizon - 
     Intervals in the control horizon.
     Either a scalar or a vector of blocked moves.
     Default: 2

 Weights - 
     A structure defining dimensionless
     MPC weights with the following fields:
     Weights.ManipulatedVariables
         (or MV or Manipulated or Input) -
         Must be a (min 1, max p) x Nu matrix of weights
         on the manipulated variables.
         Default: zeros(1,Nu)
     Weights.ManipulatedVariablesRate
         (or MVRate or ManipulatedRate or InputRate) -
         Must be a (min 1, max p) x Nu matrix of weights on the rates
         of the manipulated variables. MV Rates are defined as the
         differences between current and ptrevious MV values.
         Default: 0.1*ones(1,Nu)
     Weights.OutputVariables (or OV or Output) -
         Must be a (min 1, max p) x Ny matrix of weights
         on the plant outputs.
         Default: if Ny<=Nu, ones(1,Ny); otherwise,
                  only Nu outputs are weighted,
                  with preference on measured outputs.
     Weights.ECR - Scalar weight on the slack variable
         Equal Concern for Relaxation, used for constraint softening.
         Default: 1e5*max(Weights)

     Alternative weighting:
     This syntax allows for off-diagonal weights, but requires the
     weights to be identical at each prediction horizon step.
     Using this syntax, Weights.MV={R}, where R is a Nu x Nu
     symmetric and positive semi-definite matrix,
     which must be constant over the prediction horizon.
     The syntax for Weights.MVRate and Weights.OV is similar.

 ManipulatedVariables (or MV or Manipulated or Input) - 
     Array of structures with fields:
     MV(i).Min -
         1 to p dimensional vector of lower bounds on MV #i
         Ddefault: -Inf
          .Max -
         1 to P dimensional vector of upper bounds on MV #i
         Default:  Inf
          .MinECR -
         1 to p dimensional vector of weights for softening the
         lower bounds on MV #i
         Default: 0, (hard constraint).
          .MaxECR -
         1 to p dimensional vector of weights for softening the
         upper bounds on MV #i
         Default: 0, (hard constraint).
          .RateMin -
         1 to p dimensional vector of lower bounds on the rate of MV #i
         Default: -Inf
          .RateMax -
         1 to p dimensional vector of upper bounds on the rate of MV #i
         Default: Inf
          .MinECR -
         1 to p dimensional vector of weights for softening the
         lower bounds on the MV #i rate
         Default: 0, (hard constraint).
          .MaxECR -
         1 to p dimensional vector of weights for softening the
         upper bounds on the MV #i rate
         Default: 0, (hard constraint).
          .Target -
         1 to p dimensional vector of target values for MV #i
         Default: Model.Nominal.U
          .Name -
         Name of MV #i
         Default: from Model.Plant.InputName
          .Units -
         String specifying the engineering units for MV #i
          .ScaleFactor -
         A scalar in engineering units.
         Each MV will be divided by its scale factor to form the
         dimensionless signal used in the MPC computations.
         Default: 1
           .Type -
         Type of variable MV #i (default: 'continuous').
         Type can be 'continuous', 'binary', 'integer',
         or an array containing all the values MV #i can take.

 OutputVariables (or OV or Controlled or Output) - 
         Array of structures with fields:
     OV(i).Min -
         1 to p dimensional vector of lower bounds on OV #i.
         Default: -Inf
          .Max -
         1 to p dimensional vector of upper bounds on OV #i.
         Default:  Inf
          .MinECR -
         1 to p dimensional vector of weights for softening the
         lower bounds on OV #i.
         Default: 1, (soft constraint).
          .MaxECR -
         1 to p dimensional vector of weights for softening the
         upper bounds on OV #i.
         Default: 1, (soft constraint).
          .Name -
         Name of OV #i (default: Model.Plant.OutputName{i})
          .Units -
         String specifying the engineering units for OV #i
          .ScaleFactor -
         A scalar in engineering units.
         Each OV will be divided by its scale factor to form the
         dimensionless signal used in the MPC computations.
         Default: 1

 DisturbanceVariables (or DV or Disturbance) - 
     Array of structures with fields:
     DV(i).Name -
         Name of DV #i (default: from Model.Plant.InputName).
          .Units -
         String specifying the engineering units for DV #i
          .ScaleFactor -
         A scalar in engineering units.
         Each DV will be divided by its scale factor to form the
         dimensionless signal used in all the MPC computations.
         Default: 1
     Note: DV consists in all the measured disturbance inputs
           followed by all the unmeasured disturbance inputs.

 Optimizer - 
     QP optimizer parameter structure with fields:
     Optimizer.Algorithm -
         Algorithm used by the solver.
         Default: 'active-set'
     Optimizer.ActiveSetOptions -
         Active-set solver options.
     Optimizer.InteriorPointOptions -
         Interior-point solver options.
     Optimizer.MixedIntegerOptions -
         Mixed-integer solver options.
     Optimizer.MinOutputECR -
         Minimum value of output MinECR and MaxECR.
         Default: 0
     Optimizer.UseSuboptimalSolution -
         If True the controller applies the sub-optimal solution
         when the maximum number of iterations is exceeded.
         Default: false.
     Optimizer.CustomSolver -
         If true the custom QP solver is used for simulation.
         Default: false.
     Optimizer.CustomSolverCodeGen -
         If true the custom QP solver is used for code generation.
         Default: false.

 Notes - User's notes.
     It can be a string or a cell array of strings.                 
                 
 UserData - Additional information or data.
     It can be any MATLAB data type.
                 
 History - Date and time of the MPC object creation.

 See the "mpc" command for construction syntax.

Version History

Introduced before R2006a

See Also

Functions

Blocks