pub struct RocofRelay {
pub threshold_hz_per_s: f64,
pub measurement_window_s: f64,
pub time_delay_s: f64,
pub enabled: bool,
/* private fields */
}Expand description
IEEE 81R rate-of-change-of-frequency relay.
Trips when |ROCOF| >= threshold_hz_per_s persists for at least
time_delay_s seconds.
§Typical settings
- Island detection: 0.5 – 2.0 [Hz/s]
- Loss-of-mains: 1.0 [Hz/s] with 0.15 s delay
Fields§
§threshold_hz_per_s: f64Trip threshold [Hz/s].
measurement_window_s: f64Duration over which ROCOF is averaged [s] (informational).
time_delay_s: f64Minimum consecutive time above threshold before trip [s].
enabled: boolWhether the relay is in service.
Implementations§
Source§impl RocofRelay
impl RocofRelay
Sourcepub fn new(threshold_hz_per_s: f64, time_delay_s: f64) -> Self
pub fn new(threshold_hz_per_s: f64, time_delay_s: f64) -> Self
Construct an IEEE 81R relay.
threshold_hz_per_s— ROCOF trip threshold [Hz/s].time_delay_s— intentional time delay before trip [s].
Sourcepub fn evaluate(
&mut self,
measurement: &FrequencyMeasurement,
dt: f64,
) -> RelayAction
pub fn evaluate( &mut self, measurement: &FrequencyMeasurement, dt: f64, ) -> RelayAction
Evaluate the relay given the latest measurement and time step dt [s].
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RocofRelay
impl RefUnwindSafe for RocofRelay
impl Send for RocofRelay
impl Sync for RocofRelay
impl Unpin for RocofRelay
impl UnsafeUnpin for RocofRelay
impl UnwindSafe for RocofRelay
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.