RTO UNIT COMMITMENT TEST SYSTEM

STAFF REPORT PREPARED BY THE FEDERAL ENERGY AND REGULATORY COMMISSION 

Acknowledgements

Joann Staron of P3 Consulting obtained and compiled information from PJM and other sources, and

created the vast majority of the data set for this test system under contract pursuant to RFP 21777, June

18, 2010.  Many of the descriptions of data sources and references in this document are directly derived

from the work that she did in late 2010 and early 2011, including material that she prepared for the initial

versions of the test system.  FERC staff has closely worked with those initial versions of the test system,

making formatting and other changes to ready the test system for a more general audience of users.

Federal Energy and Regulatory Commission staff from the Office of Energy Policy and Innovation

performed the modeling and statistical analysis, and created the test model results described  

in this paper.

Eric Krall

Michael Higgins  

Richard P. O’Neill

July 2, 2012 revision – This version of the staff report is primarily to update the test problem results based

upon July, 2012 updates to the generator characteristics and demand data files.     

This paper was prepared by Commission Staff. The opinions and views expressed in this staff report do not necessarily represent 

those of the Federal Energy Regulatory Commission, its Chairman, or individual Commissioners, and are not binding on the 

Commission. This staff report contains analyses, presentations and conclusions that may be based on or derived from the data 

sources cited, but do not necessarily reflect the positions or recommendations of the data providers.

Federal Energy Regulatory Commission   |   July 2, 2012   |    2
Table of Contents:

1. Introduction ..................................................................................................................4

2. Scope and Approach to the Project Test System .........................................................4

3. Data Set Files ...............................................................................................................5

4. Data Description...........................................................................................................6

5. Building the Base Case Model...................................................................................14

6. Mathematical Model for the Base Case Day-ahead Market Unit Commitment........18

7. Results from the Base Case Model ............................................................................21

8. Summary ....................................................................................................................30

Appendix A: Generator Data............................................................................................32

Appendix B: Shift Factor Calculation ..............................................................................35

Appendix C: RUC Solution Statistics ..............................................................................36

Appendix D: Real-time Model Results ............................................................................37

Appendix E: Day-ahead Demand and Virtual Demand ...................................................38

Appendix F: Congestion...................................................................................................39

Appendix G: Suggested Reporting Template...................................................................40

Appendix H: References...................................................................................................42

Appendix I: GAMS Code for the Day-Ahead Unit Commitment....................................44

Federal Energy Regulatory Commission   |   July 2, 2012   |    3
1. Introduction 

This paper discusses a data set for industry use in examining potential improvements to 

certain software and models. The idea for this project arose out of the FY2009-FY2014 

FERC Strategic Plan Initiative to examine potential improvements to day-ahead and realtime market efficiency through improved software and models. Through a June 2010 

technical conference, FERC staff validated the idea and moved forward, with contractor 

assistance, to develop the test data set. 

This paper describes the test system, along with a model that was built to verify the 

realistic nature of the data and the corresponding solution characteristics from that model. 

It provides users with detailed instructions on assembling the data in the test system into 

a working unit commitment optimization model (including the detailed mathematical 

formulation), and provides an overview of results from the base case model for two 

different days. With the eventual release of the data set to qualified sources, there exists 

the potential for the development of innovations that enhance the planning, operations, 

and dispatch of the wholesale energy markets. 

2. Scope and Approach to the Project Test System 

While several test systems have been developed and released for the purpose of 

performing comparative studies of reliability evaluation methodologies,1

 these test 

systems (while extremely useful for their intended purpose) do not contain all of the data 

and parameters that are needed to create large scale, day-ahead unit commitment 

optimization programs, such as those currently solved by most Regional Transmission 

Organizations (RTOs). The test system developed as part of this project helps to address 

this limitation by serving as a benchmark for industry evaluation of differing optimization 

problems. The data set utilizes, to the extent possible, data from publicly available 

sources.2

 

The current version of the test system includes the information to model a deterministic 

system, and to perform linearized power flow calculations (i.e., to perform unit 

 

1

 These include the IEEE RTS-79 and IEEE RTS-96 test systems. 2

 Examples: Energy Information Administration (EIA), http://www.eia.doe.gov/cneaf/electricity/page/data.html; 

Environmental Protection Agency (EPA), http://www.epa.gov/cleanenergy/energy-resources/egrid, and the PJM 

website data dictionary, historical energy market information, and publicly available parts of PJM FTR model 

information. PJM data dictionary: http://www.pjm.com/markets-and-operations/data-dictionary.aspx, PJM dayahead market information: http://www.pjm.com/markets-and-operations/energy/day-ahead.aspx, PJM real-time 

market information: http://www.pjm.com/markets-and-operations/energy/real-time.aspx, PJM FTR model 

information: http://www.pjm.com/markets-and-operations/ftr/model-information.aspx#Slider2011. See the 

Appendices and the data set itself for more description of the data sources. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    4
commitment and economic dispatch simulations with DC Optimal Power Flow (DCOPF) 

approximations, using mixed integer programming (MIP) and linear programming (LP) 

techniques). Elements not contained in the test system include a complete set of realtime data (in 5 minute intervals), load and resource forecast error distributions (for 

stochastic modeling) and sufficient information to perform full AC power flow 

calculations. The latter information would be necessary for AC Optimal Power flow 

(ACOPF) simulations and to enable benchmarking of additional algorithmic processes 

used in RTOs (for example, iterative AC feasibility checks on DCOPF linear solutions). 

The test system created is representative of, but not an exact replica of, the PJM RTO.3

As many approximations and assumptions were made in order to build a feasible, 

working test system and model, it is very unlikely that the model could be used to 

replicate market operations on any given day. The test problem and then results contained 

in this paper are not intended to be used to perform benchmarking against actual system 

behaviors or characteristics. The data is not intended to be used for detailed market 

analysis or to analyze actual market outcomes, and in fact it is not likely to be useful for 

such analysis since only two days are represented and many simplifying approximations 

were made. 

In mid 2011, staff used the test system to create day-ahead unit commitment and 

economic dispatch optimization models in the General Algebraic Modeling System 

(GAMS) programming language, and solved these models to create base case results. 

3. Data Set Files 

The data set primarily contains information that is intended for constructing day-ahead 

unit commitment optimization models, including day-ahead market unit commitment and 

residual unit commitment (RUC). This information includes detailed generator 

information, network topology, demand information (including demand bids and forecast 

demand), demand response, virtual bids and operating reserve information. The data set 

contains information that can be used to simulate real-time economic dispatch for 

selected hours in the operating day. The real-time data are primarily represented by load 

and wind output values which differ from the day-ahead forecast values. This allows for 

the creation of economic dispatch optimization models for a small number of periods 

corresponding to the commitment schedules modeled using the day-ahead data. The data 

set does not, however, contain detailed 5-minute data to simulate an entire day of realtime economic dispatch. 

 

3

 Numerous approximations and estimations were necessary to ensure that a data set could be created without the 

use of confidential bid information. Approximations and estimations were used, for example, in mapping generators, 

loads and other resources to network locations, developing generator offer curves and determining operating 

characteristics such as ramp rates, minimum run levels and minimum run times. The FERC contractor signed the 

relevant Critical Energy Infrastructure Information agreement for access to RTO network models. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    5
Files are contained in FERC eLibrary, under docket AD10-12-002. Files are organized 

such that Critical Energy Infrastructure Information (CEII) information and non-CEII 

information is separated. 

Non CEII Summer and Winter files: 

Generator_Data_Summer(Winter).xls 

DA_Wind_Profile_Summer(Winter).xls 

Interface Defs and Limits Summer(Winter).xls 

Tie Schedules Summer(Winter).xls 

Uncompensated_Parallel_Flow Summer(Winter).xls 

Reserves_Summer(Winter).xls 

Demand_ Summer(Winter).xls 

RT Data_Summer(Winter).xls 

CEII Summer and Winter files: 

Generator to Bus Mapping_Summer(Winter).xls 

ferc_test_model_data_set_Network_Summer(Winter).mdb – contains the network 

in Access .mdb format 

PSSE files – contain network information. The .raw files are in Power System 

Simulator for Engineering (PSSE) (Siemens PTI PSS ETM, .raw) format 

PJM_Network_Model Summer(Winter).raw 

PSS_PARS_Change_Case Summer(Winter).raw 

par_data_summer(winter).xls

The PSSE and database files contain the PSSE bus names used by PJM. Other files use 

generic names (BUS1, BUS2, etc) and the Generic Bus to PSS Bus Mapping 

Summer(Winter).xls file maps between the generic bus names and the PSS bus names. 

4. Data Description 

Network Data 

Description 

 Network topology is contained in Siemens PTI PSSE raw data format (revision 

28), and in Microsoft Access database format. This data set represents information of all 

network components including, buses, loads, generators, transmission lines, transformers, 

switched shunts, areas, zones and ownership. 

Bus information used in creating the unit commitment model includes bus name, base 

kV, bus type and zone. Switched shunt information is included in the PSSE file, and in a 

separate table in the .mdb database. Any branch with a type equal to 4 was assumed to be 

disconnected and was not included in the network that was used to create the base case 

model. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    6
Branch data includes from-bus, to-bus, circuit identifier, per-unit resistance, per-unit 

reactance, per-unit charging susceptance, normal and emergency thermal ratings and 

outage status. Any branch with outage status equal to zero was assumed to be out of the 

network and was not included in the network that was used to create the base case model. 

In the base case model, transformers are treated as fixed and modeled as branches 

between buses. Similar to branches, transformers with an outage status equal to zero are 

not included in the network. 

Interfaces are groups of branches for which a flow limit is monitored. Interface data are 

listed with their normal and contingency ratings for each hour of the day. In the base case 

unit commitment model, the normal ratings were used to model the interface limits. 

Ties are modeled as injections for flows into the footprint and withdrawals for flows out 

of the footprint. In this data set, these can vary by hour. Loop flows are likewise modeled 

as fixed injections or withdrawals at certain buses. Without detailed models of the 

neighboring systems, it was not possible to model changes in loop flows due to different 

actions or events. As a result, the same loop flow injections and withdrawals that are 

modeled in the day-ahead data set (representing the anticipated loop flow incorporated 

into the day-ahead model) are used as loop flow values in the real-time intervals. This 

under-represents the uncertainty and redispatch that loop flow actually causes; users may 

wish to alter the assumptions using their own methodologies. 

Source 

Network files are from the PJM Financial Transmission Rights (FTR) model posting for 

the dates of August 1, 2009 (representing the summer case) and January 31, 2010 

(representing the winter case). The network topology was taken from PJM FTR network 

files because they closely resemble the day-ahead market topology. Those who wish to 

