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

Classes

struct  FilterState
 Dryden forming filter state. More...
struct  FilterCoeffs
 Discretized Dryden forming filter coefficients. More...

Functions

template<typename Scalar>
Scalar psd_longitudinal (const Scalar &omega, double sigma_u, double L_u)
 Dryden longitudinal PSD.
template<typename Scalar>
Scalar psd_lateral (const Scalar &omega, double sigma, double L)
 Dryden 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 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 Dryden forming filter.
FilterCoeffs mil_spec_coeffs (double altitude, wind::TurbulenceSeverity severity, double airspeed, double dt)
 Compute all filter coefficients for MIL-spec conditions.

Function Documentation

◆ compute_filter_coeffs()

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

Compute forming filter coefficients.

Discretizes the continuous-time Dryden forming filters for given airspeed and time step using the bilinear (Tustin) transform.

Continuous-time transfer functions:

  • Longitudinal: H_u(s) = σ_u * sqrt(2V/πL_u) / (1 + L_u/V * s)
  • Lateral: H_v(s) = σ_v * sqrt(V/πL_v) * (1 + sqrt(3)*L_v/V*s) / (1 + L_v/V*s)^2
  • Vertical: H_w(s) = same form as lateral with w subscripts
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::dryden::init_state ( )

Initialize filter state to zero.

Template Parameters
Scalardouble or casadi::MX
Returns
FilterState with all zeros

◆ mil_spec_coeffs()

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

Compute all filter coefficients for MIL-spec conditions.

Convenience function that combines mil_spec_params and compute_filter_coeffs.

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::dryden::psd_lateral ( const Scalar & omega,
double sigma,
double L )

Dryden lateral/vertical PSD.

Φ_v(Ω) = σ_v² * (L_v/π) * [(1 + 3(L_v·Ω)²) / (1 + (L_v·Ω)²)²]

Same form for vertical component with w subscripts.

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::dryden::psd_longitudinal ( const Scalar & omega,
double sigma_u,
double L_u )

Dryden longitudinal PSD.

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

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::dryden::step ( FilterState< Scalar > & state,
const FilterCoeffs & coeffs,
const Scalar & noise_u,
const Scalar & noise_v,
const Scalar & noise_w )

Step the Dryden forming filter.

Updates filter state and computes gust velocities given white noise input. The noise inputs should be independent standard normal random variables.

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)