TransmissionMode
TransmissionMode describes how resources are transported, for example by dynamic transmission modes on ship, truck or railway (represented generically by RefDynamic, although not implemented in the current version) or by static transmission modes on overhead power lines or gas pipelines (respresented generically by RefStatic). TransmissionModes includes capacity limits (trans_cap), losses (trans_loss) and directions (directions) for the generic transmission modes RefDynamic and RefStatic. More specialized TransmissionModes such as subtypes of the abstract type PipeMode can convert one inlet resource to another outlet resource. This approach can be used for representing a static pressure drop within a pipeline. The PipeMode can be consuming another resource such as electricity for compressors at a consumption_rate in order to transport natural gas or hydrogen. The consumption_rate is in this situation proportional to the transport of the inlet resource. All TransmissionModes can also include both fixed (opex_fixed) and variable (opex_var) operational expenditures (OPEX).
All parameters of the implemented TransmissionModes are relative (based on usage, opex_var and trans_loss, or the installed capacity, opex_fixed). They are independent of the distance. The reasoning for this approach is that it allows the modeller to have a non-linear, distance dependent OPEX or loss function for providing the input to the model.
TransmissionMode types
The following TransmissionModes are implemented and exported:
EnergyModelsGeography.TransmissionMode — Typeabstract type TransmissionModeDeclaration of the general type for transmission modes transporting resources between areas.
EnergyModelsGeography.RefStatic — Typestruct RefStatic <: TransmissionModeA reference static TransmissionMode.
Generic representation of static transmission modes, such as overhead power lines or pipelines.
Fields
id::Stringis the name/identifyer of the transmission mode.resource::Resourceis the resource that is transported.trans_cap::Realis the capacity of the transmission mode.trans_loss::Realis the loss of the transported resource during transmission, modelled as a ratio.opex_var::TimeProfileis the variable operating expense per energy unit transported.opex_fixed::TimeProfileis the fixed operating expense per installed capacity.directionsis the number of directions the resource can be transported, 1 is unidirectional (A->B) or 2 is bidirectional (A<->B).data::Vector{Data}is the additional data (e.g., for investments). The fielddatais conditional through usage of a constructor.
EnergyModelsGeography.RefDynamic — Typestruct RefDynamic <: TransmissionModeA reference dynamic TransmissionMode.
Generic representation of dynamic transmission modes, using for example truck, ship or railway transport.
Fields
id::Stringis the name/identifyer of the transmission mode.resource::Resourceis the resource that is transported.trans_cap::TimeProfileis the capacity of the transmission mode.trans_loss::TimeProfileis the loss of the transported resource during transmission, modelled as a ratio.opex_var::TimeProfileis the variable operating expense per energy unit transported.opex_fixed::TimeProfileis the fixed operating expense per installed capacity.directionsis the number of directions the resource can be transported, 1 is unidirectional (A->B) or 2 is bidirectional (A<->B).data::Vector{Data}is the additional data (e.g., for investments). The fielddatais conditional through usage of a constructor.
EnergyModelsGeography.PipeMode — Typeabstract type PipeMode <: TransmissionModeTransmissionMode mode for additional variable potential.
PipeModes are by default unidirectional. If you plan to include bidirectional pipelines, you have to provide a new method to the function is_bidirectional.
EnergyModelsGeography.PipeSimple — Typestruct PipeSimple <: PipeModeThis TransmissionMode allows for altering the transported Resource.
A usage of this could be, e.g., by defining a subtype struct of Resource with the field 'pressure'. This PipelineMode can then take SomeSubtype<:Resource with pressure p₁ at the inlet, and pressure p₂ at the outlet.
This type also supports consuming resources proportionally to the volume of transported Resource (at the inlet). This could be used for modeling the power needed for operating the pipeline.
Pipeline transport using PipeSimple is assumed to be unidirectional. It is not possible to use PipeSimple for bidirectional transport as the consuming resource would in this case be consumed at the wrong Area.
Fields
id::Stringis the identifier used in printed output.inlet::Resourceis theResourcegoing into transmission.outlet::Resourceis theResourcegoing out of the outlet of the transmission.consuming::Resourceis theResourcethe transmission consumes by operating.consumption_rate::TimeProfilethe rate of which the resourcePipeline.consumingis consumed, as a ratio of the volume of the resource going into the inlet, i.e.:`consumption_rate` = consumed volume / inlet volume (per operational period)trans_cap::Realis the capacity of the transmission mode.trans_loss::Realis the loss of the transported resource during transmission, modelled as a ratio.opex_var::TimeProfileis the variable operating expense per energy unit transported.opex_fixed::TimeProfileis the fixed operating expense per installed capacity.data::Vector{Data}is the additional data (e.g., for investments). The fielddatais conditional through usage of a constructor.
EnergyModelsGeography.PipeLinepackSimple — Typestruct PipeLinepackSimple <: PipeModePipeline model with linepacking implemented as simple storage function.
Fields
id::Stringis the identifier used in printed output.inlet::Resourceis theResourcegoing into transmission.outlet::Resourceis theResourcegoing out of the outlet of the transmission.consuming::Resourceis theResourcethe transmission consumes by operating.consumption_rate::TimeProfilethe rate of which the resourcePipeline.consumingis consumed, as a ratio of the volume of the resource going into the inlet, i.e.:`consumption_rate` = consumed volume / inlet volume (per operational period)trans_cap::Realis the capacity of the transmission mode.trans_loss::Realis the loss of the transported resource during transmission, modelled as a ratio.opex_var::TimeProfileis the variable operating expense per energy unit transported.opex_fixed::TimeProfileis the fixed operating expense per installed capacity.energy_share::Float64is the storage energy capacity relative to pipeline capacity.data::Array{<:Data}is the additional data (e.g., for investments). The fielddatais conditional through usage of a constructor.
Functions for accessing fields of TransmissionMode types
The following functions are defined and exported for accessing fields from a TransmissionMode:
EnergyModelsGeography.map_trans_resource — Functionmap_trans_resource(tm::TransmissionMode)
map_trans_resource(tm::PipeMode)Returns the transported resource for a given TransmissionMode.
EnergyModelsGeography.loss — Functionloss(tm::TransmissionMode)
loss(tm::TransmissionMode, t)Returns the loss of transmission mode tm as TimeProfile or in operational period t.
EnergyModelsGeography.directions — Functiondirections(tm::TransmissionMode)Returns the directions of transmission mode tm.
EnergyModelsGeography.mode_data — Functionmode_data(tm::TransmissionMode)Returns the Data array of transmission mode tm.
EnergyModelsGeography.consumption_rate — Functionconsumption_rate(tm::PipeMode)
consumption_rate(tm::PipeMode, t)Returns the consumption rate of pipe mode tm as TimeProfile or in operational period t.
EnergyModelsGeography.energy_share — Functionenergy_share(tm::PipeLinepackSimple)Returns the energy share of PipeLinepackSimple tm.