Here are various summary notes relating mostly to LS1B...
Here are various summary notes relating mostly to LS1B...
Last edited by joecar; September 6th, 2012 at 08:40 AM.
My current understanding:
GM.MAF
GM airflow [g/s].
When MAF faults, this shows PCM calculated expected value (based on VE).
SAE.MAF
CARB airflow [g/s].
When MAF faults, this shows actual value.
GM.DYNAIR
PCM calculated airflow [g/s] based on VE.
Used in MAF rationality test and in MAF failed mode (speed density).
GM.DYNCYLAIR
PCM calculated cylinder airmass [g/cyl] based on VE.
GM.DYNCYLAIR_DMA
Internal PCM calculated cylinder airmass [g/cyl] based on VE.
GM.CYLAIR_DMA
Internal PCM calculated cylinder airmass [g/cyl] based on MAF.
CALC.CYLAIR
Scantool calculated cylinder airmass [g/cyl] based on MAF.
{SAE.MAF.gps}*15/{SAE.RPM}.
(the 15 comes from 120/8 where 8 is the cylinder count)
GM.VETABLE_DMA
Internal PCM lookup of VE [g*K/kPa].
CALC.VE
Scantool calculated VE [% and g*K/kPa] based on MAF, MAP, IAT, RPM.
Comes with the scantool; not sure where the constants came from.
Close in values to CALC.VEN (see below), but not sufficiently close.
CALC.VEN
Scantool calculated VE [%, g*K/kPa] based on MAF, MAP, DAT, RPM.
Not corrected (i.e. no BEN correction).
Requires definition in calc_pids.txt file, see attached for example.
CALC.VET
Scantool calculated VE [%, g*K/kPa] based on MAF, MAP, DAT, RPM.
Includes correction (BEN selected from LTFT and/or wideband).
Requires definition in calc_pids.txt file, see attached for example.
CALC.MAFN
Scantool calculated MAF [g/s] based on VE, MAP, DAT, RPM.
Not corrected (i.e. no BEN correction).
Requires definition in calc_pids.txt file, see attached for example.
CALC.MAFT
Scantool calculated MAF [g/s] based on VE, MAP, DAT, RPM.
Includes correction (BEN selected from LTFT and/or wideband).
Requires definition in calc_pids.txt file, see attached for example.
CALC.VEDCA
Scantool calculated VE [g*K/kPa] based on GM.DYNCYLAIR_DMA;
Requires definition in calc_pids.txt file, see attached for example.
CALC.DCAVE
Scantool calculated cylinder airmass [g/cyl] based on GM.VETABLE_DMA;
Requires definition in calc_pids.txt file, see attached for example.
Last edited by joecar; April 14th, 2016 at 07:48 AM.
GM.DYNAIRTMP_DMA
Internal PCM calculated blended and filtered air charge temperature [C, F].
GM.CHRGTEMP_DMA
Internal PCM calculated blended air charge temperature before being filtered [C, F].
CALC.DAT
Scantool conversion of GM.DYNAIRTMP_DMA to various temperature units [C, F, K, R];
this pid is for convenience (its short name fits easier on charts/gauges and in calc pids).
Requires definition in calc_pids.txt file, see previous post for example.
If those are to be used in the Ideal Gas Law equation P.V = n.R.T = (m/M).R.T they must first be converted to [K].
Blending: see table B4901 Charge Temperature Blending.
Filtering: see table B4902 Charge Temperature Filter.
Last edited by joecar; April 14th, 2016 at 07:57 AM.
Wideband reports the same EQR as commanded EQR if these are all true:
- B3601 is the correct stoichiometric AFR for the fuel being used,
- B4001 IFR and injector characterization tables are correct,
- when/if PCM uses VE: B0101 VE is correct,
- when/if PCM uses MAF: B5001 MAF is correct.
PCM calculates cylinder airmass from:
- above B0120: MAF,
- below B0120: MAF (steady throttle/airflow) and/or VE (transient throttle/airflow),
- in SD (MAF-less, MAF DTC present): VE.
MAF can be disabled by failing it (i.e. an immediate MAF DTC is required).
VE can be disabled by setting the B0120 dynamic air threshold to zero.
VE/MAF determine airmass.
OL/CL determine commanded EQR.
SD/MAF are orthogonal to OL/CL, there are 6 combinations of these:
- OL SD
- OL MAF-only
- OL MAF/VE
- CL SD
- CL MAF-only
- CL MAF/VE
( SD refers to VE-only )
( MAF/VE refers to: MAF during steady state, VE during transient )
PCM also uses airmass to determine ignition timing and transmission [torque signal] pressure.
PCM determines commanded EQR from:
- CL: closed loop feedback trimming to stoichiometric (EQR 1.000),
- OL: the richest EQR from the EQR tables active at that moment:
-- B3605 OLFA (OL only) (see note below),
-- B3647 OLFA (OL only) (COS) (see note below),
-- B3618 PE (if PE has enabled from B3608-B3616, B3619-B3626),
-- B3659 (if PP has enabled from B3652-B3658),
-- B3603 (if EP has enabled from B1601-B1603),
-- COTP (if COTP has been enabled by B0701-B0705) (I don't see a table for COTP EQR, but it typically is 1.25 EQR).
When PCM is in CL and transitions to PE (i.e. CL-PE), B3605, B3647 are not active (those are active only in OL),
this means B3618 determines commanded EQR in CL-PE mode (if PP/EP/COTP are not active).
If at any time PCM transitions OL then B3605, B3647 become active.
The various protection mode EQR's are reflected in the commanded EQR.
The PCM selects the richest EQR from the EQR tables active at that moment.
The PCM performs all fueling lookups/computations in EQR units.
The PCM converts airmass and commanded EQR to fuelmass using B3601 (stoichiometric AFR).
The PCM converts fuelmass to injector pulsewidth using the injector tables.
PCM uses OL in any of those situations:
- cold,
- CL is disabled,
- during EVAP and CAT testing (OL-Drive),
- during an O2S fault condition on either bank (OL-Fault).
(there seems to be multiple OL modes: pure OL, OL-Drive, OL-Fault)
PCM uses CL mode:
- when enabled (B3801, B4205) and the switch point (B4501) can be met by the NBO2,
- when PE is enabled from CL mode, the PCM retains CL mode during PE,
- in CL-PE, negative LTFT's are zeroed, LTFT's are then frozen, the resulting LTFT's are applied.
PE mode:
- is not exclusive of CL mode (i.e. can have CL-PE),
- can be active during CL (but trimming will not occur if commanded EQR is not stoich);
- during CL-PE/WOT, the LTFT's are applied (negative LTFT's are rounded up to zero first).
PCM retains CL mode when transitioning to PE (i.e. B3605, B3647 are not active during CL-PE).
The PCM may also use SOL (semi open/closed loop) to trim using STFT's during OL in these situations:
- OEM: if B4206 is enabled, when B3605 contains EQR 1.
- COS: if B4206 is enabled, when B3647 contains EQR 1.
- COS: if B4206 is not present, when B3647 contains EQR 1.
Last edited by joecar; May 13th, 2021 at 12:48 PM.
Good stuff there joecar .
2005 1500 HD , Custom OS3 SD tune .
2006 Trailblazer
Dinosaurs and Plants gave their lives so that we may drive , long live fossil fuel .
Changing the stoich AFR effects the calculated fuelmass, but it does not effect trimming to the actual stoich of the fuel being used.
VE[g*K/kPa]
The units [VE] are shorthand for [g*K/kPa]
VE[g*K/kPa] is also called "normalized airmass" (i.e. normalized for pressure/temperature).
Per cylinder VE[VE]:
VE[VE] = {SAE.MAF.gps}*{CALC.DAT.K}/{SAE.MAP.kPa}/{SAE.RPM}*120/NUMCYL
When NUMCYL=8: the per cylinder VE[VE] becomes:
VE[VE] = {SAE.MAF.gps}*{CALC.DAT.K}/{SAE.MAP.kPa}/{SAE.RPM}*15
VE[VE] includes the factor /NUMCYL in order to obtain per cylinder VE[VE].
VE[VE] depends on MAF, MAP, DAT, RPM, and is independent of cylinder volume.
For math derivation see post #103 here: New-Tuning-Tutorial-WeathermanShawn
VE[%]
VE[%] = {SAE.MAF.gps}*{CALC.DAT.K}/{SAE.MAP.kPa}/{SAE.RPM}*3445.2/displacement
where displacement is engine displacement in [L]
VE[%] has the factor /NUMCYL in both numerator and denominator, so it cancels out.
VE[%] depends on MAF, MAP, DAT, RPM and engine displacement (or cylinder volume multiplied by number of cylinders).
Note:
If you use VE[VE] (i.e. g*K/kPa) you do not need to know engine displacement anymore...
the actual VE table does not use displacement (the tunetool uses it to display VE[%] if you have opted for % VE units).
For math derivation see post #104 here: New-Tuning-Tutorial-WeathermanShawn
DAT[K]
DAT[K] = {GM.DYNAIRTMP_DMA.C}+273.15
Math derivation:
post #27 here: DYNAIRTMP_DMA-vs-CHRGTEMP_DMA
posts #103,4 here: New-Tuning-Tutorial-WeathermanShawn
Note:
Take note that VE[%] is dependent on engine displacement, whereas VE[g*K/kPa] is not.
Last edited by joecar; April 14th, 2016 at 09:44 AM.