Pages: [1] 2 3 ... 5
Author Topic: Lean Burn on ME 7.1 (Lambda > 1 in closed loop) - better MPG when cruising  (Read 48486 times)
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923



Time to knock another perceivably insurmountable problem with out ECU down. One that says our cars cannot run on anything over Lambda=1.00 or AFR=14.7.

It is truth that ME 7.1 is coded in a way that it is impossible to go over 1.00 lambda. Several hard coded (no maps!) condition checks inside ECU program substitute higher than 1.0 Lambda with a value of "1", effectively making "1" the highest lambda ECU can run at.

The question is though: how does the ECU know what lambda it is running at? It cerainly doesn't just guess or anything like that so some sensor must be telling it the exhaust gas condition. The O2 sensor at reach bank tells it through its voltage output what is the current Lambda of exhaust gas is.

There are numerous aftermarket solution that will allow anyone to run their cars at any lambda they want without the ECU having a clue that it is being lied to. They include stand alone "between the ECU and O2 sensor" boxes, Zeitronix O2 wideband can also supply ECU with narrowband look-a-like signal at any real AFR you set it to stick to.

The result is that these boxes lie to ECU about the actual exhaust gas condition by substituting real O2 signals with their own generated ones. You can set these to report Lambda = 1 (or 0.455 volts) at any AFR you want, commonly being 15.4 which is considered the best economy AFR.

It is all nice but how about doing some shenanigans inside of ME 7.1 to accomplish similar effect? Read on.

Narrowband O2 sensor like S4/allroads/A4s (some) are using, is good only at measuring Air to Fuel ratio at Lambda = 1. They quickly lose resolution once stepped few hundreds either side of Lambda = 1. The following picture illustrates it very clearly:




Some measured voltages with delta (percentage change) from Lambda = 1:




The challenge is to find how the ECU is exactly figuring out what AFR it is running at. The way ECU works in closed loop is very simple. It reads the voltage, determines how much it is off from a sweet point towards lean or rich, adjusts injection time slightly, measures again, adjusts injection time, and  so on, and so on, it is a never ending cycle. The result is that ECU never really sits at precisely Lambda "1", it cruises around trying to eternally reach the goal.

It works since Lambda o2 sensor (narrowband) has great resolution around Lambda = 1. The perfect Lambda of "1" is universally considered to be reached when the O2 sensor voltage reads around 0.450 volts.

I spent some time today analyzing how our car figures out "the sweet spot" and sure enough: module "RL"  translated to "Lambda closed loop control" is responsible for taking the O2 voltage and through a lot of calculations and adjustments, output AFR/Lambda as well as apply corrections to injection time it considers needed at the time to move towards L=1.

Most importantly, there is just one variable that defines what the sweet spot is:

USR - "Control threshold for regulation before Kat"

Address (M-box):  0x11ADE
Data Type: Byte
Conversion formula: (1/192) * x - 0.200
Default:  7B or 0.4405


How do we use this?

Lowering or raising this value will force the ECU to adjust fueling to stick around this voltage value, Looking at the graph above, you want to lower this voltage to a level that will directly correspond to AFR you would like your closed loop to work at.

Due to completely non-linear nature of o2 output and very low resolution of USR, we don't have much room to maneuver if our goal is to reach perfect economy AFR of 15.4, 1.05 Lambda but it is not hopeless.

Here is your graph showing best power and best economy AFRs:




In my case setting this to hex 34 (0.0708 volts) gave me AFR of ~15.0 in closed loop and setting to hex 33 (0.0656 volts) gave me  AFR around 15.2.

There is a catch though. Since the ECU is set to regulate around 0.45 volts with a lot of room voltage wise around that value with very little AFR/Lambda change, running 0.0656 volts yields a car that like to shoot into very lean territory when you are at very light load/idle. This is really no big deal since you don't really over heat engine at such load or get any knock or misfires.

Massaging PID controller for lambda correction will no doubt make it much smoother but I just wanted to warn any pioneers here that want to use it. The problem doesn't show in normal cruise.

