Accleration enrichment algorithm discussion

Official FreeEMS vanilla firmware development, the heart and soul of the system!
Post Reply
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Accleration enrichment algorithm discussion

Post by Fred »

These are critical to an engine operating smoothly and being drivable.

The fall into two basic categories :
  • parameterised (TPS and MAP load based schemes)
  • model based (gm's x-tau, toyotas 'eae', other wall wetting based schemes)
with variations based on combining the two categories together in various ways.

Please share your thoughts on some of the following links :
http://www.freepatentsonline.com/5935188.html
http://www.patentstorm.us/patents/57432 ... ption.html
http://www.freepatentsonline.com/5584277.html
http://www.freepatentsonline.com/5819714.html
http://www.wikipatents.com/5492101.html
http://www.freepatentsonline.com/5642722.html
http://www.freepatentsonline.com/4388906.html
http://www.not2fast.com/patent/p4388906.pdf
http://www.wikipatents.com/5492101.html

All those are about various wall wetting techniques, it will take significant time to read through them. I'll get to that somewhat later after a lot of other stuff is done. In the mean time, feel free to discuss all/any type(s) of AE in detail here.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
SL-Tuning
TO220 - Visibile
Posts: 6
Joined: Tue Jan 15, 2008 7:58 pm
Location: Rivonia, Johannesburg
Contact:

Re: Accleration enrichment algorithm discussion

Post by SL-Tuning »

I haven't read the links but understand this pretty well. It is two fold however, enrichment of map as well as accel sensitivity on the fuel pump to supply what you need at the right time. Let us forget about the accel sensitivity % for the meantime, I am not too clued up there.

For acceleration enrichment on loadsite level, I would take an interpolated value across all rpm ranges and find a median. Then look at the two loads sites next to me, before and after across the rpm range before and after current and get a median, then look at the two load site before and current and work out the difference in stepping and the same with the one coming up next. This would give an accurate stepping.

Mathematical expressed as: THESE ARE EXAMPLE FIGURES and only a subset of rpm to calculate medians, of course in real world you would be using the entered max rpm mapping.

at 500rpm
load site before: 2.3ms
Current load site: 2.4ms
load site after: 2.6ms

at 1000rpm
load site before: 2.4ms
Current load site: 2.5ms
load site after: 2.7ms

at 1500rpm
load site before: 2.4ms
Current load site: 2.8ms
load site after: 2.9ms

cls = Current load site
lsb = load site before
lsa = load site after

cls median
= cls 500 + cls 1000 + cls 1500 / 3
= 2.4ms + 2.5ms + 2.8ms / 3
= 2.56ms recommended median at 1000rpm, we can code an auto enrichment variable to raise this my the 0,06ms

lsb median
= lsb 500 + lsb 1000 + lsb 1500 / 3
= 2.3ms + 2.4ms + 2.4ms / 3
= 2.36ms recommended pulse at 1000rpm, the tune is 0.03 over, we can choose to relax pulse if we wanted too, to smooth the jump.

lsa median (same as above)
= 2.73ms median, close on the money, we are 0.03 under and can chose to apply an auto corrector on this.

Now... I agree, timing per rpm range will determine how much you can auto correct by before pinging / pinking. We can monitor cyl. knocking which can feedback to this, to tell us to adjust in a smaller increment until no knocking is occurring anymore.

We now have 3 medians for our current situation, assuming these were auto corrected the scenario looks like this:

lsb: 2.36ms
cls: 2.56ms
lsa: 2.73ms

for transition from lsb to cls we microfuel by an extra 0.2ms at a resolution of our limitation by TPS or MAP design.

same is true for cls to lsa, we microfuel by an extra 0.17ms.

This will ensure a smooth transition from one load site to the next hopefully stopping the jerking sensation of current ecu's that only interpolate on the current rpm range.

Hope this has added some value and not just run circles around a topic that has already been discussed in one of those links.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Accleration enrichment algorithm discussion

Post by Fred »

Um, yeah, that would fall under "simple" algorithms.

Wall wetting keeps track of un evaporated fuel on the port walls in order to know not guess how much should be injected at any time. Its integral to the fueling calculation. It says 5% of this fuel wont make it to the engine, so i need to inject more, or 5% on top of this will come from the ports so i lean out to make it right.

etc.

Have a read, its good stuff indeed.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
ababkin
LQFP112 - Up with the play
Posts: 215
Joined: Tue Jan 15, 2008 5:14 pm

Re: Accleration enrichment algorithm discussion

Post by ababkin »

agreed

We will need x-tau, eae or something similar for good transients for sure.
The sequential inj operation will be a nice thing for accel transients as well.

We should also consider the early VE-estimation (through manifold volume/filling estimation, briefly utilizing an Alpha-N table on transients, etc) techniques. This should, at least in theory, make transients even more responsive. (MAP only based VE estimation won't ever give perfect transients even with perfect wall wetting algorithm implementation - reason is MAP always lags)


Alex
Legal disclaimer for all my posts: I'm not responsible for anything, you are responsible for everything. This is an open and free world with no strings attached.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Accleration enrichment algorithm discussion

Post by Fred »

Agreed, you are 100% right there. I'm sure we'll sort something out in the end.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Accleration enrichment algorithm discussion

Post by Fred »

Bump, back from the dead!! 21 months old LOL

We need to do this in the medium term, possibly sooner, anyone want to think about tackling it? This is lower priority than the next thread that I will bump, but important none the less. This code can be written on the bench on i386 then brought into alignment with available variable widths on the device (need to reply to that other thread...).

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
MotoFab
1N4001 - Signed up
Posts: 307
Joined: Thu May 29, 2008 1:23 am
Location: Long Beach CA

Re: Accleration enrichment algorithm discussion

Post by MotoFab »

Fred wrote:Wall wetting keeps track of un evaporated fuel on the port walls in order to know not guess how much should be injected at any time. Its integral to the fueling calculation. It says 5% of this fuel wont make it to the engine, so i need to inject more, or 5% on top of this will come from the ports so i lean out to make it right.

We need to do this in the medium term, possibly sooner, anyone want to think about tackling it?
Think about it is what I can do at this point. Here is some thinking.

With port injection, keeping track of un evaporated fuel on the port walls requires separate 'accumulator registers' for each port.

One of the primary variables in the AE calculation is time. The longer the fuel sits on the wall, the more of it evaporates. On an 8cyl motor with sequential injection, the fuel injected into one port sits for 7 intake cycles. The period of those intervening 7 cycles can change significantly. A time accumulator register for each port.

Also, the fuel on any particular port wall isn't really part of the total fuel on all the port walls. A fuel accumulator register for each port.

A way to think about this is, construct the entire injection/ignition algorithm (including AE) as if for a 1 cylinder motor. Then for example imagine that a 4cyl motor is a one cylinder motor running at 4 times the number of combustion cycles, or maybe 4 times the rpm.

- Jim
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: Accleration enrichment algorithm discussion

Post by Fred »

Good point, I could probably even have code like that now up front and misuse it with batch injection.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
jbelanger
LQFP144 - On Top Of The Game
Posts: 387
Joined: Sat Feb 23, 2008 8:58 pm
Contact:

Re: Accleration enrichment algorithm discussion

Post by jbelanger »

MotoFab wrote:A way to think about this is, construct the entire injection/ignition algorithm (including AE) as if for a 1 cylinder motor. Then for example imagine that a 4cyl motor is a one cylinder motor running at 4 times the number of combustion cycles, or maybe 4 times the rpm.
I understand the idea of constructing the algorithm for a single cylinder but I'm not sure what you mean with the second sentence. The issue is that each cylinder is running at the same true RPM and things happen concurrently and independently (up to a point) for each cylinder. They don't happen 4 times as fast because you have 4 cylinders, there's just 4 single cylinders overlapping in time (in a specific sequence) with their own independent things to keep track of.

Just to put that in a more algorithmic way, what you seem to say is that you keep track of thing in a single set of variables but with 4 times the events. What I say is that you have an array of variables and 4 streams of events. It may be what you meant but it wasn't clear to me (and I'm not sure what I just wrote is that much clearer).

Jean
MotoFab
1N4001 - Signed up
Posts: 307
Joined: Thu May 29, 2008 1:23 am
Location: Long Beach CA

Re: Accleration enrichment algorithm discussion

Post by MotoFab »

jbelanger wrote:I understand the idea of constructing the algorithm for a single cylinder but I'm not sure what you mean with the second sentence. The issue is that each cylinder is running at the same true RPM and things happen concurrently and independently (up to a point) for each cylinder. They don't happen 4 times as fast because you have 4 cylinders, there's just 4 single cylinders overlapping in time (in a specific sequence) with their own independent things to keep track of.

Just to put that in a more algorithmic way, what you seem to say is that you keep track of thing in a single set of variables but with 4 times the events. What I say is that you have an array of variables and 4 streams of events. It may be what you meant but it wasn't clear to me (and I'm not sure what I just wrote is that much clearer).
Thanks for clearing up any misunderstanding. Sure, that's what going on in the motor, the events are overlapped. I didn't mean to say otherwise, more an additional way to think about certain things that I find useful. Just different ways to position things conceptually in my head that may or may not be technically accurate, but serves to stretch one concept in order to see a related one.

The main gist of the post was the physical separateness of port-injected fuel.

- Jim
Post Reply