skip to main content
Optimization Reserves
This category depends on selecting either Plant Power Coefficient or Plant Efficiency Curve in the Power category. The methods in this category can be used to account for power reserve requirements in the optimization policy. There is no analogous simulation method associated with this category.
* None
This is the default, no action method. No new slots will be added, and no new variables or constraints will be added to the optimization problem.
* Constraint Based Single Timestep
This method introduces a set of duplicate variables that represent the value of standard variables assuming full deployment of either upward or downward reserves. In the RPL Optimization Goal Set, users can then write parallel constraints using the duplicate reserve variables for any constraint that cannot be violated while deploying reserves. The purpose of the new variables and their parallel constraints is so that the only reserves that are credited to a hydropower project are those that can actually be reasonably deployed. In other words, it will not count reserves that could not be deployed without violating specified constraints. The new method also introduces new variables for upward and downward reserves, which allow the user to write policy on the reserves themselves, for example, project minimum reserve requirements or total system reserve requirements.
One significant assumption is made that the deployment of these reserves are temporary and only meant to cover a single timestep. It is assumed that in the event reserves are deployed in actual operations, adjustments would be made for later time periods, including reestablishing reserves. With this assumption, the consequences of deploying reserves at a reservoir are limited to that reservoir and that timestep; constraints on downstream reservoirs and later timesteps are not considered when calculating the reserves that can be credited at a given timestep.
The deployment variables are constrained similarly to the original variables with two exceptions. First, the mass balance constraints with other reservoirs or intermediate reaches are omitted (within RiverWare). Second, if there are any constraints that can be violated during deployment then these constraints can also be omitted (within the Optimization Goal Set). The deployment variables will typically use the same linear approximations as the original variables. For example, Pool Elevation with Up Reserve will be approximated using the Pool Elevation LP Param table slot.
Note:  This method has no analogous simulation method. The slots introduced by this method can be referenced in the RPL optimization policy to constrain the solution, but they will not, generally, display values after the post-optimization rulebased simulation like the standard variables, such as Outflow or Pool Elevation. The user does have the option of writing customized post-optimization rules to set values in these slots based on user-specified logic or using the OptValue or OptValuePiecewise predefined functions.
Slots Specific to This Method
 Up Reserve
Type: Series Slot
Units: Power
Description: The upward reserves available; the amount the reservoir could increase generation on the given timestep
Information: Introducing this variable in the optimization policy forces a two-point line approximation to be used for both Power and Power with Up Reserve if Independent Linearizations is selected in the Optimization Power category. This may introduce additional approximation error.
Defined by:
 Down Reserve
Type: Series Slot
Units: Power
Description: The downward reserves available; the amount the reservoir could decrease generation on the given timestep
Information: Introducing this variable forces a two-point line approximation to be used for both Power and Power with Down Reserve if Independent Linearizations is selected in the Optimization Power category. This may introduce additional approximation error.
Defined by:
 Power with Up Reserve
Type: Series Slot
Units: Power
Description: The average Power generated if full upward reserves were deployed
Information: This variable is defined by the Power approximation as a function of Turbine Release with Up Reserve and a combination of other variables. The set of other variables depends on which Power approximation is being applied. The Power approximation that is applied is dependent on the selected method in the Optimization Power category.
Defined by:
 Power with Down Reserve
Type: Series Slot
Units: Power
Description: The average Power generated if full downward reserves were deployed
Information: This variable is defined by the Power linear approximation as a function of Turbine Release with Down Reserve and a combination of other variables. The set of other variables depends on which Power approximation is being applied. The Power approximation that is applied is dependent on the selected method in the Optimization Power category.
Defined by:
 Turbine Release with Up Reserve
Type: Series Slot
Units: Flow
Description: The Turbine Release at full deployment of upward reserves
Information: This variable is constrained to be less than or equal to Turbine Capacity with Up Reserve.
Defined by:
and
 Turbine Change with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount Turbine Release would change to fully deploy all upward reserves
Information: This variable is expected to always be non-negative, and thus the slot configuration lower bound should be set to 0.
Defined by:
 Turbine Capacity with Up Reserve
Type: Series Slot
Units: Flow
Description: The maximum Turbine Release possible given the full deployment of upward reserves
Information: This variable is defined by the Turbine Capacity approximation as a function of Operating Head with Up Reserve.
Defined by:
 Operating Head with Up Reserve
Type: Series Slot
Units: Flow
Description: The Operating Head at full deployment of upward reserves.
Information:  
Defined by:
 Spill with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount of total Spill at full deployment of upward reserves
Information: This could be equal to Spill, or it could be less than Spill if flow is allowed to be shifted from Spill to Turbine Release during deployment. This depends on how the RPL policy is formulated.
Defined by:
 Unregulated Spill with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount of Unregulated Spill at full deployment of upward reserves
Information: This quantity is defined by the Unregulated Spill linear approximation as a function of Storage with Up Reserve. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Unregulated Spill, then the value of this variable will automatically be set to zero.
Defined by:
 Regulated Spill with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount of Regulated Spill at full deployment of upward reserves
Information: This could be equal to Regulated Spill, or it could be less than Regulated Spill if flow is allowed to be shifted from Spill to Turbine Release during deployment, or it could be greater than Regulated Spill if the reservoir has a minimum spill requirement as a percentage of total outflow. This depends on how the RPL policy is formulated. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Regulated Spill, then the value of this variable will automatically be set to zero, and the slot should not be referenced in the RPL optimization policy.
Defined by:
and
 Regulated Spill Change with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount Regulated Spill would change to fully deploy all upward reserves
Information: Often this variable will be negative (or 0, and thus the slot Upper Bound will often be set to 0); however it could be positive if the reservoir has a minimum spill requirement as a percentage of total outflow. It could be constrained to be 0, directly or indirectly, by RPL policy, or it could be allowed to be greater than or less than zero. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Regulated Spill, then the slot should not be referenced in the RPL optimization policy.
Defined by:
 Regulated Spill Capacity with Up Reserve
Type: Series Slot
Units: Flow
Description: The maximum Regulated Spill given full deployment of upward reserves
Information: This variable is defined by the Regulated Spill Capacity approximation as a function of Storage with Up Reserve. This slot will get added regardless of which Spill method is selected. Users will not typically need to do anything with this slot.
Defined by:
 Bypass with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount of Bypass at full deployment of upward reserves
Information: This could be equal to Bypass, or it could be less than Bypass if flow is allowed to be shifted from Bypass to Turbine Release during deployment, or it could be greater than Bypass if the reservoir has a minimum bypass requirement as a percentage of total outflow. This depends on how the RPL policy is formulated. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Bypass, then the value of this variable will automatically be set to zero, and the slot should not be referenced in the RPL optimization policy.
Defined by:
and
 Bypass Change with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount Bypass would change to fully deploy all upward reserves
Information: Often this variable will be negative (or 0, and thus the slot Upper Bound will often be set to 0); however it could be positive if the reservoir has a minimum bypass requirement as a percentage of total outflow. It could be constrained to be 0, directly or indirectly, by RPL policy, or it could be allowed to be greater than or less than zero. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Bypass, then the slot should not be referenced in the RPL optimization policy.
Defined by:
 Bypass Capacity with Up Reserve
Type: Series Slot
Units: Flow
Description: The maximum Bypass given full deployment of upward reserves
Information: This variable is defined by the Bypass Capacity approximation as a function of Storage with Up Reserve. This slot will get added regardless of which Spill method is selected. Users will not typically need to do anything with this slot.
Defined by:
 Outflow with Up Reserve
Type: Series Slot
Units: Flow
Description: The amount of total Outflow at full deployment of upward reserves
Information:  
Defined by:
 Storage with Up Reserve
Type: Series Slot
Units: Volume
Description: The end of timestep Storage if full upward reserves were deployed
Information: This variable definition differs from the standard Storage variable only in the Outflow term. The previous Storage and the Net Inflow are the same. Net Inflow represents all gains and losses, including Inflow, Hydrologic Inflow, Precipitation, Evaporation, and so on.
Defined by:
 Pool Elevation with Up Reserve
Type: Series Slot
Units: Length
Description: The end of timestep Pool Elevation if full upward reserves were deployed
Information: This variable is defined by the Pool Elevation linear approximation as a function of Storage with Up Reserve.
Defined by:
 Tailwater Elevation with Up Reserve
Type: Series Slot
Units: Length
Description: The average Tailwater Elevation if full upward reserves were deployed
Information: This variable is defined by the Tailwater Elevation linear approximation as a function of Outflow with Up Reserve and the Tailwater Base Value (if applicable based on the selected Optimization Tailwater method). Tailwater Base Value is unaffected by the Reserves modeling and will be the same for both Tailwater Elevation and Tailwater Elevation with Up Reserves. The Tailwater Elevation linear approximation that is applied is dependent on the selected method in the Optimization Tailwater category.
Defined by:
 Temp Tailwater Lookup with Up Reserve
Type: Series Slot
Units: Length
Description: This slot only applies when the Base Value Plus Lookup Table method is selected in the Tailwater category. It represents the lookup value from the Tailwater Table as a function of Outflow with Up Reserve using the Tailwater linear approximation.
Information: This slot will get added regardless of which Tailwater method is selected but will not get used unless the Base Value Plus Lookup method is selected. Users should not need to do anything with this slot.
Defined by:
 PSA Head Factor with Up Reserve
Type: Series Slot
Units: Flow
Description: This slot only applies when the Power Surface Approximation method is selected in the Optimization Power category. It represents the component of Operating Head that is dependent on Storage with Up Reserve and Spill with Up Reserve. It is calculated using the same coefficients used for the Standard PSA Head Factor variable.
Information: This slot will get added regardless of which Optimization Power method is selected but will not get used unless the Power Surface Approximation method is selected. Users should not need to do anything with this slot.
Defined by:
 Turbine Release with Down Reserve
Type: Series Slot
Units: Flow
Description: The Turbine Release at full deployment of downward reserves
Information:  
Defined by:
and
 Turbine Change with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount Turbine Release would change to fully deploy all downward reserves
Information: This variable is expected to always be negative or zero, and thus the slot configuration Upper Bound should be set to 0.
Defined by:
 Turbine Capacity with Down Reserve
Type: Series Slot
Units: Flow
Description: The maximum Turbine Release possible given the full deployment of downward reserves
Information: This variable is defined by the Turbine Capacity approximation as a function of Operating Head with Down Reserve.
Defined by:
 Operating Head with Down Reserve
Type: Series Slot
Units: Flow
Description: The Operating Head at full deployment of downward reserves.
Information:  
Defined by:
 Spill with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount of total Spill at full deployment of downward reserves
Information: This could be equal to Spill, or it could be greater than Spill if flow is allowed to be shifted from Turbine Release to Spill during deployment. This depends on how the RPL policy is formulated.
Defined by:
 Unregulated Spill with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount of Unregulated Spill at full deployment of downward reserves
Information: This quantity is defined by the Unregulated Spill linear approximation as a function of Storage with Down Reserve. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Unregulated Spill, then the value of this variable will automatically be set to zero.
Defined by:
 Regulated Spill with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount of Regulated Spill at full deployment of downward reserves
Information: This could be equal to Regulated Spill, or it could be greater than Regulated Spill if flow is allowed to be shifted from Turbine Release to Spill during deployment. This depends on how the RPL policy is formulated. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Regulated Spill, then the value of this variable will automatically be set to zero, and the slot should not be referenced in the RPL optimization policy.
Defined by:
and
 Regulated Spill Change with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount Regulated Spill would change to fully deploy all downward reserves
Information: This variable will typically by non-negative. It could be constrained to be 0, directly or indirectly, by RPL policy, or it could be allowed to be greater than zero. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Regulated Spill, then the slot should not be referenced in the RPL optimization policy.
Defined by:
 Regulated Spill Capacity with Down Reserve
