I've sliced up your post a bit for flow, hope it still makes sense. I'll try to hit every point here, bear with the long post -
Quote:
Originally Posted by
snivilous
Another question for you SlowNStock. Apparently a tuner somewhere said that the MAF voltage limit doesn't really matter, and (from my understanding) insinuated that once the truck enters PE the MAF doesn't affect anything ...
This is false, MAF is still used in PE. There are certain conditions (typically outside of PE) where MAF isn't used exclusively, which I'll address later.
Quote:
... so if the MAF hits it's limit while in PE it doesn't matter and this can be used to "tune around the constraints of the MAF" as opposed to increasing the intake diameter for example. Is this true?
When the MAF is out of range, the PCM will continue to reference the last cell (5V) to determine airmass. This approach is to modify the PE table to deliver a particular net fueling while the PCM is referencing that same, incorrect airmass across the board. There are some big negatives to this approach, the key ones being that (1) commanded fueling does not match actual and (2) fueling is in anticipation of a prescribed amount of unmetered air. This works "correctly" if that unmetered air is a fixed quantity - conditions (humidity, barometric pressure, temperature, altitude, etc.) never change and no further modifications are made to increase airflow - but that is essentially never the case and net fueling after the MAF limit is little more than a reliable guess.
This approach is very old and a poor approach to calibration, though people still try to use it (as you've obviously encountered). Now, if it was a situation where it "kisses" the limit at the boundary with an otherwise conservative and correct tune and the net correction is small, it may be an understandable sin, but even in that case the (hypothetical) customer needs to be made fully aware of what's happening, why it's happening, the implications in the tune, and informed of alternative (better) options.
Quote:
It seems unlikely to me that when the truck enters PE it just ignores the MAF, though it's my understanding that in PE the AFR sensors are ignored and the truck is "blindly" dumping fuel to richen out which is why an external wideband is needed to tune PE... so maybe the MAF is ignored? The follow on question is then, PE multiplies stoichimetric by an amount and "blindly" dumps fuel in what the truck thinks is the right amount to hit that target AFR but doesn't actively correct to get there. What is the PE table actually multiplying?
O2 sensor feedback is essentially ignored in PE. The PE table is a simple, scalar multiplier (divisor as we use it) to lambda: 1 (Stoich Lambda) / PE EQ Ratio = PE Commanded Lambda
Let's consider a hypothetical example to illustrate the last two items:
Assumptions
- A MAF transfer function capped at 500 g/s @ 5V.
- VE is always 100%, so MAF increases linearly with RPM.
- The 5V limit is reached at 5000 RPM.
- The rev limit is 6000 RPM.
- A stoich AFR of 14.6.
- A desired PE AFR of 12.0 across the board (0-6000 RPM).
Calculations
- To achieve our desired PE enrichment, our table should be populated with:
- Mass airflow increases linearly with RPM, and we see 500 g/s at 5000 RPM, so at the 6000 RPM limit, the mass airflow would be:
500 (g/s) / 5000 (RPM) * 6000 (RPM) = 600 g/s
- Beyond 5000 RPM, the engine continues to assume we are only seeing 500 g/s, so, at 6000 RPM, our delivered AFR would be:
14.6 (stoich g air/g fuel) / (1.217 (PE EQ Ratio) * 500 (g/s assumed airflow)) * 600 (g/s actual airflow) = 14.4
- To correct using this approach, the PE would be scaled by the AFR Error, so the PE EQ Ratio at 6000 RPM would be set to:
14.4 (AFR Delivered) / 12.0 (AFR Commanded) * 1.217 (PE EQ Ratio Desired) = 1.46
- Our AFR calculation at 6000 RPM would now be:
14.6 (stoich g air/g fuel) / (1.46 (PE EQ Ratio) * 500 (g/s assumed airflow)) * 600 (g/s actual airflow) = 12.0
The problem is, we are really targeting an AFR of 10 (14.6 / 1.46) and our fueling model now has a substantial, unmetered airflow correction. Fuel trims will provide some safety net for atmospheric changes, but do nothing to correct for situations where our airflow model changes above the MAF limit. What if this was a supercharged engine, the owner swapped a smaller pulley, and all of a sudden we hit that MAF limit at 4500 RPM?
- Reworking our previous math, our airflow at 6000 RPM is now:
500 (g/s) / 4500 (RPM) * 6000 (RPM) = ~666 g/s (rounding down to emphasize ominous nature)
- Our AFR calculation at 6000 RPM would now be:
14.6 (stoich g air/g fuel) / (1.46 (PE EQ Ratio) * 500 (g/s assumed airflow)) * 666 (g/s actual airflow) = 13.3
We're back up to an ~11% (1 - 13.3 / 12.0) error from that simple change. Our hypothetical engine may be stout enough to live at 12.0 on boost, but feeding it 13.3 at a higher boost level would not result in a happy owner, so it's making a trip back to the tuner. The tuner, instead of simply verifying everything is working well with the change, is going to be redoing the entire PE table all over again.
This example is grossly simplified, but it should be easy to see why this approach isn't best practice (or even good practice) - the fueling model now contains substantial airflow model error - and it often makes for more work than simply correcting the MAF transfer function in the first place.
Quote:
Is there a fueling table that exists, and during cruising the MAF is slightly tweaking that and during PE that table is just straight taken and multiplied?
In essence, no - during closed loop, the PCM is essentially always targeting stoich (there are caveats to that beyond the scope of this discussion). O2 sensor feedback corrects for errors in net fueling, those corrections may be carried into the PE calculation. I'll detail both of those below as well.
Quote:
I guess there must be since the truck should still run with the MAF unplugged?
The PCM has other strategies to muddle along in the event of MAF failure, but they are not the primary drivers of the airmass calculation.
Quote:
This guy I was talking to also claimed the code for the MAF out of range could be disabled entirely, which I've never heard of.
This can be done, but that also falls into the category of not being best practice (tired of hearing that term yet?).
Quote:
TL;DR: Does the MAF only matter during closed loop (before PE), and if that's true and the MAF is out of range during PE it doesn't affect anything?
Pulling down from my comments above, it helps to understand the three models used by the PCM: air mass, fuel mass, torque (spark, throttle, etc.). We'll skip over the torque model for now.
The basic process for determining air mass is:
- Reference current MAF sensor voltage
- Look up base mass airflow for current MAF voltage from Engine -> Airflow -> General -> MAF Calibration -> Airflow vs. Voltage
- Look up base mass airflow correction for engine RPM and throttle angle from Engine -> Airflow -> General -> MAF Correction -> Base
- Look up IAT mass airflow correction for Intake Air Temp and base mass airflow from Engine -> Airflow -> General -> MAF Correction -> IAT
- Calculate final, corrected mass airflow by multiplying the lookup values:
Final Mass Airflow = Base Mass Airflow * Base Mass Airflow Correction * IAT Mass Airflow Correction
- During large transients, the PCM models airmass instead of taking values directly from the MAF. If you log MAF and Absolute Load during a large throttle transient, you'll note that Absolute Load does not track perfectly with MAF under those conditions.
- MAF Voltage is limited to 5V, Mass Airflow is limited to 512 g/s. Above 5V, a larger intake is required to bring the sensor into range. Above 512 g/s the tune will need to be scaled to bring the air mass back into range.
The basic fuel mass calculation is really an injector pulsewidth calculation; the simplified logic for non-PE, non-Component Protection, steady-state conditions is:
- Look up injector constant for current fuel pump mode from Engine -> Fuel -> General -> Injector Control -> Flow Rate -> Injector Const.[ High]
- Look up injector offset for current system voltage from Engine -> Fuel -> General -> Injector Control -> Offset -> Offset vs. Volts
- Look up load multiplier for current absolute engine load and fuel pressure mode from Engine -> Fuel -> General -> Injector Control -> Pulse Corrections -> Load Mult
- Look up cylinder gain enable for the current cylinder from Engine -> Fuel -> General -> Injector Control -> Cylinder Gain -> Injector Gain Enable
- Look up cylinder gain for the current cylinder from Engine -> Fuel -> General -> Injector Control -> Cylinder Gain -> Gain vs. Cylinder
- Look up cylinder multiplier for the current cylinder from Engine -> Fuel -> General -> Injector Control -> Cylinder Mult -> Mult Per Cyl (contingent on enable/disable boundaries)
- Look up net fuel trim (STFT + LTFT) for the current cylinder
- Determine net injector pulsewidth (IPW) per below:
Base IPW = Load Multiplier * Net Cylinder Gain * Cylinder Multiplier * Injector Constant (ms / (g/s)) * Final Mass Airflow (g/s) / Number of Cylinders
- If Cylinder Gain Enable = 1, Net Cylinder Gain = Cylinder Gain, otherwise Net Cylinder Gain = 1
Net IPW = Base IPW (ms) * (1 + net fuel trim) + Injector Offset (ms)
- If Net IPW is less than PW Minimum (Engine -> Fuel -> General -> Injector Control -> Pulse Width -> PW Minimum), the final IPW will be equal to PW Minimum.
- During PE operation, the Base IPW value is multiplied by the PE EQ Ratio from Engine -> Fuel - Power Enrich -> Power Enrichment -> EQ Ratio
- Note that positive fuel trims (adding fuel) are used during PE, negative fuel trims (removing fuel) are ignored.
Best practice is for each model to be independently correct; the resulting calibration is robust, simple to understand, easy to revise, and diagnostics are straightforward.
When the error in one model is baked into the other to achieve "correct" operation, it's only conditionally stable - fuel trims will typically be larger and move around more, open loop EQ Error will often be larger, and changing parts with that approach implies nonsensical adjustments (if fueling error is captured in the airflow model you would need to correct the MAF transfer function for new injectors, if air mass error is captured in the fuel model you would need to correct the fuel model for a new intake, etc.).
I hope that clarifies what the PCM is doing, illustrates how the described workaround functions, and why it's an inherently problematic approach.