Gain-scheduled model predictive control switches between a predefined set of MPC controllers, in a coordinated fashion, to control a nonlinear plant over a wide range of operating conditions. Use this approach if the plant operating characteristics change in a predictable way and the change is such that a single prediction model cannot provide adequate controller performance. This approach is comparable to the use of gain scheduling in conventional feedback control.
While switching the controller is computationally simple, this approach requires more online memory (and in general more design effort) than adaptive MPC. Therefore, it should be reserved for cases in which the linearized plant models have different orders or time delays (and the switching variable changes slowly, with respect to the plant dynamics).
To improve efficiency, inactive controllers do not compute optimal control moves. However, to provide bumpless transfer between controllers, the inactive controllers continue to perform state estimation. Bumpless transfer prevents sudden changes in the manipulated variables when the controller switching occurs.
You can design and simulate MPC controllers both in Simulink® and at the command line. The Multiple MPC Controllers and Multiple Explicit MPC Controllers blocks enable you to switch between a
defined set of MPC Controllers in Simulink. You can perform command-line simulations using the
mpcmoveMultiple command. However,
does not support explicit MPC controllers.
To implement gain-scheduled MPC, first design a traditional model predictive controller for each operating point, and then design a scheduling signal that switches controllers at run time.
General Design Steps
Define and tune a nominal MPC controller for the most likely (or average) operating conditions. For more information, see MPC Design.
Use simulations to determine an operating condition at which the nominal controller loses robustness. For more information, see Simulation.
Identify a measurement (or combination of measurements) that indicates when to replace the nominal controller.
Determine a plant prediction model for the new operating conditions. Its input and output variables must be the same as in the nominal case.
Define a new MPC controller based on the new prediction model. Use the nominal controller settings as a starting point, and test and retune controller settings if necessary.
If two controllers are inadequate to provide robustness over the full operational range, consider dividing the range into smaller regions and adding more controllers. Alternatively, you can use an adaptive MPC controller, which has a smaller memory footprint. For more information, see Adaptive MPC Design.
(optional) Consider creating an explicit MPC controller for each traditional MPC controller. Explicit MPC controllers require fewer run-time computations than traditional (implicit) model predictive controllers and are therefore useful for applications that require small sample times. For more information, see Explicit MPC.
To verify robustness and bumpless switching, test the controllers over the full operating range using closed-loop simulations.
In practice, it is recommended to allow a warm-up period during which the plant safely operates in the neighborhood of the same operating point, while all MPC controllers initialize their state estimate. This initialization typically requires 10–20 control intervals. A warm-up is especially important for the Multiple MPC Controllers and Multiple Explicit MPC Controllers blocks. Without an adequate warm-up period, switching between controllers can cause sudden changes in the manipulated variables. Switching on the controllers when the plant is operating far from any of the gain-scheduled operating points can also cause sudden manipulated variable changes.
If you use custom state estimation, all your gain-scheduled MPC controllers must have the same state dimension. This requirement places implicit restrictions on plant and disturbance models.