blog

Teaching 9-12 yearolds robotics with FireTechCamp

The wonderful MSc students I worked with last year and their award-winning projects ;)

This spring and summer I had the opportunity to work with some exceptional MSc students at Imperial and I just wanted to write a summary of their achievements.

Two books on the history of hacking

I recently finished reading two great books on the history of hacking:

The first one was 'Hackers' by Steven Levy:

Visualisation of machine learning algorithms: computer science group project proposal

Here's another computer science group project that I have submitted for consideration by students this coming year. As always, comments are very welcome!


Algorithms used in machine learning can often feel quite complex when you first come across them. As you gain experience with the algorithm you begin to be able to visualise each step and then realise that the algorithm is actually quite intuitive. Wouldn't it have been far easier to learn the algorithm if you had seen a good visualisation of the algorithm to begin with!

For example, here's a visualisation of selection sort (taken from WikiPedia):

The aim of this project is to produce interactive, animated visualisations of a set of machine learning algorithms. (Don't worry if you don't know any machine learning algorithms yet; this project would be a good opportunity to gain intimate knowledge of a few algorithms).

Below are some suggestions to get your ideas flowing.

Open repository for appliance power signatures: computer science group project proposal

Here's another draft proposal for a computer science group project that I'm thinking of submitting...


Introduction

As energy costs increase, there is increasing pressure to use energy as efficiently as possible. The first step towards reducing energy consumption is often to measure your existing consumption. There is good evidence that people are best able to manage their energy consumption if they are given an itemised energy bill describing appliance-by-appliance energy consumption information (e.g. "your fridge cost you £50 this month and your TV cost you £20").

Automatically estimating an itemised energy bill by "disaggregating" a whole-house smart meter signal is an active area of research. One approach to this problem requires that the disaggregation system be trained on existing appliance "signatures" (recordings of the power consumption of an individual appliance). A web service which allows for appliance signatures to be programmatically retrieved and submitted would be very useful both to enable automatic disaggregation systems and also to encourage research into disaggregation.

The Challenge

The aim of this project would be to build a web application to allow appliance signatures to be submitted, categorised, analysed and retrieved.

UK energy infrastructure simulation game: computer science group project proposal

Here's a draft proposal for a computer science group project that I'm thinking of submitting...


Could we power the entire of the UK electricity grid on renewables alone? What about a mixture of nuclear and renewables? How much would this scenario cost to build? Or what about going to the other extreme and switching our power generation to 100% coal? What implications would that have?

Discussions about energy are becoming quite common in the media. Questions like those listed above are frequently asked but it's hard to find good answers. One of the big problems in communicating energy issues to the wider public is that people have little sense of the scales involved.

The aim of this project will be to build a kind of "SimCity" game to allow members of the public to explore different energy scenarios for the UK (or for the whole world if you're feeling very ambitious!). Users would be allowed to input any scenario and the game would simulate the consequences. Points are lost for triggering power blackouts or excessive environmental damage.

Dimmers and sparse-sampling home energy monitors don't mix

I have been recording the power consumption of my whole home using two systems: a Current Cost CT clamp and my home-brew "sound card power meter". The latter samples my home's voltage and current waveforms at 44.1kHz and calculates the apparent and active power once a second.

Most of the time, the signal from the Current Cost CT clamp and my SCPM agree remarkably well.

One situation where the two systems disagree wildly is when our kitchen ceiling lights are on. These lights consist of 10 x 10W Philips dimmable LEDs driven by a cheap TRIAC dimmer. Here's a graph showing a time period where the lights start off, then turn on, and then turn off again. The Current Cost reports a rapidly varying power consumption. The SCPM, on the other hand, reports a very steady power consumption. I have also plotted the mains voltage to demonstrate that the mains voltage wasn't doing anything odd during this period:

What's going on? Why does the Current Cost think the kitchen light's power consumption wobbles up and down wildly?

Which software license for disaggregation code?

I have finally started writing my smart meter disaggregation code! I'll keep the code private until we publish a paper on our disaggregation system, and then I'll open up the repository on github.

I spent a while worrying about which software license to use. I've just finished reading "Free as in Freedom: Richard Stallman's Crusade for Free Software" so I was very tempted to use GPL. The GPL forces people who modify your code to release their modifications in the hopes that everyone can benefit from every improvement. This has worked very well for projects like the Linux kernel; but there does seem to be good evidence that some software companies and developers are "allergic" to the GPL because it limits their freedom to modify the code, hence some companies would rather re-write GPL'd code or go with an alternative project.

One of my main motivations for doing a PhD on smart meter disaggregation is the rather idealistic hope that my work might, in some very small way, help people to reduce their energy consumption. As such, the priority must be to allow as many people as possible to use any disaggregation software I write. So I've gone for a very simple and permissive license: the MIT license.

(Of course, I rather suspect that my code won't be used much, so all this worrying about licenses might be somewhat premature ... but it's worth getting it right from the start).

I considered a number of different names for my Python disaggregation code: nilmpy, pynilm, nilmtk, disaggpy. I went with "slicedpy" because it makes me smile ;) (the idea being that smart meter disaggregation is a little like taking a pie (representing your whole-home energy consumption) and slicing it into its component pieces (each representing the energy consumed by an individual appliance); hence the name "SlicedPy". It's spelt "py" not "pie" because the code is mostly written in Python).

Update 1/8/2013

@OpenTRV suggested that I use the Apache v2.0 software license because it has some patent protection. It won't protect against patent trolls but it seems better than no patent protection. I am now using the Apache v2.0 license.

Useful links

UK Patents, Copyright and disaggregation

During my PhD one key aim is to design, implement and validate a software system which can disaggregate a smart meter signal. Disaggregation is definitely something which has commercial potential. Several people who have told me: "make sure you protect your IP".

I am rather sceptical of the worth of patents in general and software patents in particular but I also appreciate that I don't know much about IP. To try to find out more, I just attended a lecture on "Intellectual Property and its Importance to Researchers". In particular, I want to figure out:

  • Is it desirable to protect a disaggregation system?
  • Is it possible to protect a disaggregation system?

Let's take these questions in reverse order:

Pages

Subscribe to RSS - blogs