Accelerating Full-Scale Nonlinear Model Predictive Control via Surrogate Dynamics Optimization
Perceval Beja-Battais (CB), Guillaume Dupr\'e, Alain Grosset\^ete, Nicolas Vayatis (CB)

TL;DR
This paper presents Surrogate Dynamics Optimization (SDO), a machine learning-based framework that accelerates nonlinear model predictive control by using surrogate models to reduce computational costs, demonstrated on a water reactor case study.
Contribution
Introduces SDO, a surrogate model-based warm-start framework for NMPC that improves convergence speed and reduces training data requirements in industrial applications.
Findings
SDO improves NMPC convergence speed within fixed computational budgets.
Reduces training data generation costs by two orders of magnitude.
Demonstrated effectiveness on a 24-hour water reactor load-following control case.
Abstract
Driven by advances in hardware and software technologies, nonlinear model predictive control (NMPC) has gained increasing adoption in both industry and academia over the past decades. However, its practical deployment is often limited by the computational cost of simulating the embedded process model, especially for high-dimensional, multi-time-scale, or nonlinear systems commonly found in real-world applications. Thus, this paper introduces Surrogate Dynamics Optimization (SDO), a warm-start framework for full-scale NMPC to address the limitation of standard initialization strategies. The approach relies on a machine learning surrogate model to solve a lightweight auxiliary problem that approximates the original one. The methodology is reproducible and compatible with inhouse simulation and optimization tools, a key consideration in industrial contexts. Data efficiency of SDO, as well…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
