Pages

Sunday, 15 April 2018

AFR Corrections - 1% of 21 is less than one

Penny drops.

My previous MO had been to periodically review the AFR Corrections values - % applied to injection, and apply those en-mass to the injection map. Especially when I'd been tinkering with some part of the map, axis ranges etc and getting more corrections.

But

The injection map has values ranging from ~20 - ~170, whole numbers with a maximum of 255. One byte, 8 bits per value.

If I apply a typical two decimal place -1.05% or +0.76% AFR adjustment to an injection cell containing ~20 even ~30 then the net effect is no change. My AFR adjustment is zero'd and effectively ignored. I've been discarding the bulk of fine adjustments every time I apply AFR corrections!

My guess is the Emerald ECU internally is multiplying the Injection table value by the MSPB value into say a higher precision 16 bit floating or fixed point result, then applying any AFR and other Adjustments as percentages to that before scaling to the ECU clock or interrupt frequency to fire the injectors.

So

New procedure will be:
   1. Review the AFR adjustments: apply and zero anything larger than + or - ~2.5%, 
   2. Leave anything smaller on the AFR adjustments table,
   3. Periodically run the result through the smoothing spreadsheet masking off any cells with an AFR adjustment.

If that procedure written in the manual somewhere and I missed it - just shows sometimes I need to learn the hard way! In this example, after a test drive through Kent, Green boxes showing areas to apply, red those to leave on the corrections table.


I do want to apply the large AFR adjustments - once they hit the current max +-15% threshold, applying them to the injection table will allow the Wideband to keep honing the map on the next cycle.

MSPB Milliseconds per bit

I scaled the entire Injection map using additional maps->injection scaling for a maximum 255. My map has some low rpm anti stall peaks which are always going to be the highest point so they may as well be 255 and increase the available bit range for other cells.

This automatically re-calculated my MSPB to 70ms from the default 100ms giving me a little more fine grained adjustment on the low TPS position cells i.e. minimum adjustment of 1 part in ~30 rather than 1 in ~20. 

The ECU is fascinating, especially when I get a little understanding born out in real world experiment.

No comments:

Post a Comment