Skip to main content

cimstructs/
InputSignalKind.rs

1/// Types of input signals. In dynamics modelling, commonly represented by the j parameter.
2#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
3pub enum InputSignalKind {
4    /// Input signal is rotor or shaft speed (angular frequency).
5    rotorSpeed,
6    /// Input signal is rotor or shaft angular frequency deviation.
7    rotorAngularFrequencyDeviation,
8    /// Input signal is bus voltage frequency. This could be a terminal frequency or remote frequency.
9    busFrequency,
10    /// Input signal is deviation of bus voltage frequency. This could be a terminal frequency deviation or remote frequency deviation.
11    busFrequencyDeviation,
12    /// Input signal is generator electrical power on rated S.
13    generatorElectricalPower,
14    /// Input signal is generator accelerating power.
15    generatorAcceleratingPower,
16    /// Input signal is bus voltage. This could be a terminal voltage or remote voltage.
17    busVoltage,
18    /// Input signal is derivative of bus voltage. This could be a terminal voltage derivative or remote voltage derivative.
19    busVoltageDerivative,
20    /// Input signal is amplitude of remote branch current.
21    branchCurrent,
22    /// Input signal is generator field current.
23    fieldCurrent,
24    /// Input signal is generator mechanical power.
25    generatorMechanicalPower,
26}
27
28impl InputSignalKind {
29    pub fn uri(&self) -> &'static str {
30        match self {
31            InputSignalKind::rotorSpeed => "http://iec.ch/TC57/CIM100#InputSignalKind.rotorSpeed",
32            InputSignalKind::rotorAngularFrequencyDeviation => "http://iec.ch/TC57/CIM100#InputSignalKind.rotorAngularFrequencyDeviation",
33            InputSignalKind::busFrequency => "http://iec.ch/TC57/CIM100#InputSignalKind.busFrequency",
34            InputSignalKind::busFrequencyDeviation => "http://iec.ch/TC57/CIM100#InputSignalKind.busFrequencyDeviation",
35            InputSignalKind::generatorElectricalPower => "http://iec.ch/TC57/CIM100#InputSignalKind.generatorElectricalPower",
36            InputSignalKind::generatorAcceleratingPower => "http://iec.ch/TC57/CIM100#InputSignalKind.generatorAcceleratingPower",
37            InputSignalKind::busVoltage => "http://iec.ch/TC57/CIM100#InputSignalKind.busVoltage",
38            InputSignalKind::busVoltageDerivative => "http://iec.ch/TC57/CIM100#InputSignalKind.busVoltageDerivative",
39            InputSignalKind::branchCurrent => "http://iec.ch/TC57/CIM100#InputSignalKind.branchCurrent",
40            InputSignalKind::fieldCurrent => "http://iec.ch/TC57/CIM100#InputSignalKind.fieldCurrent",
41            InputSignalKind::generatorMechanicalPower => "http://iec.ch/TC57/CIM100#InputSignalKind.generatorMechanicalPower",
42        }
43    }
44}