×

Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

AFR Table - Filling in the Gaps

Understanding AFR

Forum Posts

Courses

Blog

Tech Articles

Discussion and questions related to the course Understanding AFR

= Resolved threads

Author
1372 Views

After watching the Understanding AFR course I had a look at my Lambda Target Table and other fuel tables and it seems the operating philosophy is to run lambda 1 unless there is an extended period of WOT (>30s) or unless component protection is activated. I decided to modify the stock lambda target table to the recommended starting values in the course and I was then planning to evaluate the AFR changes. The before and after tables are attached.

I then used the 4 way interpolation function to smooth out the table which seems to do a good job of smoothing the table but I think the values are now too far away from my targets.

Attached Files

I would not worry about "smoothing" the table, the values will be interpolated (like your graphic shows), and will provide intermediate targets to change the fueling just fine.

I'm not sure those are the right targets, but that's why you test and tune.

Good Luck!

Hi David,

Thank you for the response.

So leave the targets as per the Lambda Target Bank 1 (After) JPG and the ECU will interpolate between the cells?

What jumps out at you as being incorrect?

The .95 Lambda at 0-40 kPa above 5k RPM. Not sure what you're trying to do here. You are not making power, and the extra fuel won't help cool the combustion, might be it won't matter if you have decel fuel cutoff (sometimes referred to as DCFO) active, which makes no combustion happen.

And why go back to Lambda 1.0 after reducing the lamba high-load, low RPM? To me, as the load goes up, the lambda always stays the same or goes down (richer), I would never see a reason to have it go leaner as the load increases. Idle conditions are the exception to this rule, often you want to run a slightly richer mixture at idle to help stability, eliminate popping, etc.

These values have been taken directly from the course content (see below) and were to be used a starting point for the AFR table.

So ive invested a little more time into reviewing datalogs from OTS maps from other B58 engines. I've used these values as the starting point and smoothed out the table. The new AFR table targets lambda 1 at cruise and progressively gets richer with increased load/rpm. Any feedback would be appreciated as it is helping with my development and understanding.

Attached Files

While the OEM table indicated that enrichment at lower loads likely isn't necessary on this engine platform, the values you've selected certainly don't seem concerning from a reliability standpoint and I'm glad you're tinkering.

I like to ask people a few questions when they start adjusting with their tune. For example:

How are you evaluating whether your changes are making an improvement?

What are you hoping to improve?

When it comes to applying an example set of AFR targets to an engine, it's important to keep in mind that not all engines are designed to operate optimally under the same AFR targets. Many recent engines, certainly German ones, are designed to operate at lambda 1 under all reasonable conditions for best emissions. The engine system has been designed around this goal, so it's not something you can necessarily apply to an older engine without melting it down. Similarly, significant enrichment isn't necessarily something you have to apply to this engine either, but your most recent approach looks like a much better compromise.

Hi Mike,

Thanks for getting back to me.

To answer your questions, because the B58 engine is a torque based tune I was thinking I would notice a reduction in targeted boost for any torque improvement associated with a change in AFR. My reasoning is for the same pedal request, the ecu will request the same torque regardless of the AFR table. From the torque to load table, the ecu will calculate the required load to make that amount of torque. If the change in AFR increased the torque output then the ecu would request less boost to make the target load. Am I correct in my thinking?

I’m also hoping to define safe AFR values before I start to increase the ecu torque and load limits etc. I’m also seeing up to -6 degrees of timing corrections during turbo spool which I want to investigate if adding more fuel will reduce the corrections.

I don't have experience with that exact stock ECU so I couldn't tell you whether it treats AFR as a factor impacting torque, but that's easily checked with a before/after test. Some modern German ECUs do it, some don't. I would alter a block of RPM/Load cells for dramatically richer AFR target, log the car before and after, to see if the monitored torque value changes, and then you'll have your answer.

If you're working with a well defined ROM, the tables for AFR impact on torque may even be visible, which is a dead giveaway.

6 degrees of correction sounds like a lot, so I'd review cam phasing, ignition timing and AFR to see which might be to blame.

So I've created a graph from some old datalogs and found that decreasing the target lambda, from the stock values, increased the target load for a similar target torque (see graph below). This tells me that increasing the amount of fuel has decreased the cylinder torque and the ecu is adding more boost to achieve the target torque. My next step will be to increase the target lambda values back towards the stock values until the target load is similar or starts to drop below the stock targets. For data accuracy I will complete the logs on the same stretch of road on the same day.

""

Right on. Keep in mind torque to lambda operates on somewhat of a bell curve, so going to the rich or lean ends both result in torque reduction. While leaning back out to stock values may increase torque compared to your current adjusted lambda target, leaning out further than stock will eventually cause torque reduction if you adjust lambda target far enough.

There's more info on this in HPA's Understanding AFR course.

I have made some good progress in scaling the MAF sensor during steady state conditions and I generally see my actual AFR values within 0.02 of the target values. However, I am still seeing the lean AFR spikes during large throttle changes e.g. when I do my Ramp Run logs. As you can see from the graph below, the actual AFR is 1.07 when targeting 1.00 (not shown and graph but the STFT is also adding 4% additional fuel at this point also). I've compared the RPM and Load values for these lean conditions against the same RPM and Load values under steady state operation. For this example, under steady state at 1500 - 2000 rpm and 70% Load my logs show that I average a 1% rich condition but during transient conditions its 11% lean! Any help on other things to consider would be much appreciated as I'm still confident that this lean condition causes considerable knock retard at the start of the pull that has a negative impact on timing for the rest of the pull (albeit progressively reduced retard as the WOT run progresses).

Shaun,

I'm glad to hear you've made good progress!

It looks like the logging rate you're working with is very slow, so we'll both do our best, and that's likely part of what's made steady state easier to tune since it's not as negatively impacted by a slow logging rate.

You've highlighted an area of transient airflow and transient throttle, so both may be related, in addition to MAF scaling itself.

Do your best to avoid including data collected during a throttle transition in your MAF corrections. Transitions are going to happen while you're driving the car, I'd just ignore them until you're done with MAF scaling and have the vehicle hitting targets during steady state conditions and steady throttle conditions. Then you can work on TPS or MAP based acceleration enrichment after. I don't suggest altering those compensations at this stage because it muddies completing MAF calibration.

An example of how to achieve that airflow in another way would be to floor it sooner and see what happens at similar MAF V, but with stable throttle angle. From what you said, it sounds like you may have already done something like this.

Is this engine naturally aspirated, turbo, supercharged?

Thanks for getting back Mike.

I will look to use alternative software for datalogging to see if I can improve the rate.

The engine is turbo charged and direct injection so I'm surprised to see lean conditions on transient throttle when I have my steady state MAF scaling dialed in nicely.

Shaun,

Got it, thank you for that info.

DI engines generally don't need transient fueling correction as you've eluded to, but the transient issue is likely one of transfer delay of airflow between the MAF and engine rather than being related to transient fuel.

When you snap the throttle open the engine consumes what's nearby, then the system starts to refill. While this happens relatively quickly, the greater the volume in the system between throttle plate and MAF sensor, the more poorly/slowly the MAF sensor reading will reflect that increase in airflow.

To bandaid this, many ECUs use a speed density model, or speed density correction to airflow during transients. Does yours seem to have tables associated with TPS delta, MAP delta, or perhaps dynamic airflow, or any tables that related to fuel and use MAP as the axis instead of airflow?

Hi Mike,

Thanks for the additional info.

The tables that I have available are shown below:

""

Would any of these help?

Shaun,

The calibration tables for the MAP sensor merely characterize the sensors, so if the sensors haven't been replaced with aftermarket units, there's no need to touch those tables.

Of the throttle tables you pictured, none appear to be what I'm thinking of. It's possible you don't have the tables I'm thinking of defined in your software, or they may be named differently from the wording I've used. Is there nothing in the fuel related section that seems related to a delta in pressure, throttle, or load?

Mike,

Please find the fuel related tables below:

The fuel scalar table below is related to load and I have been making some adjustments here during steady state tuning.

There is a table that seems to alter the lambda target based on actual torque at WOT but I'm not sure if this table is used. Suppose I could try making the values rich and see if it has an impact

The only other table that I have previously looked at is Mass Flow Correction over Pressure Ratio but I plotted pressure ratio over total fuel trim + Lambda offset and could not find a correlation from the datalogs that I completed. In one ramp run I would see excessive correction at a pressure ratio of say 0.86 but on other runs I would see no correction at the same pressure ratio and engine speed with the correction moving to a different corresponding cell.