access these files must submit a request to FERC for access to CEII approval, and must 

receive approval for access to this information. After a request for a CEII data set, FERC 

Administrative Law will look at the bona fides of the requestor(s). If FERC determines 

that disclosure to the requestor would not be problematic, FERC will notify PJM. PJM 

will notify its members and the members will have five days to object at FERC. If there 

are no objections, FERC will determine whether to release the data set to the requestor.4

Location of Data 

Network topology information is found in the database and PSSE .raw files within the 

data set. Bus and branch information is included in both the PSSE and Microsoft Access 

database formats. 

Transformer information is included in the PSSE file, and in tables in the .mdb database. 

 

4

 PJM procedures are per verbal communication with PJM on August 30, 2011. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    7
The Interface Defs and Limits Summer(Winter).xls spreadsheet contains the information 

needed to model the interfaces in the system. 

The Tie Schedules Summer(Winter).xls files contain the generic name of the tie, generic 

bus name, and the injection or withdrawal associated with the tie at that bus for each of 

24 hours. The Uncompensated Parallel Flow Summer(Winter).xls files contain the loop 

flow information which is incorporated into the model. 

Generator Data 

Description 

This section describes the generator characteristics used to model the generator units in 

the unit commitment and economic dispatch, fixed wind injections, and generator bid 

data. 

Generator names, characteristics (such as prime mover, fuel type) and operational 

parameters (such as megawatt (MW) capability, minimum run time, etc.) are provided 

along with offer curves (including startup and no-load costs) for each generator. Heat rate 

information is provided along with emissions information. 

Hourly wind profiles are also included for wind generators in the data set. These are 

defined as both forecasts for the day-ahead model and output values for the real-time 

intervals. Wind generation is modeled as a fixed injection at the bus where the wind 

generator is located. 

Source 

Most of the data were collected from the Energy Information Administration (EIA) 

Reports 411, 860 and 923 and the Environmental Protection Agency (EPA) eGrid 

Datasets. Heat rate data were obtained from EIA Reports 1995 and 923. Nominal heat 

rate data were obtained from the EPA eGRID datasets. All EIA reports are available on 

the EIA website. The EIA 411 report is posted on the PJM Website at: 

http://www.pjm.com/documents/reports/eia-reports.aspx

Emissions data were taken from EPA eGrid. In addition to the parameters obtained from 

EIA and EPA, and those that were estimated, some default parameters were assumed, 

e.g., minimum run time and minimum down time. These defaults are taken from the 

parameter matrix found on p. 219 of the report at 

http://www.pjm.com/~/media/documents/reports/state-of-market/2009/2009-som-pjmvolume2.ashx. 

Generator offer curves were derived for the generators in the data set, for the purpose of 

giving the data set enough information to run unit commitment and economic dispatch 

optimization algorithms. These curves are fictional, and should not be interpreted as 

Federal Energy Regulatory Commission   |   July 2, 2012   |    8
actual cost curves associated with a particular generator. Generator offer curves were 

derived from historical PJM bid data as well as heat rate data obtained from EPA reports. 

The methodology to construct the price-quantity pairs on the offer curve consisted of 

several steps. First, historical generator bid data was downloaded from the PJM website. 

This information masks the name of individual generators and so there was not a 

mapping between this data and individual generating units. In the first pass, the historical 

data was divided into two categories based on $/MWh values. Higher cost curves were 

assumed to belong to generators in the eastern part of the RTO, and lower cost curves 

were assumed to be in the western part of the RTO. Then, curves were matched to 

generators by comparing the maximum bid quantity to the EIA 411 maximum output 

level for the generator. If the two values were within 10-15% of each other, the historical 

curve was considered a match for the generating unit. 

For generators where no match was produced, heat rate information (from EPA data, as 

described on the next page) was used to create a curve for the generator. The heat rate 

was transformed into a price-quantity curve by multiplying the heat rate by fuel costs 

taken from monthly EIA reports for fuel types associated with that generator. Finally, the 

generator offer curves were adjusted so that they were monotonically increasing. 

Generator ramp rates and minimum run levels (economic minimum, or eco-min) were not 

readily available in the sources used to develop the data sets. Additional analysis was 

conducted in order to develop these values. 

The ramp rate analysis used the EPA’s Continuous Emissions Monitoring System 

(CEMS) dataset for 2010 in the PJM states to estimate the ramp up and ramp down 

rates.5 EPA CEMS data is primarily a data set of emissions; however, it has two 

characteristics that make it useful for determining ramp rates: 1) it is unit level data, and 

2) it has hourly generation output. The definition of a unit in the EPA CEMS data is not 

always identical to the definition of a unit in the EIA data, however, there is enough 

similarity to identify the prime mover for each unit and to identify or estimate the 

nameplate capacity of each unit. 

The basic method of computing the ramp up and ramp down rates was to compute 

differences in generation output from one hour to the next hour. Data was filtered to 

eliminate outliers. The predicted percentage ramp curve was developed from a two-piece 

regression model where the bend in the curve is determined via maximum likelihood. 

Figure 1 shows a scatter plot of steam turbine (ST) ramp up rates estimated from 2010 

EPA data from units in the PJM region. The ramp rates are presented as a percentage of 

nameplate capacity, so a value of 0.5 percent means that a unit with a nameplate capacity 

of 1000 MW would ramp 5 MW per minute. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    9
Figure 1: Percentage Up Ramp as a Function of Nameplate Capacity, Steam Units, PJM, 2010 

Figure 2 displays the formulas for predicted percentage up ramp and predicted percentage 

down ramp for steam units. These formulas were used to estimate the up ramp and down 

ramp in the unit commitment and dispatch models because of the difficulty of directly 

matching EPA units to all of the units in the data set. 

Figure 2: Formula for Predicted Percentage Up and Down Ramp, Steam Units, PJM, 2010 

Economic minimum (minimum run level) values were also estimated. A generator is 

much more likely to have a generator output at or just above eco-min than any positive 

level less than eco-min. The time that a generator would generate at levels more than 

zero and less than eco-min is when a generator is either ramping up or ramping down. As 

the data show, generators spend much less time in the ramp up and ramp down range than 

they do near their eco-min. This fact was used in estimating eco-min for each unit. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    10
Figure 3 below shows the histogram average for steam turbines that have an estim

eco-min ratio (eco-min divided by nameplate capacity) from 0.5 to 0.6. This figure could 

also be interpreted as a typical histogram for a steam turbine. The threshold line 

determines which of the 10 bins correspond to ramp up and ramp down levels and whic

others correspond to normal operating levels. A threshold level was developed to 

determine which bins were likely to correspond to ramp up and ramp down levels and

which were likely to correspond to normal operating levels. Of all the bins which surpass

the threshold, the one with the smallest ratio of generation to nameplate capacity w

define a range for the eco-min ratio. Rather than just choose the threshold by inspecti

we computed it using statistics on the average ramp up and ramp down output-tonameplate capacity ratio. For example, for steam turbines the threshol

ated 

h 

ill 

on 

d was 3.6% of 

nameplate capacity, computed as the average plus 3.5 standard deviations of the ramp-up 

and ramp-down ratio for all steam turbine units. 

0%

5%

10%

15%

20%

25%

30%

35%

40%

45%

50%

0-0.1

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

-0.2

-0.3

-0.4

-0.5

-0.6

-0.7

-0.8

-0.9

0.9-1

Ratio of Generation to Nameplate Capacity

Percent of Observations

Percent of

Observations

Threshold

Figure 3: Histogram of Steam Turbines with an Estimated Eco-Min Ratio from 0.5 to 0.6 

Figure 4 shows the thresholds for three different types of generators: steam turbines (ST), 

combined cycles (CC), and combustion turbines (CT). 

Average 

at EcoMin

Average 

Ramp 

Up/Down

Standard 

Deviation 

Up/Down Threshold Rule

Threshold 

Value

Steam Turbine 0.21 0.007 0.01 mean + 3.5 s.d. 0.036

Combined Cycle 0.24 0.018 0.02 mean + 3.0 s.d. 0.076

Combustion Turbine 0.44 0.03 0.03 mean + 2.5 s.d. 0.100

Figure 4: Threshold Values for Different Types of Generators 

Federal Energy Regulatory Commission   |   July 2, 2012   |    11
The threshold method yields an eco-min ratio estimate that has a range of 10 percentag

points. We refine this estimate by again applying the same 10-bin histogram 

e 

ethodology to all observations that occur in this eco-min bin to estimate eco-min to 

. 

stimate the eco-min for each type of unit based on its prime mover and its heat rate. If 

the heat rate fell outside the range of estimates in Figure 6, the nearest estimate was used. 

m

within 1 percentage point. The threshold for this second iteration is always 10 percent

Figure 5 below shows the results of the eco-min estimation. We used these results to 

e

Prime Mover

CC CT ST

6000-7000 47%

7000-8000 51%

8000-9000 56% 63%

9000-10000 50% 81% 55%

10000-11000 42% 78% 38%

11000-12000 75% 26%

12000-13000 62% 22%

13000-25000 49% 29%

Heat Rate 

(MMBTU/MWh)

gure 5: Estimated Eco-Min to Nameplate Capacity, by Prime Mover and Heat Rate, PJM, 2010 

enerator information including operating characteristics and cost curve data are found 

 into 

ns the 

ssumptions about the initial commitment status for each generator. More detailed 

file_Summer(Winter).xls spreadsheets (day-ahead forecast values) and 

 the RT_Wind_Profile_Summer(Winter).xls spreadsheets (real-time interval persistence 

The data needed to map the generating units to the network is found in the Generator to 

Fi

Location of Data 

G

in the Generator_Data_Summer(Winter).xls files. 

The data needed to model generator operating characteristics is found in the Generator 

Characteristics tab of the Generator_Data_Summer(Winter).xls spreadsheets. The data 

needed to model generator offer curves are found in the Generator Offer Curve tab of the 

Generator_Data_Summer(Winter).xls spreadsheet. The Generator Heat Rates and Plant 

Emissions tabs contain information that can be used to incorporate heat rates directly

the model, or to model generating plant emissions. The Generator Status tab contai

a

description of the information contained in these files is contained in Appendix A. 

Hourly injection profiles for the buses where wind generators are located are contained in 

the DA_Wind_Pro

in

forecast values). 

Bus Mapping.xls files for each test system day. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    12
Demand Data 

Description 

This section describes the demand data included in the data set, including demand bids, 

fixed demands and virtual bids used for modeling the day-ahead market unit 

e load information for the 

ahead 

ids are price-quantity pairs listed by generic bus name and 

i.e., they have one 

. 

 to the network using generic bus names. Dec bids are modeled as 

oad for the real-time intervals is represented at the bus level, by generic bus name, for 

