Python

Recursively Feasible SMPC

Reference implementation of recursively feasible stochastic MPC for time-varying linear systems under unbounded disturbances.

Recursively Feasible SMPC

Recursively Feasible SMPC

A stochastic MPC scheme is recursively feasible if solving it once guarantees a solution exists at every subsequent step. That is hard to secure when the disturbance is unbounded, as a Gaussian one is, because no finite tube contains the state. This code implements the machinery that recovers the guarantee for covariance-steering stochastic MPC of affine time-varying systems: a robust terminal covariance semidefinite program, the robust terminal mean set, and the convex program with an affine state-feedback parameterisation, solved with MOSEK.

It also reproduces the paper’s numerical example, a curvilinear kinematic bicycle run over twenty closed-loop Monte Carlo trials. Python, MIT license; requires MOSEK, free for academic use.

Reference

J. W. Knaup and P. Tsiotras, “Recursively Feasible Stochastic Model Predictive Control for Time-Varying Linear Systems Subject to Unbounded Disturbances,” Automatica, Vol. 190, 112957, 2026.

Visit the GitHub repository for the source code.