Skip to content

dmdmx/APPR-Grid-Optimizer

 
 

Repository files navigation

What is APPR?

APPR (Adaptive Power & Policy Routing) is a reinforcement learning-based framework designed to dynamically optimize energy flow across grid-constrained environments.

APPR-Grid-Optimizer

Problem Definition

Solar curtailment occurs when energy production exceeds transmission or storage capacity.

This project models the grid as an environment where an agent:

  • Observes: solar generation, demand, battery state, transmission limits
  • Acts: charge/discharge batteries, allocate transmission capacity
  • Objective: minimize curtailment while maintaining grid stability

Model Details

  • Algorithm: Deep Q-Network (DQN)
  • State space: [solar_output, demand, battery_level, transmission_capacity]
  • Action space: discrete (charge, discharge, idle, reroute)
  • Reward:
    • Negative for curtailment
    • Penalty for inefficient battery usage
    • Bonus for balanced grid operation

License Repo size Top language Python Jupyter Notebook

Motor de optimización basado en Reinforcement Learning (DQN) para la gestión dinámica de la capacidad de transmisión eléctrica. Reduce el desperdicio de energía solar (curtailment) al gestion[...]

Resumen corto / Short summary

  • Español: Motor de optimización (DQN) para reducir el curtailment solar mediante la gestión proactiva de baterías y la capacidad de transmisión.
  • English: Optimization engine (DQN) to reduce solar curtailment by proactively managing battery storage and transmission capacity.

Características / Features

  • Implementación de agentes DQN para decisiones de carga/descarga de baterías.
  • Simulaciones y notebooks para entrenamiento y evaluación.
  • Scripts y utilidades para preprocesado de datos y visualización de resultados.

Quick start

  1. Clona el repositorio: git clone https://github.com/sampolmx/APPR-Grid-Optimizer.git
  2. Crea un entorno virtual (recomendado) e instala dependencias: python -m venv .venv source .venv/bin/activate # o .venv\Scripts\activate en Windows pip install -r requirements.txt
  3. Abre los notebooks en el directorio notebooks/ con Jupyter: jupyter lab

Installation

  • Recomendado: Python 3.8+.
  • Instala las dependencias: pip install -r requirements.txt

Usage

  • Notebooks: revisa el directorio notebooks/ para los flujos de trabajo principales (entrenamiento, evaluación, análisis de resultados).
  • Scripts: Si el proyecto contiene un paquete src/ o app/, ejecutar los scripts desde el entorno virtual.
  • Reproducibilidad: fija seeds en los notebooks y revisa experiments/ si existe para reproducir corridas.

Repository structure (suggested)

  • notebooks/ # Jupyter notebooks (entrenamiento, evaluación, análisis)
  • src/ or app/ # Código fuente de los agentes y entorno
  • data/ # Datos (o instrucciones para obtenerlos)
  • experiments/ # Resultados, checkpoints, logs
  • requirements.txt # Dependencias
  • LICENSE
  • README.md

Notebooks index (example)

  • notebooks/01_data_preparation.ipynb
  • notebooks/02_environment_and_agent.ipynb
  • notebooks/03_training.ipynb
  • notebooks/04_evaluation.ipynb

Model card / Reproducibility

  • Describe el modelo (DQN): arquitectura, observaciones, acciones, recompensa.
  • Guarda hiperparámetros y seeds en experiments/ para reproducibilidad.

Quick Demo

Run a basic training loop:

python src/train.py --episodes 100

## Results

| Metric              | Before | After |
|--------------------|--------|-------|
| Curtailment (%)    | 18%    | 7%    |
| Battery efficiency | 65%    | 82%   |
| Grid stability     | Medium | High  |

## Road Map

- [ ] Implement PPO
- [ ] Add real-world grid dataset
- [ ] Multi-agent coordination
- [ ] Deployment simulation

 Contributing
- Si deseas contribuir, abre un issue o PR.
- Incluye descripciones claras y pasos para reproducir bugs.

License
- Este proyecto está licenciado bajo la licencia MIT. Ver el archivo LICENSE para más detalles.

Citación / Citation
Si usas este repositorio en investigación, por favor cita: sampolmx/APPR-Grid-Optimizer (GitHub).

Contacto
- Autor: Sam Polanco Iñigo 

About

Motor de optimización basado en Reinforcement Learning (DQN) para la gestión dinámica de la capacidad de transmisión eléctrica. Reduce el desperdicio de energía solar (*curtailment*) al gestionar proactivamente el almacenamiento de baterías

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 57.4%
  • Python 42.6%