ENjoy!
« Last Edit: February 16, 2012, 06:51:14 PM by julex » Logged
rob.mwpropane
Sr. Member
****

Karma: +32/-0
Offline Offline

Posts: 370


WWW
« Reply #1 on: February 16, 2012, 04:56:08 PM »

Just to verify, does this method alter what ECU sees is 14.7, or like you said in your post, does it re-define what ECU sees as sweet spot?

I think a better way to word this would be do you have to alter all fueling maps  to compensate, or just this 1 map?

I looked in the FR, and I'm thinking it just re-defines the "sweet spot" as you say.
Logged

This has nothing to do with cars but you can see my glorifying job at,

www.MWPropane.com
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #2 on: February 16, 2012, 05:07:43 PM »

It re-defines what ECU hovers around but still reporting 14.7:1 mix.

There are implications when using this. If you use this method to raise your real AFRs, you will no doubt encounter pulled fuel on your LTFTs as your current fueling will use too much fuel.

This will no doubt alter high range frao_w / frao2_w which will directly alter WOT fueling.

The simple solution is to just pull some amount % wise from your KRKTE as your idle trims show or even better just use wideband and see what your car runs at.That value divided by 14.7 will give you an idea how much less fuel you need on KRKTE.
Logged
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #3 on: February 17, 2012, 06:44:00 AM »

Update.

Run my car around the town with USR = 0.0604 for about 20 miles. This translates to ~15.5 on my AFR gage.

Before changing my USR my fuel trims were pretty close to zero on both banks. Now I am getting 0.90 fuel corrections for closed loop low-mid range operation. WOT Stays at 1.0 which is good.

Since the car requests 10% less fuel to operate than before, it would appear that it works. I don't expect 10% improvement in MPG as I lose just a bit of torque due to leaner mixture, but there should be at least 5% gain here which is 1MPG in our cars. Nothing to sneeze on!
Logged
jibberjive
Hero Member
*****

Karma: +23/-2
Offline Offline

Posts: 536


« Reply #4 on: February 17, 2012, 03:02:00 PM »

Nice, this is exactly what I was going to start looking into for my sister's allroad, after I got my own car and normal ME7 knowledge up to snuff.  This looks like a much simpler approach than I was expecting to have to take. I'll have a wideband on it as well, so I'll be able to contribute some more data points of voltage to AFR, to see how consistent the O2 sensors read from one car to another.
Logged
professor
Sr. Member
****

Karma: +25/-0
Offline Offline

Posts: 409



« Reply #5 on: February 18, 2012, 01:22:22 AM »

Nice topic.

I am also looking for fuel save alternates in close loop environment.
The 0x11ADE looks like this? If i am correct mine should be at 0x11ADA with 7B value. Can you upload a screenshot of the hexdump?

If i understood correct this doenst affect WOT conditions?
Logged

Seat Ibiza MK4 Cupra 1.8t 20V, stg3.
"Those 1.8T 20V machines are really tough" ©
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #6 on: February 18, 2012, 01:34:14 PM »

The only way to figure out if that's it is to compare this region in m-box (or other cars with OLS available for them) to your car and see if stuff matches. RS4 Allroad and other OLS files are posted on this forum - find USR , view in hex and try to find this region in your tune.
Logged
carlossus
Sr. Member
****

Karma: +38/-0
Offline Offline

Posts: 394

Leon Curpa Stg1+


« Reply #7 on: February 18, 2012, 03:09:43 PM »

ME7.5 wideband. I don't think USR exists (don't have 7.5 FR) but we do have USRJ.
Logged
prj
Hero Member
*****

Karma: +1072/-480
Offline Offline

Posts: 6035


« Reply #8 on: February 18, 2012, 06:38:07 PM »

I like the logic of going leaner than stoich, but I don't like this hack, and I will explain why.

1. The mixture is regulated to 15.4 everywhere, but you don't want 15.4 at idle, as it will increase misfires.
2. ME7 stays closed loop and lambda=1 very often. Doing it this way will increase knock at higher loads, but lower RPM's.
3. There will be a very harsh jump between 15.4 and when it goes open loop.

