CtmNetworkGenItem

Struct CtmNetworkGenItem 

Source
pub struct CtmNetworkGenItem {
Show 31 fields pub bus: Uid, pub cost_pg_model: Option<CtmNetworkGenItemCostPgModel>, pub cost_pg_parameters: Option<CtmNetworkGenItemCostPgParameters>, pub down_time_lb: Option<NonnegativeNumber>, pub ext: Option<Value>, pub forced_outage_rate: Option<f64>, pub in_service_time_lb: Option<NonnegativeNumber>, pub in_service_time_ub: Option<NonnegativeNumber>, pub mean_time_to_failure: Option<NonnegativeNumber>, pub mean_time_to_repair: Option<NonnegativeNumber>, pub name: Option<String>, pub nominal_mva: Option<PositiveNumber>, pub pg_delta_lb: Option<NonnegativeNumber>, pub pg_delta_ub: Option<NonnegativeNumber>, pub pg_lb: Option<CtmNetworkGenItemPgLb>, pub pg_ub: Option<CtmNetworkGenItemPgUb>, pub primary_source: Option<CtmNetworkGenItemPrimarySource>, pub primary_source_subtype: Option<CtmNetworkGenItemPrimarySourceSubtype>, pub qg_lb: Option<CtmNetworkGenItemQgLb>, pub qg_ub: Option<CtmNetworkGenItemQgUb>, pub scheduled_maintenance_rate: Option<f64>, pub service_required: Option<CtmNetworkGenItemServiceRequired>, pub shutdown_cost: Option<CtmNetworkGenItemShutdownCost>, pub startup_cost_cold: Option<CtmNetworkGenItemStartupCostCold>, pub startup_cost_hot: Option<CtmNetworkGenItemStartupCostHot>, pub startup_cost_warm: Option<CtmNetworkGenItemStartupCostWarm>, pub startup_time_hot: Option<NonnegativeNumber>, pub startup_time_warm: Option<NonnegativeNumber>, pub status: Status, pub uid: Uid, pub vm_setpoint: Option<CtmNetworkGenItemVmSetpoint>,
}
Expand description

structure to hold generator data

