JuliaGrid is an easy-to-use power system simulation tool for researchers and educators provided as a Julia package.
Author mcosovic
13 Stars
Updated Last
10 Months Ago
Started In
April 2020


Documentation Build

JuliaGrid is an open-source, easy-to-use simulation tool/solver for researchers and educators provided as a Julia package, with source code released under MIT License. JuliaGrid is inspired by the Matpower, an open-source steady-state power system solver, and allows a variety of display and manipulation options.

We have tested and verified simulation tool using different scenarios to the best of our ability. As a user of this simulation tool, you can help us to improve future versions, we highly appreciate your feedback about any errors, inaccuracies, and bugs. For more information, please visit documentation site.

The software package provides the solution of the AC and DC power flow and optimal power flow, non-linear and DC state estimation, as well as the state estimation with PMUs, with standalone measurement generator.


The package requires Julia 1.3 and higher, to install JuliaGrid package, you can run the following:

pkg> add https://github.com/mcosovic/JuliaGrid.jl

Quick Start Power Flow

results, system, info = runpf("nr", "case14.h5", "main", "flow"; max = 20, stop = 1.0e-8)
results, = runpf("dc", "case14.h5", "main")

Quick Start Optimal Power Flow

results, system, info = runopf("case118.h5", "dc", "main", "flow", "generation")

Quick Start State Estimation

results, measurements, system, info = runse("case14se.xlsx", "dc", "main", "estimate", "error", "flow")
results, = runse("case14se.xlsx", "nonlinear", "main", "estimate"; start = "warm")
results, = runse("case14se.xlsx", "pmu", "bad"; covariance = 1)
data = runmg("case14.h5"; runflow = 1, legacyset = ["Pij" 10 "Pi" 7], legacyvariance = ["complete" 1e-10])
results, = runse(data, "dc", "estimate")

Quick Start Measurement Generator

measurements, system, info = runmg("case14.xlsx"; pmuset = "optimal")
measurements, = runmg("case14.h5"; legacyset = "complete", pmuvariance = ["complete" 1e-5])


  • Ognjen Kundacina - Schneider Electric DMS NS LLC Novi Sad, Serbia
  • Muhamed Delalic - University of Sarajevo, Bosnia and Herzegovina
  • Lin Zeng - Cornell University, Ithaca, NY, USA
  • Mirsad Cosovic - University of Sarajevo, Bosnia and Herzegovina


Major changes:

  • 2020-09-29 the DC optimal power flow
  • 2020-09-28 the nonlinear state estimation
  • 2020-05-12 the DC state estimation with bad data and observability routines
  • 2020-04-17 the power flow and measurement generator functions