Jump to content

AFR raising up over time


DenisAlmos

Recommended Posts

It's been a few months I'm learning how to tune and tryng to improve my mapping but I'm facing a problem with AFR values:

6 months ago, my engine builder mapped the car and under boost, I had 11.5 as he wanted to. That was in summer at 35°C outside. It was a quick map as I wanted to learn how to do it myself and didn’t wanted to pay much money.

2 mounts ago, I updated the fuel values because they were too poor. At that time I thought it was because of the colder air of winter (around 0°C0) and the fact I don't have an IAT or ACT sensor. With 96% injection duration, I had sub 12 AFR at 1.3 bar of boost.

Now I see the AFR going to 14 or more under boost using the same values (around 13°C outside). Fuel pressure is 3.2bar at idle and 4.7bar under boost.

Do you think I have an injector stocked open?

If not, what could be wrong?

 

Have a look at the logs here: https://drive.google.com/drive/folders/1CWP1k4VQQF5FD45FL8KzAsv78EikZdIC?usp=sharing 

Link to comment
Share on other sites

When you have similar air flow and similar PW you expect the resulting AFR should be similar.  

There are not many directly comparable conditions in the two logs, and not all relevant info is recorded but there are a couple of small areas under power where some conditions are quite similar.  In these areas, RPM, MAP, temperatures and inj PW look similar, but the reported lambda seems more different than it should be.

So, possibly something is affecting the amount of fuel that is reaching combustion (fuel pressure/blocked filter, block injectors, etc), or the measuring device is not giving an accurate indication of AFR.  A fuel pressure sensor in the rail would help eliminate some of these possibilities and another known good wideband would be a good test also.  Your lambda calibration looks pretty odd, is it a X-series or one of the older AEM widebands?

What is DI5 used for that changes the fuel & ign table?

 

Link to comment
Share on other sites

Well I've started investigate some mechanical issue, I've installed a fuel pressure sensor and will add an ACT sensor soon. What relevant info should I log in addition?

The AFR sensor is a few mounts old and it's an AEM X-series gauge wired in analogic. For the calibration, I've tested the preset one but I could see some differences from what I read on the gauge and what the ECU reads so I inserted the calibration written on the instruction manual and it's works fine.

I used the DI5 to switch from 98 Octane fuel to E85 but I only use E85 as it's half the price of 98 and I don't need knock witch I don't know how to set.

 

Therefore, the news is, I've found the origin of the problem: I switched off the Lambda Open Loop Correction a while ago because I thought it wasn't doing anything. I turned it back on yesterday an I went to work with the car today to test it [lockdown at 6pm here :-( ] and my 11.5 AFR was back!

Can you explain what does the Lambda Open Loop Correction and why is it so important?

Link to comment
Share on other sites

Open Loop Lambda Control applies the target Lambda to the fueling equation. 

For example if the rest of the Fuel equation comes up with an output of 5ms and the Lambda Target is 0.9 the output will be 5/0.9 = 5.56ms, the idea is that if your deadtimes are set up properly you can change the AFR at any point by changing the value in the target AFR table like you would in Modelled Mode. I personally have Open Loop Lambda Correction on in all of my Traditional Fuel tunes but if you turn it on after tuning your fuel table you will need to adjust each value in the fuel table (other than the ones with a  target AFR of 1) to account for this extra correction.

Link to comment
Share on other sites

On 2/10/2021 at 9:23 AM, DenisAlmos said:

Does it mean the values in the fuel table should be at lambda 1 if Open Loop Lambda Correction is off?

No, I'll see if I can explain that a little better.

Open Loop Lambda Correction on:

    output = Fuel table % * load compensation (typically MAP) * Master Fuel * master fuel trim / lambda target

Open Loop Lambda correction off:

    output = Fuel table % * load compensation (typically MAP) * Master Fuel * master fuel trim

 

and obv there are a bunch of other trims in there as well but these are the main ones.

Link to comment
Share on other sites

Thanks @Vaughan for the formulas, it's much clearer now.

What I was try to say is, if you have the Open Loop Lambda Connection on and you set 1 in all lambda target table cells, you should end up with lambda 1 for real? It is the purpose of this mode to be able to change AFR without searching for the corresponding PW?

So for some like me, who tried to switch it off to see the difference, we are supposed to have lambda 1 for all driving situations?

Link to comment
Share on other sites

If you tuned the engine with Open Loop Lambda correction ON and it was tuned to match the values in the AFR target table and your injector deadtimes were close enough then yes it would run at approx Lambda 1 everywhere when you turn Open Loop Lambda Off.

It is Open Loop not closed loop so it isn't actually looking at the lambda value coming out of the engine and updating, it is just a blind correction that assumes the fuel table is correctly tuned to match the values in that table (and was tuned to match those values while Open Loop Lambda was on).

 

If you tuned the fuel table with Open Loop Lambda Off turning it On will cause non Lambda 1 areas of the target table to run at a a different AFR than they were tuned for. for example if a particular cell has the value of 0.9 and the fuel table was tuned to achieve 0.9 Lambda while Open Loop correction was off then turning it on will cause that cell to run at 0.81 Lambda (say fuel table value of 50 results in 0.9 and then the open loop correction of * (1/0.9) is applied you would get an output of 55.56 which will result in that richer 0.81 Lambda out).

Link to comment
Share on other sites

Ok, it's what I've understood, thanks

 

And what if my engine is tuned with Open Loop Lambda On and I want to set it off but my values in the fuel table are up to 96% for a 9ms master fuel?

I see in my logs the pulse width going up to 26ms sometimes but the Duty cycle is just at 100%. Can you explain why?

Link to comment
Share on other sites

if your fuel table value is 96% with Open Loop on and lets say a target of 0.9 you would want your value to be 106.67 with Open Loop off (fuel table values can go up to 150 from memory, this just means that your injector effective pulsewidth would be 9.6ms before other corrections like load source and the various trims.

Injector Duty Cycle does not equal fuel table value. Injector Duty Cycle is the percentage of time that the injector is on, not the percentage of 9ms that the injector is on.

Lets say you have a 10ms injector pulse on a 4 stroke engine with sequential injection running at 3000rpm.
One engine cycle in this situation would be:
2 revolutions per cycle *1/ (3000rpm / 60s) = 40ms per cycle.
40ms per cycle with the injector being on for 10ms would be a 25% Duty Cycle.

The same engine with a 10ms injector pulse at 6000rpm would be:
2 revolutions per cycle *1/ (6000rpm / 60s) = 20ms per cycle.
20ms per cycle with the injector being on for 10ms would be a 50% Duty Cycle.

Obviously you can't get more than a 100% Duty Cycle on the injector as 100% Injector Duty Cycle is the injector being open all of the time.

One note on your 26ms pulse, aggressive accel enrichment or high load during cold start can cause much higher than normal injector pulse widths and so much higher Duty cycles.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...