I have to admit that I belong to the group that does not belive the temperature compensation route is the way to go.
Sure, some of the producers explain the brilliance of their product, but so far, no one has been able to explain to me why it works.
The BMS works in the following manner when it comes to fuel delivery:
This is how a warmed up engine works:
- Based on rpm and throttle position, BMS finds a number in a table that gives the nozzle opening time in milliseconds.
- The value from table is corrected, based on inlet air temperature and airpressure. (in +/- %. Actually 0 compensation is given x1, more will be >1, less <1)
- BMS also looks up a correction value from the adaptive table, given in +/- %
- At last, BMS compensates based on feedback from O2 sesor, again in +/- %
If checked by GS911, you can read the compensations in realtime as a number i.e 1,01 is + 1%, while 0,99 means - 1%
This mode, when O2 information is considered is called "Closed loop mode".
The adaptive table bears numerous names, lots of places they call it short term trim. But regardless of it's name it serves the same purpose.
The point is, BMS is programmed to try to do as little correction as possible from the O2 sensor. Therefore, for every cell in the map-cell, if BMS keeps compensating the map value, BMS will store the correction in the adaption table, and slowly the map-value + the correction value from the adaptive table will provide a fuel-setting that requires no further compensation based on feedback from O2. The point to this way of doing it is that due to slownes of the O2 sensor, rapid changes of power will not be able to use trustworthy information from the O2 sensor, so the O2 sensor at this stage is disregarded. However, the adaptive value from the adaptive table is still considered, so the lack of O2 data during the 1 or 2 seconds the engine goes open loop makes hardly a difference.
This means that whenever a resistor is added in order to falsify the temperature reading, the richer mixture is noticed by the O2 sensor, and after a while, the compensation value is stored in the adaptive table in order to also be able to compensate during open loop conditions (mainly acceleration).
BMW started with adaptive ECU in the 4-valve K100 in 1989, and all injection engines thereafter have adaptive engine control.
It does take a while for BMS to fill in all blanks in their adaptive table. And the purpose is pollution control, as any changes in the system will be compensated, such as a clogged airfilter, different muffler etc.
I'm not saying that sensible people are wrong, but I have to admit, I don't understand how this can possibly work over time..