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:
- 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.
- 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:
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
