APPR (Adaptive Power & Policy Routing) is a reinforcement learning-based framework designed to dynamically optimize energy flow across grid-constrained environments.
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
- 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
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
- Clona el repositorio: git clone https://github.com/sampolmx/APPR-Grid-Optimizer.git
- 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
- 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/oapp/, 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.
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