rval (same format as the day-ahead forecast demand). 

e were obtained through the 

commitment and forecast demand used for modeling the day-ahead RUC. Demand 

response resource information is described. 

The day-ahead data sets contain fixed demand, demand bids and virtual (incremental and 

decremental, or inc and dec) bids which are modeled in the day-ahead market unit 

commitment. The day-ahead data sets also contain day-ahead forecast demand, which is

used in the RUC. The real-time intervals contain real-tim

relevant interval. Demand response is present in both the day-ahead and real-time data 

sets. Demand information is mapped to the bus level. 

Fixed demand is listed by generic bus name and hour of the day, likewise for dayforecast demand. Demand b

hour of the day. Demand bids are modeled as willing to consume up to the price 

associated with their bids. 

Information is included to represent demand response bids in the day-ahead and real-time 

data sets. The demand response resources are modeled as injections at load buses 

(mapped by generic bus name) that offer to respond at a single price (

step offer curves). Demand response resources are modeled as willing to respond by 

reducing demand at a price above the level associated with their bid. 

Information needed to represent incremental (virtual supply) bids is included in the dayahead data sets. There are two tables describing hourly quantity and price for each bid. 

Cleared inc bids are modeled as injections at the associated bus in the day-ahead model

Inc bids are mapped

withdrawals at the associated bus, and are otherwise organized in the same way as inc 

bids in the data set. 

L

each inte

Source 

Data for demand bids, virtual bids and demand respons

historical bids section of the PJM website, at http://www.pjm.com/markets-andoperations/energy/real-time/historical-bid-data.aspx. 

The data used for demand bids was from the historical demand bids for the month of 

August 2009 (Summer) and January 2010 (Winter) as published by PJM. The dates of 

Federal Energy Regulatory Commission   |   July 2, 2012   |    13
8/1/2009 and 1/31/2010 were extracted from their respective files. Distribution factors 

were recalculated as necessary. 

The data used was from the historical inc and dec bids for the month of August 2009 

(Summer) and January 2010 (Winter) as published by PJM. The dates of 8/1/2009 and 

 PJM data included bids broken down to Economic and Emergency 

and are aggregated to the zone level. Only economic bids were considered in this data 

sed in creating the 

data set. The forecast was then broken down by zone and distributed to all buses within 

e called 

he real-time load data was obtained from the PJM website.9

 (data from the day 

ach test set day were used). The demand was broken down by zone 

s files contain the information needed to represent 

demand bids, demand forecasts and demand resources in the day-ahead model. The RT 

rmation needed to represent real-time 

ed. Base case models were constructed for the day-ahead market unit 

commitment, day-ahead reliability unit commitment (RUC) and economic dispatch for 

 

1/31/2010 were extracted from their respective files. Distribution factors were 

recalculated as necessary. 

The Demand Response Resource data was obtained from the PJM website under 

Historical Data.5

 The

set. The total zonal MWs were distributed to all buses within a zone based on their 

distribution factors.6

 

The forecast data was obtained from the PJM website for the dates u

7

that zone. The parameters used for disaggregation were defined in a fil

load_apportionment_hubs_and_zone.xls file from the PJM website.8

 

T

corresponding to e

and distributed to all buses within that zone. 

Location of Data 

The Summer(Winter)Demand.xl

Data_Summer(Winter).xls files contain the info

loads in the real-time intervals. 

5. Building the Base Case Model 

In order to validate the data set, base case models were constructed using the input data 

previously describ

5

 Found at the following link, demand response data is under “Demand Response Bids”, 

http://www.pjm.com/markets-and-operations/energy/real-time/historical-bid-data.aspx 

6

 Zonal MW-to-bus distribution factors were obtained from the file “Load_apportionment_Hubs_and_Zones.xls” 

which has its most recent version available at http://www.pjm.com/markets-and-operations/ftr/modelinformation.aspx#Slider2011. 7

 2009 and 2010 Day-Ahead demand and Day-Ahead forecast information is available at: 

http://www.pjm.com/markets-and-operations/energy/day-ahead.aspx. 8

 Most recent version available at: http://www.pjm.com/markets-and-operations/ftr/modelinformation.aspx#Slider2011. 9

 Historical hourly load data is available at: http://www.pjm.com/markets-and-operations/energy/realtime/loadhryr.aspx. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    14
real-time intervals. This section serves as a guide for constructing the base case models 

 you have PSS/E software, you can read in the .raw file to create the network. 

er, the PSS/E software is not necessary to create the network. The following steps 

pen the 

SS_BUS_DATA table. This contains the bus data for the network. First, buses which 

ected are removed from the network. These include all buses which have bus 

s 

t 

or the branch 

nd PSS_BUS_NUM_J is the to-bus for the branch. In the PSS_BRANCH_DATA_28

n RATEA represents the steady state thermal rating of the branch and the 

FORMER_DATA_28_RECORD1 contains the from-bus (PSS_BUS_NUM_I) 

nd to-bus (PSS_BUS_NUM_J) for each transformer, as well as the outage status 

rmer. The table 

SS_TRANSFORMER_DATA_28_RECORD3 contains the thermal ratings for each 

e columns RATA1 and RATB1 hold the long term and emergency thermal 

t 

transmission element k. For shift factor computation, the reference bus is chosen as the 

from the data set. 

Building the Network Model 

If

Howev

can be followed to build the network model. 

Buses 

In the Microsoft Access .mdb database for each test system day, o

P

are disconn

type (IDE) = 4.10 The remaining buses are part of the network. 

Branches 

Next, in the same database, open the PSS_BRANCH_DATA_28 table. This table contain

the information that describes the branches in the network. All branches with ST=0 (ou

of service) should be removed from the network topology. The remaining branches are 

in the network. The column PSS_BUS_NUM_I represents the from-bus f

a

table, the colum

column RATEB represents the emergency thermal rating of the branch. 

Transformers 

Transformer data is contained in multiple tables in the database. The table 

PSS_TRANS

a

(transformers with the value of STAT = 0 are out of service and are removed from the 

network). 

The table PSS_TRANSFORMER_DATA_28_RECORD2 contains the per unit resistance 

and reactance values for each transfo

P

transformer, th

rating information for transformers. 

Shift Factors 

Shift factors represent the sensitivity of flows on transmission elements to net injection a

buses in the network. In other words, the shift factor from bus i to transmission element k

represents the fraction of power injected by a generator at bus i that would flow over 

 

10 IDE is the bus type, type 4 means the bus is disconnected. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    15
bus in the PSS_BUS_DATA table with type (IDE) = 3.11 Shift factor computation for 

base case model used this single reference bus as the withdrawal point when calculating 

all shift factors. The base case model did not

the 

 consider contingencies, so shift factors 

ere only computed for the bus-branch model with no contingencies. Loss sensitivities 

he calculation of shift factors for the base case model is discussed further in Appendix 

ad 

ect to that transmission 

onstraint. In other words, shift factors with an absolute value of less than 0.05 were 

l in order to reduce solution time. 

ages 

efers to 

S3246

t (a modification made to ensure feasibility of the base case models; 

lternatively these could be monitored but are overloaded at certain hours in the base case 

ift 

re 

pplied and the shift factor calculation proceeds in the same way as for a single 

transmission element (i.e., the shift factors for the lines in the interface are additive). 

 dayw

were not computed for the base case model. 

T

B. 

In the base case model, a bus was considered to impact a transmission constraint if it h

a shift factor with a magnitude of 0.05 or larger with resp

c

omitted from the mode

Monitored Elements

In the base case model, all branches and transformers with a rating not equal to 0, 9999, 

or 99999 are monitored in the optimization model. In other words, branches and 

transformers will have their thermal constraints enforced unless the rating in the data set 

is equal to one of the above values. In addition, branches and transformers with volt

below 115 kV were not monitored in the base case model (for transformers, this r

the voltage at the low side of the transformer). In the winter base case problem, an 

additional modification is that the thermal limit on the branch from BUS5344 to 

BUS8453 is not monitored. In the summer base case problem, the branch from BU

to BUS3247 and the transformer from BUS1987 to BUS1985 are dropped from the 

monitored lis

a

test model). 

Interfaces 

Interfaces are constraints that can consist of more than one branch, and are described in 

the Interface Defs and Limits Summer(Winter).xls spreadsheets. To compute sh

factors for an interface consisting of more than one branch, superposition principles a

a

Building the Generator Model

Generators are primarily modeled using the information contained in the 

Generator_Data_Summer(Winter).xls spreadsheets. This spreadsheet contains the 

information needed to model the operational characteristics of generators, and generator 

offer curves. Generators are modeled as being available to be committed by the

 

11 Bus type 3 represents the reference bus. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    16
ahead market, and fully dispatchable with the exception of wind generators which follow 

a profile. Combined cycle (CC) generators are assumed to operate on a single 

onotonically increasing offer curve (i.e., they do not have multiple configurations 

The detailed description of the generator model that was used in the base case model is 

scribed later in this paper. 

ts of the Model 

 addition to generators and the network, other elements exist such as load forecasts, 

se 

led. In the RUC, fixed demand, demand bids and virtual bids are replaced with 

e day-ahead forecast demand. In the real-time model, the day-ahead forecast demand is 

st 

, 

line generators that withhold their output below 

eir maximum capacity (spinning reserves). Up to half of the requirement may come 

s and 

ase.raw. These are contained in the 

PSSE folder in the CEII\Network folders for each day. PARs were not modeled in the 

of 

 wish to model them. 

m

modeled). Hydro generators are assumed to be available for commitment and dispatch up

to their full output. 

Generators are mapped to the network using the information contained in the Generator

to Bus Mapping.xls spreadsheet. 

contained within the mathematical model de

Building other Elemen

In

demand bids, virtual bids, demand response, reserves, etc. These model elements are 

discussed in this section. 

Demand is modeled as a withdrawal at a node in the network (the location is determined 

by the mapping between demands and buses in the demand files). In the day-ahead 

market unit commitment, fixed demand, demand bids, virtual bids and demand respon

are mode

th

replaced with the real-time load. Demand response resources are present in all three 

models. 

The Reserves.xls spreadsheet contains hourly quantities of operating reserves which mu

be carried system wide. In the base case model, these are treated as contingency reserves

at least half of which must come from on

th

from offline non-spinning reserves, and the base case model assumption is that CT

GTs can provide these off-line reserves. 

There are two files which contain information on phase angle regulators (PARs): 

par_data_summer.xls and PSS_PARS_Change_C

base case model discussed in this paper (for simplicity), but are still included as part 

the data set for those who

Federal Energy Regulatory Commission   |   July 2, 2012   |    17
6. Mathematical Model for the Base Case Day-ahead Market 

Unit Commitment 

