Monday 29 November 2010

Top 6 lists for Research Methodologies Course

Top 6 people:
G. W. Hart
M. E. Berges
M. Baranki
L. Farinaccio
S. B. Leeb
L. K. Norford

Top 6 conferences:
Ubiquitous Computing, ACM International Conference, ACM UbiComp
Autonomous Agents and Multi-Agent Systems, AAMAS
Computer Supported Cooperative Work in Design, IEEE CSCWD
Instrumentation and Measurement Technonlogy conference, IEEE IMTC
Sensor Mesh and Ad Hoc Communications and Networks, IEEE SECON
Intelligent Data Engineering and Automated Learning, Springer IDEAL

Top 6 journals:
Computer Applications in Power, IEEE
Energy and Buildings, Elsevier
Instrumentation and Measurement, IEEE Transactions on
Autonomous Agents and Multi-Agents Systems, Springer
Machine Learning, Springer
Electrical Power & Energy Systems, Elsevier

Friday 26 November 2010

End of week 8

This week I have concentrated on collecting as much of the NIALM literature as possible. This has not been a trivial task, as few papers appear in the same journal or conference, however I feel I have a good coverage of the field now. I've been reading the most relevant ones and making notes on the techniques they employ. One promising theme rising out of the most recent papers is rising interest in the low granularity data that could be obtained from smart meters.

My plan for next week is to:
  1. Fill in my grid comparing techniques used in each paper
  2. Do research methodologies tasks (find top people, conferences, journals, reflect on key conference paper's abstract and intro)
  3. Use matlab to apply some techniques from the literature

Thursday 25 November 2010

Post-meeting direction

I'm going to focus on what we can learn from data that can be could be collected from smart meters. Data of granularity this course is rarely used in the literature, as the accuracy of inferences are likely to be lower than for higher granularity.

My to do list:
  1. Continue literature search by following references of most recent papers
  2. Continue to read most relevant papers
  3. Make a grid to compare techniques used in each paper
  4. Do research methodologies tasks (find top people, conferences, journals, reflect on key conference paper's abstract and intro)
  5. Use matlab to apply some techniques from the literature

Monday 22 November 2010

In-depth literature search

Following my library skills session this morning, I conducted a more thorough search of the my field of NIALM.

I searched the following databases:
  • Web of Science
  • Inspec
  • Compendex
  • LNCS
For the following search terms:
  • Non-Intrusive Appliance Load Monitoring (relevant results)
  • NIALM (few, very relevant results)
  • NILM (non-domestic applications of load monitoring)
  • NALM (many irrelevant results)
Among the masses of papers I collected, the following are the most interesting:
  • Ruzzelli AG, Nicolas C, Schoofs A, O’Hare GMP. Real-Time Recognition and Profiling of Appliances through a Single Electricity Sensor. In: Sensor Mesh and Ad Hoc Communications and Networks (SECON), 2010 7th Annual IEEE Communications Society Conference on.; 2010:1-9.
  • Murata H, Onoda T. Applying Kernel Based Subspace Classification to a Non-intrusive Monitoring for Household Electric Appliances. In: Dorffner G, Bischof H, Hornik K, eds. Artificial Neural Networks - ICANN 2001.Vol 2130. Springer Berlin / Heidelberg; 2001:692-698. Available at:
  • Benyoucef D, Bier T, Klein P. Planning of energy production and management of energy resources with Smart Meters. In: Advances in Energy Engineering (ICAEE), 2010 International Conference on.; 2010:170-173.
  • Pihala H. Non-intrusive appliance load monitoring system based on a modern kWh-meter. Vtt Publications 365. 1998;(May).
I'm planning to start reading through each of these four tomorrow morning, in order of relevance.

Library skills

I completed the ECS library skills for research postgrads this morning. It was a session of just over an hour long, to inform us about the different library services we can use, and the electronic subscriptions the university holds.

Although the session mostly covered material we'd previous been taught, the main benefit was being asked to perform a literature survey using the sources they recommend. Even though the sites and databases were again nothing new, the exercise of investigating the literature without being distracted by reading specific papers was really helpful. I'm going to conduct a similar, but more in-depth search this afternoon.

Friday 19 November 2010

End of week 7

This week I've spent my time working on two topics. The first has been playing with Gopal's electricity readings and the second has been reading up on machine learning theory.

First I needed to get hold of Gopal's meter readings to the highest granularity possible. I've written a Python script which downloads power readings for a given time period at one second intervals. Using that script, I downloaded a week's worth of data. After plotting the data and having a few conversations with Gopal about his appliance use, we made a few observations:
  • The data contained a bunch of erroneous readings, which were represented as 0s in the data.
  • He has a time-of-use electrical boiler, which heats up a tank of water at midnight and maintains this temperature by periodically switching the boiler on until 8am.
  • His absolute minimum demand is 70 W. We think the 70 W is made up of his Sky box (35 W), a standby TV (10 W) a wireless router (10 W), an extractor fan (5 W) and some other uncountable appliances (10 W).
  • However, his average 'always-on' demand is roughly 370 W, his fridge-freezer accounting for the rest. The power drawn by the fridge-freezer seems to vary quite a lot, with a pattern which is does not visibly repeat.
  • The energy values given by AlertMe are very similar to the integral of the power demand over time. However, there seems to be a difference of between 0 and 1% between the values that I calculated and the values that AlertMe return.

The other thing I've been up to is reading lots of theory about machine learning. I've read the introduction to probability theory in the Bishop book. I also asked Ruben how to find out more about Gaussian Processes, and he pointed me at chapters 2 and 3 of this book. I'm finding it pretty heavy going, but at least understand what they are now, and am hoping to really get stuck into their applications next week.

Wednesday 17 November 2010

A better way to visualise power data

I've found visualising power data on a scatter plot is more useful than on a line graph:

Without the line interpolating between data points, we can clearly see the difference between continuous power demand and single data points which are part of a transient. I've also excluded 0 values. This is because 0 W demand is most likely an error, as no readings exist between 0 W and 70 W readings.

VirtualBox setup

The FigureEnergy project I worked on over the summer involved programming of a system to empower consumers in managing their energy consumption at home. A major part of this project is the annotation of energy usage with what appliances or activities were going on. This is clearly highly related to the HCI element of my PhD.

To enable me to make any changes to the FigureEnergy deployment, I need to use a python library called fabric. Fabric wasn't designed for use within a Windows environment, so Enrico and Gopal recommended I set up a Ubuntu VirtualBox.

After downloading VirtualBox and creating a new virtual machine and hard disk, I installed Ubuntu 10.10 from a disk image. The next step was to get at my Windows files stored on the host machine's drive. To do this I followed the steps in this tutorial, which involved installing guest additions, sharing the folder with the VirtualBox application and then mounting the folder within Ubuntu.

Once I'd done that, I needed to install fabric. Given that Ubuntu came with Python 2.6, all I needed to do was install pip using the Ubuntu Software Centre, and then install fabric using pip.

Monday 15 November 2010

Preliminary steady-state analysis

I've collected data for the total power demand of a home sampled at 1 second intervals for a 24 hour period. Here's the plot:

There are loads of peaks at around 2000 W, which are easy for a human to recognise. I wanted to pick these positive and negative step changes out automatically, so I wrote a script to calculate the difference between adjacent power readings, and if the difference was greater than 1000 W, record them. I've plotted the result:

I was hoping to see each red dot sitting roughly level with at least one blue dot and visa versa. This would mean that the step change for the appliance as it turns off is roughly the same as when it turns on. However, very few of red and blue dots actually sit on the same level, and even worse there's not even the same number of red as there are blue.

Tomorrow I'm planning to compare readings within a window, instead of using adjacent readings.

End of week 6

I started this week by revisiting Ford's thesis 'Reducing Domestic Energy Consumption Through Behaviour Modification'. I gave particular focus to the probabilistic model used to combine machine learning outputs with additional data, e.g. time of day and appliance average usage time.

I also read Mudasser's 9 month report before attending the first Research Methodologies course. The focus was on the general time scale of a PhD and the structure and content of the 9 month report. Specifically, I found the most useful outcome finding out about the flow of reports. We were told how the introduction should introduce each topic in the literature review. This would ensure that only relevant literature was discussed, and the review was therefore kept closely on-topic.

We also had a visit from Mike Osbourne, a researcher from Oxford University. Mike's interests lie in machine learning, specifically the application of gaussian processes. We discussed the how such techniques could be applied within the energy domain as part of the ORCHID project. We concluded that in the area of NIALM, there was a significant gap for this kind of approach.

Finally, we have started an Energy Special Interest Group within ECS. I have created a wiki, which the group is planning to use to share literature and ideas. I would encourage anyone within the group to visit it and expand it with your area of interest/research.

Thursday 4 November 2010

GridCarbon v1.1

I have just published an update for the GridCarbon Android app. This release fixes the layout bug present in the first release.

I only found this bug through the process of submitting the app to the Android Market. The Market requires all apps to define a minimum sdk version, which explicitly states which devices the app should be compatible with. For some reason, setting this flag caused much of the content to layout in a slightly ugly fashion on devices with high resolution screens. I fixed it by changing the dimensions of some elements from fixed pixel sizes to resolution-independent sizes.

Tuesday 2 November 2010

Aims for week 5

After my weekly meeting with my supervisors, this week I'm aiming to:
  1. Read (the most relevant sections of) a PhD thesis titled 'A Framework for Enabling Energy-Aware Facilities Through Minimally-Intrusive Approaches'
  2. Get hold of some AlertMe data and play with it to compare it to Plogg data
  3. Fix the layout issues of the GridCarbon Android application
  4. Sort out my ECS homepage so it describes my research

Monday 1 November 2010

End of week 4

This week I've been focussing on learning the basics of pattern recognition and machine learning. I've borrowed a copy of a text book and read the opening chapter, and Alex has ordered me a second copy so I can really get stuck in to it.

After our meeting last week, I had a closer look at what data Ploggs offer, the full details are in the previous post. I looked at energy readings vs power readings, and also at frequency of readings. Next week I'm going to look in to the data available from AlertMe meters and compare it with Plogg data.

I've been in contact with Mario Berg├ęs, a researcher at Carnegie Mellon University who is working in a very similar field. He's got some very interesting papers in the pipeline, and has also kindly sent me a copy of his PhD thesis.

Towards the end of the week, I've been putting some more work into GridCarbon, an Android application to monitor and visualise the carbon internsity of the UK electricity grid. I've prepared and published the first version of this application to the Android Market, although v1.0 has suffered from layout bugs due to backwards compatibility issues. More specifically, the Android Market requires the application to specify a minimum API level. However, when this attribute is specified, the application's layout takes a hit.