Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 33

Thread: Disassembly: MAF tables and Air Flow Calculation

  1. #21
    I lack color... verified

    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,589
    Thanks
    104
    Thanked 498 Times in 241 Posts
    Dennis, I haven't forgotten about you. Just been pulled in all kinds of directions all week. Hard enough explaining all this to folks but I'm stuck trying to teach a guy in France who doesnt speak english as a first lamguage how to use this....

    2014 Exomotive Exocet - #101 "shocker yellow" - 1.8L 5-speed 3.9 torsen FMII powered
    Read more: http://mevowners.proboards.com/threa.../greg-pa-build

    99 Solano Black VR4 - #16 of 287 - ground up restoration - sold
    98 Pearl White VR4 #54 of 231 - 12.84@105mph - 93 Octane 12.50@107mph - 100 Octane with Chromed ECU - sold
    99 Pearl White VR4 #108 of 287 - 3RD place stock car class ECG 11 - Sold
    98 Black VR4: 100% stock - totalled by an Illegal 2-12-08
    95 White Stealth TT - 11.852 @ 118.25 - sold
    95 SSG Stealth TT - 11.981 @ 115.81mph - sold

    "I don't actually work on cars, I just talk about them on the internet."

  2. #22
    Forum User
    Join Date
    Nov 2010
    Owner Since

    Posts
    297
    Thanks
    1
    Thanked 118 Times in 65 Posts
    No worries. I am nothing if not patient.

    DG

  3. #23
    I lack color... verified

    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,589
    Thanks
    104
    Thanked 498 Times in 241 Posts
    I have to explain the difference between Mitsubishi version of air flow vs OBD2 definition of air mass. The ECU calculates both.

    The tables you see listed above are what the ECU uses during the IPW calculation. This single sub has over 300 lines of code and there's still a chunk of it I don't understand. When I started typing this equation out in an email to you, I only got about 1/8th of the way thru it before I realized that's TMI.

    What you are looking for is the ECUs interpretation of air mass or the OBD2 side of the equation which is much simpler to explain. I don't foresee any distractions tonight so let me get back into this when I'm home with my disassembly in front of me instead of going all out from memory.

    The tricky part is, the ECU uses different levels of this calculation throuout the various table axises. Some use compensated load, some use uncomp load, some use the whole 2 byte word value, some get clipped and resolution expanded to fit into a 2 byte value... It's tricky. I'm guessing the one you care about is the load value used in the fuel and timing table axis correct?

  4. #24
    Forum User
    Join Date
    Nov 2010
    Owner Since

    Posts
    297
    Thanks
    1
    Thanked 118 Times in 65 Posts
    Yeah. The calculation that gets me the load axis on any load based table - ignition and fuel for sure.

    DG

  5. #25
    I lack color... verified

    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,589
    Thanks
    104
    Thanked 498 Times in 241 Posts
    Okay, finally at my computer.

    The OBD2_Load (air mass) calculation starts with this.

    Quote Originally Posted by Greg E View Post
    Load quite simply is just Air_Count * MAF_Size / 65536. This is uncompensated Load (meaning Air Temp and Baro haven't been applied yet).
    Remember Air_Count is the MAF Pulses Per RPM.

    Then there are the air density factors.

    First it takes the barometric pressure compensation which is a single multiplier value. If barometric pressure is 100.45kpa, the multiplier is 1. As barometric pressure increases above that, the multiplier increases as well. Less pressure, the compensation value becomes a fraction. I don't know why they didn't code it as a table look up. Would have been simpler to code... Maybe this would be a great future Chrome Mod to give the user the ability to edit the baro comp.

    Next, we have the Air Temp correction. This value is a table look up shown here.



    Again, this is another multiplier value. From this table, if the AITs are 73 degF, the correction factor is 1.

    So the final equation looks like this:

    Load_OBD2 = (MAF Pulses Per Second/RPM) * MAF_Size * BaroComp * AITComp / 65536

    That's basically it. The Load axis you see in the fuel and timing tables both use this air mass value.
    Last edited by Greg E; 12-07-2012 at 07:23 PM.

  6. #26
    Forum User
    Join Date
    Nov 2010
    Owner Since

    Posts
    297
    Thanks
    1
    Thanked 118 Times in 65 Posts
    That's it?

    That seems awfully simple...

    That's engine RPM right, not camshaft RPM?

    Ok then... differences... AEM has a longer measurement window (4 cam revs, so 8 crank revs) but it could be shortened to 1 cam rev. So what? Need to think that through. Shorter window means faster response, less smoothing. May change max airflow the AEM can see. Can probably change VMAF_flow_max to bring it back then...

    Hm. This is RPM based which means I can work out the actual time window vs RPM at the breakpoints... So what?

    OEM compensates for temp and baro before becoming LOAD. So does AEM. Can probably duplicate the OEM comp tables in AEM. Breakpoints won't be the same but slope and intercept can be. It'll be interesting to see where that lines up.

    The cell contents in the ignition map are just degrees advance in both systems so those should line up. What are the cell contents in the fuel map? Is it a straight injector pulsewidth or is there postprocessing?

    Thanks a lot for this; this is going to open a whole bunch of doors (and pose almost as many questions)

    DG

  7. #27
    I lack color... verified

    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,589
    Thanks
    104
    Thanked 498 Times in 241 Posts
    That it is. Show you the code. Very simple.

    Some tables use uncompensated load. Most don't. I tried to label the ones that aren't in V2 in the table description.

  8. #28
    Forum User verified
    Join Date
    Oct 2010
    Owner Since
    1993

    Location
    St Louis
    Posts
    343
    Thanks
    29
    Thanked 48 Times in 31 Posts
    Quote Originally Posted by Greg E View Post
    I don't know why they didn't code it as a table look up. Would have been simpler to code... Maybe this would be a great future Chrome Mod to give the user the ability to edit the baro comp.
    Probably because anytime you have hard coded math it runs in less cpu cycles as opposed to math based upon lookup tables. My guess is that they hard coded the value everywhere it is used which would suggest Mitsu felt that this was very sensitive...
    www.ClonedECU.com
    The home of the Original Clone and Clone2 ECU!
    More Plug n' Drive and less Plug n' Fail like the others!
    Remember, if it's not a Clone, it's just a copy!

    Get Chromed!
    Donate Now and receive a coupon code for the amount of your donation (up to $50.00 US) which you can apply at check out for a Clone2 ECU, Plug n’ Play Harness, or Clone2 Plug n’ Play Package!!
    1999 3000GT VR4
    Glacier Pearl White
    Yeah it's stock . . . trust me
    How To Contact Me:
    eMail: brett_farnam@yahoo.com
    US3S/3SGTO: 99 vr4
    3SI: bfarnam

  9. #29
    I lack color... verified

    Join Date
    Sep 2010
    Owner Since
    Aug 1998

    Posts
    3,589
    Thanks
    104
    Thanked 498 Times in 241 Posts
    Quote Originally Posted by 99 vr4 View Post
    Probably because anytime you have hard coded math it runs in less cpu cycles as opposed to math based upon lookup tables. My guess is that they hard coded the value everywhere it is used which would suggest Mitsu felt that this was very sensitive...
    Maybe.

    More opt to believe they did this because the baro sensor is the same in all their cars and the AIT sensors vary. They coded a table lookup so it could be edited for the various types of AIT sensors.

  10. #30
    Forum User verified
    Join Date
    Oct 2010
    Owner Since
    1993

    Location
    St Louis
    Posts
    343
    Thanks
    29
    Thanked 48 Times in 31 Posts
    Quote Originally Posted by Greg E View Post
    Maybe.

    More opt to believe they did this because the baro sensor is the same in all their cars and the AIT sensors vary. They coded a table lookup so it could be edited for the various types of AIT sensors.
    Yeah what he said... Lol

    But... What if they had to change the baro sensor due to an unforseen issue...

    Normally when programming, you would define a library of static variables for these types of things. But for highly sensitive calculations, you hard code values in the math due to cpu cycle overhead. The pro is less cpu overhead and faster calculations. The con is IF it changes, you have to touch more code. Normally accepted code protocol dictates that UNLESS you need the speed OR you don't have the ROM space, you ALWAYS define a static variable. This would translate vis the compiler in machine code to a 1d lookup, normally an address space like the ROM calibration ID.

    The one thing I have learned about Mitsubishi code is that they do everything for a highly calculated reason. Very much ISO 9000. If a value is used more than once in a different area of code, they would have defined a static, unless something else dictates otherwise. These are not super fast CPU's, and code optimization tests may have determined that this was one area that a small change had a large effect.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
The 3000GT/Stealth/GTO Web History Project
3000gt.com
3000GT / Stealth International WWWboard Archive
Jim's (RED3KGT) Reststop
3000GT/Stealth/GTO Information and Resources
Team 3S
3000GT / Stealth / GTO Information
daveblack.net
3000GT/Stealth/GTO Clubs and Groups
Michigan 3S
MInnesota 3S
Wisconsin 3S
Iowa, Nebraska, Kansas 3S
North California 3000GT/Stealth
United Society of 3S Owners
3000GT/Stealth/GTO Forums
3000GT/Stealth International
3000GT/Stealth/GTO Event Pages
3S National Gathering
East Coast Gathering
Upper Mid-West Gathering
Blue Ridge Gathering