PDA

View Full Version : Target AFR on a narrow band? How does it work?



Scorp1us
11-30-2014, 09:51 PM
I'm looking at the rpm / map AFR table and I'm wondering how this works on a narrow band system?

steveo
11-30-2014, 09:58 PM
it's probably only used in open loop. many of the fueling tables are ignored once closed loop is entered. narrowbands only work properly in closed loop if a stoich target is used.

Scorp1us
11-30-2014, 11:55 PM
But even so how does the computer know how to achieve 12 or 13 or anything that isn't 14.7?

LeMarky Dissod
12-01-2014, 03:13 AM
I'm looking at the rpm / map AFR table and I'm wondering how this works on a narrow band system?Regardless of what kind of car or pcm …

Before switching to 'closed loop' operations, the engine's coolant temp, RpM, MAP, fuel injector size[s], cylinder displacement[s], and throttle position are [or should] already be known in realtime.
More than enough information to make very close guesses as to how much fuel to inject from moment to moment, and the factory already made them.

O2 sensors are only responsible for making adjustments to those precalculated guesses. ('open loop' guesses are usually a bit rich, if only to strongly encourage the use of the O2 sensors.)

steveo
12-01-2014, 03:25 AM
through the most basic principles of fuel injection;

the ecm has an estimate of airflow, for example via a representation of the volumetric efficency of your engine with MAP and RPM axis (if you're using speed density)

it also has a set of values that can be used to figure out roughly how much fuel gets injected depending on how long the injectors are open for, like the injector constants.

since it knows how much air, and how much fuel, it can just vary the amount of fuel to try to reach an air fuel ratio

this is open loop fueling. the oxygen sensor doesn't do anything.

once it warms up, uses the same calculation but tries to get to stoich (usually 14.7:1), then checks the o2 sensor, which only knows two things, "too rich" or "too lean". if it's "lean" it increases fuel a bit, if it's "rich" it decreases it a bit. eventually it'll reach a point where it'll start oscillating between rich/lean very quickly, so it knows it's near stoich. that's closed loop.

it remembers these "trims" for a range of operating, so next time it gets into a certain rpm/load range, it still has the trims from last time and doesn't have to start over. that's block learn mode (BLM)

84Elky
12-01-2014, 04:05 AM
But even so how does the computer know how to achieve 12 or 13 or anything that isn't 14.7?
Can tell you how $8d does it. I have to believe other GM OBD I masks are similar. Here's the short answer:

If in CL and not in PE, the AFR is always reported in the ALDL Data Stream as that set in the calibration (at 0x41A in $8d = 0x01BD = 14.73% AFR).
If in CL and PE, the reported AFR is a calculated value based on 2 Table values: (1) PE AFR % Change .vs. RPM and (2) PE AFR % Change .vs. Coolant Temp, and stoich AFR. As an example, at 3600 RPM and 200*F, the calculated AFR is 11.42. Note that MAP is not a function of this calcualtion because MAP > a cretain value was used to determine if PE was entered. Also, this is merely a calculated AFR value and may or may not agree with that reported by a WBo2. Likely it would not agree because the calculation uses values that make a lot of assumptions for a given engine.
If in OL, AFR is a function of stoich AFR modified by a value from a table 'OL AFR % Change .vs MAP', and which can be further modified if in rolling idle (TPS < 2.3% and MPH < 15). But again, this is only a calculated value.


The only true AFR is that reported by a WBo2.

code-
12-01-2014, 09:30 AM
On my $0D the NBO2 still cycles as if it was in closed loop, even if target AFR is not 14.7
Never could find a good explanation for this, or how it works.

1project2many
12-01-2014, 03:32 PM
Additionally when in CL the stoich point, high, and low voltage (or a combination of these values) is defined in cal variables. The sensor's voltage changes rapidly vs small AFR change outside this window so although a different AFR could be targeted, the overruns would be harder to control.

Scorp1us
12-02-2014, 06:11 PM
Ok Thanks guys. So when adjusting my openloop idle for a cam I should have been working in the AFR table and not the BLM table?

lionelhutz
12-02-2014, 08:49 PM
No, use the BLM table. This fixes the data the ECU is using to calculate the engine airflow.

1BadAction
12-04-2014, 07:11 PM
Ok Thanks guys. So when adjusting my openloop idle for a cam I should have been working in the AFR table and not the BLM table?
Open loop idle looks at the VE table for fuel and seems like it refers to the O2 voltage very little, if any. I'm not sure about a wideband, but a narrowband will look lean at an idle when it is NOT lean. This is because of the increased overlap of a bigger cam compared to the factory.

What I did to nail my idle, was enable closed loop idle fueling, then bump my o2 voltages down .025v at a time, drive around the block, let it idle and see how it felt, then repeat until I had it idling the smoothest. Adjusted the VE table until the BLM was 128 at an idle, then finally, disable closed loop idle fueling again. My 454 idles the smoothest with the Lean voltage at .300, the mean voltage at .350, and the rich voltage at .400 with the baby cam. I could probably narrow up that swing a little bit, but I have cats in my truck.