Skip to content

TinySysid · ERA — Design notes

Current implementation and parameter meaning

ERA_SVD_THRESH is currently 0.002f: retain components above 0.2% of the leading singular value. This is an amplitude ratio, not cumulative energy (which involves squared singular values). The 0.5% in historical diagrams and code comments below is retained for comparison and is not the current default.

ERA depends on correlation estimates, Hankel dimensions, signal-to-noise ratio and selected order. Claims of highest accuracy or fixed error bounds require common inputs, parameters and observed runs; SVD alone does not establish them.

源码 / Source

ERA — Eigensystem Realization Algorithm: State-space OMA

Based on NExT (Natural Excitation Technique) + Hankel matrix + SVD + balanced realization. Extracts a state-space model from time-domain response, then identifies modal parameters from it. Validate results against input quality, model order and residuals.

Intuition

What ERA Does

ERA's recipe: 1. NExT: Convert random responses into "free decay"-like signals (cross-correlation) 2. Hankel matrix: Arrange time series into a block matrix—rows = "past", columns = "future" 3. SVD: Decompose this matrix, keep largest singular values → remove noise, keep system dynamics 4. Balanced realization: Reconstruct system matrix \(A\) from SVD results; its eigenvalues are the system's poles

Numerical design choices

  • Large matrix (Hankel 75×50) SVD processes lots of information
  • NExT preprocessing improves SNR
  • Balanced realization helps manage scaling; numerical stability still needs validation
  • Jacobi SVD converges fast (~15 sweeps) on embedded platforms

Algorithm

Historical threshold sketch (current value: 0.2%)
1. NExT: cross-correlation → free-decay-like signals

2. Build Hankel matrices
   ├─ H₀: [p·n_ch × q·n_ch] (default p=15, q=10)
   └─ H₁: shifted by 1 lag

3. SVD: H₀ = U·Σ·Vᵀ
   └─ Select order n (σ[k] > 0.5%·σ[0])

4. Balanced realization
   ├─ A = Σ⁻¹/²·Uᵀ·H₁·V·Σ⁻¹/²
   └─ λ = eig(A) → discrete poles

5. Discrete → continuous modal parameters

When to Use ERA

  • Joint frequency, damping and mode-shape estimation with a Hankel/SVD memory budget
  • Data ≥ 20s (60s recommended)
  • Final confirmation method

Design Deep Dive

1. Hankel Matrix (p,q) Tradeoffs

The table retains earlier estimates for five channels. Memory mainly describes a single Hankel matrix, not the entire algorithm workspace. Timing and accuracy lack complete build and run conditions and are not current performance guarantees.

p,q Hankel size Memory Accuracy Time
(10,5) 50×25 5 KB Fair ~1s
(15,10) 75×50 15 KB Good ~2s
(20,15) 100×75 30 KB Better ~3s
(30,20) 150×100 60 KB Best ~5s (PSRAM)

2. Jacobi SVD Choice

ERA needs full SVD (all SVs/vectors). Jacobi over QR/Householder because: no extra memory allocation, natural rank determination, float-friendly.

3. Balanced Realization

ERA simplifies: truncate Hankel SVD → construct A from H₁. The balancing step (Σ⁻¹/²·Uᵀ·H₁·V·Σ⁻¹/²) is included but the full balanced transform is omitted—ERA assumes the system is already controllable/observable.