pub struct DERControlBase {
Show 30 fields pub op_mod_connect: Option<bool>, pub op_mod_energize: Option<bool>, pub op_mod_fixed_pf_absorb_w: Option<PowerFactorWithExcitation>, pub op_mod_fixed_pf_inject_w: Option<PowerFactorWithExcitation>, pub op_mod_fixed_var: Option<FixedVar>, pub op_mod_fixed_w: Option<SignedPercent>, pub op_mod_freq_droop: Option<FreqDroopType>, pub op_mod_freq_watt: Option<DERCurveLink>, pub op_mod_hfrt_may_trip: Option<DERCurveLink>, pub op_mod_hfrt_must_trip: Option<DERCurveLink>, pub op_mod_hvrt_may_trip: Option<DERCurveLink>, pub op_mod_hvrt_momentary_cessation: Option<DERCurveLink>, pub op_mod_hvrt_must_trip: Option<DERCurveLink>, pub op_mod_lfrt_may_trip: Option<DERCurveLink>, pub op_mod_lfrt_must_trip: Option<DERCurveLink>, pub op_mod_lvrt_may_trip: Option<DERCurveLink>, pub op_mod_lvrt_momentary_cessation: Option<DERCurveLink>, pub op_mod_lvrt_must_trip: Option<DERCurveLink>, pub op_mod_max_lim_w: Option<Percent>, pub op_mod_target_var: Option<ReactivePower>, pub op_mod_target_w: Option<ActivePower>, pub op_mod_volt_var: Option<DERCurveLink>, pub op_mod_volt_watt: Option<DERCurveLink>, pub op_mod_watt_pf: Option<DERCurveLink>, pub op_mod_watt_var: Option<DERCurveLink>, pub op_mod_imp_lim_w: Option<ActivePower>, pub op_mod_exp_lim_w: Option<ActivePower>, pub op_mod_gen_lim_w: Option<ActivePower>, pub op_mod_load_lim_w: Option<ActivePower>, pub ramp_tms: Option<Uint16>,
}
Available on crate feature der only.
Expand description

Distributed Energy Resource (DER) control values.

Fields§

§op_mod_connect: Option<bool>

Set DER as connected (true) or disconnected (false). Used in conjunction with ramp rate when re-connecting. Implies galvanic isolation.

§op_mod_energize: Option<bool>

Set DER as energized (true) or de-energized (false). Used in conjunction with ramp rate when re-energizing.

§op_mod_fixed_pf_absorb_w: Option<PowerFactorWithExcitation>

The opModFixedPFAbsorbW function specifies a requested fixed Power Factor (PF) setting for when active power is being absorbed. The actual displacement SHALL be within the limits established by setMinPFOverExcited and setMinPFUnderExcited. If issued simultaneously with other reactive power controls (e.g. opModFixedVar) the control resulting in least var magnitude SHOULD take precedence.

§op_mod_fixed_pf_inject_w: Option<PowerFactorWithExcitation>

The opModFixedPFInjectW function specifies a requested fixed Power Factor (PF) setting for when active power is being injected. The actual displacement SHALL be within the limits established by setMinPFOverExcited and setMinPFUnderExcited. If issued simultaneously with other reactive power controls (e.g. opModFixedVar) the control resulting in least var magnitude SHOULD take precedence.

§op_mod_fixed_var: Option<FixedVar>

The opModFixedVar function specifies the delivered or received reactive power setpoint. The context for the setpoint value is determined by refType and SHALL be one of %setMaxW, %setMaxVar, or %statVarAvail. If issued simultaneously with other reactive power controls (e.g. opModFixedPFInjectW) the control resulting in least var magnitude SHOULD take precedence.

§op_mod_fixed_w: Option<SignedPercent>

The opModFixedW function specifies a requested charge or discharge mode setpoint, in %setMaxChargeRateW if negative value or %setMaxW or %setMaxDischargeRateW if positive value (in hundredths).

§op_mod_freq_droop: Option<FreqDroopType>

Specifies a frequency-watt operation. This operation limits active power generation or consumption when the line frequency deviates from nominal by a specified amount.

