Page 3 of 10 FirstFirst 1234567 ... LastLast
Results 41 to 60 of 194

Thread: What is dynamic airflow

  1. #41
    Senior Tuner
    Join Date
    Mar 2022
    Location
    Indiana
    Posts
    2,939
    I was wondering about .01*100. That didn't make sense.

  2. #42
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    yeah, just noticed a bracket error too, made an edit to my post.

    For those following along...
    BOTH METHODS WORK
    Pick a method and go with it.

  3. #43
    Advanced Tuner Cringer's Avatar
    Join Date
    Aug 2021
    Location
    Somewhere smoothing your VVE table
    Posts
    515
    Quote Originally Posted by hjtrbo View Post
    Your formula is wrong. You're incorrectly normalising your fuel trims and there is an erroneous bracket.

    ([50040.71]*(1+((.01*[50116]*100)+(.01*[50114]*100)))-(([50030.92]*[2312]/[2126.240])*[50070.56]/60*4))/(([50030.92]*[2312]/[2126.240])*[50070.56]/60*4))*100

    Here is a 3% discrepancy between your implementation of smokes formula, which would account for the error you are seeing between the 2 methods.
    Attachment 135829

    Try this
    ([50040.71]*(1+(.01*[50116.156]+.01*[50114.156]))-(([50030.92]*[2312]/[2126.240])*[50070.56]/60*4))/(([50030.92]*[2312]/[2126.240])*[50070.56]/60*4)*100

    Considerations:
    Increase your data polling rate
    Try average function

    WOW THANK YOU! That made a world of difference! I don't know why smoke didn't ever provide this feedback the 162 times I asked for help before. I received that formula when I was experiencing issues and another member PM'd me that one. I will delete all other GMVE formulas I have and use this one instead.

    I am going to continue looking at the logs and comparing. Right off the hop (looking at the chart view averages) both methods seems to more or less agree with each other. However, it appears using Dynamic Air is superior because...

    As I noted before (over the last year+) GMVE seems to amplify the differences in error. Meaning maybe the dynamic air method shows -2%, GMVE will show -4% and so on.
    Also at idle, GMVE is all over the place!
    I think both of these can be attributed to the fact that Dynamic Air is filtered to calm the excessive static sensor noise...which is another reason why I feel this is the better option.

    Here is what I see at idle...one thing to note is that I had to change my view from +/-10% to +/-20% to fit the data, and even then GMVE is still swinging off the charts.
    idle.jpg

    And when we look at the idle area on the 3D graph, you can GMVE makes the red A LOT more red and the green A LOT more green
    chart.jpg

    And if we plot on a real histogram we can see again a tighter data grouping using dynamic air and more defined bell curve (-6/+15 compared to -11/+16)
    histo.jpg

    As far as polling interval...I have a secret weapon! LOL
    fast poll.jpg
    A standard approach will give you standard results.

    My Tuning Software:

    VVE Assistant [update for v1.5]
    MAF Assistant
    EOIT Assistant

  4. #44
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    Yes, GMVE does bounce around. I filter mine with .average(200). Makes the formula real ugly.

  5. #45
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    Not sure if you ever seen my GMVE formula builder spreadsheet.

    When I get time I'll add your method to it.
    Attached Files Attached Files

  6. #46
    Advanced Tuner PGA2B's Avatar
    Join Date
    Nov 2004
    Location
    St. Louis, MO
    Posts
    474
    Quote Originally Posted by hjtrbo View Post
    Not sure if you ever seen my GMVE formula builder spreadsheet.

    When I get time I'll add your method to it.
    Been using that since Nov 2021 when I found out about it!
    2013 OBM A6 CTS-V Coupe
    Mods: Headers back Billy Boat Exhaust, GripTec 2.65, 8.6 PowerBond Lower, LSX Innovations Solid Isolator, ID850's, NGK TR7IX's, Accel 9070CK Wires, Spectre CAI, SRI Ported Throttle Body, SRI Catch Can, NGK AFRM, 160* T-Stat, 0fx2gv Brick, Hard Line Delete W/3/4" Lines, FB 101 FMIC, Pierberg CWA50, Stoptech Drilled/Slotted Rotors, EBC Redstuff, Cut Stock Springs, Flat Bottom Steering Wheel
    2006 Black Raven STS-V (Traded In)
    Fully Modded: 459RWHP@5888rpm/451lbft@4696rpm

  7. #47
    Tuning Addict
    Join Date
    Jan 2015
    Location
    Franklin, NC / Gainesville, Ga
    Posts
    6,804
    Nathan, maybe you and Daniel should work together and make an even better VVE tool? Hmmmm...

    See good things come from discussion and working together
    2010 Vette Stock Bottom LS3 - LS2 APS Twin Turbo Kit, Trick Flow Heads and Custom Cam - 12psi - 714rwhp and 820rwtq / 100hp Nitrous Shot starting at 3000 rpms - 948rwhp and 1044rwtq still on 93
    2011 Vette Cam Only Internal Mod in stock LS3 -- YSI @ 18psi - 811rwhp on 93 / 926rwhp on E60 & 1008rwhp with a 50 shot of nitrous all through a 6L80

    ~Greg Huggins~
    Remote Tuning Available at gh[email protected]
    Mobile Tuning Available for North Georgia and WNC

  8. #48
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    One step ahead of you Greg. Not sure if he's seen my private message yet. Just been having a play with numpy. I think that will get the coefficients generated.

  9. #49
    Tuning Addict
    Join Date
    Jan 2015
    Location
    Franklin, NC / Gainesville, Ga
    Posts
    6,804
    Knew you could figure it out...
    2010 Vette Stock Bottom LS3 - LS2 APS Twin Turbo Kit, Trick Flow Heads and Custom Cam - 12psi - 714rwhp and 820rwtq / 100hp Nitrous Shot starting at 3000 rpms - 948rwhp and 1044rwtq still on 93
    2011 Vette Cam Only Internal Mod in stock LS3 -- YSI @ 18psi - 811rwhp on 93 / 926rwhp on E60 & 1008rwhp with a 50 shot of nitrous all through a 6L80

    ~Greg Huggins~
    Remote Tuning Available at gh[email protected]
    Mobile Tuning Available for North Georgia and WNC

  10. #50
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    Can confirm numpy and scipy in a python script will do it. Grabbed zone 6 of my VE table, added some random percentage, copied the new values to my script, hit run and also hit calc coefficients on the VE editor. They both generate the same coefficients!!! HP must be using the same algo to curve fit. My first crack at python... And help from chatGPT

    Screenshot 2023-08-19 160154.png

    Here is the test code for zone 6:
    Code:
    import numpy as np 
    from scipy.optimize import curve_fit
    
    # Given data
    MAP = [10, 15, 20, 25, 30, 35, 40, 45]
    RPM = [1000, 1250, 1500, 1750]
    measurement = [
    [717.6177678,   822.4499492,    921.87393,      1015.88971],
    [838.2188358,   974.5,          1071.25,        1116.065835],
    [943.6033685,   1138.300813,    1232.688901,    1201.025425],
    [1033.771366,   1229.996465,    1316.895406,    1270.768479],
    [1108.722828,   1304.953927,    1384.363723,    1325.294998],
    [1168.457755,   1363.173201,    1435.093851,    1364.604982],
    [1212.976146,   1324.5,         1385.5,         1388.69843],
    [1242.278002,   1299.451983,    1351.217763,    1397.575343],
    ]
    
    # Define the model function
    def model_func(data, constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e):
        MAP, RPM = data
        return constant + coefficient_a * MAP + coefficient_b * MAP**2 + coefficient_c * MAP * RPM + coefficient_d * RPM + coefficient_e * RPM**2
    
    # Reshape data for curve fitting
    X = np.array(np.meshgrid(MAP, RPM)).T.reshape(-1, 2).T
    Y = np.array(measurement).flatten()
    
    # Perform curve fitting
    initial_guess = [1, 1, 1, 1, 1, 1]  # Initial guess for coefficients
    params, _ = curve_fit(model_func, X, Y, p0=initial_guess)
    
    constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e = params
    print("Constant:", constant)
    print("Coefficient[a]:", coefficient_a)
    print("Coefficient[b]:", coefficient_b)
    print("Coefficient[c]:", coefficient_c)
    print("Coefficient[d]:", coefficient_d)
    print("Coefficient[e]:", coefficient_e)
    Last edited by hjtrbo; 08-19-2023 at 07:14 PM. Reason: added info

  11. #51
    Senior Tuner
    Join Date
    Mar 2022
    Location
    Indiana
    Posts
    2,939
    Quote Originally Posted by hjtrbo View Post
    Can confirm numpy and scripy in a python script will do it. Grabbed zone 6 of my VE table, added some random percentage, copied the new values to my script, hit run and also hit calc coefficients on the VE editor. They both generate the same coefficients!!! HP must be using the same algo to curve fit. Not bad for my first crack at python lol.

    Screenshot 2023-08-19 160154.png

    Here is the test code for zone 6:
    Code:
    import numpy as np from scipy.optimize import curve_fit
    
    # Given data
    MAP = [10, 15, 20, 25, 30, 35, 40, 45]
    RPM = [1000, 1250, 1500, 1750]
    measurement = [
    [717.6177678,   822.4499492,    921.87393,      1015.88971],
    [838.2188358,   974.5,          1071.25,        1116.065835],
    [943.6033685,   1138.300813,    1232.688901,    1201.025425],
    [1033.771366,   1229.996465,    1316.895406,    1270.768479],
    [1108.722828,   1304.953927,    1384.363723,    1325.294998],
    [1168.457755,   1363.173201,    1435.093851,    1364.604982],
    [1212.976146,   1324.5,         1385.5,         1388.69843],
    [1242.278002,   1299.451983,    1351.217763,    1397.575343],
    ]
    
    # Define the model function
    def model_func(data, constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e):
        MAP, RPM = data
        return constant + coefficient_a * MAP + coefficient_b * MAP**2 + coefficient_c * MAP * RPM + coefficient_d * RPM + coefficient_e * RPM**2
    
    # Reshape data for curve fitting
    X = np.array(np.meshgrid(MAP, RPM)).T.reshape(-1, 2).T
    Y = np.array(measurement).flatten()
    
    # Perform curve fitting
    initial_guess = [1, 1, 1, 1, 1, 1]  # Initial guess for coefficients
    params, _ = curve_fit(model_func, X, Y, p0=initial_guess)
    
    constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e = params
    print("Constant:", constant)
    print("Coefficient[a]:", coefficient_a)
    print("Coefficient[b]:", coefficient_b)
    print("Coefficient[c]:", coefficient_c)
    print("Coefficient[d]:", coefficient_d)
    
    print("Coefficient[e]:", coefficient_e)
    Wow really nice work!
    plotted.png

  12. #52
    Tuning Addict
    Join Date
    Jan 2015
    Location
    Franklin, NC / Gainesville, Ga
    Posts
    6,804
    Quote Originally Posted by hjtrbo View Post
    Can confirm numpy and scripy in a python script will do it. Grabbed zone 6 of my VE table, added some random percentage, copied the new values to my script, hit run and also hit calc coefficients on the VE editor. They both generate the same coefficients!!! HP must be using the same algo to curve fit. Not bad for my first crack at python lol. And help from chatGPT

    Screenshot 2023-08-19 160154.png

    Here is the test code for zone 6:
    Code:
    import numpy as np 
    from scipy.optimize import curve_fit
    
    # Given data
    MAP = [10, 15, 20, 25, 30, 35, 40, 45]
    RPM = [1000, 1250, 1500, 1750]
    measurement = [
    [717.6177678,   822.4499492,    921.87393,      1015.88971],
    [838.2188358,   974.5,          1071.25,        1116.065835],
    [943.6033685,   1138.300813,    1232.688901,    1201.025425],
    [1033.771366,   1229.996465,    1316.895406,    1270.768479],
    [1108.722828,   1304.953927,    1384.363723,    1325.294998],
    [1168.457755,   1363.173201,    1435.093851,    1364.604982],
    [1212.976146,   1324.5,         1385.5,         1388.69843],
    [1242.278002,   1299.451983,    1351.217763,    1397.575343],
    ]
    
    # Define the model function
    def model_func(data, constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e):
        MAP, RPM = data
        return constant + coefficient_a * MAP + coefficient_b * MAP**2 + coefficient_c * MAP * RPM + coefficient_d * RPM + coefficient_e * RPM**2
    
    # Reshape data for curve fitting
    X = np.array(np.meshgrid(MAP, RPM)).T.reshape(-1, 2).T
    Y = np.array(measurement).flatten()
    
    # Perform curve fitting
    initial_guess = [1, 1, 1, 1, 1, 1]  # Initial guess for coefficients
    params, _ = curve_fit(model_func, X, Y, p0=initial_guess)
    
    constant, coefficient_a, coefficient_b, coefficient_c, coefficient_d, coefficient_e = params
    print("Constant:", constant)
    print("Coefficient[a]:", coefficient_a)
    print("Coefficient[b]:", coefficient_b)
    print("Coefficient[c]:", coefficient_c)
    print("Coefficient[d]:", coefficient_d)
    print("Coefficient[e]:", coefficient_e)
    If you move the 3d graph will it spit the new coefficients out? I see good things coming
    2010 Vette Stock Bottom LS3 - LS2 APS Twin Turbo Kit, Trick Flow Heads and Custom Cam - 12psi - 714rwhp and 820rwtq / 100hp Nitrous Shot starting at 3000 rpms - 948rwhp and 1044rwtq still on 93
    2011 Vette Cam Only Internal Mod in stock LS3 -- YSI @ 18psi - 811rwhp on 93 / 926rwhp on E60 & 1008rwhp with a 50 shot of nitrous all through a 6L80

    ~Greg Huggins~
    Remote Tuning Available at gh[email protected]
    Mobile Tuning Available for North Georgia and WNC

  13. #53
    Tuner
    Join Date
    Oct 2014
    Location
    Moscow, Russia
    Posts
    198
    Dynamic Airflow calculation method used in Gen4 and Gen5 is described in this patent:
    https://patents.google.com/patent/US20050060084A1/en

    But it's still partial. Patent only describes Current and Next airmass, but controller calculates further Next2 airmass. And there is a lot of safety limits applied to predicted airmass.


    Quote Originally Posted by hjtrbo View Post
    Lots of things we can't see. 14,721 tables in this particular E38 calibration.

    Attachment 135756
    Hmmm... How did you put your hands on this treasure?
    2011 Cadillac Escalade L94 w/LS3 valves and valve springs

  14. #54
    Advanced Tuner Cringer's Avatar
    Join Date
    Aug 2021
    Location
    Somewhere smoothing your VVE table
    Posts
    515
    Quote Originally Posted by hjtrbo View Post
    Not sure if you ever seen my GMVE formula builder spreadsheet.

    When I get time I'll add your method to it.
    Thank you for this. I remember filling out this spreadsheet a couple years ago...I thought that is where I got my original formula from...maybe I got an older version that had some bugs, or I had some copy and paste issues. Anyway...long story longer...I filled out just and use the suggested in 200ms average and that definitely calmed down the peaks. Again, a million thanks!
    A standard approach will give you standard results.

    My Tuning Software:

    VVE Assistant [update for v1.5]
    MAF Assistant
    EOIT Assistant

  15. #55
    Senior Tuner
    Join Date
    Jul 2020
    Location
    VIC Australia
    Posts
    1,158
    Quote Originally Posted by verlon View Post
    Hmmm... How did you put your hands on this treasure?
    Up for swaps if you have E67 or T43

  16. #56
    Senior Tuner
    Join Date
    Mar 2022
    Location
    Indiana
    Posts
    2,939
    I think he means how was all that data obtained? I'm interested, too.

  17. #57
    Senior Tuner
    Join Date
    Mar 2022
    Location
    Indiana
    Posts
    2,939
    I had some thoughts about all this concerning points of logic. What's a better tune SD, MAF, or hybrid? It's along the lines of when tuning CL use the narrowbands to tune. Tuning the system in the same configuration as final running conditions yields the most accurate results. In SD tune VE, MAF do MAF, but hybrid do SD and MAF separately? I'm coming around 180 on this hybrid tuning idea. It does make more sense. Tune MAF/VE hybrid in hybrid mode. We're tuning the entire system.

    So Cringer I have to give you credit you're really onto something, and I apologize for my skepticism. You correctly determined that to understand this particular GM MAF/MAP hybrid control scheme one needs to pay attention to Dynamic Airflow. The patent that verlon posted reinforces the Dynamic Airflow method.

    Still, I have problems with the implementation. How to determine steady state and how to determine how much each airflow model is corrected?

    1) For the first part of determining steady state conditions I haven't seen any quantifiable yes/no. Seems more like qualification, a 'feel' thing, which has no place in an accurate model. That was until verlon provided a patent document that contains a wealth of information. It shows how steady state is determined.

    What I propose is a modification to the dynair filter. This will allow more accurate determination of what the control scheme considers steady state, therefore will provide more accurate results.

    This is very much pseudocode. Maybe someone who's more competent with VCM Scanner can translate it to math filter format. Whether or not this matches what's being described in the patent needs verification:

    Code:
    Poll [DynAir] if {abs([MAF(k)]-[MAF(k-1)])/[MAF(k-1)] <= [ECM 13432]} && {abs([MAP(k)]-[MAP(k-1)])/[MAP(k-1)] <= [ECM 13432]}
    - where k = current time, k-1 = current time - polling rate. So MAF(k) = MAF reading now and MAF(k-1) = MAF reading .250 seconds ago, for example.
    - ECM 13432 = Dynamic Airflow Current Gain (0.1)

    All it's saying is things are steady state while both MAF and MAP have each changed 10% or less. Assumptions are made about k-1 timestep being the polling rate and gain being ECM 13432.

    Here's my scribbles on how I came up with it.
    quick notes.png

    Hope this helps.
    Last edited by SiriusC1024; 08-19-2023 at 10:09 PM.

  18. #58
    Tuning Addict
    Join Date
    Jan 2015
    Location
    Franklin, NC / Gainesville, Ga
    Posts
    6,804
    Quote Originally Posted by SiriusC1024 View Post
    I had some thoughts about all this concerning points of logic. What's a better tune SD, MAF, or hybrid? It's along the lines of when tuning CL use the narrowbands to tune. Tuning the system in the same configuration as final running conditions yields the most accurate results. In SD tune VE, MAF do MAF, but hybrid do SD and MAF separately? I'm coming around 180 on this hybrid tuning idea. It does make more sense. Tune MAF/VE hybrid in hybrid mode. We're tuning the entire system.

    So Cringer I have to give you credit you're really onto something, and I apologize for my skepticism. You correctly determined that to understand this particular GM MAF/MAP hybrid control scheme one needs to pay attention to Dynamic Airflow. The patent that verlon posted reinforces the Dynamic Airflow method.

    Still, I have problems with the implementation. How to determine steady state and how to determine how much each airflow model is corrected?

    1) For the first part of determining steady state conditions I haven't seen any quantifiable yes/no. Seems more like qualification, a 'feel' thing, which has no place in an accurate model. That was until verlon provided a patent document that contains a wealth of information. It shows how steady state is determined.

    What I propose is a modification to the dynair filter. This will allow more accurate determination of what the control scheme considers steady state, therefore will provide more accurate results.

    This is very much pseudocode. Maybe someone who's more competent with VCM Scanner can translate it to math filter format. Whether or not this matches what's being described in the patent needs verification:

    Code:
    Poll [DynAir] if {abs([MAF(k)]-[MAF(k-1)])/[MAF(k-1)] <= [ECM 13432]} && {abs([MAP(k)]-[MAP(k-1)])/[MAP(k-1)] <= [ECM 13432]}
    - where k = current time, k-1 = current time - polling rate. So MAF(k) = MAF reading now and MAF(k-1) = MAF reading .250 seconds ago, for example.
    - ECM 13432 = Dynamic Airflow Current Gain (0.1)

    All it's saying is things are steady state when both MAF and MAP have each changed 10% or less. Assumptions are made about k-1 timestep being the polling rate and gain being ECM 13432.

    Here's my scribbles on how I came up with it.
    quick notes.png

    Hope this helps.
    Wouldn't it be better to set it up with less than 10%? In other words something like 5% or less or would that be too aggressive at least for the MAF - probably right for the map? I only ask because I know transients come into play when the rpm's are changing 50 or more. I found this out years ago playing with transient settings on a big cammed motor where I had it "thumping" pretty good and before I realized it I was idling at a 13.9 afr because transients had kicked in as I had them set pretty aggressive as it was a big blower motor. Or just use the time function and let things be?
    2010 Vette Stock Bottom LS3 - LS2 APS Twin Turbo Kit, Trick Flow Heads and Custom Cam - 12psi - 714rwhp and 820rwtq / 100hp Nitrous Shot starting at 3000 rpms - 948rwhp and 1044rwtq still on 93
    2011 Vette Cam Only Internal Mod in stock LS3 -- YSI @ 18psi - 811rwhp on 93 / 926rwhp on E60 & 1008rwhp with a 50 shot of nitrous all through a 6L80

    ~Greg Huggins~
    Remote Tuning Available at gh[email protected]
    Mobile Tuning Available for North Georgia and WNC

  19. #59
    Senior Tuner
    Join Date
    Mar 2022
    Location
    Indiana
    Posts
    2,939
    If I am correct about the assignment of the gain constant being ECM 13432 then all you'd have to do is change those from 0.1 to 0.05 to make it 5%. So that would be a tuning technique to employ with larger cams and running MAF/MAP hybrid if necessary.

    But, again assumming ECM 13432, one could theoretically alter the allowance between MAP and MAF for various engine loads. Tighten it up for idle but allow more at other ranges. Just have to modify the filter to account for differences in that table.

    You're probably right though. A higher polling rate/smaller time interval should clear things up. Actually, what the smaller time interval is doing is allowing a smaller window for mismatch between MAF and MAP. With transients there's lag between the two sensors. So, I think the formula should be valid in all conditions. Wouldn't even need a TPS or RPM filter.

    Question is what is the actual polling rate of the ECU. How often is the control loop updated? That would be the determining factor.

    Try it out and see how it goes.

    p.s. Can someone post up a .csv log with map, maf, vve, dynair tracked? I want to demonstrate the filter graphically.
    Last edited by SiriusC1024; 08-19-2023 at 10:53 PM.

  20. #60
    Advanced Tuner Cringer's Avatar
    Join Date
    Aug 2021
    Location
    Somewhere smoothing your VVE table
    Posts
    515
    Quote Originally Posted by SiriusC1024 View Post
    I had some thoughts about all this concerning points of logic. What's a better tune SD, MAF, or hybrid? It's along the lines of when tuning CL use the narrowbands to tune. Tuning the system in the same configuration as final running conditions yields the most accurate results. In SD tune VE, MAF do MAF, but hybrid do SD and MAF separately? I'm coming around 180 on this hybrid tuning idea. It does make more sense. Tune MAF/VE hybrid in hybrid mode. We're tuning the entire system.

    So Cringer I have to give you credit you're really onto something, and I apologize for my skepticism. You correctly determined that to understand this particular GM MAF/MAP hybrid control scheme one needs to pay attention to Dynamic Airflow. The patent that verlon posted reinforces the Dynamic Airflow method.

    Still, I have problems with the implementation. How to determine steady state and how to determine how much each airflow model is corrected?

    1) For the first part of determining steady state conditions I haven't seen any quantifiable yes/no. Seems more like qualification, a 'feel' thing, which has no place in an accurate model. That was until verlon provided a patent document that contains a wealth of information. It shows how steady state is determined.

    What I propose is a modification to the dynair filter. This will allow more accurate determination of what the control scheme considers steady state, therefore will provide more accurate results.

    This is very much pseudocode. Maybe someone who's more competent can translate it to scanner format. Whether or not this matches what's being described in the patent needs verification:

    Poll [DynAir] when abs([MAF(k)] - [MAF(k-1)])/[MAF(k-1)] <= [ECM 13432] && abs([MAP(k)]-[MAP(k-1)])/[MAP(k-1)] <= [ECM 13432]
    - where k = current time, k-1 = current time - polling rate. So MAF(k) = MAF reading now and MAF(k-1) = MAF reading .250 seconds ago, for example.
    - ECM 13432 = Dynamic Airflow Current Gain (0.1)

    All it's saying is things are steady state when both MAF and MAP have changed 10% or less. Assumptions are made about k being the polling rate and gain being ECM 13432.

    Here's my scribbles on how I came up with the formula.
    quick notes.png


    2) How to correct airflow models based on dynair. Probably just a matter of using the VE correction factor. Not sure if filter supports 2d arrays, let alone 1D, so It might not be that simple. At least this matter of correcting MAF and VVE should be streamlined assuming (1) is closer to The Truth.

    Anyway. Hope this helps.
    So am so glad this is finally starting to click!

    I think it is important note a few things here.

    1) A lot of people people seem to really get hung on the fact that "we don't know if MAF or VVE is informing DynAir at any given moment, therefore we cannot use DynAir."
    The fact is, it doesn't matter at all. All we need to know is two things to uncover the true actual airflow:
    -Dynamic air
    -Fuel trims

    On Gen5's there is a PID called Flow Factor that does reveal the weighting between MAF and VVE. This would be nice to have for curiosity sake, but truth is, we don't need it. However, a few days ago I saw this GRG video where Kyle used DynAir in combination with the Flow Factor to come up with a more complex way to tune with DynAir.

    2) This entire method is predicated on the fact that DynAir and only DynAir controls IPW. If this can be disproved, then this method is seriously flawed. MAF and VVE only indirectly influence DynAir. It would be totally different if the ECM hopped between MAF, VVE, DynAir at any moment to control IPW. However, DynAir is always present, always updated and always maintained and ready to render an opinion on air flow and is the only controlling factor over the final IPW.


    Here is an analogy:
    Suppose there are 3 students in math class:
    Victor: good at multiplication
    Mike: good at division
    Dan: who is a cheater and steals answers from Victor and Mike

    On the day of the math test whenever Dan sees a multiplication question, he copies Victor's answer. When there is a division question he steals the answer from Mike. When there is a more complex question involving powers (x^2) or square roots, with addition and subtraction, all 3 students are confused. However, Dan must make a decision, so he plays it safe by looking at both Mike and Victor's answer and coming up with something in the middle.

    At the end of the class all 3 students hand in their math tests for grading. The teacher grades Dan's paper first. But rather than giving a final letter grade, she marks each answer as a percent to target (10% low, 17% high, etc) of the correct answer. Then the teacher hands the 3 tests to a tutor and says to grade the remaining two tests...but not with an answer key. The tutor must look at Dan's test with the % style grading and figure out the correct answers with info given by Dan and the teacher. Now armed with the correct answers, the tutor can now apply the correct grades to Victor and Mike's tests.

    Example:
    Test Question #1) 5 * 11 = ?

    Victor: 56
    Mike: 33
    Dan: 56

    Grade:
    Dan: 1.7857% high
    So the tutor find the answer to question #1 is 55.
    Victor receives the same grade of 1.7857% high while Mike receives a 33% low.


    Question #2) What is the cube root of 9?
    Dan*: 1756
    Mike: 4
    Victor: 2

    *Turns out Dan was day dreaming looking out the window at hot babes walking by and did not copy an answer from either Mike or Victor! However, he still must submit an answer. So he panics and looks at the window again and sees a bus with a serial number drive by and he decides to write down that number.

    Grade:
    585% % too high
    So the tutor finds the answer to question #2 is 3.
    Victor receives a 33% low while Mike receives a 33% high.

    In this situation:
    Dan = Dynamic Air
    Victor = VVE
    Mike = MAF
    Teacher = Fuel trims
    Tutor = tuner

    And the lesson here is, as you can see with question #2, it literally does not matter how Dynamic Air is informed, MAF, VVE, random number...so long as we know the fuel trims to apply back to it.
    A standard approach will give you standard results.

    My Tuning Software:

    VVE Assistant [update for v1.5]
    MAF Assistant
    EOIT Assistant