PDA

View Full Version : Inject-trying to adj small pulse adj and small threshold but I save, numbers change



Bill00Form
May 18th, 2012, 07:14 AM
Every time I change them, save the tune file, close and open the tune file, they open as different numbers? Has anyone else run into this? (2000 formula)

joecar
May 18th, 2012, 07:28 AM
The values you entered are being rounded to the closest representable value...

more info:
Fixed point quantization (rounding) in tune file:
showthread.php?p=33495 (http://forum.efilive.com/showthread.php?p=33495)
showthread.php?t=5856 (http://forum.efilive.com/showthread.php?t=5856&highlight=quantization)

Bill00Form
May 18th, 2012, 08:06 AM
so it went from the first column (what I keyed in) to the second after I closed and reopenned to). Should I leave the stock info in? This was the small pulse adjustment. Thanks

0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.140673 0.136778
0.135456 0.136778
0.130239 0.136778
0.125022 0.12158
0.119805 0.12158
0.114588 0.12158
0.109371 0.106383
0.104154 0.106383
0.098937 0.106383
0.09372 0.091185
0.088503 0.091185
0.083286 0.075988
0.07807 0.075988
0.072853 0.075988
0.067636 0.06079
0.062419 0.06079
0.057202 0.06079
0.051985 0.045593
0.046768 0.045593
0.041551 0.045593
0.036334 0.030395
0.031117 0.030395
0.0259 0.030395
0.020683 0.015198
0.015466 0.015198
0.010249 0.015198
0.005033 0

joecar
May 18th, 2012, 08:24 AM
The values in the second column are the closest values with which the PCM can represent the values in the first column...

the PCM uses a finite number of bits to represent a fixed point floating point number, so the representable values have specific discreet values;


for example, say we have 4 bit fixed floating point:
0.1 represents 1/2
0.01 represents 1/4
0.001 represents 1/8
0.0001 represents 1/16
(i.e. each position divides by 2)

so examples of some fractional values:
0.1000 = 1/2 = 0.5
0.1001 = 1/2 + 1/16 = 9/16 = 0.5625
0.1010 = 1/2 + 1/8 = 5/8 = 0.625
0.1011 = 1/2 + 1/8 + 1/16 = 11/16 = 0.6875
0.1100 = 1/2 + 1/4 = 3/4 = 0.75

so how do you represent 0.7...?

0.1011 is too small (0.6875) and 0.1100 is too big (0.75)... but 0.6875 is the closest representable value to 0.7.


What you're seeing with the SPA and ST tables is the same as my example with some scaling factor multiplied.

Bill00Form
May 19th, 2012, 11:21 PM
Ok, sounds reasonable but I'm not an engineer or mathematician. At first it didn't make sense that the stock curve could be so much different but I didn't notice that the spread was so different. The stock table goes from .577xx to zero where as the numbers I put in go from .141xx to zero. Does that sound right? These are ford SVO 42 lb injectors.