|
Vulcan
Aerospace Engineering Utilities Built on Janus
|
Classes | |
| struct | State |
| First-order Gauss-Markov process state. More... | |
| struct | Coeffs |
| Discretized first-order Markov process coefficients. More... | |
Functions | |
| template<typename Scalar> | |
| State< Scalar > | init_state () |
| Initialize state to zero. | |
| template<typename Scalar> | |
| State< Scalar > | init_state (const Scalar &initial_value) |
| Initialize state to specific value. | |
| Coeffs | discretize (double tau, double sigma, double dt) |
| Discretize first-order Markov process. | |
| double | process_noise_psd (double tau, double sigma) |
| Compute continuous-time process noise PSD. | |
| double | process_noise_intensity (double tau, double sigma) |
| Compute continuous-time process noise intensity. | |
| template<typename Scalar> | |
| Scalar | step (State< Scalar > &state, const Coeffs &coeffs, const Scalar &noise_input) |
| Step the first-order Markov process. | |
| template<typename Scalar> | |
| Scalar | step (State< Scalar > &state, double tau, double sigma, double dt, const Scalar &noise_input) |
| Step with inline discretization. | |
| double | autocorrelation (double tau, double sigma, double tau_lag) |
| Compute autocorrelation at lag τ_lag. | |
| double | psd_at_frequency (double tau, double sigma, double f) |
| Compute power spectral density at frequency f. | |
|
inline |
Compute autocorrelation at lag τ_lag.
For first-order Markov process: R(τ_lag) = σ² · exp(-|τ_lag|/τ)
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
| tau_lag | Time lag [s] |
|
inline |
Discretize first-order Markov process.
Uses exact discretization that preserves the steady-state variance regardless of the time step.
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
| dt | Time step [s] |
| State< Scalar > vulcan::markov::init_state | ( | ) |
Initialize state to zero.
| Scalar | double or casadi::MX |
| State< Scalar > vulcan::markov::init_state | ( | const Scalar & | initial_value | ) |
Initialize state to specific value.
Useful for starting with a non-zero initial bias.
| Scalar | double or casadi::MX |
| initial_value | Initial process value |
|
inline |
Compute continuous-time process noise intensity.
The process noise intensity q_c relates to PSD by: q_c² = S_w
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
|
inline |
Compute continuous-time process noise PSD.
For a first-order Markov process with correlation time τ and steady-state variance σ², the continuous-time process noise PSD is: S_w = 2σ²/τ
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
|
inline |
Compute power spectral density at frequency f.
For first-order Markov: S(f) = σ²·(2τ)/(1 + (2πfτ)²)
This is a Lorentzian spectrum.
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
| f | Frequency [Hz] |
| Scalar vulcan::markov::step | ( | State< Scalar > & | state, |
| const Coeffs & | coeffs, | ||
| const Scalar & | noise_input ) |
Step the first-order Markov process.
Updates the process state: x[k+1] = φ·x[k] + q·w[k]
| Scalar | double or casadi::MX |
| state | Current state (updated in-place) |
| coeffs | Discretized coefficients |
| noise_input | White noise sample with unit variance |
| Scalar vulcan::markov::step | ( | State< Scalar > & | state, |
| double | tau, | ||
| double | sigma, | ||
| double | dt, | ||
| const Scalar & | noise_input ) |
Step with inline discretization.
Convenience function when coefficients don't need to be pre-computed.
| Scalar | double or casadi::MX |
| state | Current state (updated in-place) |
| tau | Correlation time [s] |
| sigma | Steady-state standard deviation |
| dt | Time step [s] |
| noise_input | White noise sample with unit variance |