Machine learning, combustion engines and real-time control

What you’re about to watch in the video below is a magnificently physical example of machine learning. Adam Vaughan is controlling an engine with an adaptive Extreme Learning Machine algorithm on his Pi, which predicts homogeneous charge compression ignition (HCCI – if you’re  a petrolhead, you won’t have to look that up on Wikipedia like I did to discover that it’s a spark-free way of combusting fuel by putting it under pressure until it goes bang) in real time.


HCCI combustion is hard to predict – it’s near-chaotic – so the algorithm Adam designed has to take a huge number of samples (240,000 per second) to get enough data to learn how the engine behaves and to provide something so close to real-time control that you’d never know the difference. (It’s incredibly close to real time – there’s about 300 microseconds – that’s microseconds, or one millionth of a second; not milliseconds, which are a thousandth of a second – of latency here.)

The Pi is recording data about pressure in each of the engine’s cylinders, about the angle of the crank and about heat release – and on the back of that, it’s subsequently controlling the engine in real time over a controller area network (CAN).

This isn’t just a demonstration of how to do mind-bogglingly clever stuff. The research means that fuel efficiency can be improved, and CO2 can be reduced. If you’re interested in a more in-depth look, Adam and Stanislav Bohac have written a paper on the algorithm that’s being used in the video – go and read it if you want a maths and engineering workout!