Using the data in the above files, a day-ahead unit commitment problem can be 

ulated and solv ization software programs. The 

m is best conveyed by giving 

 that 

te and elow. 

e (10). 

etwork. 

ble generating units. 

rators. 

ffline reserves (assumed CTs and GTs). 

gs 

/MWh). 

h). 

form ed using a variety of optim

methodology of putting this data into an optimization proble

the mathematical formulation of the optimization problem. The ‘base case’ problem

was formula d solved for this paper is described b

Sets 

T = The set of time periods (24). 

S = The set of steps on the offer (bid) curv

N = The set of buses (nodes) in the network.

K = The set of branches in the n

G = The set of dispatcha

W = The set of wind gene

J = The set of generators that can provide o

D = The set of price responsive demands. 

E = The set of demand response resources. 

Q = The set of fixed demands. 

A = The set of inc bids. 

B = The set of dec bids. 

C = The set of forecast unscheduled flows. 

H = The set of tie schedules. 

g

c = Energy offer for generator g on step s ($/MWh). su

c g = Startup cost for generator g ($). 

nl

c g = No load cost for generator g ($). 

pd

c r t ($/MWh). td = Energy bid for price responsive demand d in hou

dr

c e = Demand response offers for demand response e ($ vs

c ta = Inc bid for virtual supply a in hour t ($/MWh). 

vd

c tb = Dec bid for virtual demand b in hour t ($/MWh). 

pg

tgs = Cleared offer qty from generator g on step s in hour t (MW

g p tg = Total real power dispatch from generator g in hour t (MW

v = Binary decision to startup generator g in hour t. 

h). 

r g in hour t. 

tb t (MWh). 

tg

utg = Binary decision to commit generato

ltg = Binary decision to shut down generator g in hour t. 

ppd

td = Cleared bid from price responsive demand d in hour t (MWh).

p

dr

te = Cleared offer from demand response e in hour t (MWh). vs p (MWh). ta = Cleared inc offer from virtual supply a in hour t 

vd

p = Cleared dec bid from virtual demand b in hour 

pfd

tq = Fixed demand q in hour t (MWh). 

da

p f

tn = Day-ahead forecast demand at node n in hour t (MWh). wp generator w in hour t (MWh). tw = Forecast production from wind 

Federal Energy Regulatory Commission   |   July 2, 2012   |    18
puf

tc = Injection from unscheduled flow c in hour t (MWh). 

e shortage or surplus (assumed 10000).

on thermal limits (assumed 5000).

bal,-t = System wide surplus variable. +

tk e direction.

flow,-

tk = Transmission element thermal relaxation negative direction.

δnk = 

xtn = 

 market surplus variable ($). 

+∑e c e p te - ∑d cpd

td p td - ∑b c tb p tb

ba -t] +yflow[s

flow,+

tk sflow,-tk ] }

stra

er B

pts

th = Injection from tie schedule h in hour t (MWh). 

y

bal = Penalty cost on system power balanc

y

flow = Penalty cost on individual transmissi

s

bal,+t = System wide shortage variable.

s

s

flow, = Transmission element thermal relaxation positiv

s

f

b

tk = Flow on branch k in hour t (MWh). 

Shift factor from bus n to branch k. 

Net injection at bus n in hour t (MWh). 

z = Objective function

