1. and then E40, E38, E67 OS's after that...

2. ## VE airmass calculation

This is quoted from this thread: Desired-Airflow-Question-not-your-normal-question

Originally Posted by joecar
The VE table's "real" units are g*K/kPa

where:
g is grams (mass)
K is degrees Kelvin (temperature)
kPa is kilopascals (pressure)

so each VE table cell value is the "normalized" cylinder airmass [ i.e. "normalized" for absolute termperature and absolute pressure ];

as temperature goes down, cylinder airmass goes up (i.e. mass varies "per" 1/K),
as pressure goes up, airmass goes up (i.e. mass varies "per" kPa),
so the units are: g /(1/K) /kPa == g/(kPa/K) == g*K/kPa.

to calculate the cylinder airmass, the PCM reads the VE table cell value and divides by the absolute temperature and multiplies by the absolute pressure;

e.g.
very simplistically, say:
- PCM computues (via IAT/ECT blending) the dynamic air temp to be 300K (27°C, 80°F),
- VE table says 2.0 g*K/kPa,
- MAP is 100 kPa,
then airmass = 2.0[g*K/kPa] / 300[K] * 100[kPa] = 0.6667[g]

(note how the units balance out)

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 ].

3. Updates posts #2 and #4.

4. Good information guys! Thanks for taking the time to put this together.

5. ## Calculating MAF from VE

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 )

6. joecar, MAF2 assumes 8 cylinders. do we want to generalize this to CYLAIR*NUMCYL*RPM/(2*60)?

7. Originally Posted by redhardsupra
joecar, MAF2 assumes 8 cylinders. do we want to generalize this to CYLAIR*NUMCYL*RPM/(2*60)?
Marcin, good point, yes I do want to generalize it in these summary notes, thanks

8. Updated post #4.

9. ## Relationship between AutoVE/Calc.MAFT and between AutoMAF/Calc.VET

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).

10. 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

Page 3 of 4 First 1234 Last

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•