Hydro Reservoir
PowerSystems.HydroReservoir — Typemutable struct HydroReservoir <: Device
name::String
available::Bool
storage_level_limits::Union{MinMax, TimeSeriesKey}
initial_level::Float64
spillage_limits::Union{Nothing, MinMax, TimeSeriesKey}
inflow::Union{Float64, TimeSeriesKey}
outflow::Union{Float64, TimeSeriesKey}
level_targets::Union{Nothing, Float64, TimeSeriesKey}
travel_time::Union{Nothing, Float64}
intake_elevation::Float64
head_to_volume_factor::Union{Float64, PiecewisePointCurve}
level_data_type::ReservoirDataType
ext::Dict{String, Any}
internal::InfrastructureSystemsInternal
endA hydropower reservoir that needs to have HydroTurbine attached to generate power, suitable for modeling indenpendent turbines and reservoirs.
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::Union{MinMax, TimeSeriesKey}: Storage level limits for the reservoir in m^3 (if data type is volume) or m (if data type is head).initial_level::Float64: Initial level of the reservoir relative to thestorage_level_limits.spillage_limits::Union{Nothing, MinMax, TimeSeriesKey}: Amount of water allowed to be spilled from the reservoir. If nothing, no spillage is allowed.inflow::Union{Float64, TimeSeriesKey}: Amount of water refilling the reservoir in m^3/h.outflow::Union{Float64, TimeSeriesKey}: Amount of water going to the turbine(s) in m^3/h.level_targets::Union{Nothing, Float64, TimeSeriesKey}: Reservoir level targets at the end of a simulation as a fraction of the total level.travel_time::Union{Nothing, Float64}: Downstream travel time in hoursintake_elevation::Float64: Height of the intake of the reservoir in meters above the sea level.head_to_volume_factor::Union{Float64, PiecewisePointCurve}: Head to volume relationship for the reservoir.level_data_type::ReservoirDataType: Reservoir level data type. (default: ReservoirDataType.USABLE_VOLUME)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_name — Methodget_name(value::HydroReservoir) -> String
Get HydroReservoir name.
PowerSystems.get_available — Methodget_available(value::HydroReservoir) -> Bool
Get HydroReservoir available.
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
) -> Union{Float64, PiecewisePointCurve}
Get HydroReservoir head_to_volume_factor.
PowerSystems.get_inflow — Methodget_inflow(
value::HydroReservoir
) -> Union{Float64, TimeSeriesKey}
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, TimeSeriesKey}
Get HydroReservoir level_targets.
PowerSystems.get_outflow — Methodget_outflow(
value::HydroReservoir
) -> Union{Float64, TimeSeriesKey}
Get HydroReservoir outflow.
PowerSystems.get_spillage_limits — Methodget_spillage_limits(
value::HydroReservoir
) -> Union{Nothing, @NamedTuple{min::Float64, max::Float64}, TimeSeriesKey}
Get HydroReservoir spillage_limits.
PowerSystems.get_storage_level_limits — Methodget_storage_level_limits(
value::HydroReservoir
) -> Union{@NamedTuple{min::Float64, max::Float64}, TimeSeriesKey}
Get HydroReservoir storage_level_limits.
PowerSystems.get_travel_time — Methodget_travel_time(
value::HydroReservoir
) -> Union{Nothing, Float64}
Get HydroReservoir travel_time.
PowerSystems.set_available! — Methodset_available!(value::HydroReservoir, val) -> Any
Set HydroReservoir available.
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
) -> Any
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_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_travel_time! — Methodset_travel_time!(value::HydroReservoir, val) -> Any
Set HydroReservoir travel_time.