s Max z = -∑t{∑g [c u

g vtg + cnlg utg + ∑s cggs pgtgs] +∑a cvsta pvsta 

dr dr pd vd vd

+ybal [s

bal,+t+ s l, +

Con int Description (Dual Variable) 

(1) System Pow alance (λt)

g r pd vd bal,+ bal,- fd

tg + ∑q p tq - ∑c puftc - ∑w pwtw - ∑h pts ∑e th p

d

te +∑a pvsta - ∑d p td -∑b p tb+ s t ∑g - s t p = 

 t׊

(2) Generator Dispatch in Hour (αtg)

g g

tg - ∑s p tgs = 0 p ׊t,g 

(3) Generator Dispatch Step Limi (β

g step

t tgs)

+ P gs -p tgs utg ≥ 0 ׊t,g,s

(4) Generator Maximum Output (γtg)

g s max,g

tg - p tg g ≥ 0 ׊t,g re + P utg 

ε ) 

-p

(5) Generator Minimum Run Level ( tg

g min,g p tg - P g utg ≥ 0 ׊t,g

tity (ηta)

ι

)

g(n

(6) Demand Bid Max Quantity (ζtd)

pd max,d -p td ≥ -P td ׊t,d 

(7) Virtual Supply Max Quan

vs -p ta ≥ -Pmax,ata ׊t,a

(8) Virtual Demand Max Quantity ( tb)

vd max,b -p tb ≥ -P tb ׊t,b 

(9) Demand Response Max Quantity (κte)

dr max,e -p te ≥ -P te ׊t,e 

(10 Net Injection at Bus (μtn)

xtn - ∑ ) pg dr

tg - ∑a(n) pvsta - ∑e(n) p te +∑d(n) ppdtd +∑b(n) p

vd

tb 

Federal Energy Regulatory Commission   |   July 2, 2012   |    19
= -∑ pfd

tq + ∑c(n) puftc + ∑w(n) pwtw + ∑h(n) pts q(n) th ׊t,n 

ission Element (ξtk)

-fb

tk +s

flow,+

tk ≥ -Fmax,btk 

3) M Flow rection (οtk)

f tk +s tk ≥ -F tk 

 (14) Startup-Shutdown-Commitment Relationship (πt

tg t,g 

(15) Minimum Run Time (ςtg) 

(11) Flow on Transmission Element (νtk)

f

b

tk -∑n xtn δnk = 0 ׊t,k 

(12) Maximum Flow on Transm

׊t,k 

(1 aximum on Transmission Element, Reverse Di

b flow,- max,b ׊t,k 

g)

vtg - l - utg + ut-1,g ≥ 0 ׊

-  ׊t,g 

t

rtt g  1 Run

 vtg + utg ≥ 0 

(16) Minimu Down Ti ( m me σtg)

- 

t

rtt g  1 Run

 ltg - utg ≥ -1 ׊t,g

(17) Maximum Ramp Rate Up (τtg)

-pg

tg + pgt-1,g +Prampg utg + Pmax,gg vtg 

≥ 0 ׊t,g 

(18) Maximum Ramp Rate Down (υtg)

- pg

t-1,g + pg amp

tg+P g ut r g + Pmax,g

g ltg 

 0 ׊t,g 

ide Spinnning and non Spinning Reserves (φt)

≥

(19) System W

∑g prestg+∑gεP Pmax,g

g (1- utg) ׊t 

≥ Rest 

(20) Spinning Reserves (χt)

∑g p ׊t restg ≥ Rest/2 

utg ,vtg, ltg є {0,1}

pg

tg, p

dr

te, pvstu, ppdtd, sbal,+t, sbal,-t, sflow,+tk, s

flow,-

tk, s

int

ti, pgtgs, prestg ≥ 0 

In the above notation, g(n), d(n), etc. maps a resource, load, etc. to bus n. 

Model for the RUC 

In the base case RUC model, the formulation is similar to the one described previously. 

However, there are some important modifications. Fixed demand, price responsive 

demand and virtual bids are removed from the model (constraints (6)-(8) are dropped), 

and in constraints (1) and (10) the variables and parameters representing fixed demand, 

Federal Energy Regulatory Commission   |   July 2, 2012   |    20
price responsive demand, and virtual bids are replaced with the withdrawals 

corresponding to the day-ahead demand forecast. Similarly, price responsive demand 

nd virtual bid terms are dropped from the objective function. 

C. In 

 as long as the remaining 

onstraints are satisfied. De-commitments from the day-ahead market schedule are not 

allowed in the RUC. 

 Real-time Dispatch 

time intervals, all commitments 

alistic results. The models were written in the General Algebraic Modeling System 

th the Gurobi optimization solver on an application 

erver with 8 Intel Xeon E7458 2.4GHz processors and 64 gigabytes (GB) memory 

l is formulated to maximize market surplus, and at the optimal 

e 

blem formulated as described previously can be solved by a commercial solver if 

nough processing power and memory are available. With all constraints on branches 

s about 4,000 transmission 

onstraints in every hour. With over 1,000 generating units each with binary startup and 

a

Commitments that were made in the day-ahead market are assumed fixed in the RU

other words, for each generator g, if there was a commitment in any hour t, utg is fixed to 

1 in the RUC. Additional commitments are allowed in the RUC,

c

The objective function for the RUC does not minimize the energy component of 

production cost. It only minimizes commitment costs (startup and no-load costs). 

Generator and demand response variable cost terms are dropped (or set to zero). Penalty 

costs for constraint relaxations remain in the objective function. 

Model for

In the economic dispatch model for the selected realfrom the day-ahead market, plus additional commitments in the RUC, are assumed fixed. 

The single interval model can then be solved as a linear program because the startup and 

commitment decisions no longer have to be made (integer variables become fixed 0,1 

parameters), and commitment related constraints (14)-(16) are redundant. 

7. Results from the Base Case Model 

Using the datasets and mathematical models described previously, FERC staff developed 

optimization models to validate that the test system could produce reasonable and 

re

(GAMS) language and solved wi

s

(RAM). The mode

solution the objective function values are actually negative. In the results discussion in 

this report, the objective function values are shown as positive numbers, which would b

the result if the model were modified to minimize the negative of the objective function. 

Day-ahead Unit Commitment 

Solution Method 

The pro

e

and transformers above 115 kV included, the problem contain

c

Federal Energy Regulatory Commission   |   July 2, 2012   |    21
commitment decisions, and potentially over 1 million bus-branch shift factor values, the 

problem can be difficult to solve. The table below shows the amount of time that the 

summer problem takes to solve when 3,906 transmission constraints are included in each 

hour. 

Table 1: Solution to the Summer Day-ahead problem with full constraints 

Test Problem Summer Day Ahead Unit Commitment

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff all lines 115 kV and above

Algorithm Mixed Integer Program

MIP Gap Tolerance 0.05

Problem Summary

Solution

Objective $18,017,325

Best Bound $17,276,545

Gap 4.11%

Time

Presolve + Root Linear Program 2476

MIP Search 2777

The total solution time is over an hour. In addition, the memory requirements are very 

rge (over 10 GB), and using this brute force approach to the solution may not be 

ts and 

for 

ry single transmission line above 115 kV is 

alculated using the net injections and withdrawals at each bus, and the shift factors from 

n 20% of its thermal 

it is flagged to be monitored. In Step B, the program is re-run including these 

onstraints. If the same topology and generators are used repeatedly, Step 1 (10-15 

nutes) can be solved once and the reduced list of monitored elements can be saved. 

The next two tables show the solution time for the Summer and Winter problem using 

this screening approach (times for Step 2). 

la

practical for some users of the test system. 

Where the interest is only to produce results quickly, the solution time can be reduced by 

taking advantage of the fact that most transmission constraints are not likely to be 

persistently binding. We used the following method to reduce memory requiremen

computation time. 

In Step 1, the problem is solved without enforcing any transmission constraints except 

interface constraints. Next, the flow on eve

c

each bus to each transmission line. Any line that has a flow withi

lim

c

mi

Federal Energy Regulatory Commission   |   July 2, 2012   |    22
Table 2: Solution to the Summer Day-ahead problem with reduced constraints 

 

 

Test Problem Summer Day Ahead Unit Commitment

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff subset of lines above 115

Algorithm Mixed Integer Program

MIP Gap Tolerance 0.05

Objective $17,977,310

7,225,488

p 4.18%

Presolve + Root Linear Program 502

MIP Search 674

Problem Summary

Solution

me

Best Bound $1

Ga

Ti

Table 3: Solution to the Winter Day-ahead problem with reduced constraints 

 

Test Problem Winter Day Ahead Unit Commitment

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff subset of lines above 115

Algorithm Mixed Integer Program

MIP Gap Tolerance 0.05

Objective $25,085,574

Problem Summary

Solution

Best Bound $24,666,532

Gap 1.73%

Presolve + Root Linear Program 530

MIP Search 123

Time

Federal Energy Regulatory Commission   |   July 2, 2012   |    23
Solving the RUC problem follows from the solution to the day-ahead unit commitment 

problem. After solving the day-ahead market unit commitment, substitute the day-ah

forecast demand for the demand parameters and variables in the day-ahead unit 

commitment (

ead 

including virtual bids). Demand response is still present in the RUC. Fix 

e commitments which have already been made, and allow other commitment decisions 

 be made while minimizing only startup and no-load costs. The RUC can be an easier 

m than the day-ahead unit commitment because so many commitment 

Generation 

The following figures show the amount of generation, by type, that cleared in the dayahead model for each of the days in the test system. The system has a large amount of 

coal and nuclear generation relative to other generation types. 

th

to

integer proble

decisions are already fixed. The solution statistics for the RUC problems are contained in 

Appendix C. 

Fuel Type Percent of t

energy produce

over the day

otal 

d 

Nuclear 35.4%

Bituminous Coal 33.3%

Subbituminous

Coal 

9.9%

Water 8.8%

Natural Gas 3.9%

Federal Energy Regulatory Commission   |   July 2, 2012   |    24
Synthetic Coal 2.7%

Residual Fuel 

il 

2.4%

O

Kerosene 2.4%

Distillate Fuel 

il 

0.6%

O

Wind 0.5%

Figure 6: Cleared generation by hour in the Day-ahead Summer model and percent of energy by fuel type 

Fuel Type Percent of t

energy prod

over the day 

otal 

uced 

Nuclear 42.1%

Bituminous Coal 32.1%

Water 7.4%

Subbituminous 7.3%

Coal 

Natural Gas 4.6%

Synthetic Coal 2.9%

Residual Fuel 

Oil 

1.4%

Wind 0.9%

Waste/Other 

Coal 

0.5%

Federal Energy Regulatory Commission   |   July 2, 2012   |    25
Kerosene 0.4%

Municipal Solid 

aste 

0.2%

W

Landfill Gas 0.1%

Wood 0.1%

Distillate Fuel 

il 

0.0%

O

Figure 7: Cleared generation by hour in the Day-ahead Winter model and percent of generation by fuel type

Demand Response 

The system included demand response bidding into the day-ahead market. The following 

figures show the amount of demand response that cleared by hour in each model. 

Figure 8: Cleared Demand Response in the Day-ahead Summer Model 

Federal Energy Regulatory Commission   |   July 2, 2012   |    26
Figure 9: Cleared Demand Response in the Day-ahead Winter Model 

Locational Marginal Prices (LMPs) 

LMPs can be derived from the dual variables in the previously described mathematical 

formulation of the unit commitment problem. For the purposes of this report, dual 

variablesare obtained after the optimal integer solution is obtained, by solving a restricted 

linear program with constraints that hold the integer variables equal to their values in the 

optimal solution. Since the values are the duals to a mixed integer program, the costs on 

the binary variables are able to impact the prices. Thus, the “LMPs” shown here may not 

match the LMPs produced by a pricing algorithm in a given electricity market. In many 

pricing algorithms, the costs associated with binary variables receive different treatment 

and often do not impact prices (or impact prices only in limited circumstances). 

The LMP at each bus is found from the dual variable on system power balance, and the 

dual variables on the transmission constraints which are sensitive to injections from that 

bus. The formula for a bus LMP is expressed as: 

LMPtn = -λt -∑k (ξtk + οtk )δnk

The following figures show the average LMPs across all buses for the two days modeled. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    27
Figure 10: Average LMPs by Hour in the Summer Model 

Federal Energy Regulatory Commission   |   July 2, 2012   |    28
 

Figure 11: Average LMPs by Hour in the Winter Model 

The average prices ranging from $20/MWh to $60/MWh are reasonable and suggest that 

the test system is realistic. 

Taking the load weighted LMPs by zone for the summer problem reveals that the higher 

prices tended to be in zones where higher prices are expected in the actual RTO; similarly 

for lower prices. 

Table 4: 5 Highest Priced Zones in the Summer Day-ahead model (load weighted) 

Average Zone 

 $ 75.35 Zone 68 

 $ 67.25 Zone 71 

 $ 54.21 Zone 58 

 $ 54.01 Zone 63 

 $ 53.90 Zone 72 

Table 5: 5 Highest Priced Zones in the Winter Day-ahead model 

Average Zone 

 $ 36.97 Zone 69 

 $ 34.19 Zone 73 

 $ 33.58 Zone 58 

 $ 32.74 Zone 64 

 $ 32.69 Zone 66 

Federal Energy Regulatory Commission   |   July 2, 2012   |    29
Table 6: 5 Lowest Priced Zones in the Summer Day-ahead model 

Average Zone Number 

 $ 28.33 Zone 91 

 $ 29.73 Zone 104 

 $ 30.69 Zone 90 

 $ 31.77 Zone 82 

 $ 31.96 Zone 92 

Table 7: 5 Lowest Priced Zones in the Winter Day-ahead model 

Average Zone Number 

 $ 31.21 Zone 105 

 $ 31.27 Zone 91 

 $ 31.31 Zone 75 

 $ 31.35 Zone 79 

 $ 31.40 Zone 85 

8. Summary

By providing a single, RTO-sized test set it is staff’s hope that the power systems 

optimization community will be equipped with a tool for identifying best practices in unit 

commitment and economic dispatch algorithms, and for comparing performance on 

difficult power systems optimization problems. The test set and data sources are 

described in detail. A suggested template which contains important solution information 

for benchmarking algorithms is contained in Appendix G. The examples of base case 

results are intended to provide a general guide for users who are trying to validate that 

they have constructed the various pieces of the data set properly in order to run 

optimization experiments. Staff anticipate that users will want to see changes and 

updates to the data set to reflect a changing power industry. As such users in the 

optimization community are encouraged to document their own modifications and ideas 

so that the data set can evolve over time. Additionally, we have begun the process of 

obtaining two additional, even more detailed data sets which can be used for not only 

integer-linear unit commitment algorithms but also for non-linear AC optimal power flow 

modeling. 

The network components of the data set have CEII restrictions. Other data, such as the 

generator data, was obtained without any restriction from public sources like the EIA, 

EPA and PJM websites, as well as statistical estimation. The data is contained in 

eLibrary under AD10-12. The public portions of the data set are available, and the 

Federal Energy Regulatory Commission   |   July 2, 2012   |    30
network portions are considered CEII and classified appropriately in eLibrary. For 

additional information about CEII information filed at the Commission, please visit this 

section of the FERC website: http://www.ferc.gov/legal/ceii-foia.asp, or contact: foiaceii@ferc.gov.

Federal Energy Regulatory Commission   |   July 2, 2012   |    31
Appendix A: Generator Data 

Data in the Generator_data_Summer(Winter).xls spreadsheets 

Generator Characteristics Tab:

Field Description Source 

Generic Name Generic name of the generator 

Ramp Up Ramp Up Statistical Study 

Ramp Down Ramp Down Statistical Study 

PRIMEMOVER Primemover Code EIA 411 

NAMEPLATE (MWs) Nameplate MWs EIA 411 

SUMMER_CAPABILITY (MWs) Summer Capability MWs EIA 411 

WINTER_CAPABILITY (MWs) Winter Capability MWs EIA 411 

Energy_Source_1 (Fuel) Energy Source 1 EIA 411 

EFORD Forced Outage Rate PJM website 

CITY City where plant resides EIA 411 

STATE State where plant resides EIA 411 

Economic Minimum (MWs) Generator Eco Min Statistical Study 

MIN_DOWN_TIME Default Minimum Down Time in hours PJM Default Parameters 

MIN_RUN_TIME Default Minimum Run Time in hours PJM Default Parameters 

CO2 rate CO2 Emissions rate in lbs/MWh EPA eGrid Data 

NOx rate NOx emissions rate in lbs/MWh EPA eGrid Data 

SO2 rate SO2 emissions rate in lbs/MWh EPA eGrid Data 

Default Generator Parameters 

In addition to the parameters obtained from EIA and EPA, and those that were estimated, 

some default parameters were assumed. For example, for minimum run time and 

minimum down time. 

These defaults are taken from the PJM Parameter Matrix and the GE MAPS assumptions 

as listed in the report that can be found at: 

http://www.oe.energy.gov/DocumentsandMedia/Appendix_6_MAPS_Assumptions_3-

13.pdf (accessed late 2010), and Appendix B of the report at : 

http://www.spp.org/publications/CRA%20SPPEntergy%20Rate%20Pancaking%20Study.pdf (accessed September, 2011) 

Federal Energy Regulatory Commission   |   July 2, 2012   |    32
http://www.pjm.com/~/media/committees-groups/workinggroups/rmwg/20070424/20070424-item-03-parameters-matrix-revised.ashx 

Generator Offer Curve Tab: 

Note that generator offer curves are derived from data on PJM historical bids as well as 

estimated data in the heat rate tab. Since it was not known which generator was 

represented in the masked PJM historical data, the curves for each generator were 

assigned after dividing generators into categories and looking for bid data that had a 

similar upper limit as a generator’s nameplate capacity. When no match could be 

obtained, the estimated heat rate curves from the heat rate tab were multiplied by fuel 

prices obtained from EIA data to create the offer curve. As such, the offer curves, while 

representative of realistic curves, are fictional and entirely derived from publicly 

available sources. 

Field Description Source 

Generic Name Generic name of the generator 

MW 1 

PJM Historical Generator Bids 

& Data from Heat Rate Tab 

BID 1 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 2 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 2 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 3 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 3 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 4 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 4 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 5 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 5 ($/MW) 

PJM Historical Generator Bids 

& Data from Heat Rate Tab 

MW 6 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 6 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 7 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 7 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 8 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 8 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 9 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

BID 9 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

MW 10 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

Federal Energy Regulatory Commission   |   July 2, 2012   |    33
BID 10 ($/MW) 

PJM Historical Generator Bids

& Data from Heat Rate Tab 

No Load Cost ($) No Load Cost in Dollars PJM Historical Bid Data 

Cold Start Cost ($) Cold Start Cost in Dollars PJM Historical Bid Data 

 Hot Start Cost in Dollars PJM Historical Bid Data 

 

Generator Heat Rate Tab: 

This tab lists the nominal heat rate for those units reporting on the 2008 EIA Form 923. 

The nominal heat rates came from the EPA eGrid datasets, curves were derived by using 

the default shape listed in the GE MAPS assumptions. 

Field Description Source 

Generic Name Generic name of the generator 

Nominal Heat Rate Nominal Heat Rate 

EPA 

eGrid 

MW_OUTPUT_1 

MMBTU_PER_MWH1 

MW_OUTPUT_2 

MMBTU_PER_MWH2 

MW_OUTPUT_3 

MMBTU_PER_MWH3 

MW_OUTPUT_4 

MMBTU_PER_MWH 

Federal Energy Regulatory Commission   |   July 2, 2012   |    34
Appendix B: Shift Factor Calculation 

The calculation of shift factors for the base case model makes assumptions to create a 

simplified real power flow to be used in linear and mixed-integer linear programming 

algorithms (aka DC power flow, linearized power flow, etc): 1) Voltage magnitudes 

equal to 1.0, 2) branch resistance is assumed to be very small such that susceptance of a 

