Finite Control Set MPC
MPC problems with finite (discrete) control sets are problems in which some or all
manipulated variables belong to discrete sets. To handle these cases, for a given manipulated
variable, specify the Type
field of the corresponding
ManipulatedVariables
structure in the mpc
object:
'binary'
— Restrict the manipulated variable to be either 0 or 1.'integer'
— Restrict the manipulated variable to be an integer.Vector containing the set of possible values — Restrict the manipulated variable to the specified values, for example
mpcobj.MV(2).Type=[-1,0,0.5,1,2];
.
By default, the type is set to 'continuous'
, indicating that
the manipulated variable is continuous.
You can simulate the finite control set linear MPC controller in:
MATLAB® — using
sim
,mpcmove
,mpcmoveAdaptive
andmpcmoveMultiple
.Simulink® — using the MPC Controller, Adaptive MPC Controller, and Multiple MPC Controllers blocks.
When simulating multiple controllers using mpcmoveMultiple
or the
Multiple MPC Controllers block, all candidate controllers must use the same
manipulated variable type configuration.
Code generation from a controller with finite control sets is supported in both MATLAB and Simulink.
A new built-in mixed-integer quadratic programming (MIQP) solver is used to solve the
finite control set MPC problem. You can use the new property
Optimizer.MixedIntegerOptions
of the mpc
object to
customize the options for this solver (like for example number of iterations and constraints
tolerance).
See Also
Functions
sim
|review
|cloffset
|mpcmove
|mpcmoveAdaptive
|mpcmoveMultiple
Objects
Blocks
Related Examples
- Solve a Finite Set MPC Problem in MATLAB
- Solve a Finite Set MPC Problem in Simulink
- Surge Tank Control Using Discrete Control Set MPC