Version 0.1 Raspberry Pi Engine Control with Real-Time, Adaptive Machine Learning (Linux, HCCI)
Channel: Adam
Date: 2015-01-09

This is my first attempt at engine control with an adaptive Extreme Learning Machine algorithm I designed to predict non-stationary, near chaotic Homogeneous Charge Compression Ignition (HCCI) combustion time series in real-time.  A high-level overview about the approach is available at:

https://www.youtube.com/watch?v=_yrLWFffP_Q

Pressure data acquisition is recording 240,000 18-bit samples per second (total, all channels) with assembly code added to the Linux kernel in an FIQ.  Control commands must be calculated with less than ~300 microseconds of latency to maintain control.  I have the control algorithm running in PREEMPT_RT Linux user space and streaming processed data to a d3.js web-based UI over a WebSocket.

The model training data is from a previous engine in 2012, and took 40 minutes of test cell time to acquire.  I haven't re-trained the model for this new engine yet, and only one cylinder's worth of data is used for training (all cylinder models are the same before adaptation).

A pre-print paper about the algorithm is available at:

http://arxiv.org/abs/1310.3567

The final paper is available here:

http://www.sciencedirect.com/science/article/pii/S0893608015000878