Skip to content

hkuedl/Make-Smart-Meter-Really-Smart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introducing Edge Intelligence to Smart Meters via Federated Split Learning

This is the codebase for our paper "Introducing Edge Intelligence to Smart Meters via Federated Split Learning".

Overview

Low-cost smart meters are ubiquitous in smart grids. Enabling resource-constraint smart meters to perform deep learning is quite challenging. Our end-edge-cloud framework reveals a new path for edge intelligence on smart meters. It improves 95.6% memory footprint, 94.8% training time, and 50% communication overhead, achieving comparable or even superior forecasting accuracy to that of conventional methods trained on high-capacity servers. We provide code for established experimental and simulation platforms.

content

Dataset

The current version supports the following datasets and tasks are saved in dataset:

  • BDG2 - Building load forecasting
  • CBTs - Residential load forecasting

Experimental platform

You can build the experimental platform with three components: microcontrollers, personal computers and tower server. experimental_platform is loaded with the code deployed on them.

Note: The microcontrollers are coded in C language and the computers and tower server are coded in Python.

content

To use the provided code, you are supposed to:

  • Load the dataset dataset/BDG2_dataset/.csv or dataset/CBTs_dataset/.csv into microcontrollers.
  • Compile experimental_platform/smart_meter/USER/.uvprojx and download the code to the flash memory of microcontrollers.
  • Run experimental_platform/edge_server/Edge_server on computers.
  • Run experimental_platform/cloud_server/Cloud_server on server.

Note: Please ensure the microcontroller is configured with at least 192 KB of SRAM and 1 GB of FLASH.

Note: Please ensure the communication network is connected and stable before use.

Simulation platform

You can also build the simulation platform with the tower server. simulation_platform is loaded with the code deployed on it.

To use the provided code, please run simulation_platform/Test.py to obtain the results:

server.centralized_train(): Cen

server.local_train(): Local

server.fed_train(): FedAvg

server.fed_prox_train(): FedProx

server.split_train(): Split

server.sflv1_train(): SFLV1

server.sflv2_train(): SFLV2

server.distillation_train(): Proposed

Experimental results

Enable resource-constrained smart meters to execute resource-intensive intelligent algorithms!

  • Performance comparison

content

  • Accuracy versus memory footprint

content

  • Impacts on energy management

content

Video

  • Smart meters are performing 4-hour-ahead load forecasting. The red line is the truth value and the blue line is the prediction value.

image

Requirement

Experimental platform:

  • Smart Meter: μVision 5.3+ and STM32F405 MCU
  • Edge Server: Python 3.6+ and Inter i7 12700 4.9GHz CPU
  • Cloud Server: Python 3.6+ and NVIDIA GeForce RTX 3080 Ti 12GB GPU

Simulation platform:

  • Python 3.6+
  • PyTorch 1.4.0+
  • NVIDIA GeForce RTX 3080 Ti 12GB GPU

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages