PDA

View Full Version : Summary Notes



joecar
August 9th, 2010, 01:15 PM
Here are various summary notes relating mostly to LS1B...

joecar
August 9th, 2010, 01:15 PM
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.

joecar
August 9th, 2010, 01:18 PM
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.

joecar
August 9th, 2010, 01:18 PM
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).

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.

Chevy366
August 9th, 2010, 02:29 PM
Good stuff there joecar .

WeathermanShawn
August 9th, 2010, 04:42 PM
I'm still trying to find a good description for these:

GM.DYNAIRTMP_DMA
Internal PCM calculated blended air charge temperature [K].

GM.CHRGTEMP_DMA
How is this different...?

I am beginning to think that it is the same? Perhaps DYNAIRTMP.DMA does not include the the Charge Temperature filter...Would be nice to know. Any ideas on how to test it?



Good work Joe!

WeathermanShawn
August 9th, 2010, 04:50 PM
PCM determines AFR from:
- CL: closed loop feedback trimming to stoichiometric AFR (B3601),
- OL: the richer of: B3605, B3647 (COS), and B3618 (if PE has enabled from B3608-B3616).

Joe, this is still a little confusing to me. I agree in OL it selects the richer of B3605 and B3618. But in CL, OL utilizes B3618..regardless of B3605. Remember my little experiment?

The various protection mode AFR's are reflected in the commanded AFR.
The PCM selects the richest AFR from the AFR tables active at that moment.

PCM uses OL when:
- cold,
- at WOT,
- in PE,
- during throttle/airflow transients,
- CL is disabled.
- during EVAP (OL-Drive) Depending on OS.

VE/MAF determine airmass.
OL/CL determine commanded AFR.

SD/MAF are orthogonal to OL/CL (there exists 4 combinations of these).

PCM also uses airmass to determine ignition timing and transmission pressure.

Joe, again great work. I don't want to 'muddy' up your work with too many asterisks or exceptions, but the PE vs OLFA still seems to be the case. Perhaps the EVAP is just in the 2002..since no one else seems to comment on it..

joecar
August 10th, 2010, 04:39 AM
Joe, again great work. I don't want to 'muddy' up your work with too many asterisks or exceptions, but the PE vs OLFA still seems to be the case. Perhaps the EVAP is just in the 2002..since no one else seems to comment on it..Thanks for all comments...

I want to make sure I wrote it down correctly (with no stupid typos).

Ok, I'll add those and reword... I am curious that no one commented on EVAP.

joecar
August 10th, 2010, 07:50 AM
Changing the stoich AFR effects the calculated fuelmass, but it does not effect trimming to the actual stoich of the fuel being used.

joecar
August 10th, 2010, 08:12 AM
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 (http://forum.efilive.com/showthread.php?13152-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 (http://forum.efilive.com/showthread.php?13152-New-Tuning-Tutorial-WeathermanShawn)


DAT[K]

DAT[K] = {GM.DYNAIRTMP_DMA.C}+273.15

Math derivation:

post #27 here: DYNAIRTMP_DMA-vs-CHRGTEMP_DMA (http://forum.efilive.com/showthread.php?4709-DYNAIRTMP_DMA-vs-CHRGTEMP_DMA&p=138787#post138787)
posts #103,4 here: New-Tuning-Tutorial-WeathermanShawn (http://forum.efilive.com/showthread.php?13152-New-Tuning-Tutorial-WeathermanShawn)


Note:

Take note that VE[%] is dependent on engine displacement, whereas VE[g*K/kPa] is not.

joecar
August 10th, 2010, 08:14 AM
Question: for V[%] should displacement include combustion chamber volume...?

For 243 heads, CCV is about 0.5L (for 8 chambers).

Edit: it seems displacement should include only the swept volume, see post #16 below, thanks 5.7ute/Mick.

redhardsupra
August 10th, 2010, 08:40 AM
joe, are you trying to put me out of work? :)

joecar
August 10th, 2010, 10:16 AM
lol... :)

Marcin, this is just a Cliff's Notes style quick reference summary, whereas your Tuning Tools, Writeups, and Experiments (http://redhardsupra.blogspot.com/) is a detailed explanation/discussion linking theory and practice and goes into the motivations of why certain actions should or should not be taken during tuning...

I am not able to even try to put you out of business. :)

joecar
August 12th, 2010, 12:10 PM
Joe, again great work. I don't want to 'muddy' up your work with too many asterisks or exceptions, but the PE vs OLFA still seems to be the case. Perhaps the EVAP is just in the 2002..since no one else seems to comment on it..Shawn, I updated post #4, can you proofread it... :)

WeathermanShawn
August 12th, 2010, 12:20 PM
I agree with Post #4 as edited..

Thanks Joe..So far it seems not many have commented on it (PE vs OLFA & EVAP). Certainly is true with OS 12212156. Maybe it was a 2002 Emissions difference:confused:..No EGR, etc..
Well, thanks for updating. Its good work. We appreciate it..:cheers:

5.7ute
August 12th, 2010, 12:44 PM
Question: for V[%] should displacement include combustion chamber volume...?

For 243 heads, CCV is about 0.5L (for 8 chambers).

No. Displacement is the swept volume of the piston in the cylinder. CCV, gasket thickness etc are only needed for dynamic or static compression figures.
Good work Joe. Hopefully I will have something interesting to add soon.

joecar
August 12th, 2010, 12:48 PM
IBPW is the commanded injector pulsewidth, the scantool provides pids for this (IBPW1, IBPW2, INJDC1, INJDC2).

IPW is the internal injector pulsewidth as would be computed by the PCM before converting it to IBPW.

This is how IBPW appears to be computed from IPW:



IFR = lookup(B4001)(injector flow rate);

IPW = airmass / AFR / IFR * 1000;

IPW = IPW + TF(transient fueling modifiers);

if IPW <= B9021(minimum transient pulsewidth) then
IPW = B9021;

else if IPW <= B4003(minimum pulsewidth) then
IPW = B4004(default pulsewidth);

else if IPW < B4006(small pulse threshold) then
IPW = IPW + B4005(small pulse adder);

end

IPW = IPW + B3701(voltage/manvac offset);

IBPW = IPW;

(table name is shown as a green comment following the table id)

This is important because correctly modeling the injectors is critical, it allows the rest of the tuning exercise to correctly fit into place, and it allows dynamic fueling (i.e. port wall wetting/evaporation) to work properly.
5.7ute has performed some difficult and time consuming experiments to arrive at that sequence, good job Mick :cheers:

See here: showthread.php?13364-IBPW-B4005-B3701-correlation (http://forum.efilive.com/showthread.php?13364-IBPW-B4005-B3701-correlation)

WeathermanShawn
August 12th, 2010, 01:37 PM
5.7ute has performed some difficult and time consuming experiments to arrive at that sequence, good job Mick :cheers:


He is becoming affably known as Mr. Injector! (Thats a compliment)..:grin:

joecar
August 12th, 2010, 07:25 PM
5.7ute = Mr.Injector :cheers:

5.7ute
August 13th, 2010, 10:06 AM
Thanks guys. It has taken a while, but with the help of a few forum members sending logs & making experimental changes we are starting to get there.
Only 4000 tables left for you to write pseudo code for Joe. Then we can look at the 1mb pcm's lol.

joecar
August 13th, 2010, 10:35 AM
and then E40, E38, E67 OS's after that... :doh2:

joecar
October 1st, 2010, 10:06 AM
This is quoted from this thread: Desired-Airflow-Question-not-your-normal-question (http://forum.efilive.com/showthread.php?7512-Desired-Airflow-Question-not-your-normal-question&p=130379#post130379)


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

joecar
May 5th, 2011, 06:27 AM
Updates posts #2 and #4.

Matt68
May 10th, 2011, 01:52 PM
Good information guys! Thanks for taking the time to put this together.

joecar
May 24th, 2011, 01:38 PM
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 )

redhardsupra
May 24th, 2011, 02:17 PM
joecar, MAF2 assumes 8 cylinders. do we want to generalize this to CYLAIR*NUMCYL*RPM/(2*60)?

joecar
May 25th, 2011, 02:38 AM
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 :cheers:

joecar
June 19th, 2011, 07:57 AM
Updated post #4.

joecar
June 24th, 2011, 03:37 AM
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).

Steve Bryant
September 13th, 2011, 03:54 PM
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!!!
:cheers:

Thanks,

Steve

joecar
September 14th, 2011, 02:16 AM
Yes, thanks to all who have contributed their experiments results, and to all who have explained to me the fine points. :cheers:

Laychut
September 29th, 2011, 10:17 AM
Hi Joecar,
I am only new to tuning and this summary post is great. You have answered a truck load of questions I had. Thank you very much!

joecar
September 29th, 2011, 12:58 PM
No worries, thanks for the feedback, this thread is meeting its intended function :cheers:

joecar
May 1st, 2012, 01:53 PM
Updated the calc_pids.txt file in post #2, added a pid for calculating cylinder airmass from GM.VETABLE_DMA.

calc_pids.txt (http://forum.efilive.com/attachment.php?attachmentid=13078&d=1335926615)

bink
July 24th, 2012, 04:47 AM
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!!!
:cheers:

Thanks,

Steve

I agree with Steve on this one. :D This thread needs to be stickied (stuck? :) ) in more than a single subforum. There is an amazing amount of info here - thanks, joecar!! You guys need to broaden it's access....just a thought.

joel

joecar
July 24th, 2012, 07:17 AM
Hey Joel, how's it going :cheers:


Thanks, any comments from you guys are welcome... I'm hoping to tidy it up a little, and possibly add spark timing relationships;.


