  This paper presents a framework that enables a systematic and rational choice
of NMPC design components such as control updating period, down-sampling period
for prediction, control parameterization, prediction horizon's length, the
maximum number of iterations as well as penalties on the terminal cost and the
soft constraints. The rationale that underlines the design choices is based on
real-time implementability, convergence and constraints satisfaction for a
given computational device and a specific optimization algorithm. Moreover, a
freely available associated Python-based implementation is also described with
a fully developed illustrative example implementing a nonlinear MPC controller
for a Planar Vertical Take-Off and Landing (PVTOL) aircraft under control
saturation and state constraints.
