skip to main content
Power Reservoir Methods
Objects and Methods
Power Reservoir Methods
User Methods
This section describes user methods that can be used in modeling the following power reservoir objects:
Power
The Power category user methods calculate the flow through the turbines (Turbine Release) and the Power and Energy generated. These methods require that the total Outflow of the Reservoir be known
* None
This is the default method in the Power category. It contains no calculations for Power or Energy. There are no slots specifically associated with this method.
Slots Specific to This Method
• None
The method first checks that Energy and Turbine Release are not input by the user. These slots cannot be input when None is the selected method. If either of these two slots are input, a RiverWare error will be posted and the simulation run aborted.
Next, the selected method in the Power Plant Failure category is executed. This sets the Power Plant Cap Fraction if necessary and checks for plant shutoff/failure. If the plant is shutoff/failed, the turbine Release is set to 0.0.
Otherwise, the Turbine Release is calculated as the difference between Outflow and Spill.
* No Power Turbine Flow
The No Power Turbine Flow method is used to model Turbine Release without any power generation. Turbine Release is calculated as the Outflow minus Spill. The computed Turbine Release can not be larger than the Max Flow Through Turbines.
Slots Specific to This Method
Max Flow Through Turbines
Type: Table Slot
Units: LENGTH vs. FLOW
Description: relationship between Pool Elevation and Turbine Capacity
Information:  
I/O: Required input
The method first checks that Energy and Turbine Release are not input by the user. These slots are not valid for user input when the No Power Turbine Flow method is selected. If either of these two slots is input, a RiverWare error will be posted and the simulation run will be aborted. Pool Elevation is then used in an interpolation scheme to determine the maximum release from the Max Turbine Flow table.
Next, the selected method in the Power Plant Failure category is executed. This sets the Power Plant Cap Fraction if necessary and checks for plant shutoff/failure. If the plant is shutoff/failed, the turbine Release is set to 0.0.
Otherwise, the Turbine Release is set as either Outflow minus Spill or maximum release. It is set as the lesser of the two values because the Turbine Release must be less than the Turbine Capacity.
* Plant Power Coefficient
The Plant Power Coefficient method calculates the Power and Energy generated based on the whole plant characteristics. If the Power Coefficient is specified, the Power is calculated directly, unless the BEST EFFICIENCY or MAX CAPACITY flag is set on Energy. If its not input, the Power Coefficient is found from the interpolation of the Best or Max Turbine Q and Power Coefficient tables using the current Operating Head. If the Turbine Release is less than the Best Turbine Q, the Best Power Coefficient Table is used. If the Turbine Release is greater than the Max Turbine Q, then the Max Power Coefficient Table is used. If the Turbine Release is between the two, an intermediate Power Coefficient Value is found by interpolation.
Slots Specific to This Method
Best Hydro Capacity
Type: Series Slot
Units: POWER
Description: most efficient hydro capacity of the plant at the current timestep
Information: Solved iteratively based on Best Turbine Q and the Best Power Coefficient.
I/O: Output only
Best Power Coefficient
Type: Table Slot
Units: LENGTH vs. POWER per FLOW
Description: Operating Head vs. most efficient power coefficient
Information: The Power Coefficient relates turbine release to power generated. The Best Power Coefficient represents the most efficient power generation.
I/O: Required input
Best Turbine Q
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. flow through turbine for most efficient power generation
Information:  
I/O: Required input
Hydro Capacity
Type: Agg Series Slot
Units: POWER
Description: maximum hydro capacity of plant at the current timestep
Information: Solved iteratively based on Max Turbine Q and the Maximum Power Coefficient.
I/O: Output only
Max Power Coefficient
Type: Table Slot
Units: LENGTH vs. POWER per FLOW
Description: Operating Head vs. maximum power coefficient
Information: The Power Coefficient relates turbine release to power generated. The Max Power Coefficient represents the maximum Turbine Release.
I/O: Required input
Max Turbine Q
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. maximum flow through the turbine
Information:  
I/O: Required input
Minimum Power Elevation
Type: Table Slot
Units: LENGTH
Description: minimum Pool Elevation for power production
Information:  
I/O: Required input
Plant Power Limit
Type: Series Slot
Units: POWER
Description: Power output is limited to this value
Information:  
I/O: Optional; This constraint on power is only applied if the user inputs a value for the timestep.
Power Coefficient
Type: Series Slot
Units: POWER per FLOW
Description: power generated per unit power release
Information:  
I/O: Optional; can be input or calculated.
Power Plant Cap Fraction
Type: Series Slot
Units: FRACTION
Description: the percentage of full capacity of the turbine units in the hydropower plant
Information:  
I/O: Optional; The value of this slot defaults to 100% if not input by user.
Plant Power Table
Type: Table Slot
Units: LENGTH, FLOW, POWER
Description: 3-D table used to determine power linearization in optimization
Information: This slot is only used for this method in the context of an Optimization run. It must be populated with data when this method is used in the context of Optimization. It can be left empty otherwise. Data must be entered into the table in increasing, concave blocks of the same Operating Head for the 3-dimensional table interpolation to work correctly. For every block of the same Operating Head in column 1, Turbine Release and the corresponding Power should be listed in increasing, concave order in columns 2 and 3. There must be a point of zero Turbine Release and zero Power for each Operating Head. The following table is an example of the proper way to formulate the Plant Power Table. This table can be derived from the Best Turbine Q, Best Power Coefficient, Max Turbine Q and Max Power Coefficient slots.
 
Operating Head
Turbine Release
Power
30
0
0
30
100
100
30
200
175
40
0
0
40
100
125
40
220
195
50
0
0
50
110
147
50
250
205
I/O: Input Only
Power Curvature Tolerance
Type: Scalar
Units: None
Description: The power curvature tolerance is used to account for anomalies in Plant Power Table data and round off error while calculating slopes.
Information: This slot is only used in the context of an Optimization run. Although the units for the slot are “None”, the comparison is implicitly using (MW/cms).
I/O: Input or defaults to 1X10-6
This method performs calculations to compute the power generated at each timestep.
1. First, Tailwater Elevation and Operating Head are determined based on the user method selected in the Tailwater category.
2. Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
3. Then, the method checks if the Minimum Power Elevation was input by the user. If no value was input, a RiverWare error is posted and the simulation run is aborted. If the previous Pool Elevation is less than the Minimum Power Elevation or the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
a. Energy, Power, Hydro Capacity, and Best Hydro Capacity are set equal to zero.
b. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
c. Turbine Release is set equal to zero.
4. Now, Operating Head is used to determine the maximum power release through interpolation on the Max Turbine Q table. The maximum power release value is multiplied by the Power Plant Cap Fraction to account for the state of the turbine units.
If Turbine Release is already set from the dispatch method “solveMB_givenInflowRelease”, the following checks are performed:
• If Turbine Release is greater than Outflow - Spill, a RiverWare error is posted reading, “Requested Power Release is Greater than Outflow - Spill” and the run is aborted.
• If Turbine Release is greater than the maximum power release, a RiverWare error is posted reading, “Requested Turbine Release is greater than Maximum Turbine Capacity” and the run is aborted.
If the Turbine Release was input by the user, a RiverWare error is posted and the run is aborted. If neither the Energy nor the Turbine Release were input and the Energy was not set by a rules, the Turbine Release is set equal to the lesser of the Maximum Power Release or the value of the Outflow minus the Spill.
Using the calculated value of Operating Head, QmaxTemp and QbestTemp are obtained from the Max Turbine Q Table and the Best Turbine Q Table, respectively. Both values are then multiplied by the Power Plant Cap Fraction to obtain Qmax and Qbest. The Operating Head is also used to determine both the best power coefficient and the max power coefficient through interpolation of the Best Power Coefficient and Max Power Coefficient tables, respectively.
The following calculations are not performed if Energy is Input, set by a Rule, or flagged BEST EFFICIENCY or MAX CAPACITY. In these cases the Power, Energy, and Power Coefficient have already been calculated in Plant Power Coefficient Release.
If the Power Coefficient is not input by the user, the following steps are performed.
1. If the maximum power coefficient is greater than the best power coefficient, the following RiverWare error is posted, “best Power Coeff < full gate Power Coeff” and the simulation run is aborted.
2. If Qbest is greater than Qmax, the following RiverWare error is posted, “Best Turbine Q > Max Turbine Q” and the simulation run is aborted.
3. If Qbest equals Qmax, the Power Coefficient is set equal to the best power coefficient.
4. If none of the previous three conditions are satisfied and the Turbine Release is less than or equal to Qbest, the Power Coefficient is set equal to the best power coefficient.
5. If none of the previous four conditions are satisfied and the Turbine Release is less than Qmax, the Power Coefficient is calculated using the following equation:
6. If none of the previous four conditions are true, the Power Coefficient is set equal to the max power coefficient.
Power is then calculated using the following equation:
If the user has input the Plant Power Limit, the following steps are taken.
1. If the Power Coefficient is input by the user, Power and Turbine Release may need to be recalculated. If the Power is greater than the Plant Power Limit, Power is set equal to the Plant Power Limit and Turbine Release is recalculated as the Plant Power Limit divided by the Power Coefficient.
2. If the Power Coefficient is not input and the Plant Power Limit is exceeded; the Turbine Release, Power, and Power Coefficient may need to be recalculated. If the Power Coefficient is equal to the best power coefficient, the plant is already operating at best efficiency. Therefore, the Turbine Release is set equal to the Plant Power Limit divided by the Power Coefficient and the rest of the flow is spilled. The Power and Power Coefficient do not need to be recalculated.
If the Power Coefficient is not equal to the best power coefficient, Turbine Release, Power, and the Power Coefficient need to be recalculated. This is done through the following steps.
• Temporary variables are calculated from the following equations:
• If Qlimit is greater than Qmax: the Power Coefficient is set equal to the max power coefficient, Turbine release is set equal to Qmax, and Power is set equal to the power at max.
• If Qlimit is less than Qbest: the Power Coefficient is set equal to the best power coefficient, Turbine Release is set equal to Qlimit, and Power is set equal to the Plant Power Limit.
• If Qlimit is less than Qmax but greater than Qbest: the Power Coefficient is set to equal to PClimit, Turbine Release is set equal to Qlimit, and Power is set equal to the Plant Power Limit.
If the Spilled Energy Power Coefficient is visible on the reservoir and it is not input, it is set equal to the Power Coefficient.
Energy is calculated as Power multiplied by the timestep (in hours).
The following calculations always take place, regardless of the flag on Energy.
If either the Turbine Release is equal to the maximum power release or the Energy is at the maximum capacity, Hydro Capacity is set equal to Power and the Best Hydro Capacity is obtained from the getHydroCap function. If the energy is at the Best Efficiency, the Best Hydro Capacity is set equal to the Power and the Hydro Capacity is obtained from the getHydroCapacity function. If neither the Turbine Release is equal to the maximum power release, the Energy is at the maximum capacity, nor the Energy is at the Best Efficiency, both Hydro Capacity and Best Hydro capacity are obtained with the getHydroCap function.
* Plant Efficiency Curve
The Plant Efficiency Curve method calculates the Power and Energy generated based on the whole plant characteristics. If the Power Coefficient is specified, the Power is calculated directly, unless the BEST EFFICIENCY or MAX CAPACITY flag is set on Energy. If the Power Coefficient is not input, the Power is found by a 3-D interpolation of the Plant Power Table using the current, average Operating Head and Turbine Release. The Power Coefficient is calculated as Power divided by Turbine Release.
Slots Specific to This Method
Plant Power Table
Type: Table Slot
Units: LENGTH, FLOW, POWER
Description: 3-D table used to determine power using interpolation
Information: Data must be entered into the table in increasing, concave blocks of the same Operating Head for the 3-dimensional table interpolation to work correctly. For every block of the same Operating Head in column 1, Turbine Release and the corresponding Power should be listed in increasing, concave order in columns 2 and 3. There must be a point of zero Turbine Release and zero Power for each Operating Head. The second to last row for each Operating Head is the point used to populate the Auto Best Turbine Q Table. This point is typically used to represent all units on at best efficiency. (This may not be equivalent to the point for that Operating Head with the highest efficiency, which should only the most efficient unit(s) at their best efficiency and would correspond to the point in the Auto First Turbine Q table.) The last row for each Operating Head is the point of maximum Turbine Release and maximum Power production and is used to populate the Auto Max Turbine Q table. If there are only two rows for a given Operating Head, both the best efficiency and max capacity are equal to the second row. The following table is an example of the proper way to formulate the Plant Power Table, and the following figure displays the increasing concave blocks at each operating head.
 
