This repository contains the implementation of the ENErgy STOrage (ErNESTO) Digital Twin.
The framework is thought with a modular structure to run driven and scheduled experiments
of battery energy storage systems.
This project is a joint endeavor of Politecnico di Milano and RSE.
In order to use this codebase you need to work with a Python version >= 3.8. To use ErNESTO, clone this repository and install the required libraries:
git clone https://github.com/Daveonwave/ErNESTO-DT.git && \
cd DT-rse/ && \
python -m pip install -r requirements.txt
Before launching any script, add to the PYTHONPATH the root folder DT-rse/
:
export PYTHONPATH=$(pwd)
To reproduce the experiments, a bash
file must be run in the scripts/
folder. For example:
./scripts/[run_check_up.sh | run_pv.sh | run_aging.sh]
Edit the bash
files to choose different configuration files or models. The possible options can
be retrieved by running python ernesto.py --help
and python ernesto.py [driven | scheduled] --help
for the specific experiment.
Notice that yaml
configuration files, contained in data/config/
folder, have to adhere to a
standard formatting, validated within the script schema.py.
Follow the formatting of the already provided configuration file to generate new ones.
To properly visualize results plots and metrics, to compare the simulated data to the provided ground truth, a friendly notebook has been provided within the notebook
folder, stored at this link.
The idea is to extend the DT to handle a more complex scenario, considering not only a single energy storage system, but a broader Smart Grid. To reach this goal, further steps have to be taken. In particular:
- Parameter adaptation layer (
online_learning
branch) - Integration within a real-world energy storage system, provided by the Italian research center RSE.
Parallely, we are working to employ the DT also in other fields, such as:
- Reinforcement Learning, by creating ErNESTO-gym, a Gymnasium environment to test new RL algorithms
- Multi-Agent RL, by improving ErNESTO-gym in order to handle a distributed MiniGrid environment composed by multiple energy storage systems.