For this to be good, we need at minimum a min rpm/max load threshold value for when this hack is enabled.
Better would be to read a map based on actual load and interpolate the value from there.

Some ASM coding will be required, but it's pretty easy.
Basically I mean dynamically changing USR based on certain conditions, so that we have 14.7 or even a bit richer on idle to help with misfires, 15.4 on light and part load cruise, and normal behavior whenever we do anything but gently cruise along.
Logged

PM's will not be answered, so don't even try.
Log your car properly - WinOLS database - Tools/patches
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #9 on: February 19, 2012, 12:27:31 PM »

1. Maybe. That depends if you already have misfires at idle or not. If you do... time to either tune the fueling properly or get better injectors Smiley

2. There is really no knock present on my car until hitting heavy at 20psi. At least I never logged any corrections at load below 180ish and at this point the car is running on open loop for a long while already getting much richer mixture than closed loop calls for.

3. There wouldn't be since all tables are geared towards gradual adjustment. The system doesn't drop from 15.4 to 11 in one step as you'd think. The values are interpolated so it would do it gradually. But that's a very extreme example which will not be representative of real life tuning situation as no table should ever be set up like that.

I am not advocating or persuading anybody to use it. I just merely present a simple way to do it others missed to date.
Logged
phila_dot
Hero Member
*****

Karma: +173/-11
Offline Offline

Posts: 1709


« Reply #10 on: February 22, 2012, 12:11:01 AM »

Nvm.....
« Last Edit: February 22, 2012, 12:25:48 AM by phila_dot » Logged
phila_dot
Hero Member
*****

Karma: +173/-11
Offline Offline

Posts: 1709


« Reply #11 on: February 22, 2012, 12:40:13 AM »

ME7.5 wideband. I don't think USR exists (don't have 7.5 FR) but we do have USRJ.


This will not work for wideband ECU's. Sensor voltage is not used, actual lambda is compared to target lambda.
Logged
julex
Hero Member
*****

Karma: +79/-4
Offline Offline

Posts: 923


« Reply #12 on: February 22, 2012, 10:01:36 AM »

This will not work for wideband ECU's. Sensor voltage is not used, actual lambda is compared to target lambda.

Not this specific variable. To see how this could be done on WB car, one must think about it a bit. I have a suspicion that there must be a linearization table to wideband sensor that tells the ecu that so many volts equals this lambda.

Since I have no personal interest in pursuing this for a car I don't own (wb one), anybody interested in this will have to hunt on their own. With all the OLS out there this is really not that hard people.
Logged
elRey
Hero Member
*****

Karma: +32/-1
Offline Offline

Posts: 565


« Reply #13 on: February 22, 2012, 10:08:42 AM »

This will not work for wideband ECU's. Sensor voltage is not used, actual lambda is compared to target lambda.

It could work. wideband is just two narrowband sensors working together. 1st sensor measure AFR of a 'sample' of the exhaust in a small camber. 2nd sensor acts as an O2 pump pumping O2 into that sample until 1st sensor reads 14.7. AFR is determined by HOW HARD the 2nd pump has to work (current vs voltage) to make the 1st sensor read 14.7.

So, if the 14.7 voltage calibration of 1st sensor is modified like you are suggesting, it should work the same. Only you offset all AFR readings. So, if you make 15.4 read 14.7 you also make 13 read 12.3. Car thinks it's running 12.3 when it's really running 13. And it might not be linear making things complicated to know your real AFR.
« Last Edit: February 22, 2012, 10:10:48 AM by elRey » Logged
elRey
Hero Member
*****

Karma: +32/-1
Offline Offline

Posts: 565


« Reply #14 on: February 22, 2012, 10:58:56 AM »

LALIUS : Lambda linearization

input:
USVKK_W : LSU voltage before Kat corrected
Logged
Pages: [1] 2 3 ... 5
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.025 seconds with 17 queries. (Pretty URLs adds 0s, 0q)