Theory
This page gives a self-contained mathematical account of the methods VANE implements, in the order the pipeline applies them. Each result is checked against an analytical or reference solution; the Validation matrix links every claim here to an automated test. Symbols: \(N_b\) is the number of blades (three in VANE), \(\Omega\) the rotor speed (rad/s), \(\psi\) the rotor azimuth, and \(j=\sqrt{-1}\).
1. Linearized turbine dynamics
OpenFAST linearizes the coupled aero-hydro-servo-elastic equations of motion about a periodic steady operating point, yielding a first-order state-space model
where the state \(\mathbf{x}\) collects the structural and actuator degrees of freedom (DOFs) and their rates. For a spinning rotor the system matrices depend on the azimuth \(\psi=\Omega t\), so (1) is linear time-periodic (LTP) with period \(T = 2\pi/\Omega\), not time-invariant. The structural block has the second-order form
assembled by VANE into the canonical state layout \(\mathbf{x} = [\,\mathbf{q}_2;\ \dot{\mathbf{q}}_2;\ \mathbf{q}_1\,]\) (second-order displacements, their rates, then first-order states); see Coordinate systems, origins & datums.
2. The multi-blade coordinate (Coleman) transform
A direct eigenanalysis of \(\mathbf{A}(\psi)\) is azimuth-dependent and the blade DOFs are coupled by rotation. The multi-blade coordinate (MBC), or Coleman, transform [Coleman1957] [Bir2008] projects the \(N_b\) identical blade DOFs into the non-rotating frame, where an isotropic rotor becomes time-invariant.
Let \(q^{(b)}\) be a blade DOF on blade \(b\) at azimuth \(\psi_b = \psi + 2\pi(b-1)/N_b\). The transform to the collective, cosine-cyclic, and sine-cyclic coordinates is
Collecting (2) into the full-state transform \(\mathbf{T}(\psi)\) (the blade triplets transformed, the non-rotating tower, drivetrain, and platform DOFs passed through unchanged), the state transforms as \(\mathbf{x}_{\mathrm{NR}} = \mathbf{T}(\psi)\,\mathbf{x}\). For any first-order LTP system the exact non-rotating state matrix is
Because VANE applies the blade transform to the second-order state \([\,\mathbf{q}_2;\,\dot{\mathbf{q}}_2;\,\mathbf{q}_1\,]\), the term \(\dot{\mathbf{T}}\mathbf{T}^{-1}\) couples the transformed velocities back to the positions, and its explicit evaluation brings in the first and second azimuth derivatives of the blade Coleman matrix: the first contributes the Coriolis coupling (\(\propto\Omega\)) and the second the centrifugal coupling (\(\propto\Omega^2\)), which together produce the regressive/progressive frequency split. The implementation forms these blocks explicitly (terms in \(\Omega\,\partial_\psi\mathbf{T}\) and \(\Omega^2\,\partial_\psi^2\mathbf{T}\)).
VANE detects the blade triplets automatically from the channel descriptions and applies the multi-blade projection to all four system matrices: the state matrix as in (3), and \(\mathbf{B}\), \(\mathbf{C}\), \(\mathbf{D}\) by applying the state coordinate map on the state side of each matrix and the input/output multi-blade maps on their input/output side (so the state map acts on the left of \(\mathbf{B}\) and on the right of \(\mathbf{C}\)). The \(\dot{\mathbf{T}}\mathbf{T}^{-1}\) term arises only from differentiating the state transform and is therefore specific to the state equation; it does not appear in the \(\mathbf{B}\), \(\mathbf{C}\), \(\mathbf{D}\) transforms.
Azimuth averaging. The averaged non-rotating model is
estimated from the available azimuth samples. For an isotropic rotor every \(\mathbf{A}_{\mathrm{NR}}(\psi)\) is identical, so (4) is exact and the averaged model represents the periodic system without error; anisotropy introduces an azimuth dependence that §8 quantifies. VANE enforces that the azimuth samples form a coherent sweep (distinct azimuths, constant rotor speed) before averaging.
3. Eigenanalysis and modal parameters
The modes are the eigenpairs of the averaged state matrix, \(\bar{\mathbf{A}}\mathbf{x}_i = \lambda_i\mathbf{x}_i\). Each eigenvalue of an underdamped mode is complex, \(\lambda = -\zeta\omega_n \pm j\,\omega_n\sqrt{1-\zeta^2}\), from which
Complex-conjugate pairs are collapsed to the representative with positive imaginary part. The solution separately counts unstable (\(\operatorname{Re}\lambda>0\)) and over-damped (real, stable) eigenvalues.
Numerical conditioning. A first-order perturbation \(\delta\mathbf{A}\) shifts a simple eigenvalue by [Wilkinson1965]
with \(\mathbf{x}_i,\mathbf{y}_i\) the right and left eigenvectors. The eigenvalue condition number
bounds the sensitivity; \(\kappa_i \ge 1\) by Cauchy–Schwarz, with \(\kappa_i = 1\) for a normal matrix and large values flagging a fragile, strongly non-normal mode. A near-repeated eigenvalue is flagged degenerate: its mode shape is defined only up to a rotation within the invariant subspace.
4. Mode shapes, correlation, and participation
Mode shapes (the displacement partition of the eigenvectors) are complex and phase-normalized so the dominant component is real and positive; this convention does not affect the correlation measures, which are phase-invariant. The Modal Assurance Criterion [Allemang2003] between mode shapes \(\boldsymbol\phi_i\) and \(\boldsymbol\phi_j\) is
equal to one for collinear shapes and zero for orthogonal ones, and invariant to per-mode complex scaling. For state-space modes the pole-weighted MACXP variant [Vacher2010] additionally accounts for the eigenvalues, improving discrimination near crossings. The per-DOF participation of a mode is the normalized contribution of each DOF to its shape, with a phase-based sign, and drives the physical labelling.
5. Blade-mode taxonomy
After the MBC transform each blade triplet is exactly \([\,q_0,\ q_c,\ q_s\,]\), so a mode is collective when its participation concentrates in the collective coordinates and cyclic otherwise. A cyclic mode is classified by its whirl direction from the phase-invariant indicator
which is positive for a regressive (backward-whirling) mode and negative for a
progressive (forward-whirling) one. The sign is calibrated against the Coleman
split below, so the lower-frequency \(\omega_0-\Omega\) line is the regressive one,
consistent with vane.modal.label_solution(). The classification is gated on the
cyclic pair
being genuinely circular (comparable cosine/sine magnitudes), so a degenerate pair is
not mislabelled. For an isotropic rotor the three blade modes appear at the Coleman
frequencies
with \(\omega_0\) the rotating-frame blade frequency. This template-free derivation (structure + whirl sign, not name matching) is what VANE validates end to end against (8) across a rotor-speed sweep.
6. Cross-operating-point tracking
Modes computed independently at successive operating points (rotor or wind speeds) are linked into the lines of a Campbell diagram. Define the link affinity between mode \(i\) at point \(k\) and mode \(j\) at point \(k{+}1\) as the MAC gated by a frequency-continuity penalty,
with frequency weight \(w_f\) and MAC threshold \(\tau\). VANE extracts each track as the globally optimal continuity path over the not-yet-assigned modes,
by a deterministic dynamic program over the layered mode graph, then removes that path and repeats until every mode is assigned. Each track reports a confidence (its weakest-link MAC) and an ambiguity flag where a mode had two near-equally correlated continuations — a crossing or veering hotspot. The extraction is a globally optimal single-path search applied sequentially; see Limitations for the precise optimality caveat.
7. Excitation lines and resonance
A rotor turning at \(\Omega\) excites the structure at integer multiples of the rotational frequency — the \(nP\) lines at \(f = n\,\mathrm{rpm}/60\). A potential resonance occurs where a mode curve crosses an \(nP\) line; VANE locates each crossing by sign change of \(f_{\text{mode}} - n\,\mathrm{rpm}/60\) and linearly interpolates the crossing rotor speed, frequency, and damping. Each crossing carries a damping-aware severity (a lightly damped crossing is more dangerous than a well-damped one) and an optional operating-window filter.
8. Uncertainty quantification
The averaged model (4) discards the azimuth dependence; the azimuth spread quantifies how much. VANE measures how each frozen-time matrix \(\mathbf{A}_{\mathrm{NR}}(\psi)\) perturbs the averaged model: for an isotropic rotor every \(\mathbf{A}_{\mathrm{NR}}(\psi)=\bar{\mathbf{A}}\) and the spread is zero, while anisotropy makes the per-azimuth matrices differ from the average — and their instantaneous spectra differ — by an amount the spread captures. Applying (5) with \(\delta\mathbf{A} = \mathbf{A}_{\mathrm{NR}}(\psi)-\bar{\mathbf{A}}\),
and the standard deviation of the resulting frequency and damping across azimuths is the spread — zero for an isotropic rotor, growing with anisotropy.
These are fused into one unified confidence in \([0,1]\) as a product of independent reliability factors,
where \(\sigma_{f,i}\) is the frequency spread, \(s\) a scale, and \(t_i\) the tracking confidence. A low \(c_i\) inflates the Kalman initial covariance, propagating uncertainty into the digital-twin export.
9. State-space export
The averaged or modal model is exported as a validated continuous-time LTI system. Zero-order-hold discretization at sample time \(\Delta t\) uses the augmented matrix exponential, giving discrete eigenvalues \(e^{\lambda\Delta t}\) and preserving stability. A real modal realization places each mode, with eigenvalue \(\lambda = \sigma + j\omega\) (\(\sigma=\operatorname{Re}\lambda\), \(\omega=\omega_d\)), in a \(2\times 2\) block acting on the real and imaginary parts of its modal coordinate,
whose eigenvalues are exactly \(\sigma \pm j\omega\); when mode shapes are supplied the output matrix maps the modal states to physical responses through \([\,2\operatorname{Re}\boldsymbol\phi,\ -2\operatorname{Im}\boldsymbol\phi\,]\). The block-diagonal model therefore reproduces the identified frequencies and damping to machine precision (export fidelity). The Kalman matrices \(\mathbf{Q}\), \(\mathbf{R}\), \(\mathbf{P}_0\) are assembled with the per-mode confidence inflating the initial state covariance \(\mathbf{P}_0\) — a less-trusted mode starts with larger variance — while \(\mathbf{Q}\) and \(\mathbf{R}\) take their configured process- and measurement-noise levels.
References
Coleman, R. P., & Feingold, A. M. (1957). Theory of self-excited mechanical oscillations of helicopter rotors with hinged blades. NACA Report 1351.
Bir, G. (2008). Multi-blade coordinate transformation and its application to wind turbine analysis. AIAA/ASME Wind Energy Symposium. NREL/CP-500-42553.
Wilkinson, J. H. (1965). The Algebraic Eigenvalue Problem. Oxford University Press.
Allemang, R. J. (2003). The modal assurance criterion — twenty years of use and abuse. Sound and Vibration, 37(8), 14–23.
Vacher, P., Jacquier, B., & Bucharles, A. (2010). Extensions of the MAC criterion to complex modes. Proceedings of ISMA 2010.