Public interface

Module

EnergyModelsRenewableProducersModule

Main module for EnergyModelsRenewableProducers.jl.

This module implements the following types (Nodes) with constraints:

  • NonDisRes is a subtype of Source and represents a non-dispatchable renewable producer, as wind, solar etc.
  • PumpedHydroStor is a subtype of Storage and represents a regulated pumped hydro storage.
  • HydroStor is a subtype of Storage and represents a regulated hydro storage, that is a standard hydro powerplant without pumps.
source

Node types

Abstract types

Concrete types

EnergyModelsRenewableProducers.NonDisRESType
NonDisRES <: EMB.Source

A non-dispatchable renewable energy source. It extends the existing RefSource node through including a profile that corresponds to thr production. The profile can have variations on the strategic level.

Fields

  • id is the name/identifyer of the node.
  • cap::TimeProfile is the installed capacity.
  • profile::TimeProfile is the power production in each operational period as a ratio of the installed capacity at that time.
  • opex_var::TimeProfile is the variable operating expense per energy unit produced.
  • opex_fixed::TimeProfile is the fixed operating expense.
  • output::Dict{Resource, Real} are the generated Resources, normally Power.
  • data::Vector{Data} is the additional data (e.g. for investments). The field data is conditional through usage of a constructor.
source
EnergyModelsRenewableProducers.HydroStorType
HydroStor{T} <: HydroStorage{T}

A regulated hydropower storage, modelled as a Storage node. A regulated hydro storage node requires a capacity for the discharge and does not have a required inflow from the model, except for water inflow from outside the model, although it requires a field input.

Fields

  • id is the name/identifyer of the node.
  • level::EMB.UnionCapacity are the level parameters of the HydroStor node. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.
  • discharge::EMB.UnionCapacity are the discharging parameters of the HydroStor node. Depending on the chosen type, the discharge parameters can include variable OPEX, fixed OPEX, and/or a capacity.
  • level_init::TimeProfile is the initial stored energy in the dam.
  • level_inflow::TimeProfile is the inflow of power per operational period.
  • level_min::TimeProfile is the minimum fraction of the reservoir capacity that has to remain in the HydroStorage node.
  • stor_res::ResourceCarrier is the stored Resource.
  • input::Dict{Resource, Real} are the input Resources. In the case of a HydroStor, this field can be left out.
  • output::Dict{Resource, Real} can only contain one entry, the stored resource.
  • data::Vector{Data} additional data (e.g. for investments). The field data is conditional through usage of a constructor.
source
EnergyModelsRenewableProducers.PumpedHydroStorType
PumpedHydroStor{T} <: HydroStorage{T}

A pumped hydropower storage, modelled as a Storage node. A pumped hydro storage node allows for storing energy through pumping water into the reservoir. The current implementation is a simplified node in which no lower reservoir is required. Instead, it is assumed that the reservoir has an infinite size.

A pumped hydro storage node requires a capacity for both charge and discharge to account for the potential to store energy in the form of potential energy.

Fields

  • id is the name/identifyer of the node.
  • charge::EMB.UnionCapacity are the charging parameters of the PumpedHydroStor node. Depending on the chosen type, the charge parameters can include variable OPEX, fixed OPEX, and/or a capacity.
  • level::EMB.UnionCapacity are the level parameters of the HydroStor node. Depending on the chosen type, the charge parameters can include variable OPEX and/or fixed OPEX.
  • discharge::EMB.UnionCapacity are the discharging parameters of the HydroStor node. Depending on the chosen type, the discharge parameters can include variable OPEX, fixed OPEX, and/or a capacity.
  • level_init::TimeProfile is the initial stored energy in the dam.
  • level_inflow::TimeProfile is the inflow of power per operational period.
  • level_min::TimeProfile is the minimum fraction of the reservoir capacity that has to remain in the HydroStorage node.
  • stor_res::ResourceCarrier is the stored Resource.
  • input::Dict{Resource, Real} are the input Resources.
  • output::Dict{Resource, Real} can only contain one entry, the stored resource.
  • data::Vector{Data} additional data (e.g. for investments). The field data is conditional through usage of a constructor.
source

Legacy constructors

EnergyModelsRenewableProducers.RegHydroStorFunction
RegHydroStor(
    id::Any,
    rate_cap::TimeProfile,
    stor_cap::TimeProfile,
    has_pump::Bool,
    level_init::TimeProfile,
    level_inflow::TimeProfile,
    level_min::TimeProfile,
    opex_var::TimeProfile,
    opex_fixed::TimeProfile,
    stor_res::ResourceCarrier,
    input,
    output,
    Data,
)

Original Legacy constructor for a regulated hydropower storage, with or without pumping capabilities. This version is discontinued starting with Version 0.6.0. resulting in an error It is replaced with the two new types HydroStor and PumpedHydroStor to utilize the concept of multiple dispatch instead of logic.

See the documentation for further information regarding how you can translate your existing model to the new model.

Fields

  • id is the name/identifyer of the node.
  • rate_cap::TimeProfile is the installed installed rate capacity.
  • stor_cap::TimeProfile is the installed storage capacity in the dam.
  • has_pump::Bool states wheter the stored resource can flow in.
  • level_init::TimeProfile is the initial stored energy in the dam.
  • level_inflow::TimeProfile is the inflow of power per operational period.
  • level_min::TimeProfile is the minimum fraction of the reservoir capacity that has to remain in the HydroStorage node.
  • opex_var::TimeProfile are the variable operational expenses per GWh produced.
  • opex_fixed::TimeProfile are the fixed operational costs of the storage caacity.
  • stor_res::ResourceCarrier is the stored Resource.
  • input::Dict{Resource, Real} are the stored and used resources. The values in the Dict are ratios describing the energy loss when using the pumps.
  • output::Dict{Resource, Real} can only contain one entry, the stored resource.
  • data::Array{Data} additional data (e.g. for investments). This value is conditional through the application of a constructor.
source