Instances

UnitCommitment.jl provides a large collection of benchmark instances collected from the literature and converted to a common data format. In some cases, as indicated below, the original instances have been extended, with realistic parameters, using data-driven methods. If you use these instances in your research, we request that you cite UnitCommitment.jl, as well as the original sources, as listed below. Benchmark instances can be loaded with UnitCommitment.read_benchmark(name), as explained in the usage section. Instance files can also be directly downloaded from our website.

Warning

The instances included in UC.jl are still under development and may change in the future. If you use these instances in your research, for reproducibility, you should specify what version of UC.jl they came from.

MATPOWER

MATPOWER is an open-source package for solving power flow problems in MATLAB and Octave. It contains a number of power flow test cases, which have been widely used in the power systems literature.

Because most MATPOWER test cases were originally designed for power flow studies, they lack a number of important unit commitment parameters, such as time-varying loads, production cost curves, ramp limits, reserves and initial conditions. The test cases included in UnitCommitment.jl are extended versions of the original MATPOWER test cases, modified as following:

  • Production cost curves were generated using a data-driven approach, based on publicly available data. More specifically, machine learning models were trained to predict typical production cost curves, for each day of the year, based on a generator's maximum and minimum power output.

  • Load profiles were generated using a similar data-driven approach.

  • Ramp-up, ramp-down, startup and shutdown rates were set to a fixed proportion of the generator's maximum output.

  • Minimum reserves were set to a fixed proportion of the total demand.

  • Contingencies were set to include all N-1 transmission line contingencies that do not generate islands or isolated buses. More specifically, there is one contingency for each transmission line, as long as that transmission line is not a bridge in the network graph.

For each MATPOWER test case, UC.jl provides 365 variations (2017-01-01 to 2017-12-31) corresponding different days of the year.

MATPOWER/UW-PSTCA

A variety of smaller IEEE test cases, compiled by University of Washington, corresponding mostly to small portions of the American Electric Power System in the 1960s.

NameBusesGeneratorsLinesContingenciesReferences
matpower/case14/2017-01-011452019[MTPWR, PSTCA]
matpower/case30/2017-01-013064138[MTPWR, PSTCA]
matpower/case57/2017-01-015778079[MTPWR, PSTCA]
matpower/case118/2017-01-0111854186177[MTPWR, PSTCA]
matpower/case300/2017-01-0130069411320[MTPWR, PSTCA]

MATPOWER/Polish

Test cases based on the Polish 400, 220 and 110 kV networks, originally provided by Roman Korab (Politechnika Śląska) and corrected by the MATPOWER team.

NameBusesGeneratorsLinesContingenciesReferences
matpower/case2383wp/2017-01-01238332328962240[MTPWR]
matpower/case2736sp/2017-01-01273628935043159[MTPWR]
matpower/case2737sop/2017-01-01273726735063161[MTPWR]
matpower/case2746wop/2017-01-01274644335143155[MTPWR]
matpower/case2746wp/2017-01-01274645735143156[MTPWR]
matpower/case3012wp/2017-01-01301249635722854[MTPWR]
matpower/case3120sp/2017-01-01312048336932950[MTPWR]
matpower/case3375wp/2017-01-01337459041613245[MTPWR]

MATPOWER/PEGASE

Test cases from the Pan European Grid Advanced Simulation and State Estimation (PEGASE) project, describing part of the European high voltage transmission network.

NameBusesGeneratorsLinesContingenciesReferences
matpower/case89pegase/2017-01-018912210192[JoFlMa16, FlPaCa13, MTPWR]
matpower/case1354pegase/2017-01-01135426019911288[JoFlMa16, FlPaCa13, MTPWR]
matpower/case2869pegase/2017-01-01286951045823579[JoFlMa16, FlPaCa13, MTPWR]
matpower/case9241pegase/2017-01-01924114451604913932[JoFlMa16, FlPaCa13, MTPWR]
matpower/case13659pegase/2017-01-011365940922046713932[JoFlMa16, FlPaCa13, MTPWR]

MATPOWER/RTE

Test cases from the R&D Division at Reseau de Transport d'Electricite representing the size and complexity of the French very high voltage transmission network.

NameBusesGeneratorsLinesContingenciesReferences
matpower/case1888rte/2017-01-01188829625311484[MTPWR, JoFlMa16]
matpower/case1951rte/2017-01-01195139025961497[MTPWR, JoFlMa16]
matpower/case2848rte/2017-01-01284854437762242[MTPWR, JoFlMa16]
matpower/case2868rte/2017-01-01286859638082260[MTPWR, JoFlMa16]
matpower/case6468rte/2017-01-016468126290006094[MTPWR, JoFlMa16]
matpower/case6470rte/2017-01-016470130690056085[MTPWR, JoFlMa16]
matpower/case6495rte/2017-01-016495135290196060[MTPWR, JoFlMa16]
matpower/case6515rte/2017-01-016515136890376063[MTPWR, JoFlMa16]