Operating Head
Turbine Release
Power
30
0
0
30
100
100
30
200
175
40
0
0
40
100
125
40
220
195
50
0
0
50
110
147
50
250
205
I/O: Input Only
Power Coefficient
Type: Series Slot
Units: POWER per FLOW
Description: power generated per unit flow release
I/O: Optional; if input, it is used to compute power. Otherwise, power is computed from the Plant Power Table
Hydro Capacity
Type: Series Slot
Units: POWER
Description: This is the maximum power that can be produced at the current timestep
Information: Solved for iteratively based on the Operating Head and maximum possible release.
I/O: Output Only
Best Hydro Capacity
Type: Series Slot
Units: POWER
Description: This is the power that would be produced at the most efficient operating point at the current timestep.
Information: Solved for iteratively based on the most efficient operating point and the corresponding release.
I/O: Output Only
Power Plant Cap Fraction
Type: Series Slot
Units: FRACTION
Description: Must be a number less than or equal to 1. If not input, automatically set to 1.
Information: This is the percentage of full capacity of the turbine units in the hydropower plant. For example, if only half of the turbines are operational (and they are all the same), this value would be 0.5
I/O: Can be input by user. If not, value is set to 1.
Minimum Power Elevation
Type: Series Slot
Units: LENGTH
Description: The minimum elevation at which the reservoir can still produce power.
I/O: Input Only
Plant Power Limit
Type: Series Slot
Units: POWER
Description: The max power that the plant can produce at a given timestep.
I/O: Optional, only applies if input by user
Auto Best Turbine Q
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. Turbine Release for most efficient power generation for each Operating Head in the Plant Power Table
Information: This table is populated automatically at the beginning of the run based on the Plant Power Table. If there are three or more rows for the given Operating Head in the Plant Power Table, the second to last row for that Operating Head is used. This point is typically used to represent all units on at best efficiency. (This may not be equivalent to the point for that Operating Head with the highest efficiency, which should represent only the most efficient unit(s) at their best efficiency and would correspond to the point in the Auto First Turbine Q table.) If there are only two rows (one non-zero row) for a given Operating Head, the Auto Best Turbine Q, Auto Max Turbine Q and Auto First Turbine Q tables will all use the same point. If there are only three rows for a given Operating Head, the Auto Best Turbine Q and Auto First Turbine Q tables will both use the second point.
I/O: Output only
Auto Max Turbine Q
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. Turbine Release for maximum turbine capacity for each Operating Head in the Plant Power Table
Information: This table is populated automatically at the beginning of the run based on the Plant Power Table using the last row for each Operating Head in the Plant Power Table. If there are only two rows (one non-zero row) for a given Operating Head, the Auto Best Turbine Q, Auto Max Turbine Q and Auto First Turbine Q tables will all use the same point.
I/O: Output only
Auto First Turbine Q
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. Turbine Release for the first non-zero point for each Operating Head in the Plant Power Table
Information: This table is populated automatically at the beginning of the run based on the Plant Power Table using the first non-zero row for each Operating Head in the Plant Power Table. If there are only two rows (one non-zero row) for a given Operating Head, the Auto Best Turbine Q, Auto Max Turbine Q and Auto First Turbine Q tables will all use the same point. If there are only three rows for a given Operating Head, the Auto Best Turbine Q and Auto First Turbine Q tables will both use the second point.
I/O: Output only
Power Curvature Tolerance
Type: Scalar
Units: None
Description: The power curvature tolerance is used to account for anomalies in Plant Power Table data and round off error while calculating slopes.
Information: Although the units for the slot are “None”, the comparison is implicitly using (MW/cms).
I/O: Input or defaults to 1X10-6
At the start of an optimization run, the Plant Power Table is checked for concavity. The slope of each segment for each block is calculated as follows:
The table is considered concave if:
The table is required to be concave for optimization runs, but not for simulation or rulebased simulation runs.
This method performs calculations to compute the power generated at each timestep.
First, Tailwater Elevation and Operating Head are determined based on the user method selected in the Tailwater category.
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if the Minimum Power Elevation was input by the user. If no value was input, a RiverWare error is posted and the simulation run is aborted. If the previous Pool Elevation is less than the Minimum Power Elevation or the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Energy, Power, Hydro Capacity, and Best Hydro Capacity are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
Operating Head is used to determine the maximum power release through interpolation on the Plant Power Table. The maximum power release value is multiplied by the Power Plant Cap Fraction to account for the state of the turbine units.
If Turbine Release is already set from the dispatch method “solveMB_givenInflowRelease”, the following checks are performed:
• If Turbine Release is greater than Outflow–Spill, a RiverWare error is posted reading, “Requested Power Release is Greater than Outflow - Spill” and the run is aborted.
• If Turbine Release is greater than the maximum power release, a RiverWare error is posted reading, “Requested Turbine Release is greater than Maximum Turbine Capacity” and the run is aborted.
If the Turbine Release was input by the user, a RiverWare error is posted and the run is aborted. If neither the Energy nor the Turbine Release were input and the Energy was not set by a rules, the Turbine Release is set equal to the lesser of the Maximum Power Release or the value of the Outflow minus the Spill.
The following calculations are not performed if Energy is Input, set by a Rule, or flagged BEST EFFICIENCY or MAX CAPACITY. In these cases the Power and Energy have already been calculated in Plant Efficiency Curve Release.
If the Power Coefficient is input by the user,
Otherwise, Power is found directly from the Plant Power Table using the current Operating Head and the Turbine Release from above. The power coefficient is now calculated as follows:
If the user has input the Plant Power Limit, the following steps are taken.
1. If the Power Coefficient is input by the user, Power and Turbine Release may need to be recalculated. If the Power is greater than the Plant Power Limit, Power is set equal to the Plant Power Limit and Turbine Release is recalculated as the Plant Power Limit divided by the Power Coefficient.
2. If the Power Coefficient is not input and the Plant Power Limit is exceeded; the Turbine Release, Power, and Power Coefficient need to be recalculated. The Power is set equal to the Plant Power Limit and the Turbine Release is found using 3-D interpolation of the Plant Power Table. The Power Coefficient is then calculated as Power divided by Turbine Release.
Energy is then calculated as Power multiplied by the timestep length.
The following calculations always take place, regardless of the flag on Energy.
If either the Turbine Release is equal to the maximum power release or the Energy is at the maximum capacity, Hydro Capacity is set equal to Power and the Best Hydro Capacity is computed iteratively. If the energy is at the Best Efficiency, the Best Hydro Capacity is set equal to the Power and the Hydro Capacity is computed iteratively. If the Turbine Release is not equal to the maximum power release, the Energy is not at the maximum capacity, and the Energy is not at the Best Efficiency, both Hydro Capacity and Best Hydro capacity are computed by an iterative algorithm.
Note:  If the Power Plant Cap Fraction is input by the user, it is necessary for the Plant Power Table to basically be scaled back to account for the operating points when the turbines are operating at less than 100%. To do this, when Turbine Release is known and Power is to be found using the Plant Power Curve, Turbine Release is divided by the Power Plant Cap Fraction. This point is then found in the Plant Power Curve for the current operating head and the Power is found using 3-D interpolation. Finally the Power is multiplied by the Power Plant Cap Fraction to get the actual Power produced for the current timestep.
Note:  If Power is known, and Turbine release is to be found in the table. Power is multiplied by the Power Plant Cap Fraction and then this point is found in the Plant Power Curve to solve for Turbine Release. Turbine Release is then divided by the Power Plant Cap Fraction to get the actual Turbine Release for the current timestep.
* Plant Power Equation
The Plant Power Equation method is used to calculate Power and Energy using the water power equation.
Slots Specific to This Method
Head Loss
Type: Table Slot
Units: length
Description: The head loss water incurs before it reaches the turbines.
Information: The slot is set to zero if not input by the user.
I/O: optional
Minimum Power Elevation
Type: Table Slot
Units: length
Description: Minimum pool elevation at which power can be generated
Information: Single value in a 1x1 table slot
I/O: Required input
Net Head vs Max Turbine Release
Type: Table Slot
Units: length vs. Flow
Description: relationship between the net head and the maximum possible turbine release
Information: Net Head must account for any head loss
I/O: Required input
Net Head vs Plant Efficiency
Type: Table Slot
Units: Length vs None
Description: This table allows you to specify the efficiency as a function of (previous) Net Head.
Information: This table is used only when the Plant Efficiency Value is empty. The Net Head used in this table look up comes from the previous timestep’s operating head.
I/O: Optional Input
Plant Efficiency Value
Type: Table Slot
Units: none
Description: the decimal percent efficiency at which the plant is operating
Information: Single value in a 1x1 table slot. Plant efficiency should incorporate both generator efficiency and turbine efficiency.
I/O: Optional Input, if specified, it must be between 0 and 1.
Power Plant Cap Fraction
Type: Series Slot
Units: none
Description: decimal fraction of the power capacity at which the plant is operating
Information: Used in the case of outages or reductions in the plant operating capacity.
I/O: Defaults to 1.0 if not input.
Plant Power Limit
Type: Series Slot
Units: Power
Description: The user specified upper limit on power production
Information: If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit and the Energy is recalculated. A new Turbine Release are then calculated based on the Plant Power Limit.
I/O: Optional Input or set by a rule.
The method first checks whether Energy is either user input or set by rules. If it is, the method finishes successfully and exits-- all power calculations were already performed in the Plant Power Equation Release method.
Otherwise, Tailwater Elevation and Operating Head are determined based on the user method selected in the Tailwater category.
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if the Minimum Power Elevation was input by the user. If no value was input, a RiverWare error is posted and the simulation run is aborted. If the previous Pool Elevation is less than the Minimum Power Elevation or the plant has shut off failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Energy and Power are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
Once the initial checks are performed, the method calculates Net Head and Turbine Release as follows:
Next, the Max Turbine Release for the current Net Head is interpolated from the Net Head vs. Max Turb Release table.
If there is a valid value in the Plant Efficiency Value slot, that is used for the efficiency. Otherwise, given the net head from the previous timestep (Operating Head at previous timestep minus Head Loss), the efficiency is interpolated from the Net Head vs Efficiency table. The previous Operating Head is used as an approximation so as not to introduce an additional variable in the iteration. As a result, the Tailwater Elevation at the initial timestep must be input. The net head for the initial timestep is the initial Pool Elevation minus the initial Tailwater Elevation minus Head Loss.
The method checks whether Turbine Release is user input or set by a link or a rule. If Turbine Release is known at the dispatch level, the method will check that it is not greater than Outflow minus Spill or the Max Turbine Release given the current Net Head. If either of these are true, an error will be posted and the run will abort. Otherwise, the known Turbine Release value will be used in the Power calculations. If Turbine Release is not user input or solved for in the dispatch methods, it is calculated as the minimum of the Max Turbine Release (given the current Net Head) and Outflow minus Spill (either unregulated spill or user specified regulated spill):
Note:  If Turbine Release is set to MaxTurbineRelease, it means there is still some remaining water that must be passed via regulated spill. This will be calculated in the spill calculations. If Turbine Release is set to Outflow minus Spill, it means that Spill consists of Unregulated Spill and any input Regulated Spill-- all other water will pass through the turbines.
Once efficiency, Net Head, and Turbine Release are all known, Power is solved for using the Power Equation:
The unit compatibility factor comes from balancing units and is 102.01697767 in internal RiverWare units.
If the computed Power is greater than the Plant Power Limit, the Power is reset to the Plan Power Limit and Turbine Release is recomputed by solving this equation for Turbine Release.
Lastly, Energy is computed as Power multiplied by the time length of the timestep.
* Unit Generator Power
The Unit Generator Power method is used to calculate Power and Energy for generating units with individual characteristics. The generating units are grouped by unit type for ease of data entry.
Slots Specific to This Method
Best Generator Flow
Type: Table Slot
Units: length vs. flow
Description: a table for each unit type which gives the relationship between operating head and flow through the generator when operating at best efficiency
Information: There must be a block of data for each unit type given in the Generator Unit Types table. The table is representative of a single unit within the specified unit type.
I/O: Required input
Best Generator Power
Type: Table Slot
Units: length vs. power
Description: a table for each unit type which gives the relationship between operating head and power produced by the generator when operating at best efficiency
Information: There must be a block of data for each unit type given in the Generator Unit Types table. The table is representative of a single unit within the specified unit type.
I/O: Required input
Full Generator Flow
Type: Table Slot
Units: length vs. flow
Description: a table for each unit type which gives the relationship between operating head and flow through the generator when operating at full capacity
Information: There must be a block of data for each unit type given in the Generator Unit Types table. The table is representative of a single unit within the specified unit type.
I/O: Required input
Full Generator Power
Type: Table Slot
Units: length vs. power
Description: a table for each unit type which gives the relationship between operating head and power produced by the generator when operating at full capacity
Information: There must be a block of data for each unit type given in the Generator Unit Types table. The table is representative of a single unit within the specified unit type.
I/O: Required input
Generator Unit Types
Type: Table Slot
Units: NONE
Description: a list of each generating unit and the corresponding unit type
Information: More than one generating unit can be assigned to a given unit type. The unit type must be an integer value beginning with 1 and increasing by increments of 1.
I/O: Required input
Generators Available and Limit
Type: Table Series Slot
Units: fraction and power
Description: a time series specifying the availability and power limit of each generating unit.
Information: Availability is a number between 0 and 1 which represents the percentage of the timestep that the unit is available. There must be a block of data for each row in the Generator Unit Types table. The Power Limit has no effect on the flow through the turbines.
I/O: Required input
Hydro Capacity
Type: Agg Series Slot
Units: power
Description: the maximum power production possible at the current timestep
Information: This value is the sum of all generators operating at full capacity for the given operating head at the current timestep.
I/O: Output only
Minimum Power Elevation
Type: Table Slot
Units: length
Description: the minimum pool elevation required for power production
Information: When the Pool Elevation drops below this value, a warning is posted and no power is produced.
I/O: Required input
Power Coefficient
Type: Series Slot
Units: power/flow
Description: power generated per unit power release
Information: This coefficient corresponds to the efficiency of the entire plant. It is not used in calculation and is displayed only for the benefit of the user.
I/O: Output only
The Unit Generator Power method begins by computing the availability and power limits of each unit type. Availability and power limit values are computed as the sum of the values from the availability and power limit columns, respectively, in the Generators Available and Limit slot. A value for availability and power limit is computed for each unit type.
First, Tailwater Elevation and Operating Head are determined based on the user method selected in the Tailwater category.
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction if necessary (the default is 1.0) and checks for plant shutoff/failure.
If the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Energy and Power are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
Then the efficiency of each unit type is calculated by the following equation:
PowerTemp and flowTemp, both local variables, are computed from the Best Generator Power and Best Generator Flow tables, respectively, using the current Operating Head. Each unit type is then sorted in descending order based on the computed efficiency.
Turbine Release has already been computed by the dispatch method and the power produced from the known Turbine Release must be calculated. The method begins to add entire unit types (operating according to the best flow and power tables and beginning with the most efficient type) until the Turbine Release is exceed or all the unit types have been added. If the power generated by a particular unit type exceeds the power limit for that unit type, the power produced from that type is set to the power limit. The power limit has no effect on the flow going through the turbines. If the Turbine Release is exceeded, the last generator type is interpolated to compute the Power exactly (see equation below). However, if all the unit types have been added and the Turbine Release cannot be met, the method assumes all unit types are operating at full capacity (according to the Full Generator Flow and Full Generator Power tables). Then if the Turbine Release is exceeded, the last generator type added is interpolated to compute the Power exactly (see equation below). However, if the Turbine Release still cannot be met, all unit types are run at full capacity. Turbine Release is reset to the maximum flow through the turbines and Power is set as the maximum power produced by the turbines (at the given operating head). The spill must be recalculated to handle the excess Turbine Release that could not be met.
The interpolation equation used to calculate Power is given below:
where oneLessTypePower is the power produced from all the previous types added (excluding the most recent type added); oneLessTypeFlow is the flow through all the previous unit types (excluding the most recent type added); cumulativePower is the power produced from all the unit types added (including the most recent type); and cumulativeFlow is the flow through all the unit types added (including the most recent type).
Note:  This equation assumes the relationship between power and flow is linear, regardless of the actual relationship specified in the power and flow tables. It is also interpolating over an entire type of generators.
The Power Coefficient is then calculated by the following equation:
If all the unit types were added, the Spilled Energy Power Coefficient is equal to the Power Coefficient. However, if all the types were not added, the Spilled Energy Power Coefficient is set equal to the efficiency of the last type added.
Energy is calculated as the product of the Power and the timestep length. Hydro Capacity is set as the power produced from all units operating at full capacity.
* Peak and Base
The Peak and Base method computes the Power and Energy generated by the entire plant based on the fraction of each timestep operated at peak flow and base flow. It is a long timestep method, modeled after the U. S. Bureau of Reclamation’s CRSS peak-base power calculation. A peaking flow value is first determined from the Outflow, Tailwater Elevation and Best Generator Flow. A minimum Base Flow and Power production are assumed for the entire timestep. Next, the number of hours to operate at peak power is calculated from the remaining volume of water released during that timestep. Peak production and base production are then added to determine the total Energy. Power is calculated by dividing the Energy by the timestep length in hours. Power Capacity is the power that could be generated if the flow is directed through the turbine(s) given an operating head. This is added to distinguish between actual power production and the power that could be produced.
Slots Specific to This Method
Base Flow
Type: Series Slot
Units: FLOW
Description: minimum flow through turbines to produce energy
Information: This value is read from the Base Flow Table
I/O: Output only
Base Flow Table
Type: Table Slot
Units: FLOW vs. FLOW
Description: Outflow from the Reservoir vs. base flow
Information: This table gives the minimum flow required through the turbines as a function of the average total outflow from the Reservoir.
I/O: Required input
Best Generator Flow
Type: Table Slot
Units: LENGTH vs. FLOW
Description: Operating Head vs. flow through the turbine at best efficiency
Information: The minimum and maximum values of operating head in this table are used as limiting values. The operating head is reset to the min. or max if it exceeds these constraints.
I/O: Required input
Best Generator Power
Type: Table Slot
Units: LENGTH vs. POWER
Description: Operating Head vs. power at best efficiency
Information: power produced by the entire plant at base energy flow
I/O: Required input
Maximum Turbine Power
Type: Table Slot
Units: POWER
Description: maximum turbine power output
Information:  
I/O: Required input
Min and Max Operating Head
Type: Table Slot
Units: LENGTH
Description: the minimum and maximum operating head for the turbines
Information:  
I/O: Required input
Number of Units
Type: Table Slot
Units: NONE
Description: integer number of turbines in plant
Information:  
I/O: Required input
Off Peak Capacity
Type: Table Slot
Units: POWER
Description:  
Information:  
I/O: Required input
Peak Flow
Type: Series Slot
Units: FLOW
Description: most efficient flow through turbines for the current Operating Head
Information:  
I/O: Output only
Peak Hours
Type: Series Slot
Units: TIME
Description: the number of hours operated at peak flow
Information:  
I/O: Output only
Plant Efficiency
Type: Series Slot
Units: FRACTION
Description: ratio of actual power produced to peak and base theoretical power
Information:  
I/O: Output only
Power Capacity
Type: Agg Series Slot
Units: POWER
Description: power that could be produced if flow is directed through the turbines given the operating head.
Information: Calculated by the two peak power methods and cannot be input by the user.
I/O: Output only
Power Plant Cap Fraction
Type: Series Slot
Units: FRACTION
Description: the percentage of full capacity of the turbine units in the hydropower plant
Information:  
I/O: Optional; the value of this slot defaults to 100% if not input by user
First, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction if necessary (the default is 1.0) and checks for plant shutoff/failure.
If the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Energy, Power, Base Flow, Peak Flow, Peak Power, Power Capacity, and Plant Efficiency are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
4. Tailwater and Operating Head are computed and set. No further computations are performed.
If either the Energy or Turbine Release is input by the user, a RiverWare error is posted and the simulation run is aborted. These are not valid input slots for the Peak and Base method. Peak Flow and Peak Power are then calculated as follows.
1. If either the Maximum Turbine Power is not valid or it is less than 0.00000001 MW, a RiverWare Error is flagged and the simulation run is aborted.
2. The Maximum Turbine Power is then used with the Best Generator Power table to obtain a value for the local variable, headAtMaxPower.
3. headAtMaxPower is used with the Best Generator Flow table to obtain a value for the local variable, flowAtMaxPower. The local variable, flow is temporarily set as flowAtMaxPower.
4. The local variable, efficiencyAtMaxPower is calculated by the following formula:
where 999.99 is the density of water (Kg/M3) at five degrees C and 9.79908 is gravitational acceleration (M/s2) at 37 degrees North latitude.
5. RiverWare then iterates while:
– The absolute difference between Qnew and flow is greater than 5 cfs.
– The number of iterations is less than the maximum number of iterations.
– The Operating Head is greater than the Minimum Operating Head.
The following calculations and evaluations are inside the iterative loop.
– The local variable, Qnew is set equal to flow
– The local variable, plantFlow is determined using the following equation:
– Flow is set equal to plantFlow
– The user selected Tailwater calculation is performed
– The Operating Head is calculated
– If the Operating Head is greater than the Maximum Operating Head, Operating Head is set equal to the maximum Operating Head
– If the Operating Head is less than the Minimum Operating Head, Operating Head is set equal to the Minimum Operating Head
– If the Operating Head is greater than the headAtMaxPower, the flow is calculated using the following equation:
– If the Operating Head is less than the Maximum Operating Head, greater than the Minimum Operating Head, and less than the headAtMaxPower, flow is obtained from the Best Generator Flow table and the Operating Head.
This set of calculations is repeated until the iteration criteria are met.
6. If Operating head is less than the Minimum Operating Head; Turbine Release, Energy, Power, Power Capacity, Peak Flow, Peak Hours, and flow are all set to zero. Then the Tailwater method is re-executed. If Operating Head is greater than the minimum Operating Head and the headAtMaxPower, Peak Power is set equal to Maximum Turbine Power. If the Operating Head is greater than the Minimum Operating Head and less than the headAtMaxPower, Peak Power is determined from the Best Generator Power table using Operating Head.
Once Peak Power and Peak Flow (called “flow” in calculations described above) are calculated, Base Power and Base Flow can be determined. Base Power is set equal to Off Peak Capacity and Base Flow is determined from Outflow and the Base Flow Table.
If Outflow minus Unregulated Spill is greater than the product of Peak Flow, Number of Units, and Power Plant Cap Fraction; the following steps are taken.
1. The Tailwater method selected by the user is executed.
2. The Operating Head is calculated.
3. The local variable, headAtMaxPower, is obtained from the Best Generator Power table using the Maximum Turbine Power.
4. The local variable, flowAtMaxPower, is obtained from the Best Generator Flow table using the headAtMaxPower.
5. The local variable, efficiencyAtMaxPower, is computed using the following formula:
6. If Operating Head is greater than headAtMaxPower, Peak Flow and Peak Power are calculated using the following equations:
7. If the Operating Head is less than or equal to the headAtMaxPower, Peak Flow and Peak Power are determined using the Operating Head in conjunction with the Best Generator Flow and Best Generator Power tables, respectively.
The Peak Flow slot represents the flow through the entire power plant. Therefore, the value in this slot is calculated as Peak Flow times Number of Units times Power Plant Cap Fraction. In the calculations that follow, Peak Flow represents the slot value just calculated. Plant Peak Power is calculated as Peak Power times Number of Units times Power Plant Cap Fraction.
The number of hours required to operate at base and peak flows are computed next using the following equations:
If Peak Hours is greater than the length of the timestep; Peak Hours is set equal to the timestep, Base Hours are set to zero, Turbine Release is set to Peak Flow, and Total Controlled Release is calculated as Outflow minus Unregulated Spill. If Peak Hours is less than or equal to the length of the timestep, Peak Hours and Base Hours remain as calculated by these formulas, Turbine Release is Outflow minus Spill, and Total Controlled Release is set equal to the Peak Flow.
The theoretical and actual energy production are computed next. The local variable, peakEnergy is calculated as Peak Hours times Plant Peak Power. The local variable, baseEnergy is calculated as Base Hours times Base Power.
The local variable, bestBaseTheor (representing the theoretical, most efficient base energy) is calculated using the following equation:
The local variable bestPeakTheor (representing the theoretical most efficient peak energy) is calculated using the following equation:
The value, 0.00980229, is a conversion factor necessary for energy to have units of megawatt-hours.
For Q in cms and Head in meters the final conversion is 0.00980229.
Finally, the following slots are set:
If a spill method is selected which utilizes the Spilled Energy Power Coefficient and this value is not input by the user, it is set as follows:
If Turbine Release is zero, the Spilled Energy Power Coefficient is also zero.
* Peak Power
The Peak Power method is similar to the Peak and Base method except that it computes power and energy based on Peak Flow only. A peaking flow value is first determined from the Outflow, Tailwater Elevation, and Best Generator Flow. The number of hours to operate at peak power is then calculated from the volume of water released during that timestep. A distinction is made between actual power production and the power that could be produced. Power Capacity is the peak power capacity. Power is calculated by dividing the energy by the timestep length in hours. There is no Base Flow power production.
Slots Specific to This Method
Best Generator Flow
Type: Table Slot
Units: LENGTH vs. FLOW
Description: operating head vs. flow through the turbine at best efficiency
Information: The minimum and maximum values of operating head in this table are used as limiting values. The operating head is reset to the min. or max if it exceeds these constraints.
I/O: Required input
Best Generator Power
Type: Table Slot
Units: LENGTH vs. POWER
Description: operating head vs. power at best efficiency
Information:  
I/O: Required input
Generator Efficiency
Type: Table Slot
Units: FRACTION
Description: the efficiency of the generators in producing power
Information: This value is the fraction of the maximum theoretical power which could be obtained from an ideal turbine.
I/O: Required input
Maximum Turbine Power
Type: Table Slot
Units: POWER
Description: maximum turbine power output
Information:  
I/O: Required input
Min and Max Operating Head
Type: Table Slot
Units: LENGTH
Description: the minimum and maximum operating head for the turbines
Information:  
I/O: Required input
Number of Units
Type: Table Slot
Units: NONE
Description: integer number of turbines in plant
Information:  
I/O: Required input
Peak Flow
Type: Series Slot
Units: FLOW
Description: most efficient flow through turbines for the current Operating Head
Information:  
I/O: Output only
Peak Hours
Type: Series Slot
Units: TIME
Description: the number of hours operated at peak flow
Information:  
I/O: Output only
Plant Efficiency
Type: Series Slot
Units: FRACTION
Description: ratio of actual power produced to peak and base theoretical power
Information:  
I/O: Output only
Power Capacity
Type: Agg Series Slot
Units: POWER
Description: power that could be produced if flow is directed through the turbines given the operating head.
Information: Calculated by the two peak power methods and cannot be input by the user.
I/O: Output only
Power Plant Cap Fraction
Type: Series Slot
Units: FRACTION
Description: the percentage of full capacity of the turbine units in the hydropower plant
Information: The value of this slot defaults to 100% if not input by user.
I/O: Required input
First, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction if necessary (the default is 1.0) and checks for plant shutoff/failure.
If the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Energy, Power, Peak Flow, Peak Hours, Power Capacity, and Plant Efficiency are set equal to zero.
2. Turbine Release is set equal to zero.
3. Tailwater and Operating Head are computed and set. No further computations are performed.
If Energy or Turbine Release are input by the user, an error is posted. These are not valid input slots for the Peak Power method. Peak Flow and Peak Power are then calculated as follows.
1. The Maximum Turbine Power is then used in the Best Generator Power table interpolate a value for headAtMaxPower.
2. headAtMaxPower is used in the Best Generator Flow table to interpolate a value for flowAtMaxPower. Flow is temporarily set as flowAtMaxPower.
3. efficiencyAtMaxPower is calculated by the following formula:
where 999.99 is the density of water (Kg/M3) at five degrees C and 9.79908 is gravitational acceleration (M/s2) at 37 degrees North latitude.
4. RiverWare then iterates until all of the following conditions are met; the absolute difference between Qnew and flow is less than 5 cfs, the number of iterations is greater than the maximum number of iterations, and the Operating Head is less than the Minimum Operating Head. Initially, Qnew is set equal to flow. Plant Flow is calculated as Qnew times the Number of Units times the Plant Power Cap Fraction. Then, the Tailwater method selected by the user is performed. If the Operating Head is greater than the Maximum Operating Head, the Operating Head is set equal to the Maximum Operating Head. If the Operating Head is less than the Minimum Operating Head, Operating Head is set equal to Minimum Operating Head. If the Operating Head is greater than headAtMaxPower, flow is calculated as follows:
Otherwise, flow is determined by interpolation using Operating Head and the Best Generator Flow table. This set of calculations is repeated until the iteration criteria are met.
5. If Operating head is less than the Minimum Operating Head, Turbine Release, Energy, Power, Power Capacity, Peak Flow, Peak Hours, and flow are all set to zero. Then, the Tailwater method is re-executed. If Operating Head is greater than headAtMaxPower, Peak Power is set equal to Maximum Turbine Power. Otherwise, Peak Power is determined from the Best Generator Power table using Operating Head.
Once flow and Peak Power are determined, the following computations are performed:
If the value of Peak Hours is greater than the length of the timestep, Peak Hours is set to the length of the timestep, Turbine Release is equal to Peak Flow, and Total Controlled Release is equal to Outflow minus Unregulated Spill. Otherwise, Peak Hours remains unchanged, Turbine Release equals Outflow minus spill, and Total Controlled Release equals Peak Flow.
Next, the theoretical and actual energy production is calculated.
The value, 0.00980229, is a conversion factor necessary for energy to have units of megawatt-hours.
For Q in cms and Head in meters the final conversion is 0.00980229.
Finally, the following slots are set:
If Best Peak Theoretical is equal to zero, Plant Efficiency is also equal to zero. Otherwise Plant Efficiency is calculated as follows:
If a spill method is selected which utilizes the Spilled Energy Power Coefficient and this value is not input by the user, it is set as follows:
If Turbine Release is zero, the Spilled Energy Power Coefficient is also zero.
* Peak Power Equation
The Peak Power Equation method provides a standard equation method of calculating plant peaking power for a portion of the computational timestep using the water power equation.
Slots Specific to This Method
Head Loss
Type: Table Slot
Units: length
Description: The head loss water incurs before it reaches the turbines.
Information: The slot is set to zero if not input by the user.
I/O: optional
Min Power Elevation
Type: Table Slot
Units: length
Description: Minimum pool elevation at which power can be generated
Information: Single value in a 1x1 table slot
I/O: Required input
Net Head vs. Peak Release
Type: Table Slot
Units: length vs. Flow
Description: relationship between the net head and the maximum possible turbine release
Information: Net Head must account for any head loss
I/O: Required input
Peak Release
Type: Series Slot
Units: FLOW
Description: The flow through the turbines when the plant is operating at peak capacity
Information: Peak Release is solved for iteratively using net head, tailwater elevation and pool elevation
I/O: Output only
Peak Times
Type: Series Slot
Units: TIME
Description: The time at which the plant is operating at peak capacity
Information: Peak Time is calculated as the timestep flow volume divided by the Peak Release.
I/O: Output
Plant Efficiency
Type: Table Slot
Units: none
Description: the decimal percent efficiency at which the plant is operating
Information: Single value in a 1x1 table slot. Plant efficiency should incorporate both generator efficiency and turbine efficiency.
I/O: Defaults to 1.0 if not input. Must be between 0 and 1.
Power Plant Cap Fraction
Type: Series Slot
Units: none
Description: decimal fraction of the power capacity at which the plant is operating
Information: Used in the case of outages or reductions in the plant operating capacity.
I/O: Defaults to 1.0 if not user input. Must be between 0 and 1.
The Peak Power Equation method first performs a series of checks.
The selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if the Minimum Power Elevation was input by the user. If no value was input, a RiverWare error is posted and the simulation run is aborted. If the previous Pool Elevation is less than the Minimum Power Elevation or the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Power, Energy, Peak Release, and Peak Time are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
4. Tailwater and operating head are computed. No further calculations are performed.
The method checks whether Turbine Release (the average flow through the turbines over the whole timestep) is user input or set by rules. (i.e. the method checks if the dispatch type is solveMB_givenInflowRelease.) If the given Turbine Release value is greater than Outflow minus Spill, an error is posted and the run is aborted.
If Turbine Release is not user input or set by rules, it is calculated as the minimum of MaxTurbine Release and Outflow minus Spill,
where the Max Turbine Release is interpolated from the Peak Release vs. Net Head Table, given the Net Head over the entire timestep.
In order to calculate the time at peak production, the flow which passes through the turbines during this time period must be calculated. This Peak Release is the maximum possible flow through the turbines given the Net Head and will be solved for iteratively as described in the steps below.
1. Peak Release is initially set to zero.
2. Tailwater Elevation is determined using Peak Release + Spill as the “flow” value in the selected Tailwater method. (If the Turbine Release slot is linked, it can be assumed that Spill is sent elsewhere and does not affect Tailwater so the “flow” value should be set to Peak Release only.)
3. The operating head is calculated as the Pool Elevation minus the Tailwater Elevation.
4. The Net Head is calculated as the operating head minus the head loss.
5. Given the Net Head, the Peak Release is interpolated from the Net Head vs. Peak Release table and then multiplied by the Power Plant Cap Fraction.
6. The new Peak Release value is compared with the previous value and the iteration will continue until the value converges.
Note:  Convergence Percentage is a general slot on power reservoirs representing the convergence in all iterative solutions-- the slot defaults to 0.0001 if not input.)
Once Peak Release is calculated, the Peak Time will be solved for as the volume of flow that passes through the turbines in a timestep divided by the Peak Release:
where timestepFlowVolume is an internal variable defined as follows:
RiverWare checks that the Peak Time is not greater than the timestep length. If it is, the run aborts and an error is posted.
Power is calculated with the standard water power equation. The Peak Power Equation method uses Peak Release as the flow value and Net Head at Peak Release as the head value.
The unit compatibility factor comes from balancing units and is 102.01697767 in internal RiverWare units.
Energy is finally computed as the product of Power and Peak Time:
* Peak Power Equation with Off Peak Spill
The Peak Power Equation with Off Peak Spill method provides a standard equation to calculate peaking power for a portion of the computational timestep using the water power equation. Included also is a calculation of the off peak spill that occurs when the turbines are not operating.
Slots Specific to This Method
Head Loss
Type: Table Slot
Units: length
Description: The head loss water incurs before it reaches the turbines.
Information: The slot is set to zero if not input by the user.
I/O: optional
Maximum Power Pool Drawdown
Type: Scalar
Units: Length
Description: maximum vertical drop permitted in the power pool in one timestep for power release
Information:  
I/O: Required input
Minimum Power Elevation
Type: Table Slot
Units: length
Description: Minimum pool elevation at which power can be generated.
Information: Single value in a 1x1 table slot
I/O: Required input
Minimum Elevation for Power Operations
Type: Series Slot with Periodic Input; see “Series Slots With Periodic Input” in User Interface.
Units: Length
Description: Minimum pool elevation at which power operations can occur.
Information: This slot provides another way to limit the additional proposed hydropower release; see “Hydropower” in USACE‑SWD Modeling Techniques. In simulation, a warning is issued if the Pool Elevation is below this elevation.
I/O: Optional input as either series or periodic values.
Net Head vs Plant Efficiency
Type: Table Slot
Units: Length vs none
Description: relationship between the Net Head and the efficiency of the plant
Information: Net Head includes head loss and Efficiency includes both generator and turbine efficiency
I/O: Required Input
Net Head vs. Generator Capacity
Type: Table Slot
Units: Length vs. Power
Description: relationship between Net Head and the maximum possible power produced
Information: Net Head includes head loss
I/O: Required Input
Off Peak Spill
Type: Series Slot
Units: Flow
Description: The spill that occurs during the off peak portion of the timestep.
Information: Off Peak Spill is the fraction of the spill that occurs when power is not being produced. The time weighted average of Off Peak Spill and Peak Spill equals the Spill. If the Peak Time equals the timestep length, Off Peak Spill is NaN.
I/O: Output only
Peak Release
Type: Series Slot
Units: FLOW
Description: The flow through the turbines when the plant is operating at generator capacity
Information: Peak Release is solved for iteratively using net head, tailwater elevation and pool elevation
I/O: Output only
Peak Time
Type: Series Slot
Units: TIME
Description: The time at which the plant is operating at peak capacity
Information: Peak Time is calculated as the timestep flow volume divided by the Peak Release.
I/O: Output
Plant Power Limit
Type: Series Slot
Units: Power
Description: The user specified upper limit on power production.
Information: If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit and the Energy is recalculated. A new Turbine Release is then calculated based on the Plant Power Limit.
I/O: Optional Input
Peak Spill
Type: Series Slot
Units: Flow
Description: The spill that occurs during the Peak Time.
Information: Peak Spill is the portion of the Spill that occurs during the Peak Time. The time weighted average of Peak Spill and Off Peak Spill equals the Spill.
I/O: Output
Power Plant Cap Fraction
Type: Series Slot
Units: none
Description: decimal fraction of the power capacity at which the plant is operating
Information: Used in the case of outages or reductions in the plant operating capacity.
I/O: Defaults to 1.0 if not user input. Must be between 0 and 1.
This method is called from the dispatch method, typically after Outflow, Storage, and Pool Elevation have been calculated. If Energy is input, then this method is also called from an iterative loop used to determine the Turbine Release, Peak Release, and Peak Time and/or Spill that satisfies the Energy.
The Peak Power Equation with Off Peak Spill method performs a series of checks. First, the method checks if maximum drawdown is exceeded for two cases. In the first case, if there is a valid Top of Conservation Pool slot, i.e. this is a U.S. Army Corp of Engineers model, the method checks if the Pool Elevation is greater than the Top of Conservation Pool. If so, no error or warning is posted; the drawdown limitation only applies to the conservation pool. If the drawdown is exceeded and the Pool Elevation is less than the top of conservation pool, an error is posted and the run is aborted.
Note:  An abortive error is only posted if the reservoir is dispatching at the current controller timestep. If it is dispatching at a forecast timestep and max power pool drawdown is exceeded, no error is issued. It is assumed that either the inflow or outflow will be modified when the reservoir dispatches at the current timestep and would catch any errors then.
In the second case, if there is no Top of Conservation Pool slot (i.e. a non U.S. Army Corp of Engineers model), if the calculated Pool Elevation results in exceeding the Maximum Power Pool Drawdown, a warning is posted.
If the calculated Pool Elevation is less than the value in the Minimum Elevation for Power Operations, a warning message is posted.
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if the Minimum Power Elevation was input by the user. If no value was input, a RiverWare error is posted and the simulation run is aborted. If the previous Pool Elevation is less than the Minimum Power Elevation or the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Power, Energy, Peak Release, and Peak Time are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero.
4. Tailwater and operating head are computed. No further calculations are performed.
The method checks whether Turbine Release (the average flow through the turbines over the whole timestep) is user input or set by rules. (i.e. the method checks if the dispatch type is solveMB_givenInflowRelease.) If so, and if the given Turbine Release value is greater than Outflow minus Spill, an error is posted and the run is aborted.
In order to calculate the time at peak production, the flow which passes through the turbines during this time period must be calculated. This Peak Release is the maximum possible flow through the turbines given the Net Head and will be solved for iteratively as described in the steps below.
1. Peak Release is initially set to zero.
2. Given the net head from the previous timestep (Operating Head at previous timestep minus Head Loss), the efficiency is interpolated from the Net Head vs Efficiency table. The previous Operating Head is used as an approximation so as not to introduce an additional variable in the iteration. As a result, the Tailwater Elevation at the initial timestep must be input. The net head for the initial timestep is the initial Pool Elevation minus the initial Tailwater Elevation minus Head Loss.
3. The current Tailwater Elevation is determined using the maximum of Peak Release plus Unregulated Spill or the current Outflow as the flow value in the selected Tailwater method.
Note:  If Energy is input, the Tailwater Elevation slot value shown will be calculated using the average Outflow from the timestep, but the tailwater elevation used in the Peak Release calculation is calculated as described here. If Energy is not input, the Tailwater Elevation slot value will be the peak Tailwater Elevation calculated here.)
4. The Operating Head is calculated as the average Pool Elevation minus the Tailwater Elevation.
5. The Net Head is calculated as the Operating Head minus the Head Loss.
6. Given the Net Head, the Generator Capacity is interpolated from the Net Head vs. Generator Capacity table and is then multiplied by the Power Plant Cap Fraction. If this new capacity is greater than the Plant Power Limit, if valid, the generator capacity is reset to the Plant Power Limit.
7. Peak Release is calculated according to the power equation. The unit compatibility factor comes from balancing units and the specific weight of water; it is 102.01697767 in internal RiverWare units.
The new Peak Release value is compared with the previous value and the iteration, steps 3-7, continue until the value converges.
Note:  Convergence Percentage is a general slot on power reservoirs representing the convergence in all iterative solutions-- the slot defaults to 0.0001 if not input.)
If Turbine Release is not user input or set by rules (not in the dispatch method solveMB_givenInflowRelease), TempTurbineRelease is calculated as the minimum of the Peak Release and Outflow minus Spill,
The Spill will be non-zero only if there is Unregulated Spill or a spill value is set by user input or rules. Once Peak Release is calculated, the Peak Time will be solved for as the volume of flow that passes through the turbines in a timestep divided by the Peak Release:
RiverWare checks that the Peak Time is not greater than the timestep length. If it is, the run aborts and an error is posted. Next power is set to be the Generator Capacity:
Turbine Release is the Peak Release averaged over the whole timestep:
Energy is computed as the product of Power and Peak Time:
Peak Spill and Off Peak Spill are then determined based on Peak Time, Spill, and Unregulated Spill. If Unregulated Spill is non-zero, then Peak Spill is assumed to be equal to Unregulated Spill. Unregulated spill is calculated based on the pool elevation and occurs over the entire timestep. Off Peak Spill is the sum of Unregulated Spill and the Regulated Spill plus Bypass apportioned over the off peak time. If there is no Unregulated Spill, the Peak Spill is zero, and the Off Peak Spill is the Regulated Spill plus Bypass apportioned over the off peak time. If the Peak Time is equal to the timestep length, then Peak Spill is equal to Spill and Off Peak Spill remains NaN.
Finally, if the Load slot is visible and valid, the Thermal Purchase, Dump Energy and Operation Factor are calculated. See “Load Calculation” for details on these slots.
* LCR Power
The LCR Power method uses an empirical relationship to calculate the energy produced by the Hoover, Davis, and Parker dams on the Lower Colorado River. The method replicates the calculations from the U.S. Bureau of Reclamation BHOPS FORTRAN program. Energy is calculated as a function of flow, Operating Head, Plant Efficiency, and the Power Coefficients.
Slots Specific to This Method
LCR Input Efficiency
Type: Series Slot
Units: NONE
Description: a fractional value ranging from 0 to 1 which may be used to scale the efficiency or the turbine units in the hydropower plant.
Information:  
I/O: Optional; the value defaults to 1 if not input by the user.
Lower Colo Power Coeffs
Type: Table Slot
Units: NONE
Description: two values used as empirical coefficients in relating flow, head, and efficiency to energy.
Information: The coefficients for Hoover Dam are empirically derived. For Davis and Parker dams, they reduce to coeff1=1 and coeff2=0.
I/O: Required input
Net Energy Request
Type: Series Slot
Units: ENERGY
Description: represents the total energy requested by the grid
Information: This slot is only used when a Best Efficiency flag is set in the Energy slot.
I/O: Optional; only used when a Best Efficiency flag is set in the Energy slot.
Plant Efficiency
Type: Series Slot
Units: NONE
Description: a fractional value ranging from 0 to 1 that represents the percentage of full efficiency of the turbine units in the hydropower plant
Information: In the case of Davis and Parker dams, this equals the LCR Input Efficiency. For Hoover Dam, a Plant Efficiency is calculated.
I/O: Output only
Power Coefficient
Type: Series Slot
Units: POWER per FLOW
Description: power generated per unit power release
Information: This coefficient corresponds to the efficiency of the entire plant. It is not used in calculation and is displayed only for the benefit of the user.
I/O: Output only
Station Energy Table
Type: Table Slot
Units: ENERGY
Description: represents the energy required to run the station for each day of the week
Information: This slot is only used when a Best Efficiency flag is set in the Energy slot.
I/O: Optional; only used when a Best Efficiency flag is set in the Energy slot.
The first step in the LCR Power method is to determine the Operating Head. This is accomplished by executing the Tailwater method specified by the user.
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Power, Energy, Plant Efficiency, and Power Coefficient are set equal to zero.
2. If the Turbine Release is input or already set from the Dispatch Method “solveMB_givenInflowRelease,” a RiverWare error is flagged and the run is aborted.
3. Turbine Release is set equal to zero. No further calculations are performed.
If Energy is input by the user or it has been flagged as Best Efficiency, the LCR Power Release method is called to calculate the Turbine Release. This method takes a power request, determines if it can be met given the maximum power that can be generated for the given head, and sets the Turbine Release required to generate the requested power. If the Turbine Release is not already calculated by the LCR Power Release method, it is set as Outflow minus Spill. The value of Turbine Release is checked against the maximum value set by the user (if it has been set). If Turbine Release is greater than the maximum value an error is posted which reads, “Turbine Release required to meet Energy request is greater than the maximum Turbine Release.”
Power and Energy are then calculated by the following equations:
where 62.4 is the unit weight of water in pounds per cubic foot and 737.5 represents ft.-lb./sec. per Kilowatt.
If energy is zero, Plant Efficiency and the Power Coefficient are also zero. Otherwise they are calculated as follows:
* Unit Power Table
This method uses a 3-D table that contains the columns Operating Head, Turbine Release, and Power for each unit in the plant.
Slots Specific to This Method
Note:  Many of these slots have column or row dimensions based on the number of units. The rows/columns of these slots are expanded at the beginning of the run to match the value in the Number of Units slot. When first configuring this method, the user must enter the Number of Units, then run the model (stepping through 1 timestep is enough) to grow the slots to the right dimensions.
The following slots are instantiated when this method is selected.
Auto Unit Best Turbine Q Table
Type: Table Slot
Units: Length, flow
Description: Table showing most efficient release levels for given operating heads
Information: This table is generated from the Unit Power Table. The first column for each block is Operating Head and second column is Turbine Release. It will have one block for each unit.
I/O: Automatically generated at beginning of run
Auto Unit Max Turbine Q Table
Type: Table Slot
Units: Length, Flow
Description: Table showing maximum release possible for given operating heads
Information: This table is generated from the Unit Power Table. The first column for each block is Operating Head and the second is Turbine Release. It will have one block for each unit.
I/O: Automatically generated
Minimum Power Elevation
Type: Table Slot
Units: Length
Description: The minimum elevation at which the reservoir can still produce power.
Information:  
I/O: Optional Input Only
Number of Units
Type: Table Slot
Units: None
Description: Number of units in the plant
Information: This key scalar slot (existing slot, 1x1 table) indicates the number of units (turbines) at a power reservoir. The dimensions of several other slots are directly related to this value; specifically, both input data represented in Table Slots and unit-level series data represented in Agg Series Slots are require one row or column for each unit. At the beginning of each run, RiverWare will confirm that the value for the Number of Units slots is consistent with the dimensions of related slots. If any inconsistencies are detected, the relevant slots are resized as appropriate. If additional input data are required, the user is notified and the run is aborted.
I/O: Required Input only
Number of Units Generating
Type: Series Slot
Units: None
Description: Number of units that are generating at a given timestep
Information: The value is the sum of the Unit Is Generating
I/O: Output only
Power Curvature Tolerance
Type: Scalar Slot
Units: None
Description: The power curvature tolerance is used to account for anomalies in Unit Power Table data and round off error while calculating slopes.
Information: Although the units for the slot are “None”, the comparison is implicitly using (MW/cms)
I/O: Input or defaults to 1X10-6
Unit Is Generating
Type: Agg Series Slot
Units: None
Description: This slot is used to control whether units are available.
Information: There is one column for each unit. Before a run, an input value of 1 indicates that the unit must generate power at that date; otherwise an input value of 0 indicates that the unit cannot generate power at that timestep. A NaN indicates that the unit is available and the model will decide if it can generate. At the end of a run, an output 1 indicates the unit generated power, a 0 indicates it did not.
I/O: Input, Rules, or Output
Unit Energy
Type: Agg Series Slot
Units: Energy
Description: Energy produced by each unit
Information: There is one column for each unit. A value indicates the energy being generated by the unit at that timestep, and takes into account frequency regulation. A negative value can be input or set by a rule to represent a unit that is spinning, motoring, or condensing (actually consuming energy). You cannot specify (input or rules) both Unit Energy and Unit Turbine Release on the same timestep.
I/O: Input, Rules, or Output
Unit Power
Type: Agg Series Slot
Units: Power
Description: The power that is generated by each unit
Information: There will be one column for each unit. A value indicates the power being generated by the unit at that timestep, and takes into account losses due to frequency regulation.
I/O: Output only
Unit Power Table
Type: Table Slot
Units: Length, Flow, Power, Flow, Power, etc...
Description: A 3 dimensional table relating operating head, turbine release, and power for each unit in the plant. There will be 1 block (3 columns) for each unit.
Information: The last row for each operating head represents the max capacity. Best efficiency is automatically calculated. The three values in a given row and unit block represent a legal operating point for that unit, i.e., the Power which that unit would generate at that head and turbine flow. It will be necessary to enforce that a point of zero flow and zero power production be entered in the table for each operating head. It is also required that this table be concave.
I/O: Required Input only
 
