Commitment Optimization Logic

The commitment optimization method in Aurora uses a mixed-integer linear program (MIP) to determine the hourly unit commitment pattern.  It is a robust methodology that uses all information about the system for the time period being solved to find a solution that is guaranteed to be optimal up to an input tolerance level.  This method is different from traditional economic commitment and pool commitment in that it uses an actual optimization engine as opposed to heuristics.  The commitment optimization method will generally give better results than the other methods in terms of total system production cost, adherence to all commitment constraints, and incorporation of all system characteristics in the commitment decisions (e.g. network topology, outages, Operating Rules, etc.).  The higher precision generally comes at the expense of longer run times over the base commitment methods.  For very large systems with many commitment units, the commitment optimization method may take significantly more time to solve than the traditional commitment options.

The optimization solves the commitment patterns one day at a time with a mathematical program.  Each day that is solved will include data from a user specified number of additional days to ensure that the commitment decisions adequately take into account the system constraints for upcoming hours.  All information about the system is considered in the commitment decisions including demand, fuel prices, resource costs, transmission availability, and operating rules.  The objective function is the minimization of system cost which includes resource start and shutdown costs, zonal wheeling charges, and all standard components of resource incremental costs.  The commitment decisions use all the same information as the LP dispatch including hourly demand, zonal transfer capacities, resource availability, multi-link limits, and resource segment differentiation.  The Minimum up and down times are modeled as hard constraints and minimum capacities will always be honored on commitment units.  Additional constraints are automatically added for resource dependency inputs, RMR rules, and pool spinning reserve requirements.

When running with commitment optimization in the nodal solution, Aurora will also take into account the nodal level constraints in the mixed-integer program that performs the commitment decisions.  This includes branch, corridor, and contingency constraints.  In this case, instead of performing one optimization the model will iterate by successively adding the binding transmission constraints until no more constraints are violated.  As such, this method does a full security constrained unit commitment (SCUC).

There are two different global ways to run the optimization.  The first is with Solve representation = System.  In this case, one commitment optimization is performed for each day with a view of the whole system.  For smaller footprints (e.g. ERCOT only), this is the recommended approach.  

The second way to run the optimization is with Solve representation = Region, in which the commitment algorithm will solve the commitment pattern for different regions independently.  This is the recommended approach for larger systems (e.g. East Interconnect) and it works differently for zonal and nodal:

Zonal: When solving a zonal study with Solve representation = Region, each pool solves its own commitment separately before the dispatch is solved as a whole system with the commitment decisions locked in place.  The very first day will solve the system as a whole to get the best starting commitment pattern, so the first day may take significantly longer than subsequent days when running large systems.  The representation of the system external to each pool when the commitment is determined based on the Commitment External Representation column in the Operating Pools table.

Nodal: When solving a nodal study with Solve representation = Region, the model solves the commitment for each Region (as defined in the Aggregate Area table) separately.  Aurora will first solve a simplified dispatch of the system for each day to estimate power flows between regions, and then these will be used to inform the commitment solve for each Region.  Once the commitment decisions have been determined, the model will solve the dispatch for each hour for the entire system with the commitment decisions fixed.

When running with multiple regions the commitment decisions for each region will be threaded, so run times will improve as more cores are available to the model.  Be sure to select Use threading in logic on the Simulation Options form to make use of the threading capability.  

When the Operating Pools table is checked in study the model will automatically add constraints for any spinning requirements that are specified there, even if the Solve representation = System.  If an Operating Rules table is being used with RMR rules, these will also be added as constraints to the commitment decisions.  Likewise if a Resource Dependency table is employed the dependencies will be honored whenever possible.  If there are conflicting constraints, some constraints may need to be relaxed.  When this occurs a warning message will appear, and detailed messaging will be written to the StudyLog output table.

Other Considerations

 NOTE: Because both unit commitment and dispatch must be considered to determine (and minimize) system production cost, these two functions are simultaneously solved with commitment optimization rather than sequentially solved as with the other unit commitment methods. Hence, it is possible to observe gaps in the resource stack where some units are not dispatching while others above them (i.e. more expensive dispatch cost) are dispatching (because to do otherwise would result in a higher system production cost).  

 Simulation Logic

 Commitment Optimization Logic


For further assistance, please contact Aurora Support.

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