Certified Tube Wrapper for Learned Predictive Control
Implementation & benchmark of arXiv:2608.08921 — Horizon-Dependent Tube MPC for Spacecraft Rendezvous on Elliptical Orbits with Conditional Robust Constraint Satisfaction
Source paper: Horizon-Dependent Tube MPC for Spacecraft Rendezvous on Elliptical Orbits with Conditional Robust Constraint Satisfaction arXiv:2608.08921 ⓘ · analyzed Sep 1, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Combine a learned dynamics model or neural policy with a short-horizon robust MPC wrapper. Instead of tightening every future constraint by one stationary worst-case radius, propagate uncertainty using the actual neural closed-loop Jacobians and explicitly fall back when the tightened optimization problem is infeasible, making envelope violations observable rather than silently unsafe.
Formulas
Mathematical statement
Let the learned plant model be $x_{k+1}=F_\theta(x_k,u_k)+d_k$ and let the nominal controller be $u_k=\pi_\phi(\hat x_k)$, possibly with an MPC correction. Around the nominal trajectory, the closed-loop error satisfies $e_{j+1}\approx A_{\mathrm{cl},k+j}e_j+w_j$, where $A_{\mathrm{cl},k+j}=\partial F_\theta/\partial x+\partial F_\theta/\partial u\,\partial\pi_\phi/\partial x$ evaluated at the nominal state and action. Use the horizon-specific recursion $\bar e_{j+1}=|A_{\mathrm{cl},k+j}|\bar e_j+\bar w_j$. For uncertain parameters $p=p_0+\Delta p$ with $|\Delta p|\le\bar p$, bound the multiplicative term $B(\Delta p)u$ by an additive vector $\bar w^{\mathrm{mult}}\ge |B|\bar p|u|$, then use $\bar w=\bar w^{\mathrm{mult}}+\bar w^{\mathrm{add}}$. If $|A_{\mathrm{cl},k+j}|\le M$ and $\rho(M)<1$, the robust tube has finite gain $\|(I-M)^{-1}\bar w\|$.
Implementation notes
1. Integration point: use a learned dynamics model inside model-predictive control for a simple benchmark such as cart-pole, pendulum, or a 2D navigation task. The neural policy proposes nominal actions, while a differentiable or ordinary QP solves a local correction subject to tube-tightened state and action limits. At every MPC call, roll out the nominal model, calculate the closed-loop Jacobian of the model-plus-policy composition, and propagate one element-wise radius vector per horizon step. 2. Pseudocode: obtain current state x; roll out xhat[j+1]=F_theta(xhat[j],u_nom[j]); compute Acl_abs=abs(JxF + JuF@JxPolicy); compute parameter-error margin wmult=abs(B)@pbar@abs(u_nom[j]) and add a measured residual bound wadd; update ebar=Acl_abs@ebar+wmult+wadd; shrink each state and action box by ebar and the corresponding action tube; solve the QP; if infeasible, execute a bounded fallback controller and log an envelope breach. 3. Compute Jacobians with autodiff, estimate residual bounds from validation rollouts using a high quantile plus a safety factor, and estimate $M$ as a componentwise maximum over a calibration set. The source mechanism is the multiplicative-to-additive conversion, horizon-dependent tightening, spectral certificate, and explicit infeasibility fallback. 4. First cheap experiment: compare nominal MPC, constant-width tube MPC, and horizon-dependent learned tube MPC on noisy cart-pole with randomized mass and actuator gain. Sweep the uncertainty scale $\beta$ and recurrent or policy gain. The prediction is that violation probability remains near the calibration confidence level while $\rho(M)<1$, tightening converges to $(I-M)^{-1}\bar w$, and infeasibility or fallback frequency rises sharply as either $\rho(M)\to1$ or the disturbance scale exceeds the calibrated envelope. Report whether the observed transition occurs within 20% of the predicted $\rho(M)=1$ boundary.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
Stage 2 · Practical benchmark result: Significantly worse ✗
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 8/10
Built a deterministic certified-tube MVP with closed-loop Jacobian propagation, additive plus multiplicative uncertainty conversion, spectral-radius checks, sampled interval validation, and nominal/constant/horizon-dependent control modes with observable fallback logging. The key predictions manifested: the finite-horizon instability boundary was observed at 1.01 versus predicted gamma*Lambda=1.00, scalar steady-state radii matched w/(1-r) within 2e-14 relative error, and multiplicative margin slope matched |B u| exactly. The control mini-experiment showed zero violations for every method and uncertainty level, so it does not establish a practical safety or performance win over the baselines.
- Agent confidence
- 8/10
- Baseline
- Nominal: violation rate 0.0 at beta=0.10, 0.25, 0.40; mean absolute state 0.01809, 0.01804, 0.01801 respectively.
- Idea
- Horizon-dependent tube: violation rate 0.0 at all tested beta values; mean absolute state 0.01773, 0.01762, 0.01753; fallback rate 0.0. Math checks: boundary 1.01 observed vs 1.00 predicted, steady-gain max relative error 1.9e-14, multiplicative slope 0.28 observed and predicted, sampled 2D bound ratio 0.862.
Limitations: The plant/controller benchmark is a lightweight scalar surrogate rather than cart-pole or a learned neural dynamics model; no autodiff, QP solver, model training, calibration quantile estimation, action-tube propagation, or stressed infeasibility regime was tested. The controller comparison is therefore only a functional MVP and not evidence of a robust MPC performance win.
How to run: python3 tube_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2608.08921)
Significantly WORSE than the tuned baseline (n/a, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0.0003
- Effect (Δ)
- 0 (n/a; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
This MVP uses a differentiable Jacobian/tube sensitivity penalty rather than a full online MPC/QP wrapper with explicit state/action tightening, residual calibration, and fallback execution. It used 800 training samples, 200 test samples, and 12 epochs; no physical hardware or larger cart-pole evaluation was performed.
How to run: python3 stage2_tube_bench.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 10/10
Implemented the certified-tube idea as a Jacobian-aware training intervention on the structurally matched dynamics track, using the shared rnn_small architecture and paired eight-seed protocol. The idea was significantly worse than the tuned baseline: MSE increased from 0.0002974 to 0.0003114, paired delta was +1.398e-05, and permutation p=0.0081. The measured NN sensitivity signature was finite but did not confirm the quantitative prediction, so there is no observed training win.
- Baseline
- mean MSE 0.0002974229, best lr 0.01, 8 seeds
- Idea
- mean MSE 0.0003114019, lr 0.01 and lambda 0.02, 8 seeds; delta +0.0000139789, p=0.0081, 0/8 paired wins
Benchmark result
Significantly WORSE than the tuned baseline (n/a, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0.0003
- Effect (Δ)
- 0 (n/a; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- n/a
- Mechanism
- Not confirmed ✗
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
This MVP uses a differentiable Jacobian/tube sensitivity penalty rather than a full online MPC/QP wrapper with explicit state/action tightening, residual calibration, and fallback execution. It used 800 training samples, 200 test samples, and 12 epochs; no physical hardware or larger cart-pole evaluation was performed.
How to run: python3 stage2_tube_bench.py
Artifacts
- bench_report.json 4.2 KB View Raw
- report.md 1.8 KB View
- report_bench_2026-09-01T111808.md 3.0 KB View
- results.json 2.6 KB View Raw
- stage2_tube_bench.py 6.1 KB View Raw
- tube_experiment.py 6.8 KB View Raw