PowerModels.jl

A Julia/JuMP Package for Power Network Optimization
Popularity
388 Stars
Updated Last
2 Months Ago
Started In
August 2016

PowerModels.jl

PowerModels logo

Status: CI codecov Documentation

PowerModels.jl is a Julia/JuMP package for Steady-State Power Network Optimization. It is designed to enable computational evaluation of emerging power network formulations and algorithms in a common platform. The code is engineered to decouple problem specifications (e.g. Power Flow, Optimal Power Flow, ...) from the power network formulations (e.g. AC, DC-approximation, SOC-relaxation, ...). This enables the definition of a wide variety of power network formulations and their comparison on common problem specifications.

Core Problem Specifications

  • Power Flow (pf)
  • Optimal Power Flow (opf)
  • Optimal Transmission Switching (ots)
  • Transmission Network Expansion Planning (tnep)

Core Network Formulations

  • AC (polar and rectangular coordinates)
  • DC Approximation (polar coordinates)
  • LPAC Approximation (polar coordinates)
  • SDP Relaxation (W-space)
  • SOC Relaxation (W-space)
  • QC Relaxation (W+L-space)
  • IV (rectangular coordinates)

Network Data Formats

  • Matpower ".m" files
  • PTI ".raw" files (PSS(R)E v33 specification)

Documentation

The package documentation includes a variety of useful information including a quick-start guide, network model specification, and baseline results.

Additionally, these presentations provide a brief introduction to various aspects of PowerModels,

Development

Community-driven development and enhancement of PowerModels are welcome and encouraged. Please fork this repository and share your contributions to the master with pull requests. See CONTRIBUTING.md for code contribution guidelines.

Acknowledgments

This code has been developed as part of the Advanced Network Science Initiative at Los Alamos National Laboratory. The primary developer is Carleton Coffrin (@ccoffrin) with support from the following contributors,

  • Per Aaslid (@peraaslid) SINTEF ER, Branch flow storage model and linear branch flow formulation
  • Juan Luis Barbería (@jbarberia) UTN-BA, PSS(R)E v33 data export, Jacobian support for basic network data
  • Russell Bent (@rb004f) LANL, Matpower export, TNEP problem specification
  • Jose Daniel Lara (@jd-lara) Berkeley, Julia v1.0 compatibility
  • Jay Dave (@jay-dave) KU Leuven, LPAC for TNEP and OTS problems
  • Hakan Ergun (@hakanergun) KU Leuven, HVDC lines
  • David Fobes (@pseudocubic) LANL, PSS(R)E v33 data support
  • Rory Finnegan (@rofinn) Invenia, Memento Logging
  • Frederik Geth (@frederikgeth) CSIRO, storage modeling advise, Branch Flow and current-voltage formulation
  • Rahmat Heidari (@hei06j) CSIRO, improved PSS(R)E data support
  • Jonas Kersulis (@kersulis) University of Michigan, Sparse SDP formulation
  • Miles Lubin (@mlubin) MIT, Julia/JuMP advise
  • Yeesian Ng (@yeesian) MIT, Documenter.jl setup
  • Kaarthik Sundar (@kaarthiksundar) LANL, OBBT utility
  • Mathieu Tanneau (@mtanneau) Georgia Tech, PTDF matrix computation, performance and memory improvements
  • Byron Tasseff (@tasseff) LANL, multi-infrastructure updates

Citing PowerModels

If you find PowerModels useful in your work, we kindly request that you cite the following publication:

@inproceedings{8442948,
  author = {Carleton Coffrin and Russell Bent and Kaarthik Sundar and Yeesian Ng and Miles Lubin},
  title = {PowerModels.jl: An Open-Source Framework for Exploring Power Flow Formulations},
  booktitle = {2018 Power Systems Computation Conference (PSCC)},
  year = {2018},
  month = {June},
  pages = {1-8},
  doi = {10.23919/PSCC.2018.8442948}
}

Citation of the original works for problem definitions (e.g. OPF) and power flow formulations (e.g. SOC) is also encouraged when publishing works that use PowerModels.

License

This code is provided under a BSD license as part of the Multi-Infrastructure Control and Optimization Toolkit (MICOT) project, C15024.