|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- reinforcement-learning |
|
|
- multi-agent |
|
|
- time-series |
|
|
- diffusion-model |
|
|
- energy-management |
|
|
- smart-grid |
|
|
--- |
|
|
# SolarSys: Scalable Hierarchical Coordination for Distributed Solar Energy |
|
|
|
|
|
SolarSys is a novel **Hierarchical Multi-Agent Reinforcement Learning (HRL)** system designed to manage energy storage and peer-to-peer (P2P) trading across large communities of solar-equipped residences. This repository contains the full source code for the SolarSys system, including the trained policies, the custom Gym environment, and the hierarchical diffusion model used for data generation. |
|
|
|
|
|
--- |
|
|
|
|
|
|
|
|
## System Architecture |
|
|
|
|
|
The core of SolarSys is a two-level decision hierarchy: |
|
|
|
|
|
1. **Low-Level (Intra-Cluster):** Individual households use a **MAPPO** agent to make instantaneous decisions (charge, discharge, local P2P trade, grid trade) based on local meter readings and price signals. |
|
|
2. **High-Level (Inter-Cluster):** Cluster Managers use a **Mean-Field** policy to coordinate bulk energy transfers between clusters, ensuring the overall system remains balanced against grid constraints. |
|
|
|
|
|
|
|
|
 |
|
|
|
|
|
--- |
|
|
|
|
|
## Data Generation Framework |
|
|
|
|
|
To enable large-scale simulation with realistic temporal dynamics, SolarSys includes a **Hierarchical Diffusion Model** for generating synthetic, long-duration energy profiles that maintain both long-term (seasonal/monthly) and short-term (daily/hourly) characteristics. |
|
|
|
|
|
* **Model:** Hierarchical Diffusion U-Net |
|
|
* **Input:** Location based housing dataset(eg. Ausgrid dataset, newyork dataset) |
|
|
* **Output:** High-resolution time series for Grid Usage and Solar Generation (kWh). |
|
|
 |
|
|
|
|
|
To ensure all necessary libraries are available, install dependencies using the provided `requirements.txt` file: |
|
|
|
|
|
```bash |
|
|
pip install -r requirements.txt |
|
|
--- |
|
|
|
|
|
## Repository Structure |
|
|
|
|
|
The project is organized into core modules and data folders. |
|
|
|
|
|
```tree |
|
|
SolarSys_Hugging_face/ |
|
|
βββ assets/ |
|
|
βββ requirements.txt # Project Dependencies |
|
|
βββ Dataset/ # Energy Data (Raw, Processed, and Synthetic) |
|
|
β βββ Data/ |
|
|
β β βββ Ausgrid_processed_data.zip # Processed data (Australia) |
|
|
β β βββ Ausgrid_raw_data/ |
|
|
β β βββ Pecan_street_processed_data.zip # Processed data (US) |
|
|
β βββ Generated_Data.zip # Example synthetic data (2000 agents) |
|
|
βββ Data_generation_tool_kit/ # Hierarchical Diffusion Model Code |
|
|
β βββ Hier_diffusion_energy/ |
|
|
β β βββ hierarchial_diffusion_model.py # H-Diffusion U-Net Architecture |
|
|
β β βββ global_scaler.gz # Global normalization scaler, please delete and rerun if had problem |
|
|
β βββ dataloader.py # |
|
|
β βββ train.py # Diffusion model training script |
|
|
β βββ generate.py # Script to generate long-term sequences |
|
|
βββ Models/ # Trained RL Policies for trial, please retrain your model for best results |
|
|
β βββ 100agents_10size/ |
|
|
β β βββ models/ |
|
|
β β βββ inter_ep10000.pth # High-Level (Inter-Cluster) policy |
|
|
β β βββ low_clusterX_ep10000.pth # Low-Level (Intra-Cluster) policies |
|
|
β βββ (Additional scaling folders) # e.g., 5agents_5size/, 1000agents_20size/, etc. |
|
|
βββ SolarSys/ # SolarSys Implementation (MAPPO + MeanField) |
|
|
β βββ Environment/ |
|
|
β β βββ cluster_env_wrapper.py # Vectorized environment wrapper |
|
|
β β βββ solar_sys_environment.py # Core Gym environment definition |
|
|
β βββ mappo/ # MAPPO policy definition (Intra-Cluster) |
|
|
β β βββ trainer/ |
|
|
β β βββ mappo.py # MAPPO algorithm |
|
|
β βββ meanfield/ # MeanField policy definition (Inter-Cluster) |
|
|
β β βββ trainer/ |
|
|
β β βββ meanfield.py # MeanField algorithm core |
|
|
β βββ cluster.py # Inter-Cluster Coordinator logic |
|
|
β βββ training_freezing.py # Main SolarSys HRL training script |
|
|
β βββ cluster_evaluation.py # Evaluation script for SolarSys |
|
|
βββ Other_algorithms/ # Baselines |
|
|
βββ HC_MAPPO/ # Hierarchical Cluster MAPPO |
|
|
β βββ Environment/ |
|
|
β βββ HC_MAPPO_train.py # Training script for HC-MAPPO |
|
|
β βββ HC_MAPPO_evaluation.py # Evaluation script for HC-MAPPO |
|
|
βββ Flat_System/ # Flat Baselines |
|
|
βββ maddpg/ # Multi-Agent DDPG |
|
|
β βββ maddpg_train.py |
|
|
β βββ maddpg_evaluation.py |
|
|
βββ mappo/ # Flat MAPPO |
|
|
β βββ mappo_train.py |
|
|
β βββ mappo_evaluation.py |
|
|
βββ meanfield/ # Flat MeanField Actor-Critic (MFAC) |
|
|
β βββ meanfield_train.py |
|
|
β βββ meanfield_evaluation.py |
|
|
βββ PG/ # Policy Gradient (PG) |
|
|
β βββ pg_train.py |
|
|
β βββ pg_evaluation.py |
|
|
βββ solar_sys_environment.py # Copy of the flat environment for baselines |