  Model predictive control (MPC) for linear dynamical systems requires solving
an optimal control structured quadratic program (QP) at each sampling instant.
This paper proposes a primal active-set strategy (PRESAS) for the efficient
solution of such block-sparse QPs, based on a preconditioned iterative solver
to compute the search direction in each iteration. Rank-one factorization
updates of the preconditioner result in a per-iteration computational
complexity of $\mathcal{O}(N m^2)$, where $m$ denotes the number of state and
control variables and $N$ the number of control intervals. Three different
block-structured preconditioning techniques are presented and their numerical
properties are studied further. In addition, an augmented Lagrangian based
implementation is proposed to avoid a costly initialization procedure to find a
primal feasible starting point. Based on a standalone C code implementation, we
illustrate the computational performance of PRESAS against current state of the
art QP solvers for multiple linear and nonlinear MPC case studies. We also show
that the solver is real-time feasible on a dSPACE MicroAutoBox-II rapid
prototyping unit for vehicle control applications, and numerical reliability is
illustrated based on experimental results from a testbench of small-scale
autonomous vehicles.