branch from bus i to bus j is 

ij x

1  , where xij is the branch reactance. The angle difference 

at the two ends of the branch is assumed to be small so that sin θij = θi – θj and cos θij = 1. 

The real power flow on each branch and transformer using these assumptions is: Pij = 

ij x

1  (θi – θj). The angle at the reference bus is set equal to 0. Shift factors are the 

change in flow on a transmission element k for a change in injection at a bus i, or ski = 

k

i

P

P





. These can be calculated from: 

 

Sf = D[B’]-1

The solution gives Sf, the matrix of shift factors from buses to branches in the network. 

The B’ matrix is n-1 x n-1, where n is the number of buses and the row and column for 

the reference bus are removed. B’ij = 

ij x

1  and B’ii = ij

 B’ii.. D is a matrix where Dki = 

1/xij and Dkj = -1/xij for branch k from bus i to bus j and Dkp = 0 for p ≠ i or j. There are 

many methods for calculating shift factors, including the use of distributed slack buses. 

We did not use a distributed slack bus here, but calculated our shift factors using methods 

found in a textbook.12 For a large network such as the one in this test set, software with 

built in methods to calculate shift factors, or tools such as Matlab which quickly perform 

matrix calculations, are beneficial. 

 

 

 

12 We consulted the following book in calculating shift factors: Zhu, J., Optimization of 

Power System Operation, IEEE/Wiley (2009). 

Federal Energy Regulatory Commission   |   July 2, 2012   |    35
Appendix C: RUC Solution Statistics 

Test Problem Summer Day Ahead RUC

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff subset of lines above 115

Algorithm Mixed Integer Program

MIP Gap Tolerance 0.05

Objective $3,852,687

Best Bound $3,692,130

Gap 4.16%

Presolve + Root Linear Program 250

MIP Search 23

Problem Summary

Solution

Time

Test Problem Winter Day Ahead RUC

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff subset of lines above 115

Algorithm Mixed Integer Program

MIP Gap Tolerance 0.05

Objective $1,535,989

Best Bound $1,489,791

Gap 3.00%

Presolve + Root Linear Program 395

MIP Search 15

Problem Summary

Time

Solution

Federal Energy Regulatory Commission   |   July 2, 2012   |    36
Appendix D: Real-time Model Results 

As discussed previously, the test system is primarily a day-ahead test system. The 

limited sample of updated real-time load and wind data can be used to model discrete 

intervals. Data exists for 6 such intervals in each of the summer and winter data sets. 

The intervals are from the real-time hours ending 1, 5, 9, 13, 17 and 22. The data could 

be extrapolated, in theory, to construct a real-time look ahead commitment. However, 

here we only report on the single interval dispatch solution time. We only report on one 

interval because all solve in essentially the same amount of time and display the same 

characteristics. 

We report on the first interval (HE1) from the Winter problem. 

Test Problem Winter Real Time Interval 1

Formulation Type DCOPF

Solver Gurobi 4.0

CPU 8x Intel Xeon E7458 2.4GHz

Memory 64 GB RAM

Shift Factor Cutoff 0.05

Monitored Lines and Transformers kV Cutoff subset of lines above 115

Algorithm Linear Program

MIP Gap Tolerance 0.05

Objective $124,902

Best Bound N/A

Gap N/A

Presolve + Root Linear Program 58

MIP Search N/A

Problem Summary

Solution

Time

Federal Energy Regulatory Commission   |   July 2, 2012   |    37
Appendix E: Day-ahead Demand and Virtual Demand 

This appendix includes information on the fixed demand, demand bids and virtual bids 

which cleared in the base case day-ahead market problem for each day. 
Appendix F: Congestion 

This appendix illustrates the congestion shadow prices associated with constraints in the 

day-ahead solutions. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    39
Federal Energy Regulatory Commission   |   July 2, 2012   |    40

Appendix G: Suggested Reporting Template 

Because one of the purposes of the test system is for benchmarking unit commitment 

solution algorithms, staff suggests a reporting template which could be used to compare 

solution statistics from different methods. Reporting a common set of information could 

aid in the identification of best practices for solving unit commitment. 
RTO Unit Commitment Test Problem Reporting Template 

Name: Date: 7/2/2012

Data Set (Summer/Winter; Day Ahead/Real Time) 

Summer Day Ahead 

Model Description 

24 period Day Ahead unit commitment, monitoring limits on a reduced set of branches and 

transformers 115 kV and above. Shift factors below 0.05 are not modeled (Shift factor cutoff 0.05). 

Lossless, linearized powerflow without contingencies. 

Solution Summary 

Objective Function Value 17977310 

Best Possible Objective 17225488 

Gap 4.18% 

Gap Tolerance 5.0% 

Algorithm Mixed Integer Program 

Solution Time (seconds) 

Total 1176 

LP relaxation 502 

Branch and Bound 674 

Other (Describe) 

Time: 

Computer 

CPU(s) 8x Intel Xeon E7458 2.4GHz 

Memory 64 GB 

Software 

Program GAMS 23.6 

Solver Gurobi 4.0 

Solver Options (Summarize) 

8 threads, Presolve on, default presolve and cuts options. 

Additional Information 

Reduced set of constraints to monitor determined by running the model with only interface constraints 

enforced, and choosing lines that had flows within 20% of normal limits. This was found to lead to a close 

approximation of the optimal solution with very close to the same set of congested constraints, in a much 

shorter amount of time than solving the problem with every line monitored. 
Appendix H: References 

References 

In addition to this documentation, useful references include the following PJM Manuals: 

 M-10: Pre-Scheduling Operations describes PJM and PJM Member pre-scheduling activities 

 M-11: Scheduling Operations provides information on the day-ahead and hourly scheduling 

 M-35: Definitions and Acronyms 

All of which can be found on the PJM website at: 

http://www.pjm.com/documents/manuals.aspx

In addition to the above manuals, the PJM Market Database Data Dictionary can be found at: 

http://www.pjm.com/~/media/etools/emkt/market-database-data-dictionary.ashx

Information on the PJM FTR model can be found at: 

http://pjm.com/markets-and-operations/ftr.aspx

Additional PJM historical data can be found at: 

http://pjm.com/markets-and-operations/ops-analysis.aspx

http://pjm.com/markets-and-operations/energy.aspx

EIA documentation for EIA forms: 

 Form EIA-860 Database Annual Electric Generator Report 

 Form EIA-411 Coordinated Bulk Power Supply Program Report 

 Form EIA-906, EIA-920 and EIA-923 Databases 

Can be found on the EIA website at: 

http://www.eia.doe.gov/cneaf/electricity/page/data.html

EPA documentation for EPA forms: 

http://www.epa.gov/cleanenergy/energy-resources/egrid

Federal Energy Regulatory Commission   |   July 2, 2012   |    42
The National Renewable Research Lab (NREL) report “A Method and Case Study for Estimating the 

Ramping May 2005 Capability of a Control Area or Balancing Authority and Implications for Moderate 

or High Wind Penetration” can be found at: 

http://www.nrel.gov/docs/fy05osti/38153.pdf

Federal Energy Regulatory Commission   |   July 2, 2012   |    43
Appendix I: GAMS Code for the Day-ahead Unit Commitment 

Below is the code used to solve the unit commitment test problem in GAMS, to create the 

base case results. 

$ontext 

Day Ahead Unit Commitment Test Problem; 

$offtext 

$OFFListing 

$ONUELLIST 

$ONINLINE 

$ONEMPTY 

$ontext 

choose the season to solve: 

If you want to solve the Summer problem, comment out the 'Winter' line and 

leave the 'Summer' line un-commented 

vice versa to solve the Winter problem 

$offtext 

$set season 'Summer' 

*$set season 'Winter' 

*place the path for your GAMS project in my_data_root 

$set my_data_root 'insert path for GAMS project file' 

*place the path for your GDX input and output files in cgdxpath 

$set cgdxpath 'insert path for GDX files' 

$set ceiifile ceii_input_%season%_model 

$set outfile ceii_DAUC_%season% 

scalar SFcutoff Shift Factor cutoff 

/0.05/; 

scalar kVcutoff kV cutoff for monitored Tx limits 

/115/; 

scalar ThermalLimViol Thermal Limit violation penalty 

/1000/; 

scalar InterfaceLimViol Interface Limit violation penalty 

/5000/; 

Federal Energy Regulatory Commission   |   July 2, 2012   |    44
scalar GlobalViol Global energy shortage or surplus penalty 

/10000/; 