Unit 1
Unit 2
Operating Head (ft)
Turbine Flow
(1000 cfs)
Power
(KW)
Operating Head (ft)
Turbine Flow
(1000 cfs)
Power
(KW)
100
0
0
99
0
0
100
10
2000
99
10
1000
100
20
3000
99
20
2000
100
30
4000
99
30
3000
200
0
0
200
0
0
200
10
2500
200
10
1700
200
20
3500
200
20
2500
200
25
3800
200
25
2800
200
30
4500
200
30
3500
300
0
0
295
0
0
300
10
3000
295
10
3000
300
25
5000
295
25
4000
Unit Priority Table
Type: Table Slot
Units: No Units
Description: The priority that each unit is started or stopped in the power plant
There will be one row for each unit. In optimization only, units with lower numerical values are higher priority and are scheduled to release power in preference to lower priority units. If a value is absent then that unit is given the lowest priority.
Currently, this table is only used in optimization. It is not used in simulation.
Note:  Currently, units with equal priority are turned on/off in an arbitrary order. In the future, for units with equal priority, the unit efficiency will determine precedence, i.e. a unit with a higher efficiency will be prioritized higher than other units with the same priority value.
I/O: Optional Input
Unit Turbine Release
Type: Agg Series Slot
Units: Flow
Description: Flow through each unit (turbine)
Information: There is one column for each unit. The value is the expected Turbine Release through the unit at that timestep. You cannot specify (input or rules) both Unit Energy and Unit Turbine Release on the same timestep.
I/O: Input, Rules, or Output
How to Use this Method for Simulation and Rulebased Simulation
When using the Unit Power Table method, you cannot specify (input or rules) the total Outflow, Energy, or Turbine Release slots. There are three approaches available for this method: specify Unit Turbine Release values, specify Unit Energy values, set the Max or Best flag on Energy. Each is described below.
Specify Unit Turbine Release Values
With this approach, you must specify (input or rules) the Unit Turbine Release for every unit. Then you must set the U flag (Unit Values) on the Turbine Release slot. (See “Flags on the Timestep I/O Menu” in User Interface for details on setting the U flag interactively from a slot dialog. See “Buttons for Setting Flags on Slots” in RiverWare Policy Language (RPL) for details about using the RPL Palette to set the U flag from a slot assignment in a rule.)
The U flag on Turbine Release will trigger the reservoir object to dispatch given Turbine Release, and it will indicate to the object to get the sum of the Unit Turbine Release values in order to set Turbine Release. When the reservoir object solves, it will calculate Unit Energy, total Turbine Release and total Energy.
Specify Unit Energy Values
With this approach, you must specify (input or rules) the Unit Energy for every unit. Then you must set the U flag (Unit Values) on the Energy slot. (See “Flags on the Timestep I/O Menu” in User Interface for details on setting the U flag interactively from a slot dialog. See “Buttons for Setting Flags on Slots” in RiverWare Policy Language (RPL) for details about using the RPL Palette to set the U flag from a slot assignment in a rule.)
The U flag on Energy will trigger the reservoir object to dispatch given Energy, and it will indicate to the object to get the sum of the Unit Energy values in order to set Energy.When the reservoir object solves, it will calculate Unit Turbine Release, total Turbine Release and total Energy.
Note:  You must select the Unit Power Table Release method in the Power Release category if you specify Unit Energy values.
Max or Best Flag on Energy
With this approach you set the M flag (Max Capacity) or B flag (Best Efficiency) on the Energy slot. No Unit Energy nor Unit Turbine Release values can be specified (input or rules). In the Unit Is Generating slot, you can specify a 0 for any that should not be used (i.e. the unit is off line or otherwise unavailable).
The M or B flag will trigger the reservoir object to solve given Energy, and it will calculate Unit Turbine Release, Unit Energy, total Turbine Release and total Energy, all of which will be either at maximum capacity or the best efficiency point, depending on which flag is used.
Note:  You must select the Unit Power Table Release method in the Power Release category if you set the M or B flag on Energy.
Method Details
This method will use table interpolation to calculate Power and Energy at a known Operating Head based on the characteristics of each unit. This method, Unit Power Table, works in a similar manner to the current method, Plant Efficiency Curve.
At the beginning of the run, the method creates the Auto Unit Best and Auto Unit Max Turbine Q tables from the Unit Power Table. The Auto Unit Max Turbine Q table are the points from the Unit Power Table that correspond to the largest Turbine Release for a given Operating Head. The Auto Unit Best Turbine Q table is calculated from the Unit Power Table as follows: For each unit and each operating head, the method determines the point (flow, power) that corresponds to a line drawn from the origin and it tangent to the curve. This tangent point is determined by calculating the slope of the line from each point to the origin; the point with the largest slope is the tangent. Then the operating head and turbine flow for this point are added to the Auto Unit Best Turbine Q.
Figure 30.1   
The description of the solution in this section assumes that mass balance has already occurred (i.e. Inflow, Outflow, Storage, Pool Elevation have been calculated) and the method is trying to compute the Energy and Power produced by that Outflow. At the start of this method, there is also an estimate of the Turbine Release calculated as
where the spills are either known or estimated based on the current Pool Elevation. This Turbine Release may be reset if it cannot be met. If Energy is input, set by a rule, or flagged BEST EFFICIENCY (B) or MAX CAPACITY (M) or UNIT (U) then Energy and Power are solved using the method Unit Power Table Release; see “Unit Power Table Release” for details.
In this description, “t” indicates the current timestep and “u” indicates that the method will do this for each unit.
The method calculates the tailwater and operating head using the selected method and current release and pool elevation.
For each unit, the previous pool elevation will be compared to the unit’s minimum power elevation.
if (Pool Elevation[t-1] < Unit Minimum Power Elevation[u])
{
{
Either set the following to zero or make sure that they are zero:
Unit Turbine Release[t,u],
Unit Energy[t,u],
Unit Power[t,u], and
Unit is Generating[t,u].
If any of these are non-zero, an error is issued.
}
}
Next, the selected method in the Power Plant Failure category is executed. This method sets the Power Plant Cap Fraction (the default is 1.0) and checks for plant shutoff/failure.
Then, the method checks if the plant has shut off or failed (from the call to the selected Power Plant Failure category method), the following steps are taken.
1. Power, Energy, and Turbine Release are set equal to zero.
2. Either set the following to zero or make sure that they are zero:
– Unit Turbine Release[t,u],
– Unit Energy[t,u],
– Unit Power[t,u], and
– Unit is Generating[t,u].
If any of these are non-zero, an error is issued No further computations are performed.
Next for each unit, an estimate of max flow through all the turbines is calculated as follows: estimate a temporary variable maxPowerRelease (flow) using the Auto Unit Max Turbine Q table. This table contains the columns Operating Head and Turbine Capacity. Because Operating Head is known at the current timestep, table interpolation is used to calculate maxPowerRelease for the given average Operating Head.
If Outflow is set to “Max Capacity” flag, set the Unit Turbine Release to the maximum calculated and compute the power produced by those flows.
Otherwise, if Unit Turbine Release is input/rules for any of the units:
• If Unit is Generating is set (input/rules) to 0 for a unit that has a Unit Turbine release, issue an error.
• If Unit is Generating is set (input/rules) to 1 for a unit that does not have a Unit Turbine release, issue an error.
• If Turbine Release is not set by the U flag, check if Turbine Release = Unit Turbine Release[u]. If they do not match and Turbine Release is input/rules, issue an error. Otherwise, if they do not match, the method resets Turbine Release equal to Unit Turbine Release[u].
• If Turbine Release does have the U flag, the Turbine Release is set equal to Unit Turbine Release[u].
• If Turbine Release is now greater than maxPowerRelease[u], an error is issued as the specified unit turbine releases cannot be met.
• If a regulation method is selected, call it here, otherwise, given the known Unit Turbine Releases[u], the method then looks up the unit flow and operating head on the Unit Power Table to determine the power produced by each unit: Unit Power[u].
• Finally, Unit Energy[u] = Unit Power[u] * Time (hrs)
• The total Power = Unit Power[u] and total Energy = Unit Energy [u]
• Else Unit Turbine Release is not input/rules
• Exit the method as there is no way to compute energy/power at a unit level. The dispatch method will continue but no power related slots (e.g. Energy, Unit Energy, Power, Unit Power, Unit Turbine Release, Unit Is Generating, Unit Startup, Unit Shutdown, etc) will be set. Turbine Release is set to the minimum of (Outflow - Spill or MaxPowerRelease). This can happen when dispatching given Inflow and Pool Elevation or Storage. and no Turbine Release or Unit Turbine Release is specified.
Finally, the method computes the slot Unit is Generating based on the Unit Turbine Release and Unit Energy. For each unit, if these are non zero, the Unit is Generating is set to 1. If they are zero, Unit is Generating is set to 0. No inputs are overwritten. Then, the Number of Units Generating is computed as the sum over the columns of the Unit is Generating slot.
Power Release
When Energy is specified, the Power Release method is used to calculate the Turbine Release required. If the Energy request can not be met, the user is notified. There is one method per Power method.
The Power Release category is available when any of the Power methods is selected except None, Peak Power, Peak and Base, or Peak Power Equation.
* None
This is the default method in the Power Release category. No calculations are performed in this method. There are no slots specifically associated with this method. If this method is selected for the Power Release category, a RiverWare error will be posted and the simulation run will be aborted. A viable power release method must be selected when the Power Release category is visible.
Slots Specific to This Method
• None
* Plant Power Coefficient Release
The Plant Power Coefficient Release method calculates Turbine Release using the entire plant characteristics when Energy is specified. The Plant Power Coefficient Release method is only available if the Plant Power Coefficient method is selected in the Power category. Energy must be input for this method to execute. If Energy is flagged as either MAX CAPACITY or BEST EFFICIENCY, it is considered input. If Energy is flagged as MAX CAPACITY, Turbine Release is set to meet the Energy request at the maximum flow rate. If Energy is flagged as BEST EFFICIENCY, Turbine Release is set to meet the Energy request at the most efficient flow rate. If Energy is neither flagged as MAX CAPACITY nor flagged as BEST EFFICIENCY, the Turbine Release is calculated from the Energy request and a Power Coefficient. The Power Coefficient may be input by the user or calculated by RiverWare from interpolation of the Best and Max Power Coefficient tables.
If Energy is flagged UNIT VALUES (U), an error is issued. This flag is only available with the Unit Power Table Release method; see “Unit Power Table Release”.
Slots Specific to This Method
• None
The first step in the Plant Power Coefficient Release algorithm is to set the Power Plant Cap Fraction to 1.0 if it is not already known.
If the Energy slot is flagged as MAX CAPACITY, the following steps are taken.
1. Qtemp, a local variable, is calculated from interpolation of the Max Turbine Q table using the Operating Head.
2. Turbine Release is calculated with the following equation:
3. PCmax, a local variable, is determined from interpolation of the Max Power Coefficient table using the Operating Head. The Power Coefficient is set as PCmax if it is not input.
4. Power and Energy are then calculated using the following equations:
5. If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit and the Energy is recalculated. A new Power Coefficient and Turbine Release are then calculated based on the Plant Power Limit.
If Energy is flagged as BEST EFFICIENCY, the following steps are taken.
1. Qtemp is calculated from interpolation of the Best Turbine Q table using the Operating Head.
2. Turbine Release is computed using the following equation:
3. PCbest, a local variable, is determined from interpolation of the Best Power Coefficient table using the Operating Head. The Power Coefficient is set as PC best if it is not input.
4. Power and Energy are then calculated using the following equations:
5. If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit, the Energy is recalculated, and the Turbine Release is recalculated as Plant Power Limit / PCbest.
If Energy is not flagged as either MAX CAPACITY or BEST EFFICIENCY and the Power Coefficient is input, the following steps are taken.
1. If the Power Coefficient is less than 0.00000001, a RiverWare error is posted and the simulation run is aborted.
2. Power is calculated using the following equation:
where the Timestep is in hours.
3. Qout, a local variable, is calculated with the following equation:
4. Qtemp, a local variable, is determined by the interpolation of the Max Turbine Q table using the Operating Head.
5. Qmax, a local variable, is computed using the following equation:
6. If Qout is greater than Qmax, the largest discharge value in the Max Turbine Q table is found. If this value is greater than or equal to Qout, Turbine Release is set equal to Qmax. If the value is less than Qout, a RiverWare error is posted and the simulation run is aborted.
7. If Qout is less than or equal to Qmax, Turbine Release is set equal to Qout.
If Energy is not flagged as either MAX CAPACITY or BEST EFFICIENCY and the Power Coefficient is not given, the following steps are taken.
1. Power is calculated using the following equation:
where the timestep is in hours.
2. The best and max power coefficients are interpolated using the Operating Head and the Best Power Coefficient and the Max Power Coefficient tables, respectively.
3. QbestTemp and QmaxTemp (local variables) are then determined using the Operating Head to interpolate values from the Best Turbine Q and Max Turbine Q tables, respectively.
4. Qbest, a local variable, is computed using the following equation:
5. Qmax, a local variable, is calculated using the following equation:
6. If Power divided by the best power coefficient is less than or equal to Qbest, Turbine Release is set equal to Power divided by the best power coefficient.
7. If Power divided by the max power coefficient is greater than Qmax, Turbine Release is set equal to the max turbine flow.
8. If neither 3) nor 4) is true, an interpolated value (pcoeffINTERP) is found between the best and max power coefficients based on how close Power is to both the product of Qbest and the best power coefficient, and the product of Qmax and the max power coefficient. The following pair of equations is used to quantitatively determine the pcoeffINTERP value:
9. The Turbine Release is then calculated with the following equation:
* Plant Efficiency Curve Release
The Plant Efficiency Curve Release method calculates Turbine Release using the entire plant characteristics when Energy is specified. The Plant Efficiency Curve Release method is only available if the Plant Efficiency Curve method is selected in the Power category. Energy must be input or set by a rule for this method to execute. If Energy is flagged as either MAX CAPACITY or BEST EFFICIENCY, it is considered input. If Energy is flagged as MAX CAPACITY, Turbine Release is set to meet the Energy request at the maximum flow rate. If Energy is flagged as BEST EFFICIENCY, Turbine Release is set to meet the Energy request at the most efficient flow rate. If Energy is neither flagged as MAX CAPACITY nor flagged as BEST EFFICIENCY, the Turbine Release is calculated from the Energy request.
If Energy is flagged UNIT VALUES (U), an error is issued. This flag is only available with the Unit Power Table Release method; see “Unit Power Table Release”.
Slots Specific to This Method
• None
The first step in the Plant Efficiency Curve Release algorithm is to set the Power Plant Cap Fraction to 1.0 if it is not already known.
If the Energy slot is flagged as MAX CAPACITY, the following steps are taken.
1. Qtemp, a local variable, is calculated as the maximum release using the Operating Head and the Plant Power Table.
2. Turbine Release is calculated with the following equation:
3. Power is determined directly from the Plant Power Curve.
4. Energy is calculated as follows:
5. The Power Coefficient is calculated as follows:
6. If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit and the Energy is recalculated. A new Power Coefficient and Turbine Release are then calculated based on the Plant Power Limit.
If Energy is flagged as BEST EFFICIENCY, the following steps are taken.
1. Qtemp is computed as the most efficient release given the Operating Head and the Plant Power Table.
2. Turbine Release is computed using the following equation:
3. Power is determined directly from the Plant Power Curve.
4. Energy is calculated as follows:
5. The Power Coefficient is calculated as follows:
6. If the Plant Power Limit is exceeded, Power is reduced to the Plant Power Limit and the Energy is recalculated. A new Power Coefficient and Turbine Release are then calculated based on the Plant Power Limit.
If Energy is not flagged as either MAX CAPACITY or BEST EFFICIENCY and the Power Coefficient is input, the following steps are taken.
1. If the Power Coefficient is less than 0.00000001, a RiverWare error is posted and the simulation run is aborted.
2. Power is calculated using the following equation:
3. Turbine Release is calculated as follows:
If Energy is not flagged as either MAX CAPACITY or BEST EFFICIENCY and the Power Coefficient is not input, the following steps are taken.
1. Power is calculated using the following equation:
2. The max Turbine Release and Power production are found for the current operating conditions.
3. If input Power is greater than the max Power for current operating conditions, and INPUT_ENERGY _ADJUST method is chosen, Turbine Release is set equal to the max Turbine Release from 2, and Power is set equal to Power from 2. The Power Coefficient is then computed as Power divided by Turbine Release.
4. Otherwise, Turbine Release is found using the Plant Power Table and the Power Coefficient is set as Power divided by Turbine Release.
5. If the Plant Power Limit is exceeded, an error is posted.
Note:  If the Power Plant Cap Fraction is input by the user, it is necessary for the Plant Power Table to basically be scaled back to account for the operating points when the turbines are operating at less than 100%. To do this, when Turbine Release is known and Power is to be found using the Plant Power Curve, Turbine Release is divided by the Power Plant Cap Fraction. This point is then found in the Plant Power Curve for the current operating head and the Power is found using 3-D interpolation. Finally the Power is multiplied by the Power Plant Cap Fraction to get the actual Power produced for the current timestep.
Note:  If Power is known, and Turbine release is to be found in the table. Power is multiplied by the Power Plant Cap Fraction and then this point is found in the Plant Power Curve to solve for Turbine Release. Turbine Release is then divided by the Power Plant Cap Fraction to get the actual Turbine Release for the current timestep.
* Plant Power Equation Release
The Plant Power Equation Release method calculates Turbine Release using the water power equation when Energy is specified. The Plant Power Equation Release method is only available if the Plant Power Equation method is selected in the Power category. Energy must be input for this method to execute. If Energy is flagged as either MAX CAPACITY or BEST EFFICIENCY, it is considered input. If Energy is flagged as MAX CAPACITY, Turbine Release is set to meet the Energy request at the maximum possible turbine release. If Energy is flagged as BEST EFFICIENCY, the run aborts because BEST EFFICIENCY is not supported in this method.
If Energy is flagged UNIT VALUES (U), an error is issued. This flag is only available with the Unit Power Table Release method; see “Unit Power Table Release”.
Slots Specific to This Method
• None
This method first checks to see if Turbine Release is user input or set by a rule. If it is, the run aborts because both Energy and Turbine Release cannot be input.
If the Energy slot is flagged as MAX CAPACITY, the following steps are taken.
1. Set Turbine Release to be the maximum turbine release calculated by interpolating the Net Head on the Net Head Vs Max Turbine Release table.
2. Once efficiency, Plant Cap Fraction, Net Head, and Turbine Release are all known, Power is solved for using the Power Equation. The unit compatibility factor comes from balancing units and is 102.01697767 in internal RiverWare units.
If the computed Power is greater than the Plant Power Limit, the Power is reset to the Plant Power Limit. In this case, Turbine Release is re-computed using the previous equation rearranged.
3. Lastly, Energy is computed as Power multiplied by the length of the timestep.
If the Energy slot is not flagged MAX CAPACITY, the following steps are taken.
When the Energy value is known (rather than flagged Max Capacity), the Plant Power Equation Release method uses Energy to solve for Power and Turbine Release. Power is simply Energy divided by the length of the timestep:
Using Power, the Net Head and Turbine Release are solved for iteratively as follows.
1. If the computed Power is greater than the Plant Power Limit, the specified energy is too large. The selected method in the Input Energy adjustment category is executed. The Reduce Input Energy method reduces the energy to the maximum possible. If the None method is selected, an error will be issued that the specified energy leads to a power that is above the Plant Power Limit.
2. Turbine Release is initially assumed zero
3. Tailwater Elevation is determined via the selected Tailwater method (the “flow” variable is set to Outflow. If Turbine Release is linked it can be assumed that the Turbine Release and Spill are separated and the “flow” variable should be set to Turbine Release.)
4. Operating Head is calculated as Pool Elevation minus Tailwater Elevation
5. Net Head is calculated as Operating Head minus Head Loss
6. Turbine Release is calculated again using the Water Power equation:
7. The calculated Turbine Release is compared to the initial Turbine Release and the process iterates until the values converge.
Note:  Convergence Percentage is a general slot on power reservoirs representing the convergence in all iterative solutions-- the slot defaults to 0.0001 if not user input.)
Once converged, the Net Head is looked up on the Net Head Vs Max Turbine Release table to get the max release. If the Turbine Release is larger than the max release times the Power Plant Cap Fraction, the selected method in the Input Energy adjustment category is executed. The Reduce Input Energy method reduces the energy to the maximum possible. Otherwise, there is too much flow and an error will be issued that the energy request cannot be met.
* Peak Power Equation with Off Peak Spill Release
The Peak Power Equation with Off Peak Spill Release method calculates the necessary Turbine Release, Peak Release and Peak Time using the water power equation when Energy is specified. The method is only available if the Peak Power Equation with Off Peak Spill method is selected in the Power category. Energy must be input or set by a rule for this method to execute.
Slots Specific to This Method
• None
This method first checks to see if Turbine Release is user input or set by a rule. If it is, the run aborts because both Energy and Turbine Release cannot be input. When the Energy value is known, the Peak Power Equation with Off Peak Spill Release method uses Energy to solve for Turbine Release, Peak Release and Peak Time as follows.
1. Peak Release is initially set to zero.
2. Given the net head from the previous timestep (Operating Head at previous timestep minus Head Loss), the efficiency is interpolated from the Net Head vs Efficiency table. The previous Operating Head is used as an approximation so as not to introduce an additional variable in the iteration. As a result, the Tailwater Elevation at the initial timestep must be input. The net head for the initial timestep is the initial Pool Elevation minus the initial Tailwater Elevation minus Head Loss.
3. The current Tailwater Elevation is determined using the maximum of Peak Release or the current Outflow as the value in the selected Tailwater method.
4. The Operating Head is calculated as the average Pool Elevation minus the Tailwater Elevation.
5. The net head is calculated as the Operating Head minus the Head Loss.
6. Given the net head, the Generator Capacity is interpolated from the Net Head vs. Generator Capacity table. If the capacity is above the Plant Power Limit, the Generator Capacity is reset to the Plant Power Limit.
7. Peak Release is calculated according to the power equation. The unit compatibility factor comes from balancing units and the specific weight of water; it is 102.01697767 in internal RiverWare units.
8. The new Peak Release value is compared with the previous value and the iteration (steps 3-7) continues until the value converges.
Note:  Convergence Percentage is a general slot on power reservoirs representing the convergence in all iterative solutions-- the slot defaults to 0.0001 if not input.)
Power is set equal to the Generator Capacity and Peak Time is as follows:
Turbine Release is the Peak Release average over the timestep:
* Unit Generator Power Release
The Unit Generator Power Release method is only available when Unit Generator Power is selected in the Power category. It is used to calculate the Turbine Release required to produce a given amount of Power. Energy must be input by the user for this method to execute. There are no slots specifically associated with this method.
If Energy is flagged UNIT VALUES (U), an error is issued. This flag is only available with the Unit Power Table Release method; see “Unit Power Table Release”.
The Unit Generator Power Release method begins by computing the availability and power limits of each unit type. Availability and power limit values are computed as the sum of the values from the availability and power limit columns, respectively, in the Generators Available and Limit slot. A value for availability and power limit is computed for each unit type.
The efficiency of each unit type is calculated by the following equation:
PowerTemp and flowTemp, both local variables, are computed from the Best Generator Power and Best Generator Flow tables, respectively, using the current Operating Head. Each unit type is then sorted in descending order based on the computed efficiency.
In order to compute the Turbine Release associated with the known Power, the method begins to add entire unit types (operating according to the best power and flow tables and beginning with the most efficient type) until the Power is exceed or all the unit types have been added. If the Power is exceeded, the last generator type is interpolated to compute the Turbine Release exactly (see equation below). However, if all the unit types have been added and the Power cannot be met, the method assumes all unit types are operating at full capacity (according to the Full Generator Flow and Full Generator Power tables). Then if the Power is exceeded, the last generator type added is interpolated to compute the Power exactly (see equation below). However, if the Power still cannot be met, an error is posted and the run is aborted because the generators are unable to produce the amount of Power specified by the user.
The interpolation equation used to calculate Power is given below:
where oneLessTypePower is the power produced from all the previous types added (excluding the most recent type added); oneLessTypeFlow is the flow through all the previous unit types (excluding the most recent type added); cumulativePower is the power produced from all the unit types added (including the most recent type); and cumulativeFlow is the flow through all the unit types added (including the most recent type).
Note:  This equation assumes the relationship between power and flow is linear regardless of the actual relationship specified in the power and flow tables. It is also interpolating over an entire type of generators.
* LCR Power Release
The LCR Power Release method calculates the release from the Lower Colorado River hydropower products. The LCR Power Release method is available only when LCR Power is selected in the Power category. Energy must be input or flagged as BEST EFFICIENCY (Energy cannot be flagged MAX CAPACITY for the LCR Power method) for this method to execute. It is determined if the requested Power demand can be met. This determination is based on the maximum possible power that can be generated for a given head. If it is possible to meet the requested Power demand, the Turbine Release is set so as to produce the requested Power.
If Energy is flagged UNIT VALUES (U), an error is issued. This flag is only available with the Unit Power Table Release method; see “Unit Power Table Release”.
Slots Specific to This Method
• None
The first step in this method is making sure the Lower Colo Power Coeffs are known. If either of these coefficients are not known, a RiverWare error is flagged and the simulation run is aborted. Then, the LCR Input Efficiency slot is checked. is not known, If it is not known, it is assumed to be 100% efficient and the LCR Input Efficiency is set to 1.0.
If Energy is flagged as BEST EFFICIENCY, it is calculated as the Net Energy Request plus the value of energy in the Station Energy Table corresponding to the current day of the week.
If Energy is flagged as MAX CAPACITY, an error is given. If Energy is not flagged as either BEST EFFICIENCY or MAX CAPACITY, it must be input by the user.
Turbine Release is calculated using the following equation:
where the Timestep is in hours. The constants used in this equation are to convert the input to RiverWare standard units.
The previous equation is based on the energy calculation equation solved for Flow and corrected to standard units (see LCR Power method):
where flow is in kcfs, Timestep is in hour, and Operating Head is in feet.
The correction factors used in these equations are presented below:
Once Turbine Release is calculated, it is checked against the maximum allowable turbine release. A RiverWare error is flagged and the simulation run is aborted if Turbine Release exceeds the maximum allowable turbine release.
* Unit Power Table Release
This method is only available if the Unit Power Table method is selected in the Power category; see “Unit Power Table” for details. The method Unit Power Table Release calculates Turbine Release when Energy is specified. If Energy is flagged as BEST EFFICIENCY (B) or MAX CAPACITY (M) or UNIT VALUES (U), it is considered input.
If Energy is flagged B, the Unit Best Turbine Q table will be used to determine the best efficiency Turbine Release for the current average Operating Head. This assumes that all units are in use unless specified otherwise in the Unit is Generating slot. Power is then found using the Unit Power Table. If Energy is flagged M, the Unit Max Turbine Q table is used to determine the maximum Unit Turbine Release for the current average Operating Head. This point is then found in the Unit Power Table to determine the maximum power that can be produced for this Operating Head. If Energy is flagged U, the method calculates Unit Turbine Release using table interpolation of Unit Energy on the Unit Power Table with the Unit Energy.
If Energy is input but not flagged as B, M, or U and Unit Energy is not input, the method will exit without calculating Unit Energy. If any of the values in Unit Energy are input, it will be used to determine the release and power.
Method Details
This method will be called if Energy is input or set by a rule, which includes being flagged B, M, or U. This method will execute in the following manner.
if (Energy is flagged M)
{
If any of the Unit Energy[u] values are input or set by a rule, issue an error.
For each unit that is available (based on a non-zero value in the Unit is Generating slot), use 2D interpolation of Auto Unit Max Turbine Q table;
Set max release to a temporary local variable, Qmax[u];
Turbine Release is set to Qmax[u];
Once the value for each unit flow at the current average Operating Head is found, the Unit Power[u] produced for that flow can be determined directly from the Unit Power Table.
}
else if (Energy is flagged B)
{
If any of the Unit Energy[u] values are input or set by a rule, issue an error.
For each unit that is available (based on a non-zero value in the Unit is Generating slot), use 2D interpolation of Auto Unit Best Turbine Q table to determine release at B;
Set best release to a temporary local variable, Qbest[u];
Turbine Release is set to Qbest[u];
Again, Unit Power[u] will then be able to be determined directly from the Unit Power Table.
}
else if (Energy is Input/Rules (including U flag) and Unit Energy for any unit is not input/rules)
{
Issue an error; there is no way to calculate Unit Energy from plant values and no way to calculate plant Power without unit information
}
else if (Energy is input/rules (including U flag) and Unit Energy for any unit is input/rules)
{
If Unit is Generating is set (input/rules) to 0 for a unit that has a Unit Energy, issue an error.
If Unit is Generating is set (input/rules) to 1 for a unit that does not have a Unit Energy, issue an error.
If Energy is flagged U, ; otherwise, if , an error is issued
Next, Unit Power[u] = Unit Energy[u] / time (hrs)
From this power calculation, the Unit Turbine Release[u] can then be determined using a reverse table lookup of Unit Power[u] in the Unit Power Table. If the Shared Penstock Head Loss method is selected, the solution is iterative as the net operating head is a function of Turbine Release. If Unit Energy[u] is less than zero, the Unit Turbine Release[u] is set to zero. A negative Unit Energy can be set to represent a unit that is spinning but not producing power (i.e. condensing).
Turbine Release = Unit Turbine Release[u]
}
Finally, the method returns to the Unit Power Table method and computes Unit is Generating and Number of Units Generating. See “Unit Power Table” for details.
Power Unit Information
This category is used to provide information on unit information when one of two plant level power methods is selected. This category is only available if the Plant Efficiency Curve or Plant Power Coefficient methods are selected. In this category are two methods:
* None
This is the default, no-action method.
* Plant Power Table with Units
When selected, the Plant Power Table with Units method allows the user to specify the number of units associated with each Turbine Release / Power combination on the Plant Power Table. In addition, at the end of the power method, the Operating Head and Turbine Release are looked up to compute the number of units that are generating.
Slots associated with the method
Plant Power Table
Type: Table Slot
Units: LENGTH, FLOW, POWER, NONE
Description: 3-D table used to determine power using interpolation
Information: Data must be entered into the table in increasing, concave blocks of the same Operating Head for the 3-dimensional table interpolation to work correctly. For every block of the same Operating Head in column 1, Turbine Release should be listed in increasing, concave order in column 2, and the corresponding Power in column 3. The number of units should be increasing in column 4. There should also be a point of zero Turbine Release and zero Power for each operating head. The second to last row for each operating head is the point of best efficiency. The last row for each operating head is the point of maximum Turbine Release and maximum Power production. If there are only two rows for a given operating head, both the best efficiency and max capacity are equal to the second row. The table shown below is an example of the proper way to formulate the Plant Power Table, with units.
 