Type: Series Slot
Units: Flow
Description: The maximum Regulated Spill given full deployment of downward reserves
Information: This variable is defined by the Regulated Spill Capacity approximation as a function of Storage with Down Reserve. This slot will get added regardless of which Spill method is selected. Users will not typically need to do anything with this slot
Defined by:
 Bypass with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount of Bypass at full deployment of downward reserves
Information: This could be equal to Bypass, or it could be greater than Bypass if flow is allowed to be shifted from Turbine Release to Bypass during deployment. This depends on how the RPL policy is formulated. his slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Bypass, then the value of this variable will automatically be set to zero, and the slot should not be referenced in the RPL optimization policy.
Defined by:
and
 Bypass Change with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount Bypass would change to fully deploy all downward reserves
Information: This variable will typically be non-negative. It could be constrained to be 0, directly or indirectly, by RPL policy, or it could be allowed to be greater than zero. This slot will get added regardless of which Spill method is selected. If the selected Spill method does not include Bypass, then the slot should not be referenced in the RPL optimization policy.
Defined by:
 Bypass Capacity with Down Reserve
Type: Series Slot
Units: Flow
Description: The maximum Bypass given full deployment of downward reserves
Information: This variable is defined by the Bypass Capacity approximation as a function of Storage with Down Reserve. This slot will get added regardless of which Spill method is selected. Users will not typically need to do anything with this slot
Defined by:
 Outflow with Down Reserve
Type: Series Slot
Units: Flow
Description: The amount of total Outflow at full deployment of downward reserves
Information:  
Defined by:
 Storage with Down Reserve
Type: Series Slot
Units: Volume
Description: The end of timestep Storage if full downward reserves were deployed
Information: This variable definition differs from the standard Storage variable only in the Outflow term. The previous Storage and the Net Inflow are the same. Net Inflow represents all gains and losses, including Inflow, Hydrologic Inflow, Precipitation, Evaporation, and so on.
Defined by:
 Pool Elevation with Down Reserve
Type: Series Slot
Units: Length
Description: The end of timestep Pool Elevation if full downward reserves were deployed
Information: This variable is defined by the Pool Elevation linear approximation as a function of Storage with Down Reserve.
Defined by:
 Tailwater Elevation with Down Reserve
Type: Series Slot
Units: Length
Description: The average Tailwater Elevation if full downward reserves were deployed
Information: This variable is defined by the Tailwater Elevation linear approximation as a function of Outflow with Down Reserve and the Tailwater Base Value (if applicable based on the selected Optimization Tailwater method). Tailwater Base Value is unaffected by the Reserves modeling and will be the same for both Tailwater Elevation and Tailwater Elevation with Up Reserves. The Tailwater Elevation linear approximation that is applied is dependent on the selected method in the Optimization Tailwater category.
Defined by:
 Temp Tailwater Lookup with Down Reserve
Type: Series Slot
Units: Length
Description: This slot only applies when the Base Value Plus Lookup Table method is selected in the Tailwater category. It represents the lookup value from the Tailwater Table as a function of Outflow with Down Reserve using the Tailwater linear approximation.
Information: This slot will get added regardless of which Tailwater method is selected but will not get used unless the Base Value Plus Lookup method is selected. Users should not need to do anything with this slot.
Defined by:
 PSA Head Factor with Down Reserve
