The super-state hidden Markov model disaggregator that uses a sparse Viterbi algorithm for decoding. This project contains the source code that was use for my IEEE Transactions on Smart Grid journal paper.
Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
datasets corrected TEALD power data Feb 25, 2016
logs v1.0 release Oct 7, 2015
models v1.0 release Oct 7, 2015
.gitignore changed 0s and new test script Feb 25, 2018
LICENSE
README.md Update README.md Nov 2, 2016
algo_SparseViterbi.py
algo_Viterbi.py v1.0 release Oct 7, 2015
batch_BuildModels.sh
batch_TestBasic.sh
batch_TestRAE.sh changed 0s and new test script Feb 25, 2018
batch_TestSparse.sh
disagg_EMU2.py piNILM project, beta release May 3, 2016
libAccuracy.py
libDataLoaders.py changed 0s and new test script Feb 25, 2018
libFolding.py v1.0 release Oct 7, 2015
libPMF.py
libSSHMM.py sp correction, added int32 for running on RPi Jan 15, 2016
piNILM.md
test_Algorithm.py
test_BySteps.py new test script Feb 24, 2016
train_SSHMM.py

README.md

Sparse NILM

Copyright (c) 2015 by Stephen Makonin

The super-state hidden Markov model disaggregator that uses a sparse Viterbi algorithm for decoding. This project contains the source code that was use for my IEEE Transactions on Smart Grid journal paper.

If you use my code in your research please cite this paper. Current citation details are:

  • Title: Exploiting HMM Sparsity to Perform Online Real-Time Nonintrusive Load Monitoring (NILM)
  • Authors: Stephen Makonin, Fred Popowich, Ivan V. Bajic, Bob Gill, Lyn Bartram
  • Journal: IEEE Transactions on Smart Grid
  • Vol/No/Pages: vol. 7, no. 6, pp. 2575-2585
  • Accepted: October 2015
  • DOI: 10.1109/TSG.2015.2494592

NOTE: This code it a rewritten and modified version of the code used in my PhD thesis.

piNILM

2016 May 2 Update: This code is able to run on a Raspberry Pi 2B+ and 3. If you have a Rainforest EMU2 you can have the RPi communicate with your smart meter and perform disaggregation in real-time. Read the piNILM.md document for details on how to do this.