Relationship of Multiple MPC Controllers to MPC Controller Block

The key difference between the Multiple MPC Controllers and the MPC Controller block is the way in which you designate the controllers to be used.

Listing the controllers

You must provide an ordered list containing N names, where N is the number of controllers and each name designates a valid MPC object in your base workspace. Each named controller must use the identical set of plant signals (for example, the same measured outputs and manipulated variables). See the Multiple MPC Controllers reference for more information on creating lists.

Designing the controllers

Use your knowledge of the process to identify distinct operating regions and design a controller for each. One convenient approach is to use the Simulink Control Design product to calculate each nominal operating point (typically a steady-state condition). Then, obtain a linear prediction model at this condition. To learn more, see the Simulink Control Design documentation. You must have Simulink® Control Design™ product license to use this approach.

After the prediction models have been defined for each operating region, design each corresponding MPC Controller and give it a unique name in your base workspace.

Defining controller switching

Next, define the switching mechanism that will select among the controllers in real time. Add this mechanism to your Simulink model. For example, you could use one or more selected plant measurements to determine when each controller becomes active.

Your mechanism must define a scalar switching signal in the range 1 to N, where N is the number of controllers in your list. Connect this signal to the block's switch inport. Set it to 1 when you want the first controller in your list to become active, to 2 when the second is to become active, and so on.

    Note:   The Multiple MPC Controllers block automatically rounds the switching signal to the nearest integer. If the signal is outside the range 1 to N, none of the controllers activates and the block output is zero.

Improving prediction accuracy

During operation, all inactive controllers receive the current manipulated variable and measured output signals so they can update their state estimates. These updates minimizes bumps during controller transitions. See Transfer Bumplessly Between Manual and Automatic Operations for more information. It is good practice to enable the Externally supplied MV signal option and feedback the actual manipulated variables measured in the plant to the ext.mv inport. This signal is provided to all the controllers in the block's list.

Was this topic helpful?