§op_mod_freq_watt: Option<DERCurveLink>

Specify DERCurveLink for curveType == 0. The Frequency-Watt function limits active power generation or consumption when the line frequency deviates from nominal by a specified amount. The Frequency-Watt curve is specified as an array of Frequency-Watt pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a frequency in Hz. The y value specifies a corresponding active power output in %setMaxW.

§op_mod_hfrt_may_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 1. The High Frequency Ride-Through (HFRT) function is specified by one or two duration-frequency curves that define the operating region under high frequency conditions. Each HFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the “may trip” region.

§op_mod_hfrt_must_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 2. The High Frequency Ride-Through (HFRT) function is specified by a duration-frequency curve that defines the operating region under high frequency conditions. Each HFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the “must trip” region.

§op_mod_hvrt_may_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 3. The High Voltage Ride-Through (HVRT) function is specified by one, two, or three duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percentage voltage, defined as ((locally measured voltage - setVRefOfs / setVRef). This control specifies the “may trip” region.

§op_mod_hvrt_momentary_cessation: Option<DERCurveLink>

Specify DERCurveLink for curveType == 4. The High Voltage Ride-Through (HVRT) function is specified by duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the “momentary cessation” region.

§op_mod_hvrt_must_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 5. The High Voltage Ride-Through (HVRT) function is specified by duration-volt curves that define the operating region under high voltage conditions. Each HVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the “must trip” region.

§op_mod_lfrt_may_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 6. The Low Frequency Ride-Through (LFRT) function is specified by one or two duration-frequency curves that define the operating region under low frequency conditions. Each LFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the “may trip” region.

§op_mod_lfrt_must_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 7. The Low Frequency Ride-Through (LFRT) function is specified by a duration-frequency curve that defines the operating region under low frequency conditions. Each LFRT curve is specified by an array of duration-frequency pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given frequency in seconds). The y value of each pair specifies a frequency, in Hz. This control specifies the “must trip” region.

§op_mod_lvrt_may_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 8. The Low Voltage Ride-Through (LVRT) function is specified by one, two, or three duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the “may trip” region.

§op_mod_lvrt_momentary_cessation: Option<DERCurveLink>

Specify DERCurveLink for curveType == 9. The Low Voltage Ride-Through (LVRT) function is specified by duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the “momentary cessation” region.

§op_mod_lvrt_must_trip: Option<DERCurveLink>

Specify DERCurveLink for curveType == 10. The Low Voltage Ride-Through (LVRT) function is specified by duration-volt curves that define the operating region under low voltage conditions. Each LVRT curve is specified by an array of duration-volt pairs that will be interpolated into a piecewise linear function that defines an operating region. The x value of each pair specifies a duration (time at a given voltage in seconds). The y value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef). This control specifies the “must trip” region.

§op_mod_max_lim_w: Option<Percent>

The opModMaxLimW function sets the maximum active power generation level at the electrical coupling point as a percentage of set capacity (%setMaxW, in hundredths). This limitation may be met e.g. by reducing PV output or by using excess PV output to charge associated storage.

§op_mod_target_var: Option<ReactivePower>

Target reactive power, in var. This control is likely to be more useful for aggregators, as individual DERs may not be able to maintain a target setting.

§op_mod_target_w: Option<ActivePower>

Target output power, in Watts. This control is likely to be more useful for aggregators, as individual DERs may not be able to maintain a target setting.

§op_mod_volt_var: Option<DERCurveLink>

