Skip to main content

DetectabilityBound

Struct DetectabilityBound 

Source
pub struct DetectabilityBound {
    pub delta_0: f32,
    pub alpha: f32,
    pub kappa: f32,
    pub tau_upper: Option<f32>,
    pub bound_satisfied: Option<bool>,
}
Expand description

Deterministic detectability upper bound τ_upper.

Computes the latency upper bound from DSFB-Lattice Theorem 1:

τ_upper = δ₀ / (α − κ)   iff α > κ

Returns None if α ≤ κ (divergence rate does not exceed noise floor).

Fields§

§delta_0: f32

Initial offset δ₀ = ‖r_initial‖ from nominal.

§alpha: f32

Observed divergence rate α (from Lyapunov λ or empirical slew rate).

§kappa: f32

Noise-floor rate κ.

§tau_upper: Option<f32>

Computed bound τ_upper (sample periods). None if α ≤ κ.

§bound_satisfied: Option<bool>

Whether observed crossing time t_cross ≤ τ_upper + ε.

Implementations§

Source§

impl DetectabilityBound

Source

pub fn compute(delta_0: f32, alpha: f32, kappa: f32) -> Self

Compute the τ_upper bound given δ₀, α, κ.

Source

pub fn validate_crossing(&mut self, t_cross: f32, epsilon: f32)

Validate whether the observed crossing time satisfies the bound.

t_cross = number of samples from episode start to envelope crossing. epsilon = tolerance for sample-period quantisation (default: 1.0).

Trait Implementations§

Source§

impl Clone for DetectabilityBound

Source§

fn clone(&self) -> DetectabilityBound

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DetectabilityBound

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for DetectabilityBound

Source§

fn eq(&self, other: &DetectabilityBound) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DetectabilityBound

Source§

impl StructuralPartialEq for DetectabilityBound

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.