Page 4 of 6 FirstFirst 123456 LastLast
Results 61 to 80 of 110

Thread: SD tuning for E38/E67 ECM's

  1. #61
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    i've been working on it with cyclone chris for months, chris@hpt was kind enough to include some new MPIDs so we can do this easier now too. it's coming along, it's just not easy.

  2. #62
    I did a MAF only tune yesterday and dialed in my AF. It seems to work very well. If I enable closed loop, will it still ignore the VE table if I have dynamic airflow set to 600 and 500?

  3. #63
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    closed loop has nothing to do with ignoring the ve table, it's about fueling adjustments, not airflow description.
    other than that, you're doing the right thing for now with the newer stuff, MAF is the way to tune them.

  4. #64
    Here's an example that hopefully sheds a little more light on this.

    Basic Tuning
    This is a basic example of how the terms work together and how the logic of a base tune can be constructed without using an advanced math program like Matlab. I am purposely ignoring variable camshafts and switched intake manifold setups in this example because unless you are Steven Hawking or some other string theory physicist most humans find it hard to think in dimensions higher than 3. Concentrating on MAP and RPM also gives us a good opportunity to draw analogies to traditional VE tables also.

    Zones used in this example:



    The basic idea to get you started is to work out which operating zone you are in. There are 2 tables that control the zone boundaries. Engine -> Airflow -> Dynamic Airflow, Zone RPM Boundaries and Zone MAP Boundaries. You can also log the operating zone in the scanner.

    Open both the tables. First look at the Zone RPM Boundaries table, this defines the boundaries that the switches zone. The first value is usually 1000 rpm. Now look at the Zone MAP table, across the top it has RPM Zone 0,1,2,3,4. Important to remember that the Zone RPM 0-1 is the boundary between the RPM Zone 0 and RPM Zone 1 columns (that's why there is one extra column). So if you are below 1000rpm the ECM then looks up the Zone MAP table using the Zone RPM 0 column. The Zone MAP table boundaries work the same way, usually the first value in the Zone MAP table is 30kpa. So eventually you will work out something like:
    - if RPM is less than 1000rpm (RPM Zone 0) and MAP is less than 30kpa (MAP Zone 0) then you will be in Operating Zone 0
    - if RPM is less than 1000rpm (RPM Zone 0) and MAP is greater than 30kpa but less than 45kpa (MAP Zone 1) then you will be in operating Zone 1
    - if RPM is less than 1000rpm (RPM Zone 0) and MAP is greater than 45kpa but less than 60kpa (MAP Zone 2) then you will be in operating Zone 2
    ...
    - if RPM is greater than 1000rpm but less than 1750rpm (RPM Zone 1) and MAP is greater than 30kpa but less than 45kpa (MAP Zone 1) then you will be in operating Zone 7
    ...
    - if RPM is greater than 3250rpm (RPM Zone 4) and MAP is greater than 90kpa (MAP Zone 5) then you will be in operating Zone 29

    You can change all of these boundaries, and if you are running boost then it might be a good idea to setup the boundaries to suit the boost conditions (especially if you plan to run variying levels of boost or to change zones during WOT to give yourself more resolution at higher RPM. Basically you have a VE table that is 5x6 or 30 cells. The stock computer will support up to a 2.5bar MAP sensor so you can put in a 2bar sensor and rescale the MAP constants to make it read boost. You can also set the Zone MAP boundaries into boost.

    Now that you know the zone you are in you use this info to lookup the coefficients from the VE table. The 30 cells in the VE table might look restrictive compared to older VE tables that have hundreds of cells but the key to making it work properly is to use the coefficients correctly. I am going to try to explain a simple way to get the thing working in a way you are familiar with.

    In the long equation above, the place to start is with the Engine -> Airflow -> Speed Density, Constant table. You can think of it this way... this table controls the "Base VE" setting for the operating zone. The other tables (MAP, MAP², RPM, RPM² etc.) modify this base value as you move around the zone and get closer to moving towards another zone. For perfect transititions between zones you really need to change these other tables as well but for a start changing the Constant table will at least give you a feel of how the fuelling changes just like previous VE tables. eg. If you increase the Constant values the fuel will richen up in that zone, if you decrease the constant values the fuel will lean out in that zone. This is the starting point and is behaves how you would expect it to.

    You could tune a car like this by just modifying the Constant tables and smart setting of your Zone boundaries will give a decent result - well a result that may eliminate major lean/rich spots. However, the real power of GM's system comes from understanding how to change the MAP, MAP², RPM, RPM², RPM.MAP tables (if you don't have variable cams then all tables with cam should be zero anyway). These 5 tables control the movement inside operating zones and setting them is very non-intuitive, however, the general rule of increasing values making things richer still applies. If you still have fuel problems within a zone you need to think about in what direction the problem is happening especially is it MAP or RPM that is causing the issue.

    Logging the Raw VE value also helps here and you should be able to see any big differences as you move around in a cell.

    Eg. If the MAP is constant at say 100kpa and as you move across operating zone 23 (MAP greater than 90kpa and RPM moving from 2500rpm to 3250rpm). You notice as RPM goes across the zone than the fuel gets leaner it is possible you would need to increase the RPM coeffcient for zone 23 a little. Increasing the RPM coeffcient for zone 23 adds more fuel as RPM increases from 2500rpm to 3250rpm.

    You can also do the same thing with the MAP coeffcients.

    Eg. If you hold RPM pretty constant on the dyno and as you move across operating zone 22 (RPM between 2500rpm to 3250rpm and MAP moving from 75kpa to 90kpa). You notice as MAP goes across the zone from low MAP to high MAP than the fuel gets leaner it is possible you would need to increase the MAP coeffcient for zone 22 a little. Increasing the MAP coeffcient for zone 22 adds more fuel as MAP increases from 75kpa to 90kpa.

    Example 2500rpm
    Values for this example:
    Const = 1572
    MAP = 14.6248
    RPM = -0.188
    MAP.RPM = -0.0005
    MAP² = -0.0681
    RPM² = 0.00007

    Here you can see the individual contributions for zone 22 with RPM at 2500rpm. It's worth nothing that even though the MAP² and RPM² coeffcients are small they have large contributions becuase values with RPM squared (RPM multiplied by itself give huge numbers. eg. 2500 x 2500 = 6,250,000 so even a small coeffcient has a big impact).

    The green line is the total VE for 2500rpm between MAP 75-90kpa.

    The pink is the constant, which for this example is 1572. The total VE is around 2100 so you see that the coeficients add up to an extra 600 or so on the VE.

    The yellow is the MAP contribution. You can see here that since the coeff is positive 14.6248 as MAP increases so does the contribution to the total VE.

    The dark blue is the RPM contribution. Because we are holding RPM constant at 2500rpm the RPM contribution is also constant. However becuase the coeffcient is negative -0.188 it actually subtracts from the total VE.

    The light blue is the MAP.RPM contribution. This one provides contribution as both MAP and RPM change. This coeffcient is also negative so it subtracts from the final VE also.

    The purple is the MAP² contribution. This coeff is also negative so as MAP increases the fuel leans out more and more within the zone.

    The orange is the RPM² contribution. This coeff is positive and very small so as RPM increases the fuel richens more and more within the zone. You need to be very careful with this coefficient becuase very small changes have a big effect.

    If you add up all the contributions you get the Total VE value.



    In the chart below you can see the Total VE for Zone 22 and how it varies with MAP/RPM and the coefficients. You can see the 2500 RPM line and compare it to the chart above.



    So you can see that by careful monitoring of the Raw VE value and understanding how the coefficients, if they are positive or negative, and also the effect of increasing or decreasing them can richen or lean the fuel and control the VE within a zone.

    It is important to note that changing the MAP, RPM, MAP.RPM, MAP2, RPM2 values may also require you to change the constant value. ie. if your fuel was okay at the beginning of the zone but leans out at the end you might increase the RPM coeff. However this may now create a rich point at the begining of the zone so you might want to reduce the constant to bring it back down again to where it was.

    Hopefully also you can see the changing just one zone is complex but understandable. However joinging all the zones together such that the boundaries line up is a very complex job using intuition and trial and error methods

    Chris...
    I count sheep in hex...

  5. #65
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    it's much easier if you treat the coefficients as a vector and multiply it by a matrix of the MAP, MAP^2,RPM*MAP... values, which really are a response surface.
    so if:
    coefficients is vector x,
    MAP, MAP^2... is matrix A
    GMVE is vector B
    then A*x=B, which can be solved for x with x=A\B. congratulations, you just optimized a e38 GMVE table
    the only trick is to know what your GMVE values should really be.

  6. #66
    Senior Tuner 5_Liter_Eater's Avatar
    Join Date
    Nov 2005
    Location
    Houston, TX
    Posts
    3,968


    This is getting interesting.
    Bill Winters

    Former owner/builder/tuner of the FarmVette
    Out of the LSx tuning game

  7. #67
    Quote Originally Posted by redhardsupra
    it's much easier if you treat the coefficients as a vector and multiply it by a matrix of the MAP, MAP^2,RPM*MAP... values, which really are a response surface.
    so if:
    coefficients is vector x,
    MAP, MAP^2... is matrix A
    GMVE is vector B
    then A*x=B, which can be solved for x with x=A\B. congratulations, you just optimized a e38 GMVE table
    the only trick is to know what your GMVE values should really be.
    of course, but that requires you to solve the matrix equations using the various numerical methods. ie. the right way which i mentioned in post #1.

    This example is meant for folks who have no idea what we both just said but feel they need to tinker, LOL

    There is yet another solution to SD tuning these things in development right now here at HPT-land
    I count sheep in hex...

  8. #68
    Senior Tuner
    Join Date
    Jul 2004
    Posts
    1,579
    Damn, I need to visit HPT-land. Great work Chris, it is making more sense and not as intimidating as thought previously. I can deal with this.

    sitting back in my chair to learn more from the HPT Professor.

  9. #69
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    Quote Originally Posted by Chris@HPTuners
    of course, but that requires you to solve the matrix equations using the various numerical methods. ie. the right way which i mentioned in post #1.

    This example is meant for folks who have no idea what we both just said but feel they need to tinker, LOL

    There is yet another solution to SD tuning these things in development right now here at HPT-land
    have you seen EFILive's new 'virtual VE table'? I don't know if they do it proper or not, but it seems to work alright.

    i cant come up with any 'hack' methods of getting it close enough without the matrix operations. the great part of doing it the right way is that doing the variable intake/lift/duration/whatever params is the same method, just with bigger arrays.

  10. #70
    ya you need the matrix solver, looks like they beat us to the punch. oh well at least they didn't choose the same name as we did
    I count sheep in hex...

  11. #71
    Advanced Tuner
    Join Date
    Dec 2005
    Location
    Sydney Australia
    Posts
    510
    Chris

    Email sent

  12. #72
    Senior Tuner
    Join Date
    Jun 2005
    Location
    Southern FL
    Posts
    2,044
    Quote Originally Posted by Chris@HPTuners
    ya you need the matrix solver, looks like they beat us to the punch. oh well at least they didn't choose the same name as we did
    Yeah, I just saw that, too. I have to admit, nice stuff! I can't wait till you guys implement this. Praise!
    Formerly known as RWTD

    Toys: '22 Tesla Model S Plaid / '20 Chevy Duramax / ?20 Sea-Doo RXT-X (2)

  13. #73
    I've done MAF only and SD (non-boosted) tuning and right now the only method that seems to come close is MAF. I've done SD where I run the same tune in the morning and it's rich and then in the evening it's lean. The curve isn't quite the same either and that's with the coefficient tables all set to 1. But, I still have my bias table "helping" me out. I wonder if you made the bias table all ECT dependent if you could dial in the VE? Just looking at options until we can get the tools to do it the right way.

  14. #74
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    no, BIAS needs to be realistic. setting it to 'all ECT' has nothing in common with reality. the general idea is that on low airflows bias is skewed more toward ECT, and at higher airflows it's more toward IAT. knowing how much and at what airflow is the main question here. that's a whole different discussion and a whole different thread. but yes, you've made a very good observation, arriving at VE tables is troublesome without proper temperature estimation.

    It would help if people who look at PCM code would post exact formulas for how the computer arrives at the temperature used to calculate the airmass value. flea and some other people found that the bias filter value also plays a role in which bias value gets used.

  15. #75
    i thought i posted it already but anyways it's very simple:

    MAT is Manifold Air Temperature (estimated charge temperature).

    MAT = IAT + Bias.(ECT - IAT)

    Bias is looked up from the bias table. Theory being that at lower airflows their is more heat transfer across the manifold temperature gradient (ie. ECT - IAT) because the slower moving air contacts the manifold for longer and has more time to absorb heat.

    MAT_final = 1stOrdFilter(MAT) this is just a simple 1st order lag filter. Filter coeffs closer to 1 mean faster changing, closer to 0 mean slow changing. This filter is just there for stability of the MAT value. If it changes too rapidly airflow prediction will become unstable.

    Then at the end it is converted to Degrees Kelvin, which is just Degrees C + 273. This is the MPID value that you can log in the scanner.

    Chris...
    I count sheep in hex...

  16. #76
    Advanced Tuner
    Join Date
    Feb 2006
    Location
    Warner Robins, GA
    Posts
    202
    Quote Originally Posted by Chris@HPTuners
    i thought i posted it already but anyways it's very simple:

    MAT is Manifold Air Temperature (estimated charge temperature).

    MAT = IAT + Bias.(ECT - IAT)

    Bias is looked up from the bias table. Theory being that at lower airflows their is more heat transfer across the manifold temperature gradient (ie. ECT - IAT) because the slower moving air contacts the manifold for longer and has more time to absorb heat.

    MAT_final = 1stOrdFilter(MAT) this is just a simple 1st order lag filter. Filter coeffs closer to 1 mean faster changing, closer to 0 mean slow changing. This filter is just there for stability of the MAT value. If it changes too rapidly airflow prediction will become unstable.

    Then at the end it is converted to Degrees Kelvin, which is just Degrees C + 273. This is the MPID value that you can log in the scanner.

    Chris...
    How is BIAS measured... is it logic or a multiplier/divider?
    2005 Pontiac GTO LS2

    MY FQUICK - http://www.fquick.com/cyclone_chris

    Mods:
    K&N Intake | 18" Staggered TSW Thruxton Setup | Toyo T1-R Tires | Billet Products Short Shifter | Kooks 1-3/4" LT Catted headers | NGK TR55 | Ported Stock Intake Manifold | Corsa Sport Exhaust | Polished T/B | FlowTech Streetsweeper V2 Cam | SLP UD Pulley | 160 Thermostat | LS7 Clutch | 39# Ford Blue Giant Injectors | Scorpion Roller Rockers |


    445 RWHP/413 RWTQ

  17. #77
    Quote Originally Posted by Cyclone Chris
    How is BIAS measured... is it logic or a multiplier/divider?
    Multiplier, sorry the "." in the equation above means multiply. Engineering maths coming thru for ya
    I count sheep in hex...

  18. #78
    Advanced Tuner
    Join Date
    Feb 2006
    Location
    Warner Robins, GA
    Posts
    202
    Quote Originally Posted by Chris@HPTuners
    Multiplier, sorry the "." in the equation above means multiply. Engineering maths coming thru for ya
    I thought

    MAT = 273.15+IAT+((ECT-IAT)*Bias factor)

    BIAS Factor pulled from the BIAS Table??

    EDIT... Looks like the same thing you posted.
    Last edited by Cyclone Chris; 08-15-2007 at 07:09 PM.
    2005 Pontiac GTO LS2

    MY FQUICK - http://www.fquick.com/cyclone_chris

    Mods:
    K&N Intake | 18" Staggered TSW Thruxton Setup | Toyo T1-R Tires | Billet Products Short Shifter | Kooks 1-3/4" LT Catted headers | NGK TR55 | Ported Stock Intake Manifold | Corsa Sport Exhaust | Polished T/B | FlowTech Streetsweeper V2 Cam | SLP UD Pulley | 160 Thermostat | LS7 Clutch | 39# Ford Blue Giant Injectors | Scorpion Roller Rockers |


    445 RWHP/413 RWTQ

  19. #79
    Senior Tuner
    Join Date
    Dec 2004
    Location
    Laurel, MD
    Posts
    1,020
    Quote Originally Posted by Chris@HPTuners
    i thought i posted it already but anyways it's very simple:
    MAT_final = 1stOrdFilter(MAT) this is just a simple 1st order lag filter. Filter coeffs closer to 1 mean faster changing, closer to 0 mean slow changing. This filter is just there for stability of the MAT value. If it changes too rapidly airflow prediction will become unstable.
    what's the formula for the 1st order lag filter was my real question, sorry for not being clear enough :/ is it like a weighted moving average or something else?

  20. #80
    1st order filter is:

    Xfilt(t) = Xfilt(t-1) + K.[X(t) - Xfilt(t-1)]

    K is the filter coefficient.

    Say X has been 10 for a long time, Xfilt is 10 also. Then X changes from 10 to 20 and K = 0.5

    t0: X = 10, Xfilt = 10
    t1: X = 20, Xfilt1 = 10 + 0.5(20 - 10) = 15
    t2: X = 20, Xfilt2 = 15 + 0.5(20 - 15) = 17.5
    t3: X = 20, Xfilt3 = 17.5 + 0.5(20 - 17.5) = 18.625
    etc...

    You can see that if K is closer to 0 then the filter takes a longer time to converge to the new value, if K is 1 then it converges instantly.

    Chris...
    I count sheep in hex...