[ANN] JuliaGrid.jl – A Framework for Steady-State Power System Analysis

Thanks for the feedback. Currently, the package is not integrated with any of the mentioned packages. The main difference is that JuliaGrid, in addition to power flow and optimal power flow, also includes state estimation algorithms. The framework supports observability analysis, weighted least-squares and least-absolute value estimators, bad data detection, and various algorithms related to phasor measurements or PMUs. To the best of my knowledge, this is the first open-source framework that brings all of these routines together.

The framework also provides a set of functions that leverage the results from power flow and optimal power flow to generate measurements used as input for state estimation.

Another important feature is that JuliaGrid allows users to easily create and modify instances of power system models and analysis routines. For example, suppose you load a large-scale power system and create a fast Newton-Raphson instance for AC power flow. If you then want to study how changes in demand affect the system, JuliaGrid enables you to apply those changes directly to the existing fast Newton-Raphson instance. In this specific case, it can reuse factorized matrices to quickly compute the new solution.

In other words, when you change the topology or parameters of the power system, there’s no need to start from scratch, JuliaGrid is designed to efficiently update and reuse existing computational structures.

Finally, by implementing computationally efficient algorithms, JuliaGrid can solve large-scale systems across all routines with competitive execution times compared to other open-source tools. For instance, the figure shows the time to solve AC power flow, where Matpower is used as the baseline. The other bars represent JuliaGrid performance across different routines. As shown, each routine has been optimized for speed, even on large systems.

Regarding your question about DataDeps.jl, I’m not sure what you meant, as the link to the example doesn’t seem to be working.