Pages: [1] 2 3
Author Topic: LEAN BURN : Target Lambda Constant  (Read 22635 times)
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« on: September 03, 2012, 11:11:42 PM »

Target lambda is set to one via a constant if B_falsh, B_lamlash, B_lamlshv, B_lamka, B_lamkh, B_lamnswl, and B_lambts are clear. Basically, if target lambda doesn't need to be controlled for a specific purpose then the constant sets it to one. Changing this constant should not interfere with functional control of target lambda.

The constant first gets moved to lamdiag_w, then ultimately to lamsons_w, lamsbg_w, lamvoa_w, and lambas. It can be limited based on tmot via LAMLGMTM.

I still have not figured out what all of the repercussions of changing this constant are, but it appears that lean target lambda will force open loop. It also looks like it may disable ATR unless LATRO is raised.

I was able to define it in my XDF and change the constant to 1.1. ME7Check reported checksums were corrected and comparing to the original revealed checksum changes.

I have defined for M box as follows:
0x3BFB2
16 bit LoHi
X*0.000244141

This is completely untested at this point, so attempt this at your own risk.

Functions that reference lamsons_w:
DLSH
DLSAHK
DLSV
BGMSZS
LRAEB
TEBEB
LREB
LRKA

Functions that reference lamsbg_w:
GK
Also lamsbg_w is used for axis SLX06TMUW.

Function that references lamvoa_w
ATR

Functions that reference lambas:
MDBAS
ZWGRU
Logged
elRey
Hero Member
*****

Karma: +32/-1
Offline Offline

Posts: 565


« Reply #1 on: September 04, 2012, 10:35:51 PM »

Is this discussion for a narrowband or wideband ECU?

I've been running 1.07 lambda in closed-loop on both my wideband cars with no issue.

There are several, separate constants of 1 used throughout all those functions, but only one needs to be found and adjusted. The constant referenced in lamko-lamdsk is the one to adjust.  This is going off memory. I'll look at my file again.

Re-reading your post... that exactly what I've done. No issues. LAMLGMTM was high enough stock.

a smaller DLAMFAW plus one  increment below 1 on lamfa to bring target close to 1 when needed.
« Last Edit: September 04, 2012, 10:56:28 PM by elRey » Logged
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #2 on: September 05, 2012, 05:55:51 AM »

The information I posted was derived from the B5 S4 M box narrowband ECU.

Your input is appreciated though, I'm glad to see someone else has done this.

I think that the only difference may be that the wideband ECU can still operate in closed loop, but I believe that this will force open loop on the narrowband ECU. That may be a good thing though as the narrowband sensors cannot accurately represent these lambda values and calculated fuel mass is usually very accurate as long as injector calibrations are good and there are no hardware issues.

IMO this is much a better approach than changing USR or forcing open loop by other means and using KFLF or FKVVS. This way does not impede any other fueling functions and is only active when lambda would normally be stoich.

Unfortunately, I have a lot of mini projects right now and testing time is scarce.
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #3 on: September 05, 2012, 10:36:15 AM »

I think trusting lean AFR to open-loop is a bit.. scary.

call me crazy.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #4 on: September 05, 2012, 10:44:39 AM »

I think trusting lean AFR to open-loop is a bit.. scary.

call me crazy.

Agreed, however, closed loop is just as bad if not worse because narrowband sensors cannot operate outside of stoich.

I look at it like running boost above the MAP limit.

Unless we find a way to convert to wideband, this is the best option IMO for those looking to go this route.
Logged
jooo
Jr. Member
**

Karma: +0/-1
Offline Offline

Posts: 30


« Reply #5 on: September 06, 2012, 06:56:48 PM »

Is this discussion for a narrowband or wideband ECU?

I've been running 1.07 lambda in closed-loop on both my wideband cars with no issue.

There are several, separate constants of 1 used throughout all those functions, but only one needs to be found and adjusted. The constant referenced in lamko-lamdsk is the one to adjust.  This is going off memory. I'll look at my file again.

Re-reading your post... that exactly what I've done. No issues. LAMLGMTM was high enough stock.

a smaller DLAMFAW plus one  increment below 1 on lamfa to bring target close to 1 when needed.
(regarding wideband ECU)
What is the name of the constant are you talking about?

I would like to try running lambda 1.07-1.12 on low load Closed-loop. Will all targetvalues in all lambda tables be affected.
Does the constant affect WOT?
Logged
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #6 on: September 06, 2012, 09:28:33 PM »

(regarding wideband ECU)
What is the name of the constant are you talking about?

I would like to try running lambda 1.07-1.12 on low load Closed-loop. Will all targetvalues in all lambda tables be affected.
Does the constant affect WOT?

Read the original post again.

It is a constant in the code, it is simply a value of 1 and not intended to be calibrated.

You should be able to find it by comparing the hex at the location above in the S4 M box to your file. However, if you are off you will be modifying code and that could be bad.
Logged
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #7 on: September 13, 2012, 09:51:17 AM »

Ok...another thought.

Change the constant in LREB that lamsons is evaluated against to match the constant in LAMKO (described above) and adjust USR accordingly.

This should keep LR active, provide the proper IOT, and not fight trims. The benefit over just using USR is that the target amount of fuel is getting injected, so this way we are not forcing ourselves to trim to the preffered lambda.

