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
end
A 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.,PowerLoad
andACBus
) 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
.