=======
This repository contains the code for a software project that aims to execute contingencies of electrical power grids using the Dynawo simulator from RTE. The project allows for the execution of large power grid simulations and saving only the necessary information in the form of curves. This enables the creation of smaller simulations with detailed information (all the desired curves) without the overhead of executing the entire large case.
The software achieves this by creating small models using the full simulation that contain the generator from which information is required, and an infinite bus table representing the behavior of the network to which it is connected.
To run this software, you will need to have the following software installed:
- Dynawo simulator from RTE
- Python 3.x
- Pandas
- NumPy
- Jinja2
- Matplotlib
- Scikit-learn
It is created using virtual environments with the aim of isolating the required packages in a clean environment free from dependency issues.
- Clone this repository to your local machine
- Install Dynawo simulator from RTE
- Run the build_and_install.sh script to create the virtual environment and download the necessary dependencies.
- Obtain the electrical power grid model to work with.
- Activate the virtual environment with:
source dr_venv/bin/activate
- Execute one of the desired commands with the data from the original case:
pipeline_validation [-h] jobs_path output_dir dynawo_path
(it is used to make a complete validation of the software and all the case generators, obtaining graphs and metrics)
case_preparation [-h] jobs_path output_dir dynawo_path
(it is used to prepare a case for later replay)
curves_creation [-h] jobs_path output_dir dynawo_path curves_file [replay_generators]
(it is used to obtain the curves of a case already prepared from one, several or all of its generators)
get_value [-h] jobs_path output_dir dynawo_path curves_file replay_generator value_name time_get_value
(it is used to obtain the curves of a case already prepared from one generator and get an specified value at specified time)