Skip to content

Repository files navigation

MultiPeriodDistOPF

Explore optimal power flow on distribution networks with solar PV, battery storage and multiple substations. This repository provides Julia research implementations and OpenDSS test cases you can use on their own.

Browse the test networks · Try the optimization code · How to cite

Just want a network to experiment with?

Start with the IEEE123 single-phase adaptation, or try med2522 and large10k. There are also multi-source examples and converted EPRI, IEEE 8500/9500 and SMART-DS cases.

These are research adaptations, not untouched official feeder models. The network catalogue explains their sizes, provenance, shared files and how to run them in OpenDSS. You do not need Julia or an optimization license just to use the OpenDSS decks.

Download ZIP, or clone:

git clone --depth 1 https://github.com/Realife-Brahmin/MultiPeriodDistOPF.git
cd MultiPeriodDistOPF

Try the optimization code

Browse implementations by problem:

  • MPOPF — multi-period scheduling

    • SPAR-DDP — sparse parallel Differential Dynamic Programming for multi-period OPF, exploiting radial-network and temporal structure.
    • tADMM — temporal ADMM decomposition, with a monolithic branch-flow baseline and reproduction instructions.
  • MSOPF — multi-source OPF with explicit source voltage angles and multi-period battery scheduling.

For SPAR-DDP, use Julia 1.12.4+ within the 1.12 series. From the repository root, instantiate its environment, including OpenDSS (Bash/Git Bash):

julia --project=problems/mpopf/spar_ddp -e 'using Pkg; Pkg.instantiate()'

Then follow the small-instance walkthrough. Each method has its own environment and modeling assumptions; there is no single root main.jl. SPAR-DDP needs no proprietary solver license. The centralized Ipopt reference can use its bundled open-source MUMPS backend. MA57/MA97 (HSL backends for Ipopt) and Gurobi (an alternative centralized optimizer) are optional ways to make the centralized comparison more competitive, not requirements for running DDP or the basic Ipopt reference. See the setup guide for Windows/Bash helpers, optional solver download links, and an AI-assisted setup option.

Where to start

OpenDSS power flows and the small IEEE123 import/export checks are suitable workstation starting points. Larger networks and long-horizon optimization may need substantial RAM, worker/thread configuration and cluster job setup. The latest large-case benchmarks were run on Kamiak; the recorded job scripts are not a promise of out-of-the-box execution on every machine.

Citation

Please cite this repository when using its code, test networks or editable Inkscape figures:

Aryan Ritwajeet Jha and contributors, MultiPeriodDistOPF, https://github.com/Realife-Brahmin/MultiPeriodDistOPF.

Use GitHub's “Cite this repository” option or CITATION.cff. Also cite the original network sources and the method you build upon. SPAR-DDP's SPARDDP fork retains the upstream FilterDDP attribution and citation guidance. This citation request does not add restrictions to the MIT license; applicable third-party notices remain in force.

Explore further

Questions, reproduction reports and suggestions are welcome through GitHub issues. If you try a case, please include its name, commit and the command you ran.

Releases

Packages

Used by

Contributors

Languages