I'll have to dive into LR a little deeper when I get the chance.
Logged
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #8 on: September 17, 2012, 06:43:04 PM »

Set LAMBDIAG, LREBRI, and LREBLE all to desired target lambda. LAMBDIAG is the constant in LAMKO that sets target when there are no other influences dictating lambda. LREBRI and LREBLE are the constants in LREB that enable/disable lean/rich protection.

Lean/rich protection will disable regular lambda regulation (B_lr) if target lambda (lamsons_w(2)) from LAMKO != LREBLI and LREBRI. This function can take action if lamsons_w(2) < LREBRI (rich target lambda) and usvk < USR (lean sensor voltage) or lamsons_w(2) > LREBLE (lean target lambda) and usvk > USR (rich sensor voltage). These conditions can set B_lrnd.

All three constants should be set the same and USR will need to be tweaked to find what your target lambda translates to in O2 sensor voltage. This will preserve lambda regulation (B_lr), but accuracy is lost the further you stray from stoich.

LAMKO constant
LAMBDIAG - target Lambda constant
0x3BFB2
16 bit LoHi
X*0.000244141

LREB constants
LREBRI - Lambda constant for rich protection
0x85DBC
16 bit LoHi
X*0.000244141

LREBLE - Lambda constant for lean protection
0x85DCC
16 bit LoHi
X*0.000244141

USR - controller theshold for lambda control upstream catalyst
0x11ADE
8 bit
X*0.005216-0.2

Not to confuse anyone, the constants aren't assigned labels as they are simply a constant. The names above are just how I assigned them in my xdf.

Again, this is untested.
Logged
zillarob
Full Member
***

Karma: +13/-1
Offline Offline

Posts: 152


« Reply #9 on: September 17, 2012, 07:17:28 PM »

Agreed, however, closed loop is just as bad if not worse because narrowband sensors cannot operate outside of stoich.

I look at it like running boost above the MAP limit.

Unless we find a way to convert to wideband, this is the best option IMO for those looking to go this route.

Would the nb emulator on most aftermarket wb controllers be usable/trustworthy?
Logged
Bische
Sr. Member
****

Karma: +25/-4
Offline Offline

Posts: 397



WWW
« Reply #10 on: September 17, 2012, 07:25:05 PM »

This is very interesting info, one day when I get my fueling sorted I will look into this myself.

A thought I had was just to hack the 02 sensor linearization, and shift it say, 0.05? The ECU sees lambda=1 but it is infact 1.05.

But now I come to think that would probably not work on a narrowband sensor.
Logged
phila_dot
Hero Member
*****

Karma: +171/-11
Offline Offline

Posts: 1709


« Reply #11 on: September 18, 2012, 05:32:20 AM »

Would the nb emulator on most aftermarket wb controllers be usable/trustworthy?

I have no experience emulating narrowband O2's, but I think some members have had some success.

This is very interesting info, one day when I get my fueling sorted I will look into this myself.

A thought I had was just to hack the 02 sensor linearization, and shift it say, 0.05? The ECU sees lambda=1 but it is infact 1.05.

But now I come to think that would probably not work on a narrowband sensor.

From what I've seen, LALIUS is not present in narrowband ECU's and lambda sensor linearization is only performed on the secondary O2 sensors.

Regular lambda control just trims fuel to match sensor voltage to USR.
Logged
hipeka
Full Member
***

Karma: +1/-1
Offline Offline

Posts: 85


« Reply #12 on: November 18, 2012, 02:22:41 AM »

Is this discussion for a narrowband or wideband ECU?

I've been running 1.07 lambda in closed-loop on both my wideband cars with no issue.

There are several, separate constants of 1 used throughout all those functions, but only one needs to be found and adjusted. The constant referenced in lamko-lamdsk is the one to adjust.  This is going off memory. I'll look at my file again.

Re-reading your post... that exactly what I've done. No issues. LAMLGMTM was high enough stock.

a smaller DLAMFAW plus one  increment below 1 on lamfa to bring target close to 1 when needed.

Have you tested this more and how much does this have real effect on mpg readings?
« Last Edit: November 18, 2012, 03:34:28 AM by hipeka » Logged
elRey
Hero Member
*****

Karma: +32/-1
Offline Offline

Posts: 565


« Reply #13 on: November 18, 2012, 12:21:27 PM »

Have you tested this more and how much does this have real effect on mpg readings?

I run it this way full time on both my cars. But truthfully, I noticed more from disabling kat heating and tuning LAMFA. The lean burn can gain you 10% better mpg but only for the time you're in that driving mode (cruise) where you're already burning a lot less that any other mode (barring overrun). Disabling kat heating (SAI) and tuning LAMFA so that ECU doesn't go pig rich every time the gas pedal even thinks you're about to press it more, will gain you more in mpg than lean burn. That's just my experience.
« Last Edit: November 18, 2012, 02:44:57 PM by elRey » Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #14 on: November 18, 2012, 02:42:18 PM »

Ditto. And in ME7.1, there is no SAI, and LAMFA is disabled anyway.

Gee, I wonder why?
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
Pages: [1] 2 3
  Print  
 
Jump to:  

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