In this book, we focus on the more typical role of adaptation as a means of coping with uncertainties in the system model. A standard implementation of MPC using a nominal model of the system dynamics can, with slight modification, exhibit nominal robustness to disturbances and modeling error. However in practical situations, the system model is only approximately known, so a guarantee of robustness which covers only “sufficiently small” errors may be unacceptable. In order to achieve a more solid robustness guarantee, it becomes necessary to account (either explicitly, or implicitly) for all possible trajectories which could be realized by the uncertain system, in order to guarantee feasible stability. The obvious numerical complexity of this task has resulted in an array of different control approaches, which lie at various locations on the spectrum between simple, conservative approximations versus complex, high-performance calculations. Ultimately, selecting an appropriate approach involves assessing, for the particular system in question, what is an acceptable balance between computational requirements and closed-loop performance.