How to Design Model Predictive Controllers