Wue autotune (#294)

* add wue autotune

* fix ve autotune if lambda is used

* add lambdaTarget

* fix typo

* change one name
This commit is contained in:
iLeeeZi 2020-01-28 13:50:34 +02:00 committed by Josh Stewart
parent 1d5053cccf
commit 335a191238
1 changed files with 59 additions and 23 deletions

View File

@ -49,6 +49,13 @@
mapwarn = scalar, U16, "kPa", 1, 0, 0, 30000, 0
mapdang = scalar, U16, "kPa", 1, 0, 0, 30000, 0
#if LAMBDA
wueAFR = array, S16, [10], "Lambda", { 0.1 / stoich }, 0.000, -0.300, 0.300, 3
#else
wueAFR = array, S16, [10], "AFR", 0.1, 0.0, -4.0, 4.0, 1
#endif
wueRecommended = array, U08, [10], "%", 1.0, 0.0, 100, 255.0, 0
idleUnits = bits, U08, [0:2], "None", "On/Off", "Duty Cycle", "Duty Cycle", "Steps", "Steps"
@ -1206,6 +1213,12 @@ page = 11
defaultValue = mapdang, 245
defaultValue = maphigh, 255
#if LAMBDA
defaultValue = wueAFR, -0.136 -0.102 -0.082 -0.068 -0.054 -0.041 -0.027 -0.014 -0.007 0.000
#else
defaultValue = wueAFR, -2.0 -1.5 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 -0.1 0.0
#endif
[Menu]
;----------------------------------------------------------------------------
@ -3035,14 +3048,6 @@ cmdtestspk450dc = "E\x03\x0C"
gauge = cltGauge
size = 50, 250
; Warmup enrichment VEAL AFR adjustment curve (Not currently working)
;curve = warmup_afr_curve, "AFR Target Temperature Adustment"
; columnLabel = "Coolant Temp", "AFR Offset %"
; xAxis = -40, 210, 9
; yAxis = 0, 240, 6
; xBins = wueAFRBins, coolant
; yBins = wueAFRRates
; Flex fuel correction curves
curve = flex_fuel_curve, "Flex Fuel Adjustments"
columnLabel = "Ethanol", "Fuel"
@ -3085,6 +3090,29 @@ cmdtestspk450dc = "E\x03\x0C"
yBins = knock_window_dur
size = 400, 200
; Warmup enrichment VEAL AFR adjustment curves
curve = warmup_afr_curve, "Target Adjustment"
columnLabel = "Coolant", "Offset"
xAxis = -40, 210, 9
#if LAMBDA
yAxis = -0.3, 0.1, 5
#else
yAxis = -4, 1, 5
#endif
xBins = wueBins, coolant
yBins = wueAFR
curve = warmup_analyzer_curve, "Warmup Enrichment"
columnLabel = "Coolant", "Current WUE", "Coolant", "Recommended WUE"
xAxis = -40, 210, 9
yAxis = 100, 255, 6
xBins = wueBins, coolant
yBins = wueRates
yBins = wueRecommended
lineLabel = "Current WUE"
lineLabel = "Recommended WUE"
[TableEditor]
; table_id, map3d_id, "title", page
table = veTable1Tbl, veTable1Map, "VE Table", 2
@ -3245,6 +3273,7 @@ cmdtestspk450dc = "E\x03\x0C"
boostTargetGauge = boostTarget, "Target Boost", "kPa", 0, {maphigh}, 0, 20, {mapwarn}, {mapdang}, 0, 0
boostDutyGauge = boostDuty, "Boost Duty Cycle", "%", 0, 100, -1, -1, 101, 110, 1, 1
afrTargetGauge = afrTarget, "Target AFR", "", 7, 25, 12, 13, 15, 16, 2, 2
lambdaTargetGauge = lambdaTarget, "Target Lambda", "", 0.5, 1.5, 0.82, 0.89, 1.02, 1.09, 3, 3
VVTdutyCycleGauge = vvtDuty, "VVT Duty Cycle", "%", 0, 100, -1, -1, 101, 110, 1, 1
IdleTargetGauge = CLIdleTarget, "Idle Target RPM", "RPM", 0, 2000, 300, 600, 1500, 1700, 0, 0
idleLoadGauge = idleLoad, "IAC Value", "%/Steps", 0, {maphigh}, 0, 20, {mapwarn}, {mapdang}, 0, 0
@ -3485,6 +3514,7 @@ cmdtestspk450dc = "E\x03\x0C"
boostCutOut = { boostCutFuel || boostCutSpark }
lambda = { afr / stoich }
lambdaTarget = { afrTarget / stoich }
MAPxRPM = { rpm * map }
loopsPerRev = { loopsPerSecond / (rpm / 60) }
req_fuel = { reqFuel }
@ -3553,6 +3583,7 @@ cmdtestspk450dc = "E\x03\x0C"
entry = VE2, "VE2", int, "%d"
entry = pulseWidth, "PW", float, "%.1f"
entry = afrTarget, "AFR Target", float, "%.3f"
entry = lambdaTarget, "Lambda Target",float, "%.3f"
entry = pulseWidth, "PW2", float, "%.1f"
entry = dutyCycle, "DutyCycle1", float, "%.1f"
entry = dutyCycle, "DutyCycle2", float, "%.1f"
@ -3649,8 +3680,12 @@ cmdtestspk450dc = "E\x03\x0C"
[VeAnalyze]
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
#if LAMBDA
veAnalyzeMap = veTable1Tbl, afrTable1Tbl, lambda, egoCorrection
#else
veAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection
lambdaTargetTables = afrTable1Tbl, afrTSCustom,
#endif
lambdaTargetTables = afrTable1Tbl, afrTSCustom
filter = std_xAxisMin ; Auto build with appropriate axis channels
;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true
filter = std_xAxisMax ; Auto build with appropriate axis channels
@ -3668,18 +3703,19 @@ cmdtestspk450dc = "E\x03\x0C"
filter = overrunFilter, "Overrun" , pulseWidth, = , 0, , false
filter = std_Custom ; Standard Custom Expression Filter.
;------------- WUE VEAL not currently working ----------------
;[WueAnalyze]
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
; wueAnalyzeMap = veTable1Tbl, afrTable1Tbl, afr, egoCorrection
; wueAnalyzeMap = afrTable1Tbl, warmup_afr_curve, warmup_curve, afr, coolant, warmupEnrich ;warmup_afr_curve,
; lambdaTargetTables = afrTable1Tbl, afrTSCustom,
;filter = std_xAxisMin ; Auto build with appropriate axis channels
;filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true
;filter = std_xAxisMax ; Auto build with appropriate axis channels
;filter = std_yAxisMin ; Auto build with appropriate axis channels
;filter = std_yAxisMax ; Auto build with appropriate axis channels
;filter = std_DeadLambda ; Auto build
; filter = maxTPSFilter, "High Throttle", tps, < , 15, , true
;------------- WUE VEAL not currently working ----------------
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, wueChannel, egoCorrectionChannel, activeCondition
#if LAMBDA
wueAnalyzeMap = warmup_analyzer_curve, warmup_afr_curve, afrTable1Tbl, lambda, coolant, warmupEnrich, egoCorrection
#else
wueAnalyzeMap = warmup_analyzer_curve, warmup_afr_curve, afrTable1Tbl, afr, coolant, warmupEnrich, egoCorrection
#endif
lambdaTargetTables = afrTable1Tbl, afrTSCustom
filter = std_DeadLambda ; Auto build
filter = accelFilter, "Accel Flag", engine, &, 16, false
filter = aseFilter, "ASE Flag", engine, &, 4, false
filter = overrunFilter, "Overrun", pulseWidth, =, 0, false
filter = maxTPS, "Max TPS", throttle, >, 15, true
filter = minRPM, "Min RPM", rpm, <, 300, true
filter = std_Custom ; Standard Custom Expression Filter.