/REC-Energy-Management-MPC-RL

Explore efficient energy management in renewable communities through the implementation of Model Predictive Control (MPC) and Reinforcement Learning (RL). This GitHub repository houses the codebase for optimizing renewable energy systems, promoting sustainable practices and smart energy utilization. MSc Mechanical Eng Thesis // Pier Luca Anania

Primary LanguagePythonMIT LicenseMIT

"Reinforcement Learning for Optimal Energy Management in Renewable Energy Communities" (example of title, to be defined)


Potential Applications of RL to REC Energy Management.

Description

This GitHub repository hosts the code and resources for my Master's thesis in Mechanical Engineering, focusing on the application of Reinforcement Learning techniques to the Energy Management of a Renewable Energy Community. The goal of this research is to develop efficient strategies for optimizing the energy production, consumption and distribution within a local community powered by renewable sources. (//ToBeUpdated with more details of Ponza)

Table of Contents

Introduction

example: (add a brief description of the project, what it does, and how it works)

// In recent times, the transition to sustainable and renewable energy sources has become paramount. This project aims to address the challenges of managing energy within a localized community that primarily relies on renewable energy generation, such as solar panels, wind turbines, and more. The application of reinforcement learning techniques to energy management problems offers the potential to optimize energy consumption, storage, and distribution in a dynamic and adaptable manner.

Dependencies

  • Python 3.7+
  • TensorFlow
  • OpenAI Gym
  • Other necessary libraries listed in requirements.txt
  • //ToBeUpdated

Structure

//ToBeUpdated --> Only an idea of the structure of the repository

📂 MScThesis_RL-REC

│   📄 README.md                     # Introduction document
│   📄 LICENSE                       # License information
│   📄 .gitignore                    # Gitignore configuration file
│
└─── 📂 Learning Material         # Papers, books, and other learning material
│   │   📄 papers.md                 # List of relevant scientific papers
│   │   📄 books.md                  # List of consulted books
│   │   📄📄 papers
│
│
└─── 📂 draft                        # Draft code
│
└─── 📂 src                          # Source code
│   │
│   └─── 📂 data                       # Input data
│       │   📄 consumption.csv         # Energy consumption data
│       │   📄 production.csv          # Energy production data
│       │   ...
│   │
│   └─── 📂 models                     # Reinforcement learning models
│       │   📄 dqn_model.py            # DQN model implementation
│       │   📄 actor_critic_model.py   # Actor-Critic model implementation
│       │   ...
│   │
│   └─── 📂 utils                      # Utility and helper functions
│       │   📄 data_preprocessing.py   # Data preprocessing
│       │   📄 energy_calculations.py  # Energy calculations
│       │   ...
│
└─── 📂 docs                           # Documentation
│   │   📄 thesis.pdf                  # Final version of the thesis in PDF
│   │   📄 presentation.pptx           # Presentation for thesis defense
│   │   ...
│
└─── 📂 experiments                    # Experimental results // Application
│   │
│   └─── 📂 experiment_1               # Experiment 1: Configuration parameters X
│   │   │   📄 results.txt             # Quantitative results of experiment 1
│   │   │   📄 analysis.md             # Qualitative analysis of results
│   │
│   └─── 📂 experiment_2               # Experiment 2: Configuration parameters Y
│       │   ...
│
│
└─── 📂 references                     # Documents and references
│   │   📄 papers.md                   # List of relevant scientific papers
│   │   📄 books.md                    # List of consulted books
│   │   ...
│
└─── 📂 presentation                   # Presentation materials
│   │   📄 slide1.pptx                 # Slides
│   │   📄 slide2.pptx                 # Slides
│   │   ...
│
└─── 📂 screenshots                    # Example screenshots or visualizations
│   │   📄 screenshot_1.png            # Example data visualization
│   │   📄 screenshot_2.png            # Example results visualization
│   │   ...

Usage

A/N: Private Repository, not available for public use. This section will be updated with instructions on how to use the code once the thesis is completed.

  1. Clone the repository:
git clone https://github.com/pierlucaanania/MScThesis_RL-REC.git
cd MScThesis_RL-REC
  1. Set up the environment: #ToBeUpdated
python3 -m venv venv
source venv/bin/activate
  1. Install the dependencies
pip install -r requirements.txt
  1. Run the code
#add running script if exists

Results

example:

// The results of applying reinforcement learning techniques to the renewable energy community energy management problem will be documented in the 'results' directory. This section will include data visualizations, analysis, and comparisons of different algorithms.

Contributions

A/N: Private Repository, not available for public use. This section will be updated with instructions on how to use the code once the thesis is completed.

Contributions to this project are welcome! If you have suggestions, bug fixes, or improvements, please feel free to open an issue or submit a pull request. Let's collaborate to advance the understanding of efficient energy management using reinforcement learning.

License and Contact

This project is under MIT License

Author: Pier Luca Anania

Contact:

  1. anania.1653220@studenti.uniroma1.it
  2. p.l.anania@gmail.com

University: Sapienza University of Rome

Department: DIMA Mechanical and Aerospace Engineering