Car Modding, Car Tuning and the Science of Horsepower - Tuning Out Temperature Effects and Heat Soak
Air temperature happens to be a particularly nasty variable in the world of car performance for 2 reasons. First, it tends to throw off all of the sensors responsible for calculating fuel. Second, hot air induces knock and can cause major mechanical issues and expensive explosions when you start adding boost. While hot air is a major concern, it's more of a concern that the computer isn't aware of it. As long as your car is capable of compensating for temperature changes, at least you can tune some safety into your car to protect your engine from a dangerously lean condition leading to detonation.
Thermodynamics works against us
Every PCM is different but particularly with VE (Speed Density) tunes, there will be tables to provide fuel enrichment as a function of temperature. This is one of the many reasons I like a speed density tune over a MAF tune. Whereas the MAF sensor magically computes everything at the same time, a speed density tune breaks it all down into components, each measured by different sensors and this lets you take control of each variable separately, including temperature. Ever notice how a perfectly tuned MAF table will become bent a month later with almost a perfectly straight slope, trending from negative LTFTs at low frequencies to positive LTFTs at high frequencies? That's because the damn thing is getting fouled up and the layers of gunk are insulating the wire from the effects of temperature that the intake air would normally have on it. MAP and IAT sensors don't suffer from this fouling effect and they make it easy to tune one parameter without touching the other.
Go into your tuning software and look under the Airflow (possibly fuel) category. Around where your VE table is located should also be a table for fuel enrichment vs IAT. In HPTuners the table is called "Charge Temp Mult". Irrespective of anything else, this table will apply a correction factor to whatever the PCM thinks the correct injection pulse width needs to be for a given air flow value. If the computer thinks that based on 30 kPa, 30 degrees C and 600 RPM, the pulse width needs to be 5ms, this table will multiply that by a certain factor to either add or subtract fuel, based solely on temperature. So what we want to do is determine what temperature does to the air mass WHEN EVERYTHING ELSE IS CONSTANT. For this you need to take the car out for a road scan. As I've said countless times, make sure you drive the car long enough that all the fluids reach nominal temperatures. Don't start scanning until all the temperatures stop changing and the car is all warmed up. For this particular road scan go easy on the car too. No need to punch it. We are just trying to establish a temperature baseline. What I recommend is to go for a 5 minute drive on the highway. Watch your IAT on your laptop and you will notice it drop to something fairly close to ambient and then stay there, as long as you're cruising at highway speed. Now, CAREFULLY, find a nice big shoulder on the side of the highway where you can SAFELY stop for a minute, check that there are no cars behind you and pull over with your hazard lights on. Once on the shoulder, stop quickly, put the car in park or neutral, watch carfully for the tachometer to stabilize on your idle RPM and then start scanning immediately. You will notice your IATs start to shoot up as soon as you stop the car and this is what we want. Don't do anything, don't even breathe. Don't touch the gas pedal. Make sure you don't alter the engine in any way by shifting gears. Leave the car alone and let the intake air heat up. After letting it heat soak for a minute or so it should have climbed by at least 10 degrees, perhaps closer to 20. By the time it rises 20 degrees or so, stop scanning. THEN, shift into drive, give the tow truck driver the finger, pull into traffic carefully and go home.
This is the sort of table you will need to adjust, no matter what software you have.
Dump your scan to an excel file and isolate only the lines where the RPM, MAP and ECT were consistent for several CONSECUTIVE lines in your scan. Graph IAT vs STFT and LTFT (your fuel trim). What you should see is temp along the X-axis and fuel trim on the Y-axis. You should notice the fuel trim either rises or falls with a linear slope over the entire range of temperatures. You can add an interpolation line if you like, to make it easier to read. Try to pick a part of the graph where the LTFT did not change and then for that section only look at the STFT line. Say for example, your LTFT didn't change between 30 degrees C and 40 degrees C. Now determine the STFT value at 40 and the STFT value at 30. Subtract them. Say you get 3 - (-1) = 4, so the STFT rose by 4 over a span of 10 degrees. That's the key! That's what you want to know. Go back to your tune and find that Charge Temp Mult (or equivalent) table. Each cell should differ from the others by a certain number of degrees. Mine differs by 10 degrees per cell so in that case, what I'd want to do is declare a cell in the table to be my neutral cell... the cell that I won't touch. You should pick your neutral cell to be the temperature that the IAT is most often at, most of the time while driving. Let's say that's 30 degrees C. Leave that cell alone. It should have a 1.0 in it, meaning no correction. Now if the next cell to the right is 40 degrees C, you'd want to put 1.04 in there, meaning add 4% fuel. You'd want to put 1.08 in the next, 1.12 in the next and so on to create a trend line of constant slope. Do the same thing in the negative direction (0.96, 0.92, 0.88, etc.). Now, every time the PCM has to determine how much fuel to add, it will first look to the VE table. The RPM and MAP values measured will determine which cell it reads. It will then calculate the fuel enrichment based on that VE value it just read but first it will look at your new temperature table and multiply by the factor it finds in there for the current IAT temperature. This applies the precise correction needed to prevent the phenomenon you observed when you were scanning the car and pulled over on the highway. The heat soak caused the fuel trims to change because the VE values were only good for 1 temperature. Now that you've created a "correction table", the VE value will always be good because the temperature effects on it are perfectly negated by this new table.
A word of caution. The scan you did was only at 1 engine operating point. There's no guarantee that temperature effect will be exactly the same at all other operating points. However it's extremely difficult to induce heat soak when the car is moving so the best results you'll ever get are from the method described above and these should be massively helpful for the computer, even at other operating points. You may wish to fine tune the temperature table even more by repeating this exercise a couple of times but in general you will find the temperature table far more stable and easier to dial in than your fuel or spark tables typically are.