Skip to main content

cimstructs/
SynchronousMachineModelKind.rs

1/// Type of synchronous machine model used in dynamic simulation applications.
2#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
3pub enum SynchronousMachineModelKind {
4    /// Subtransient synchronous machine model.
5    subtransient,
6    /// WECC type F variant of subtransient synchronous machine model.
7    subtransientTypeF,
8    /// WECC type J variant of subtransient synchronous machine model.
9    subtransientTypeJ,
10    /// Simplified version of subtransient synchronous machine model where magnetic coupling between the direct- and quadrature- axes is ignored.
11    subtransientSimplified,
12    /// Simplified version of a subtransient synchronous machine model with no damper circuit on the direct-axis.
13    subtransientSimplifiedDirectAxis,
14}
15
16impl SynchronousMachineModelKind {
17    pub fn uri(&self) -> &'static str {
18        match self {
19            SynchronousMachineModelKind::subtransient => "http://iec.ch/TC57/CIM100#SynchronousMachineModelKind.subtransient",
20            SynchronousMachineModelKind::subtransientTypeF => "http://iec.ch/TC57/CIM100#SynchronousMachineModelKind.subtransientTypeF",
21            SynchronousMachineModelKind::subtransientTypeJ => "http://iec.ch/TC57/CIM100#SynchronousMachineModelKind.subtransientTypeJ",
22            SynchronousMachineModelKind::subtransientSimplified => "http://iec.ch/TC57/CIM100#SynchronousMachineModelKind.subtransientSimplified",
23            SynchronousMachineModelKind::subtransientSimplifiedDirectAxis => "http://iec.ch/TC57/CIM100#SynchronousMachineModelKind.subtransientSimplifiedDirectAxis",
24        }
25    }
26}