Notices
ECU Flash

How does the ECU interpret Beyond Tables?

Thread Tools
 
Search this Thread
 
Old Apr 15, 2009 | 05:36 PM
  #1  
fostytou's Avatar
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
Code:
(x + 164 ) - x = y
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
Code:
 (x + 141.83) + x/6
...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!

Last edited by fostytou; Apr 15, 2009 at 05:45 PM.
Reply
Old Apr 15, 2009 | 06:55 PM
  #2  
l2r99gst's Avatar
Evolved Member
iTrader: (2)
 
Joined: Mar 2004
Posts: 3,499
Likes: 4
From: CA
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.
Reply
Old Apr 15, 2009 | 07:13 PM
  #3  
tephra's Avatar
EvoM Guru
15 Year Member
iTrader: (6)
 
Joined: Feb 2007
Posts: 9,486
Likes: 67
From: Melbourne, Australia
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.
Reply
Old Apr 15, 2009 | 07:36 PM
  #4  
Jack_of_Trades's Avatar
Evolved Member
iTrader: (17)
 
Joined: Jun 2007
Posts: 3,523
Likes: 2
From: Opelika,AL
Yeah, the tables are modal. They don't change unless a new value is introduced.
Reply
Old Apr 16, 2009 | 08:04 AM
  #5  
voidhawk's Avatar
Evolved Member
iTrader: (20)
 
Joined: Oct 2004
Posts: 891
Likes: 0
From: Sacramento
this is very interesting ... does that mean the ECU also uses straight line (linear) interpolation between cells?
Reply
Old Apr 16, 2009 | 08:15 AM
  #6  
jcsbanks's Avatar
Evolved Member
 
Joined: May 2006
Posts: 2,399
Likes: 6
From: UK
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.
Reply
Old Apr 16, 2009 | 04:38 PM
  #7  
tephra's Avatar
EvoM Guru
15 Year Member
iTrader: (6)
 
Joined: Feb 2007
Posts: 9,486
Likes: 67
From: Melbourne, Australia
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...
Reply
Old Apr 16, 2009 | 05:01 PM
  #8  
Jack_of_Trades's Avatar
Evolved Member
iTrader: (17)
 
Joined: Jun 2007
Posts: 3,523
Likes: 2
From: Opelika,AL
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

Last edited by Jack_of_Trades; Apr 16, 2009 at 05:05 PM.
Reply
Old Apr 16, 2009 | 05:42 PM
  #9  
tephra's Avatar
EvoM Guru
15 Year Member
iTrader: (6)
 
Joined: Feb 2007
Posts: 9,486
Likes: 67
From: Melbourne, Australia
did you mean "the moment I exceed 5500"?
Reply
Old Apr 17, 2009 | 08:32 AM
  #10  
fostytou's Avatar
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.
Reply
Old Apr 17, 2009 | 10:57 AM
  #11  
Jack_of_Trades's Avatar
Evolved Member
iTrader: (17)
 
Joined: Jun 2007
Posts: 3,523
Likes: 2
From: Opelika,AL
Originally Posted by tephra
did you mean "the moment I exceed 5500"?
yeah,lol. typo.
Reply
Old Apr 17, 2009 | 05:43 PM
  #12  
tephra's Avatar
EvoM Guru
15 Year Member
iTrader: (6)
 
Joined: Feb 2007
Posts: 9,486
Likes: 67
From: Melbourne, Australia
no it interpolates.

so if you had 8* at 5000 and 9* at 5500, then basically as soon as you pass 5250 it will flick to 9*
Reply
Old Apr 17, 2009 | 06:06 PM
  #13  
Jack_of_Trades's Avatar
Evolved Member
iTrader: (17)
 
Joined: Jun 2007
Posts: 3,523
Likes: 2
From: Opelika,AL
Yeah, thats what I was seeing. Just wanted to be sure I was understanding how the ECU was determining the next value.
Reply
Old Apr 17, 2009 | 06:27 PM
  #14  
Mattjin's Avatar
Evolved Member
 
Joined: Apr 2008
Posts: 604
Likes: 0
From: Sydney, Australia
I tend to agree with Fostytou, there is most likely a 2-byte Timing to be found, as there was with the IPW. I am also willing to bet it is in .33 degrees.
Reply
Old Apr 17, 2009 | 11:56 PM
  #15  
tephra's Avatar
EvoM Guru
15 Year Member
iTrader: (6)
 
Joined: Feb 2007
Posts: 9,486
Likes: 67
From: Melbourne, Australia
yup probably

you *should* be able to find it from the KnockSum routines...
Reply




All times are GMT -7. The time now is 11:36 AM.