Despite being very simple to design and implement, MPC algorithms can con-
trol large scale systems with many control variables, and, most importantly,
MPC provides a systematic method of dealing with constraints on inputs and
states. Such constraints are present in all control engineering applications
and represent limitations on actuators and plant states arising from physical,
economic, or safety constraints. In MPC these constraints are accounted for
explicitly by solving a constrained optimization problem in real-time to deter-
mine the optimal predicted inputs. Nonlinear plant dynamics can be similarly
incorporated in the prediction model.