Skip to content

Algorithms for optimal renewable and hydrogen integration in weak grids, boosting efficiency and stability. Based on the paper 'Optimal allocation of Renewable Energy Systems in a Weak Distribution Network.'

Notifications You must be signed in to change notification settings

mmiller96/RESOptimizationWeakGrid

Repository files navigation

This project presents an algorithmic approach to optimally allocate renewable energy resources such as Photovoltaic (PV) systems, electrolyzers, and fuel cells within the power grid of Puerto Carreño. This repository is structured to support research and development efforts aimed at improving grid stability and efficiency through renewable energy integration. The methodology and results herein are detailed in the paper "Optimal allocation of Renewable Energy Systems in a Weak Distribution Network."

Project Structure

data/: Contains generated scenario data used by the optimization algorithm.
network/: Includes information on the power grid of Puerto Carreño and associated weather data. Essential for creating the network and bus configuration.
results/: Stores optimization results and figures generated from the analysis.

Key Files

create_grid.py: Utilizes data from the network/ folder to create grid and bus configuration files.
probs.py: Generates representative scenarios, saving them in the data/ folder.
main.py: The primary script for running the optimization, relying on multiple supporting files for execution:
    loader.py: Defines prices, limitations, candidate nodes, etc.
    model_class.py: Contains the planning algorithm class.
    utils.py: Provides various utility functions used across the project.
Results_*.py: Scripts for generating figures based on optimization results, mirroring figures from the original paper.

Getting Started

Initial Setup: Ensure you have Python installed and clone this repository to your local machine.

Customization for Your Grid:
    Modify the network and bus configuration files within the network/ folder according to your grid's specific data.
    Adjust parameters in loader.py as necessary to reflect your scenario's prices, limitations, and candidate nodes.

Generating Scenarios:
    Run probs.py to generate new scenarios. These will be stored in the data/ folder.

Running the Optimization:
    Execute main.py to start the optimization process. Ensure loader.py, model_class.py, and utils.py are properly configured and accessible.
    Optimized values will be output to the results/ folder as attr_*.pkl files.

Contributing

Contributions to enhance or expand the project's capabilities are welcome. Please fork the repository and submit a pull request with your proposed changes. Citation

If you utilize this project in your research, please cite our paper:

"Optimal allocation of Renewable Energy Systems in a Weak Distribution Network."

About

Algorithms for optimal renewable and hydrogen integration in weak grids, boosting efficiency and stability. Based on the paper 'Optimal allocation of Renewable Energy Systems in a Weak Distribution Network.'

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages