Public API Reference
Formulations
HydroPowerSimulations.HydroCommitmentReservoirBudget
— TypeFormulation type to add commitment and injection variables constrained by total energy production budget defined with a time series for PowerSystems.HydroGen
HydroPowerSimulations.HydroCommitmentReservoirStorage
— TypeFormulation type to constrain hydropower production with unit commitment variables and a representation of the energy storage capacity and water inflow time series of a reservoir for PowerSystems.HydroGen
HydroPowerSimulations.HydroCommitmentRunOfRiver
— TypeFormulation type to add commitment and injection variables constrained by a maximum injection time series for PowerSystems.HydroGen
HydroPowerSimulations.HydroDispatchPumpedStorage
— TypeFormulation type to constrain energy production from pumped storage with a representation of the energy storage capacity of upper and lower reservoirs and water inflow time series of upper reservoir and outflow time series of lower reservoir for PowerSystems.HydroPumpedStorage
HydroPowerSimulations.HydroDispatchReservoirBudget
— TypeFormulation type to add injection variables constrained by total energy production budget defined with a time series for PowerSystems.HydroGen
HydroPowerSimulations.HydroDispatchReservoirStorage
— TypeFormulation type to constrain hydropower production with a representation of the energy storage capacity and water inflow time series of a reservoir for PowerSystems.HydroGen
HydroPowerSimulations.HydroDispatchRunOfRiver
— TypeFormulation type to add injection variables constrained by a maximum injection time series for PowerSystems.HydroGen
Variables
HydroPowerSimulations.HydroEnergyOutput
— TypeAuxiliary Variable for Hydro Models that solve for total energy output
Docs abbreviation: $E^\text{hy,out}$
HydroPowerSimulations.HydroEnergyShortageVariable
— TypeStruct to dispatch the creation of a slack variable for energy storage levels < target storage levels
Docs abbreviation: $e^\text{shortage}$
HydroPowerSimulations.HydroEnergySurplusVariable
— TypeStruct to dispatch the creation of a slack variable for energy storage levels > target storage levels
Docs abbreviation: $e^\text{surplus}$
HydroPowerSimulations.HydroEnergyVariableDown
— TypeStruct to dispatch the creation of a variable for energy storage level (state of charge) of lower reservoir
Docs abbreviation: $e^\text{dn}$
HydroPowerSimulations.HydroEnergyVariableUp
— TypeStruct to dispatch the creation of a variable for energy storage level (state of charge) of upper reservoir
Docs abbreviation: $e^\text{up}$
HydroPowerSimulations.WaterSpillageVariable
— TypeStruct to dispatch the creation of energy (water) spillage variable representing energy released from a storage/reservoir not injected into the network
Docs abbreviation: $s$
Parameters
HydroPowerSimulations.EnergyBudgetTimeSeriesParameter
— TypeParameter to define energy budget time series for hydro generators
HydroPowerSimulations.EnergyTargetTimeSeriesParameter
— TypeParameter to define energy storage target level time series for hydro generators
HydroPowerSimulations.HydroUsageLimitParameter
— TypeParameter to define energy usage limit for feedforward
HydroPowerSimulations.InflowTimeSeriesParameter
— TypeParameter to define energy inflow to storage or reservoir time series
HydroPowerSimulations.OutflowTimeSeriesParameter
— TypeParameter to define energy outflow from storage or reservoir time series
HydroPowerSimulations.ReservoirLimitParameter
— TypeParameter to define energy limit for feedforward
HydroPowerSimulations.ReservoirTargetParameter
— TypeParameter to define energy target for feedforward
Expressions
HydroPowerSimulations.ReserveRangeExpressionLB
— TypeExpression for PowerSystems.HydroPumpedStorage
that keep track of active power and reserves for Lower Bound limits
HydroPowerSimulations.ReserveRangeExpressionUB
— TypeExpression for PowerSystems.HydroPumpedStorage
that keep track of active power and reserves for Upper Bound limits
Constraints
HydroPowerSimulations.EnergyBudgetConstraint
— TypeStruct to create the constraint that limits the budget for reservoir formulations.
For more information check HydroPowerSimulations Formulations.
The specified constraint is formulated as:
\[\sum_{t=1}^T p^\text{hy}_t \le \sum_{t=1}^T \text{EnergyBudgetTimeSeriesParameter}_t,\]
HydroPowerSimulations.EnergyCapacityDownConstraint
— TypeStruct to create the constraint that keeps track of the reservoir level of the lower (down) reservoir
For more information check HydroPowerSimulations Formulations.
The specified constraint is formulated as:
\[e_{t}^\text{dn} = e_{t-1}^\text{dn} + \left (p_t^\text{hy,out} + s_t - \frac{p_t^\text{hy,in}}{\eta^\text{pump}} \right) \Delta T - \text{OutflowTimeSeriesParameter}_t, \quad \forall t \in \{1,\dots, T\}\]
HydroPowerSimulations.EnergyCapacityUpConstraint
— TypeStruct to create the constraint that keeps track of the reservoir level of the upper (up) reservoir
For more information check HydroPowerSimulations Formulations.
The specified constraint is formulated as:
\[e_{t}^\text{up} = e_{t-1}^\text{up} + \left (p_t^\text{hy,in} - \frac{p_t^\text{hy,out} + s_t}{\eta^\text{pump}} \right) \Delta T + \text{InflowTimeSeriesParameter}_t, \quad \forall t \in \{1,\dots, T\}\]
HydroPowerSimulations.EnergyTargetConstraint
— TypeStruct to create the constraint that set-up the target for reservoir formulations.
For more information check HydroPowerSimulations Formulations.
The specified constraint is formulated as:
\[e_t + e^\text{shortage} + e^\text{surplus} = \text{EnergyTargetTimeSeriesParameter}_t, \quad \forall t \in \{1,\dots, T\}\]
Initial Conditions
HydroPowerSimulations.InitialHydroEnergyLevelDown
— TypeInitial condition for Down reservoir in PowerSystems.HydroPumpedStorage
formulations
HydroPowerSimulations.InitialHydroEnergyLevelUp
— TypeInitial condition for Upper reservoir in PowerSystems.HydroPumpedStorage
formulations
Feedforwards
HydroPowerSimulations.HydroUsageLimitFeedforward
— TypeHydroUsageLimitFeedforward(
component_type::Type{<:PowerSystems.Component},
source::Type{T},
affected_values::Vector{DataType},
meta = CONTAINER_KEY_EMPTY_META
) where {T}
Adds a constraint to enforce a maximum usage of hydro energy based on the source value. It is recommended to use the Auxiliary Variable HydroEnergyOutput as Source, affecting the HydroUsageLimitParameter.
Arguments:
component_type::Type{<:
PowerSystems.Component
}
: Specify the type of component on which the Feedforward will be appliedsource::Type{T}
: Specify the VariableType, ParameterType or AuxVariableType as the source of values for the Feedforwardaffected_values::Vector{DataType}
: Specify the variable on which the hydro limit will be applied using the source values
HydroPowerSimulations.ReservoirLimitFeedforward
— TypeReservoirLimitFeedforward(
component_type::Type{<:PSY.Component},
source::Type{T},
affected_values::Vector{DataType},
number_of_periods::Int,
meta = CONTAINER_KEY_EMPTY_META
) where {T}
Adds a constraint to limit the sum of a variable over the number of periods to the source value.
Arguments:
component_type::Type{<:
PowerSystems.Component
}
: Specify the type of component on which the Feedforward will be appliedsource::Type{T}
: Specify the VariableType, ParameterType or AuxVariableType as the source of values for the Feedforwardaffected_values::Vector{DataType}
: Specify the variable on which the reservoir limit will be applied using the source valuesnumber_of_periods::Int
: Specify the total number of periods that are added on which the limits are applied. For example, in a 24-step simulation ifnumber_of_periods = 24
, it will add only one constraint over the sum of 24 periods on which the reservoir limit will be applied. Ifnumber_of_periods = 12
, it will create two constraints, one for the first 12 steps and one for the 13:24 steps. It is mandatory thatnumber_of_periods
can divide the total number of simulation steps.
HydroPowerSimulations.ReservoirTargetFeedforward
— TypeReservoirTargetFeedforward(
component_type::Type{<:PowerSystems.Component},
source::Type{T},
affected_values::Vector{DataType},
target_period::Int,
penalty_cost::Float64,
meta = CONTAINER_KEY_EMPTY_META
) where {T}
Adds a constraint to enforce a minimum reservoir level target with a slack variable associated with a penalty term.
Arguments:
component_type::Type{<:
PowerSystems.Component
}
: Specify the type of component on which the Feedforward will be appliedsource::Type{T}
: Specify the VariableType, ParameterType or AuxVariableType as the source of values for the Feedforwardaffected_values::Vector{DataType}
: Specify the variable on which the reservoir target will be applied using the source valuestarget_period::Int
: Specify the time step at which the reservoir target will be applied.penalty_cost::Float64
: Specify the penalty cost for not reaching the desired reservoir target.