Type: Series Slot
Units: Flow
Description: This slot only applies when the Power Surface Approximation method is selected in the Optimization Power category. It represents the component of Operating Head that is dependent on Storage with Down Reserve and Spill with Up Reserve. It is calculated using the same coefficients used for the Standard PSA Head Factor variable.
Information: This slot will get added regardless of which Optimization Power method is selected but will not get used unless the Power Surface Approximation method is selected. Users should not need to do anything with this slot.
Defined by:
Method Details  
Sample RPL Goal Set Implementation
Within a RPL Goal set, any constraint that should not be violated when deploying reserves should include a constraint on the standard variables as well as a duplicated constraint on the corresponding reserves variables. For example, assume that a reservoir has a maximum pool elevation that cannot be violated when reserves are deployed, and that maximum pool elevation is stored in a series slot on a data object called Res_Data.PE_Max. The RPL goal might look like:
REPEATED MAXIMIN
FOR(DATETIME t IN @”Start Timestep” TO @”Finish Timestep”) DO
ADD CONSTRAINT Res.Pool Elevation[t] <= Res_Data.PE_Max[t]
ADD CONSTRAINT Res.Pool Elevation with Down Reserve[t] <= Res_Data.PE_Max[t]
END FOR
END REPEATED MAXIMIN
The reservoir might also have a target elevation constraint that is a lower priority and can be violated by the deployment of reserves. In this case, the target goal would only include a constraint on the Pool Elevation slot but not a constraint on the Pool Elevation with Down Reserve slot.
Referencing any of the reserve slots in a RPL policy statement will typically draw a large number of additional variables and constraints into the optimization problem. For performance reasons, the user will probably not want these additional constraints to be added unless they are necessary. Assume, for example, that it is known prior to a run that a particular reservoir is not available to provide reserves during select hours. This may be indicated by setting an input value of 0 MW for those hours in a data object series slot called Res_Data.Down_Reserve_Max (similarly for Up Reserve). It would not be necessary to model the reserve versions of constraints for those time steps because it is already known that reserves will be zero. In this case the goal with the Pool Elevation constraints shown previously might be written as:
REPEATED MAXIMIN
FOR(DATETIME t IN @”Start Timestep” TO @”Finish Timestep”) DO
ADD CONSTRAINT Res.Pool Elevation[t] <= Res_Data.PE_Max[t]
IF(Res_Data.Down_Reserve_Max[t] != 0 MW)
ADD CONSTRAINT Res.Pool Elevation with Down Reserve[t] <= Res_Data.PE_Max[t]
END IF
END FOR
END REPEATED MAXIMIN
In this way, the constraint on Pool Elevation with Down Reserve would only be added when the reservoir is available to provide reserves (the max reserves are not constrained to zero).
Users could then write policy on the reserves to be carried at individual projects. Assume that the data object series slots Res_Data.Up_Reserve_Min and Res_Data.Up_Reserve_Max store the minimum upward reserves that the reservoir must carry and the maximum upward reserves the project can be credited respectively. A goal for the reservoir might be:
REPEATED MAXIMIN
FOR(DATETIME t IN @”Start Timestep” TO @”Finish Timestep”) DO
IF(Res_Data.Up_Reserve_Max[t] != 0 MW)
ADD CONSTRAINT Res.Up Reserve[t] >= Res_Data.Up_Reserve_Min[t]
ADD CONSTRAINT Res.Up Reserve[t] <= Res_Data.Up_Reserve_Max[t]
END IF
END FOR
END REPEATED MAXIMIN
These two constraints may not necessarily be included in the same goal.
Note:  The first constraint based on the minimum required reserves will constrain the physical operations of the reservoir in order to meet the required reserve obligation. The second constraint, based on the maximum credited reserves will not directly constraint the physical operations, rather it will only limit the amount of reserves that can be counted. In other words, the solution may operate the reservoir such that, according to physical limits and other specified constraints, the reservoir may have a larger amount of reserves available, but this constraint allows the user to say that only a limited amount will be counted.
Users may then write goals which sum reserves across multiple projects to meet a system reserve requirement.
REPEATED MAXIMIN
FOR(DATETIME t IN @”Start Timestep” TO @”Finish Timestep”) DO
ADD CONSTRAINT (FOR(OBJECT res IN ProjectsAvailableForUpReserve(t)) SUM
res.Up Reserve[t]
END FOR)
>= System_Data.Up_Reserve_Min[t]
END FOR
END REPEATED MAXIMIN
In this goal, ProjectsAvailableForUpReserve represents a user-defined function that returns a list of reservoirs that can carry reserves, again to prevent adding numerous constraints on the reserves version of variables unnecessarily. The details of this function would be model-specific.
Revised: 12/06/2024