Component Models#
Topology components#
- pydantic model r2x.models.Area#
Collection of buses in a given region.
Show JSON schema
{ "title": "Area", "description": "Collection of buses in a given region.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
available (bool)
category (str | None)
ext (dict)
load_response (float)
name (str)
peak_active_power (float)
peak_reactive_power (float)
uuid (uuid.UUID)
- field available: Annotated[bool, Field(description='If the component is available.')] = True#
If the component is available.
- field category: Annotated[str, Field(description='Category that this component belongs to.')] | None = None#
- field load_response: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).')] = 0.0#
Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).
- field peak_active_power: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Peak active power in the area')] = 0.0#
Peak active power in the area
- Constraints:
ge = 0
- pydantic model r2x.models.LoadZone#
Collection of buses for electricity price analysis.
Show JSON schema
{ "title": "LoadZone", "description": "Collection of buses for electricity price analysis.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
peak_active_power (float)
peak_reactive_power (float)
- field peak_active_power: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Peak active power in the area')] = 0.0#
Peak active power in the area
- Constraints:
ge = 0
- field peak_reactive_power: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Peak reactive power in the area')] = 0.0#
Peak reactive power in the area
- Constraints:
ge = 0
- classmethod example()#
Return an example instance of the model.
- Raises:
NotImplementedError – Raised if the model does not implement this method.
- Return type:
- pydantic model r2x.models.ACBus#
Power-system AC bus.
Show JSON schema
{ "title": "ACBus", "description": "Power-system AC bus.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name", "number" ] }
- Fields:
angle (float | None)
area (r2x.models.topology.Area | None)
available (bool)
base_voltage (r2x.units.Voltage | None)
bustype (r2x.enums.ACBusTypes | None)
category (str | None)
ext (dict)
load_zone (r2x.models.topology.LoadZone | None)
magnitude (float | None)
name (str)
number (int)
uuid (uuid.UUID)
voltage_limits (r2x.models.core.MinMax | None)
- pydantic model r2x.models.DCBus#
Power-system DC Bus.
Show JSON schema
{ "title": "DCBus", "description": "Power-system DC Bus.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name", "number" ] }
- Fields:
area (r2x.models.topology.Area | None)
available (bool)
base_voltage (r2x.units.Voltage | None)
bustype (r2x.enums.ACBusTypes | None)
category (str | None)
ext (dict)
load_zone (r2x.models.topology.LoadZone | None)
magnitude (float | None)
name (str)
number (int)
uuid (uuid.UUID)
voltage_limits (r2x.models.core.MinMax | None)
- pydantic model r2x.models.DCBranch#
Class representing a DC connection between components.
Show JSON schema
{ "title": "DCBranch", "description": "Class representing a DC connection between components.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "from_bus": { "$ref": "#/$defs/DCBus", "description": "Bus connected upstream from the arc." }, "to_bus": { "$ref": "#/$defs/DCBus", "description": "Bus connected downstream from the arc." } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "DCBus": { "additionalProperties": false, "description": "Power-system DC Bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "DCBus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "from_bus", "to_bus" ] }
- Fields:
available (bool)
category (str | None)
ext (dict)
from_bus (r2x.models.topology.DCBus)
name (str)
services (list[r2x.models.core.Service] | None)
to_bus (r2x.models.topology.DCBus)
uuid (uuid.UUID)
- pydantic model r2x.models.ACBranch#
Class representing an AC connection between components.
Show JSON schema
{ "title": "ACBranch", "description": "Class representing an AC connection between components.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "arc": { "anyOf": [ { "$ref": "#/$defs/Arc" }, { "type": "null" } ], "default": null, "description": "The branch's connections." }, "from_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected upstream from the arc." }, "to_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected downstream from the arc." }, "r": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Resistance of the branch", "title": "R" }, "x": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Reactance of the branch", "title": "X" }, "rating": { "anyOf": [ { "description": "Thermal rating of the line.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Rating" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Arc": { "additionalProperties": false, "description": "Topological directed edge connecting two buses", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "default": "", "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "from": { "$ref": "#/$defs/Bus", "description": "The initial bus" }, "to": { "$ref": "#/$defs/Bus", "description": "The terminal bus" } }, "required": [ "from", "to" ], "title": "Arc", "type": "object" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "from_bus", "to_bus" ] }
- Fields:
arc (r2x.models.topology.Arc | None)
available (bool)
category (str | None)
ext (dict)
from_bus (r2x.models.topology.ACBus)
name (str)
r (float | None)
rating (r2x.units.ActivePower | None)
services (list[r2x.models.core.Service] | None)
to_bus (r2x.models.topology.ACBus)
uuid (uuid.UUID)
x (float | None)
- field arc: Annotated[Arc | None, FieldInfo(annotation=NoneType, required=True, description="The branch's connections.")] = None#
The branch’s connections.
- field from_bus: Annotated[ACBus, FieldInfo(annotation=NoneType, required=True, description='Bus connected upstream from the arc.')] [Required]#
Bus connected upstream from the arc.
- field r: Annotated[float | None, FieldInfo(annotation=NoneType, required=True, description='Resistance of the branch')] = None#
Resistance of the branch
- field rating: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Thermal rating of the line.', metadata=[Ge(ge=0)])] | None = None#
- pydantic model r2x.models.MonitoredLine#
Class representing an AC transmission line.
Show JSON schema
{ "title": "MonitoredLine", "description": "Class representing an AC transmission line.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "arc": { "anyOf": [ { "$ref": "#/$defs/Arc" }, { "type": "null" } ], "default": null, "description": "The branch's connections." }, "from_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected upstream from the arc." }, "to_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected downstream from the arc." }, "r": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Resistance of the branch", "title": "R" }, "x": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Reactance of the branch", "title": "X" }, "rating": { "anyOf": [ { "description": "Thermal rating of the line.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Rating" }, "b": { "anyOf": [ { "$ref": "#/$defs/FromTo_ToFrom" }, { "type": "null" } ], "default": null, "description": "Shunt susceptance in pu" }, "g": { "anyOf": [ { "$ref": "#/$defs/FromTo_ToFrom" }, { "type": "null" } ], "default": null, "description": "Shunt conductance in pu" }, "rating_up": { "anyOf": [ { "description": "Forward rating of the line.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Rating Up" }, "rating_down": { "anyOf": [ { "description": "Reverse rating of the line.", "le": 0 }, { "type": "null" } ], "default": null, "title": "Rating Down" }, "losses": { "anyOf": [ { "description": "Power losses on the line." }, { "type": "null" } ], "default": null, "title": "Losses" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Arc": { "additionalProperties": false, "description": "Topological directed edge connecting two buses", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "default": "", "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "from": { "$ref": "#/$defs/Bus", "description": "The initial bus" }, "to": { "$ref": "#/$defs/Bus", "description": "The terminal bus" } }, "required": [ "from", "to" ], "title": "Arc", "type": "object" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "FromTo_ToFrom": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "From To" }, { "title": "To From" } ], "type": "array" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "from_bus", "to_bus" ] }
- Fields:
arc ()
available ()
b (Annotated[r2x.models.core.FromTo_ToFrom | None, FieldInfo(annotation=NoneType, required=True, description='Shunt susceptance in pu')])
category ()
ext ()
from_bus ()
g (Annotated[r2x.models.core.FromTo_ToFrom | None, FieldInfo(annotation=NoneType, required=True, description='Shunt conductance in pu')])
losses (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Power losses on the line.')] | None)
name ()
r ()
rating ()
rating_down (Annotated[r2x.units.ActivePower, FieldInfo(annotation=NoneType, required=True, description='Reverse rating of the line.', metadata=[Le(le=0)])] | None)
rating_up (Annotated[r2x.units.ActivePower, FieldInfo(annotation=NoneType, required=True, description='Forward rating of the line.', metadata=[Ge(ge=0)])] | None)
services ()
to_bus ()
uuid ()
x ()
- field b: Annotated[FromTo_ToFrom | None, FieldInfo(annotation=NoneType, required=True, description='Shunt susceptance in pu')] = None#
Shunt susceptance in pu
- field g: Annotated[FromTo_ToFrom | None, FieldInfo(annotation=NoneType, required=True, description='Shunt conductance in pu')] = None#
Shunt conductance in pu
- field losses: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Power losses on the line.')] | None = None#
- pydantic model r2x.models.TModelHVDCLine#
Class representing a DC transmission line.
Show JSON schema
{ "title": "TModelHVDCLine", "description": "Class representing a DC transmission line.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "from_bus": { "$ref": "#/$defs/DCBus", "description": "Bus connected upstream from the arc." }, "to_bus": { "$ref": "#/$defs/DCBus", "description": "Bus connected downstream from the arc." }, "rating_up": { "anyOf": [ { "description": "Forward rating of the line.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Rating Up" }, "rating_down": { "anyOf": [ { "description": "Reverse rating of the line.", "maximum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Rating Down" }, "losses": { "default": 0, "description": "Power losses on the line.", "minimum": 0.0, "title": "Losses", "type": "number" }, "resistance": { "anyOf": [ { "description": "Resistance of the line in p.u.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": 0, "title": "Resistance" }, "inductance": { "anyOf": [ { "description": "Inductance of the line in p.u.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": 0, "title": "Inductance" }, "capacitance": { "anyOf": [ { "description": "Capacitance of the line in p.u.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": 0, "title": "Capacitance" } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "DCBus": { "additionalProperties": false, "description": "Power-system DC Bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "DCBus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "from_bus", "to_bus" ] }
- Fields:
available ()
capacitance (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Capacitance of the line in p.u.')] | None)
category ()
ext ()
from_bus ()
inductance (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Inductance of the line in p.u.')] | None)
losses (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Power losses on the line.')])
name ()
rating_down (Annotated[float, annotated_types.Le(le=0), FieldInfo(annotation=NoneType, required=True, description='Reverse rating of the line.')] | None)
rating_up (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Forward rating of the line.')] | None)
resistance (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Resistance of the line in p.u.')] | None)
services ()
to_bus ()
uuid ()
- field capacitance: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Capacitance of the line in p.u.')] | None = 0#
- field inductance: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Inductance of the line in p.u.')] | None = 0#
- field losses: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Power losses on the line.')] = 0#
Power losses on the line.
- Constraints:
ge = 0
- field rating_down: Annotated[float, Le(le=0), FieldInfo(annotation=NoneType, required=True, description='Reverse rating of the line.')] | None = None#
- pydantic model r2x.models.Transformer2W#
Class representing a 2-W transformer.
Show JSON schema
{ "title": "Transformer2W", "description": "Class representing a 2-W transformer.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "arc": { "anyOf": [ { "$ref": "#/$defs/Arc" }, { "type": "null" } ], "default": null, "description": "The branch's connections." }, "from_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected upstream from the arc." }, "to_bus": { "$ref": "#/$defs/ACBus", "description": "Bus connected downstream from the arc." }, "r": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Resistance of the branch", "title": "R" }, "x": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Reactance of the branch", "title": "X" }, "rating": { "anyOf": [ { "description": "Thermal rating of the line.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Rating" }, "active_power_flow": { "minimum": 0.0, "title": "Active Power Flow", "type": "number" }, "reactive_power_flow": { "minimum": 0.0, "title": "Reactive Power Flow", "type": "number" }, "primary_shunt": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Primary Shunt" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Arc": { "additionalProperties": false, "description": "Topological directed edge connecting two buses", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "default": "", "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "from": { "$ref": "#/$defs/Bus", "description": "The initial bus" }, "to": { "$ref": "#/$defs/Bus", "description": "The terminal bus" } }, "required": [ "from", "to" ], "title": "Arc", "type": "object" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "from_bus", "to_bus", "active_power_flow", "reactive_power_flow" ] }
- Fields:
active_power_flow (Annotated[float, annotated_types.Ge(ge=0)])
arc ()
available ()
category ()
ext ()
from_bus ()
name ()
primary_shunt (float | None)
r ()
rating ()
reactive_power_flow (Annotated[float, annotated_types.Ge(ge=0)])
services ()
to_bus ()
uuid ()
x ()
Load components#
- pydantic model r2x.models.PowerLoad#
Class representing a Load object.
Show JSON schema
{ "title": "PowerLoad", "description": "Class representing a Load object.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "$ref": "#/$defs/Bus", "description": "Point of injection." }, "active_power": { "anyOf": [ { "description": "Initial steady-state active power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Active Power" }, "reactive_power": { "anyOf": [ { "description": "Reactive Power of Load at the bus in MW.", "exclusiveMinimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Reactive Power" }, "max_active_power": { "anyOf": [ { "description": "Max Load at the bus in MW.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Max Active Power" }, "max_reactive_power": { "anyOf": [ { "description": " Initial steady-state reactive power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Max Reactive Power" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "operation_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Operation Cost" } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "bus" ] }
- Fields:
active_power (r2x.units.ActivePower | None)
base_power (r2x.units.ApparentPower | None)
max_active_power (r2x.units.ActivePower | None)
max_reactive_power (r2x.units.ActivePower | None)
operation_cost (float | None)
reactive_power (float | None)
- field active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Initial steady-state active power demand.', metadata=[Gt(gt=0)])] | None = None#
- field base_power: Annotated[ApparentPower | None, FieldInfo(annotation=NoneType, required=True, description='Base power of the unit (MVA) for per unitization.', metadata=[Gt(gt=0)])] = None#
Base power of the unit (MVA) for per unitization.
- Constraints:
gt = 0
- field max_active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Max Load at the bus in MW.', metadata=[Gt(gt=0)])] | None = None#
- field max_reactive_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description=' Initial steady-state reactive power demand.', metadata=[Gt(gt=0)])] | None = None#
- field reactive_power: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Reactive Power of Load at the bus in MW.', metadata=[Gt(gt=0)])] | None = None#
- classmethod example()#
Return an example instance of the model.
- Raises:
NotImplementedError – Raised if the model does not implement this method.
- Return type:
- pydantic model r2x.models.InterruptiblePowerLoad#
A static interruptible power load.
Show JSON schema
{ "title": "InterruptiblePowerLoad", "description": "A static interruptible power load.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "$ref": "#/$defs/Bus", "description": "Point of injection." }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "active_power": { "anyOf": [ { "description": "Initial steady-state active power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Active Power" }, "reactive_power": { "anyOf": [ { "description": "Reactive Power of Load at the bus in MW.", "exclusiveMinimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Reactive Power" }, "max_active_power": { "anyOf": [ { "description": "Max Load at the bus in MW.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Max Active Power" }, "max_reactive_power": { "anyOf": [ { "description": " Initial steady-state reactive power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Max Reactive Power" }, "operation_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Operation Cost" } }, "$defs": { "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "bus" ] }
- Fields:
active_power (r2x.units.ActivePower | None)
base_power (r2x.units.ApparentPower | None)
max_active_power (r2x.units.ActivePower | None)
max_reactive_power (r2x.units.ActivePower | None)
operation_cost (float | None)
reactive_power (float | None)
- field active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Initial steady-state active power demand.', metadata=[Gt(gt=0)])] | None = None#
- field base_power: Annotated[ApparentPower | None, FieldInfo(annotation=NoneType, required=True, description='Base power of the unit (MVA) for per unitization.', metadata=[Gt(gt=0)])] = None#
Base power of the unit (MVA) for per unitization.
- Constraints:
gt = 0
- field max_active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Max Load at the bus in MW.', metadata=[Ge(ge=0)])] | None = None#
Generator models#
- pydantic model r2x.models.Generator#
Abstract generator class.
Show JSON schema
{ "title": "Generator", "description": "Abstract generator class.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power (r2x.units.ActivePower)
active_power_limits (r2x.models.core.MinMax | None)
available (bool)
base_mva (float)
base_power (r2x.units.ApparentPower | None)
bus (r2x.models.topology.ACBus | None)
category (str | None)
ext (dict)
forced_outage_rate (r2x.units.Percentage | None)
mean_time_to_repair (r2x.units.Time | None)
min_down_time (r2x.units.Time | None)
min_rated_capacity (r2x.units.ActivePower)
min_up_time (r2x.units.Time | None)
must_run (int | None)
name (str)
planned_outage_rate (r2x.units.Percentage | None)
prime_mover_type (r2x.enums.PrimeMoversType | None)
ramp_down (r2x.units.PowerRate | None)
ramp_up (r2x.units.PowerRate | None)
rating (r2x.units.ApparentPower | None)
reactive_power (r2x.units.ApparentPower | None)
reactive_power_limits (r2x.models.core.MinMax | None)
services (list[r2x.models.core.Service] | None)
shutdown_cost (float | None)
startup_cost (float | None)
unit_type (r2x.enums.PrimeMoversType | None)
uuid (uuid.UUID)
vom_price (r2x.units.VOMPrice | None)
- field active_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.')] = <Quantity(0.0, 'megawatt')>#
Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.
- field active_power_limits: Annotated[MinMax | None, FieldInfo(annotation=NoneType, required=True, description='Maximum output power rating of the unit (MVA).')] = None#
Maximum output power rating of the unit (MVA).
- field available: Annotated[bool, Field(description='If the component is available.')] = True#
If the component is available.
- field base_power: Annotated[ApparentPower | None, FieldInfo(annotation=NoneType, required=True, description='Base power of the unit (MVA) for per unitization.', metadata=[Gt(gt=0)])] = None#
Base power of the unit (MVA) for per unitization.
- Constraints:
gt = 0
- field bus: Annotated[ACBus, FieldInfo(annotation=NoneType, required=True, description='Bus where the generator is connected.')] | None = None#
- field category: Annotated[str, Field(description='Category that this component belongs to.')] | None = None#
- field forced_outage_rate: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Expected level of unplanned outages in percent.')] | None = None#
- field mean_time_to_repair: Annotated[Time, FieldInfo(annotation=NoneType, required=True, description='Total hours to repair after outage occur.', metadata=[Gt(gt=0)])] | None = None#
- field min_down_time: Annotated[Time, FieldInfo(annotation=NoneType, required=True, description='Minimum down time in hours for UC decision.', metadata=[Ge(ge=0)])] | None = None#
- field min_rated_capacity: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Minimum rated power generation.')] = <Quantity(0, 'megawatt')>#
Minimum rated power generation.
- field min_up_time: Annotated[Time, FieldInfo(annotation=NoneType, required=True, description='Minimum up time in hours for UC decision.', metadata=[Ge(ge=0)])] | None = None#
- field must_run: Annotated[int | None, FieldInfo(annotation=NoneType, required=True, description='If we need to force the dispatch of the device.')] = None#
If we need to force the dispatch of the device.
- field planned_outage_rate: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Expected level of planned outages in percent.')] | None = None#
- field prime_mover_type: Annotated[PrimeMoversType, FieldInfo(annotation=NoneType, required=True, description='Prime mover technology according to EIA 923.')] | None = None#
- field ramp_down: Annotated[PowerRate, FieldInfo(annotation=NoneType, required=True, description='Ramping rate on the negative direction.')] | None = None#
- field ramp_up: Annotated[PowerRate, FieldInfo(annotation=NoneType, required=True, description='Ramping rate on the positve direction.')] | None = None#
- field rating: Annotated[ApparentPower | None, FieldInfo(annotation=NoneType, required=True, description='Maximum output power rating of the unit (MVA).', metadata=[Ge(ge=0)])] = <Quantity(1, 'megavolt_ampere')>#
Maximum output power rating of the unit (MVA).
- Constraints:
ge = 0
- field reactive_power: Annotated[ApparentPower | None, FieldInfo(annotation=NoneType, required=True, description='Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.')] = <Quantity(0.0, 'megavolt_ampere')>#
Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.
- field reactive_power_limits: Annotated[MinMax | None, FieldInfo(annotation=NoneType, required=True, description='Maximum output power rating of the unit (MVA).')] = None#
Maximum output power rating of the unit (MVA).
- field services: Annotated[list[Service], Field(description='Services that this component contributes to.', default_factory=list)] | None = None#
- field shutdown_cost: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Cost in $ of shuting down a unit.')] | None = None#
- field startup_cost: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Cost in $ of starting a unit.')] | None = None#
- field unit_type: Annotated[PrimeMoversType | None, FieldInfo(annotation=NoneType, required=True, description='Prime mover technology according to EIA 923.')] = None#
Prime mover technology according to EIA 923.
- field uuid: UUID [Optional]#
- field vom_price: Annotated[VOMPrice, FieldInfo(annotation=NoneType, required=True, description='Variable operational price $/MWh.')] | None = None#
- assign_new_uuid()#
Generate a new UUID.
- check_component_addition()#
Perform checks on the component before adding it to a system.
- Return type:
None
- classmethod construct(_fields_set=None, **values)#
- copy(*, include=None, exclude=None, update=None, deep=False)#
Returns a copy of the model.
- !!! warning “Deprecated”
This method is now deprecated; use model_copy instead.
If you need include or exclude, use:
`python {test="skip" lint="skip"} data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `
- Parameters:
include (AbstractSetIntStr | MappingIntStrAny | None) – Optional set or mapping specifying which fields to include in the copied model.
exclude (AbstractSetIntStr | MappingIntStrAny | None) – Optional set or mapping specifying which fields to exclude in the copied model.
update (Dict[str, Any] | None) – Optional dictionary of field-value pairs to override field values in the copied model.
deep (bool) – If True, the values of fields that are Pydantic models will be deep-copied.
- Returns:
A copy of the model with included, excluded and updated fields as specified.
- Return type:
Self
- dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)#
- Parameters:
include (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None)
exclude (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None)
by_alias (bool)
exclude_unset (bool)
exclude_defaults (bool)
exclude_none (bool)
- Return type:
- classmethod example()#
Return an example instance of the model.
- Raises:
NotImplementedError – Raised if the model does not implement this method.
- Return type:
InfraSysBaseModelWithIdentifers
- json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)#
- Parameters:
include (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None)
exclude (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None)
by_alias (bool)
exclude_unset (bool)
exclude_defaults (bool)
exclude_none (bool)
models_as_dict (bool)
dumps_kwargs (Any)
- Return type:
- classmethod model_construct(_fields_set=None, **values)#
Creates a new instance of the Model class with validated data.
Creates a new model setting __dict__ and __pydantic_fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed.
- !!! note
model_construct() generally respects the model_config.extra setting on the provided model. That is, if model_config.extra == ‘allow’, then all extra passed values are added to the model instance’s __dict__ and __pydantic_extra__ fields. If model_config.extra == ‘ignore’ (the default), then all extra passed values are ignored. Because no validation is performed with a call to model_construct(), having model_config.extra == ‘forbid’ does not result in an error if extra values are passed, but they will be ignored.
- Parameters:
_fields_set (set[str] | None) – A set of field names that were originally explicitly set during instantiation. If provided, this is directly used for the [model_fields_set][pydantic.BaseModel.model_fields_set] attribute. Otherwise, the field names from the values argument will be used.
values (Any) – Trusted or pre-validated data dictionary.
- Returns:
A new instance of the Model class with validated data.
- Return type:
- model_copy(*, update=None, deep=False)#
Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#model_copy
Returns a copy of the model.
- model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)#
Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#modelmodel_dump
Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
- Parameters:
mode (Literal['json', 'python'] | str) – The mode in which to_python should run. If mode is ‘json’, the output will only contain JSON serializable types. If mode is ‘python’, the output may contain non-JSON-serializable Python objects.
include (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None) – A set of fields to include in the output.
exclude (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None) – A set of fields to exclude from the output.
context (Any | None) – Additional context to pass to the serializer.
by_alias (bool) – Whether to use the field’s alias in the dictionary key if defined.
exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.
exclude_defaults (bool) – Whether to exclude fields that are set to their default value.
exclude_none (bool) – Whether to exclude fields that have a value of None.
round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].
warnings (bool | Literal['none', 'warn', 'error']) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].
serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.
- Returns:
A dictionary representation of the model.
- Return type:
- model_dump_custom(*args, **kwargs)#
Custom serialization for this package
- model_dump_json(*, indent=None, include=None, exclude=None, context=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, round_trip=False, warnings=True, serialize_as_any=False)#
Usage docs: https://docs.pydantic.dev/2.10/concepts/serialization/#modelmodel_dump_json
Generates a JSON representation of the model using Pydantic’s to_json method.
- Parameters:
indent (int | None) – Indentation to use in the JSON output. If None is passed, the output will be compact.
include (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None) – Field(s) to include in the JSON output.
exclude (Set[int] | Set[str] | Mapping[int, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | Mapping[str, Set[int] | Set[str] | Mapping[int, IncEx | bool] | Mapping[str, IncEx | bool] | bool] | None) – Field(s) to exclude from the JSON output.
context (Any | None) – Additional context to pass to the serializer.
by_alias (bool) – Whether to serialize using field aliases.
exclude_unset (bool) – Whether to exclude fields that have not been explicitly set.
exclude_defaults (bool) – Whether to exclude fields that are set to their default value.
exclude_none (bool) – Whether to exclude fields that have a value of None.
round_trip (bool) – If True, dumped values should be valid as input for non-idempotent types such as Json[T].
warnings (bool | Literal['none', 'warn', 'error']) – How to handle serialization errors. False/”none” ignores them, True/”warn” logs errors, “error” raises a [PydanticSerializationError][pydantic_core.PydanticSerializationError].
serialize_as_any (bool) – Whether to serialize fields with duck-typing serialization behavior.
- Returns:
A JSON string representation of the model.
- Return type:
- classmethod model_json_schema(by_alias=True, ref_template='#/$defs/{model}', schema_generator=<class 'pydantic.json_schema.GenerateJsonSchema'>, mode='validation')#
Generates a JSON schema for a model class.
- Parameters:
by_alias (bool) – Whether to use attribute aliases or not.
ref_template (str) – The reference template.
schema_generator (type[GenerateJsonSchema]) – To override the logic used to generate the JSON schema, as a subclass of GenerateJsonSchema with your desired modifications
mode (Literal['validation', 'serialization']) – The mode in which to generate the schema.
- Returns:
The JSON schema for the given model class.
- Return type:
- classmethod model_parametrized_name(params)#
Compute the class name for parametrizations of generic classes.
This method can be overridden to achieve a custom naming scheme for generic BaseModels.
- Parameters:
params (tuple[type[Any], ...]) – Tuple of types of the class. Given a generic class Model with 2 type variables and a concrete model Model[str, int], the value (str, int) would be passed to params.
- Returns:
String representing the new class where params are passed to cls as type variables.
- Raises:
TypeError – Raised when trying to generate concrete names for non-generic models.
- Return type:
- model_post_init(_BaseModel__context)#
Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.
- Parameters:
_BaseModel__context (Any)
- Return type:
None
- classmethod model_rebuild(*, force=False, raise_errors=True, _parent_namespace_depth=2, _types_namespace=None)#
Try to rebuild the pydantic-core schema for the model.
This may be necessary when one of the annotations is a ForwardRef which could not be resolved during the initial attempt to build the schema, and automatic rebuilding fails.
- Parameters:
force (bool) – Whether to force the rebuilding of the model schema, defaults to False.
raise_errors (bool) – Whether to raise errors, defaults to True.
_parent_namespace_depth (int) – The depth level of the parent namespace, defaults to 2.
_types_namespace (MappingNamespace | None) – The types namespace, defaults to None.
- Returns:
Returns None if the schema is already “complete” and rebuilding was not required. If rebuilding _was_ required, returns True if rebuilding was successful, otherwise False.
- Return type:
bool | None
- classmethod model_validate(obj, *, strict=None, from_attributes=None, context=None)#
Validate a pydantic model instance.
- Parameters:
- Raises:
ValidationError – If the object could not be validated.
- Returns:
The validated model instance.
- Return type:
- classmethod model_validate_json(json_data, *, strict=None, context=None)#
Usage docs: https://docs.pydantic.dev/2.10/concepts/json/#json-parsing
Validate the given JSON data against the Pydantic model.
- Parameters:
- Returns:
The validated Pydantic model.
- Raises:
ValidationError – If json_data is not a JSON string or the object could not be validated.
- Return type:
- classmethod model_validate_strings(obj, *, strict=None, context=None)#
Validate the given object with string data against the Pydantic model.
- classmethod parse_file(path, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)#
- classmethod parse_raw(b, *, content_type=None, encoding='utf8', proto=None, allow_pickle=False)#
- pprint()#
- classmethod schema(by_alias=True, ref_template='#/$defs/{model}')#
- classmethod schema_json(*, by_alias=True, ref_template='#/$defs/{model}', **dumps_kwargs)#
- serialize_active_power_limits(min_max)#
- pydantic model r2x.models.RenewableDispatch#
Curtailable renewable generator.
This type of generator have a hourly capacity factor profile.
Show JSON schema
{ "title": "RenewableDispatch", "description": "Curtailable renewable generator.\n\nThis type of generator have a hourly capacity factor profile.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "power_factor": { "default": 1.0, "title": "Power Factor", "type": "number" }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/RenewableGenerationCost" }, { "type": "null" } ], "default": null } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "RenewableGenerationCost": { "additionalProperties": false, "properties": { "curtailment_cost": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null } }, "title": "RenewableGenerationCost", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_up_time ()
must_run ()
name ()
operation_cost (r2x.models.costs.RenewableGenerationCost | None)
planned_outage_rate ()
power_factor (float)
prime_mover_type ()
ramp_down ()
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
unit_type ()
uuid ()
vom_price ()
- pydantic model r2x.models.RenewableNonDispatch#
Non-curtailable renewable generator.
Renewable technologies w/o operational cost.
Show JSON schema
{ "title": "RenewableNonDispatch", "description": "Non-curtailable renewable generator.\n\nRenewable technologies w/o operational cost.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "power_factor": { "default": 1.0, "title": "Power Factor", "type": "number" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_up_time ()
must_run ()
name ()
planned_outage_rate ()
power_factor (float)
prime_mover_type ()
ramp_down ()
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
unit_type ()
uuid ()
vom_price ()
- pydantic model r2x.models.ThermalStandard#
Class representing a standard thermal generator.
Show JSON schema
{ "title": "ThermalStandard", "description": "Class representing a standard thermal generator.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "fuel": { "$ref": "#/$defs/ThermalFuels", "default": "OTHER" }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/ThermalGenerationCost" }, { "type": "null" } ], "default": null }, "status": { "default": true, "title": "Status", "type": "boolean" }, "ramp_limits": { "anyOf": [ { "$ref": "#/$defs/UpDown" }, { "type": "null" } ], "default": null }, "time_limits": { "anyOf": [ { "$ref": "#/$defs/UpDown" }, { "type": "null" } ], "default": null } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "FuelCurve": { "additionalProperties": false, "description": "Representation of the variable operation cost of a power plant in terms of fuel.\n\nFuel units (MBTU, liters, m^3, etc.) coupled with a conversion factor between fuel and currency.\nComposed of a Value Curve that may represent input-output, incremental, or average rate data.\nThe default units for the x-axis are MW and can be specified with `power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" }, "fuel_cost": { "default": 0.0, "description": "Either a fixed value for fuel cost or the key to a fuel cost time series", "title": "Fuel Cost", "type": "number" } }, "required": [ "power_units", "value_curve" ], "title": "FuelCurve", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "ThermalFuels": { "description": "Thermal fuels that reflect options in the EIA annual energy review.", "enum": [ "COAL", "WASTE_COAL", "DISTILLATE_FUEL_OIL", "WASTE_OIL", "PETROLEUM_COKE", "RESIDUAL_FUEL_OIL", "NATURAL_GAS", "OTHER_GAS", "NUCLEAR", "AG_BIOPRODUCT", "MUNICIPAL_WASTE", "WOOD_WASTE", "GEOTHERMAL", "OTHER" ], "title": "ThermalFuels", "type": "string" }, "ThermalGenerationCost": { "additionalProperties": false, "description": "An operational cost for thermal generators.\n\nIt includes fixed cost, variable cost, shut-down cost, and multiple options for start up costs.\n\nReferences\n----------\n.. [1] National Renewable Energy Laboratory. \"Thermal Generation Cost Model Library.\"\n Available: https://nrel-sienna.github.io/PowerSystems.jl/stable/model_library/thermal_generation_cost/", "properties": { "fixed": { "default": "0 usd", "description": "Cost of using fuel in $ or $/hr.", "title": "Fixed" }, "shut_down": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 usd", "description": "Cost to turn the unit off", "title": "Shut Down" }, "start_up": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Cost to start the unit.", "title": "Start Up" }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "$ref": "#/$defs/FuelCurve" }, { "type": "null" } ], "default": null, "description": "Variable production cost", "title": "Variable" } }, "title": "ThermalGenerationCost", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "UpDown": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Up" }, { "title": "Down" } ], "type": "array" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
fuel (r2x.enums.ThermalFuels)
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_up_time ()
must_run ()
name ()
operation_cost ()
planned_outage_rate ()
prime_mover_type ()
ramp_down ()
ramp_limits (r2x.models.core.UpDown | None)
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
status (bool)
time_limits (r2x.models.core.UpDown | None)
unit_type ()
uuid ()
vom_price ()
- field fuel: ThermalFuels = ThermalFuels.OTHER#
- pydantic model r2x.models.HydroDispatch#
Class representing flexible hydro generators.
Show JSON schema
{ "title": "HydroDispatch", "description": "Class representing flexible hydro generators.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/HydroGenerationCost" }, { "type": "null" } ], "default": null } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "HydroGenerationCost": { "additionalProperties": false, "properties": { "fixed": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Fixed cost of keeping the unit online. For some cost represenations this field can be duplicative", "title": "Fixed" }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null } }, "title": "HydroGenerationCost", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_up_time ()
must_run ()
name ()
operation_cost (r2x.models.costs.HydroGenerationCost | None)
planned_outage_rate ()
prime_mover_type ()
ramp_down (Annotated[r2x.units.PowerRate, FieldInfo(annotation=NoneType, required=True, description='Ramping rate on the negative direction.', metadata=[Ge(ge=0)])] | None)
ramp_up (Annotated[r2x.units.PowerRate, FieldInfo(annotation=NoneType, required=True, description='Ramping rate on the positve direction.', metadata=[Ge(ge=0)])] | None)
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
unit_type ()
uuid ()
vom_price ()
- pydantic model r2x.models.HydroEnergyReservoir#
Class representing hydro system with reservoirs.
Show JSON schema
{ "title": "HydroEnergyReservoir", "description": "Class representing hydro system with reservoirs.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "ramp_limits": { "anyOf": [ { "$ref": "#/$defs/UpDown" }, { "type": "null" } ], "default": null }, "time_limits": { "anyOf": [ { "$ref": "#/$defs/UpDown" }, { "type": "null" } ], "default": null }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/HydroGenerationCost" }, { "type": "null" } ], "default": null }, "inflow": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Inflow" }, "initial_energy": { "anyOf": [ { "description": "Initial water volume or percentage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": 0, "title": "Initial Energy" }, "initial_storage": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Initial Storage" }, "storage_capacity": { "anyOf": [ { "description": "Total water volume or percentage." }, { "type": "null" } ], "default": null, "title": "Storage Capacity" }, "min_storage_capacity": { "anyOf": [ { "description": "Minimum water volume or percentage." }, { "type": "null" } ], "default": null, "title": "Min Storage Capacity" }, "storage_target": { "anyOf": [ { "description": "Maximum energy limit." }, { "type": "null" } ], "default": null, "title": "Storage Target" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "HydroGenerationCost": { "additionalProperties": false, "properties": { "fixed": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Fixed cost of keeping the unit online. For some cost represenations this field can be duplicative", "title": "Fixed" }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null } }, "title": "HydroGenerationCost", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "UpDown": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Up" }, { "title": "Down" } ], "type": "array" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
inflow (float | None)
initial_energy (Annotated[float, annotated_types.Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Initial water volume or percentage.')] | None)
initial_storage (float | None)
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_storage_capacity (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Minimum water volume or percentage.')] | None)
min_up_time ()
must_run ()
name ()
operation_cost (r2x.models.costs.HydroGenerationCost | None)
planned_outage_rate ()
prime_mover_type ()
ramp_down ()
ramp_limits (r2x.models.core.UpDown | None)
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
storage_capacity (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Total water volume or percentage.')] | None)
storage_target (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Maximum energy limit.')] | None)
time_limits (r2x.models.core.UpDown | None)
unit_type ()
uuid ()
vom_price ()
- field initial_energy: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Initial water volume or percentage.')] | None = 0#
- field min_storage_capacity: Annotated[Energy, FieldInfo(annotation=NoneType, required=True, description='Minimum water volume or percentage.')] | None = None#
- field storage_capacity: Annotated[Energy, FieldInfo(annotation=NoneType, required=True, description='Total water volume or percentage.')] | None = None#
Storage models#
- pydantic model r2x.models.Storage#
Default Storage class.
Show JSON schema
{ "title": "Storage", "description": "Default Storage class.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "storage_duration": { "anyOf": [ { "description": "Storage duration in hours." }, { "type": "null" } ], "default": null, "title": "Storage Duration" }, "storage_capacity": { "description": "Maximum allowed volume or state of charge.", "title": "Storage Capacity" }, "initial_energy": { "anyOf": [ { "description": "Initial state of charge." }, { "type": "null" } ], "default": null, "title": "Initial Energy" }, "min_storage_capacity": { "default": "0 percent", "description": "Minimum state of charge", "title": "Min Storage Capacity" }, "max_storage_capacity": { "default": "100 percent", "description": "Minimum state of charge", "title": "Max Storage Capacity" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "storage_capacity" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
initial_energy (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Initial state of charge.')] | None)
max_storage_capacity (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Minimum state of charge')])
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_storage_capacity (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Minimum state of charge')])
min_up_time ()
must_run ()
name ()
planned_outage_rate ()
prime_mover_type ()
ramp_down ()
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
storage_capacity (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Maximum allowed volume or state of charge.')])
storage_duration (Annotated[r2x.units.Time, FieldInfo(annotation=NoneType, required=True, description='Storage duration in hours.')] | None)
unit_type ()
uuid ()
vom_price ()
- field initial_energy: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Initial state of charge.')] | None = None#
- field max_storage_capacity: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Minimum state of charge')] = <Quantity(100, 'percent')>#
Minimum state of charge
- field min_storage_capacity: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Minimum state of charge')] = <Quantity(0, 'percent')>#
Minimum state of charge
- pydantic model r2x.models.GenericBattery#
Battery energy storage model.
Show JSON schema
{ "title": "GenericBattery", "description": "Battery energy storage model.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "storage_duration": { "anyOf": [ { "description": "Storage duration in hours." }, { "type": "null" } ], "default": null, "title": "Storage Duration" }, "storage_capacity": { "description": "Maximum allowed volume or state of charge.", "title": "Storage Capacity" }, "initial_energy": { "anyOf": [ { "description": "Initial state of charge." }, { "type": "null" } ], "default": null, "title": "Initial Energy" }, "min_storage_capacity": { "default": "0 percent", "description": "Minimum state of charge", "title": "Min Storage Capacity" }, "max_storage_capacity": { "default": "100 percent", "description": "Minimum state of charge", "title": "Max Storage Capacity" }, "charge_efficiency": { "anyOf": [ { "description": "Charge efficiency.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Charge Efficiency" }, "discharge_efficiency": { "anyOf": [ { "description": "Discharge efficiency.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Discharge Efficiency" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" } }, "additionalProperties": false, "required": [ "name", "storage_capacity" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
charge_efficiency (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Charge efficiency.', metadata=[Ge(ge=0)])] | None)
discharge_efficiency (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Discharge efficiency.', metadata=[Ge(ge=0)])] | None)
ext ()
forced_outage_rate ()
initial_energy ()
max_storage_capacity ()
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_storage_capacity ()
min_up_time ()
must_run ()
name ()
planned_outage_rate ()
prime_mover_type ()
ramp_down ()
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
storage_capacity ()
storage_duration ()
unit_type ()
uuid ()
vom_price ()
- pydantic model r2x.models.HydroPumpedStorage#
Class representing pumped hydro generators.
Show JSON schema
{ "title": "HydroPumpedStorage", "description": "Class representing pumped hydro generators.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/HydroGenerationCost" }, { "$ref": "#/$defs/StorageCost" }, { "type": "null" } ], "default": null, "title": "Operation Cost" }, "storage_duration": { "anyOf": [ { "description": "Storage duration in hours." }, { "type": "null" } ], "default": null, "title": "Storage Duration" }, "initial_volume": { "anyOf": [ { "description": "Initial water volume or percentage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Initial Volume" }, "storage_capacity": { "description": "Total water volume or percentage.", "gt": 0, "title": "Storage Capacity" }, "min_storage_capacity": { "anyOf": [ { "description": "Minimum water volume or percentage." }, { "type": "null" } ], "default": null, "title": "Min Storage Capacity" }, "pump_efficiency": { "anyOf": [ { "description": "Pumping efficiency.", "ge": 0, "le": 1 }, { "type": "null" } ], "default": null, "title": "Pump Efficiency" }, "pump_load": { "anyOf": [ { "description": "Load related to the usage of the pump." }, { "type": "null" } ], "default": null, "title": "Pump Load" } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "HydroGenerationCost": { "additionalProperties": false, "properties": { "fixed": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Fixed cost of keeping the unit online. For some cost represenations this field can be duplicative", "title": "Fixed" }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null } }, "title": "HydroGenerationCost", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "StorageCost": { "additionalProperties": false, "properties": { "charge_variable_cost": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null }, "discharge_variable_cost": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "type": "null" } ], "default": null }, "energy_shortage_cost": { "default": "0.0 usd", "description": "Cost incurred by the model for being short of the energy target", "title": "Energy Shortage Cost" }, "energy_surplus_cost": { "default": "0.0 usd", "description": "Cost of using fuel in $/MWh.", "title": "Energy Surplus Cost" }, "fixed": { "default": "0.0 usd", "description": " Fixed cost of operating the storage system", "title": "Fixed" }, "shut_down": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 usd", "description": "Cost to turn the unit off", "title": "Shut Down" }, "start_up": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Cost to start the unit.", "title": "Start Up" } }, "title": "StorageCost", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name", "storage_capacity" ] }
- Fields:
active_power ()
active_power_limits ()
available ()
base_mva ()
base_power ()
bus ()
category ()
ext ()
forced_outage_rate ()
initial_volume (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Initial water volume or percentage.', metadata=[Gt(gt=0)])] | None)
mean_time_to_repair ()
min_down_time ()
min_rated_capacity ()
min_storage_capacity (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Minimum water volume or percentage.')] | None)
min_up_time ()
must_run ()
name ()
operation_cost (r2x.models.costs.HydroGenerationCost | r2x.models.costs.StorageCost | None)
planned_outage_rate ()
prime_mover_type ()
pump_efficiency (Annotated[r2x.units.Percentage, FieldInfo(annotation=NoneType, required=True, description='Pumping efficiency.', metadata=[Ge(ge=0), Le(le=1)])] | None)
pump_load (Annotated[r2x.units.ActivePower, FieldInfo(annotation=NoneType, required=True, description='Load related to the usage of the pump.')] | None)
ramp_down ()
ramp_up ()
rating ()
reactive_power ()
reactive_power_limits ()
services ()
shutdown_cost ()
startup_cost ()
storage_capacity (Annotated[r2x.units.Energy, FieldInfo(annotation=NoneType, required=True, description='Total water volume or percentage.', metadata=[Gt(gt=0)])])
storage_duration (Annotated[r2x.units.Time, FieldInfo(annotation=NoneType, required=True, description='Storage duration in hours.')] | None)
unit_type ()
uuid ()
vom_price ()
- field initial_volume: Annotated[Energy, FieldInfo(annotation=NoneType, required=True, description='Initial water volume or percentage.', metadata=[Gt(gt=0)])] | None = None#
- field min_storage_capacity: Annotated[Energy, FieldInfo(annotation=NoneType, required=True, description='Minimum water volume or percentage.')] | None = None#
- field pump_efficiency: Annotated[Percentage, FieldInfo(annotation=NoneType, required=True, description='Pumping efficiency.', metadata=[Ge(ge=0), Le(le=1)])] | None = None#
- field pump_load: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='Load related to the usage of the pump.')] | None = None#
Hybrid representation#
- pydantic model r2x.models.HybridSystem#
Representation of hybrid system with renewable generation, load, thermal generation and storage.
This class is just a link between two components. For the implementation see: - NREL-Sienna/PowerSystems.jl
Show JSON schema
{ "title": "HybridSystem", "description": "Representation of hybrid system with renewable generation, load, thermal generation and storage.\n\nThis class is just a link between two components.\nFor the implementation see:\n- https://github.com/NREL-Sienna/PowerSystems.jl/blob/main/src/models/HybridSystem.jl", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "storage_unit": { "anyOf": [ { "$ref": "#/$defs/Storage" }, { "type": "null" } ], "default": null }, "renewable_unit": { "anyOf": [ { "$ref": "#/$defs/RenewableGen" }, { "type": "null" } ], "default": null }, "thermal_unit": { "anyOf": [ { "$ref": "#/$defs/ThermalGen" }, { "type": "null" } ], "default": null }, "electric_load": { "anyOf": [ { "$ref": "#/$defs/PowerLoad" }, { "type": "null" } ], "default": null } }, "$defs": { "ACBus": { "additionalProperties": false, "description": "Power-system AC bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" }, "angle": { "anyOf": [ { "exclusiveMaximum": 1.571, "exclusiveMinimum": -1.571, "type": "number" }, { "type": "null" } ], "default": null, "description": "Angle of the bus in radians.", "title": "Angle" } }, "required": [ "name", "number" ], "title": "ACBus", "type": "object" }, "ACBusTypes": { "description": "Enum to define quantities for load flow calculation and categorize buses.\n\nFor PCM translations, must of the buses are `PV`.", "enum": [ "PV", "PQ", "REF", "SLACK", "ISOLATED" ], "title": "ACBusTypes", "type": "string" }, "Area": { "additionalProperties": false, "description": "Collection of buses in a given region.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" }, "load_response": { "default": 0.0, "description": "Load-frequency damping parameter modeling how much the load in the area changes due to changes in frequency (MW/Hz).", "title": "Load Response", "type": "number" } }, "required": [ "name" ], "title": "Area", "type": "object" }, "AverageRateCurve": { "additionalProperties": false, "description": "Average rate curve relating production quality to average cost rate.\n\nAn average rate curve, relating the production quantity to the average cost rate from the\norigin:\n\n.. math:: y = f(x)/x.\n\nCan be used, for instance, in the representation of a\nCost Curve where :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a\nFuel Curve where :math:`x` is MW and :math:`y` is fuel/MWh. Typically calculated by dividing\nabsolute values of cost rate or fuel input rate by absolute values of electric power.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`, or only the oblique asymptote when using `LinearFunctionData`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "AverageRateCurve", "type": "object" }, "Bus": { "additionalProperties": false, "description": "Abstract class for a bus.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "number": { "description": "A unique bus identification number.", "exclusiveMinimum": 0, "title": "Number", "type": "integer" }, "bustype": { "anyOf": [ { "$ref": "#/$defs/ACBusTypes", "description": "Type of category of bus," }, { "type": "null" } ], "default": null }, "area": { "anyOf": [ { "$ref": "#/$defs/Area", "description": "Area containing the bus." }, { "type": "null" } ], "default": null }, "load_zone": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "the load zone containing the DC bus." }, { "type": "null" } ], "default": null }, "voltage_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax", "description": "the voltage limits" }, { "type": "null" } ], "default": null }, "base_voltage": { "anyOf": [ { "description": "Base voltage in kV. Unit compatible with voltage.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Base Voltage" }, "magnitude": { "anyOf": [ { "description": "Voltage as a multiple of base_voltage.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Magnitude" } }, "required": [ "name", "number" ], "title": "Bus", "type": "object" }, "CostCurve": { "additionalProperties": false, "description": "Direct representation of the variable operation cost of a power plant in currency.\n\nComposed of a Value Curve that may represent input-output, incremental, or average rate\ndata. The default units for the x-axis are MW and can be specified with\n`power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" } }, "required": [ "power_units", "value_curve" ], "title": "CostCurve", "type": "object" }, "FuelCurve": { "additionalProperties": false, "description": "Representation of the variable operation cost of a power plant in terms of fuel.\n\nFuel units (MBTU, liters, m^3, etc.) coupled with a conversion factor between fuel and currency.\nComposed of a Value Curve that may represent input-output, incremental, or average rate data.\nThe default units for the x-axis are MW and can be specified with `power_units`.", "properties": { "power_units": { "$ref": "#/$defs/UnitSystem" }, "value_curve": { "anyOf": [ { "$ref": "#/$defs/InputOutputCurve" }, { "$ref": "#/$defs/IncrementalCurve" }, { "$ref": "#/$defs/AverageRateCurve" } ], "description": "The underlying `ValueCurve` representation of this `ProductionVariableCostCurve`", "title": "Value Curve" }, "vom_cost": { "$ref": "#/$defs/InputOutputCurve", "default": { "input_at_zero": null, "function_data": { "constant_term": 0.0, "proportional_term": 0.0, "units": null } }, "description": "(default: natural units (MW)) The units for the x-axis of the curve" }, "fuel_cost": { "default": 0.0, "description": "Either a fixed value for fuel cost or the key to a fuel cost time series", "title": "Fuel Cost", "type": "number" } }, "required": [ "power_units", "value_curve" ], "title": "FuelCurve", "type": "object" }, "IncrementalCurve": { "additionalProperties": false, "description": "Incremental/marginal curve to relate production quantity to cost derivative.\n\nAn incremental (or 'marginal') curve, relating the production quantity to the derivative of\ncost:\n\n..math:: y = f'(x).\n\nCan be used, for instance, in the representation of a Cost Curve\nwhere :math:`x` is MW and :math:`y` is currency/MWh, or in the representation of a Fuel Curve\nwhere :math:`x` is MW and :math:`y` is fuel/MWh.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/PiecewiseStepData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" }, "initial_input": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "The value of f(x) at the least x for which the function is defined, or the origin for functions with no left endpoint, used for conversion to `InputOutputCurve`", "title": "Initial Input" } }, "required": [ "function_data", "initial_input" ], "title": "IncrementalCurve", "type": "object" }, "InputOutputCurve": { "additionalProperties": false, "description": "Input-output curve relating production quality to cost.\n\nAn input-output curve, directly relating the production quantity to the cost:\n\n.. math:: y = f(x).\n\nCan be used, for instance, in the representation of a Cost Curve where :math:`x` is MW and\n:math:`y` is currency/hr, or in the representation of a Fuel Curve where :math:`x` is MW and\n:math:`y` is fuel/hr.", "properties": { "input_at_zero": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "description": "Optional, an explicit representation of the input value at zero output.", "title": "Input At Zero" }, "function_data": { "anyOf": [ { "$ref": "#/$defs/LinearFunctionData" }, { "$ref": "#/$defs/QuadraticFunctionData" }, { "$ref": "#/$defs/PiecewiseLinearData" } ], "description": "The underlying `FunctionData` representation of this `ValueCurve`", "title": "Function Data" } }, "required": [ "function_data" ], "title": "InputOutputCurve", "type": "object" }, "LinearFunctionData": { "additionalProperties": false, "description": "Data representation for linear cost function.\n\nUsed to represent linear cost functions of the form\n\n.. math:: f(x) = mx + c,\n\nwhere :math:`m` is the proportional term and :math:`c` is the constant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "proportional_term", "constant_term" ], "title": "LinearFunctionData", "type": "object" }, "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" }, "PiecewiseLinearData": { "additionalProperties": false, "description": "Data representation for piecewise linear cost function.\n\nUsed to represent linear data as a series of points: two points define one segment, three\npoints define two segments, etc. The curve starts at the first point given, not the origin.\nPrincipally used for the representation of cost functions where the points store quantities (x,\ny), such as (MW, USD/h).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "points": { "description": "list of (x,y) points that define the function.", "items": { "$ref": "#/$defs/XYCoords" }, "title": "Points", "type": "array" } }, "required": [ "points" ], "title": "PiecewiseLinearData", "type": "object" }, "PiecewiseStepData": { "additionalProperties": false, "description": "Data representation for piecewise step cost function.\n\nUsed to represent a step function as a series of endpoint x-coordinates and segment\ny-coordinates: two x-coordinates and one y-coordinate defines a single segment, three\nx-coordinates and two y-coordinates define two segments, etc.\n\nThis can be useful to represent the derivative of a :class:`PiecewiseLinearData`, where the\ny-coordinates of this step function represent the slopes of that piecewise linear function.\nPrincipally used for the representation of cost functions where the points store quantities (x,\n:math:`dy/dx`), such as (MW, USD/MWh).", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "x_coords": { "description": "the x-coordinates of the endpoints of the segments.", "items": { "type": "number" }, "title": "X Coords", "type": "array" }, "y_coords": { "description": "The y-coordinates of the segments: `y_coords[1]` is the y-value between `x_coords[0]` and `x_coords[1]`, etc. Must have one fewer elements than `x_coords`.", "items": { "type": "number" }, "title": "Y Coords", "type": "array" } }, "required": [ "x_coords", "y_coords" ], "title": "PiecewiseStepData", "type": "object" }, "PowerLoad": { "additionalProperties": false, "description": "Class representing a Load object.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "$ref": "#/$defs/Bus", "description": "Point of injection." }, "active_power": { "anyOf": [ { "description": "Initial steady-state active power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Active Power" }, "reactive_power": { "anyOf": [ { "description": "Reactive Power of Load at the bus in MW.", "exclusiveMinimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Reactive Power" }, "max_active_power": { "anyOf": [ { "description": "Max Load at the bus in MW.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Max Active Power" }, "max_reactive_power": { "anyOf": [ { "description": " Initial steady-state reactive power demand.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Max Reactive Power" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "operation_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Operation Cost" } }, "required": [ "name", "bus" ], "title": "PowerLoad", "type": "object" }, "PrimeMoversType": { "description": "EIA prime mover codes.", "enum": [ "BA", "BT", "CA", "CC", "CE", "CP", "CSV", "CT", "ES", "FC", "FW", "GT", "HA", "HB", "HK", "HY", "IC", "PS", "OT", "ST", "PV", "PVe", "WT", "WS", "RTPV" ], "title": "PrimeMoversType", "type": "string" }, "QuadraticFunctionData": { "additionalProperties": false, "description": "Data representation for quadratic cost function.\n\nUsed to represent quadratic of cost functions of the form\n\n.. math:: f(x) = ax^2 + bx + c,\n\nwhere :math:`a` is the quadratic term, :math:`b` is the proportional term and :math:`c` is the\nconstant term.", "properties": { "units": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Units" }, "quadratic_term": { "description": "the quadratic term in the represented function.", "title": "Quadratic Term", "type": "number" }, "proportional_term": { "description": "the proportional term in the represented function.", "title": "Proportional Term", "type": "number" }, "constant_term": { "description": "the constant term in the represented function.", "title": "Constant Term", "type": "number" } }, "required": [ "quadratic_term", "proportional_term", "constant_term" ], "title": "QuadraticFunctionData", "type": "object" }, "RenewableGen": { "additionalProperties": false, "description": "Abstract class for renewable generators.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." } }, "required": [ "name" ], "title": "RenewableGen", "type": "object" }, "Service": { "additionalProperties": false, "description": "Abstract class for services attached to components.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" } }, "required": [ "name" ], "title": "Service", "type": "object" }, "Storage": { "additionalProperties": false, "description": "Default Storage class.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "storage_duration": { "anyOf": [ { "description": "Storage duration in hours." }, { "type": "null" } ], "default": null, "title": "Storage Duration" }, "storage_capacity": { "description": "Maximum allowed volume or state of charge.", "title": "Storage Capacity" }, "initial_energy": { "anyOf": [ { "description": "Initial state of charge." }, { "type": "null" } ], "default": null, "title": "Initial Energy" }, "min_storage_capacity": { "default": "0 percent", "description": "Minimum state of charge", "title": "Min Storage Capacity" }, "max_storage_capacity": { "default": "100 percent", "description": "Minimum state of charge", "title": "Max Storage Capacity" } }, "required": [ "name", "storage_capacity" ], "title": "Storage", "type": "object" }, "ThermalGen": { "additionalProperties": false, "description": "Class representing fuel based thermal generator.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "services": { "anyOf": [ { "description": "Services that this component contributes to.", "items": { "$ref": "#/$defs/Service" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Services" }, "bus": { "anyOf": [ { "$ref": "#/$defs/ACBus", "description": "Bus where the generator is connected." }, { "type": "null" } ], "default": null }, "rating": { "anyOf": [ { "ge": 0 }, { "type": "null" } ], "default": "1 megavolt_ampere", "description": "Maximum output power rating of the unit (MVA).", "title": "Rating" }, "active_power": { "default": "0.0 megawatt", "description": "Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Active Power" }, "reactive_power": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 megavolt_ampere", "description": "Reactive power set point of the unit in MW. For power flow, this is the steady state operating point of the system.", "title": "Reactive Power" }, "base_mva": { "default": 1, "title": "Base Mva", "type": "number" }, "base_power": { "anyOf": [ { "gt": 0 }, { "type": "null" } ], "default": null, "description": "Base power of the unit (MVA) for per unitization.", "title": "Base Power" }, "must_run": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "If we need to force the dispatch of the device.", "title": "Must Run" }, "vom_price": { "anyOf": [ { "description": "Variable operational price $/MWh." }, { "type": "null" } ], "default": null, "title": "Vom Price" }, "prime_mover_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType", "description": "Prime mover technology according to EIA 923." }, { "type": "null" } ], "default": null }, "unit_type": { "anyOf": [ { "$ref": "#/$defs/PrimeMoversType" }, { "type": "null" } ], "default": null, "description": "Prime mover technology according to EIA 923." }, "min_rated_capacity": { "description": "Minimum rated power generation.", "title": "Min Rated Capacity" }, "ramp_up": { "anyOf": [ { "description": "Ramping rate on the positve direction." }, { "type": "null" } ], "default": null, "title": "Ramp Up" }, "ramp_down": { "anyOf": [ { "description": "Ramping rate on the negative direction." }, { "type": "null" } ], "default": null, "title": "Ramp Down" }, "min_up_time": { "anyOf": [ { "description": "Minimum up time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Up Time" }, "min_down_time": { "anyOf": [ { "description": "Minimum down time in hours for UC decision.", "ge": 0 }, { "type": "null" } ], "default": null, "title": "Min Down Time" }, "mean_time_to_repair": { "anyOf": [ { "description": "Total hours to repair after outage occur.", "gt": 0 }, { "type": "null" } ], "default": null, "title": "Mean Time To Repair" }, "forced_outage_rate": { "anyOf": [ { "description": "Expected level of unplanned outages in percent." }, { "type": "null" } ], "default": null, "title": "Forced Outage Rate" }, "planned_outage_rate": { "anyOf": [ { "description": "Expected level of planned outages in percent." }, { "type": "null" } ], "default": null, "title": "Planned Outage Rate" }, "startup_cost": { "anyOf": [ { "description": "Cost in $ of starting a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Startup Cost" }, "shutdown_cost": { "anyOf": [ { "description": "Cost in $ of shuting down a unit.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Shutdown Cost" }, "active_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "reactive_power_limits": { "anyOf": [ { "$ref": "#/$defs/MinMax" }, { "type": "null" } ], "default": null, "description": "Maximum output power rating of the unit (MVA)." }, "fuel": { "anyOf": [ { "description": "Fuel category", "type": "string" }, { "type": "null" } ], "default": null, "title": "Fuel" }, "operation_cost": { "anyOf": [ { "$ref": "#/$defs/ThermalGenerationCost" }, { "type": "null" } ], "default": null } }, "required": [ "name" ], "title": "ThermalGen", "type": "object" }, "ThermalGenerationCost": { "additionalProperties": false, "description": "An operational cost for thermal generators.\n\nIt includes fixed cost, variable cost, shut-down cost, and multiple options for start up costs.\n\nReferences\n----------\n.. [1] National Renewable Energy Laboratory. \"Thermal Generation Cost Model Library.\"\n Available: https://nrel-sienna.github.io/PowerSystems.jl/stable/model_library/thermal_generation_cost/", "properties": { "fixed": { "default": "0 usd", "description": "Cost of using fuel in $ or $/hr.", "title": "Fixed" }, "shut_down": { "anyOf": [ {}, { "type": "null" } ], "default": "0.0 usd", "description": "Cost to turn the unit off", "title": "Shut Down" }, "start_up": { "anyOf": [ {}, { "type": "null" } ], "default": "0 usd", "description": "Cost to start the unit.", "title": "Start Up" }, "variable": { "anyOf": [ { "$ref": "#/$defs/CostCurve" }, { "$ref": "#/$defs/FuelCurve" }, { "type": "null" } ], "default": null, "description": "Variable production cost", "title": "Variable" } }, "title": "ThermalGenerationCost", "type": "object" }, "UnitSystem": { "enum": [ "SYSTEM_BASE", "DEVICE_BASE", "NATURAL_UNITS" ], "title": "UnitSystem", "type": "string" }, "XYCoords": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "X", "type": "number" }, { "title": "Y", "type": "number" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name" ] }
- Fields:
electric_load (r2x.models.load.PowerLoad | None)
renewable_unit (r2x.models.generators.RenewableGen | None)
storage_unit (r2x.models.generators.Storage | None)
thermal_unit (r2x.models.generators.ThermalGen | None)
Services#
- pydantic model r2x.models.Emission#
Class representing an emission object that is attached to generators.
Show JSON schema
{ "title": "Emission", "description": "Class representing an emission object that is attached to generators.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "rate": { "description": "Amount of emission produced in kg/MWh.", "title": "Rate" }, "emission_type": { "$ref": "#/$defs/EmissionType", "description": "Type of emission. E.g., CO2, NOx." }, "generator_name": { "description": "Generator emitting.", "title": "Generator Name", "type": "string" } }, "$defs": { "EmissionType": { "description": "Valid emission types.", "enum": [ "CO2", "CO2E", "CH4", "NOX", "SOX", "SO2", "N2O" ], "title": "EmissionType", "type": "string" } }, "additionalProperties": false, "required": [ "name", "rate", "emission_type", "generator_name" ] }
- Fields:
available (bool)
category (str | None)
emission_type (r2x.enums.EmissionType)
ext (dict)
generator_name (str)
name (str)
rate (r2x.units.EmissionRate)
uuid (uuid.UUID)
- field emission_type: Annotated[EmissionType, FieldInfo(annotation=NoneType, required=True, description='Type of emission. E.g., CO2, NOx.')] [Required]#
Type of emission. E.g., CO2, NOx.
- pydantic model r2x.models.Reserve#
Class representing a reserve contribution.
Show JSON schema
{ "title": "Reserve", "description": "Class representing a reserve contribution.", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "time_frame": { "default": 1e+30, "description": "Timeframe in which the reserve is required in seconds", "exclusiveMinimum": 0.0, "title": "Time Frame", "type": "number" }, "region": { "anyOf": [ { "$ref": "#/$defs/LoadZone", "description": "LoadZone where reserve requirement is required." }, { "type": "null" } ], "default": null }, "vors": { "default": -1, "description": "Value of reserve shortage in $/MW. Any positive value as as soft constraint.", "title": "Vors", "type": "number" }, "duration": { "anyOf": [ { "description": "Time over which the required response must be maintained in seconds.", "exclusiveMinimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Duration" }, "reserve_type": { "$ref": "#/$defs/ReserveType" }, "load_risk": { "anyOf": [ { "description": "Proportion of Load that contributes to the requirement.", "minimum": 0.0, "type": "number" }, { "type": "null" } ], "default": null, "title": "Load Risk" }, "max_requirement": { "default": 0, "title": "Max Requirement", "type": "number" }, "direction": { "$ref": "#/$defs/ReserveDirection" } }, "$defs": { "LoadZone": { "additionalProperties": false, "description": "Collection of buses for electricity price analysis.", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "peak_active_power": { "default": 0.0, "description": "Peak active power in the area", "minimum": 0.0, "title": "Peak Active Power", "type": "number" }, "peak_reactive_power": { "default": 0.0, "description": "Peak reactive power in the area", "minimum": 0.0, "title": "Peak Reactive Power", "type": "number" } }, "required": [ "name" ], "title": "LoadZone", "type": "object" }, "ReserveDirection": { "description": "Class representing different Reserve Direction.", "enum": [ "UP", "DOWN" ], "title": "ReserveDirection", "type": "string" }, "ReserveType": { "description": "Class representing different types of Reserves.", "enum": [ "SPINNING", "FLEXIBILITY", "REGULATION" ], "title": "ReserveType", "type": "string" } }, "additionalProperties": false, "required": [ "name", "reserve_type", "direction" ] }
- Fields:
available (bool)
category (str | None)
direction (r2x.enums.ReserveDirection)
duration (float | None)
ext (dict)
load_risk (float | None)
max_requirement (float)
name (str)
region (r2x.models.topology.LoadZone | None)
reserve_type (r2x.enums.ReserveType)
time_frame (float)
uuid (uuid.UUID)
vors (float)
- field direction: ReserveDirection [Required]#
- field duration: Annotated[float, Gt(gt=0), FieldInfo(annotation=NoneType, required=True, description='Time over which the required response must be maintained in seconds.')] | None = None#
- field load_risk: Annotated[float, Ge(ge=0), FieldInfo(annotation=NoneType, required=True, description='Proportion of Load that contributes to the requirement.')] | None = None#
- field region: Annotated[LoadZone, FieldInfo(annotation=NoneType, required=True, description='LoadZone where reserve requirement is required.')] | None = None#
- field reserve_type: ReserveType [Required]#
- pydantic model r2x.models.TransmissionInterface#
Component representing a collection of branches that make up an interface or corridor.
It can be specified between different
Area
orLoadZone
. The interface can be used to constrain the power flow across itShow JSON schema
{ "title": "TransmissionInterface", "description": "Component representing a collection of branches that make up an interface or corridor.\n\nIt can be specified between different :class:`Area` or :class:`LoadZone`.\nThe interface can be used to constrain the power flow across it", "type": "object", "properties": { "uuid": { "format": "uuid", "title": "Uuid", "type": "string" }, "name": { "title": "Name", "type": "string" }, "available": { "default": true, "description": "If the component is available.", "title": "Available", "type": "boolean" }, "category": { "anyOf": [ { "description": "Category that this component belongs to.", "type": "string" }, { "type": "null" } ], "default": null, "title": "Category" }, "ext": { "description": "Additional information of the component.", "title": "Ext", "type": "object" }, "active_power_flow_limits": { "$ref": "#/$defs/MinMax", "description": "Minimum and maximum active power flow limits on the interface (MW)" }, "direction_mapping": { "additionalProperties": { "type": "integer" }, "description": "Dictionary of the line names in the interface and their direction of flow (1 or -1) relative to the flow of the interface", "title": "Direction Mapping", "type": "object" } }, "$defs": { "MinMax": { "maxItems": 2, "minItems": 2, "prefixItems": [ { "title": "Min" }, { "title": "Max" } ], "type": "array" } }, "additionalProperties": false, "required": [ "name", "active_power_flow_limits", "direction_mapping" ] }
- Fields:
active_power_flow_limits (r2x.models.core.MinMax)
available (bool)
category (str | None)
direction_mapping (dict[str, int])
ext (dict)
name (str)
uuid (uuid.UUID)
- field active_power_flow_limits: Annotated[MinMax, FieldInfo(annotation=NoneType, required=True, description='Minimum and maximum active power flow limits on the interface (MW)')] [Required]#
Minimum and maximum active power flow limits on the interface (MW)
- field direction_mapping: Annotated[dict[str, int], FieldInfo(annotation=NoneType, required=True, description='Dictionary of the line names in the interface and their direction of flow (1 or -1) relative to the flow of the interface')] [Required]#
Dictionary of the line names in the interface and their direction of flow (1 or -1) relative to the flow of the interface