HydroReservoir

PowerSystems.HydroReservoirType
mutable struct HydroReservoir <: Device
    name::String
    available::Bool
    storage_level_limits::MinMax
    initial_level::Float64
    spillage_limits::Union{Nothing, MinMax}
    inflow::Float64
    outflow::Float64
    level_targets::Union{Nothing, Float64}
    intake_elevation::Float64
    head_to_volume_factor::ValueCurve
    upstream_turbines::Vector{HydroUnit}
    downstream_turbines::Vector{HydroUnit}
    upstream_reservoirs::Vector{Device}
    operation_cost::HydroReservoirCost
    level_data_type::ReservoirDataType
    ext::Dict{String, Any}
    internal::InfrastructureSystemsInternal
end

A hydropower reservoir that have attached HydroTurbine(s) or HydroPumpTurbine(s) used to generate power. See How to Define Hydro Generators with Reservoirs for supported configurations.

Arguments

  • name::String: Name of the component. Components of the same type (e.g., PowerLoad) must have unique names, but components of different types (e.g., PowerLoad and ACBus) can have the same name
  • available::Bool: Indicator of whether the component is connected and online (true) or disconnected, offline, or down (false). Unavailable components are excluded during simulations
  • storage_level_limits::MinMax: Storage level limits for the reservoir in m^3, m, or MWh, based on the ReservoirDataType selected for level_data_type
  • initial_level::Float64: Initial level of the reservoir relative to the storage_level_limits.max.
  • spillage_limits::Union{Nothing, MinMax}: Amount of water allowed to be spilled from the reservoir. If nothing, infinite spillage is allowed.
  • inflow::Float64: Amount of water refilling the reservoir in m^3/h or MW (if level_data_type is ReservoirDataType.ENERGY).
  • outflow::Float64: Amount of water naturally going out of the reservoir in m^3/h or MW (if level_data_type is ReservoirDataType.ENERGY).
  • level_targets::Union{Nothing, Float64}: Reservoir level targets at the end of a simulation as a fraction of the storage_level_limits.max.
  • intake_elevation::Float64: Height of the intake of the reservoir, towards the downstream turbines, in meters above the sea level.
  • head_to_volume_factor::ValueCurve: Head to volume relationship for the reservoir.
  • upstream_turbines::Vector{HydroUnit}: (default: Device[]) Vector of HydroUnit(s) that are immediately upstream of this reservoir. This reservoir is the tail reservoir for these units, and their flow goes into this reservoir.
  • downstream_turbines::Vector{HydroUnit}: (default: Device[]) Vector of HydroUnit(s) that are immediately downstream of this reservoir. This reservoir is the head reservoir for these units, and its feed flow into these units.
  • upstream_reservoirs::Vector{Device}: (default: Device[]) Vector of Device(s) reservoirs that are immediately upstream of this reservoir. This reservoir receives the spillage flow from upstream_reservoirs.
  • operation_cost::HydroReservoirCost: (default: HydroReservoirCost(nothing)) OperationalCost of reservoir.
  • level_data_type::ReservoirDataType: (default: ReservoirDataType.USABLE_VOLUME) Reservoir level data type. See ReservoirDataType for reference.
  • ext::Dict{String, Any}: (default: Dict{String, Any}()) An extra dictionary for users to add metadata that are not used in simulation.
  • internal::InfrastructureSystemsInternal: (Do not modify.) PowerSystems.jl internal reference
source