PGLIB-UC Instances

PGLIB-UC is a benchmark library curated and maintained by the IEEE PES Task Force on Benchmarks for Validation of Emerging Power System Algorithms. These test cases have been used in [KnOsWa20].

PGLIB-UC/California

Test cases based on publicly available data from the California ISO. For more details, see PGLIB-UC case file overview.

NameBusesGeneratorsLinesContingenciesReferences
pglib-uc/ca/2014-09-01_reserves_0161000[KnOsWa20]
pglib-uc/ca/2014-09-01_reserves_1161000[KnOsWa20]
pglib-uc/ca/2014-09-01_reserves_3161000[KnOsWa20]
pglib-uc/ca/2014-09-01_reserves_5161000[KnOsWa20]
pglib-uc/ca/2014-12-01_reserves_0161000[KnOsWa20]
pglib-uc/ca/2014-12-01_reserves_1161000[KnOsWa20]
pglib-uc/ca/2014-12-01_reserves_3161000[KnOsWa20]
pglib-uc/ca/2014-12-01_reserves_5161000[KnOsWa20]
pglib-uc/ca/2015-03-01_reserves_0161000[KnOsWa20]
pglib-uc/ca/2015-03-01_reserves_1161000[KnOsWa20]
pglib-uc/ca/2015-03-01_reserves_3161000[KnOsWa20]
pglib-uc/ca/2015-03-01_reserves_5161000[KnOsWa20]
pglib-uc/ca/2015-06-01_reserves_0161000[KnOsWa20]
pglib-uc/ca/2015-06-01_reserves_1161000[KnOsWa20]
pglib-uc/ca/2015-06-01_reserves_3161000[KnOsWa20]
pglib-uc/ca/2015-06-01_reserves_5161000[KnOsWa20]
pglib-uc/ca/Scenario400_reserves_0161100[KnOsWa20]
pglib-uc/ca/Scenario400_reserves_1161100[KnOsWa20]
pglib-uc/ca/Scenario400_reserves_3161100[KnOsWa20]
pglib-uc/ca/Scenario400_reserves_5161100[KnOsWa20]

PGLIB-UC/FERC

Test cases based on a publicly available unit commitment test case produced by the Federal Energy Regulatory Commission. For more details, see PGLIB-UC case file overview.

NameBusesGeneratorsLinesContingenciesReferences
pglib-uc/ferc/2015-01-01_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-01-01_lw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-02-01_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-02-01_lw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-03-01_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-03-01_lw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-04-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-04-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-05-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-05-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-06-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-06-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-07-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-07-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-08-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-08-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-09-01_hw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-09-01_lw197900[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-10-01_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-10-01_lw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-11-02_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-11-02_lw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-12-01_hw193500[KnOsWa20, KrHiOn12]
pglib-uc/ferc/2015-12-01_lw193500[KnOsWa20, KrHiOn12]

PGLIB-UC/RTS-GMLC

RTS-GMLC is an updated version of the RTS-96 test system produced by the United States Department of Energy's Grid Modernization Laboratory Consortium. The PGLIB-UC/RTS-GMLC instances are modified versions of the original RTS-GMLC instances, with modified ramp-rates and without a transmission network. For more details, see PGLIB-UC case file overview.

NameBusesGeneratorsLinesContingenciesReferences
pglib-uc/rts_gmlc/2020-01-27115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-02-09115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-03-05115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-04-03115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-05-05115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-06-09115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-07-06115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-08-12115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-09-20115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-10-27115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-11-25115400[BaBlEh19]
pglib-uc/rts_gmlc/2020-12-23115400[BaBlEh19]

OR-LIB/UC

OR-LIB is a collection of test data sets for a variety of operations research problems, including unit commitment. The UC instances in OR-LIB are synthetic instances generated by a random problem generator developed by the Operations Research Group at University of Pisa. These test cases have been used in [FrGe06] and many other publications.

NameHoursBusesGeneratorsLinesContingenciesReferences
or-lib/10_0_1_w2411000[ORLIB, FrGe06]
or-lib/10_0_2_w2411000[ORLIB, FrGe06]
or-lib/10_0_3_w2411000[ORLIB, FrGe06]
or-lib/10_0_4_w2411000[ORLIB, FrGe06]
or-lib/10_0_5_w2411000[ORLIB, FrGe06]
or-lib/20_0_1_w2412000[ORLIB, FrGe06]
or-lib/20_0_2_w2412000[ORLIB, FrGe06]
or-lib/20_0_3_w2412000[ORLIB, FrGe06]
or-lib/20_0_4_w2412000[ORLIB, FrGe06]
or-lib/20_0_5_w2412000[ORLIB, FrGe06]
or-lib/50_0_1_w2415000[ORLIB, FrGe06]
or-lib/50_0_2_w2415000[ORLIB, FrGe06]
or-lib/50_0_3_w2415000[ORLIB, FrGe06]
or-lib/50_0_4_w2415000[ORLIB, FrGe06]
or-lib/50_0_5_w2415000[ORLIB, FrGe06]
or-lib/75_0_1_w2417500[ORLIB, FrGe06]
or-lib/75_0_2_w2417500[ORLIB, FrGe06]
or-lib/75_0_3_w2417500[ORLIB, FrGe06]
or-lib/75_0_4_w2417500[ORLIB, FrGe06]
or-lib/75_0_5_w2417500[ORLIB, FrGe06]
or-lib/100_0_1_w24110000[ORLIB, FrGe06]
or-lib/100_0_2_w24110000[ORLIB, FrGe06]
or-lib/100_0_3_w24110000[ORLIB, FrGe06]
or-lib/100_0_4_w24110000[ORLIB, FrGe06]
or-lib/100_0_5_w24110000[ORLIB, FrGe06]
or-lib/150_0_1_w24115000[ORLIB, FrGe06]
or-lib/150_0_2_w24115000[ORLIB, FrGe06]
or-lib/150_0_3_w24115000[ORLIB, FrGe06]
or-lib/150_0_4_w24115000[ORLIB, FrGe06]
or-lib/150_0_5_w24115000[ORLIB, FrGe06]
or-lib/200_0_10_w24120000[ORLIB, FrGe06]
or-lib/200_0_11_w24120000[ORLIB, FrGe06]
or-lib/200_0_12_w24120000[ORLIB, FrGe06]
or-lib/200_0_1_w24120000[ORLIB, FrGe06]
or-lib/200_0_2_w24120000[ORLIB, FrGe06]
or-lib/200_0_3_w24120000[ORLIB, FrGe06]
or-lib/200_0_4_w24120000[ORLIB, FrGe06]
or-lib/200_0_5_w24120000[ORLIB, FrGe06]
or-lib/200_0_6_w24120000[ORLIB, FrGe06]
or-lib/200_0_7_w24120000[ORLIB, FrGe06]
or-lib/200_0_8_w24120000[ORLIB, FrGe06]
or-lib/200_0_9_w24120000[ORLIB, FrGe06]

Tejada19

Test cases used in [TeLuSa19]. These instances are similar to OR-LIB/UC, in the sense that they use the same random problem generator, but are much larger.

NameHoursBusesGeneratorsLinesContingenciesReferences
tejada19/UC_24h_214g24121400[TeLuSa19]
tejada19/UC_24h_250g24125000[TeLuSa19]
tejada19/UC_24h_290g24129000[TeLuSa19]
tejada19/UC_24h_480g24148000[TeLuSa19]
tejada19/UC_24h_505g24150500[TeLuSa19]
tejada19/UC_24h_623g24162300[TeLuSa19]
tejada19/UC_24h_647g24164700[TeLuSa19]
tejada19/UC_24h_836g24183600[TeLuSa19]
tejada19/UC_24h_850g24185000[TeLuSa19]
tejada19/UC_24h_918g24191800[TeLuSa19]
tejada19/UC_24h_931g24193100[TeLuSa19]
tejada19/UC_24h_940g24194000[TeLuSa19]
tejada19/UC_24h_957g24195700[TeLuSa19]
tejada19/UC_24h_959g24195900[TeLuSa19]
tejada19/UC_24h_1069g241106900[TeLuSa19]
tejada19/UC_24h_1130g241113000[TeLuSa19]
tejada19/UC_24h_1376g241137600[TeLuSa19]
tejada19/UC_24h_1393g241139300[TeLuSa19]
tejada19/UC_24h_1577g241157700[TeLuSa19]
tejada19/UC_24h_1615g241161500[TeLuSa19]
tejada19/UC_24h_1632g241163200[TeLuSa19]
tejada19/UC_24h_1768g241176800[TeLuSa19]
tejada19/UC_24h_1804g241180400[TeLuSa19]
tejada19/UC_24h_1820g241182000[TeLuSa19]
tejada19/UC_24h_1823g241182300[TeLuSa19]
tejada19/UC_24h_1888g241188800[TeLuSa19]
tejada19/UC_168h_36g16813600[TeLuSa19]
tejada19/UC_168h_38g16813800[TeLuSa19]
tejada19/UC_168h_40g16814000[TeLuSa19]
tejada19/UC_168h_53g16815300[TeLuSa19]
tejada19/UC_168h_58g16815800[TeLuSa19]
tejada19/UC_168h_59g16815900[TeLuSa19]
tejada19/UC_168h_72g16817200[TeLuSa19]
tejada19/UC_168h_84g16818400[TeLuSa19]
tejada19/UC_168h_86g16818600[TeLuSa19]
tejada19/UC_168h_88g16818800[TeLuSa19]
tejada19/UC_168h_93g16819300[TeLuSa19]
tejada19/UC_168h_105g168110500[TeLuSa19]
tejada19/UC_168h_110g168111000[TeLuSa19]
tejada19/UC_168h_125g168112500[TeLuSa19]
tejada19/UC_168h_130g168113000[TeLuSa19]
tejada19/UC_168h_131g168113100[TeLuSa19]
tejada19/UC_168h_140g168114000[TeLuSa19]
tejada19/UC_168h_165g168116500[TeLuSa19]
tejada19/UC_168h_175g168117500[TeLuSa19]
tejada19/UC_168h_179g168117900[TeLuSa19]
tejada19/UC_168h_188g168118800[TeLuSa19]
tejada19/UC_168h_192g168119200[TeLuSa19]
tejada19/UC_168h_199g168119900[TeLuSa19]

References

  • [UCJL] Alinson S. Xavier, Aleksandr M. Kazachkov, Ogün Yurdakul, Feng Qiu. "UnitCommitment.jl: A Julia/JuMP Optimization Package for Security-Constrained Unit Commitment (Version 0.3)". Zenodo (2022). DOI: 10.5281/zenodo.4269874

  • [KnOsWa20] Bernard Knueven, James Ostrowski and Jean-Paul Watson. "On Mixed-Integer Programming Formulations for the Unit Commitment Problem". INFORMS Journal on Computing (2020). DOI: 10.1287/ijoc.2019.0944

  • [KrHiOn12] Eric Krall, Michael Higgins and Richard P. O’Neill. "RTO unit commitment test system." Federal Energy Regulatory Commission. Available at: https://www.ferc.gov/industries-data/electric/power-sales-and-markets/increasing-efficiency-through-improved-software-1 (Accessed: Nov 14, 2020)

  • [BaBlEh19] Clayton Barrows, Aaron Bloom, Ali Ehlen, Jussi Ikaheimo, Jennie Jorgenson, Dheepak Krishnamurthy, Jessica Lau et al. "The IEEE Reliability Test System: A Proposed 2019 Update." IEEE Transactions on Power Systems (2019). DOI: 10.1109/TPWRS.2019.2925557

  • [JoFlMa16] C. Josz, S. Fliscounakis, J. Maeght, and P. Panciatici. "AC Power Flow Data in MATPOWER and QCQP Format: iTesla, RTE Snapshots, and PEGASE". ArXiv (2016).

  • [FlPaCa13] S. Fliscounakis, P. Panciatici, F. Capitanescu, and L. Wehenkel. "Contingency ranking with respect to overloads in very large power systems taking into account uncertainty, preventive and corrective actions", Power Systems, IEEE Trans. on, (28)4:4909-4917, 2013. DOI: 10.1109/TPWRS.2013.2251015

  • [MTPWR] D. Zimmerman, C. E. Murillo-Sandnchez and R. J. Thomas. "Matpower: Steady-state operations, planning, and analysis tools forpower systems research and education", IEEE Transactions on PowerSystems, vol. 26, no. 1, pp. 12 –19, Feb. 2011. DOI: 10.1109/TPWRS.2010.2051168

  • [PSTCA] University of Washington, Dept. of Electrical Engineering. "Power Systems Test Case Archive". Available at: http://www.ee.washington.edu/research/pstca/ (Accessed: Nov 14, 2020)

  • [ORLIB] J.E.Beasley. "OR-Library: distributing test problems by electronic mail", Journal of the Operational Research Society 41(11) (1990). DOI: 10.2307/2582903

  • [FrGe06] A. Frangioni, C. Gentile. "Solving nonlinear single-unit commitment problems with ramping constraints" Operations Research 54(4), p. 767 - 775, 2006. DOI: 10.1287/opre.1060.0309

  • [TeLuSa19] D. A. Tejada-Arango, S. Lumbreras, P. Sanchez-Martin and A. Ramos. "Which Unit-Commitment Formulation is Best? A Systematic Comparison," in IEEE Transactions on Power Systems. DOI: 10.1109/TPWRS.2019.2962024.