Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Transient Fuelling Pid

  1. #1
    Lifetime Member 5.7ute's Avatar
    Join Date
    Oct 2006
    Posts
    1,840

    Default Transient Fuelling Pid

    So far my efforts on getting a Calculated transient fuel pid working are showing some promise, However the B3701 injector pulse width voltage adjustment table is giving some grief. The main one being that the lookup() function is only any good for a single axis table. Is there a function available in the scan tool that will allow us to look up a dual axis table or will I have to do it the hard way with multiple lookup() functions, For instance

    {PID}-lookup(GM.VOLTS}, 12,lookup({GM.MANVAC}, 0,xxx, 5,xxy.....), 12.5,lookup({GM.MANVAC}, 0,xyy, 5,xyz,.....))
    Cheers Mick
    The Tremor at AIR

  2. #2
    EFILive Developer Site Admin Blacky's Avatar
    Join Date
    Mar 2003
    Posts
    9,503

    Default

    I've not thought this through 100% but the following approach should work.

    Say you have X and Y which are indexes into a 2D array. X ranges from 0 to 5 and Y ranges from 0 to 10.

    Create a calculated PID W that has the expression W=Y*6+X which gives you a linear index into a 2D space as follows:
    Code:
    W=Y*6+X
       X |  0 |  1 |  2 |  3 |  4 |  5 |
       Y |----|----|----|----|----|----|
       0 |  0 |  1 |  2 |  3 |  4 |  5 |
       1 |  6 |  7 |  8 |  9 | 10 | 11 |
    ...
       9 | 54 | 55 | 56 | 57 | 58 | 59 |
      10 | 60 | 61 | 62 | 63 | 64 | 65 |
    Then create a lookup as follows:
    lookup({CALC.W},0,A,1,B,...,64,C,65,D)

    Regards
    Paul
    Before asking for help, please read this.

  3. #3
    EFILive Developer Site Admin Blacky's Avatar
    Join Date
    Mar 2003
    Posts
    9,503

    Default

    Warning, I'm pretty sure there is a 1024 char limit on line length in calc_pids.txt. Not sure if you can fit the lookup function table into that limit.

    But I will double check that limit and post back here.

    Regards
    Paul
    Before asking for help, please read this.

  4. #4
    EFILive Developer Site Admin Blacky's Avatar
    Join Date
    Mar 2003
    Posts
    9,503

    Default

    Just checked, the limit is actually 64K, so I think you'll have plenty of room for long look-up functions function. However, the text editor you use (i.e. notepad) may not support lines that long.

    Regards
    Paul
    Before asking for help, please read this.

  5. #5
    EFILive Developer Site Admin Blacky's Avatar
    Join Date
    Mar 2003
    Posts
    9,503

    Default

    One last thing, the lookup function performs a linear search for the correct lookup index. So long lookup tables may hurt performance.

    Regards
    Paul
    Before asking for help, please read this.

  6. #6
    Lifetime Member swingtan's Avatar
    Join Date
    Jul 2007
    Posts
    1,589

    Default

    Ahh so it's 64K....

    I did a test a while ago and got a line length of just short of 6K which was enough for playing around with. The biggest performance hits were seen when ScanTool was started and then each time a replot is performed.

    Simon.

  7. #7
    EFILive Developer Site Admin Blacky's Avatar
    Join Date
    Mar 2003
    Posts
    9,503

    Default

    Calculated PIDs needed a re-write for performance and better usability.
    That is happening as part of the updated V8 software.

    I will probably add 1D and 2D table look-ups based on actual tables of data - instead of the lookup() function.

    The existing lookup() function was really only designed with around 10-20 data points in mind, for non-linear wide band AFR-Voltage conversions.

    Regards
    Paul
    Before asking for help, please read this.

  8. #8
    Lifetime Member 5.7ute's Avatar
    Join Date
    Oct 2006
    Posts
    1,840

    Default

    Quote Originally Posted by Blacky View Post
    Calculated PIDs needed a re-write for performance and better usability.
    That is happening as part of the updated V8 software.

    I will probably add 1D and 2D table look-ups based on actual tables of data - instead of the lookup() function.

    The existing lookup() function was really only designed with around 10-20 data points in mind, for non-linear wide band AFR-Voltage conversions.

    Regards
    Paul
    That is great news, it will be much easier when sharing calc pids or swapping between tune files.
    I will try that method in your first post & see how it goes. At this point I only need a few voltage rows so that will keep the pid short.( IMO If you are running out of the 12-14.5 volt range you have other issues to address first)
    Thanks again. Mick
    The Tremor at AIR

  9. #9
    Lifetime Member 5.7ute's Avatar
    Join Date
    Oct 2006
    Posts
    1,840

    Default

    Quote Originally Posted by Blacky View Post
    I've not thought this through 100% but the following approach should work.

    Say you have X and Y which are indexes into a 2D array. X ranges from 0 to 5 and Y ranges from 0 to 10.

    Create a calculated PID W that has the expression W=Y*6+X which gives you a linear index into a 2D space as follows:
    Code:
    W=Y*6+X
       X |  0 |  1 |  2 |  3 |  4 |  5 |
       Y |----|----|----|----|----|----|
       0 |  0 |  1 |  2 |  3 |  4 |  5 |
       1 |  6 |  7 |  8 |  9 | 10 | 11 |
    ...
       9 | 54 | 55 | 56 | 57 | 58 | 59 |
      10 | 60 | 61 | 62 | 63 | 64 | 65 |
    Then create a lookup as follows:
    lookup({CALC.W},0,A,1,B,...,64,C,65,D)

    Regards
    Paul
    The theory in this method works. There seems to be a problem with the non linear values though that returns some errors.( And like you thought I run out of room) For the moment I will use an average of the kpa values with Volts as the reference with a simple lookup table. This should keep the errors to a minimum.
    The Tremor at AIR

  10. #10
    Lifetime Member
    Join Date
    Jul 2003
    Posts
    1,897

    Default

    updates???
    "All that is needed for the triumph of evil is that good men do nothing..."

Page 1 of 2 12 LastLast

Similar Threads

  1. What are the transient tables?
    By LBZoom in forum Duramax 06 LLY / 06+ LBZ & LMM
    Replies: 6
    Last Post: November 16th, 2009, 04:33 AM
  2. Transition fuelling Questions
    By oztracktuning in forum Gen IV V8 Specific
    Replies: 7
    Last Post: March 19th, 2009, 06:35 PM
  3. Transient fuelling????
    By hquick in forum Forced Induction and Nitrous Oxide (N20)
    Replies: 125
    Last Post: September 25th, 2008, 06:15 PM
  4. B1053 Transient table????
    By rcr1978 in forum Duramax 06 LLY / 06+ LBZ & LMM
    Replies: 1
    Last Post: August 28th, 2008, 05:01 AM
  5. Transient Fuel with 1999 LS1?
    By Tomato in forum Gen III V8 Specific
    Replies: 4
    Last Post: June 16th, 2008, 05:28 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •