PDA

View Full Version : Histogram Plot



Black02SS
May 12th, 2005, 12:11 AM
I have a question and maybe someone can help me on it. I have used another scanner and switched back to live. With the other program I was using, the histogram plots cells different then how live does. Example. If I idle at 850, the other program plots the data in the histogram in the 800 block, where as live does it in the 1200 block... One does the average for 800 by taking 600-1000 while live does the averages for 800 from 800-1200.

Why the difference between the two programs and what is the reasoning? Just curious.

Blacky
May 12th, 2005, 11:24 AM
Using the label columns as the breakpoints (as EFILive does) means EFILive's Scan Tool tables match column for column and row for row with the map data from the PCM.

Example (fictional) table, lookup temp based on RPM


Index 0 1 2 3 4 5 6
RPM 400 800 1200 1600 2000 2400 2800
DegC 10 20 30 40 50 60 70

Say the rpm was 1100, the PCM will return the "looked up and interpolated" DegC value as follows:

Index = Trunc((1100-400)/400) = 1.0
Interp = Frac((1100-400)/400) = 0.75
Temp = DegC[Index]+((DegC[Index+1]-DegC[Index])*Interp) = 20+((30-20)*0.75) = 27.5

Because the interpolation always occurs based on Index and Index+1 it makes sense to log data in the maps the way EFILive does. EFILive is basically doing a reverse interpolation.

For the "average" approach to be correct, the PCM would need to use a more complicated interpolation function. One that could figure out the average value between the column breaks. The PCM does not do that, so plotting maps (or histograms) that way is not as accurate.

Regards
Paul

P.S. It is the interpolation performed by the Motorola CPU that allows the PCM to store lookup data as discrete data points, yet still calculate accurate values in between the calibrated data points. It also explains why EFILive's 2-bar solution can be implemented accurately without extending the VE table.

GMPX
May 12th, 2005, 12:31 PM
P.S. It is the interpolation performed by the Motorola CPU that allows the PCM to store lookup data as discrete data points, yet still calculate accurate values in between the calibrated data points. It also explains why EFILive's 2-bar solution can be implemented accurately without extending the VE table.

From a Motorola data book -
Table lookup and Interpolate commands -
The table lookup instruction requires that only a sample of data points be stored, reducing memory requirements. The TBL (Table Lookup) instruction recovers intermediate values using linear interpolation.

Oh, there is 6 pages of a mathematical nightmare to go along with this, but I'll spare you that.......I'm still on page 3 :lol:

Cheers,
Ross

Black02SS
May 12th, 2005, 01:01 PM
Thanks for the reply and explanation, I wasnt doubting the program I just wanted to know what the differences were.

joecar
May 13th, 2005, 08:50 AM
...Oh, there is 6 pages of a mathematical nightmare to go along with this, but I'll spare you that.......I'm still on page 3 :lol:
Cheers,
Ross

Ross,
What, do you have trouble falling asleep at night...? :D :lol:
Is this documentation online somewhere....?
If so, is there are link to it...?
(I too have trouble sleeping at night :shock:)
Thanks,
Joe
8)

bink
May 13th, 2005, 05:22 PM
Example (fictional) table, lookup temp based on RPM
Code:

Index 0 1 2 3 4 5 6
RPM 400 800 1200 1600 2000 2400 2800
DegC 10 20 30 40 50 60 70


Say the rpm was 1100, the PCM will return the "looked up and interpolated" DegC value as follows:

Index = Trunc((1100-400)/400) = 1.0
Interp = Frac((1100-400)/400) = 0.75
Temp = DegC[Index]+((DegC[Index+1]-DegC[Index])*Interp) = 20+((30-20)*0.75) = 27.5

Because the interpolation always occurs based on Index and Index+1 it makes sense to log data in the maps the way EFILive does. EFILive is basically doing a reverse interpolation.

For the "average" approach to be correct, the PCM would need to use a more complicated interpolation function. One that could figure out the average value between the column breaks. The PCM does not do that, so plotting maps (or histograms) that way is not as accurate.

Regards
Paul


Thanks. For us non-techies/non-IT types it's nice to see how this stuff actually works!! Big Thumbs Up!

Cheers,
joel

Blacky
May 26th, 2005, 11:43 PM
Ok, time to eat humble pie. :oops: :oops:

I've been bashed over the head for a few days by Delco and GMPX. And I can finally see the light. I was wrong, it is better to log using the average column label approach. (Yes the other program you had been using was right :shock: Hey I can admit when I'm wrong)

So the next release of EFILive will have the maps set up to use the column/row labels as the center point of the data plotted in that col/row.

Reagrds
Paul

joecar
May 27th, 2005, 08:48 AM
Paul,

You may have to include some explantion of this in the help PDF.

Joe

Blacky
May 27th, 2005, 11:30 AM
Paul,

You may have to include some explantion of this in the help PDF.

Joe

Yes I will, but for now:

This is how it currently works, with say MAP labels like this:
15,20,25,30,35,40,...,105

column 1, with the label 15kPa would log all values from 0 to 15.
column 2, with the label 20kPa would log all values from 15.1 to 20.
column 3, with the label 25kPa would log all values from 21.1 to 25.
etc

It will work like this in V7.2.3:
column 1, with the label 15kPa would log all values from 0 to 17.5.
column 2, with the label 20kPa would log all values from 17.6 to 22.5.
column 3, with the label 25kPa would log all values from 22.6 to 27.5.
etc

It's a subtle difference, yet one that was causing some "tail chasing" as Delco put it, when trying to nail down some tunes.

Regards
Paul

Black02SS
May 27th, 2005, 12:41 PM
Would this work the same for RPM?

It will work like this in V7.2.3:
row 1, with the label 400rpms would log all values from 0 to 600.
row 2, with the label 800rpms would log all values from 601 to 1000.
row 3, with the label 1200rpms would log all values from 1001-1400.
etc

Blacky
May 27th, 2005, 02:15 PM
Yes, exactly.

Black02SS
May 27th, 2005, 03:12 PM
Great, thanks for the update!

joecar
May 27th, 2005, 07:46 PM
So, this means that the column/row value is the centre value, right...?

Blacky
May 27th, 2005, 11:43 PM
So, this means that the column/row value is the centre value, right...?

Yes