Operating Head
Turbine Release
Power
Number of Units
30
0
0
0
30
100
100
1
30
200
175
2
40
0
0
0
40
100
125
1
40
220
195
2
50
0
0
0
50
110
147
1
50
250
205
2
I/O: Input Only
Number of Units Generating
Type: Series
Units: NONE
Description: The number of units generating on this timestep
Information: The value in this slot is computed by looking up the Operating Head and Turbine Release on the Plant Power Table to find the number of units.
Note:  This computation is a 3D interpolation on the Plant Power Table so there can be a fractional number of units generating, i.e. 1.7.
I/O: Output Only
Input Energy Adjustment
This method category is only available for Plant Power Coefficient Release, Plant Efficiency Curve Release, or Plant Power Equation Release methods in the Power Release category. Its purpose is to adjust input Energy values if they violate a physical constraint.
* None
This is the default method. It performs no calculations and there are no slots associated with it. The Energy values will not be adjusted if this method is selected.
* Reduce Input Energy
This method is used to reduce the input Energy value whenever it exceeds the maximum power (due to turbine capacity).
Slots Specific to This Method
Requested Energy
Type: Series Slot
Units: FLOW
Description: The Energy value before being adjusted
Information: This slot is available so that the user can see when an Energy value is adjusted. The value in this slot is the energy value before being adjusted. A value exists in this slot only if the Energy value is adjusted.
I/O: Output only
If the Energy slot value leads to a power that is greater than the maximum reservoir power (due to plant capacity, Plant Power Limit, etc), this method saves the Energy value in the Requested Energy slot. Then, the Maximum Capacity flag is set on the Energy slot. The reservoir is then forced to resolve with the Energy set to Max Capacity (instead of the original, input value). When the reservoir solves the second time, it computes the maximum reservoir Energy and sets this value on the Energy slot. The Maximum Capacity flag remains on the Energy slot for the timestep in question (and will be saved with the model file).
Power Plant Failure
This category is available when any of the power methods are chosen.
* None
No power plant failure is modeled. If not input, the Power Plant Cap Fraction, if used, is set to 1.0.
* Max Pool, Outflow, Tailwater
During high flow events, certain conditions cause the power plant to fail and no power can be produced. This method models the following conditions:
• Maximum pool elevation
• Maximum tailwater elevation
• Maximum outflow
Each of these conditions has two values:
• The first, lower value represents the shutoff criteria.
• The second, higher value represents the failure criteria.
If the shutoff criteria is exceeded, then no power can be produced for that timestep, but if the conditions receded below the criteria, then power can again be produced. If the failure criteria is exceeded, the power plant has failed and no power can be produced from that point forward.
For example, a Pool Elevation above the shutoff limit requires the plant to cease generation. However, the power house is not flooded, and when the pool drops back below this limit, the plant can resume generation. In the second case, the pool is above the failure limit and requires the plant to cease generation, but also floods the powerhouse. In this case, even if the pool drops back below the criteria, the plant cannot resume generation, i.e the plant must “fail” for the rest of the simulation.
Slots Specific to This Method
This method will instantiate slots in the following list.
Max Pool Elevation for Power
Type: Table
Units: Length, Length
Description: Elevations at which no power can be produced
Information: This is 1X2 table slot. The first column contains the shutoff elevation. The second column contains a higher elevation representing the failure elevation.
I/O: Optional input
Max Tailwater Elevation for Power
Type: Table
Units: Length, Length
Description: Tailwater elevation at which power can no longer be generated
Information: This is 1X2 table slot. The first column contains the shutoff tailwater elevation. The second column contains a higher elevation representing the failure tailwater elevation. Once the failure elevation is exceeded, the plant has failed and no power can be produced on any subsequent timesteps.
I/O: Optional input
Max Outflow for Power
Type: Table
Units: Flow, Flow
Description: Reservoir outflow at which power can no longer be generated
Information: This is 1X2 table slot. The first column contains the shutoff outflow. The second column contains a higher outflow representing the outflow at which the power plant fails.
I/O: Optional input
Power Plant Cap Fraction
Type: Series
Units: No Units
Description: This slot tracks whether power production is possible at this timestep
Information: A value of 1 indicates power can be generated, a value of 0 indicates no power can be generated.
I/O: Input or Output
Method Details
This method is executed at the beginning of each power method. First, the failure conditions are checked, then the shutoff conditions are checked.
Failure is tracked using the Power Plant Cap Fraction. If Power Plant Cap Fraction is 1.0 the power plant is available. If it is 0.0, the plant has failed.
At the beginning of the power method, the following logic determines the Power Plant Cap Fraction to use.
If the Power Plant Cap Fraction is input, that input value is used and no further checking will be done.
If the previous Power Plant Cap Fraction is 0.0, then the current Power Plant Cap Fraction is set to zero. This indicates the power plant has failed on previous timesteps and should remain failed. No further checking is done.
Else, the previous Power Plant Cap Fraction is unknown or non-zero. Then, if any of the following are true, then the Power Plant Cap Fraction is set to 0.0; the plant has failed.
A diagnostic is available in the User Methods category that describes any failure constraints in effect.
Otherwise, the Power Plant Cap Fraction is set to 1.0
Even if the plant “fails” in the course of a simulation, the user can “restart” it manually by setting a non-zero value in the Power Plant Cap Fraction.
If any of the following are true, then the plant has failed or shutoff. Turbine Release, Power, Energy and a few method specific slots (as described in the power method section) are set to zero.
Note:  The last equation is the behavior for minimum power pool. This slot is added by some of the power methods, not this method.
Note:  If Power Plant Cap Fraction is not zero but one of the other constraints is true, the power slots are set to zero, but the plant has not failed, so future timesteps can generate power.
If none of these conditions is true, the power method then proceeds as before using the computed Power Plant Cap Fraction.
Startup
This category depends on selecting the Unit Power Table method, and describes how the monetary cost associated with starting up or shutting down a unit (turbine) will be modeled. There are two methods in this category, one which does not model these costs (effectively assigning them a value of 0) and one which uses a table describing the combined costs for starting up and shutting down a unit.
* None
This is the default, do-nothing method.
* Unit Lumped Cost Method
For each Unit, this method lumps the cost of star5p and shutdown into one value.
Slots Specific to This Method
Note:  Many of these slots have column or row dimensions based on the number of units. The rows/columns of these slots are expanded at the beginning of the run to match the value in the Number of Units slot. When first configuring this method, the user must enter the Number of Units, then run the model (stepping through 1 timestep is enough) to grow the slots to the right dimensions.
The following slots are instantiated when this method is selected:
Unit Startup Cost Table
Type: TableSlot
Units: Value ($)
Description: This table will indicate the cost of startup/shutdown of each unit.
Information: There will be one column for each unit and one row that represents the cost of startup/shutdown.
I/O: Required input
Unit Startup Cost
Type: AggSeriesSlot
Units: Value ($)
Description: There is one column for each unit indicating the cost of startup/shutdown.
Information: In simulation, the value of Unit Startup Cost for each unit is the Unit Startup[u] * Unit Startup Cost Table [u].
I/O: Output only
Unit Startup
Type: AggSeriesSlot
Units: No Units
Description: A value of 1 indicates that the unit starts up at that date; otherwise the value is 0, indicating that the unit does not start up at that date.
Information: There is one column for each unit.
I/O: Output only
Unit Shutdown
Type: AggSeriesSlot
Units: No Units
Description: A value of 1 indicates that the unit shuts down at that date; otherwise the value is 0, indicating that the unit does not shut down at that date.
Information: There is one column for each unit.
I/O: Output only
Number Of Units Startup
Type: SeriesSlot
Units: No Units
Description: The number of units which start up at a given date. This value is the sum over the columns of Unit Startup.
Information:  
I/O: Output only
Number Of Units Shutdown
Type: SeriesSlot
Units: No Units
Description: The number of units which shut down at a given date. This value is the sum over the columns of Unit Shutdown.
Information:  
I/O: Output only
Plant Startup Cost
Type: SeriesSlot
Units: Value ($)
Description: The total startup cost for the plant. This value is the sum over the columns of the Unit Startup Cost.
Information:  
I/O: Output only
Method Details
In Simulation, if the Unit Lumped Cost method is selected, startup and shutdown will be summarized as follows:
• Calculate Unit Startup[t,u] = max(Unit Is Generating[t,u] - Unit Is Generating[t-1,u], 0)
• Calculate Unit Shutdown[t,u] = max(Unit Is Generating[t-1,u] - Unit Is Generating[t,u], 0)
• Calculate Number Of Units Startup[t] = sum(Unit Startup[t])
• Calculate Number Of Unit Shutdown[t] = sum(Unit Shutdown[t])
Note:  If the previous Unit Is Generating is not known, it is assumed that the unit is neither starting up or shutting down; Unit Startup and Unit Shutdown are set to zero. This may happens on the start timestep when the previous value is not known. Also, if the current Unit Is Generating is not valid, the method is exited without performing any computations or setting any slots.
This method will calculate the cost associated with startup/shutdown for each unit and the plant:
• Unit Startup Cost[t,u] = Unit Startup[t,u] * Unit Startup Cost Table[u]
• Plant Startup Cost[t] = (Unit Startup Cost[t])
Head Loss
This category depends on the Unit Power Table method and contains methods for modeling additional head loss that occurs. This head loss may come from the configuration of the penstocks for bringing water to the turbines.
* None
In this method, there is no additional head loss to be used in the power calculation. In terms of penstock head loss, this method should be selected if the penstocks for the units are independent and the penstock losses are typically incorporated in the power data. Thus the power data is specified in terms of operating head.
* Shared Penstock Head Loss method
In this method, there is additional head loss that results because units share a common penstock. The operating head losses in the penstock depend on the total turbine release and are shared for all units. The net head is calculated by subtracting penstock losses from the operating head. The unit data and power must be specified in terms of unit Net Heads instead of Operating Head.
Slots Specific to This Method
The following slots are instantiated when this method is selected:
Shared Penstock Head Loss Table
Type: TableSlot
Units: Flow vs Length
Description: This table shows head losses in a shared penstock as a function of total turbine release.
Information: The table has two columns: Turbine Release and Shared Penstock Loss.
I/O: Required Input
Method Details
In simulation, when either the Unit Power Table or Unit Power Table Release method is called, it has an estimate of operating head calculated as average PE minus average tailwater elevation. Within these methods, if the Shared Penstock Head Loss method is selected, the code will look up an estimate of total Turbine Release and compute the additional head loss and subtract it from the existing operating head before use in any other equation. An iterative solution is needed if Turbine Release is not known, i.e. if this method is called from the Unit Power Table Release method.
Cavitation
This category depends on selecting the Unit Power Table method and contains methods for dealing with the problem of cavitation on turbines. Cavitation is the sudden formation and collapse of low-pressure bubbles in liquids by means of mechanical forces and this process can cause damage to turbines under certain operating conditions.
* None
This is the default, do-nothing method.
* Unit Head and Tailwater Based Regions
This method allows the user to specify the regions of operation in which cavitation does NOT occurs, so that these regions can be avoided. These regions can be dependent on both operating head and tailwater.
Slots Specific to This Method
Many of these slots have column or row dimensions based on the number of units. The rows/columns of these slots are expanded at the beginning of the run to match the value in the Number of Units slot. When first configuring this method, the user must enter the Number of Units, then run the model (stepping through 1 timestep is enough) to grow the slots to the right dimensions.
The following slots are instantiated when this method is selected:
Unit Power Cavitation Table
Type: TableSlot
Units: Length, Length, Power, and Power
Description: This table represents the region of operation that does not cause cavitations.
Information: The table will have one block per unit and four columns per block: head, tailwater, and minimum power to prevent cavitation, and maximum power to prevent cavitation. Interpolation of this table will be used to determine the feasibility for each flow - head combinations in the Unit Power Table. Some combinations may not be feasible at any tailwater, and these combinations should not be used in optimization or simulation. Others will have a minimum tailwater level for feasibility. For some units, tailwater may not affect cavitation. In these cases two rows should be used for each head: one with minimum tailwater and one with maximum tailwater.
I/O: Required Input
 
