Fuels maps vs. O2 feedback (How much do maps really affect the mix)?





Caveat, assume fuel mapping is in the acceptable range of correction via INT/BLM logic.
I could see this working similiar to the stoich parm -- where you enter the correct fuel mix. My impression is this is a target to shoot for as the mapping goes thru initial learning process. But, in actual closed-loop driving, that O2 lamda thing takes over. If it didn't E10 would be a bigger problem and cars would be running overly lean, right?
It also means the accuracy of your O2 sensor plays a huge role in the individual vehicle's ability to run at the correct mix.
Comments?
Somewhere (I don't remember where), I found this curve for O2 sensor response:

One of the major problems I have with this curve is: what is the tolerance on the vertical part? It says 14.7, but +/- what percentage? We know this is actually a lambda sensor. Does the tolerance remain the same for all fuel types? What is the maximum tolerance among all the O2 sensors that are made?
Anyhow, using the standard O2 sensor, this curve shows us that the response is pretty much a "bang-bang" response (as they say in the process control field). It's either "rich" or "lean". It bangs back and forth between the two. I think the main problem is that the ECM is nowhere near fast enough nor accurate enough to maintain the AFR at stoichiometric (of course this is just for steady state operation, not WOT, etc. -- just cruising down the road).
Another problem is the accuracy of the A/D (Analog to Digital) converter in the ECM that converts the O2 sensor output to a number. (Geez, this gets complicated...) We also have a tolerance on the MAF output and the A/D in the ECM for THAT. Then the coolant temperature enters into it, both the sensor and the A/D. There's more: the battery voltage affects how fast the injectors open. The fuel pressure enters into this also, as it affects the amount of fuel output for a given injector pulse width. Spark timing and dwell affect how well the mixture burns. The fuel temperature changes as the engine runs because of the circulating fuel system. That's enough...
So... The basic scenario is: the ECM looks at all these sensors and figures out a fuel injector pulse width. Then it looks at the O2 sensor output. Now it does a "Are we rich"? -- decrease injector pulse width. "Are we lean"? -- increase injector pulse width. Repeat, ad infinitum. The AFR ends up wandering back and forth between rich and lean. The tricky part here is how large the increments/decrements are when the ECM is changing the injector pulse width. ...And how fast the ECM can detect and respond to the changes.
You can see the AFR wandering behavior in this oscilloscope trace of the O2 sensor output I took on my car at idle (this is at the ECM, so there is a lot of electrical noise). The little "1" (for channel 1) on the lower left with the arrow is zero volts and the vertical divisions are 200mV (0.2 volts), the horizontal divisions are 500ms (1/2 second):
More problems: there is only one O2 sensor on a L98. The ECM has no idea what cylinders #2, 4, 6, 8 are doing. Our lone O2 sensor also covers 4 cylinders: #1, 3, 5, 7, so individual variations between cylinders are lost.
It's amazing that the system works as well as it does. Those GM engineers were really smart people and they obviously spent a LOT of time tweaking the system.
The ECM will use the INT to tweak the BLMs and all of them will tend to drift richer or leaner based on the fuel. That's how it compensates for different fuels (E10, for example). I assume the limits on the BLMs are because things can get too far out of whack. Probably the sensors go into very non-linear areas and are no longer accurate. The scans I've done show the INT bouncing all over the place, so that's why the ECM does the lag filtering to calm things down so it can figure out what the trend is.
What I've seen is that the ECM spends almost all of its time in cells 0, 5, 10 and 15, but mostly in cell 10. I believe (though it hasn't been proven by me or to me) that it's impossible to get into the "corner" cells (3 and 12). I saw a firmware/scan tool tweak somewhere where somebody added all 16 BLM cells to the data stream. That would be interesting to see.
Maybe we need a scan tool graph that will show how much time is spent in each cell. That would tell you where to concentrate first when tuning.
The ECM will use the INT to tweak the BLMs and all of them will tend to drift richer or leaner based on the fuel. That's how it compensates for different fuels (E10, for example). I assume the limits on the BLMs are because things can get too far out of whack. Probably the sensors go into very non-linear areas and are no longer accurate. The scans I've done show the INT bouncing all over the place, so that's why the ECM does the lag filtering to calm things down so it can figure out what the trend is.
What I've seen is that the ECM spends almost all of its time in cells 0, 5, 10 and 15, but mostly in cell 10. I believe (though it hasn't been proven by me or to me) that it's impossible to get into the "corner" cells (3 and 12). I saw a firmware/scan tool tweak somewhere where somebody added all 16 BLM cells to the data stream. That would be interesting to see.
Maybe we need a scan tool graph that will show how much time is spent in each cell. That would tell you where to concentrate first when tuning.
If you have the wonderful "oxygenated" fuel we have in most parts of California, they will tend to be proportionally higher because the ideal AFR has gone down. The ECM bumps up the BLMs to get a lambda of 1.0 from the O2 sensor.
I edited the article (for multiple reasons, mainly formatting -- but also because he can't spell boundary... ;-):
http://home.earthlink.net/~cliff_har...t_Rauscher.txt





If you set the stoich to 14.1 AFR, is that what it takes to get to E10's ratio? I'm guessing not. If you adjust the maps to bump fuel up/down, does THAT really alter the mix? (assuming you stay in that 16% window). Or, does the oscillations of the O2 [alone] force and "equilibrium" of correct fuel burning -- regardless of your attempt to FORCE fuel slightly above/below the stoich point?
What really controls it? Or, should I ask about the priorities?
For example, if I want a richer idle, will a 1% bump in the fuel maps accomplish that -- or will the O2 compensate?
Part of the reason I ask is because my plugs have always shown a hair lean while my INT and BLMs are biased in the 124-128 range (at most rpms). Those two conditions don't seem possible.
I'm also running a bit hot at idle and would like to add fuel -- to see what happens. If the 02 justs says "screw that" and compensates, will I be able to jump it 1/2pt?
Or, if I have to change the stoich, am I only able to affect the entire rpm range?
Can anyone see the hole/flaw in my thinking?
The Best of Corvette for Corvette Enthusiasts
If you use a fuel with a different ideal AFR then the BLMs will move to a new number. Again, there's nothing special about the new number. It's just what it happens to be.
The ECM will do whatever it takes to get to a lambda of 1.0. That's why the BLMs move when you change to a fuel with a different ideal AFR. Given that, it seems like futzing with the fueling tables will give you a net change of zero.
The BLMs reflect the INT. I think the key here is to look at how INT is calculated (that's where the magic 128 comes from -- 128 is 1/2 the full scale value of an 8-bit number. The engineers obviously tweaked the calculations to get this result.). I don't know offhand and I don't have time to look into it right now, but I think you could influence that calculation and get the result you desire.
...Or you could run open loop all the time.





I don't know offhand and I don't have time to look into it right now, but I think you could influence that calculation and get the result you desire.
The reason I responded the way I did was because I've seen your posts in the past and you're obviously a smart and knowledgeable guy.
I don't claim to be an expert by any means but I did spend about 6 months last year going over the disassembled firmware for my car (BUA 9340/1728). I learned a lot of interesting and esoteric stuff. I still have a list of questions sitting right here that I never found answers for. For example, I never knew that highway mode existed (even though it's disabled) nor had I heard of DFCO. Some of the problems I had with the firmware were that some of the original comments were just plain wrong. MANY later firmware disassemblies were based on the early wrong ones that came before and the later ones had the same incorrect comments. The VATS frequencies were backwards and wrong, for example.
Given your experience and knowledge, I don't think I have anything new to tell you, but I think I can get your thought processes going and maybe give you something to think about. The INT calculation thing just jumped out at me and I realized that I don't know exactly how it's calculated myself.
My impression from looking at the code is that the engineers wrote the code, did tests, realized that there were other factors involved and then added tests or parameters for those factors. Some of those factors are pretty subtle and only apply under conditions that are only going to occur in really rare instances.
Related to all this is that the engineers are pounded to keep things as low cost as possible (being an engineer myself, I've seen that many times). That's why I wonder why they did things like running the coolant through the throttle body. That had to add a lot of cost. I have NEVER heard of anybody having a throttle body ice up, so why did they do that? It must have been a problem some time during their testing, but they do test under some pretty extreme conditions. One thing I think is weird and related to this is that the coolant is COLD at startup and you would think that's the time the throttle body is most likely to ice up.
I heard that one test they do is turn on the air conditioning and park the car with the front bumper up against a wall at the desert proving grounds in Phoenix during the summer and then they leave it there idling for hours... I've been in Phoenix when the temperature was in the 115 degree area (and I got to run my car on the test track there), so conditions there can definitely be extreme.
Last edited by Cliff Harris; Jul 22, 2012 at 03:31 AM.
So - assuming we're talking VE tables, and if we are cruising in closed loop, and provided the BLM/INT scales have enough wriggle room, the VE tables make little difference because the closed loop will bring it back to 14.7.
However. in open loop (i.e. cold), I might be wrong but the tables are used for absolute fueling, and therefore the engine will run rich or lean until in closed loop.
While I might be wrong for open loop, I am 100% certain that the BLM learnings in closed loop are applied to Power Enrich. If BLM's are backing fuel out because the VE tables are driving it rich, then PE is used per the PE tables. However, if VE is driving lean, and BLM is adding fuel, then PE/WOT will be richer than the tables. (This is why a lot of time and effort is paid to making sure none of the map runs lean for cars that run at the track, since it could mess with the power tune at the dyno).
What could also be a factor is the role BLM plays in transient fueling. I am not 100% sure but I believe the transient (AE tables) are a modifier on the absolute VE table values and therefore if one were to deliberately skew the VE tables it would be corrected at cruise but transient stuff would be messed up.
Apologies if I'm way off base, hopefully my ramblings make sense!
128 will now no longer be 14.7 - not because of tuning but because of the way the O2 sensor works. Adjusting the AFR in the ECM helps the ECM adjust the fuel quicker based on the O2 sensors outputs but even if left at 14.7 it would still get there.





128 will now no longer be 14.7 - not because of tuning but because of the way the O2 sensor works. Adjusting the AFR in the ECM helps the ECM adjust the fuel quicker based on the O2 sensors outputs but even if left at 14.7 it would still get there.
Or, what if it was running a hair lean (only at idle). What would you do to change that?
(Note: This is an assumption based on: dyno runs showed stoich at cruise and PROPERLY rich (at WOT). But, plugs show a HAIR lean. Since it idles on the hot side (temp goes up -- even with oversize radiator and waterpump), I'm assuming it really might be lean at idle.
Of course, this appears acceptable (for longevity) if I can keep it from over-heating. I'm also looking at high-volume cooling fans but really wonder if I could affect the mix at idle -- or if the ECM/O2 sensor will always "force" it back to stoich?
Sounds like I'd need to be 20% rich, where the ECM could only compensate for 15-16% of that?
O2 swing points in $8d have a low, mid and high
450mv on a standard O2 sensor is 14.7:1
Stock points are often along the lines of
LOW 200mv
Mid 450mv
High 600mv
Essentially when the O2 sensor is between 200-600mv the fuel is read directly from the map. When it crosses a threshold LOW or HIGH the ECM adjusts according. As we know the O2 sensor is RARELY not swinging above and below these points.
If you we're to set
LOW 400mv
MID 650mv
High 800mv
You would now be shooting for a richer AFR. As long as your reasonable and within the limits of the O2 sensor you'll have no issues. This is a very crude example but I have a spreadsheet that I've downloaded that you can use to more precisely adjust your O2 swing points.





Mine is unchanged and looks like this...
IF that is indeed the table then upping those voltages will cause the car to run richer in closed loop.
The way the ECM uses the O2 sensor is as a switch - Rich or Lean. It doesn't care about how little or how much as it will just add or remove fuel until the O2 swings again.
What these tables do is define those rich lean conditions. MAP tables have a threshold but I maybe the MAF tables just use a single switch point.