sets sHour(*) Hours in the day ahead market 

 sGen(*) all generators 

 sPrimeMover Generator prime mover set 

 sGenPrimeMover(sGen,sPrimeMover) Prime mover mapping 

 sStep Steps in generator offer curve 

 sWind Wind generators 

 sWindBus Wind generator bus 

 sSource Fuel Sources 

 sGenSource Fuel source to generator 

 sBus(*) CEII Do Not Release - all network buses 

 sZone CEII Do Not Release - network zones 

 sGenBus(sGen,sBus) CEII Do Not Release - generator bus mapping 

 sGenZone(sGen,sZone) CEII Do Not Release - generator to zone mapping 

 sBusZone(sBus,sZone) CEII Do Not Release - bus to zone mapping 

 sActiveBus(sBus) CEII Do Not Release - dynamic set to select certain buses 

 sTrans(*) CEII Do Not Release - all network transmission elements 

 sBranch(sTrans) CEII Do Not Release - network branches 

 sXFMR(sTrans) CEII Do Not Release - network transformers 

 sActiveTrans(sTrans) CEII Do Not Release - dynamic set to select elements to be 

in network 

 sMonitorTrans(sTrans) CEII Do Not Release - dynamic set to select elements to 

monitor 

 sFBus(sTrans,sBus) CEII Do Not Release - From Bus mapping for transmission 

elements 

 sTBus(sTrans,sBus) CEII Do Not Release - To Bus mapping for transmission 

elements 

 sDRBid(*) Set of DR resources 

 sDRBidBus(sDRBid,sBus) Map DR to bus 

 sDecBid(*) Dec bids 

 sDecBidBus(sDecBid,sBus) Dec bid Bus mapping 

 sDecBus(sDecBid,sBus) 

 sIncBid(*) Inc bids 

 sIncBidBus(sIncBid,sBus) Inc bid Bus mapping 

 sIncBus(sIncBid,sBus) 

Federal Energy Regulatory Commission   |   July 2, 2012   |    45
 sPriceDem(*) Price responsive demands 

 sPriceDemBus(sPriceDem,sBus) Price responsive demand bus 

 sDemandbid(*) 

 sDemandbidBus(sDemandbid,sBus) 

 sForecastDem(*) Forecast Demands 

 sForecastDemBus(sForecastDem,sBus) Forecast Demand Bus 

 sLoopFlow Loop flows 

 sLoopFlowBus(sLoopFlow,sBus) Loop flow bus mapping 

 sTie Ties 

 sTieBus(sTie,sBus) Tie Bus Mapping 

 sInterfaces interfaces or flowgates; 

parameters 

 pBranchR(sTrans) CEII Do Not Release - per unit resistance of tx element 

 pBranchX(sTrans) CEII Do Not Release - per unit reactance of tx element 

 pThermalRateA(sTrans) CEII Do Not Release - normal thermal rating of tx 

element 

 pThermalRateB(sTrans) CEII Do Not Release - emergency rating of tx 

element 

 pTranskV(sTrans) CEII Do Not Release - Tx element kV 

 pBranchkV(sTrans) CEII Do Not Release - Branch kV 

 pXFMRkV(sTrans) CEII Do Not Release - XFMR kV 

 pBuskV(sBus) CEII Do Not Release - Bus Base kV 

 ptdfmat(sBus,sTrans) CEII Do Not Release matrix of shift factors branch & 

xfmr 

 pColdStart(sGen) cold startup cost 

 pHotStart(sGen) hot startup cost 

 pGenFuelCost(sGen) generator fuel cost based on EIA data 

 pMWbid(sGen,sStep) generator offer curve output level 

 pPricebid(sGen,sStep) generator offer curve price level 

 pWinterCapability(sGen) generator Winter Rating in MW 

 pSummerCapability(sGen) generator Summer Rating in MW 

 pEcoMin(sGen) generator Economic Minimum 

 pEcoMax(sGen) generator Economic Maximum 

 pGenMax(sGen) generator maximum 

 pGenMin(sGen) generator minimum 

 pGenNameplateCap(sGen) Nameplate capacity 

Federal Energy Regulatory Commission   |   July 2, 2012   |    46
 pNoLoadCost(sGen) no-load cost 

 pMinRunTime(sGen) minimum run time 

 pMinDnTime(sGen) minimum down time 

 pRampUp(sGen) ramp rate up 

 pRampDn(sGen) ramp rate down 

 pWindInjection(sWind,sHour) Wind injection 

 pTieScheduleMW(sTie,sHour) Tie Schedules Hourly 

 pSysReserves(sHour) System Wide reserves requirement 

 pWinterReserves(sHour) Winter problem Scheduling Reserves 

 pSummerReserves(sHour) Summer Problem Reserves 

 pReserves(sHour) Reserves 

 pLoopFlow(sLoopFlow) Loop flow injection or withdrawal 

 pInterfaceLimit interface base thermal limit 

 pPriceDemMW(sPriceDem,sHour) demand bid 

 pPriceDemPrice(sPriceDem,sHour) demand bid price 

 pFixedDemand(sBus,sHour) fixed demand 

 pDRQty(sDRBid) demand response bid in mw 

 pDRPrice(sDRBid) demand response bid price 

 pForecastDemand(sBus,sHour) forecast demand 

 pIncBidMW(sIncBid,sHour) Inc bid qty 

 pIncBidPrice(sIncBid,sHour) Inc bid price 

 pDecBidMW(sDecBid,sHour) Dec bid qty 

 pDecBidPrice(sDecBid,sHour) Dec bid price 

 pInterfaceSF(sBus,sInterfaces) matrix of shift factors for interfaces 

 monitorind indicator to reduce monitored lines 

 pGenStatus(sGen) initial commit status prior to hour 1; 

alias(h,sHour); 

alias(sa,sStep); 

alias(sb,sStep); 

$gdxin "%cgdxpath%\%ceiifile%" 

$load sTrans sWind sDRBid sDecBid sIncBid sPriceDem sLoopFlow sTie 

$load sHour 

$load sGen 

$load sZone 

$load sBus sBusZone 

$load sFBus sTBus sWindBus sDRBidBus sDecBidBus sIncBidBus 

Federal Energy Regulatory Commission   |   July 2, 2012   |    47
$load sPriceDemBus sTieBus sLoopFlowBus pForecastDemand pBuskV 

$load ptdfmat 

$load sInterfaces pInterfaceLimit 

$load pInterfaceSF 

$load sStep sPrimeMover 

$load sBranch sXFMR 

$load pBranchR pBranchX 

$load pThermalRateA pThermalRateB 

$load pTranskV 

$load pColdStart pHotStart 

$load pWindInjection 

$load pTieScheduleMW 

$load pIncBidMW pIncBidPrice 

$load pLoopFlow pPriceDemMW pDRQty 

$load pDRPrice 

$load pPriceDemPrice 

$load pDecBidMW pDecBidPrice 

$load pReserves 

$load pFixedDemand 

$load sSource sGenSource 

$load sGenBus sGenPrimeMover 

$load pMWbid 

$Load pPricebid pGenMax pNoLoadCost pMinRunTime pMinDnTime pGenStatus 

pRampUp pRampDn 

$load pEcoMin monitorind 

*for units with longer than 24 hour run time, truncate to 24 hours which is the 

*horizon of this problem 

pMinRunTime(sGen)$(pMinRunTime(sGen) gt 24)=24; 

pMinDnTime(sGen)$(pMinDnTime(sGen) gt 24)=24; 

*select which branches to monitor 

sActiveBus(sBus)=yes; 

sActiveTrans(sTrans)=yes; 

sMonitorTrans(sActiveTrans)=yes; 

sMonitorTrans(sActiveTrans)$(pTranskV(sActiveTrans) lt kVcutoff or 

pThermalRateA(sActiveTrans) ge 9999 or 

pThermalRateA(sActiveTrans) eq 0)=no; 

*apply the shift factor cutoff, used in the constrained model if shift 

*factors have been calculated 

ptdfmat(sBus,sTrans)$(abs(ptdfmat(sBus,sTrans)) lt SFcutoff) = 0; 

ptdfmat(sBus,sTrans)$(not(sMonitorTrans(sTrans)))=0; 

Federal Energy Regulatory Commission   |   July 2, 2012   |    48
positive variables 

 vQGen Qty of cleared supply mkt based gen 

 vQGenRes Qty reserves from generator 

 vQGenTot Total qty real power from generator 

 vgen_rampplus Ramp Up 

 vgen_rampminus Ramp Down 

 vQDem Qty of cleared demand bid MW 

 vQDR Qty of cleared demand response MW 

 vQInc Qty of cleared Inc bid MW 

 vQDec Qty of cleared Dec bid MW 

 vNetInj Net injection at bus 

 vNetWith Net withdrawal at bus 

 vflowviolp transmission element flow relaxation + 

 vflowvioln transmission element flow relaxation - 

 vIntViolP Interface relaxation + 

 vIntViolN Interface relaxation - 

 vgendummy system wide shortage 

 vloaddummy system wide surplus 

; 

free variables 

 vMarketSurplus Objective variable for market problem 

 vPhaseAngle Phase angle at bus 

 vFlow Flow on Transmission element 

; 

binary variables 

 vUCGen binary unit commitment for generator 

 vSDGen shutdown for generaator 

 vSUGen startup for generator 

; 

equations 

*********DA market objective Function************************* 

 eObjectiveFunctionMS objective function market surplus 

*********Global power balance hourly************************** 

 eSysPowerBalance system wide power balance 

Federal Energy Regulatory Commission   |   July 2, 2012   |    49
*********Dispatch Constraints for generators****************** 

 eGenMaxStepUCMkt Dispatch for offer curve step 

 eGenDef generator output is the sum of output by step 

 erampplusmax constrain ramp rate up 

 erampminusmax constrain ramp rate down 

 eGenMaxUC generator upper limit 

 eGenMinUC generator min run level 

********Commitment Constraints for generators***************** 

 eSUSD 

 eSUSD2 

 eMinUpTime 

 eMinDnTime 

********DR, price responsive demand and virtual bids********** 

 eDRmax DR maximum reduction 

 eIncmax Inc bid maximum 

 eDecmax Dec bid maximum 

 eDemmax demand bid maximum 

********Transmission Constraints***************************** 

 eNetInj net injection at bus 

 eThermalConstraint1 upper limit on transmission element 

 eThermalConstraint2 lower limit on transmission element 

 eInterfaceLim1 interface constraints 

 eInterfaceLim2 interface constraints 

 eFlowDef definition of monitored element flow 

*********Operating reserves constraints*********************** 

 eSysRes system reserves 

 eSpinning spinning reserves 50% of reserves 

; 

*the model treats the wind output as non-dispatchable, fixed parameter 

*in each hour, thus the variable for wind output is not used. 

vQGenTot.fx(sGen,sHour)$(sGenPrimeMover(sGen,'WT'))=0; 

*for summer problem 

pSysReserves(sHour)=pReserves(sHour); 

*Day Ahead Market Objective Function, max market surplus 

