PHAST: Port-Hamiltonian Architecture for Structured Temporal Dynamics Forecasting
Organizations: Department of Computer Science, Oden Institute for Computational Engineering and Sciences, The University of Texas at Austin, Austin, TX, USA
Abstract
Real physical systems are dissipative -- a pendulum slows, a circuit loses charge to heat -- and forecasting their dynamics from partial observations is a central challenge in scientific machine learning. We address the position-only (q-only) problem: given only generalized positions~ at discrete times (momenta~ latent), learn a structured model that (a)produces stable long-horizon forecasts and (b), and damping~ across three knowledge regimes (KNOWN, PARTIAL, UNKNOWN), uses efficient low-rank PSD/SPD parameterizations, and advances dynamics with Strang splitting. Across thirteen q-only benchmarks spanning mechanical, electrical, molecular, thermal, gravitational, and ecological systems, PHAST achieves the best long-horizon forecasting among competitive baselines and enables physically meaningful parameter recovery when the regime provides sufficient anchors. We show that identification is fundamentally ill-posed without such anchors (gauge freedom), motivating a two-axis evaluation that separates forecasting stability from identifiability.recovers physically meaningful parameters when sufficient structure is provided. The port-Hamiltonian framework makes the conservative-dissipative split explicit via , guaranteeing when . We introduce PHAST (Port-Hamiltonian Architecture for Structured Temporal dynamics), which decomposes the Hamiltonian into potential, mass
Figures & tables
| Regime | Domain | System | Forecast | : landscape | : geometry | : dissipation | Ident.? |
| Known | Mechanics | Pendulum | Angle | Scalar | Air drag | Yes | |
| Mechanics | Spring–mass | Displacement | Scalar | Viscous | Yes | ||
| Molecular | Lennard–Jones | Positions | Diagonal | Solvent friction | Yes | ||
| Electrical | RLC circuit | Charge | Inductance | Resistance | Yes | ||
| Thermal | Heat exchange | Temperature | Time constant | Heat loss | Yes | ||
| Partial | Mechanics | Pendulum (unk. ) | Angle | (given) | (learn ) | Learned (bounded) | Yes |
| Method | Passivity | Spectral | Efficient | |
|---|---|---|---|---|
| HNN | ✗ | ✓ | ✗ | ✓ |
| LNN | ✗ | ✓ | ✗ | ✗ |
| DHNN / Diss. SymODEN | ✓ | ✗ | ✗ | ✓ |
| SympNets / VPT | ✗ | ✗ | ✗ | ✓ |
| SSMs (S5, LinOSS, D-LinOSS) | — | ✗ | ✗ | ✓ |
| PHAST (ours) | ✓ | ✓ | ✓ | ✓ |
| Model | Params | Cart-Pole (windy) |
|---|---|---|
| PHAST (ours) | ||
| PHAST (KNOWN) | 3,589 | |
| PHAST (PARTIAL) | 14,283 | |
| PHAST (UNKNOWN) | 14,290 | |
| S5 (best baseline) | 17,218 | |
| Benchmark | Best PHAST | Best baseline | Gain |
|---|---|---|---|
| Mechanical systems (rollout MSE at ) | |||
| Pendulum (cons) | (PARTIAL) | (Transformer) | |
| Pendulum (damped) | (KNOWN) | (D-LinOSS) | |
| Pendulum (windy) | (PARTIAL) | (D-LinOSS) | |
| Cart-Pole (windy) | (KNOWN) | (S5) | |
| Oscillator (cons) | (KNOWN/PARTIAL) | (Transformer) | |
| Model | Params | ||||
| PHAST (KNOWN) | 3,364 | ||||
| PHAST (PARTIAL) | 13,736 | ||||
| PHAST (UNKNOWN) | 13,738 | ||||
| GRU | — | — | 37,889 | ||
| S5 | — | — | 17,089 | ||
| LinOSS | — | — | 17,089 |
| Damping cap | WrapMSE θ (100) | MAE D | EbudRes(100) | |
|---|---|---|---|---|
| Unbounded | ||||
| Method | Velocity estimate | Success | Final error | Effort | ||
|---|---|---|---|---|---|---|
| 0.00 | Oracle | oracle | 1.00 | 262.9 | 0.000 | |
| 0.00 | Finite differences | FD | 1.00 | 268.6 | 0.007 | |
| 0.00 | MAP smoother | MAP smoother | 1.00 | 268.6 | 0.007 | |
| 0.00 | FD+TCN observer | FD+TCN | 1.00 | 270.7 | 0.008 | |
| 0.00 | PHAST-trained observer | PHAST observer | 1.00 | 272.4 | 0.019 | |
| 0.01 | Oracle | oracle | 1.00 | 262.9 | 0.000 |
| Method | Velocity estimate | Success | Final error | Effort | ||
|---|---|---|---|---|---|---|
| 0.00 | Oracle | oracle | 1.00 | 262.9 | 0.000 | |
| 0.00 | PHAST model-based | 1.00 | 245.0 | 0.011 | ||
| 0.01 | Oracle | oracle | 1.00 | 262.9 | 0.000 | |
| 0.01 | PHAST model-based | 1.00 | 245.1 | 0.011 |
| Method | Final error | Effort | |
|---|---|---|---|
| Oracle | 0.0041 | 6.3 | 0.000 |
| Finite differences | 0.0170 | 80.1 | 1.117 |
| MAP smoother | 0.0133 | 10.3 | 0.095 |
| FD+TCN observer | 0.0137 | 8.6 | 0.130 |
| PHAST-trained observer | 0.0188 | 54.9 | 0.911 |
| Observer train noise | Final error | Effort | |
|---|---|---|---|
| (mismatch) | 0.0168 | 82.4 | 1.134 |
| (matched) | 0.0120 | 8.5 | 0.132 |
| (anchored range) | 0.0137 | 8.6 | 0.130 |
| Method | Velocity estimate | Success | Final error | Effort | |
|---|---|---|---|---|---|
| Oracle | oracle | 1.00 | 263.6 | 0.000 | |
| Finite differences | FD | 0.00 | 2109.0 | 5.582 | |
| FD+TCN observer | FD+TCN (noise) | 0.26 | 396.6 | 0.659 |
Appendix figures & tables39 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Parameters | Shared across ? | Shared across substeps ? |
|---|---|---|---|
| Observer (FD+TCN) | ✓ | — | |
| Canonicalizer | ✓ | — | |
| Physics | ✓ | ✓ | |
| Substep timesteps | ✓ | per-substep |
| Hyperparameter | KNOWN | PARTIAL | UNKNOWN |
|---|---|---|---|
| Damping terms | 2 | 2 | 2 |
| Damping bound (Windy) | unbounded | unbounded | |
| policy (Windy) | learned | fixed | learned |
| Potential hidden dim | — | 64 | 64 |
| Potential layers | — | 3 | 3 |
| Mass terms (if learned) | — | — |
| Baseline | Key settings |
|---|---|
| GRU | dropout=0.0 |
| S5 | , internal |
| LinOSS | internal (absorbed into learned eigenvalues) |
| D-LinOSS | internal state dim , learnable per-oscillator timestep |
| Transformer | , FF dim , dropout=0.1 |
| VPT | , skew-symmetric attention |
| Benchmark | Initial conditions | Damping | |
|---|---|---|---|
| Pendulum (cons) | 0.05 | , | none |
| Pendulum (damped) | 0.05 | , | constant ( ) |
| Pendulum (windy) | 0.05 | , | ( , ) |
| Cart-Pole (windy) | 0.02 | , | windy on ( , ) |
| Oscillator (cons) | 0.02 | , | none |
| Oscillator (damped) | 0.02 | , | constant ( ) |
| Paper metric | Implementation key(s) |
|---|---|
| One-step wrapped-angle MSE ( ) | theta_wrap_mse |
| One-step Euclidean MSE ( ) | mse |
| Rollout wrapped-angle MSE at horizon ( ) | rollout_theta_wrap_mse_h{H} |
| Rollout Euclidean MSE at horizon ( ) | rollout_mse_h{H} |
| Rollout mixed-manifold MSE at horizon ( ) | rollout_mixed_mse_h{H} |
| Takeover rollouts (PHAST only; Eq. ( 8 )) | rollout_takeover_* |
| Model | Params | Conservative | Damped | Windy |
|---|---|---|---|---|
| PHAST (ours) | ||||
| PHAST (KNOWN) | 3,364 | |||
| PHAST (PARTIAL) | 13,736 | |||
| PHAST (UNKNOWN) | 13,738 | |||
| Baselines | ||||
| GRU | 37,889 | |||
| Model | Params | Double (cons) | Double (damped) |
|---|---|---|---|
| PHAST (ours) | |||
| PHAST (KNOWN) | 3,588 | ||
| PHAST (PARTIAL) | 12,166 | ||
| PHAST (UNKNOWN) | 13,067 | ||
| Baselines | |||
| GRU | 38,146 | ||
| Model | Params | Oscillator (cons) | Oscillator (damped) |
|---|---|---|---|
| PHAST (ours) | |||
| PHAST (KNOWN) | 3,587 | ||
| PHAST (PARTIAL) | 12,165 | ||
| PHAST (UNKNOWN) | 12,171 | ||
| Baselines | |||
| GRU | 38,146 | ||
| Model | Params | RLC (damped) |
| PHAST (ours) | ||
| PHAST (KNOWN) | 3,364 | |
| PHAST (PARTIAL) | 11,878 | |
| PHAST (UNKNOWN) | 11,879 | |
| Baselines | ||
| S5 | 17,089 | |
| Model | Params | LJ-3 (damped) |
| PHAST (ours) | ||
| PHAST (KNOWN) | 4,490 | |
| PHAST (PARTIAL) | 13,324 | |
| PHAST (UNKNOWN) | 13,355 | |
| Baselines | ||
| S5 | 17,734 | |
| Model | Params | Heat Exch. (damped) |
| PHAST (ours) | ||
| PHAST (KNOWN) | 3,592 | |
| PHAST (PARTIAL) | 12,170 | |
| PHAST (UNKNOWN) | 12,173 | |
| Baselines | ||
| S5 | 17,218 | |
| Model | Params | N-body 3 (damped) |
| PHAST (ours) | ||
| PHAST (KNOWN) | 4,489 | |
| PHAST (PARTIAL) | 13,323 | |
| PHAST (UNKNOWN) | 13,355 | |
| Baselines | ||
| S5 | 17,734 | |
| Model | Params | Predator–Prey (damped) |
| PHAST (ours) | ||
| PHAST (KNOWN) | 3,364 | |
| PHAST (PARTIAL) | 11,878 | |
| PHAST (UNKNOWN) | 11,879 | |
| Baselines | ||
| S5 | 17,089 | |
| Model | Params | ||||
|---|---|---|---|---|---|
| PHAST (PARTIAL) | 10,376 | ||||
| PHAST (UNKNOWN) | 10,378 | ||||
| DHNN | 107,124 | — | — |
| Model | Params | |||||
|---|---|---|---|---|---|---|
| PHAST (KNOWN, constant ) | 3,589 | |||||
| PHAST (KNOWN, ) | 3,589 |
| Model | Params | |||
|---|---|---|---|---|
| PHAST (KNOWN, constant ) | 3,589 | |||
| PHAST (KNOWN, ) | 3,589 |
| Environment | Metric | |||
|---|---|---|---|---|
| Windy Cart-Pole | 0.05 | |||
| Double Pendulum | 0.04 |
| Setting | |||||
|---|---|---|---|---|---|
| fixed , fixed | |||||
| learnable , fixed | |||||
| fixed , learned | |||||
| learnable , learned |
| Model (scaled) | Params | |
|---|---|---|
| GRU ( ) | 149,505 | |
| S5 ( ) | 34,049 | |
| Transformer ( ) | 396,929 |
| Cap on | |||||
|---|---|---|---|---|---|
| Unbounded | |||||
| Cap on | ||||
|---|---|---|---|---|
| Unbounded | ||||
| Setup | Mass | Conclusion | ||
|---|---|---|---|---|
| Learn (known ) + | SPD | — | Identifiable | |
| Learn (known ) + | NeuralMass | — | Identifiable (high var.) | |
| Learn (known ) + | Known | — | Identifiable | |
| Learn both ( + neural ) + | SPD | Non-identifiable | ||
| Learn both ( + neural ) + | NeuralMass | Non-identifiable | ||
| Learn + structured + | SPD | Identifiable |
| Index | Range | Meaning |
|---|---|---|
| Trajectory index (batching) | ||
| Time index (transitions use ) | ||
| Rollout step index (horizon ) | ||
| PHAST substep index | ||
| Rank-1 term index in low-rank updates | ||
| Coordinate index |
| Symbol | Space / shape | Meaning |
| Problem setting & knowledge regimes Sec. 1 | ||
| Degrees of freedom | ||
| manifold | Configuration space (e.g., ) | |
| Generalized configuration (forecast target) | ||
| Conjugate momentum (latent in q-only setting) | ||
| Phase-space state | ||
Time Series Forecasting
Time series forecasting predicts future values from ordered observations using statistical, neural, and probabilistic models to support decisions under uncertainty.
See all 858 papers