Skip to main content

Graphical user interface for simulating electrical networks based on the pandapower library

Project description

Electrical Grid Simulator (EGS)

The Electrical Grid Simulator (abbreviated as EGS) is a graphical user interface application for simulating electrical networks based on the pandapower library. The main objective is to allow the creation of mathematical models for steady-state electrical grids from a user-friendly interface. It adds an extensions system for including new calculation or simulation algorithms. Extensions are implemented as standard Python packages, so they can be distributed through the PyPI repository.

EGS is developed at the National Technological University, Santa Fe Regional Faculty (UTN-FRSF), at the Center for Research and Development in Electrical Engineering and Energy Systems (CIESE), Argentina.

Warning
This application is in an early stage of development. So you can expect incomplete sections and some (or many) bugs. New changes may cause incompatibilities with older versions (old files that no longer work with newer versions of the program).

Goals

  • Providing a minimalistic, modern and good-looking interface.
  • Multiplatform: GNU/Linux, MS Windows and Apple MacOS (not tested on MacOS).
  • Providing an extensions system to expand its capabilities.

How it is built

EGS is built in Python and entirely from open source and free software. The main core components are:

  • The pandapower modeling and calculation library for electrical power systems.
  • The Qt toolkit with PySide6 bindings for the UI.
  • A Qt6 port (fork) of the NodeGraphQt library for building the graph (schematic network graphic).
  • The PyQtDarkTheme package for applying modern themes (light and dark themes).
  • The QtAwesome package for modern flat monochromatic icons.
  • The matplotlib package for plotting calculation results.
  • Other scientific Python packages, mainly NumPy and pandas.

EGS is implemented as a Python package uploaded to the PyPI repository. pandapower and other packages listed above are set as dependencies.

[!NOTE]
Starting with version 0.0.8.0, the EGS package includes a fork of NodeGraphQt ported to Qt6 (using the PySide6 library). This implementation is renamed to NodeGraphQt6 in order to avoid conflicts. These changes allow the application to run on recent versions of Python.

Simulations and calculations

With EGS you can build and set up the model of an electrical grid in a graphical way. The application also allows you to perform AC balanced power flow calculations (other calculations supported by pandapower may be added in the future). For other types of simulations and calculations, you can proceed according to two alternatives:

  1. Export the Data model and the last power flow results to a JSON format file ready to be imported from a Python script through pandapower. Then, any calculation or processing can be done from the script. The export is done from the graphical interface, while the subsequent import is done as indicated in the pandapower documentation, using the pandapower.from_json() function.

  2. Incorporate the required calculation functionality from an extension developed in Python. This way, the calculation is executed from within EGS. Extensions are implemented as regular Python packages. An Optimal Power Flow (OPF) extension is available in the PyPI repository (package name: electricalsim-opf-quadratic).

Models generated by EGS can be saved in a .egs file. You can then reopen the file whenever you need it and retrieve even the results of the last power flow run.

Installation

EGS is installed using pip, the official Python package manager.

On GNU/Linux and MacOS execute the following order in a terminal:

pip install electricalsim

On MS Windows you may prefer:

python -m pip install electricalsim

Upgrading EGS

In order to upgrade EGS via pip, execute the following in a terminal:

pip install electricalsim -U

On MS Windows you may prefer:

python -m pip install electricalsim -U

Running EGS

Once installed, you can run it with the command:

egs

If you prefer to run the program in a more practical way, just execute this command only once:

egs-create-shortcut

This will add a shortcut launcher to your desktop and to your application menu. Note that this launcher will not work if you are installing the application into a Python virtual environment.

Uninstalling

If you want to remove the application, execute:

pip uninstall electricalsim

On MS Windows:

python -m pip uninstall electricalsim

Note that shortcuts added with the egs-create-shortcut command are not removed. So you must delete them manually.

Installing extensions

Extensions available in the PyPI repository can be installed using pip. For example, the Optimal Power Flow extension is installed with:

pip install electricalsim-opf-quadratic

On MS Windows:

python -m pip install electricalsim-opf-quadratic

License

This project uses the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

electricalsim-0.0.8.10.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

electricalsim-0.0.8.10-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file electricalsim-0.0.8.10.tar.gz.

File metadata

  • Download URL: electricalsim-0.0.8.10.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for electricalsim-0.0.8.10.tar.gz
Algorithm Hash digest
SHA256 bbb29f54265b01890b74083f3452f0ac468b7cd8e6288d56e17b771306b5a53e
MD5 d394b2fdabc4f1a302b39d735d615ac3
BLAKE2b-256 d747910614ce83ef41bd8c80f0c4c4041b27747c5fa2b27b3edd5e773ceccaa8

See more details on using hashes here.

File details

Details for the file electricalsim-0.0.8.10-py3-none-any.whl.

File metadata

File hashes

Hashes for electricalsim-0.0.8.10-py3-none-any.whl
Algorithm Hash digest
SHA256 9d8aa96ab430de60de403ececbd15f050a2140d7a10404bbf6c2bf7f9ccda61e
MD5 ddb28cda786d3c2e945b0e2b557aa0cc
BLAKE2b-256 0ba0ce40b1d8dd438ea1f29874226601967ec3b93a094a4c72765c3a4d5213d8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page