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:
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
Смотреть в источнике
30 комментариев
This is really cool. Is it controlling both the fueling and ignition based on the pressure signals and the algorithm only? No pre set data about fuel requirements or ignition advance?
Are the fuel pump, cooling pump, and air intake/exhaust controlled by any other devices?
So, what exactly is the benefit of this over not having it? I'm assuming a reduction of lean/rich combustion? Just curious
Fascinating. Very nice demonstration. HCCI is the way of the future for engine designs. Would this design cause an improvement in efficiency over the current approach ? I've flicked over your Arxiv paper, but this is way above my maths level.
Nice work.
That's way cool. I don't know how possible it would be to actually use this outside the lab for one very basic reason:
Startup.
You need a system that pretty much is 'instant on' when the key is turned. Perhaps it would be possible to initiate a 'hibernate' mode where the system suspends to a fast onboard SSD, or where it starts bootup when the door is unlocked so that it's ready when the operator turns the key.
Or it might be possible to just run it off the battery in a low power state. Those are some obvious issues towards widespread adoption of this, but I can certainly see the potential (as I think about dropping the 3.5 Ecoboost into my 05 Mustang… mmmm…)
More impressive than it seems at first glance.
I have longed believed that if we want machines to become self-aware, they must have a self to be aware of.
This represents the development of an early neural loop for that achievement.
Where can I find those graph widgets at the bottom of your http://dauntless.io/control.html at 1:40 ?
What I need is a drop in replacement for the Ford EECV/OBD2 controller.
Very cool chart visualization with embedded table!
Nice!
How close is this to drive a real car on an street? Is there a way to integrate this with rusEfi or any other open source EMS?
You know I was just talking to a friend the other day about all of the things the Raspberry Pi could eventually replace. Engine computers was one of the things I said.
It's all cool and games until they release one in real life and start charging more than a MOTEC system lolololol The one thing I hate about ECU's is the prohibitive costs of getting something open source and custom.
Doesn't the AVL Indicom also have such a module? I worked for them and I believe we worked on similar realtime controllers. But neural nets I guess. Big Intels are faster than a PI:)
What difference did you see in emissions and efficiency?
Just fantastic!
Great job!!!
If you could do that with the raspberry pi, which uses linux, why not use a linux computer in place of those xp and win7 computers?
So this is a stock Linux image? No tweaks to improve real-time performance?
Very cool! Are you using the AVL box to process the pressure sensor outputs or does your custom board do that as well? If so, what resources did you use to aid in the design? I assume you are using piezoelectric elements.
Awesome work! Will you make your code fully open source?
How are you interfacing your pressure transducers into the Pi? I'd be interested in the details of the custom board that allows you you get 240k samples/second, and perhaps the corresponding FIQ source code if you'd be willing to share.
Hi Adam,
so much amazing technologies in one video!
Could you tell me how the data transfer from the raspi to D3 in realtime works? Is it realised via websocket?
Perhaps the most amazing part of this is how quiet the engine is, although I'm sure the exhaust is going up and out of the building.
And, yet, every pickup truck driving around on the street can be heard from a block away or more.
Sweet! Are you using any already existing JS library to display graphs in that speed?
hi Adam, would you please share you code on gethub?
Wow
Have you found an affordable sensor for ICP?
Hey there Adam…
How exactly is you A/D conversion going on?
What programming language have u used?. How is the visualization so much real time.?. What and how have u used it in Raspberry Pi?