Unit 1
Unit 2
Tailwater (ft)
Operating Head (ft)
Min. Non-Cav. Power
(MW)
Max. non-Cav. Power
(MW)
Tailwater (ft)
Operating Head (ft)
Min. Non-Cav. Power
(MW)
Max. non-Cav. Power
(MW)
2067
100
1
12
2067
100
2
10
2067
200
1.1
12.5
2067
200
3
11
2067
300
1.4
12.6
2067
300
3.5
12
2116
100
2
12
2116
100
2
10
2116
200
2.1
12.3
2116
200
3
11
2116
300
2.5
12.8
2116
300
3.5
12
Unit Cavitation Optimization Tolerances
Type: Table
Units: Fraction, Fraction
Description: Tolerance used to adjust the cavitation region in Optimization.
Information: This slot is used to “shrink” the cavitation region in Optimization to avoid the possibility of optimal solutions that when run in the Rulebased Simulation, just barely dip into a cavitation zone. For example, if 0.01 is specified, this translates to giving the optimization a 1% cushion to avoid the cavitation zone. There is one row for each unit.
I/O: Optional Input
Method Details
In Simulation, the dispatch method will execute this method once head, tailwater elevation, and power are computed for each unit. This method will determine if the computed head, tailwater elevation, and power fall outside of the minimum and maximum power to prevent cavitation regions. If so, the method will issue an error but not stop the run. If the method is called and there is no valid Unit Power, then the method is exited without performing any computations.
Avoidance Zones
This category depends on selecting the Unit Power Table method and contains methods for modeling the existence of undesirable regions of operation for turbines. There are two methods in this category, one which does not model avoidance zones at all, and one which
* None
This the default, do-nothing method; avoidance zones are not considered.
* Unit Head Based Avoidance Zones
This method allows the user to specify a table that defines the conditions in which the turbines should not be operated.
Slots Specific to This Method
Many of these slots have column or row dimensions based on the number of units. The rows/columns of these slots are expanded at the beginning of the run to match the value in the Number of Units slot. When first configuring this method, the user must enter the Number of Units, then run the model (stepping through 1 timestep is enough) to grow the slots to the right dimensions.
The following slots are instantiated when this method is selected:
Unit Avoidance Zones Table
Type: TableSlot
Units: Length, Power, Power
Description: This table represents zones in the Unit Power Table that should be avoided for operations.
Information: The avoidance zone table has one block per unit and three columns per block: head, power at bottom of the avoidance zone, power at the top of the avoidance zone. This table effectively removes regions from the Unit Power Table. The regions removed might have to be interpolated between points in the table. Heads that appear in this table must appear in the Unit Power Table as well.
I/O: Required Input
 
