AFR Smoke Map
Alright, so it's time for one of those longer, detailed posts I've not been writing in a while. After all, I like details. Details also take a long time to process. Side note, It took me a while to figure out how to process and parse 130 MiB CSV files with 10 ms data resolution for another project of mine...
Anyhow, I've been wanting to adjust my tune for a long time. I've been playing with it quite a bit in order to understand the hardware too, mostly the electromechanical properties of the IP. I think my WFC variability is also related to whether or not the ECU detects to overfueling moment on the faulty injector nozzle or not too, but that's for another time.
The first thing I knew I'd need or want when doing the tune on the car was the volumetric efficiency of the engine, which is why I did those tests a few years back. Also, a compressor map is kinda required, somewhat, without extensive guess-and-check for the turbo's operating parameters. Having a properly setup IP is useful too, but that is the 12 mm in the works.
Due to WFC, aka Warp Field Collapse, aka asking for fuel when the cam plate can't give you more, I'm using the Torque Limiter as a correction map and placing limits of fueling to 50 mV under when I have a stall. This strategy is working out fairly well. Actual usable power on the other hand is dependent upon if I have enough air to burn the fuel I want to inject. This means I need to match vane position to boost pressure to fuel quantity to air mass. Vane position and boost pressure are largely taken care of due the the tuning I've already paid for.
However, since there are limitations on the turbo as to how much air mass it can flow with a given input, that means there is nairy a point in trying to spool the sucker when, by reputation, it won't spool. This led to using the Smoke Map/Limiter to being the dominant control for power output. However, I wanted a better guess at the guesswork of adjusting it, so I developed some simple Excel tools (simple compared to managing & auditing +30K cells in Excel over fiscal years) to create and modify my smoke map by way of AFR. Time for some images:
Base AFR Map:
Initial RPM to use the smoke map to limit some starting IQ, possibly. It smooths things out a touch once the engine is spinning, or so it seems. Due to dynamic idling, the 21-RPM-aliased 800 & 1000 RPM manage the max fueling in the majority of operating modes. From there, I increate RPMs at 200 intervals, aliased to 21 RPM up until 1995 (2000) RPM. From there I do two quick hops at 250 RPM since the turbo is spooling at ~2200 and fully spooled at 3000 RPM, and then I taper off after 4000 RPM to just a touch over 5000 RPM. These points were chosen due to the spatial resolution for spooling the turbo, light load driving, and the turbo's transient performance.
Since this is the smoke map measuring air mass to fuel mass would be fairly straight forward. But the problem is, we look at boost pressure, not air mass, to gauge how well the turbo is operating. Due to volumetric efficiency, this means that different masses of air will provide the same pressure ration for the turbo. Through some careful calculations, which I'm not currently showing, I have a hefty Excel sheet that will spit out comparative numbers to the surge and turbine speed limit (PR v Mass flow) for each RPM instances I specify while interpolating the volumetric efficiency at the said instance. Here is the cliff notes table I generated at about 0.3 PR intervals:
From there, I used the minima & maxima from the PR v RPM bands to dice up the Air Mass axis on the smoke map to be more friendly to the problem of aliasing. That's why the numbers are "weird".
I then applied some general logic to both the Base AFR maps and this latter table:
- Trying to spool the turbo prior to 2200 RPM is mostly pointless, but some extra energy help from fuel is beneficial up to 200 RPM sooner, Doesn't hurt to ease into that too.
- Turbine speed increases in a semi-linear fashion with PR, but 30K to 60K requires more energy than 60K to 90K, or 90K to 120K RPM of the turbine. The speeds are arbitrary, but the relative concept is the same. This means that when the turbo is slow at low PRs, don't force feed it fuel because that will just smoke up the place with limited results. It will take time to spin up so don't be wasteful
- Once it's closer or already accelerating, a extra dump of fuel can be had, but once you get enough boost, and/or your engine is pumping enough air, you don't need as much fuel, so you need to taper off.
Some of those principles are easily applied to the Base AFR smoke map, but some are more complicated. After some organizational work in Excel, I created an AFR offset table with those AFR offsets to induce more fueling:
I used a plugin to apply bessel spline interpolation to fatten the affected region. It's analogous to anti-aliasing hard lines on an LCD screen. I then just add those maps together, dynamically, to get the final [test] AFR-based smoke map:
This is the third iteration of this version of this map and second version of creating and AFR-based smoke map. The fueling numbers are not properly accurate since the pump voltage maps has been changed, but it's close enough for the time being. I am likely to knock out the 500 mg/str airmass column, move the 400 mg/str over, and replace that left most column with something between 200 & 300 mg/str since I do live near the mountains.
Now, some might wonder how much of a difference in fueling is made by the AFR adjustment you see above. The following screenshots are without the offset and then with the offset. Divide the resultant values by 100 to get fueling or air mass mg/str.
Without AFR offset:
With AFR offset:
As you might be able to see, a 3 mg/str delta can be significant enough to provide a 1.5 AFR delta in favor or more fuel. For subtleties like this, I'll use some math an automation to apply my changes. My test drive home was pretty good, despite being at night. I'll be testing it again today. I do need to lower the idle AFR by about 2 points for the clutch drivability though; maybe.