Federal Energy Regulatory Commission   |   July 2, 2012   |    50
eObjectiveFunctionMS.. 

vMarketSurplus =e= 

sum((sPriceDem,sHour),vQDem(sPriceDem,sHour)*pPriceDemPrice(sPriceDem,sHour)

) 

+sum((sDecBid,sHour),vQDec(sDecBid,sHour)*pDecBidPrice(sDecBid,sHour)) 

-sum((sGen,sHour,sStep),vQGen(sGen,sHour,sStep)*pPricebid(sGen,sStep)) 

-sum((sDRBid,sHour),vQDR(sDRBid,sHour)*pDRPrice(sDRBid)) 

-sum((sIncBid,sHour),vQInc(sIncBid,sHour)*pIncBidPrice(sIncBid,sHour)) 

-sum((sActiveTrans,sHour),ThermalLimViol*vflowviolp(sActiveTrans,sHour) 

+ThermalLimViol*vflowvioln(sActiveTrans,sHour)) 

-sum((sActiveBus,sHour),GlobalViol*vgendummy(sHour) 

+GlobalViol*vloaddummy(sHour)) 

-sum((sInterfaces,sHour),InterfaceLimViol*(vIntViolP(sInterfaces,sHour) 

+vIntViolN(sInterfaces,sHour))) 

-sum((sGen,sHour),pColdStart(sGen)*vSUGen(sGen,sHour)) 

-sum((sGen,sHour),pNoLoadCost(sGen)*vUCGen(sGen,sHour)); 

*System Wide Power Balance Constraint 

eSysPowerBalance(sHour).. 

sum(sActiveBus,vNetInj(sActiveBus,sHour)) 

=e=sum(sActiveBus,vNetWith(sActiveBus,sHour)); 

*Net Injection or Withdrawal at Bus 

eNetInj(sActiveBus,sHour).. 

vNetInj(sActiveBus,sHour)-vNetWith(sActiveBus,sHour)=e= 

sum(sGen$(sGenBus(sGen,sActiveBus)),vQGenTot(sGen,sHour)) 

+sum(sDRBid$(sDRBidBus(sDRBid,sActiveBus)),vQDR(sDRBid,sHour)) 

+sum(sIncBid$(sIncBidBus(sIncBid,sActiveBus)),vQInc(sIncBid,sHour)) 

-sum(sDecBid$(sDecBidBus(sDecBid,sActiveBus)),vQDec(sDecBid,sHour)) 

-sum(sPriceDem$(sPriceDemBus(sPriceDem,sActiveBus)),vQDem(sPriceDem,sHour)) 

-pFixedDemand(sActiveBus,sHour) 

+sum(sWind$(sWindBus(sWind,sActiveBus)),pWindInjection(sWind,sHour)) 

+sum(sLoopFlow$(sLoopFlowBus(sLoopFlow,sActiveBus)),pLoopFlow(sLoopFlow)) 

+sum(sTie$(sTieBus(sTie,sActiveBus)),pTieScheduleMW(sTie,sHour)); 

*Transmission Flow Definition 

eFlowDef(sMonitorTrans,sHour)$(monitorind(sMonitorTrans) eq 1).. 

vFlow(sMonitorTrans,sHour) =e= 

sum(sActiveBus, 

vNetInj(sActiveBus,sHour)*ptdfmat(sActiveBus,sMonitorTrans) 

-vNetWith(sActiveBus,sHour)*ptdfmat(sActiveBus,sMonitorTrans)); 

Federal Energy Regulatory Commission   |   July 2, 2012   |    51
* Transmission Thermal Constraint 1 

*monitorind is a flag that determines which brahcnes get monitored 

*it is used to indicate which branches were monitored in the base case solution 

*found in the test problem report on eLibrary 

eThermalConstraint1(sMonitorTrans,sHour)$(monitorind(sMonitorTrans) eq 1).. 

vFlow(sMonitorTrans,sHour) 

=l=pThermalRateA(sMonitorTrans)+vflowviolp(sMonitorTrans,sHour); 

* Transmission Thermal Constraint 2 

*monitorind is a flag that determines which brahcnes get monitored 

*it is used to indicate which branches were monitored in the base case solution 

*found in the test problem report on eLibrary 

eThermalConstraint2(sMonitorTrans,sHour)$(monitorind(sMonitorTrans) eq 1).. 

vFlow(sMonitorTrans,sHour) 

=g=-pThermalRateA(sMonitorTrans)-vflowvioln(sMonitorTrans,sHour); 

*Interface limits 

eInterfaceLim1(sInterfaces,sHour)$(pInterfaceLimit(sInterfaces,sHour) ne 0).. 

sum(sActiveBus, 

vNetInj(sActiveBus,sHour)*pInterfaceSF(sActiveBus,sInterfaces) 

-vNetWith(sActiveBus,sHour)*pInterfaceSF(sActiveBus,sInterfaces)) 

=l=pInterfaceLimit(sInterfaces,sHour)+vIntViolP(sInterfaces,sHour); 

*Interface limits - constraint used in the constrained model including shift factors 

eInterfaceLim2(sInterfaces,sHour)$(pInterfaceLimit(sInterfaces,sHour) ne 0).. 

sum(sActiveBus, 

vNetInj(sActiveBus,sHour)*pInterfaceSF(sActiveBus,sInterfaces) 

-vNetWith(sActiveBus,sHour)*pInterfaceSF(sActiveBus,sInterfaces)) 

=g=-pInterfaceLimit(sInterfaces,sHour)-vIntViolN(sInterfaces,sHour); 

*Generator dispatch constraints 

*Limit for each step on the dispatch curve (requires monotonically increasing) 

eGenMaxStepUCMkt(sGen,sHour,sStep).. 

vQGen(sGen,sHour,sStep)=l= 

pMWbid(sGen,sStep); 

*generator output is the sum of output on each step of the curve 

eGenDef(sGen,sHour).. 

vQGenTot(sGen,sHour)=e=sum(sStep,vQGen(sGen,sHour,sStep)); 

*max run level 

eGenMaxUC(sGen,sHour).. 

Federal Energy Regulatory Commission   |   July 2, 2012   |    52
vQGenTot(sGen,sHour)+vQGenRes(sGen,sHour)=l=pGenMax(sGen)*vUCGen(sGen,sH

our); 

*min run level 

eGenMinUC(sGen,sHour).. 

vQGenTot(sGen,sHour)=g=pEcoMin(sGen)*vUCGen(sGen,sHour); 

*demand response maximum 

eDRmax(sDRBid,sHour).. 

vQDR(sDRBid,sHour)=l=abs(pDRQty(sDRBid)); 

*inc bid maximum 

eIncmax(sIncBid,sHour).. 

vQInc(sIncBid,sHour)=l=abs(pIncBidMW(sIncBid,sHour)); 

*dec bid maximum 

eDecmax(sDecBid,sHour).. 

vQDec(sDecBid,sHour)=l=abs(pDecBidMW(sDecBid,sHour)); 

*price responsive demand bid maximum 

eDemmax(sPriceDem,sHour).. 

vQDem(sPriceDem,sHour)=l=abs(pPriceDemMW(sPriceDem,sHour)); 

*Ramp Rate Dn 

erampminusmax(sGen,sHour)$(ord(sHour) ge 2).. 

vQGenTot(sGen,sHour-1) - vQGenTot(sGen,sHour) 

-pRampDn(sGen)*60*vUCGen(sGen,sHour-1) 

-pGenMax(sGen)*vSDGen(sGen,sHour) =l= 0; 

*Ramp Rate Up 

erampplusmax(sGen,sHour)$(ord(sHour) ge 2).. 

vQGenTot(sGen,sHour)-vQGenTot(sGen,sHour-1) 

- pRampUp(sGen)*60*vUCGen(sGen,sHour-1) 

-pGenMax(sGen)*vSUGen(sGen,sHour) =l= 0; 

eSUSD(sGen,sHour).. 

 vSUGen(sGen,sHour) - vSDGen(sGen,sHour) =e= vUCGen(sGen,sHour) 

 - vUCGen(sGen,sHour-1)$(ord(sHour) gt 1) - pGenStatus(sGen)$(ord(sHour) eq 1); 

eSUSD2(sGen,sHour).. 

 vSUGen(sGen,sHour)+vSDGen(sGen,sHour) =l= 1; 

*Min uptime 

Federal Energy Regulatory Commission   |   July 2, 2012   |    53
eMinUpTime(sGen,sHour)$(ord(sHour) ge pMinRunTime(sGen)).. 

 sum(h$(ord(sHour)-pMinRunTime(sGen)+1 le ord(h) and (ord(h) le ord(sHour))), 

vSUGen(sGen,h)) 

 =l= vUCGen(sGen,sHour); 

*min downtime 

eMinDnTime(sGen,sHour)$(ord(sHour) ge pMinDnTime(sGen)).. 

 sum(h$(ord(sHour)-pMinDnTime(sGen)+1 le ord(h) and (ord(h) le ord(sHour))), 

vSDGen(sGen,h)) 

 =l= 1 - vUCGen(sGen,sHour); 

*operating reserves 

*Reserve Constraint, system wide 

eSysRes(sHour).. 

sum((sGen),vQGenRes(sGen,sHour)) 

+sum((sGen)$(sGenPrimeMover(sGen,'CT') or sGenPrimeMover(sGen,'GT')), 

abs(pGenMax(sGen))*(1-vUCGen(sGen,sHour))) 

=g= pSysReserves(sHour); 

*at least 50% of reseves must be spinning 

eSpinning(sHour).. 

sum((sGen),vQGenRes(sGen,sHour)) 

=g= pSysReserves(sHour)*0.5; 

model DAUC 

/eObjectiveFunctionMS 

eSysPowerBalance 

eThermalConstraint1 

eThermalConstraint2 

eFlowDef 

eNetInj 

eInterfaceLim1 

eInterfaceLim2 

eGenMaxStepUCMkt 

eGenDef 

eGenMaxUC 

eGenMinUC 

eDRmax 

eIncmax 

eDecmax 

eDemmax 

erampminusmax 

Federal Energy Regulatory Commission   |   July 2, 2012   |    54
Federal Energy Regulatory Commission   |   July 2, 2012   |    55

erampplusmax 

eSUSD 

eSUSD2 

eMinUpTime 

eMinDnTime 

eSysRes 

eSpinning 

/; 

DAUC.optfile=1; 

DAUC.optcr=5e-2; 

DAUC.reslim=9.2e5; 

option limrow=1; 

option limcol=1; 

execute_unload "%cgdxpath%\%ceiifile%"; 

solve DAUC using mip maximizing vMarketSurplus; 

execute_unload "%cgdxpath%\%outfile%";