Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::von_karman Namespace Reference

Classes

struct  FilterState
 von Kármán filter state (higher order than Dryden) More...
struct  FilterCoeffs
 von Kármán forming filter coefficients More...

Functions

template<typename Scalar>
Scalar psd_longitudinal (const Scalar &omega, double sigma_u, double L_u)
 von Kármán longitudinal PSD
template<typename Scalar>
Scalar psd_lateral (const Scalar &omega, double sigma, double L)
 von Kármán lateral/vertical PSD
template<typename Scalar>
FilterState< Scalar > init_state ()
 Initialize filter state to zero.
FilterCoeffs compute_filter_coeffs (const wind::TurbulenceParams< double > &params, double airspeed, double dt)
 Compute von Kármán forming filter coefficients.
template<typename Scalar>
wind::GustVelocity< Scalar > step (FilterState< Scalar > &state, const FilterCoeffs &coeffs, const Scalar &noise_u, const Scalar &noise_v, const Scalar &noise_w)
 Step the von Kármán forming filter.
FilterCoeffs mil_spec_coeffs (double altitude, wind::TurbulenceSeverity severity, double airspeed, double dt)
 Compute all filter coefficients for MIL-spec conditions.

Variables

constexpr double SPECTRAL_CONSTANT = 1.339
 von Kármán constant used in spectral formulation

Function Documentation

◆ compute_filter_coeffs()

FilterCoeffs vulcan::von_karman::compute_filter_coeffs ( const wind::TurbulenceParams< double > & params,
double airspeed,
double dt )
inline

Compute von Kármán forming filter coefficients.

Uses a well-established rational approximation to the von Kármán spectrum. The approximation provides:

  • Exact low-frequency match
  • -5/6 roll-off approximated by cascade of first-order sections
  • Good phase characteristics
Parameters
paramsTurbulence parameters (σ and L values)
airspeedTrue airspeed V [m/s]
dtTime step [s]
Returns
Discretized filter coefficients

◆ init_state()

template<typename Scalar>
FilterState< Scalar > vulcan::von_karman::init_state ( )

Initialize filter state to zero.

◆ mil_spec_coeffs()

FilterCoeffs vulcan::von_karman::mil_spec_coeffs ( double altitude,
wind::TurbulenceSeverity severity,
double airspeed,
double dt )
inline

Compute all filter coefficients for MIL-spec conditions.

Parameters
altitudeAltitude above ground level [m]
severityTurbulence severity level
airspeedTrue airspeed [m/s]
dtTime step [s]
Returns
FilterCoeffs ready for simulation

◆ psd_lateral()

template<typename Scalar>
Scalar vulcan::von_karman::psd_lateral ( const Scalar & omega,
double sigma,
double L )

von Kármán lateral/vertical PSD

Φ_v(Ω) = σ_v² * (L_v/π) * [(1 + (8/3)(1.339·L_v·Ω)²) / (1 + (1.339·L_v·Ω)²)^(11/6)]

Template Parameters
Scalardouble or casadi::MX
Parameters
omegaSpatial frequency Ω [rad/m]
sigmaRMS turbulence intensity [m/s]
LScale length [m]
Returns
PSD value [m²/s²/(rad/m)]

◆ psd_longitudinal()

template<typename Scalar>
Scalar vulcan::von_karman::psd_longitudinal ( const Scalar & omega,
double sigma_u,
double L_u )

von Kármán longitudinal PSD

Φ_u(Ω) = σ_u² * (2L_u/π) * [1 / (1 + (1.339·L_u·Ω)²)^(5/6)]

Note: The irrational exponent (5/6) makes this PSD impossible to realize exactly with rational transfer functions. Approximations are used.

Template Parameters
Scalardouble or casadi::MX
Parameters
omegaSpatial frequency Ω [rad/m]
sigma_uRMS turbulence intensity [m/s]
L_uScale length [m]
Returns
PSD value [m²/s²/(rad/m)]

◆ step()

template<typename Scalar>
wind::GustVelocity< Scalar > vulcan::von_karman::step ( FilterState< Scalar > & state,
const FilterCoeffs & coeffs,
const Scalar & noise_u,
const Scalar & noise_v,
const Scalar & noise_w )

Step the von Kármán forming filter.

Updates filter state and computes gust velocities given white noise input. Higher order than Dryden for more accurate spectral matching.

Template Parameters
Scalardouble or casadi::MX
Parameters
stateCurrent filter state (updated in-place)
coeffsPre-computed filter coefficients
noise_uWhite noise input for longitudinal channel
noise_vWhite noise input for lateral channel
noise_wWhite noise input for vertical channel
Returns
Gust velocity (u_g, v_g, w_g)

Variable Documentation

◆ SPECTRAL_CONSTANT

double vulcan::von_karman::SPECTRAL_CONSTANT = 1.339
inlineconstexpr

von Kármán constant used in spectral formulation