JuliaGrid.jl

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

JuliaGrid

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.


Installation

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])

Contributors

  • 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

Changelog

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