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
). TransmissionMode
s 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 TransmissionMode
s can also include both fixed (opex_fixed
) and variable (opex_var
) operational expenditures (OPEX).
All parameters of the implemented TransmissionMode
s 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 TransmissionMode
s are implemented and exported:
EnergyModelsGeography.TransmissionMode
— Typeabstract type TransmissionMode
Declaration of the general type for transmission modes transporting resources between areas.
EnergyModelsGeography.RefStatic
— Typestruct 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 fielddata
is conditional through usage of a constructor.
EnergyModelsGeography.RefDynamic
— Typestruct 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 fielddata
is conditional through usage of a constructor.
EnergyModelsGeography.PipeMode
— Typeabstract type PipeMode <: TransmissionMode
TransmissionMode
mode for additional variable potential.
EnergyModelsGeography.PipeSimple
— Typestruct 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 theResource
going into transmission.outlet::Resource
is theResource
going out of the outlet of the transmission.consuming::Resource
is theResource
the transmission consumes by operating.consumption_rate::TimeProfile
the rate of which the resourcePipeline.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 fielddata
is conditional through usage of a constructor.
EnergyModelsGeography.PipeLinepackSimple
— Typestruct PipeLinepackSimple <: PipeMode
Pipeline model with linepacking implemented as simple storage function.
Fields
id::String
is the identifier used in printed output.inlet::Resource
is theResource
going into transmission.outlet::Resource
is theResource
going out of the outlet of the transmission.consuming::Resource
is theResource
the transmission consumes by operating.consumption_rate::TimeProfile
the rate of which the resourcePipeline.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 fielddata
is 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
.