and then E40, E38, E67 OS's after that...
This is quoted from this thread: Desired-Airflow-Question-not-your-normal-question
Also note this:
Ideal Gas Law: P.V = n.R.T = (m/M).R.T
rearranging: m.(T/P) = V.(M/R)
( note that the left side has units g*K/kPa )
i.e. normalized cylinder airmass is proportional to cylinder volume (since M and R are constants).
rearranging further: (M/R) = (m/V).(T/P)
note that (m/V) is density of air...
so then the constant (M/R) is the normalized density of air [ i.e. normalized for absolute temperature and absolute pressure ].
Last edited by joecar; August 19th, 2015 at 11:32 AM.
Good information guys! Thanks for taking the time to put this together.
We have good reasons suspect the following are identical:
MAF1 = {GM.VETABLE_DMA.VE}/{CALC.DAT.K}*{SAE.MAP.kPa}*{SAE.RPM}/15
MAF2 = {GM.DYNCYLAIR_DMA}*{SAE.RPM}/15
MAF3 = {GM.DYNAIR}
( MAF1, MAF2, MAF3 have units [g/s] )
( the PCM is probably factoring in temperature correction into the DYNCYLAIR and DYNAIR pids )
Note: MAF1 and MAF2 above are specific to 8 cylinders; their more general form is (thanks Marcin (post #26 below)):
MAF1 = {GM.VETABLE_DMA.VE}/{CALC.DAT.K}*{SAE.MAP.kPa}*{SAE.RPM}/120*NUMCYL
MAF2 = {GM.DYNCYLAIR_DMA}*{SAE.RPM}/120*NUMCYL
( the blue factor is per cylinder airmass )
Last edited by joecar; August 19th, 2015 at 10:57 AM. Reason: Generalized MAF2
joecar, MAF2 assumes 8 cylinders. do we want to generalize this to CYLAIR*NUMCYL*RPM/(2*60)?
Serial wideband:
anywhere that a BEN is required, use this as the new BEN: WO2BEN = {GM.EQIVRATIO}*{EXT.WO2LAM1}
(i.e. change any BEN maps to use this and save with new filename).
Analog wideband:
you have to modify the WO2BEN pid to use the analog wideband lambda, e.g. WO2BEN = {GM.EQIVRATIO}*{CALC.AFR_LC11}/14.7
(i.e. change any BEN maps to use this and save with new filename).
Shawn's Calc.VET Tutorial and Calc.MAFT Tutorial contain calc_pids.txt files that define WO2BEN for serial wideband
(and they also show how to define WO2BEN if you're using analog wideband).
Explanation/comparison of various tuning procedures:
AutoVE:
- disable CL/LTFT,
- disable MAF (make sure MAF DTC is present),
- set PE safely rich to protect motor,
- capture log,
- create a WO2BEN map that matches B0101 (hint: copy the VE table, then in the map row/col properties click Paste Label),
- apply transient filter to map,
- paste-multiply map to B0101.
Note: when MAF DTC is present, spark timing defaults to LO spark table (GM OS only)(COS continues using HO/LO adaptive spark timing).
AutoMAF:
- disable CL/LTFT,
- enable MAF (make sure DTC goes away),
- set B0120 to zero to disable VE,
- set PE safely rich to protect motor,
- capture log,
- create a WO2BEN map that matches B5001 (hint: copy the MAF table, then in the map row/col properties click Paste Label),
- apply transient filter to map,
- paste-multiply map to B5001.
Calc.MAFT:
- same as AutoVE (corrects VE) but also simultaneously calculates MAF (from corrected VE),
- can be done with or without CL/LTFT (edit calc_pids.txt to use the appropriate BEN pid),
- create a map for CALC.MAFT and paste this into B5001.
Calc.VET:
- same as AutoMAF (corrects MAF) but also simultaneously calculates VE (from corrected MAF),
- can be done with or without CL/LTFT (edit calc_pids.txt to use the appropriate BEN pid),
- create a map for CALC.VET and paste this into B0101.
Note:
when you do Calc.VET or Calc.MAFT be aware that positive trims are added during PE,
this has the effect of making the wideband correction ineffective,
so you may want to add the trims to the table that is being corrected (only for PE)
--> I'm going to make a calc pid which will add positive trims if I can figure out how to detect PE in the log.
Shortcut: while doing AutoVE, log GM.DYNAIR, and make a B5001-like map of GM.DYNAIR, multiply it by WO2BEN, apply the transient filter, paste into B5001 as an initial MAF estimate (but note that Calc.MAFT and Calc.VET will do a better job).
Relationships:
- AutoMAF is a special case of Calc.VET.
- AutoVE is a special case of Calc.MAFT.
Note: Calc.VET and Calc.MAFT can be done with CL/LTFT disabled (in which case you use strictly WO2BEN).
SELBEN:
SELBEN is a combination of LTFTBEN and WO2BEN, but you can restrict it to only WO2BEN as long as you disable CL/LTFT.
WO2BEN:
WO2BEN is the wideband BEN, you use this with disabled CL/LTFT.
Concept/Intent (what they do):
- Calc.VET corrects MAF and calculates VE from corrected MAF (with VE disabled).
- Calc.MAFT corrects VE and calculates MAF from corrected VE (with MAF disabled).
Note:
- the thing being calculated has to be disabled,
- the thing being corrected has to be enabled.
The word "corrects" indicates "corrected by multiplying by BEN factor".
The word "calculates" indicates "calculated and pasted in".
Calc.MAFT is aka Reverse Calc.VET (you can see this when you compare the pids CALC.VEN and CALC.MAFN).
Pay careful attention to:
- is PE safely rich to protect motor,
- is PE enabled correctly to activate at significant load,
- is CL/LTFT enabled/disabled,
- is MAF enabled/disabled,
- is VE enabled/disabled,
- what pid is being used for BEN,
- do units match between scantool and tunetool,
- was the transient filter applied,
- avoid using GM.AFR for anything other than display,
- keep pid channel count at 24 or less (to maintain fastest frame sampling rate).
Last edited by joecar; July 23rd, 2015 at 10:10 AM. Reason: updated calc_pids.txt
I am reviewing, correcting my own misunderstandings and re-learning a lot of the concepts about tuning using EFILive. I've been involved with EFILive on an on-again ... off-again basis since 2005. This thread contains so much distilled wisdom. My hat is off to all!!!
Thanks,
Steve
Last edited by Steve Bryant; September 14th, 2011 at 06:37 AM.