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.
I am not familiar with combustion engine computation. Does this make the engine more or less efficient? And if it is more effiecent, how does it compare with commercial offerings of comparable use?
Restore the madness of youth's lechery
If it were another OS, the article would have been: "Gasoline Engine combustion prediction with machine learning technology!"
If it were Linux, "Linux Controls a Gasoline Engine With Machine Learning"...
Engine explodes. 12 dead.
I do not trust Linux to control my engines.
I don't hear the engine running, so I highly doubt that this video is legit. If people could replace their ECU's with a stupid Pi then the car companies would be out of business. Another thing I noticed is he has some "blue box" that does the same thing as the Pi, seeing that they are viewing the same data, for all we know, this Pi isn't doing jack shit. TLDR; another anonymous loser posting Pi videos to slashdigg.
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.
Hee hee, haa haa, Slashdot is BUILT on people saying NIGGER!! Like it or not! Free speech for the dumb, free fuckin speech!!
Is smoking allowed or is smoking not allowed in the boy's room? Here in the valley they say no, smoking ain't allowed in school. I am fact gathering and would love to get input from other schools.
The year of Linux on the dash board!
... and we reduce a huge number of moving parts & weight. whether its linux or qnx doesn't really matter, of course.
The goal is always to make it more efficient wherever possible.
There are other factors to optimize the combustion for.
On a production engine, the specs of every unit will be identical (to machining tolerances .001 in). So once you solve the problem just encode the parameters in the controller and you can use something much less powerful (and more reliable). For solving the problem, use whatever high-power equipment you'd like. Attach a hundred sensors and throw a supercomputer at it. Even better, rather than "machine learning" (aka, we don't understand it, we will let the computer tweak it until it gets better), simulate the physics and solve the equations for a complete solution.
BOOM!
Does not work that way.
HCCI relies on compression ignition. The thing runs on chaos, with multiple ignition point in an overall lean mixture with rich pockets around the injection spray.
Turbulence, chaos, past cycle conditions, current load, etc.. These are what you need to model... Nobody cares (to a point) about exact intake headers length at this point...
What you are suggesting requires solving the Navier-Stokes equations with mass transfer, energy equillibirum, mass-momentum equillibirum, chemical kinetics reactions (lots of them BTW) and what not. In real time? With sensors and a supercomputer thrown in there randomly? Oh boy...
This must be the year of Linux on deskt....gas pumps.
Who wrote the compiler that the Linux kernel was is compiled with?
If I use MinGW (GCC for Windows) and MSYS (GNU Make, Bash, and Coreutils) to compile applications for Windows, am I using GNU/Windows?
Yes, if everything is measured and everything is consistent, this is true. But what about things that are not very precisely controlled? External air temperature? The exact octane rating of the gasoline? Air pressure (elevation)? Engine temperature? Oil viscosity? etc., etc. To measure all of these things would be prohibitively expensive. Better to create a control system that learns the current state and adapts to it.
He's not running the engine with a Pi, Linux, or Windows of any kind. He's using the Pi to collect data from a cylinder pressure and crank angle sensor on one cylinder (of a 4-cylinder engine) and then sending tuning parameter adjustments to the engine computer over CAN. His objective is to increase the RPM range where a gasoline engine can operate reliably using compression ignition (like a diesel).
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.
Not really. When racing production vehicles, one big step towards improving performance is taking the engine apart and "blueprinting" it.
On a production engine, the specs of every unit will be identical
Wow. That is fabulously naive.
Manufacturers deal in tolerances. They do NOT make "identical" engines. There is a range of acceptable tolerances for everything. Then there is tolerance stack up, sort of a second derivative of a simple tolerance. A cylinder volume at top-dead-center will vary due to the sum of; the rod journal and pin clearance, the distance between the rod journal and piston pin holes, the position of the pin hole in the piston, the milling height of the cylinder deck, the milling of the cylinder head and variations in the mold that forms the chambers of the cylinder head. There are doubtless many more.
All of the above have a range of acceptable tolerances. These stack up in an assembled engine; each of the above can conspire to make a given cylinder have a compression ratio on the limit of the high side while a cylinder in a different bank of the SAME ENGINE will have a stack up that puts the ratio on the low limit.
All of this is perfectly normal and manufacturers employ engineers to compute tolerance stackups in engine designs to arrive at cost effective yields of working parts. In other words, how much can they get away with and still make engines that are acceptable in a market filled with competitive rivals.
Besides what can vary in manufacture you have what will vary over the life cycle of an engine. Just off the top of my shade tree mechanics head, what can vary in a traditional internal combustion engine that cannot be controlled through precision manufacture;
Cylinders and pistons wear. A high mileage engine will be several thousands out of spec due to wear, and the wear is not uniform, due to minute differences in material hardness, the slightly different forces encountered by different cylinders, non-uniform lubrication and temperature gradients due to non-uniform cooling. The combined effect of both the cylinder and piston wear can get rather large with enough miles; .008-.010" in is not unusual, with each cylinder having different rates of wear in the same engine.
Cylinders and chambers become contaminated by carbon deposits over time, changing the shape of the chamber, the volume of the chamber and temperature gradients on the chamber surface. This effect is dynamic; a cylinder will have more or less carbon deposit over time due to driving habits, air temp, fuel and a host of other factors. This is a big reason knock sensors are used to correct ignition timing in real time.
Wear on rod bearings and piston pins or pin holes change cylinder volume over time.
Piston rings wear and accumulate damage with time, reducing sealing effectiveness which changes cylinder compression. This is non-uniform due again to minute differences in materials and randomly accumulated damage. On the other hand, new piston rings improve sealing as an engine breaks in.
Heat expansion changes the behavior of an engine dramatically and in non-uniform ways while operating.
Then you have repairs.
Replacement parts are frequently not identical to original parts. The things that will vary a chamber during repairs include replacement pistons, gasket thickness and milling cylinder deck or head surfaces. Some of these are not common with modern passenger car engines any longer, but they remain common with industrial engines and probably always will.
Finally, there are ordinary run time variables that affect engine operation.
Fuel is a big one here. Fuel has become a plaything of government regulators as they mandate difference mixtures for different regions and prevailing weather. Fuel can change significantly long after an engine is manufactured in ways the manufacturer did not anticipate (or deliberately ignored); higher alcohol percentages and new additives are examples of this.
Air varies in myriad ways. Density, variations in molecular ratios (humidity, oxygen ratio, etc.) particulates including w
Sadly, the rt-linux project is all but dead. http://lwn.net/Articles/617140... Unless this changes quickly, such linux-based projects will no longer be possible.
I only know of one HCCI engine that went to production, and strangely that was a 2-stroke Honda off-road bike; the CRM250 AR back in 1997.
The RPi seems like a rather eccentric choice of platform for this application, there are plenty of hard-realtime platforms with the engine-control hardware already in place.