Members Login
    Remember Me  
Post Info TOPIC: How the software reads 3D maps


Status: Offline
Posts: 964
How the software reads 3D maps

The questions I most often seem to get are about the fuel maps and how the different maps interact. I've decided to dive back into that issue and see if I can answer some of these questions now that I have some new software tools to help me. As I pick my way through it I will post what I find.

I decided a good place to start is with how the maps are read by the software. No real mystery here. I'm sure we are all generally aware how the process works. But the time for generalities is over. We need to know exactly what is going on. Not that how exactly the maps are read is a burning question....but I had to start some where.

Given the following 3D map where the X (top) axis is TPS and the Y (left) axis is RPM....


What map value will the software use at 1100 rpm and 18.9% throttle?

The first thing the software does is compare the map input values, RPM and TPS to the X and Y axis value tables and come up with a real number X and Y coordinate. Take 1100 rpm for example. The software finds it is greater than row 3 value 1000 but less than row 4 value 1200. So it subtracts the closest value less than the input from the input. ( 1100 - 1000 = 100 ). It then subtracts the two axis values either side of the input to determine a range. (1200 - 1000 = 200). It then divides the input result from the range to determine where in the range the input is. ( 100 / 200 = 0.5 ) The final result returned is Y = 3.5 or halfway between row 3 and row 4

It does the same thing with the X axis and returns X = 1.5 or halfway between column 1 and column 2.

Because Y=3.5 the software points to row 3 and because X is between cols 1 and 2 in row 3 it grabs the map cell values 397 and 407. It then subtracts them to find the range (407 - 397 = 10 ) It then multiplies the range times the fractional part of the X value 1.5 ( 10 * 0.5 = 5 ) It then adds this to the col1 value ( 397 + 5 = 402) and comes up with a value half way between 397 and 407.

Since Y was between row 3 and row 4 it repeats the above calculation using the value from row 4 cols 1 and 2 or 370 and 393. The integer result is 370 + ((393 - 370 ) * 0.5)) = 381 (it is actually 381.5 but the software throws away the fraction)

So we now have the 18.9% TPS map value for 1000 rpm ( 402 ) and 1200 rpm ( 381 ) Of course our input rpm was half way between those two values or 3.5. I bet you can guess what happens next.

The software takes the 0.5 of the 3.5 and multiplies it by the range between the two values or 381 + ((402-381) * 0.5) = 391.5

391 is the value returned from the above map at 1100 rpm and 18.9% TPS

That was a good practice run to get familiar with the simulator. Next is to figure out under what conditions each fuel map value is used. i.e. the load switch points.

-- Edited by RidgeRacer at 18:45, 2008-06-26



Status: Offline
Posts: 2338

This is very good information - thanks for it ! It went well over my head when I tried to read this few months back when dissassembling the code.


When asking a question, you can also consider posting it to facebook:


Status: Offline
Posts: 741

good job RR.....

Page 1 of 1  sorted by
Quick Reply

Please log in to post quick replies.

Tweet this page Post to Digg Post to

Create your own FREE Forum
Report Abuse
Powered by ActiveBoard