Challenge Project

12: Predicting Voltages in Substations

Prediction of Voltages in Substations for Grid Stabilisation

⛶  Fullscreen ↓  Download 📂 Demo

For grid stabilization, operators of different voltage levels have target voltage schedules. These support grid stabilization. It is possible to influence the voltage in a substation with shunt reactors via reactive power compensation. Turning these shunt reactors on or off causes transients, which in turn cause wear and tear on the components of the substation and the shunt reactor. This means a grid operator wants to minimize the number of on/off switches of the shunt reactor while still using it to keep the voltage in the substation as close as possible to the target voltage published by the higher voltage level grid operator. We have time series measurements and target voltages for several of our substations with shunt reactors and aim to train a model that can tell us when to turn the shunt reactors on or off.

Challenge Owner: Axpo Grid AG

  • Nicolas Pelzmann
  • Tobias Schmocker
  • Sandro Renggli


Thanks for choosing Axpo's challenge, Predicting Voltages in Substations, for the Energy Data Hackdays 2023. We're glad you're here!

Getting Started

This README will guide you through the process of setting up your environment and working on the challenge. By the end of this guide, you'll be ready to dive into the provided datasets, create your predictive model, and help us improve grid stabilization.


Before you begin, please ensure you have the following prerequisites:

  1. Access to the VM with Jupyter Hub: We've provided a virtual machine with Jupyter Hub installed. This will serve as your development environment. Just go to our Jupyter Hub and sign in with a username (no special characters or spaces) and password of your choosing - just don't forget it.

You can also develop on your local machine if you prefer. Talk to us about getting the dataset onto your local machine.

Setting Up Your Environment

Follow these steps to set up your environment and start working on the challenge:

  1. Access Jupyter Hub: Open your web browser and navigate to the provided URL for Jupyter Hub. Log in using your credentials.

  2. Clone the Git Repository: Open a terminal and clone this repo console git clone cd edh2023

  3. Accessing Datasets: The training and validation datasets for both substations are located in the /data directory on the Jupyter Hub VM. You can copy them to the data directory with console cp /home/data/ ~/edh2023/ unzip

  4. Installing Dependencies: Create a virtual environment to install dependencies: console python -m venv .venv Activate the virtual environment console source .venv/bin/activate To ensure your environment has the necessary packages, run the following command: console pip install -r requirements.txt Register the virtual environment as ipykernel: console python -m ipykernel install --user --name=edh_venv It will take a few seconds for the new environment to show up as an available. You can open the sample_notebook.ipynb and select the environment as kernel once it is and get going with digging into the details.

    Understanding the Challenge

Before you start coding, it's important to grasp the problem at hand:

  • You are provided with time series of substation measurements, energy production, weather data, and target voltages for two substations with shunt reactors.

  • The goal is to create a model that can predict voltages in the substation such that, based on these predictions, one can decide when to turn the shunt reactors on or off to keep the measured voltage close to the target voltage. You should keep the average number of on-off/off-on switches below 2/day to limit wear and tear on system components. One of the main challenges herein is

Your Task

Your main task is to develop a predictive model that predicts the voltage in each substation and that can effectively recommend when to activate or deactivate shunt reactors in order to stabilize the grid voltages. Use the provided datasets to train and validate your model. They contain weather, electricity production, and grid measurement data. Take a look at the sample_notebook.ipynb to get started with analyzing the data.

Feel free to explore different machine learning algorithms, techniques, and preprocessing methods. Don't hesitate to innovate and experiment!


You can evaluate your model with either the root mean square error for the voltage prediction or utils.eval.alternative_strategy_reward. Both of these are relevant metrics for us.

Need Help?

If you encounter any issues during the challenge or have questions about the provided datasets, feel free to ask one of us for help.

Happy coding!

This content is a preview from an external site.

Edited (version 7)

19.09.2023 08:56 ~ gaston_energy


Event finished

Joined the team

16.09.2023 12:44 ~ nicolas_pelzmann

Cool chart 🤩

16.09.2023 12:34 ~ oleg

Image caption

16.09.2023 12:25 ~ alison_fersch

virtual voltages calc function (@Nicolas Pelzmann)

Joined the team

15.09.2023 09:24 ~ nicolas_dallo

Event started

Repository updated

15.09.2023 08:13 ~ oleg

Edited (version 1)

14.09.2023 08:30 ~ gaston_energy


All attendees, sponsors, partners, volunteers and staff at our hackathon are required to agree with the Hack Code of Conduct. Organisers will enforce this code throughout the event. We expect cooperation from all participants to ensure a safe environment for everybody.

Creative Commons LicenceThe contents of this website, unless otherwise stated, are licensed under a Creative Commons Attribution 4.0 International License.