Nonlinear model predictive control (NMPC) is an optimization-based control strategy that relies on the solution of a series of (potentially) non-convex programs. Due to its potentially prohibitive computational burden, the application of NMPC to systems with fast dynamics and/or in the presence of limited computational resources can be a rather challenging task.
In this talk we will introduce novel inexact numerical methods that allow one to reduce the computational footprint of NMPC by leveraging inexact computations and formulations. Since in the general case the resulting feedback policy is necessarily suboptimal, we address fundamental numerical and system theoretic properties of the proposed approaches like convergence and feasibility of the iterates and stability of the closed-loop dynamics. Two main classes of inexact methods will be discussed. Firstly, the so-called Zero-Order NMPC strategy will be presented which relies on the use of fixed sensitivities in order to speed up the computations, while preserving feasibility of the iterates and (local) stabilizing properties of the feedback policy. Secondly, we will regard abstract real-time strategies that rely on a limited number of iterations of a numerical method with certain convergence properties (Q-linear convergence). These approaches can be seen as a generalization of the well-known Real-Time Iteration (Diehl2002). For this broader class of methods we prove properties such as error boundedness and local asymptotic stability.
Finally, we discuss the implementation of existing and novel methods in the software package acados, which provides a modular framework for high-performance embedded optimization. The toolbox can be considered as the successor of the package ACADO and carries over much of the algorithmic and implementation knowledge developed over the past years at the groups of led by Prof. Moritz Diehl in Leuven and Freiburg. However, in contrast with its predecessor, acados follows a rather different software engineering approach which does not rely on code-generation in order to make the software stack easier to maintain and debug. A short overview of the core and interfaces of acados will be given and numerical results highlighting its computational performance will be presented.