Energy Storage Logic

Aurora has the capability to model energy storage resources (i.e., pumped storage, batteries, etc.).  A resource is treated as a storage project if it references a Fuel has a Fuel Type that begins with “Sto” or "PS" (case insensitive).

To define storage project characteristics, Aurora uses the standard Resources Table input variables, as well as the following additional inputs:

 

Standard Storage Logic

If the Storage Inflow column for a storage resource contains a null value, the Standard Storage Logic will be invoked. This provides the capability to both charge and generate power based on the prices of the internal zone forecast. The generation/charging cycle efficiency is defined through the Heat Rate column.

The value entered should be such that a heat rate representing perfect efficiency (3412  Btu/kWh being 100% efficient), divided by the entered heat rate, equals the desired efficiency. For example, if a given plant has a generation/charging cycle that is 80% efficient and the heat content is in Btu, then the value 4265 should be entered into the heat rate column, since the efficiency equals 80% or 0.8 = 3412/ 4265.

During a run - at the beginning of each week - Aurora determines a charging and generation schedule for each storage project for the coming week. The inputs mentioned above are used, as well as a dynamically updated hourly zonal price forecast for the week.

Within each day across the week, it identifies the combination of hours in which it is cost-effective to store and to generate without violation of the project storage constraints. It assures that revenue during the generation hours exceeds the cost of charging energy adjusted for cycle efficiency, plus any variable costs incurred.  

Once the hourly schedule for the week has been determined, it is locked in and used to modify zonal load for the hours being dispatched as the simulation proceeds through the week. In any individual dispatch hour, the actual hourly cost of recharge energy or the revenue from hourly generation is based on the zonal price determined by the full dispatch for that hour.

The default configuration for Aurora is to optimize the recharge/generation schedule, under the week-ahead price forecast,  for each day of the week except Sunday. The schedule for Sunday will be determined using an extended price forecast into the following week. This option can be disabled by de-selecting the Extend Period for Storage Scheduling switch in the Resource folder of Simulation Options.

Hydro Shaping and Energy Storage logic can be bypassed and forced by manual input using a Weekly Vector as a time-series input. See Storage Shaping Factor for the steps on how to do this.

Shaping To Demand

This option allows for control of standard storage units (units without inflow) allowing hourly shaping to demand. When active (Storage Control Type = Demand or DemandNetMR), the charging and generation decisions for storage projects are made with an objective to levelize the zone net hourly demand across a day to the extent possible. This may be a useful option for cases where the standard price-based storage logic tends to over-schedule, resulting in net demand patterns presented to the dispatch which may not be appropriate for some zones.

An important point to keep in mind when using this option is that all resources of the same control type within a zone will work in a coordinated approach to achieve their objective. Units are processed in order of efficiency, with each working on the residual demand shape left by the prior unit until hourly demand variation for a day has been reduced to the extent possible. However, units specified as Demand and units specified as DemandNetMR have different objectives and work on different residual demand patterns. So, if the objective is to flatten net demand (with or without MR), it is advised that all storage units within a zone be set to use the same value for Storage Control Type value. Setting some to Demand and some to DemandNetMR will likely result in an unexpected net demand patterns presented to the dispatch.

With this option the Hourly Shaping Factor is applied in the same manner as in the price driven logic, essentially a multiplier against generation and charging capacity, and could be used to further control on-peak vs. off-peak net demand spreads.

NOTE: Changes in generation and charging capability are only recognized at the start of a day. The generating and charging capacity, FOR, maintenance rate, etc., which are in effect at the start of day, are used for the entire day.

Inflow Storage Logic

When the Storage Inflow column for a storage project contains a non-null value, the Inflow Storage Logic will be invoked. For the standard method, Aurora will recognize both the capability to generate power and to receive additional inflows of energy on an hourly basis, but it will not recognize the ability to charge energy.

With the Enhanced Storage Logic (or via the Storage input table), storage units are able to receive inflow off the grid and charge from power within the grid simultaneously. The amount of inflow energy is based upon the hourly resolved value in the Storage Inflow column, and the total storage contents of the resource will be adjusted each hour accordingly. There are no costs associated with inflows. Aurora will use a linear optimization method to schedule the generation pattern for the resource each week without violating the project storage constraints, and the optimization will schedule the generation pattern so that the ending storage contents each week will approximate the beginning storage contents of that week.

Using the Storage Control column determines whether that optimization will be based on the internal zone forecast or demand values. Using the Must Run and Minimum Capacity columns in conjunction with the Inflow Storage Logic is also allowed to force a project to generate at least at a certain level. If specified inflow levels are not high enough to support using a certain minimum generation amount, the model will lower the minimum generation value to a feasible value.

NOTE: Using the Inflow Storage Logic on many resources can significantly impact run time. Energy Exemplar testing showed that for each resource modeled in this way, run time will be increased by 3-5 seconds per year of the study. This increase in run time will not vary across different sampling configurations within a given year.

Final Considerations

  1. The week ahead hourly price forecast Aurora uses for determining the hourly charging/generation schedule can, and probably will, differ from the prices determined by the full dispatch for the week ahead. It is possible for projects that have a marginally economic schedule based on forecast prices to result in an uneconomic operation for a week if the full dispatch prices are substantially flatter than the forecast prices. This was an infrequent occurrence under testing with the standard Aurora databases.

  2. It is important to run enough dispatch hours to capture the full economics of the charging/generation schedule.  Energy Exemplar recommends using a setup configuration of every hour for at least one week a month.

  3. For storage projects that do not have a user input schedule when the Commitment Optimization is employed, the model will further refine the storage scheduling each day.  The original schedule as determined by the week-ahead logic will be adjusted based on the system-wide-cost minimization algorithm used for dispatch.

 

Enhanced Storage Logic

A more detailed storage scheduling logic is available via a couple different settings: using the Storage input table or turning on the global Use Enhanced Storage Logic  checkbox for all Storage Units. The Storage input table, referenced via a Storage ID column in the Resources table, contains additional parameters used for the enhanced logic. When a resource references this table, some base inputs are still used from the Resources table to define unit-specific storage characteristics, but for each unit in a storage group, these unit-specific characteristics are then combined with the group-level characteristics, which for the most part are defined as multipliers on top of unit-level values. Aurora schedules the storage unit operation at the beginning of each month (though this can be further refined by the Commitment Optimization logic when that is being employed).

There is also a more simplified, global switch called Use enhanced logic for all storage units which, when selected, automatically converts the parameters in the Resources table into what the enhanced logic needs for any resources whose Storage ID column is not populated. This provides an easy way to switch from the traditional approach to the enhanced method without having to change any underlying assumptions.

 Simulation Logic

 Energy Storage Logic


For further assistance, please contact Aurora Support.

Copyright© 1997-2024 Energy Exemplar LLC. All rights reserved.