The Ancillary Services Table defines ancillary service products and enables using the logic. This table defines product types and parameters and references them by generators in the Resources table.
Aurora can co-optimize the allocation of resources to meet ancillary services and energy requirements. It uses a mixed-integer program (MIP) to minimize total system cost while adhering to all transmission, energy, ancillary, and other input constraints. The model seeks to find an optimal solution daily to determine how resources commit, dispatch, and provide ancillary requirements for each hour of the day.
There are two types of products:
Up type products require that enough excess capacity be online or available within a short time to ramp up the horizon to meet unexpected load increases.
Down type products require enough capacity to be online and can ramp down within a short time horizon to meet unexpected load decreases.
The Time Length parameter specifies how fast resources need to be able to ramp up or down to meet the requirement, and in conjunction with the resource ramp rates, it governs how much each resource can contribute to the product.
The model will calculate each product’s total requirement every hour based upon the MW Requirement, Demand Requirement, Generation Requirement, and Largest Unit List input values. Using the final MW value, the model will add a constraint to the optimization to ensure it meets the requirement, if possible.
Individual resources participate in each product based on the Ancillary Services column in the Resources table, and each resource’s available contribution is based on the product Time Length, the resource ramp rate, output level, and Ancillary Max Contribution (if defined) or Max Operating Reserve.
The co-optimization will determine the best resource allocation to meet energy and ancillary requirements. For any given product, the MW value of ancillary services provided to the product, plus the energy produced to serve load, cannot be more than the underlying resource capability. Further, Aurora will add constraints to limit the simultaneous contribution of the resource to its Up-type products, as well as to its Down-type products, in which it participates.
Hydro and storage resources can both participate in ancillary services, but they act differently than standard resources:
Hydro: Hydro plants can contribute to Up-type reserves between their output and original capability (i.e., capacity derated for forced outage and maintenance). The original capability will generally be higher than the capability determined in advance by the Hydrologic, which schedules the plants monthly. Hydro plants can also contribute to Down-type reserves in the standard way. In general, expect that hydro plants flexible enough to provide reserves would have the Use Daily Optimization column set to True in the corresponding hydro set to allow complete flexibility in dispatch.
Storage: When using the commitment optimization logic, the model automatically dispatches storage based on daily system needs. The week-ahead storage logic produces a generation/charging pattern for each hour that guides the daily ending contents for each storage project.
If a storage unit participates in ancillary services, the logic guidelines are as follows:
Flexible - When the unit is at 0 output (i.e., not charging or generating), and the value in Offline Ancillary Up Time is less than the time length for the product, the unit is defined to be “flexible.” Flexible means that it can provide reserves in either direction. Conversely, it cannot provide reserves when it is not operating and if it is not flexible.
If the unit generates output, the amount of reserves it can provide is equal to the maximum generation possible minus the current output.
If the unit is charging, then the amount of reserves it can provide is equal to:
The MWh is currently drawn from the grid to store energy if it is not flexible.
If it is flexible, the MWh is currently drawn from the grid to store energy, plus the maximum generation possible.
For Down type products:
If the unit is generating, the amount of reserves it can provide is equal to:
The amount it is generating, if it is not flexible.
If it is flexible, it is the amount it is generating plus the maximum amount of MWh it could draw from the grid charging at full capacity.
If the unit is charging, then the amount of reserves it can provide is equal to the difference between the amount of MWh currently being drawn from the grid plus the maximum amount of MWh it could draw from the grid if charging at full capacity.
By default, ancillary prices are derived based on shadow prices from the LP that are solved after commitment is determined.
You can also use the Input Price column to specify a product's ancillary prices. The ancillary price (whether solved for or entered input) determines the ancillary revenue for resources that provide reserves. Ancillary bid prices can be specified for individual resources using the Ancillary Services Bid Price column in the Resources table.
When ancillary services are specified for candidate New Resources in a Long-Term Simulation, Aurora will estimate the ancillary service contribution for the new resource options not in the system during the iterative dispatch.
This is done by comparing each candidate resource’s Ancillary Bid Price to the observed ancillary price for each hour and allocating available capability on the unit to an ancillary product when the bid price is less than or equal to the observed price. Any projected revenue gained from participating in ancillary services will be part of the project's Net Present Value (NPV for each resource used in making build decisions.
NOTE: In general, it is recommended to use Commitment Optimization Logic with ancillary services. If Traditional Commitment is used with ancillary services, Pool Commitment is strongly recommended.
COLUMNS INCLUDE |
|||
Ancillary Services Table
For further assistance, please contact Aurora Support.
Copyright© 1997-2024 Energy Exemplar LLC. All rights reserved.