Specify DERCurveLink for curveType == 11. The static volt-var function provides over- or under-excited var compensation as a function of measured voltage. The volt-var curve is specified as an array of volt-var pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef) and SHOULD support a domain of at least 0 - 135. If VRef is present in DERCurve, then the x value of each pair is additionally multiplied by (VRef / 10000). The y value specifies a target var output interpreted as a signed percentage (-100 to 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW, %setMaxVar, or %statVarAvail.

§op_mod_volt_watt: Option<DERCurveLink>

Specify DERCurveLink for curveType == 12. The Volt-Watt reduces active power output as a function of measured voltage. The Volt-Watt curve is specified as an array of Volt-Watt pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies an effective percent voltage, defined as ((locally measured voltage - setVRefOfs) / setVRef) and SHOULD support a domain of at least 0 - 135. The y value specifies an active power output interpreted as a percentage (0 - 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW or %statWAvail.

§op_mod_watt_pf: Option<DERCurveLink>

Specify DERCurveLink for curveType == 13. The Watt-PF function varies Power Factor (PF) as a function of delivered active power. The Watt-PF curve is specified as an array of Watt-PF coordinates that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a watt setting in %setMaxW, (0 - 100). The PF output setting is a signed displacement in y value (PF sign SHALL be interpreted according to the EEI convention, where unity PF is considered unsigned). These settings are not expected to be updated very often during the life of the installation, therefore only a single curve is required. If issued simultaneously with other reactive power controls (e.g. opModFixedPFInjectW) the control resulting in least var magnitude SHOULD take precedence.

§op_mod_watt_var: Option<DERCurveLink>

Specify DERCurveLink for curveType == 14. The Watt-Var function varies vars as a function of delivered active power. The Watt-Var curve is specified as an array of Watt-Var pairs that are interpolated into a piecewise linear function with hysteresis. The x value of each pair specifies a watt setting in %setMaxW, (0-100). The y value specifies a target var output interpreted as a signed percentage (-100 to 100). The meaning of the y value is determined by yRefType and must be one of %setMaxW, %setMaxVar, or %statVarAvail.

§op_mod_imp_lim_w: Option<ActivePower>
Available on crate feature csip_aus only.

This is the constraint on the imported active power at the connection point.

§op_mod_exp_lim_w: Option<ActivePower>
Available on crate feature csip_aus only.

This is the constraint on the exported active power at the connection point.

§op_mod_gen_lim_w: Option<ActivePower>
Available on crate feature csip_aus only.

This is a constraint on the maxium allowable discharge rate, in Watts, specifically for a single physical device (or aggregation of devices, excluding uncontrolled devices) such as an EV charge station.

§op_mod_load_lim_w: Option<ActivePower>
Available on crate feature csip_aus only.

This is a constraint on the maximum allowable charge rate, in Watts, specifically for a single physical device (or aggregation of devices, excluding uncontrolled devices) such as an EV charge station.

§ramp_tms: Option<Uint16>

Requested ramp time, in hundredths of a second, for the device to transition from the current DERControl mode setting(s) to the new mode setting(s). If absent, use default ramp rate (setGradW). Resolution is 1/100 sec.

Implementations§

source§

impl DERControlBase

source

pub fn same_target(&self, other: &Self) -> bool

Determine if two DERControlBase instances target the same set of controls by whether they contain the same optional fields.

Trait Implementations§

source§

impl Clone for DERControlBase

source§

fn clone(&self) -> DERControlBase

Returns a copy 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 DERControlBase

source§

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

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

impl Default for DERControlBase

source§

fn default() -> DERControlBase

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

impl PartialEq<DERControlBase> for DERControlBase

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Validate for DERControlBase

source§

impl YaDeserialize for DERControlBase

source§

fn deserialize<R: Read>(reader: &mut Deserializer<R>) -> Result<Self, String>where Self: Sized,

source§

impl YaSerialize for DERControlBase

source§

fn name() -> &'static strwhere Self: Sized,

source§

fn serialize<W: Write>(&self, writer: &mut Serializer<W>) -> Result<(), String>where Self: Sized,

source§

fn serialize_attributes( &self, source_attributes: Vec<OwnedAttribute>, source_namespace: Namespace ) -> Result<(Vec<OwnedAttribute>, Namespace), String>where Self: Sized,

source§

impl Eq for DERControlBase

source§

impl StructuralEq for DERControlBase

source§

impl StructuralPartialEq for DERControlBase

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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 Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.
§

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

§

fn vzip(self) -> V

source§

impl<T> SEType for Twhere T: YaSerialize + YaDeserialize + Validate + RefUnwindSafe + Send + Sync + 'static,