HydroReservoir
PowerSystems.HydroReservoir — Typemutable 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
endA 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.,PowerLoadandACBus) can have the same nameavailable::Bool: Indicator of whether the component is connected and online (true) or disconnected, offline, or down (false). Unavailable components are excluded during simulationsstorage_level_limits::MinMax: Storage level limits for the reservoir in m^3, m, or MWh, based on theReservoirDataTypeselected forlevel_data_typeinitial_level::Float64: Initial level of the reservoir relative to thestorage_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 (iflevel_data_typeisReservoirDataType.ENERGY).outflow::Float64: Amount of water naturally going out of the reservoir in m^3/h or MW (iflevel_data_typeisReservoirDataType.ENERGY).level_targets::Union{Nothing, Float64}: Reservoir level targets at the end of a simulation as a fraction of thestorage_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))OperationalCostof 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
InfrastructureSystems.get_available — Methodget_available(value::HydroReservoir) -> Bool
Get HydroReservoir available.
InfrastructureSystems.get_name — Methodget_name(value::HydroReservoir) -> String
Get HydroReservoir name.
InfrastructureSystems.set_available! — Methodset_available!(value::HydroReservoir, val) -> Any
Set HydroReservoir available.
PowerSystems.get_downstream_turbines — Methodget_downstream_turbines(
value::HydroReservoir
) -> Vector{PowerSystems.HydroUnit}
Get HydroReservoir downstream_turbines.
PowerSystems.get_ext — Methodget_ext(value::HydroReservoir) -> Dict{String, Any}
Get HydroReservoir ext.
PowerSystems.get_head_to_volume_factor — Methodget_head_to_volume_factor(
value::HydroReservoir
) -> ValueCurve
Get HydroReservoir head_to_volume_factor.
PowerSystems.get_inflow — Methodget_inflow(value::HydroReservoir) -> Float64
Get HydroReservoir inflow.
PowerSystems.get_initial_level — Methodget_initial_level(value::HydroReservoir) -> Float64
Get HydroReservoir initial_level.
PowerSystems.get_intake_elevation — Methodget_intake_elevation(value::HydroReservoir) -> Float64
Get HydroReservoir intake_elevation.
PowerSystems.get_level_data_type — Methodget_level_data_type(
value::HydroReservoir
) -> ReservoirDataType
Get HydroReservoir level_data_type.
PowerSystems.get_level_targets — Methodget_level_targets(
value::HydroReservoir
) -> Union{Nothing, Float64}
Get HydroReservoir level_targets.
PowerSystems.get_operation_cost — Methodget_operation_cost(
value::HydroReservoir
) -> HydroReservoirCost
Get HydroReservoir operation_cost.
PowerSystems.get_outflow — Methodget_outflow(value::HydroReservoir) -> Float64
Get HydroReservoir outflow.
PowerSystems.get_spillage_limits — Methodget_spillage_limits(
value::HydroReservoir
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}}
Get HydroReservoir spillage_limits.
PowerSystems.get_storage_level_limits — Methodget_storage_level_limits(
value::HydroReservoir
) -> @NamedTuple{min::Float64, max::Float64}
Get HydroReservoir storage_level_limits.
PowerSystems.get_upstream_reservoirs — Methodget_upstream_reservoirs(
value::HydroReservoir
) -> Vector{Device}
Get HydroReservoir upstream_reservoirs.
PowerSystems.get_upstream_turbines — Methodget_upstream_turbines(
value::HydroReservoir
) -> Vector{PowerSystems.HydroUnit}
Get HydroReservoir upstream_turbines.
PowerSystems.set_downstream_turbines! — Methodset_downstream_turbines!(value::HydroReservoir, val) -> Any
Set HydroReservoir downstream_turbines.
PowerSystems.set_ext! — Methodset_ext!(value::HydroReservoir, val) -> Any
Set HydroReservoir ext.
PowerSystems.set_head_to_volume_factor! — Methodset_head_to_volume_factor!(
value::HydroReservoir,
val
) -> LinearCurve
Set HydroReservoir head_to_volume_factor.
PowerSystems.set_inflow! — Methodset_inflow!(value::HydroReservoir, val) -> Any
Set HydroReservoir inflow.
PowerSystems.set_initial_level! — Methodset_initial_level!(value::HydroReservoir, val) -> Any
Set HydroReservoir initial_level.
PowerSystems.set_intake_elevation! — Methodset_intake_elevation!(value::HydroReservoir, val) -> Any
Set HydroReservoir intake_elevation.
PowerSystems.set_level_data_type! — Methodset_level_data_type!(value::HydroReservoir, val) -> Any
Set HydroReservoir level_data_type.
PowerSystems.set_level_targets! — Methodset_level_targets!(value::HydroReservoir, val) -> Any
Set HydroReservoir level_targets.
PowerSystems.set_operation_cost! — Methodset_operation_cost!(value::HydroReservoir, val) -> Any
Set HydroReservoir operation_cost.
PowerSystems.set_outflow! — Methodset_outflow!(value::HydroReservoir, val) -> Any
Set HydroReservoir outflow.
PowerSystems.set_spillage_limits! — Methodset_spillage_limits!(value::HydroReservoir, val) -> Any
Set HydroReservoir spillage_limits.
PowerSystems.set_storage_level_limits! — Methodset_storage_level_limits!(value::HydroReservoir, val) -> Any
Set HydroReservoir storage_level_limits.
PowerSystems.set_upstream_reservoirs! — Methodset_upstream_reservoirs!(value::HydroReservoir, val) -> Any
Set HydroReservoir upstream_reservoirs.
PowerSystems.set_upstream_turbines! — Methodset_upstream_turbines!(value::HydroReservoir, val) -> Any
Set HydroReservoir upstream_turbines.