I've got an equation working to calculate a MAF table from my WBO2 data, it works really really really well...I can put just about anything in the table that'll run, take the car for a drive, log the drive, copy and paste directly into the MAF table...interpolate the frequencies below idle and above the rev limiter (to make it look pretty I guess) then I can go log %error, and find I'm usually within 1-2%.
The equation I'm logging is [USER.9004]*[PID.6200]*([PID.6210.G/SEC]/1000)*([PID.12]/2)*8/60 ...USER.9004 is my Wideband...which I actually log in Lambda and then convert to AFR based on the alcohol % as mass requires AFR to calculate...
Anyways, PID.6200 is pulsewidth average from bank 1 (bank 2 is the same as I'm in open loop with LTFT zero'd). PID.6210 is injector flowrate, and PID.12 is RPM...so my equation is airmass in g/sec = afr * pulsewidth in milliseconds * ifr in g/sec / 1000 * (rpm /2) * 8 / 60. The trick I've found is to setup the histogram to log the MAF cells you want, and then frequencies a little below and a little above the actual cells...this means the data you get in the cells that goes into the tune is averaged closer to that actual frequency...so if for example I'm getting a lot of data at 3525hz, it wont affect my 3450 or 3600 cells...it'll go into the cells in the middle...I'll only get data in the 3450 cell if I'm actually between 3425 and 3475 hz, and only in the 3600 cell between 3575 and 3625hz...it makes the histogram look huge, but it seems to be better about not letting too much data between cells skew the averages.
I'm doing this in my 2010 Camaro, which has a fuel pressure sensor...so my IFR is calculated realtime based on that pressure and the MAP sensor reading...I don't know if this will work as well in a car without a fuel pressure sensor. I also don't think this will work with a gen 3 computer...the Gen 4 computers (and hopefully Gen 5 too) report theoretical pulsewidth, not actual...so they actually subtract the dead time/offset from the actual pulsewidth before reporting it...so you can get an accurate calculation of the mass of fuel injected from the scan tool data...to do it on a gen 3, you'd need to output the data somewhere and then subtract dead time from actual to get theoretical...then I guess it should work.
That said, I had THOUGHT, that I could derive GMVE numbers from this same air mass equation by dividing by MAP, and multiplying by cylinder air charge temp in Kelvin (which is calculated by the PCM before the scan tool from the IAT/CTS bias I believe) and 8 (number of cylinders)...this seems to result in some really screwed up VE numbers though...like well over 8000 at 6400 RPM in my heads/cam LS3...very very unrealistic numbers that I can't even try to use.
Can anyone help me with the units for GMVE...I guess I don't understand them as well as I'd hoped to, or as well as I need to.