something i had been working on awhile back thought might be of interest...
LS1 VCM Main Airmass Calculation
=================================
A very important calculation the VCM must make to ensure correct fuel mixtures under all driving conditions is the dynamic airmass calculation. This is the main calculation the VCM uses to determine how much air it should use for the Base Fuel Calculation (Inj PW). The airmass calculation is not simple and uses various combo's of MAF and SD inputs depending on engine operating conditions such as current engine RPM. It may also make decisions based on whether the engine is in a steady load state (steady MAP) or unsteady load state (Unsteady MAP). Note, that these thresholds change with RPM and MAP. eg. at higher RPM or high MAP readings you have more leeway before the VCM decides that you have an Unsteady MAP condition. This unsteady MAP defintion is basically there to decide if a throttle transient has occured (or other) ie. the MAF input is known not to be accurate under these operating conditions.
Under normal conditions (ie. all sensors working properly) in the code i'm looking at it is like this:
(caveat: many of these thresholds may vary between code revs and vehicle type)
[tt]
RPM > 4000
----------
*trust MAF completely and ignore SD calcs (apart from MAF sanity checking purposes)
RPM < 4000
----------
*if RPM < 2400 and MAP < 84 kPa then
* * *Steady MAP threshold = 0.0 kPa
*else
* * *Steady MAP threshold = 0.8 kPa
*If (SteadyMAP) then
* * *Calculate MAFAirmass/SDAirmass ratio (used for Unsteady MAP operation)
* * *Correction Airmass = MAF Airmass (filtered)
*else
* * *Correction Airmass = SD Airmass x MAF/SD Airmass Ratio (calculated during Steady MAP conditions)
*Transient Corrected Airmass = previous Final Airmass + proportion of Correction Airmass
*Final Airmass = fn(MAF Airflow, previous MAF Airflow, prev 3 MAP readings, prev 3 TPS readings,
Transient Corrected Airmass)
[/tt]
*There are 9 coefficents to this filter (and a total of up to 16 diffent sets of coefficients depending on operating conditions). It is worth noting that the previous value is weighted heaviest followed by the 2 MAF terms, so MAF dominates IMHO).
*There are also a number of checks at the end to make sure things do not exceed certain limits
To summarise:
1. High RPM behavior is totally based on MAF
2. Mid RPM behaviour has an allowance on Steady MAP behaviour before it switches to Unsteady MAP
3. Low RPM behaviour (where the bulk of the fuel cells are) is dictated by unsteady MAP behaviour that is still mostly dominated by the MAF input with small tweaking from SD)
If the VCM decides that a throttle transient has occured (unsteady MAP), the airflow incorporates a "correction" from the SD calculations. This value is the SD calulated airmass multiplied by the previous ratio of measured MAF airmass to calculated SD airmass (this normalises it, since you are worried about the transient deviation from MAF airmass only). The way i understand it is this, imagine you are cruising (MAP is steady), you have a decent vacuum in the manifold and you change the throttle position quickly. Air rushes into the manifold to service the change in air demands from the engine itself but also to try and fill the vacuum. The result is that the MAF reads higher than it should at that point in time (spikes). This is more pronounced at low RPM where the engine airflow is smaller and the relative proportion of extra airflow due to filling vacuum is higher, also the MAF is known to be more inaccurate at lower RPM and more non uniform airflow. IMHO, the SD correction is to account for filling and emptying of the manifold during throttle transients and also to smooth the MAF's spikyness at lower RPMs.
The bottom line is that if the engine is at a steady load state or operating at high RPM then the airflow is 100% based on the MAF once you get thru all the filters and calculations. And the SD calcs only get used for transients and smoothing lower speed operation.
At no stage does the MAF get ignored completely in these calcs (the dominating terms of the main filter calc are always MAF based).
An interesting point to note is that removing the MAF basically bypasses the whole system and directly sets the Final Airmass value to be the result of the SD lookup (it also disables things like knock learn and a few other nice things). Most have taken to calling this "Backup SD Mode" which is as good a name as any i guess and i meant to allow the engine to run with a failed MAF (although it is quite possible to tune usuing this mode (eg. HSV GTS 300kw comes factory this way). There is another way to disable the MAF system completely (ie. without setting the DTC's) and by tuning of the thresholds and other flags you can get a fully functional SD tune happening, the so called "True Speed Density Mode"... maybe more on that later...
Since i haven't had time to step this out in painstaking detail and i haven't yet qualified for my guru pin, please feel free to correct any errors that are in here. i'm sure there are some.. as things have been a little busy around here lately
gameover...