Main Content

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:

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




Related Examples

More About