How does the ECU interpret Beyond Tables?
Thread Starter
EvoM Community Team
iTrader: (15)
Joined: Sep 2006
Posts: 3,143
Likes: 7
From: Aurora, IL
How does the ECU interpret Beyond Tables?
This was kind of brought up in the "what load are you guys seeing thread", but I wanted to know if anyone could clarify.
Background: I had perfect starts with my new RC 1200 ccs and then I had to go much things up with an AMSOIL EA filter (and soon to get hard pipe). My cold startup is now muuuuch worse, but I don't think its related to the IPW Startup tables because even when warm there is an immediate catch and then a quick blip where the RPM starts rising, "pauses" (like literally as fast as you can snap your fingers), and then if its going to stay running it goes up to the normal ~1800 RPM, if not it chugs a few times and then dies out. I think my scaling may just be too low in this "chugging" area to catch, but airflow here is really low (less than 19hz).
So, it could be the MAF scaling or I could just be crazy and its the startup IPW. The only reason I don't think it is the startup IPW is because it is a static value and worked great with the cut airbox. The only reason I'm not sure is because ambient temp on cold startup is much different.
----------
Irregardless of my problem I'm curious about how the ECU interprets a map beyond the defined values. For a 2d map does it simply create a straight line from the bounding 2 points, hold the bounding point, or something else I'm not thinking?
Example:
The MAF scaling table I currently have setup goes from 145 @ 19hz, to 139 @ 25hz, then 151 @ 50hz or
19 145
25 139
50 151
This creates a small dip, but resulted in great startups and LTFTs before. So for 0 hz is the MAF value still 145, or would it be the left-most point on a line from 1-25 where at 19 and 25 the values represented my settings? IE: since this is a simple
scaling at 0 could be 164.
This would obviously result in richer values below 19hz than a standard map that has something like 146 @ 25hz where you would have
...or 141 @ 0hz
Also, is this a standard, a rule, or different for each table? IE what happens in Boost error tables or 3d tables (I guess it could just be a function like above that included z).
Thanks!
Background: I had perfect starts with my new RC 1200 ccs and then I had to go much things up with an AMSOIL EA filter (and soon to get hard pipe). My cold startup is now muuuuch worse, but I don't think its related to the IPW Startup tables because even when warm there is an immediate catch and then a quick blip where the RPM starts rising, "pauses" (like literally as fast as you can snap your fingers), and then if its going to stay running it goes up to the normal ~1800 RPM, if not it chugs a few times and then dies out. I think my scaling may just be too low in this "chugging" area to catch, but airflow here is really low (less than 19hz).
So, it could be the MAF scaling or I could just be crazy and its the startup IPW. The only reason I don't think it is the startup IPW is because it is a static value and worked great with the cut airbox. The only reason I'm not sure is because ambient temp on cold startup is much different.
----------
Irregardless of my problem I'm curious about how the ECU interprets a map beyond the defined values. For a 2d map does it simply create a straight line from the bounding 2 points, hold the bounding point, or something else I'm not thinking?
Example:
The MAF scaling table I currently have setup goes from 145 @ 19hz, to 139 @ 25hz, then 151 @ 50hz or
19 145
25 139
50 151
This creates a small dip, but resulted in great startups and LTFTs before. So for 0 hz is the MAF value still 145, or would it be the left-most point on a line from 1-25 where at 19 and 25 the values represented my settings? IE: since this is a simple
Code:
(x + 164 ) - x = y
This would obviously result in richer values below 19hz than a standard map that has something like 146 @ 25hz where you would have
Code:
(x + 141.83) + x/6
Also, is this a standard, a rule, or different for each table? IE what happens in Boost error tables or 3d tables (I guess it could just be a function like above that included z).
Thanks!
Last edited by fostytou; Apr 15, 2009 at 05:45 PM.
What I have understood is that the ECU uses the value in the last(first column) if beyond that value.
So, in your example, at 0Hz it would use 145.
But, don't trust my answer. Let someone who knows what they are talking about give a definitive answer.
So, in your example, at 0Hz it would use 145.
But, don't trust my answer. Let someone who knows what they are talking about give a definitive answer.
yeah last value.
so lets say in your timing map you have 3* at 260 load, 3500rpm.
but for some reason the load is 300, or 350, or 4000000000 then the resulting table lookup will still return 3*
If you think about it - the ECU has no idea what the jump from 260 -> whatever is, so it can't interpolate it.
ps - I am 99% sure this is correct.
so lets say in your timing map you have 3* at 260 load, 3500rpm.
but for some reason the load is 300, or 350, or 4000000000 then the resulting table lookup will still return 3*
If you think about it - the ECU has no idea what the jump from 260 -> whatever is, so it can't interpolate it.
ps - I am 99% sure this is correct.
Yes.
Tephra and I have both played about with the table lookup code to work it out and discussed it quite a bit, dummy values, simulators etc, neither of us have seen any surprises I'm aware of to date. There is no code to extrapolate beyond the end that either of us have seen.
Tephra and I have both played about with the table lookup code to work it out and discussed it quite a bit, dummy values, simulators etc, neither of us have seen any surprises I'm aware of to date. There is no code to extrapolate beyond the end that either of us have seen.
well its physically impossible to extrapolate when you dont know when the next "axis point" is..
ie for timing..
240, 260, 300, *then what*..
you assume *then what* is 320, but it could JUST as easily be 301 or 500... the ECU doesn't know and can't and doesn't guess based on the previous axis points so there is only 1 option..
VH - yeh linear between cells - so in the above example if your load was 255 then thats 75% the way in... so it uses 75% of the 260 cell and 25% of the 240 cell...
BUT also verticle as well...
I have a nice excel spreadsheet that you can copy/paste fuel/timing into and then rpm/load and it will spit out the value that the ECU uses...
ie for timing..
240, 260, 300, *then what*..
you assume *then what* is 320, but it could JUST as easily be 301 or 500... the ECU doesn't know and can't and doesn't guess based on the previous axis points so there is only 1 option..
VH - yeh linear between cells - so in the above example if your load was 255 then thats 75% the way in... so it uses 75% of the 260 cell and 25% of the 240 cell...
BUT also verticle as well...
I have a nice excel spreadsheet that you can copy/paste fuel/timing into and then rpm/load and it will spit out the value that the ECU uses...
Trending Topics
I've noticed that if the cells only differ by 1* of timing that the ECU will hold the last known vale until the ECU exceeds the halfway mark between the two cells.
Example:
Cell#1
Load Cell Value: 260
RPM Cell Value: 5000
Timing: 8*
Cell#2
Load Cell Value: 260
RPM Cell Value: 5500
Timing:9*
If I did a log and the load stayed the same at, lets say 258, the timing will increase from
8* to 9* once my RPM crosses the halfway mark (5250 RPM). Does this seem right? I first assumed the timing would stay at 8* until the moment I exceed 5000 RPM but it doesn't seem to work that way.
EDIT: sorry I missed your post while I was typing Dave, that spreadsheet would be a nice thing to have
Example:
Cell#1
Load Cell Value: 260
RPM Cell Value: 5000
Timing: 8*
Cell#2
Load Cell Value: 260
RPM Cell Value: 5500
Timing:9*
If I did a log and the load stayed the same at, lets say 258, the timing will increase from
8* to 9* once my RPM crosses the halfway mark (5250 RPM). Does this seem right? I first assumed the timing would stay at 8* until the moment I exceed 5000 RPM but it doesn't seem to work that way.
EDIT: sorry I missed your post while I was typing Dave, that spreadsheet would be a nice thing to have
Last edited by Jack_of_Trades; Apr 16, 2009 at 05:05 PM.
Thread Starter
EvoM Community Team
iTrader: (15)
Joined: Sep 2006
Posts: 3,143
Likes: 7
From: Aurora, IL
I think the timing may be changing incrementally by as small of a portion that the ECU can change it or "snapping" to the closest value it can, but you can't log timing resolution higher than 1* so you aren't seeing it.
This would probably be similar to how one count of knock pulls 1/3* timing, but we can't "see" that while logging.
This would probably be similar to how one count of knock pulls 1/3* timing, but we can't "see" that while logging.