Shaun,

I'm not seeing anything available to you related to what I was discussing, and so far everything you have said seems to indicate your issue is one of transient behavior causing observed lambda to be leaner than lambda target. Transient corrections would be a solution, altering lambda target would impact transient and steady state behavior so it isn't a proper solution.

If this was an at the track emergency to get a race car through the day and the engine was 7% lean of current target, you could target a value 7% richer to approximately hit the original target, but again this would screw up steady state so this is not a proper solution I could suggest.

Do you have a log showing fuel trimming? I ask in case this is a situation where conditions before the lean area were causing negative trimming, as it does take time for the ECU to shift trims, and having a rich area right before a lean area can exacerbate the issue you're experiencing.

Hi Mike,

I've sifted through my old logs and the log below is one of the best logs that I've got that shows minimal lean conditions during transient throttle. This is after doing a few steady state tuning iterations.

https://www.bootmod3.net/log?id=64dbaa21ae729b43b3889d10

However, during the same logging session using the same map I have also got this log that shows considerable lean conditions during transient throttle:

https://www.bootmod3.net/log?id=64dba6cbc090c665e0b64f68

To me, both logs look similar during steady state with both having minimal fuel trims. Both logs are within 10mins of each other during the same journey and transient throttle start at a similar rpm

Thanks Shaun. You have a negative trim of -2% preceding the tip in event in the log that's a bit worse, 0 to +1% in the other, which are both reasonable, and doesn't appear to account for the different behavior.

You were at 2100 vs 2500 RPM (approximately) at tip in point, so there is some difference there which may or may not be relevant.

I noticed in the "good" log the engine made quite a bit more boost, with no calibration or drive mode change? Load targets, boost targets, ignition timing, etc. are quite different despite same accel pedal position, both runs in 4th gear. Any thoughts?

Is there a fuel comp based on ignition timing? Ignition timing correction total is around -6 to -7 on the "good fueling" log vs. -0 to -1 on the "bad fueling" log. Perhaps additional fueling occurs beyond a certain level of knock response.

Hi Mike,

Definitely the same calibration and same drive mode. The ECU is torque based so I assume on the 'good' log the ecu is targeting higher boost and load to achieve the same target torque in the 'bad' log due to the increased timing corrections in the 'good' log. From I've worked out on this ECU, total timing corrections are based on IATs and individual cylinder timing corrections are based on knock sensor readings (I did read somewhere that the ECU corrects for fuel quality but I've seen no tables for this and I'm not sure there is even a sensor for this so I assumed that this must be being inferred by the knock sensor readings). Your questions about timing corrections are interesting though as on the 'bad' log there are no/minimal timing corrections due to IAT and no individual cylinder timing corrections at the start of tip in. Whereas there are excessive cylinder timing corrections on the 'good' log at the start of tip in.

Yes there is a super knock fueling table in which the stock table values were leaner than my main fuel table so I updated the super knock table to match the main fuel table.

The excessive knock issue is one of the reasons I was looking at the fueling

I suggest adjusting ignition timing to values that aren't inducing so much knock. Pulling 6-7 degrees timing while lambda is on target suggests timing is too aggressive.

Thanks for that Mike.

I decided to fill the tank with Shell 99 RON fuel to see the impact on individual timing corrections. It appears that the timing corrections have reduced but some cylinders are still seeing some corrections on WOT. Similar to previous logs the log below shows that with no timing corrections (total or individual cylinder) before tip in, I experience a lean fuel condition. I'm not sure why the timing is having an impact on fueling but I suppose this could be a red herring.

https://www.bootmod3.net/log?id=65094068c090c67d89133507

Shaun,

On most standalones and older OE ECUs I would totally agree that the few degree timing change isn't related to the lambda change, and that may still be true in your case. I'm not suggesting the timing itself may be causing the lambda change, but on some modern ECUs there MAY be a purposeful ECU feature that adds enrichment during significant knock events, and that doesn't necessarily show up as a lambda target change, sometimes only extended injector on time. Unfortunately I don't know your application to say one way or another if this would be occurring.

Like you said, it may be totally unrelated as well!

Sorry, I wish I had more specific insight on that ECU for you, so my workflow would be digging for monitors that might allow me to determine what's changing between desired and undesired behavior, then trying to find table related to the strategy that may account for the difference.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?