Skip to main content

DynamicModel

Struct DynamicModel 

Source
pub struct DynamicModel {
    pub generators: Vec<GeneratorDyn>,
    pub exciters: Vec<ExciterDyn>,
    pub governors: Vec<GovernorDyn>,
    pub pss: Vec<PssDyn>,
    pub loads: Vec<LoadDyn>,
    pub facts: Vec<FACTSDyn>,
    pub unknown_records: Vec<UnknownDyrRecord>,
    pub oels: Vec<OelDyn>,
    pub uels: Vec<UelDyn>,
    pub shafts: Vec<ShaftDyn>,
}
Expand description

Complete dynamic model database parsed from a .dyr file.

Fields§

§generators: Vec<GeneratorDyn>

Generator dynamic models (GENCLS, GENROU, GENSAL).

§exciters: Vec<ExciterDyn>

Excitation system models (EXST1, ESST3A, ESDC2A, EXDC2, IEEEX1).

§governors: Vec<GovernorDyn>

Turbine-governor models (TGOV1, IEEEG1).

§pss: Vec<PssDyn>

Power system stabilizer models (IEEEST, ST2CUT).

§loads: Vec<LoadDyn>

Load dynamic models (CLOD, INDMOT, MOTOR) — Phase 12.

§facts: Vec<FACTSDyn>

FACTS/HVDC dynamic models (CSVGN1, CSTCON, TCSC, CDC4T, VSCDCT) — Phase 13.

§unknown_records: Vec<UnknownDyrRecord>

Records with unrecognised model names — stored verbatim for diagnostics.

§oels: Vec<OelDyn>

Over-excitation limiter models (OEL1B, OEL2C, SCL1C) — Wave 37.

§uels: Vec<UelDyn>

Under-excitation limiter models (UEL1, UEL2C) — Wave 37.

§shafts: Vec<ShaftDyn>

Multi-mass torsional shaft models for time-domain SSR simulation.

Implementations§

Source§

impl DynamicModel

Source

pub fn n_generators(&self) -> usize

Number of generator dynamic records.

Source

pub fn n_exciters(&self) -> usize

Number of exciter records.

Source

pub fn n_governors(&self) -> usize

Number of governor records.

Source

pub fn n_pss(&self) -> usize

Number of PSS records.

Source

pub fn n_loads(&self) -> usize

Number of load dynamic records.

Source

pub fn total(&self) -> usize

Total number of recognised dynamic records.

Source

pub fn coverage(&self) -> (usize, usize, f64)

Compute supported model coverage. Returns (n_supported, n_total, coverage_pct).

Source

pub fn n_facts(&self) -> usize

Number of FACTS/HVDC dynamic records.

Source

pub fn find_facts(&self, bus: u32, device_id: &str) -> Option<&FACTSDyn>

Find the first FACTS/HVDC dynamic record at the given bus with the given device ID.

Source

pub fn find_load(&self, bus: u32, load_id: &str) -> Option<&LoadDyn>

Find the first load dynamic record at the given bus with the given load ID.

Source

pub fn find_generator( &self, bus: u32, machine_id: &str, ) -> Option<&GeneratorDyn>

Find the first generator dynamic record at the given bus with the given machine ID.

Source

pub fn find_exciter(&self, bus: u32, machine_id: &str) -> Option<&ExciterDyn>

Find the first exciter record at the given bus with the given machine ID.

Source

pub fn find_governor(&self, bus: u32, machine_id: &str) -> Option<&GovernorDyn>

Find the first governor record at the given bus with the given machine ID.

Source

pub fn find_pss(&self, bus: u32, machine_id: &str) -> Option<&PssDyn>

Find the first PSS record at the given bus with the given machine ID.

Source

pub fn find_shaft(&self, bus: u32, machine_id: &str) -> Option<&ShaftDyn>

Find the first shaft dynamic record at the given bus with the given machine ID.

Source

pub fn unknown_model_summary(&self) -> Vec<UnknownModelGroup>

Build a summary report of unknown/unrecognized dynamic models.

Groups unknown records by model name, counts occurrences, lists affected buses, and suggests standard equivalents where known.

Source

pub fn incomplete_machines(&self) -> Vec<IncompleteMachine>

Find generators that have a generator model but are missing one or more of: exciter, governor, or PSS.

Returns (bus, machine_id, has_exciter, has_governor, has_pss) tuples.

Trait Implementations§

Source§

impl Clone for DynamicModel

Source§

fn clone(&self) -> DynamicModel

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 DynamicModel

Source§

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

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

impl Default for DynamicModel

Source§

fn default() -> DynamicModel

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for DynamicModel

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for DynamicModel

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,