Koopman-MPC Trust Region for Neural Rollouts
Implementation & benchmark of arXiv:2609.02534 — Physics-based Online Adaptive Koopman Model Predictive Attitude Control for Combined Spacecraft with Dynamic Uncertainties
Source paper: Physics-based Online Adaptive Koopman Model Predictive Attitude Control for Combined Spacecraft with Dynamic Uncertainties arXiv:2609.02534 ⓘ · analyzed Sep 3, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Use the adapted linear latent model as a cheap receding-horizon planner or training-time controller around a nonlinear neural predictor. Optimize a short sequence of latent corrections with a quadratic objective, while constraining latent states and inputs to remain inside the region where the Koopman approximation has been identified and its transition spectrum is stable.
Formulas
Mathematical statement
Let z_{k+1}=A z_k+B v_k be the adapted lifted dynamics, where z_k is a latent state and v_k is a control, residual, or steering input produced by the neural model. Over horizon N, stack states and controls as Z=mathcal{A}z_0+mathcal{B}V. Minimize a quadratic tracking objective with control cost and terminal slack. Here Q and Q_f are positive semidefinite state weights, R is positive definite, e is a terminal or model-mismatch slack, and mathcal{A} and mathcal{B} are the standard powers-of-A prediction matrices. In a neural rollout, v_k can be a bounded residual correction or gating signal. The trust region ||z_k-z_data,k||<=delta and spectral condition rho(A)<=r<1 limit extrapolation and unstable surrogate behavior.
Implementation notes
Integrate this module after the encoder and before the decoder of a neural world model, or attach it to the action head of an offline RL agent. At each timestep, encode the current observation into z_0, identify or refresh A and B from a recent replay-buffer window, and construct the stacked prediction matrices mathcal{A} and mathcal{B}. Solve the quadratic program for V=[v_0,...,v_{N-1}] with Q,Q_f positive semidefinite, R positive definite, bounded residuals, and a trust-region constraint around recently observed latent states. Apply only v_0, observe the next state, and repeat. For a pure predictor, make the residual correction additive: z_{t+1}=Az_t+Bv_t+f_theta(z_t), but constrain ||f_theta(z_t)||<=epsilon using spectral normalization or clipping. The paper supplies the lifted linear rollout and condensed QP construction; estimate A, B, the trust radius delta, residual bound epsilon, and spectral radius from data. The first cheap experiment is a nonlinear pendulum or Lorenz forecasting task with a 20-step horizon. Compare unconstrained neural rollout, constrained rollout, and QP-guided rollout at equal parameter count. Sweep the spectral cap r and trust radius delta. The quantitative prediction is a sharp degradation when r crosses one, while enforcing r<=0.95 should substantially reduce 100-step latent norm growth. Shrinking delta should lower extrapolation error until approximation bias dominates, producing a measurable U-shaped error curve.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Inconclusive
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 7/10
Built a compact Koopman-MPC trust-region toy implementation for a nonlinear damped pendulum, including condensed prediction matrices, spectral-radius capping, bounded corrections, and trust-region projection. The condensed rollout identity was verified to numerical precision (max error 9.9e-10), and capping the fitted model at rho=0.95 reduced 100-step state growth from 1.45x to 0.0083x. In the fixed-seed forecasting test, the MPC version reduced mean 60-step error from 1.983 to 1.457 and predicted-state norm from 2.928 to 0.585, so this toy experiment shows a promising but potentially over-conservative effect.
- Agent confidence
- 7/10
- Baseline
- Mean 60-step rollout error 1.9831; mean predicted norm 2.9284; unconstrained fitted-model 100-step growth 1.4544x.
- Idea
- Mean 60-step rollout error 1.4572; mean predicted norm 0.5849; capped-model 100-step growth 0.00830x; condensed-matrix max error 9.93e-10. Trust-radius sweep errors for delta=[0.15,0.3,0.55,1.0,2.0] were [0.7994,0.8028,0.8028,0.8028,0.8028].
Limitations: Only a small damped-pendulum toy system was tested, with a linear least-squares model in the observed two-dimensional state rather than a learned lifted latent representation. The controller uses a bounded first-step correction and radial trust-region projection, not a general-purpose inequality-constrained QP solver; no wall-clock speedup, action-conditioned B model, slack variable, spectral-cap sweep, or multi-seed statistical test was evaluated.
How to run: python3 koopman_mpc_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2609.02534)
No significant difference vs. the tuned baseline (+36.8%, p=0.06, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- 0 (+36.8%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.06 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±39.3%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
Only the built-in actuated-pendulum dynamics track was tested; no custom track, longer horizons, alternative QP solver, explicit online receding-horizon control, wall-clock speed, or larger model was evaluated. The implementation uses a training-time Koopman consistency penalty and a clipped trust-region target rather than a full constrained MPC QP.
How to run: python3 stage2_bench.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 9/10
Implemented and ran the required 8-seed Stage-2 benchmark on the structurally matched dynamics track with identical rnn_small systems. The Koopman trust-region consistency penalty confirmed the stabilization mechanism but worsened test MSE, so there is no demonstrated task-level win.
- Baseline
- Tuned rnn_small, Adam lr=0.01, 16 epochs: mean test MSE 2.410371e-05, std 9.965205e-06.
- Idea
- Koopman spectral-cap/trust-region penalty, lr=0.01 and strength=0.1: mean test MSE 3.297570e-05, std 8.535059e-06; paired delta +8.871987e-06, permutation p=0.06005, 2/8 wins. Mechanism: raw fitted rho=0.993781, capped rho=0.95; NN deviation from the fitted stable forecast decreased from 0.035890 baseline to 0.031534 idea, confirmed=true.
Benchmark result
No significant difference vs. the tuned baseline (+36.8%, p=0.06, wins 2 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0
- Effect (Δ)
- 0 (+36.8%; negative = idea better)
- Wins
- 2 / 8 paired seeds
- p-value
- 0.06 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±39.3%
- Mechanism
- Confirmed ✓
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 3 configs
Only the built-in actuated-pendulum dynamics track was tested; no custom track, longer horizons, alternative QP solver, explicit online receding-horizon control, wall-clock speed, or larger model was evaluated. The implementation uses a training-time Koopman consistency penalty and a clipped trust-region target rather than a full constrained MPC QP.
How to run: python3 stage2_bench.py
Artifacts
- bench_report.json 2.8 KB View Raw
- koopman_mpc_experiment.py 5.7 KB View Raw
- report.md 1.7 KB View
- report_bench_2026-09-03T132246.md 4.6 KB View
- results.json 0.8 KB View Raw
- stage2_bench.py 6.3 KB View Raw