The Julia interface for Easy SimAuto (ESA) and PowerWorld COM object (SimAuto Server).


EasySimauto.jl is the Julia API for ESA, an easy-to-use power system analysis automation environment atop PowerWorld Simulator


Install EasySimauto.jl with

using Pkg

(Optional) Customize Python Environment

If you have installed ESA in an existing Python environment and do not want to reinstall it from conda, you can configure it in Pycall.

You can manually set the Python path with the following commands in Julia:

ENV["PYTHON"] = "... path of the python executable ..."

Check out the documentation of PyCall.jl for more details.


EasySimauto.jl exposes all Python APIs under esa.py. Use the package with

using EasySimauto

Two classes esa and SAW are exposed once loading the module. Then all the methods in esa.py shall be available in Julia. For example, to load a case file and run power flow analysis, use

using EasySimauto

case_path = raw"C:\Users\myuser\git\ESA\tests\cases\ieee_14\IEEE 14 bus_pws_version_21.pwb"
saw = SAW(case_path)
bus_data = saw.get_power_flow_results("bus")

The example above is taken from Quick Start and translated to Julia.

Visit ESA Documentation for tutorial and API details


We welcome contributions! Please read contributing.md.


EasySimauto.jl is released under Apache License 2.0.


This work was supported by the U.S. Department of Energy (DOE) under award DE-OE0000895 and the Sandia National Laboratories’ directed R&D project #222444.

Special thanks to Dr. Hantao Cui for his advice and help!