Linux Controls a Gasoline Engine With Machine Learning
An anonymous reader writes: Here's a short (2 min) video of PREEMPT_RT Linux controlling a gasoline engine from one burn to the next using a Raspberry Pi. It's using an adaptive machine learning algorithm that can predict near chaotic combustion in real-time. A paper about the algorithm is available at the arXiv.
Here the goal is to make the engine spend as much fuel as possible, hence the term "chaotic combustion". The system can maintain the engine in a "chaotic combustion" state in real time ;-)
Everything I write is lies, read between the lines.
Don't worry. It's not going to be in cars anytime soon.
I think a Pi running realtime Linux with machine learning looks much more interesting as a possible candidate for replacement of legacy control systems in nuclear fission-based power plants with a much more modern less-expensive system based on current generation commodity off-the-shelf hardware.
Oh come on - I like Linux and use it for my servers and even some RTOS... but 'Linux' has almost nothing to do with that. It'd work just as well on any RTOS. Would you give credit to Windows for every single freaking program that can run on it?
Something like 'Raspberry Pi Controls a Gasoline Engine With Machine Learning Using Eigen
C++ Matrix Library' would be far more descriptive.
As much fuel as possible ? Hardly.
The conclusion says "the broader objective of this new modeling approach is to enable a new class of cycle-to-cycle predictive control strategies that could potentially bring HCCI’s low engine-out NOx and high fuel efficiency to production feasible gasoline engines."
Computationally, running a car engine is trivial for a raspberry pi. Early EFI used processors in the KHz range and even current ECUs like Megasquirt use 16 bit 50 or 100 MHz processors.
Fuel injection and spark events only occur at the 10s of Hz scale (topping out at around 60 each per second). Even if you handle cam phasing and MAF sampling at 100 times that interval, you're still within the computational work load of a couple dozen MHz of instructions.
The research is only interesting because they are taking advantage of way overspecced processing power to approach combustion more granularly per event and trying to learn from each one and control the next. It only got press here because they used Linux (anything production grade would use QNX or similar).
The expensive part of an ECU isn't the processor. It is supporting circuitry to tolerate lots of EMI noise, varying supply voltages, and lastly, driving fuel injectors (they're actually a PITA because of voltage / current / pulsing).
If they really want to get ambitious, their system will learn the exact intake geometry effects(intake asymmetry) , individual injector flow characteristics, and cylinder geometry (build up, hot spots) and thermal trends just by watching I/O.
In HCCI, you operate the engine *without* the throttle (for practical purpose, they probably left the throttle in but operated at WOT: pedal to the metal). This improves the efficiency for sure right there.
HCCI *is* about efficiency: without the throttle in the way, things go much better thermally in the machine. Torque output (thus power) is then controlled by fuel injection and the motor autoignites (like a diesel).
Combustion at every cycle starts according to current conditions (pressure and temperature). This means that earlier cycles are essentially what determines the current combustion... You only get to control fuel timming and quantity supply...
This is hard people...
The article is about a *control* strategy. It is normal to seek worst case conditions (hence the chaos, variability, etc) and to try to demonstrate robustness... Efficiency will certainly be evaluated next, once robustness is set. Given the article was written in october 2013, they probably have this figured-out by now ;-)
Do we really want a computer program to learn from its mistakes at running a nuclear power plant?
HCCI engines are a really cool technology, but very hard to do.
Efficiency of internal combustion engines is related to the compression ratio - the ratio of the combustion chamber from largest to smallest capacity.
Gasoline engines usually have a compression ratio around 9:1. Higher, and the compressional heating combined with the heat off of the walls can cause "knocking," which detonation of pockets of fuel/air away from the flame front from the spark plug. Engines with premium gas can run higher compression ratios. Higher-octane fuels can be compressed more without burning, but of course there is no benefit to running it on engines rated for regular.
Diesel engines run ratios of around 17:1, resulting in much greater efficiency. Diesel engines of course don't have spark plugs. The fuel is injected just before top dead center, where the air is compressed maximally. This is in contrast to a gasoline engine, where it is well mixed with air before entering the combustion chamber. Due to compressional heating, it spontaneously combusts very quickly, much faster than the combustion in a spark-plug-ignited gas engine.
HCCI well-mixes the air and gas upon intake, but ignites by compression like diesel. This gives diesel efficiency. In addition to the better compression ratio, HCCI controls power by the amount of fuel injected, like a diesel. Gasoline engines use a throttle to choke off the air supply, which induces losses because the engine has to work harder to pull air at lower power. That's how engine braking works, and also why diesel trucks use a separate "jake brake" to use the engine to brake.
It must run under a leaner mixture. It's really hard to have complete burning of fuel, and avoid knocking. That's why it has to be very carefully computer controlled based on temperature and such.
If you don't understand any of my sayings, come to me in private and I shall take you in my German mouth.