GUIDE: Skeese's Fuel Map Target AFR Tuning W/ Megalogviwer
#26
Nice thread! I've been using MLV in roughly the same way. One thing I saw mentioned was transients and how do you filter them. Averaging is one way to go about it, I use a different method which I like (not saying there's a right way to do things, just more options for those who want them).
First, I add a calculated field to determine the (rough) derivative of the data I want to filter. This is as dead simple as taking the raw difference between one logged point and the previous logged point, which MLV can do. For example if I wanted a TPS deriv. function I would just do [TPS]-[TPS-1]. Doing so gives you something like the photo below.
TPS is white, our TPS derivative calculation is yellow. Now we get a large spike when our TPS moves a lot, a little spike when it moves a little, and zero when our TPS is still.
Next, we can use this to generate "flags" that we can use to tell MLV what data we want filtered out when it makes our histogram. We can make another custom field for "TPS Transient". This one would look at our TPS derivative, and make a determination of if the change in throttle position is big enough to cut out of our histogram data. For example, I used this formula (abs([TPS Derivitave]) > 2 || [TPS] < 0.2 ? 1 : 0). Its basically saying, if the absolute value of the TPS derivative (yes, I spelled it wrong in my actual formulas, I'm too lazy to change it) is greater than 2, OR the TPS value itself is less than 0.2, set this field to a 1, otherwise set it to zero. What that looks like in practice is below.
Kind of tougher to see, but basically it is exactly as we described: a field which is set to 1 only if the pedal is moving too quickly or not pressed enough.
Alright, lastly we can put everything into action by adding the flag we just created to the histogram filter. On the right side of the histogram tab, we can add our own data filter. We can add one for our transients and use the formula [TPS Transient] > 0 to have it ignore all data in our log where the transient flag we just set up is set to 1. So that's it! You can do exactly the same trick with AFR, or whatever else you want to filter and only get steady-state data from. This is super useful for bigger logs where you want to chop out things like decel, enrichment, idle, whatever, and just focus on getting a clean fuel map.
And playing around with how aggressive you want to be could yield even better results. And something to observe is, sure it cuts out some of the outer clutter but the big win is that even some of the cells that have a high hit-rate are changed as well due to filtering out transient data. This of course doesn't give the ability to not use your head when adjusting your map, but it paints a much more accurate picture of what you really need to adjust to. Plus I love that you can look through your log and visually see what data you're omitting from the histogram just by observing your flags. Hope this proves useful!
First, I add a calculated field to determine the (rough) derivative of the data I want to filter. This is as dead simple as taking the raw difference between one logged point and the previous logged point, which MLV can do. For example if I wanted a TPS deriv. function I would just do [TPS]-[TPS-1]. Doing so gives you something like the photo below.
TPS is white, our TPS derivative calculation is yellow. Now we get a large spike when our TPS moves a lot, a little spike when it moves a little, and zero when our TPS is still.
Next, we can use this to generate "flags" that we can use to tell MLV what data we want filtered out when it makes our histogram. We can make another custom field for "TPS Transient". This one would look at our TPS derivative, and make a determination of if the change in throttle position is big enough to cut out of our histogram data. For example, I used this formula (abs([TPS Derivitave]) > 2 || [TPS] < 0.2 ? 1 : 0). Its basically saying, if the absolute value of the TPS derivative (yes, I spelled it wrong in my actual formulas, I'm too lazy to change it) is greater than 2, OR the TPS value itself is less than 0.2, set this field to a 1, otherwise set it to zero. What that looks like in practice is below.
Kind of tougher to see, but basically it is exactly as we described: a field which is set to 1 only if the pedal is moving too quickly or not pressed enough.
Alright, lastly we can put everything into action by adding the flag we just created to the histogram filter. On the right side of the histogram tab, we can add our own data filter. We can add one for our transients and use the formula [TPS Transient] > 0 to have it ignore all data in our log where the transient flag we just set up is set to 1. So that's it! You can do exactly the same trick with AFR, or whatever else you want to filter and only get steady-state data from. This is super useful for bigger logs where you want to chop out things like decel, enrichment, idle, whatever, and just focus on getting a clean fuel map.
And playing around with how aggressive you want to be could yield even better results. And something to observe is, sure it cuts out some of the outer clutter but the big win is that even some of the cells that have a high hit-rate are changed as well due to filtering out transient data. This of course doesn't give the ability to not use your head when adjusting your map, but it paints a much more accurate picture of what you really need to adjust to. Plus I love that you can look through your log and visually see what data you're omitting from the histogram just by observing your flags. Hope this proves useful!
Here is a shot of my latest Lambda/Target Lambda overlay. The car is tuned in Alpha-N TPS-Load fueling so its TPS x RPM fuel table that has an additional boost compensation table that contributes once you hit positive pressure. When looking at it in this table, you're seeing the overall lambda offset across full TPS fueling range of the TPS x RPM table INCLUDING the contribution from the map compensation table.
I setup a positive pressure filter that then filters out all the data from when the car was in boost and the map comp table was contributing to the AFR.
Looking at this, you can see that once you give my car more than about 40% throttle it is heading into boost. I'll use this table to help dial in the main TPS x RPM fuel table up to the 40% column, then I'll turn off the positive pressure filter, screenshot the table that includes the positive pressure with map comp contribution (like first one above), then change to a profile setup to reflect my MAP comp table in the Haltech.
Given that the actual VE of the motor doesn't change much between 60-100% TPS those columns pretty much reflect the same curve I see at 40 and have been scaled up slightly with each increase so all of the positive pressure tuning is mostly contained within adjustments to the map compensation table. In the map comp overlay above, you can see it was ~0.03 to ~0.06 lambda rich across the spool region from 4000-6000 up to the target 23-24 PSI (160-180 kPa) boost level then from 7000-10,000 it was close and only rich by 0.01 to 0.02 lambda so its quite clear where to pull fuel. The TPS load tuning using a map comp table really isn't too bad when you can use the MLV histograms like this to sort out the data.
Skeese
The following users liked this post:
Howard Coleman (03-11-21)
Thread
Thread Starter
Forum
Replies
Last Post