I'll add links in the other subforums to this thread.

joecar
July 20th, 2013, 04:00 PM
SOL (semi-open loop)

enabled via:
- OS: B4206
- COS: always enabled

if enabled, SOL is active only during OL;

SOL uses STFT to trim to stoich cells in B3605 or B3647;
for non-stoich cells in B3605 or B3647 SOL does not trim;
if PE enables while SOL trimming, if PE is richer then stoich, you will see PE fueling (i.e. the richer of the active tables);

SOL can function only if trimming to stoich is possible, otherwise it won't function.

joecar
November 10th, 2013, 07:19 AM
Quoted from this thread: Calculating-Injector-Flow-rate
(http://forum.efilive.com/showthread.php?4821-Calculating-Injector-Flow-rate)
Marcin's injector flowrate spreadsheet is attached to this post (scroll to bottom of post).



The math behind this is as follows (for those who want to know)...

Definitions

R0 = injector's rated flowrate measured at pressure P0
P0 = pressure at which the injector's rated flowrate R0 was measured (see Note below)
FP = regulator's gauge pressure, also known as regulator's base pressure.

MAP = manifold absolute pressure
BARO = barometric absolute pressure = 101.3 kPa at sea level = 100 kPa approx. a little above sea level
MANVAC = manifold vacuum = BARO - MAP

gauge pressure = absolute pressure - BARO = value shown by pressure gauge
absolute pressure = gauge pressure + BARO

Pressure difference across an injector: this is the difference in the absolute pressures above and below the injector.

An unreferenced regulator has its pressure set constant; this pressure is FP (gauge) or FP + BARO (absolute).

A MAP-referenced regulator has a reference hose connected to the intake manifold,
so its pressure has MAP added to it; this pressure is FP + MAP (gauge) or FP + BARO + MAP (absolute);
with reference hose removed, this pressure becomes FP + BARO (guage) or FP + BARO + BARO (absolute).

The flowrate of an injector is directly proportional to the squareroot of the pressure difference across the injector (this is the Bernoulli pressure relationship).

Note on Injector Flowrate Measurement:
when R0 is measured on an injector flow bench, P0 is actually the pressure difference across the injector:
absolute pressure above injector = P0 + BARO; absolute pressure below injector = BARO; so then difference = P0.

Note regarding 1997-1998 Y-car:
The FPR is not MAP-referenced (follow the reference hose to verify it sees atmosphere/BARO).

Unreferenced Regulator (e.g. 1998-2002 F-car, 1997+ Y-car)

Pressure difference (of absolute pressures) across injector = (FP + BARO) - (MAP) = FP + BARO - MAP = FP + MANVAC

IFR = R0 * sqrt((FP + MANVAC) / P0) = varies/slopes with MANVAC

At the rail, absolute pressure is FP + BARO, so gauge pressure is FP.
--> Directly measure FP at rail with engine running (FP should be constant).

The spreadsheet calculates this equation (Example 1, post #3).

MAP-Referenced Regulator (e.g. trucks)

Pressure difference (of absolute pressures) across injector = (FP + BARO + MAP) - (MAP) = FP + BARO

IFR = R0 * sqrt((FP + BARO) / P0) = constant/flat regardless of MANVAC

At the rail, absolute pressure is FP + BARO + MAP, so gauge pressure is FP + MAP.

Remove reference hose, regulator is now exposed to barometric pressure (so MAP = BARO),
and rail absolute pressure is FP + BARO + BARO, so gauge pressure is FP + BARO.
--> With reference hose removed, directly measure FP + BARO at rail with engine running.

The spreadsheet calculates this equation at MANVAC=0 if measured FP + BARO is entered (Example 2, post #3).

Units

Rail pressure is measured in psi, and MAP or MANVAC is measured in kPa.
You need to convert one to the units of the other before calculating IFR.

Convert psi to kPa by multiplying by (100/14.5).

14.5 psi = 100 kPa

If injectors are rated in lb/hr:
convert lb/hr to g/s by multiplying by 0.125998 (can round to 0.1260).

1 lb/hr = 0.1260 g/s

If injectors are rated in cc/min:
convert cc/min to g/min by first multiplying by density of gasoline (typically 0.73 g/cc), and then dividing by 60.

1 cc/min = 0.0122 g/s (depending on density of gasoline)



(http://forum.efilive.com/showthread.php?4821-Calculating-Injector-Flow-rate)

Steve Bryant
January 6th, 2015, 04:46 PM
I have now read through and researched these summary notes probably ten plus times in the past several months and now I consider them to be akin to the Rosetta Stone for the LS1B PCMs. At least as far as using EFILive Scan and Tune the Powertrain Control Module.

So for anyone who is a new or even seasoned tuner, I'll say don't give up if all of this seems complicated, etc. It is complicated, but it can be so very rewarding for those who want to modify their engines, make their transmissions (automatics) shift differently, etc. This is great stuff!

Steve