Unit 1
Unit 2
Operating Head (ft)
Min. Power at Zone Bottom
(MW)
Max. Power at Zone Top
(MW)
Operating Head (ft)
Min. Power at Zone Bottom
(MW)
Max. Power at Zone Top
(MW)
100
4.5
6
100
8
9
200
5
6.4
200
9
9.5
300
6
7
300
9.2
9.9
Method Details
In Simulation, the dispatch method will execute this method once head and power are computed for each unit. This method will determine if the computed head and power fall inside an avoidance zone. If so, the method will issue an error but not stop the run. If the method is called and there is no valid Unit Power, then the method is exited without performing any computations.
Frequency Regulation
This category depends on selecting the Unit Power Table method, although in the future it might be enabled for other power methods. The frequency regulation methods model the provision of the frequency regulation ancillary service, that is, how the reservoir can be made available to flexibly follow a load demand within a specified range during a certain period in order to affect the frequency of the generated power.
* None
This is the default, do-nothing method; no regulation is modeled.
* Unit Frequency Regulation
Note:  Although you can select the method and slots are added, this method is not yet implemented.
When frequency regulation is scheduled, it allows the unit to follow the real time load. Exactly what will happen in real time is unknowable. This results in two sets of values at scheduling time, nominally scheduled power and turbine release. It is uncertain if the real time operators will actually use the service. At present, we distinguish between the nominal “scheduled” power (and turbine release) that the regulation is allowed to depart from and the “expected” power generation (and turbine release) that will take place when regulation is allowed. Both are important. The scheduled power sets the baseline for regulation and should be communicated to the power dispatchers. The expected power and release are more useful for coordinating a plant with the rest of the system.
Slots Specific to This Method
Many of these slots have column or row dimensions based on the number of units. The rows/columns of these slots are expanded at the beginning of the run to match the value in the Number of Units slot. When first configuring this method, the user must enter the Number of Units, then run the model (stepping through 1 timestep is enough) to grow the slots to the right dimensions.
The following slots are instantiated when this method is selected:
Unit Regulation Table
Type: TableSlot
Units: Length, Flow, Power, Flow, Power
Description: This table (not visible to the user) represents the available regulation (both up and down in terms of flow and power) for each unit at each point in the Unit Power Table.
Information: This table is calculated using data in the Unit Power Table and the Avoidance Zone Table (if applicable) and could be calculated automatically at beginning of run in simulation and/or optimization. This table consists of a block of six columns for each unit. The head and flow values should be the same as the Unit Power Table. The other four columns in the block are respectively Regulation Flow Up, Regulation Power Up, Regulation Flow Down, and Regulation Power Down. These values represent the minimum and maximum power achievable from the initial flow value without passing through an avoidance zone.We require that the heads in this table appear in the Unit Power Table as well.
I/O: Automatically calculated at beginning of run
Unit Two Sided Regulation
Type: AggSeriesSlot
Units: Power
Description: The value is the two sided frequency regulation for the unit at that timestep.
Information: There is one column for each unit.
I/O: Input or Output
Unit Regulation Up
Type: AggSeriesSlot
Units: Power
Description: The value is the frequency regulation up for the unit at that timestep.
Information: There is one column for each unit.
I/O: Input or Output
Unit Regulation Down
Type: AggSeriesSlot
Units: Power
Description: The value is the frequency regulation down for the unit at that timestep.
Information: There is one column for each unit.
I/O: Input or Output
Unit Possible Regulation Up
Type: AggSeriesSlot
Units: Power
Description: The value is the possible regulation up for the unit at that timestep.
Information: There is one column for each unit.
I/O: Input or Output
Unit Possible Regulation Down
Type: AggSeriesSlot
Units: Power
Description: The value is the possible regulation down for the unit at that timestep.
Information: There is one column for each unit.
I/O: Input or Output
Unit Flow Addition For Regulation
Type: AggSeriesSlot
Units: Flow
Description: The value is the additional release required to reach the frequency high point for the unit at that timestep.
Information: There is one column for each unit. This value is typically returned from optimization and set via a rule.
I/O: Rule
Unit Flow Reduction For Regulation
Type: AggSeriesSlot
Units: Flow
Description: The value is the reduction in release required to reach the frequency low point for the unit at that timestep.
Information: There is one column for each unit. This value is typically returned from optimization and set via a rule.
I/O: Rule
Unit Scheduled Mechanical Power
Type: AggSeriesSlot
Units: Power
Description: The value is the scheduled mechanical power generation, before subtracting regulation (or reactive power) for the unit at that timestep.
Information: There is one column for each unit.
I/O: Output only
Unit Scheduled Turbine Release
Type: AggSeriesSlot
Units: Flow
Description: The value is the turbine flow which corresponds to the Unit Scheduled mechanical Power for the unit at that timestep.
Information: There is one column for each unit.
I/O: Output only
Unit Operating Cost Per Regulation Table
Type: TableSlot
Units: Value ($)
Description: For each generating unit, this is the cost per unit of regulation.
Information: There is one row for each unit.
I/O: Input
Unit Operating Cost
Type: AggSeriesSlot
Units: Value ($)
Description: This is the total cost of using a unit for regulation incurred during the run.
Information: There is one column for each unit.
I/O: Output
Operating Cost
Type: AggSeriesSlot
Units: Value ($)
Description: The value is the sum of the unit operating costs.
Information: This is an existing slot with only one column.
I/O: Output only
Regulation
Type: SeriesSlot
Units: Power
Description: Total regulation for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Two Sided Regulation.
I/O: Output only
Plant Regulation Up
Type: SeriesSlot
Units: Power
Description: Total regulation up for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Regulation Up.
I/O: Input or Output
Plant Regulation Down
Type: SeriesSlot
Units: Power
Description: Total regulation down for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Regulation Down.
I/O: Input or Output
Plant Possible Regulation Up
Type: SeriesSlot
Units: Power
Description: Total possible regulation up for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Possible Regulation Up.
I/O: Output only
Plant Possible Regulation Down
Type: SeriesSlot
Units: Power
Description: Total possible regulation down for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Possible Regulation Down.
I/O: Output only
Plant Flow Addition For Regulation
Type: SeriesSlot
Units: Flow
Description: Total additional turbine release required in order to reach the frequency regulation high point for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Flow Addition For Regulation.
I/O: Output only
Plant Flow Reduction For Regulation
Type: SeriesSlot
Units: Flow
Description: Total reduction in turbine release required in order to reach the frequency regulation low point for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Flow Reduction For Regulation.
I/O: Output only
Plant Scheduled Mechanical Power
Type: SeriesSlot
Units: Power
Description: Total scheduled mechanical power for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Scheduled Mechanical Power.
I/O: Output only
Plant Scheduled Turbine Release
Type: SeriesSlot
Units: Flow
Description: Total scheduled turbine release for the reservoir (plant) at that timestep.
Information: This value is the sum over the columns of Unit Scheduled Turbine Release.
I/O: Output only
In Simulation, the Unit Power Table method will execute this method when the Unit Turbine Release is known. At this time, this method cannot be called if Unit Energy is specified (input or rules):
• Unit Scheduled Turbine Release[t,u] = Unit Turbine Release[t,u] - (Unit Flow Addition for Regulation[t,u] + Unit Flow Reduction For Regulation [t,u] )/2
• Unit Scheduled Mechanical Power[t,u] = Unit Power Table(head[t], Unit Scheduled Turbine Release[t,u])
• Unit Regulation Up[t.u] = Unit Power Table(head[t], Unit Scheduled Turbine Release[t,u] + Unit Flow Addition for Regulation[t,u] /2)
• Unit Regulation Down [t,u] = Unit Power Table(head[t], Unit Scheduled Turbine Release[t,u]-Unit Flow Reduction For Regulation [t,u]/2)
• Unit Regulation [t,u] = max(Unit Regulation Up[t.u] , Unit Regulation Down [t,u] )
• Unit Power[t,u] = Unit Scheduled Mechanical Power[t,u] + Unit Regulation Up[t.u]/2 - Unit Regulation Down [t,u]/2
• Calculate Unit Operating Cost[t,u] = timestep * Unit Operating Cost Per Regulation[u] * (Unit Regulation Up[t,u] + Unit Regulation Down[t,u])
• Compute plant level values as a sum of unit values
 
 
Revised: 06/03/2019