this is a copy of my post from the vboard, figured i'll post it here for review.
an explanation of how safc2 determines and uses both hi/low throttle maps to calculate the adjustment needed.
it interpolates intermediate values.
it goes off the assumption that throttle plate can be somewhat related to load on the engine.
i am also going off the assumption that safc is doing this in a linear fashion, it could be exponential, i can do a writeup on the exponential adjustment interpolation if someone thinks it's not linear.
so for example imagine this situation:
lo th=30
hi th=60
lo map @ 4000 rpm = +5
hi map @ 4000 rpm = -15
lets look at the adjustments it will make, for simplicity sake, lets assume that the engine is rotating at 4000 rpm regardless of throttle posititon:
0 throttle - lo map only is used , so +5 adjustment to airflow
10 throttle - lo map only is used, +5 adjustment
20 throttle - lo map only is used , +5 adjustment
30 throttle - low map only is used, +5 adjustment
40 throttle - this is where it gets a bit complicated,
it will use both of the maps and interpolate the value between lo and hi adjustment based on the throttle...
someone correct me if my math is off:
total adjustment points = hi - lo = -15-(+5) = -20
throttle difference = hi th - lo th = 60 - 30 = 30
adjustment points per throttle % = -20 / 30 = -0.66
adjustment at 10% above lo position = 10 * -0.66 = -6.66% towards hi throttle map
so at 40% throttle the adjustment will be 5+(-6.66)
so... 40% throttle both maps are used adjustment = -1.66
50% throttle both maps are used again, adjustment = -8.2 (5+(20*-0.66))
55% throttle both maps are used adjustmen = -11.5 (5+(25*-0.66))
60% hi map only is used adjustment = -15%
70% hi map only adjustment = -15%
and so on.
to sum this up
below lo throttle, only lo throttle map is used
above hi throttle, only hi throttle map is used
between - both maps are used on a sliding scale.
mine... are set at 60 - 80 or something like that, i keep changing them pretty often as i play with the safc.
hope this helps.
*edit: modified some of the math, not using abs() anymore, a more general approach*
an explanation of how safc2 determines and uses both hi/low throttle maps to calculate the adjustment needed.
it interpolates intermediate values.
it goes off the assumption that throttle plate can be somewhat related to load on the engine.
i am also going off the assumption that safc is doing this in a linear fashion, it could be exponential, i can do a writeup on the exponential adjustment interpolation if someone thinks it's not linear.
so for example imagine this situation:
lo th=30
hi th=60
lo map @ 4000 rpm = +5
hi map @ 4000 rpm = -15
lets look at the adjustments it will make, for simplicity sake, lets assume that the engine is rotating at 4000 rpm regardless of throttle posititon:
0 throttle - lo map only is used , so +5 adjustment to airflow
10 throttle - lo map only is used, +5 adjustment
20 throttle - lo map only is used , +5 adjustment
30 throttle - low map only is used, +5 adjustment
40 throttle - this is where it gets a bit complicated,
it will use both of the maps and interpolate the value between lo and hi adjustment based on the throttle...
someone correct me if my math is off:
total adjustment points = hi - lo = -15-(+5) = -20
throttle difference = hi th - lo th = 60 - 30 = 30
adjustment points per throttle % = -20 / 30 = -0.66
adjustment at 10% above lo position = 10 * -0.66 = -6.66% towards hi throttle map
so at 40% throttle the adjustment will be 5+(-6.66)
so... 40% throttle both maps are used adjustment = -1.66
50% throttle both maps are used again, adjustment = -8.2 (5+(20*-0.66))
55% throttle both maps are used adjustmen = -11.5 (5+(25*-0.66))
60% hi map only is used adjustment = -15%
70% hi map only adjustment = -15%
and so on.
to sum this up
below lo throttle, only lo throttle map is used
above hi throttle, only hi throttle map is used
between - both maps are used on a sliding scale.
mine... are set at 60 - 80 or something like that, i keep changing them pretty often as i play with the safc.
hope this helps.
*edit: modified some of the math, not using abs() anymore, a more general approach*