VE Table Cracked
#41
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by Bink
NoGo - why does your formula have to synch with the VE calc in the PCM??The PCM calculation/equation is for the use of a predetermined VE table - predetermined by GM. Couldn't they have tweaked it as neccessary to work with their mass produced sensors and PCM?? In which case your values would also need to be tweaked to work with their system (as would gameovers)?? Just a thought.
joel
joel
I am wondering along the same lines. My next question is if backup operation is the same as normal VE operation.
Gameover,
How does the PCM function in back-up or P0101 mode? Are there any scalers that are applied to the VE table or is the VE table value used directly via your calculation.
I can understand the PCM using your calculation under the condition that it applies its own scaler. From your earlier statements (prior VE thread) it appears that the PCM does do this, as you illustrated below:
RPM < 4000
----------
if RPM < 2400 and MAP < 84 kPa then
Steady MAP threshold = 0.0 kPa
else
Steady MAP threshold = 0.8 kPa
If (SteadyMAP) then
Calculate MAFAirmass/SDAirmass ratio (used for Unsteady MAP operation)
Correction Airmass = MAF Airmass (filtered)
else
Correction Airmass = SD Airmass x MAF/SD Airmass Ratio (calculated during Steady MAP conditions)
In this case the VE table would act more as a ballpark value representing merely the proper slope and "shape" of the VE curve rather than the exact values during normal operation. As we have seen between your and my calculation, the difference in accuracy is 1.175.
However, it doesn't appear that the computer could properly apply fueling if it directly used the VE table during backup or P0101 operation. Perhaps it applies a fixed scaler if it didn't have a predetermined scaler stored or didn't have time determine one (ie: MAF unplugged at start-up....)
Is the P0101 or backup VE operation the same as normal operation VE determination?
Thanks
#42
FormerVendor
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 525
Likes: 0
Received 0 Likes
on
0 Posts
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
if any MAF DTC is set the VE table is used directly, there is no complex filtering or scaling of the value.
i think you need to do a detailed analysyis of the units in the equation. You have a bunch of extra unknown factors thrown into the equation like if you convert the formula to g/cyl you lose the RPM and pickup a factor of 15. Also i still can;t work out how the extra factor of 8 you get cos you use the displacement of the engine rather than the cylinder volume... Combine that with the factor of 17.883 you have and maybe 17.833/15 is the missing 1.18 difference in the calcs??
I don't know for sure cos i still can't work out the units of that equation sorry... i have tried for a while now
i think you need to do a detailed analysyis of the units in the equation. You have a bunch of extra unknown factors thrown into the equation like if you convert the formula to g/cyl you lose the RPM and pickup a factor of 15. Also i still can;t work out how the extra factor of 8 you get cos you use the displacement of the engine rather than the cylinder volume... Combine that with the factor of 17.883 you have and maybe 17.833/15 is the missing 1.18 difference in the calcs??
I don't know for sure cos i still can't work out the units of that equation sorry... i have tried for a while now
![Bang Head](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_banghead.gif)
#43
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
I get the units to work out if I divide out R (which essentially makes it your equation), but other than that.........
Your formula definiantly comes out sexier on paper, but has some issues matching the real world data.
Mine has some issues on paper, but matches the real world data very well.
I guess the true test is going to be the "road" test. I will convert another open loop car to MAFless using my formula and this time and see how the actual a/f compares to the target a/f from the lamba table (open loop multiplier table). If it is dead on, then you'll have to get the hex-editor warmed up. If it is about 15% off, then obviously yours is correct.
Your formula definiantly comes out sexier on paper, but has some issues matching the real world data.
Mine has some issues on paper, but matches the real world data very well.
I guess the true test is going to be the "road" test. I will convert another open loop car to MAFless using my formula and this time and see how the actual a/f compares to the target a/f from the lamba table (open loop multiplier table). If it is dead on, then you'll have to get the hex-editor warmed up. If it is about 15% off, then obviously yours is correct.
#45
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by gameover
The values for the VE table you are using are NOT the actual values stored in the PCM. The equation the PCM uses to work out CylAir is exactly as i have written it. Nowhere in the equation does it reference displacement. so the VE value must contain cylinder volume information.
The PCM unit scaling factors are how you store decimal numbers in binary, otherwise everything is integers.
The VE table is 5120 * V * M / R or the Effective Cylinder Filling Volume x 5120 x 28.96 / 8.3145 and amazingly 5120 x 28.96 / 8.3145 = 17833. The 5120 factor here is to increase the resolution of the stored number.
now look at NoGo's equation and check out the value of 5.12*28.96/8.3145, where 5.12 is the factor between the VE values you are using and the actual values in the PCM... that number looks familar right![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
100% VE for a 5.7L would be 0.708*5120*28.96/8.3145 = 12626 (or 2466 in your numbers)
Hope that helps...
The PCM unit scaling factors are how you store decimal numbers in binary, otherwise everything is integers.
The VE table is 5120 * V * M / R or the Effective Cylinder Filling Volume x 5120 x 28.96 / 8.3145 and amazingly 5120 x 28.96 / 8.3145 = 17833. The 5120 factor here is to increase the resolution of the stored number.
now look at NoGo's equation and check out the value of 5.12*28.96/8.3145, where 5.12 is the factor between the VE values you are using and the actual values in the PCM... that number looks familar right
![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
100% VE for a 5.7L would be 0.708*5120*28.96/8.3145 = 12626 (or 2466 in your numbers)
Hope that helps...
Using the above formula, 100%VE for a 5.3L would be (0.6625)*17833 = 11814 (or 2307 in Edit table numbers). I am looking at a stock 5.3L VE table that has 2162 as its maximum value. This translates to 93.7%VE! However, if you use 2903 as the 100% value, you get 74.6%VE. This is much more in line for a stock engine.
Similar comparison for 6.0L engine: formula above gives 100%VE = (0.75)*17833 = 13375 (or 2612 in Edit values). Max value on stock 6.0L VE table is 2679. This gives %VE = 102.5%! Not possible on a stock engine. But 2679/2903 = 92.2%VE (or 2679/3000 = 89.3%VE). Both a little high, but believable.
I think we are still missing something on the displacement and RPMs. You can get grams/cyl from MAF and RPM (using measurement from MAF) or from %VE, MAP, IAT, RPM and displacement (from Ideal Gas Law). But, this formula
{g/cyl x 8192 = VEvalue * MAP * 51.2 / (IAT * 32)}
seems to only use VE, MAP and IAT. I don't see how you can get to g/cyl from just VE, MAP and IAT. There has to be some form of RPM and displacement figured in there somewhere.
#46
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by Billiumss
Um, my brain hurts!!!!!
Hey Kevin, any chance I could come up to your shop for a day and teach me about tuning and LS1 Edit? I'll buy you lunch! lol
PM me if possible...
Bill
Hey Kevin, any chance I could come up to your shop for a day and teach me about tuning and LS1 Edit? I'll buy you lunch! lol
PM me if possible...
Bill
Let me know if he accepts. If you'll let me attend the mini seminar I'll buy lunch and dinner!!
![Grin](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_grin.gif)
I'm grinning But not kidding.
![Grin](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_grin.gif)
joel
#47
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by deezel
). But, this formula
{g/cyl x 8192 = VEvalue * MAP * 51.2 / (IAT * 32)}
seems to only use VE, MAP and IAT. I don't see how you can get to g/cyl from just VE, MAP and IAT. There has to be some form of RPM and displacement figured in there somewhere.
{g/cyl x 8192 = VEvalue * MAP * 51.2 / (IAT * 32)}
seems to only use VE, MAP and IAT. I don't see how you can get to g/cyl from just VE, MAP and IAT. There has to be some form of RPM and displacement figured in there somewhere.
Is the RPM and displacement incorporated in the VE Value - in the above equation?
joel
#48
FormerVendor
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 525
Likes: 0
Received 0 Likes
on
0 Posts
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by Bink
deezel-
Is the RPM and displacement incorporated in the VE Value - in the above equation?
joel
Is the RPM and displacement incorporated in the VE Value - in the above equation?
joel
Lets talk about the cranking VE table for a second and the PCM calculation for that.
The cranking airmass calc in the PCM is:
g/cyl = VEvalue * V * MAP / T
Where V is the Cylinder Volume of 0.708L.
Now this VE value is more like a true VE% because it doesn't include the Cylinder Volume. ie. it is the proportion of the cylinder volume. For the Main VE table the volume seems to be included in the value. Inconsistent and strange indeed...
#49
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by Bink
deezel-
Is the RPM and displacement incorporated in the VE Value - in the above equation?
joel
Is the RPM and displacement incorporated in the VE Value - in the above equation?
joel
The simplest form of this would be Table VE = %VE * RPM * Cylinder Volume.
This matches NoGo's equation.
Using NoGo's first data point again (5600 rpms) and the %VE calculated from the MAF reading (81.7%) we can test it.
Actual Table VE = 2349 and cylinder volume = 0.708L
Calc Table VE = 0.817 * 5600 * 0.708 = 3239 ... doesn't match.
I need to do some more math...
#50
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by gameover
that's the point, the VE table is not VE at all. You don't need RPM to calculate g/cyl you need it to convert from g/cyl to g/sec.
Lets talk about the cranking VE table for a second and the PCM calculation for that.
The cranking airmass calc in the PCM is:
g/cyl = VEvalue * V * MAP / T
Where V is the Cylinder Volume of 0.708L.
Now this VE value is more like a true VE% because it doesn't include the Cylinder Volume. ie. it is the proportion of the cylinder volume. For the Main VE table the volume seems to be included in the value. Inconsistent and strange indeed...
Lets talk about the cranking VE table for a second and the PCM calculation for that.
The cranking airmass calc in the PCM is:
g/cyl = VEvalue * V * MAP / T
Where V is the Cylinder Volume of 0.708L.
Now this VE value is more like a true VE% because it doesn't include the Cylinder Volume. ie. it is the proportion of the cylinder volume. For the Main VE table the volume seems to be included in the value. Inconsistent and strange indeed...
Thanks for the cranking airmass equation gameover.
#51
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by deezel
Ok, I agree that RPM is not needed. I have convinced myself of that with pencil and paper. Still trying to put the Main VE table in terms of %VE, cylinder volume, and some constant...
Thanks for the cranking airmass equation gameover.
Thanks for the cranking airmass equation gameover.
Gameover's PCM formula can't give us the VE values referenced by a predetermined table (at best it should only be accurate to 5%, 5kPa intervals -with the VE value known). But knowing how the VE values are used, by the PCM, we can properly utilise NoGo's VE equation.
Does this make sense?? I think we're trying to compare the base equation (NoGo's)to the functional equivalent (gameovers).
I'm not addressing this to NoGo also because I've already made too many stupid statements!!
![Grin](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_grin.gif)
Thoughts??? joel
#52
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Bink - yeah, I tried thinking about it that way, too. "Since the LUT uses RPM and MAP, maybe thats where the RPM comes from..." But, that doesn't explain where the RPM's go in the math. I agree with what gameover said - RPM is only needed to convert g/s to g/cyl.
If you take NoGo's equation: g/sec = VE*MAP*DISPL*RPM/IAT
and convert to g/cyl: g/cyl = (VE*MAP*DISPL*RPM/IAT) * (15/RPM)
= 15*VE*MAP*DISPL/IAT
you see the RPM's cancel out.
I'm still thinking about how the cylinder volume figures into the VE Table value...
If you take NoGo's equation: g/sec = VE*MAP*DISPL*RPM/IAT
and convert to g/cyl: g/cyl = (VE*MAP*DISPL*RPM/IAT) * (15/RPM)
= 15*VE*MAP*DISPL/IAT
you see the RPM's cancel out.
I'm still thinking about how the cylinder volume figures into the VE Table value...
#53
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by deezel
Bink - yeah, I tried thinking about it that way, too. "Since the LUT uses RPM and MAP, maybe thats where the RPM comes from..." But, that doesn't explain where the RPM's go in the math. I agree with what gameover said - RPM is only needed to convert g/s to g/cyl.
If you take NoGo's equation: g/sec = VE*MAP*DISPL*RPM/IAT
and convert to g/cyl: g/cyl = (VE*MAP*DISPL*RPM/IAT) * (15/RPM)
= 15*VE*MAP*DISPL/IAT
you see the RPM's cancel out.
I'm still thinking about how the cylinder volume figures into the VE Table value...
If you take NoGo's equation: g/sec = VE*MAP*DISPL*RPM/IAT
and convert to g/cyl: g/cyl = (VE*MAP*DISPL*RPM/IAT) * (15/RPM)
= 15*VE*MAP*DISPL/IAT
you see the RPM's cancel out.
I'm still thinking about how the cylinder volume figures into the VE Table value...
VE = (g/cyl) / (15*MAP*DISPL/IAT) = (g/cyl * IAT) / (15*MAP*DISPL)
We still need RPM to determine g/cyl...right?? This equation won't work with out an RPM reference.
joel
#54
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Originally Posted by Bink
Okay, but we still need RPM to determine g/cyl. How else would we do that??
VE = (g/cyl) / (15*MAP*DISPL/IAT) = (g/cyl * IAT) / (15*MAP*DISPL)
We still need RPM to determine g/cyl...right?? This equation won't work with out an RPM reference.
joel
VE = (g/cyl) / (15*MAP*DISPL/IAT) = (g/cyl * IAT) / (15*MAP*DISPL)
We still need RPM to determine g/cyl...right?? This equation won't work with out an RPM reference.
joel
Now we are getting close to an equation that resembles gameover's PCM calculation:
{g/cyl x 8192 = VEvalue * MAP * 51.2 / (IAT * 32)}
or, g/cyl = (TableVE * 51.2 / (8192 * 32)) * MAP / IAT
............ = (0.0001953 * TableVE) * MAP / IAT
I think units of MAP and IAT are kPa and K, respectively...
Gameover says cylinder volume is part of TableVE, so lets rearrange our equation (based on NoGo's calculation) above to this:
(g/cyl) = (nogoVE * 15 * MAP * DISPL) / (IAT)
..........= (15*(nogoVE * DISPL) * MAP) / IAT
So it looks like (0.0001953 * TableVE) from gameover's formula equals (15*nogoVE*DISPL) from our formula with possibly some units conversion factors needed....
#56
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
Ok, a little more thinking about this...
NoGo's massflow calc uses EditVE.
gameover says that TableVE (which is 5.12 * EditVE) contains displacement, so we could write it as
TableVE = %VE * DISPL * C1
From the PCM equation: g/cyl x 8192 = TableVE * MAP * 51.2 / (IAT * 32)
we can guess that the units on TableVE are (g/cyl)(K)/(kPa).
And since cylinder volume is L/cyl we can guess the units on the constant C1 above to be (g * K)/(L * kPa) = (g * K)/(J)
This is almost the units of 1/R, the gas constant. All we need is another constant, the molar mass of air M (28.96 g/mol) to have R's units of J/(K * mol).
So, it looks like TableVE = (%VE * DISPL) * (C2 * M / R). If we know a few good data points for TableVE vs. %VE, we can determine the constant C2...
Using NoGo's data again - (5600 RPM data point)
EditVE = 2349, MAP = 100kPa, IAT = 300K, MAFcylair = .6696 g/cyl (~81%VE), TableVE = (5.12 * EditVE) = 12027
solving for C2
12027 = (81%VE)*(.708 L) * (C2) * (28.96 g/mol) / (8.314 J/K mol)
C2 = {(12027 g*K/(cyl*kPa)) * (8.314 J/K mol)}/{(28.96 g/mol) * (.708 L/cyl) * (.81)} = 6020.75 (unitless)
So,
TableVE = 6020.75 * (%VE * DISPL * M) / R and,
EditVE = 1175.9 * (%VE * DISPL * M) / R
Both TableVE and EditVE have units of (L*g*K)/(cyl*J), and you can see the displacement in there (L/cyl).
I haven't rigorously tested these values... just extracting the units from the math we have been talking about.
cheers,
deezel
NoGo's massflow calc uses EditVE.
gameover says that TableVE (which is 5.12 * EditVE) contains displacement, so we could write it as
TableVE = %VE * DISPL * C1
From the PCM equation: g/cyl x 8192 = TableVE * MAP * 51.2 / (IAT * 32)
we can guess that the units on TableVE are (g/cyl)(K)/(kPa).
And since cylinder volume is L/cyl we can guess the units on the constant C1 above to be (g * K)/(L * kPa) = (g * K)/(J)
This is almost the units of 1/R, the gas constant. All we need is another constant, the molar mass of air M (28.96 g/mol) to have R's units of J/(K * mol).
So, it looks like TableVE = (%VE * DISPL) * (C2 * M / R). If we know a few good data points for TableVE vs. %VE, we can determine the constant C2...
Using NoGo's data again - (5600 RPM data point)
EditVE = 2349, MAP = 100kPa, IAT = 300K, MAFcylair = .6696 g/cyl (~81%VE), TableVE = (5.12 * EditVE) = 12027
solving for C2
12027 = (81%VE)*(.708 L) * (C2) * (28.96 g/mol) / (8.314 J/K mol)
C2 = {(12027 g*K/(cyl*kPa)) * (8.314 J/K mol)}/{(28.96 g/mol) * (.708 L/cyl) * (.81)} = 6020.75 (unitless)
So,
TableVE = 6020.75 * (%VE * DISPL * M) / R and,
EditVE = 1175.9 * (%VE * DISPL * M) / R
Both TableVE and EditVE have units of (L*g*K)/(cyl*J), and you can see the displacement in there (L/cyl).
I haven't rigorously tested these values... just extracting the units from the math we have been talking about.
cheers,
deezel
#57
![Default](https://ls1tech.com/forums/images/icons/icon1.gif)
More math..
EditVE = 1175.9 * DISPL * M/R * %VE = 4096 * DISPL * %VE
Now that looks like a hex-scaled PCM calculation.![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
The above equation for EditVE was derived from gameover's calculation from the PCM code. Previously, I determined from NoGo's massflow equation that EditVE = %VE * 2902. If you take the newly derived equation and figure in cylinder volume, you get the same result.
EditVE = 4096 * (0.708) * (%VE) = 2900 * %VE
So, I think I have shown (in a long roundabout way) that NoGo's massflow calculation (based on the Ideal gas law) is consistent with gameover's PCM calculation.![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
This means that:
EditVE = 4096 * (DISPL) * (%VE)
TableVE = 5.12 * EditVE = 20971.5 * (DISPL) * (%VE)
And that the 100% EditVE value for a given engine is 4096 * DISPL (in L/cyl).
EditVE = 1175.9 * DISPL * M/R * %VE = 4096 * DISPL * %VE
Now that looks like a hex-scaled PCM calculation.
![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
The above equation for EditVE was derived from gameover's calculation from the PCM code. Previously, I determined from NoGo's massflow equation that EditVE = %VE * 2902. If you take the newly derived equation and figure in cylinder volume, you get the same result.
EditVE = 4096 * (0.708) * (%VE) = 2900 * %VE
So, I think I have shown (in a long roundabout way) that NoGo's massflow calculation (based on the Ideal gas law) is consistent with gameover's PCM calculation.
![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)
This means that:
EditVE = 4096 * (DISPL) * (%VE)
TableVE = 5.12 * EditVE = 20971.5 * (DISPL) * (%VE)
And that the 100% EditVE value for a given engine is 4096 * DISPL (in L/cyl).
![Happy](https://ls1tech.com/forums/images/smilies/LS1Tech/gr_stretch.gif)