JSON schema
{
 "description": "structure to hold generator data",
 "type": "object",
 "required": [
   "bus",
   "status",
   "uid"
 ],
 "properties": {
   "bus": {
     "description": "uid of bus to which generator is connected to",
     "$ref": "#/$defs/uid"
   },
   "cost_pg_model": {
     "description": "type of generation cost model (i.e., function translating power/energy to money); POLYNOMIAL => cost_pg_parameters is an array with n+1 coefficients <a_i> for f(x) = a_0 + a_1 x^1 + ... + a_n x^n; PIECEWISE_LINEAR => cost_pg_parameters is a series of values <x_i, f_i> and cost (f) should be interpolated linearly in between points; MARGINAL_COST => cost_pg_parameters is a series of values <b_i, m_i>, where m_i is a marginal cost ($/MWh or $/(pu*h)) and b_i is the amoung of power (MWh or pu*h) sold at marginal cost m_i",
     "type": "string",
     "enum": [
       "POLYNOMIAL",
       "PIECEWISE_LINEAR",
       "MARGINAL_COST"
     ]
   },
   "cost_pg_parameters": {
     "description": "parameters of generation cost function, can be time dependent",
     "anyOf": [
       {
         "type": "array",
         "items": {
           "type": "number"
         }
       },
       {
         "$ref": "#/$defs/xy_pairs"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "down_time_lb": {
     "description": "[h] minimim time the unit can be out of service (a.k.a., minimum down time)",
     "$ref": "#/$defs/nonnegative_number"
   },
   "ext": {
     "description": "additional gen parameters currently not supported by CTM"
   },
   "forced_outage_rate": {
     "description": "[-] fraction of time the generator is out of service because of forced outages (i.e., hours out of service---because of failures---during a year, divided by 8760)",
     "type": "number",
     "maximum": 1.0,
     "minumum": 0
   },
   "in_service_time_lb": {
     "description": "[h] minimim time the unit can be in service (a.k.a., minimum up time)",
     "$ref": "#/$defs/nonnegative_number"
   },
   "in_service_time_ub": {
     "description": "[h] maximum time the unit can be in service (commitment == 1)",
     "$ref": "#/$defs/nonnegative_number"
   },
   "mean_time_to_failure": {
     "description": "[h] mean time to occurence of a failure; failures can be assumed to follow a Poisson process",
     "$ref": "#/$defs/nonnegative_number"
   },
   "mean_time_to_repair": {
     "description": "[h] mean time to repair a failure",
     "$ref": "#/$defs/nonnegative_number"
   },
   "name": {
     "description": "generator name",
     "type": "string"
   },
   "nominal_mva": {
     "description": "[MVA] nominal apparent power of generator (nameplate capacity)",
     "$ref": "#/$defs/positive_number"
   },
   "pg_delta_lb": {
     "description": "[MW/h or pu/h] maximum active power decrease per hour",
     "$ref": "#/$defs/nonnegative_number"
   },
   "pg_delta_ub": {
     "description": "[MW/h or pu/h] maximum active power increase per hour",
     "$ref": "#/$defs/nonnegative_number"
   },
   "pg_lb": {
     "description": "[MW or pu] lower bound of active power injection (rectangular operating zone)",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "pg_ub": {
     "description": "[MW or pu] upper bound of active power injection (rectangular operating zone)",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "primary_source": {
     "description": "primary energy source",
     "type": "string",
     "enum": [
       "COAL",
       "OIL",
       "GAS",
       "NUCLEAR",
       "BIOMASS",
       "GEOTHERMAL",
       "SOLAR",
       "WIND",
       "HYDRO",
       "OTHER"
     ]
   },
   "primary_source_subtype": {
     "description": "subtype of primary energy source; thermal classification taken from https://www.eia.gov/survey/form/eia_923/instructions.pdf",
     "type": "string",
     "enum": [
       "ANTRHC_BITMN_COAL",
       "WASTE_COAL",
       "DISTILLATE_FUEL_OIL",
       "WASTE_OIL",
       "PETROLEUM_COKE",
       "RESIDUAL_FUEL_OIL",
       "NATURAL_GAS",
       "OTHER_GAS",
       "NUCLEAR",
       "AG_BIPRODUCT",
       "MUNICIPAL_WASTE",
       "WOOD_WASTE",
       "GEOTHERMAL",
       "SOLAR_PV",
       "SOLAR_CSP",
       "WIND_ONSHORE",
       "WIND_OFFSHORE",
       "HYDRO_RUN_OF_THE_RIVER",
       "HYDRO_DAM",
       "HYDRO_PUMPED_STORAGE",
       "OTHER"
     ]
   },
   "qg_lb": {
     "description": "[MVAr or pu] lower bound of reactive power injection (rectangular operating zone)",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "qg_ub": {
     "description": "[MVAr or pu] upper bound of reactive power injection (rectangular operating zone)",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "scheduled_maintenance_rate": {
     "description": "[-] fraction of time the generator is out of service because of scheduled maintenance (i.e., hours out of service---because of scheduled maintenance---during a year, divided by 8760)",
     "type": "number",
     "maximum": 1.0,
     "minumum": 0
   },
   "service_required": {
     "description": "whether generator must be in service (e.g., nuclear power plant) or out of service (e.g., generator during maintenance or after an outage); 0 => no requirement, 1 => fixed in service, 2 => fixed out of service",
     "anyOf": [
       {
         "type": "integer",
         "maximum": 2.0,
         "minimum": 0.0
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "shutdown_cost": {
     "description": "[$] cost of shutting down the unit",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "startup_cost_cold": {
     "description": "[$] cost of starting the unit after being off > startup_time_warm hours",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "startup_cost_hot": {
     "description": "[$] cost of starting the unit after being off <= startup_time_hot hours",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "startup_cost_warm": {
     "description": "[$] cost of starting the unit after being off > startup_time_hot hours, but <= startup_time_warm hours",
     "anyOf": [
       {
         "type": "number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   },
   "startup_time_hot": {
     "description": "[h] maximum time the unit can be off before a hot startup",
     "$ref": "#/$defs/nonnegative_number"
   },
   "startup_time_warm": {
     "description": "[h] maximum time the unit can be off before a warm startup",
     "$ref": "#/$defs/nonnegative_number"
   },
   "status": {
     "$ref": "#/$defs/status"
   },
   "uid": {
     "$ref": "#/$defs/uid"
   },
   "vm_setpoint": {
     "description": "[kV or pu] target voltage magnitude of the bus that this generator connects to",
     "anyOf": [
       {
         "$ref": "#/$defs/positive_number"
       },
       {
         "$ref": "#/$defs/time_series_reference"
       }
     ]
   }
 }
}

Fields§

§bus: Uid

uid of bus to which generator is connected to

§cost_pg_model: Option<CtmNetworkGenItemCostPgModel>

type of generation cost model (i.e., function translating power/energy to money); POLYNOMIAL => cost_pg_parameters is an array with n+1 coefficients <a_i> for f(x) = a_0 + a_1 x^1 + … + a_n x^n; PIECEWISE_LINEAR => cost_pg_parameters is a series of values <x_i, f_i> and cost (f) should be interpolated linearly in between points; MARGINAL_COST => cost_pg_parameters is a series of values <b_i, m_i>, where m_i is a marginal cost ($/MWh or $/(puh)) and b_i is the amoung of power (MWh or puh) sold at marginal cost m_i

§cost_pg_parameters: Option<CtmNetworkGenItemCostPgParameters>

parameters of generation cost function, can be time dependent

§down_time_lb: Option<NonnegativeNumber>

[h] minimim time the unit can be out of service (a.k.a., minimum down time)

§ext: Option<Value>

additional gen parameters currently not supported by CTM

§forced_outage_rate: Option<f64>§in_service_time_lb: Option<NonnegativeNumber>

[h] minimim time the unit can be in service (a.k.a., minimum up time)

§in_service_time_ub: Option<NonnegativeNumber>

[h] maximum time the unit can be in service (commitment == 1)

§mean_time_to_failure: Option<NonnegativeNumber>

[h] mean time to occurence of a failure; failures can be assumed to follow a Poisson process

§mean_time_to_repair: Option<NonnegativeNumber>

[h] mean time to repair a failure

§name: Option<String>

generator name

§nominal_mva: Option<PositiveNumber>

[MVA] nominal apparent power of generator (nameplate capacity)

§pg_delta_lb: Option<NonnegativeNumber>

[MW/h or pu/h] maximum active power decrease per hour

§pg_delta_ub: Option<NonnegativeNumber>

[MW/h or pu/h] maximum active power increase per hour

§pg_lb: Option<CtmNetworkGenItemPgLb>

[MW or pu] lower bound of active power injection (rectangular operating zone)

§pg_ub: Option<CtmNetworkGenItemPgUb>

[MW or pu] upper bound of active power injection (rectangular operating zone)

§primary_source: Option<CtmNetworkGenItemPrimarySource>

primary energy source

§primary_source_subtype: Option<CtmNetworkGenItemPrimarySourceSubtype>

subtype of primary energy source; thermal classification taken from https://www.eia.gov/survey/form/eia_923/instructions.pdf

§qg_lb: Option<CtmNetworkGenItemQgLb>

[MVAr or pu] lower bound of reactive power injection (rectangular operating zone)

§qg_ub: Option<CtmNetworkGenItemQgUb>

[MVAr or pu] upper bound of reactive power injection (rectangular operating zone)

§scheduled_maintenance_rate: Option<f64>§service_required: Option<CtmNetworkGenItemServiceRequired>

whether generator must be in service (e.g., nuclear power plant) or out of service (e.g., generator during maintenance or after an outage); 0 => no requirement, 1 => fixed in service, 2 => fixed out of service

§shutdown_cost: Option<CtmNetworkGenItemShutdownCost>

[$] cost of shutting down the unit

§startup_cost_cold: Option<CtmNetworkGenItemStartupCostCold>

[$] cost of starting the unit after being off > startup_time_warm hours

§startup_cost_hot: Option<CtmNetworkGenItemStartupCostHot>

[$] cost of starting the unit after being off <= startup_time_hot hours

§startup_cost_warm: Option<CtmNetworkGenItemStartupCostWarm>

[$] cost of starting the unit after being off > startup_time_hot hours, but <= startup_time_warm hours

§startup_time_hot: Option<NonnegativeNumber>

[h] maximum time the unit can be off before a hot startup

§startup_time_warm: Option<NonnegativeNumber>

[h] maximum time the unit can be off before a warm startup

§status: Status§uid: Uid§vm_setpoint: Option<CtmNetworkGenItemVmSetpoint>

[kV or pu] target voltage magnitude of the bus that this generator connects to

Implementations§

Trait Implementations§

Source§

impl Clone for CtmNetworkGenItem

Source§

fn clone(&self) -> CtmNetworkGenItem

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CtmNetworkGenItem

Source§

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

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

impl<'de> Deserialize<'de> for CtmNetworkGenItem

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 From<&CtmNetworkGenItem> for CtmNetworkGenItem

Source§

fn from(value: &CtmNetworkGenItem) -> Self

Converts to this type from the input type.
Source§

impl From<CtmNetworkGenItem> for CtmNetworkGenItem

Source§

fn from(value: CtmNetworkGenItem) -> Self

Converts to this type from the input type.
Source§

impl Serialize for CtmNetworkGenItem

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

impl TryFrom<CtmNetworkGenItem> for CtmNetworkGenItem

Source§

type Error = ConversionError

The type returned in the event of a conversion error.
Source§

fn try_from(value: CtmNetworkGenItem) -> Result<Self, ConversionError>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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