Skip to content

Algorithm for Fast Security-Constrained Optimal Power Flow through Low-Impact and Redundancy Screening

License

Notifications You must be signed in to change notification settings

rockstaedt/RedundancyRemoval

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

POMATO SOUP RedundancyRemoval for Fast Security Constraint Optimal Power Flow

RedundancyRemoval

codecov

Overview

Determining contingency aware dispatch decisions by solving a security-constrained optimal power flow (SCOPF)is challenging for real-world power systems, as the high problem dimensionality often leads to impractical computational requirements. This problem becomes more severe when the SCOPF has to be solved not only for a single instance, but for multiple periods, e.g. in the context of electricity market analyses. The RedundancyRemoval algorithm identifies the minimal set of constraints that exactly define the space of feasible nodal injections for a given network and contingency scenarios. Please see the corresponding publication for further information.

Installation

The RedundancyRemoval algorithm can be cloned and added to you julia projects or just used from the repository. The algorithm requires Julia version >= 1.3 and works with the open Clp solver. However, especially with larger cases and parallel execution, Gurobi provides faster and more robust results.

This package is meant to be used in conjunction with the python POMATO model, which embeds its features and installs it automatically. For stand alone usage see the documentation page or the example below:

Example

The algorithm relies on the (N-1) PTDF, the corresponding line capacities and optionally upper/lower bounds on nodal injections as inputs. The example folder contains these files compiled for the IEEE 118 bus network and the test folder uses a small example to illustrate its functionality.

The algorithm can be run for the exemplary data with the following code:

  using RedundancyRemoval
  wdir = <path to /examples>
  file_suffix = "ieee118"
  run_redundancy_removal(wdir, file_suffix)

The main function run_redundancy_removal can also directly take the input PTDF matrix A, line capacity vector b and the vector x_bounds as input, as shown in the test/runtests.jl.

Release Status

This algorithm finds use in the Power Market Tool (POMATO) and is developed for this purpose. This repository exists to make the algorithm also available on its own, however the development focus lies on its integration with POMATO.

Related Publications

About

Algorithm for Fast Security-Constrained Optimal Power Flow through Low-Impact and Redundancy Screening

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 100.0%