You might wonder why the controller bothers to optimize over P future sampling periods and calculate M future moves when it discards all but the first move in each cycle. Indeed, under certain conditions a controller using P = M = 1 would be identical to one using P = M = ∞. More often, however, the horizon values have an important impact. Some examples follow:
Constraints. Given sufficiently long horizons, the controller can "see" a potential constraint and avoid it—or at least minimize its adverse effects. For example, consider the situation depicted below in which one controller objective is to keep plant output y below an upper bound ymax. The current sampling instant is k, and the model predicts the upward trend yk+i. If the controller were looking P1 steps ahead, it wouldn't be concerned by the constraint until more time had elapsed. If the prediction horizon were P2 , it would begin to take corrective action immediately.
Plant delays. Suppose that the plant includes a pure time delay equivalent to D sampling instants. In other words, the controller's current move, uk, has no effect until yk+D+1. In this situation it is essential that P >> D and M << P −D, as this forces the controller to consider the full effect of each move.
For example, suppose D = 5, P = 7, M = 3, the current time instant is k, and the three moves to be calculated are uk, uk+1, and uk+2. Moves uk, uk+1 would have some impact within the prediction horizon, but move uk+2 would have none until yk+8, which is outside. Thus, uk+2 is indeterminant. Setting P = 8 (or M = 2) would allow a unique value to be determined. It would be better to increase P even more.
Other nonminimum phase plants. Consider a SISO plant with an inverse-response, i.e., a plant with a short-term response in one direction, but a longer term response in the opposite direction. The optimization should focus primarily on the longer-term behavior. Otherwise, the controller would move in the wrong direction.
Most designers choose P and M such that controller performance is insensitive to small adjustments in these horizons. Here are typical rules of thumb for a lag-dominant, stable process:
If performance is poor, you should examine other aspects of the optimization problem and/or check for inaccurate controller predictions.