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

Warning

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.RefStaticType
struct RefStatic <: TransmissionMode

A reference static TransmissionMode.

Generic representation of static transmission modes, such as overhead power lines or pipelines.

Fields

  • id::String is the name/identifyer of the transmission mode.
  • resource::Resource is the resource that is transported.
  • trans_cap::Real is the capacity of the transmission mode.
  • trans_loss::Real is the loss of the transported resource during transmission, modelled as a ratio.
  • opex_var::TimeProfile is the variable operating expense per energy unit transported.
  • opex_fixed::TimeProfile is the fixed operating expense per installed capacity.
  • directions is 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 field data is conditional through usage of a constructor.
source
EnergyModelsGeography.RefDynamicType
struct RefDynamic <: TransmissionMode

A reference dynamic TransmissionMode.

Generic representation of dynamic transmission modes, using for example truck, ship or railway transport.

Fields

  • id::String is the name/identifyer of the transmission mode.
  • resource::Resource is the resource that is transported.
  • trans_cap::TimeProfile is the capacity of the transmission mode.
  • trans_loss::TimeProfile is the loss of the transported resource during transmission, modelled as a ratio.
  • opex_var::TimeProfile is the variable operating expense per energy unit transported.
  • opex_fixed::TimeProfile is the fixed operating expense per installed capacity.
  • directions is 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 field data is conditional through usage of a constructor.
source
EnergyModelsGeography.PipeSimpleType
struct PipeSimple <: PipeMode

This 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::String is the identifier used in printed output.

  • inlet::Resource is the Resource going into transmission.

  • outlet::Resource is the Resource going out of the outlet of the transmission.

  • consuming::Resource is the Resource the transmission consumes by operating.

  • consumption_rate::TimeProfile the rate of which the resource Pipeline.consuming is 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::Real is the capacity of the transmission mode.

  • trans_loss::Real is the loss of the transported resource during transmission, modelled as a ratio.

  • opex_var::TimeProfile is the variable operating expense per energy unit transported.

  • opex_fixed::TimeProfile is the fixed operating expense per installed capacity.

  • data::Vector{Data} is the additional data (e.g., for investments). The field data is conditional through usage of a constructor.

source
EnergyModelsGeography.PipeLinepackSimpleType
struct PipeLinepackSimple <: PipeMode

Pipeline model with linepacking implemented as simple storage function.

Fields

  • id::String is the identifier used in printed output.

  • inlet::Resource is the Resource going into transmission.

  • outlet::Resource is the Resource going out of the outlet of the transmission.

  • consuming::Resource is the Resource the transmission consumes by operating.

  • consumption_rate::TimeProfile the rate of which the resource Pipeline.consuming is 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::Real is the capacity of the transmission mode.

  • trans_loss::Real is the loss of the transported resource during transmission, modelled as a ratio.

  • opex_var::TimeProfile is the variable operating expense per energy unit transported.

  • opex_fixed::TimeProfile is the fixed operating expense per installed capacity.

  • energy_share::Float64 is the storage energy capacity relative to pipeline capacity.

  • data::Array{<:Data} is the additional data (e.g., for investments). The field data is conditional through usage of a constructor.

source

Functions for accessing fields of TransmissionMode types

The following functions are defined and exported for accessing fields from a TransmissionMode:

EnergyModelsGeography.lossFunction
loss(tm::TransmissionMode)
loss(tm::TransmissionMode, t)

Returns the loss of transmission mode tm as TimeProfile or in operational period t.

source