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: Uiduid 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§
Source§impl CtmNetworkGenItem
impl CtmNetworkGenItem
pub fn builder() -> CtmNetworkGenItem
Trait Implementations§
Source§impl Clone for CtmNetworkGenItem
impl Clone for CtmNetworkGenItem
Source§fn clone(&self) -> CtmNetworkGenItem
fn clone(&self) -> CtmNetworkGenItem
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CtmNetworkGenItem
impl Debug for CtmNetworkGenItem
Source§impl<'de> Deserialize<'de> for CtmNetworkGenItem
impl<'de> Deserialize<'de> for CtmNetworkGenItem
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<&CtmNetworkGenItem> for CtmNetworkGenItem
impl From<&CtmNetworkGenItem> for CtmNetworkGenItem
Source§fn from(value: &CtmNetworkGenItem) -> Self
fn from(value: &CtmNetworkGenItem) -> Self
Source§impl From<CtmNetworkGenItem> for CtmNetworkGenItem
impl From<CtmNetworkGenItem> for CtmNetworkGenItem
Source§fn from(value: CtmNetworkGenItem) -> Self
fn from(value: CtmNetworkGenItem) -> Self
Source§impl Serialize for CtmNetworkGenItem
impl Serialize for CtmNetworkGenItem
Source§impl TryFrom<CtmNetworkGenItem> for CtmNetworkGenItem
impl TryFrom<CtmNetworkGenItem> for CtmNetworkGenItem
Source§type Error = ConversionError
type Error = ConversionError
Source§fn try_from(value: CtmNetworkGenItem) -> Result<Self, ConversionError>
fn try_from(value: CtmNetworkGenItem) -> Result<Self, ConversionError>
Auto Trait Implementations§
impl Freeze for CtmNetworkGenItem
impl RefUnwindSafe for CtmNetworkGenItem
impl Send for CtmNetworkGenItem
impl Sync for CtmNetworkGenItem
impl Unpin for CtmNetworkGenItem
impl UnwindSafe for CtmNetworkGenItem
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)