Data-driven Nonlinear MPC

Using trajectory traces of nonlinear systems for designing robust MPC with guarantees

In this project, we develop data-driven MPC for constrained optimal control of nonlinear systems with a specific emphasis on safety, performance and computational efficiency.

Towards safety, we propose a non-parametric technique to construct prediction models for nonlinear systems with Lipschitz/Lur’e unmodelled dynamics. We use set membership to approximate the graph (in the set-theoretic sense) of the unknown function via semidefinite programming using incremental quadratic constraints.

Set membership for approximating the graph of the unmodelled dynamics

This technique has been used for (I) computation of tractable bounds for unmodelled dynamics, (II) computation of positive invariant sets and (III) adaptive constraint tightening for adaptive MPC

Towards performance, we propose a convex value function representation for flat nonlinear systems defined over convex safe sets in the space of output sequences. The value function and the safe set can be constructed from historical system trajectory data. We show that the output sequences in this safe set map to state and inputs within constraints. Moreover, we provide iterative performance improvement guarantees for the closed-loop system trajectories by using the value function approximation in our MPC design: Output-lifted Learning Model Predictive Control (OLMPC).

The output sequences (termed "lifted-outputs") map to safe state and inputs of the nonlinear system. The historical lifted-output data are used to contruct convex value functions and safe sets for the MPC design.

The two ideas presented above culminated in Robust Output-lifted LMPC (ROLMPC), which was recently implemented on the Berkeley Autonomous Racing Car (BARC) in collaboration with Edward Zhu:

ROLMPC demonstrated on the BARC. First, the gap between the nominal and true models are quantified to compute tightened constraints. Then, the BARC iteratively constructs the safe set and value function to improve lap times.