HydroEnergyReservoir
PowerSystems.HydroEnergyReservoir
— Typemutable struct HydroEnergyReservoir <: HydroGen
name::String
available::Bool
bus::ACBus
active_power::Float64
reactive_power::Float64
rating::Float64
prime_mover_type::PrimeMovers
active_power_limits::MinMax
reactive_power_limits::Union{Nothing, MinMax}
ramp_limits::Union{Nothing, UpDown}
time_limits::Union{Nothing, UpDown}
base_power::Float64
storage_capacity::Float64
inflow::Float64
initial_storage::Float64
operation_cost::Union{HydroGenerationCost, StorageCost, MarketBidCost}
storage_target::Float64
conversion_factor::Float64
status::Bool
time_at_status::Float64
services::Vector{Service}
dynamic_injector::Union{Nothing, DynamicInjection}
ext::Dict{String, Any}
internal::InfrastructureSystemsInternal
end
A hydropower generator with an upper reservoir, offering some energy storage and operational flexibility.
For hydro generators with pumped storage, see HydroPumpedStorage
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 simulationsbus::ACBus
: Bus that this component is connected toactive_power::Float64
: Initial active power set point of the unit in MW. For power flow, this is the steady state operating point of the system. For production cost modeling, this may or may not be used as the initial starting point for the solver, depending on the solver usedreactive_power::Float64
: Initial reactive power set point of the unit (MVAR), validation range:reactive_power_limits
rating::Float64
: Maximum output power rating of the unit (MVA), validation range:(0, nothing)
prime_mover_type::PrimeMovers
: Prime mover technology according to EIA 923. Options are listed hereactive_power_limits::MinMax
: Minimum and maximum stable active power levels (MW)reactive_power_limits::Union{Nothing, MinMax}
: Minimum and maximum reactive power limits. Set toNothing
if not applicableramp_limits::Union{Nothing, UpDown}
: ramp up and ramp down limits in MW/min, validation range:(0, nothing)
time_limits::Union{Nothing, UpDown}
: Minimum up and Minimum down time limits in hours, validation range:(0, nothing)
base_power::Float64
: Base power of the unit (MVA) for per unitization, validation range:(0, nothing)
storage_capacity::Float64
: Maximum storage capacity in the reservoir (units can be p.u-hr or m^3), validation range:(0, nothing)
inflow::Float64
: Baseline inflow into the reservoir (units can be p.u. or m^3/hr), validation range:(0, nothing)
initial_storage::Float64
: Initial storage capacity in the reservoir (units can be p.u-hr or m^3), validation range:(0, nothing)
operation_cost::Union{HydroGenerationCost, StorageCost, MarketBidCost}
: (default:HydroGenerationCost(nothing)
)OperationalCost
of generationstorage_target::Float64
: (default:1.0
) Storage target at the end of simulation as a fraction of storage capacityconversion_factor::Float64
: (default:1.0
) Conversion factor from flow/volume to energy: m^3 -> p.u-hrstatus::Bool
: (default:false
) Initial commitment condition at the start of a simulation (true
= on orfalse
= off)time_at_status::Float64
: (default:INFINITE_TIME
) Time (e.g.,Hours(6)
) the generator has been on or off, as indicated bystatus
services::Vector{Service}
: (default:Device[]
) Services that this device contributes todynamic_injector::Union{Nothing, DynamicInjection}
: (default:nothing
) corresponding dynamic injection deviceext::Dict{String, Any}
: (default:Dict{String, Any}()
) An extra dictionary for users to add metadata that are not used in simulation, such as latitude and longitude.internal::InfrastructureSystemsInternal
: (Do not modify.) PowerSystems.jl internal reference
InfrastructureSystems.get_name
— Methodget_name(value::HydroEnergyReservoir) -> String
Get HydroEnergyReservoir
name
.
PowerSystems.get_active_power
— Methodget_active_power(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
active_power
.
PowerSystems.get_active_power_limits
— Methodget_active_power_limits(
value::HydroEnergyReservoir
) -> NamedTuple{(:min, :max), <:Tuple{Any, Any}}
Get HydroEnergyReservoir
active_power_limits
.
PowerSystems.get_available
— Methodget_available(value::HydroEnergyReservoir) -> Bool
Get HydroEnergyReservoir
available
.
PowerSystems.get_base_power
— Methodget_base_power(value::HydroEnergyReservoir) -> Float64
Get HydroEnergyReservoir
base_power
.
PowerSystems.get_bus
— Methodget_bus(value::HydroEnergyReservoir) -> ACBus
Get HydroEnergyReservoir
bus
.
PowerSystems.get_conversion_factor
— Methodget_conversion_factor(
value::HydroEnergyReservoir
) -> Float64
Get HydroEnergyReservoir
conversion_factor
.
PowerSystems.get_dynamic_injector
— Methodget_dynamic_injector(
value::HydroEnergyReservoir
) -> Union{Nothing, DynamicInjection}
Get HydroEnergyReservoir
dynamic_injector
.
PowerSystems.get_ext
— Methodget_ext(value::HydroEnergyReservoir) -> Dict{String, Any}
Get HydroEnergyReservoir
ext
.
PowerSystems.get_inflow
— Methodget_inflow(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
inflow
.
PowerSystems.get_initial_storage
— Methodget_initial_storage(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
initial_storage
.
PowerSystems.get_operation_cost
— Methodget_operation_cost(
value::HydroEnergyReservoir
) -> Union{HydroGenerationCost, MarketBidCost, StorageCost}
Get HydroEnergyReservoir
operation_cost
.
PowerSystems.get_prime_mover_type
— Methodget_prime_mover_type(
value::HydroEnergyReservoir
) -> PrimeMovers
Get HydroEnergyReservoir
prime_mover_type
.
PowerSystems.get_ramp_limits
— Methodget_ramp_limits(
value::HydroEnergyReservoir
) -> Union{Nothing, NamedTuple{(:up, :down), <:Tuple{Any, Any}}}
Get HydroEnergyReservoir
ramp_limits
.
PowerSystems.get_rating
— Methodget_rating(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
rating
.
PowerSystems.get_reactive_power
— Methodget_reactive_power(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
reactive_power
.
PowerSystems.get_reactive_power_limits
— Methodget_reactive_power_limits(
value::HydroEnergyReservoir
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HydroEnergyReservoir
reactive_power_limits
.
PowerSystems.get_services
— Methodget_services(value::HydroEnergyReservoir) -> Vector{Service}
Get HydroEnergyReservoir
services
.
PowerSystems.get_status
— Methodget_status(value::HydroEnergyReservoir) -> Bool
Get HydroEnergyReservoir
status
.
PowerSystems.get_storage_capacity
— Methodget_storage_capacity(value::HydroEnergyReservoir) -> Any
Get HydroEnergyReservoir
storage_capacity
.
PowerSystems.get_storage_target
— Methodget_storage_target(value::HydroEnergyReservoir) -> Float64
Get HydroEnergyReservoir
storage_target
.
PowerSystems.get_time_at_status
— Methodget_time_at_status(value::HydroEnergyReservoir) -> Float64
Get HydroEnergyReservoir
time_at_status
.
PowerSystems.get_time_limits
— Methodget_time_limits(
value::HydroEnergyReservoir
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get HydroEnergyReservoir
time_limits
.
PowerSystems.set_active_power!
— Methodset_active_power!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
active_power
.
PowerSystems.set_active_power_limits!
— Methodset_active_power_limits!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
active_power_limits
.
PowerSystems.set_available!
— Methodset_available!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
available
.
PowerSystems.set_base_power!
— Methodset_base_power!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
base_power
.
PowerSystems.set_bus!
— Methodset_bus!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
bus
.
PowerSystems.set_conversion_factor!
— Methodset_conversion_factor!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
conversion_factor
.
PowerSystems.set_ext!
— Methodset_ext!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
ext
.
PowerSystems.set_inflow!
— Methodset_inflow!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
inflow
.
PowerSystems.set_initial_storage!
— Methodset_initial_storage!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
initial_storage
.
PowerSystems.set_operation_cost!
— Methodset_operation_cost!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
operation_cost
.
PowerSystems.set_prime_mover_type!
— Methodset_prime_mover_type!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
prime_mover_type
.
PowerSystems.set_ramp_limits!
— Methodset_ramp_limits!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
ramp_limits
.
PowerSystems.set_rating!
— Methodset_rating!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
rating
.
PowerSystems.set_reactive_power!
— Methodset_reactive_power!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
reactive_power
.
PowerSystems.set_reactive_power_limits!
— Methodset_reactive_power_limits!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
reactive_power_limits
.
PowerSystems.set_services!
— Methodset_services!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
services
.
PowerSystems.set_status!
— Methodset_status!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
status
.
PowerSystems.set_storage_capacity!
— Methodset_storage_capacity!(
value::HydroEnergyReservoir,
val
) -> Any
Set HydroEnergyReservoir
storage_capacity
.
PowerSystems.set_storage_target!
— Methodset_storage_target!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
storage_target
.
PowerSystems.set_time_at_status!
— Methodset_time_at_status!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
time_at_status
.
PowerSystems.set_time_limits!
— Methodset_time_limits!(value::HydroEnergyReservoir, val) -> Any
Set HydroEnergyReservoir
time_limits
.