Sunday 8 April 2018

Injection table smoothing

My Wideband automatically adjusts the injection table based on the mixture sniffed from the exhaust. 

In an ideal world I'd run all combinations of Throttle position (TPS) vs. Revs to completely map the engine - exactly what a rolling road does - in real world road driving you get specific feedback points here and there peaks and troughs of mixture adjustment.

So, a little desktop work with a spreadsheet - the intention being to take the injection map as an input, apply a smoothing algorithm without being too destructive and produce the next iteration of the injection map.

Parameters

My spreadsheet implements a simple algorithm taking into account each injection cell's neighbours/adjacent cells. Its just averaging each TPS/RPM point to be somewhere in the middle of its neighbours.

The smoothing mask then applies those changes to the existing injection map while letting me mask out areas like low RPM/Stall catching which I don't want to change and the 2x areas of Idle and Fast idle tested during MOTs which I manage completely manually.

I'm also reducing the smoothing around the edges to help maintain the overall shape of the map.

The neighbour weighting table represents how much each adjacent cell affects the average - I'm setup to smooth more in the direction of acceleration - i.e. diagonally from low TPS/RPM (top left) to high TPS/RPM (bottom right).

Smoothing applied drives all the values in the smoothing mask - so I adjust influence over the entire table until the graph starts to look more progressive before it erodes too much detail - 75% seems like the sweet spot on this cycle.

The slowest step is copying out the current ECU injection map to the spreadsheet - the only way is manual copying.

Top left - current map, Top right - showing weighted differences to neighbours,
Bottom left - the smoothed map, Bottom right - weighted differences on the output.

This example from a second cycle of smoothing so only subtle changes evident - what should be happening is the bottom right differences are overall less than the top right.

Results

The output is a new injection map, table of changes, and a graph of the new map so I can immediately see if it looks right. I can then tweak the various controls to the amount of smoothing I need. Initial results look and drive well though, I'll give it a few more goes -  drive, add in Wideband feedback, smooth, repeat.

This table showing relative changes, ready to update the ECU map.
Example of the ECU injection map - with just wideband feedback, and then smoothed.

An iterative process - the primary driver on injection is feedback from the Wideband lambda setup, the initial results look good though - a good balance between point adjustments being implemented, smoothed into the map while maintaining the main features.

The smoothing IS destructive - its like weather eroding mountains and filling rivers, but it does seem to counter/help with the issue of limited feedback data points after driving.


Took the car for a drive afterwards - a good 100 miles around Sussex, she still flys and generated another round of Wideband feedback.

...and keep in mind,  I'm just an amateur tweaking/playing, some reading reference, doing what seems reasonable, but certainly nowhere near the kind of knowledge a tuner would have.

No comments :

Post a Comment