HydroPumpedStorage
PowerSystems.HydroPumpedStorage
— Typemutable struct HydroPumpedStorage <: HydroGen
name::String
available::Bool
bus::ACBus
active_power::Float64
reactive_power::Float64
rating::Float64
base_power::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}
rating_pump::Float64
active_power_limits_pump::MinMax
reactive_power_limits_pump::Union{Nothing, MinMax}
ramp_limits_pump::Union{Nothing, UpDown}
time_limits_pump::Union{Nothing, UpDown}
storage_capacity::UpDown
inflow::Float64
outflow::Float64
initial_storage::UpDown
storage_target::UpDown
operation_cost::Union{HydroGenerationCost, StorageCost, MarketBidCost}
pump_efficiency::Float64
conversion_factor::Float64
status::PumpHydroStatus
time_at_status::Float64
services::Vector{Service}
dynamic_injector::Union{Nothing, DynamicInjection}
ext::Dict{String, Any}
internal::InfrastructureSystemsInternal
end
A hydropower generator with pumped storage and upper and lower 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 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)rating::Float64
: Maximum output power rating of the unit (MVA), validation range:(0, nothing)
base_power::Float64
: Base power of the unit (MVA) for per unitization, 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), validation range:(0, nothing)
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)
rating_pump::Float64
: Maximum power withdrawal (MVA) of the pump, validation range:(0, nothing)
active_power_limits_pump::MinMax
:reactive_power_limits_pump::Union{Nothing, MinMax}
:ramp_limits_pump::Union{Nothing, UpDown}
: ramp up and ramp down limits in MW/min of pump, validation range:(0, nothing)
time_limits_pump::Union{Nothing, UpDown}
: Minimum up and Minimum down time limits of pump in hours, validation range:(0, nothing)
storage_capacity::UpDown
: Maximum storage capacity in the upper and lower reservoirs (units can be p.u-hr or m^3), validation range:(0, nothing)
inflow::Float64
: Baseline inflow into the upper reservoir (units can be p.u. or m^3/hr), validation range:(0, nothing)
outflow::Float64
: Baseline outflow from the lower reservoir (units can be p.u. or m^3/hr), validation range:(0, nothing)
initial_storage::UpDown
: Initial storage capacity in the upper and lower reservoir (units can be p.u-hr or m^3), validation range:(0, nothing)
storage_target::UpDown
: (default:(up=1.0, down=1.0)
) Storage target of upper reservoir at the end of simulation as ratio of storage capacityoperation_cost::Union{HydroGenerationCost, StorageCost, MarketBidCost}
: (default:HydroGenerationCost(nothing)
)OperationalCost
of generationpump_efficiency::Float64
: (default:1.0
) Pumping efficiency [0, 1.0], validation range:(0, 1)
conversion_factor::Float64
: (default:1.0
) Conversion factor from flow/volume to energy: m^3 -> p.u-hrstatus::PumpHydroStatus
: (default:PumpHydroStatus.OFF
) Initial commitment condition at the start of a simulation (PumpHydroStatus.PUMP
,PumpHydroStatus.GEN
, orPumpHydroStatus.OFF
)time_at_status::Float64
: (default:INFINITE_TIME
) Time (e.g.,Hours(6)
) the generator has been generating, pumping, 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::HydroPumpedStorage) -> String
Get HydroPumpedStorage
name
.
PowerSystems.get_active_power
— Methodget_active_power(value::HydroPumpedStorage) -> Any
Get HydroPumpedStorage
active_power
.
PowerSystems.get_active_power_limits
— Methodget_active_power_limits(
value::HydroPumpedStorage
) -> NamedTuple{(:min, :max), <:Tuple{Any, Any}}
Get HydroPumpedStorage
active_power_limits
.
PowerSystems.get_active_power_limits_pump
— Methodget_active_power_limits_pump(
value::HydroPumpedStorage
) -> NamedTuple{(:min, :max), <:Tuple{Any, Any}}
Get HydroPumpedStorage
active_power_limits_pump
.
PowerSystems.get_available
— Methodget_available(value::HydroPumpedStorage) -> Bool
Get HydroPumpedStorage
available
.
PowerSystems.get_base_power
— Methodget_base_power(value::HydroPumpedStorage) -> Float64
Get HydroPumpedStorage
base_power
.
PowerSystems.get_bus
— Methodget_bus(value::HydroPumpedStorage) -> ACBus
Get HydroPumpedStorage
bus
.
PowerSystems.get_conversion_factor
— Methodget_conversion_factor(value::HydroPumpedStorage) -> Float64
Get HydroPumpedStorage
conversion_factor
.
PowerSystems.get_dynamic_injector
— Methodget_dynamic_injector(
value::HydroPumpedStorage
) -> Union{Nothing, DynamicInjection}
Get HydroPumpedStorage
dynamic_injector
.
PowerSystems.get_ext
— Methodget_ext(value::HydroPumpedStorage) -> Dict{String, Any}
Get HydroPumpedStorage
ext
.
PowerSystems.get_inflow
— Methodget_inflow(value::HydroPumpedStorage) -> Any
Get HydroPumpedStorage
inflow
.
PowerSystems.get_initial_storage
— Methodget_initial_storage(
value::HydroPumpedStorage
) -> NamedTuple{(:up, :down), <:Tuple{Any, Any}}
Get HydroPumpedStorage
initial_storage
.
PowerSystems.get_operation_cost
— Methodget_operation_cost(
value::HydroPumpedStorage
) -> Union{HydroGenerationCost, MarketBidCost, StorageCost}
Get HydroPumpedStorage
operation_cost
.
PowerSystems.get_outflow
— Methodget_outflow(value::HydroPumpedStorage) -> Float64
Get HydroPumpedStorage
outflow
.
PowerSystems.get_prime_mover_type
— Methodget_prime_mover_type(
value::HydroPumpedStorage
) -> PrimeMovers
Get HydroPumpedStorage
prime_mover_type
.
PowerSystems.get_pump_efficiency
— Methodget_pump_efficiency(value::HydroPumpedStorage) -> Float64
Get HydroPumpedStorage
pump_efficiency
.
PowerSystems.get_ramp_limits
— Methodget_ramp_limits(
value::HydroPumpedStorage
) -> Union{Nothing, NamedTuple{(:up, :down), <:Tuple{Any, Any}}}
Get HydroPumpedStorage
ramp_limits
.
PowerSystems.get_ramp_limits_pump
— Methodget_ramp_limits_pump(
value::HydroPumpedStorage
) -> Union{Nothing, NamedTuple{(:up, :down), <:Tuple{Any, Any}}}
Get HydroPumpedStorage
ramp_limits_pump
.
PowerSystems.get_rating
— Methodget_rating(value::HydroPumpedStorage) -> Any
Get HydroPumpedStorage
rating
.
PowerSystems.get_rating_pump
— Methodget_rating_pump(value::HydroPumpedStorage) -> Any
Get HydroPumpedStorage
rating_pump
.
PowerSystems.get_reactive_power
— Methodget_reactive_power(value::HydroPumpedStorage) -> Any
Get HydroPumpedStorage
reactive_power
.
PowerSystems.get_reactive_power_limits
— Methodget_reactive_power_limits(
value::HydroPumpedStorage
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HydroPumpedStorage
reactive_power_limits
.
PowerSystems.get_reactive_power_limits_pump
— Methodget_reactive_power_limits_pump(
value::HydroPumpedStorage
) -> Union{Nothing, NamedTuple{(:min, :max), <:Tuple{Any, Any}}}
Get HydroPumpedStorage
reactive_power_limits_pump
.
PowerSystems.get_services
— Methodget_services(value::HydroPumpedStorage) -> Vector{Service}
Get HydroPumpedStorage
services
.
PowerSystems.get_status
— Methodget_status(
value::HydroPumpedStorage
) -> PowerSystems.PumpHydroStatusModule.PumpHydroStatus
Get HydroPumpedStorage
status
.
PowerSystems.get_storage_capacity
— Methodget_storage_capacity(
value::HydroPumpedStorage
) -> NamedTuple{(:up, :down), <:Tuple{Any, Any}}
Get HydroPumpedStorage
storage_capacity
.
PowerSystems.get_storage_target
— Methodget_storage_target(
value::HydroPumpedStorage
) -> @NamedTuple{up::Float64, down::Float64}
Get HydroPumpedStorage
storage_target
.
PowerSystems.get_time_at_status
— Methodget_time_at_status(value::HydroPumpedStorage) -> Float64
Get HydroPumpedStorage
time_at_status
.
PowerSystems.get_time_limits
— Methodget_time_limits(
value::HydroPumpedStorage
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get HydroPumpedStorage
time_limits
.
PowerSystems.get_time_limits_pump
— Methodget_time_limits_pump(
value::HydroPumpedStorage
) -> Union{Nothing, @NamedTuple{up::Float64, down::Float64}}
Get HydroPumpedStorage
time_limits_pump
.
PowerSystems.set_active_power!
— Methodset_active_power!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
active_power
.
PowerSystems.set_active_power_limits!
— Methodset_active_power_limits!(
value::HydroPumpedStorage,
val
) -> Any
Set HydroPumpedStorage
active_power_limits
.
PowerSystems.set_active_power_limits_pump!
— Methodset_active_power_limits_pump!(
value::HydroPumpedStorage,
val
) -> Any
Set HydroPumpedStorage
active_power_limits_pump
.
PowerSystems.set_available!
— Methodset_available!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
available
.
PowerSystems.set_base_power!
— Methodset_base_power!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
base_power
.
PowerSystems.set_bus!
— Methodset_bus!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
bus
.
PowerSystems.set_conversion_factor!
— Methodset_conversion_factor!(
value::HydroPumpedStorage,
val
) -> Any
Set HydroPumpedStorage
conversion_factor
.
PowerSystems.set_ext!
— Methodset_ext!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
ext
.
PowerSystems.set_inflow!
— Methodset_inflow!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
inflow
.
PowerSystems.set_initial_storage!
— Methodset_initial_storage!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
initial_storage
.
PowerSystems.set_operation_cost!
— Methodset_operation_cost!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
operation_cost
.
PowerSystems.set_outflow!
— Methodset_outflow!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
outflow
.
PowerSystems.set_prime_mover_type!
— Methodset_prime_mover_type!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
prime_mover_type
.
PowerSystems.set_pump_efficiency!
— Methodset_pump_efficiency!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
pump_efficiency
.
PowerSystems.set_ramp_limits!
— Methodset_ramp_limits!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
ramp_limits
.
PowerSystems.set_ramp_limits_pump!
— Methodset_ramp_limits_pump!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
ramp_limits_pump
.
PowerSystems.set_rating!
— Methodset_rating!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
rating
.
PowerSystems.set_rating_pump!
— Methodset_rating_pump!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
rating_pump
.
PowerSystems.set_reactive_power!
— Methodset_reactive_power!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
reactive_power
.
PowerSystems.set_reactive_power_limits!
— Methodset_reactive_power_limits!(
value::HydroPumpedStorage,
val
) -> Any
Set HydroPumpedStorage
reactive_power_limits
.
PowerSystems.set_reactive_power_limits_pump!
— Methodset_reactive_power_limits_pump!(
value::HydroPumpedStorage,
val
) -> Any
Set HydroPumpedStorage
reactive_power_limits_pump
.
PowerSystems.set_services!
— Methodset_services!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
services
.
PowerSystems.set_status!
— Methodset_status!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
status
.
PowerSystems.set_storage_capacity!
— Methodset_storage_capacity!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
storage_capacity
.
PowerSystems.set_storage_target!
— Methodset_storage_target!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
storage_target
.
PowerSystems.set_time_at_status!
— Methodset_time_at_status!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
time_at_status
.
PowerSystems.set_time_limits!
— Methodset_time_limits!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
time_limits
.
PowerSystems.set_time_limits_pump!
— Methodset_time_limits_pump!(value::HydroPumpedStorage, val) -> Any
Set HydroPumpedStorage
time_limits_pump
.