Fix tunerstudio ratio vs. percent (#838)
* fix ratio vs pct * fix idle cranking clt position * fix defaults * fix typo * fix baro corr gauge * baro default * fix degree symbols * fix testFuelMap * fix testPlainCrankingWithoutAdvancedFeatures * test testFasterEngineSpinningUp
This commit is contained in:
parent
363f1d04cd
commit
e47bc4b952
|
@ -306,11 +306,11 @@ private:
|
||||||
cltCorrection = 1.0f;
|
cltCorrection = 1.0f;
|
||||||
// Use separate CLT correction table for cranking
|
// Use separate CLT correction table for cranking
|
||||||
else if (engineConfiguration->overrideCrankingIacSetting && !isRunning) {
|
else if (engineConfiguration->overrideCrankingIacSetting && !isRunning) {
|
||||||
cltCorrection = interpolate2d("cltCrankingT", clt, config->cltCrankingCorrBins, config->cltCrankingCorr, CLT_CRANKING_CURVE_SIZE) / PERCENT_MULT;
|
cltCorrection = interpolate2d("cltCrankingT", clt, config->cltCrankingCorrBins, config->cltCrankingCorr, CLT_CRANKING_CURVE_SIZE);
|
||||||
} else {
|
} else {
|
||||||
// this value would be ignored if running in AUTO mode
|
// this value would be ignored if running in AUTO mode
|
||||||
// but we need it while cranking in AUTO mode
|
// but we need it while cranking in AUTO mode
|
||||||
cltCorrection = interpolate2d("cltT", clt, config->cltIdleCorrBins, config->cltIdleCorr, CLT_CURVE_SIZE) / PERCENT_MULT;
|
cltCorrection = interpolate2d("cltT", clt, config->cltIdleCorrBins, config->cltIdleCorr, CLT_CURVE_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
percent_t iacPosition;
|
percent_t iacPosition;
|
||||||
|
|
|
@ -539,39 +539,39 @@ static void setBosch02880155868(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setDefaultWarmupIdleCorrection(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
static void setDefaultWarmupIdleCorrection(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
initTemperatureCurve(CLT_MANUAL_IDLE_CORRECTION, PERCENT_MULT);
|
initTemperatureCurve(CLT_MANUAL_IDLE_CORRECTION, 1.0);
|
||||||
|
|
||||||
float baseIdle = 30;
|
float baseIdle = 30;
|
||||||
|
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -40, 150);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -40, 1.5);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -30, 150);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -30, 1.5);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -20, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -20, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -10, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, -10, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 0, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 0, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 10, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 10, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 20, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 20, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 30, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 30, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 40, 40.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 40, 40.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 50, 37.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 50, 37.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 60, 35.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 60, 35.0 / baseIdle);
|
||||||
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 70, 33.0 / baseIdle * 100);
|
setCurveValue(CLT_MANUAL_IDLE_CORRECTION, 70, 33.0 / baseIdle);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setDefaultWarmupFuelEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
static void setDefaultWarmupFuelEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
initTemperatureCurve(WARMUP_CLT_EXTRA_FUEL_CURVE, PERCENT_MULT);
|
initTemperatureCurve(WARMUP_CLT_EXTRA_FUEL_CURVE, 1.0);
|
||||||
|
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -40, 150);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -40, 1.50);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -30, 150);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -30, 1.50);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -20, 142);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -20, 1.42);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -10, 136);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, -10, 1.36);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 0, 128);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 0, 1.28);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 10, 119);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 10, 1.19);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 20, 112);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 20, 1.12);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 30, 110);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 30, 1.10);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 40, 106);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 40, 1.06);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 50, 106);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 50, 1.06);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 60, 103);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 60, 1.03);
|
||||||
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 70, 101);
|
setCurveValue(WARMUP_CLT_EXTRA_FUEL_CURVE, 70, 1.01);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setDefaultFuelCutParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
static void setDefaultFuelCutParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
@ -588,24 +588,24 @@ static void setDefaultCrankingSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
setLinearCurve(engineConfiguration->crankingTpsBins, CRANKING_CURVE_SIZE, 0, 100, 1);
|
setLinearCurve(engineConfiguration->crankingTpsBins, CRANKING_CURVE_SIZE, 0, 100, 1);
|
||||||
|
|
||||||
setLinearCurve(config->cltCrankingCorrBins, CLT_CRANKING_CURVE_SIZE, CLT_CURVE_RANGE_FROM, 100, 1);
|
setLinearCurve(config->cltCrankingCorrBins, CLT_CRANKING_CURVE_SIZE, CLT_CURVE_RANGE_FROM, 100, 1);
|
||||||
setLinearCurve(config->cltCrankingCorr, CLT_CRANKING_CURVE_SIZE, 100, 100, 1);
|
setLinearCurve(config->cltCrankingCorr, CLT_CRANKING_CURVE_SIZE, 1.0, 1.0, 1);
|
||||||
|
|
||||||
config->crankingFuelCoef[0] = 28; // base cranking fuel adjustment coefficient
|
config->crankingFuelCoef[0] = 2.8; // base cranking fuel adjustment coefficient
|
||||||
config->crankingFuelBins[0] = -20; // temperature in C
|
config->crankingFuelBins[0] = -20; // temperature in C
|
||||||
config->crankingFuelCoef[1] = 22;
|
config->crankingFuelCoef[1] = 2.2;
|
||||||
config->crankingFuelBins[1] = -10;
|
config->crankingFuelBins[1] = -10;
|
||||||
config->crankingFuelCoef[2] = 18;
|
config->crankingFuelCoef[2] = 1.8;
|
||||||
config->crankingFuelBins[2] = 5;
|
config->crankingFuelBins[2] = 5;
|
||||||
config->crankingFuelCoef[3] = 15;
|
config->crankingFuelCoef[3] = 1.5;
|
||||||
config->crankingFuelBins[3] = 30;
|
config->crankingFuelBins[3] = 30;
|
||||||
|
|
||||||
config->crankingFuelCoef[4] = 10;
|
config->crankingFuelCoef[4] = 1.0;
|
||||||
config->crankingFuelBins[4] = 35;
|
config->crankingFuelBins[4] = 35;
|
||||||
config->crankingFuelCoef[5] = 10;
|
config->crankingFuelCoef[5] = 1.0;
|
||||||
config->crankingFuelBins[5] = 50;
|
config->crankingFuelBins[5] = 50;
|
||||||
config->crankingFuelCoef[6] = 10;
|
config->crankingFuelCoef[6] = 1.0;
|
||||||
config->crankingFuelBins[6] = 65;
|
config->crankingFuelBins[6] = 65;
|
||||||
config->crankingFuelCoef[7] = 10;
|
config->crankingFuelCoef[7] = 1.0;
|
||||||
config->crankingFuelBins[7] = 90;
|
config->crankingFuelBins[7] = 90;
|
||||||
|
|
||||||
config->crankingCycleCoef[0] = 1.5;
|
config->crankingCycleCoef[0] = 1.5;
|
||||||
|
@ -632,11 +632,11 @@ static void setDefaultCrankingSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->crankingAdvance[0] = 0;
|
engineConfiguration->crankingAdvance[0] = 0;
|
||||||
engineConfiguration->crankingAdvanceBins[0] = 0;
|
engineConfiguration->crankingAdvanceBins[0] = 0;
|
||||||
engineConfiguration->crankingAdvance[1] = 0;
|
engineConfiguration->crankingAdvance[1] = 0;
|
||||||
engineConfiguration->crankingAdvanceBins[0] = 200;
|
engineConfiguration->crankingAdvanceBins[1] = 200;
|
||||||
engineConfiguration->crankingAdvance[2] = 0;
|
engineConfiguration->crankingAdvance[2] = 0;
|
||||||
engineConfiguration->crankingAdvanceBins[0] = 400;
|
engineConfiguration->crankingAdvanceBins[2] = 400;
|
||||||
engineConfiguration->crankingAdvance[3] = 0;
|
engineConfiguration->crankingAdvance[3] = 0;
|
||||||
engineConfiguration->crankingAdvanceBins[0] = 1000;
|
engineConfiguration->crankingAdvanceBins[3] = 1000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ void initFuelMap(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
float getCltFuelCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
float getCltFuelCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
if (cisnan(engine->sensors.clt))
|
if (cisnan(engine->sensors.clt))
|
||||||
return 1; // this error should be already reported somewhere else, let's just handle it
|
return 1; // this error should be already reported somewhere else, let's just handle it
|
||||||
return interpolate2d("cltf", engine->sensors.clt, WARMUP_CLT_EXTRA_FUEL_CURVE) / PERCENT_MULT;
|
return interpolate2d("cltf", engine->sensors.clt, WARMUP_CLT_EXTRA_FUEL_CURVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
angle_t getCltTimingCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
angle_t getCltTimingCorrection(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
|
|
@ -144,12 +144,8 @@ floatms_t getSpeedDensityFuel(float map DECLARE_GLOBAL_SUFFIX) {
|
||||||
return sdMath(airMass, ENGINE(engineState.targetAFR) PASS_GLOBAL_SUFFIX) * 1000;
|
return sdMath(airMass, ENGINE(engineState.targetAFR) PASS_GLOBAL_SUFFIX) * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const baro_corr_table_t default_baro_corr = {
|
// Default baro table is all 1.0, we can't recommend a reasonable default here
|
||||||
{1.141, 1.086, 1.039, 1},
|
static const baro_corr_table_t default_baro_corr = {1};
|
||||||
{1.141, 1.086, 1.039, 1},
|
|
||||||
{1.141, 1.086, 1.039, 1},
|
|
||||||
{1.141, 1.086, 1.039, 1}
|
|
||||||
};
|
|
||||||
|
|
||||||
void setDefaultVETable(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
void setDefaultVETable(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
setRpmTableBin(config->veRpmBins, FUEL_RPM_COUNT);
|
setRpmTableBin(config->veRpmBins, FUEL_RPM_COUNT);
|
||||||
|
|
|
@ -134,8 +134,7 @@ custom fsio_table_8x8_f32t 4*@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@ array, F32, @
|
||||||
custom tps_tps_table_t 4*@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@ array, F32, @OFFSET@, [@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@],"value", 1, 0, 0.0, 30000.0, 2
|
custom tps_tps_table_t 4*@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@ array, F32, @OFFSET@, [@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@],"value", 1, 0, 0.0, 30000.0, 2
|
||||||
|
|
||||||
|
|
||||||
! todo support table size multiplocation
|
custom baro_corr_table_t 4*@@BARO_CORR_SIZE@@x@@BARO_CORR_SIZE@@ array, F32, @OFFSET@, [@@BARO_CORR_SIZE@@x@@BARO_CORR_SIZE@@],"ratio", 1, 0, 0, 2.0, 2
|
||||||
custom baro_corr_table_t 4*@@BARO_CORR_SIZE@@x@@BARO_CORR_SIZE@@ array, F32, @OFFSET@, [@@BARO_CORR_SIZE@@x@@BARO_CORR_SIZE@@],"%", 1, 0, 0, 999.0, 2
|
|
||||||
|
|
||||||
|
|
||||||
custom ignition_table_t 4*@@IGN_RPM_COUNT@@x@@IGN_LOAD_COUNT@@ array, F32, @OFFSET@, [@@IGN_RPM_COUNT@@x@@IGN_LOAD_COUNT@@],"deg", 1, 0, -20, 90, 2
|
custom ignition_table_t 4*@@IGN_RPM_COUNT@@x@@IGN_LOAD_COUNT@@ array, F32, @OFFSET@, [@@IGN_RPM_COUNT@@x@@IGN_LOAD_COUNT@@],"deg", 1, 0, -20, 90, 2
|
||||||
|
@ -1079,19 +1078,19 @@ le_formula_t[FSIO_COMMAND_COUNT iterate] fsioFormulas;
|
||||||
le_formula_t timingAdditive;
|
le_formula_t timingAdditive;
|
||||||
|
|
||||||
float[CLT_CURVE_SIZE] cltFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
|
float[CLT_CURVE_SIZE] cltFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
|
||||||
float[CLT_CURVE_SIZE] cltFuelCorr;;"Ratio", 1, 0, 0.0, 500.0, 2
|
float[CLT_CURVE_SIZE] cltFuelCorr;;"ratio", 1, 0, 0.0, 5.0, 2
|
||||||
|
|
||||||
float[IAT_CURVE_SIZE] iatFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
|
float[IAT_CURVE_SIZE] iatFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
|
||||||
float[IAT_CURVE_SIZE] iatFuelCorr;;"Ratio", 1, 0, 0.0, 10.0, 2
|
float[IAT_CURVE_SIZE] iatFuelCorr;;"ratio", 1, 0, 0.0, 5.0, 2
|
||||||
|
|
||||||
float[CRANKING_CURVE_SIZE] crankingFuelCoef;;"Ratio", 1, 0, 0.0, 300.0, 2
|
float[CRANKING_CURVE_SIZE] crankingFuelCoef;;"ratio", 1, 0, 0.0, 5.0, 2
|
||||||
float[CRANKING_CURVE_SIZE] crankingFuelBins;;"C", 1, 0, -80.0, 170.0, 2
|
float[CRANKING_CURVE_SIZE] crankingFuelBins;;"C", 1, 0, -80.0, 170.0, 2
|
||||||
|
|
||||||
float[CRANKING_CURVE_SIZE] crankingCycleCoef;;"%", 1, 0, 0.0, 500.0, 2
|
float[CRANKING_CURVE_SIZE] crankingCycleCoef;;"ratio", 1, 0, 0.0, 5.0, 2
|
||||||
float[CRANKING_CURVE_SIZE] crankingCycleBins;;"counter", 1, 0, -80.0, 170.0, 0
|
float[CRANKING_CURVE_SIZE] crankingCycleBins;;"counter", 1, 0, -80.0, 170.0, 0
|
||||||
|
|
||||||
float[CLT_CURVE_SIZE] cltIdleCorrBins;CLT-based idle position multiplier for simple manual idle controller;"C", 1, 0, -100.0, 250.0, 2
|
float[CLT_CURVE_SIZE] cltIdleCorrBins;CLT-based idle position multiplier for simple manual idle controller;"C", 1, 0, -100.0, 250.0, 2
|
||||||
float[CLT_CURVE_SIZE] cltIdleCorr; CLT-based idle position multiplier for simple manual idle controller;"%", 1, 0, 0.0, 1000.0, 2
|
float[CLT_CURVE_SIZE] cltIdleCorr; CLT-based idle position multiplier for simple manual idle controller;"ratio", 1, 0, 0.0, 10.0, 2
|
||||||
|
|
||||||
float[MAF_DECODING_COUNT] mafDecoding;kg/hour value.\nBy the way 2.081989116 kg/h = 1 ft3/m;"kg/hour", 1, 0, -500.0, 4000.0, 2
|
float[MAF_DECODING_COUNT] mafDecoding;kg/hour value.\nBy the way 2.081989116 kg/h = 1 ft3/m;"kg/hour", 1, 0, -500.0, 4000.0, 2
|
||||||
float[MAF_DECODING_COUNT] mafDecodingBins;; "V", 1, 0, -5.0, 150.0, 2
|
float[MAF_DECODING_COUNT] mafDecodingBins;; "V", 1, 0, -5.0, 150.0, 2
|
||||||
|
|
|
@ -420,7 +420,7 @@ fileVersion = { 20171101 }
|
||||||
#else
|
#else
|
||||||
xAxis = -40, 250, 10
|
xAxis = -40, 250, 10
|
||||||
#endif
|
#endif
|
||||||
yAxis = 0, 5, 10
|
yAxis = 0, 2, 11
|
||||||
xBins = iatFuelCorrBins, intake
|
xBins = iatFuelCorrBins, intake
|
||||||
yBins = iatFuelCorr
|
yBins = iatFuelCorr
|
||||||
gauge = IATGauge
|
gauge = IATGauge
|
||||||
|
@ -444,7 +444,7 @@ fileVersion = { 20171101 }
|
||||||
#else
|
#else
|
||||||
xAxis = -40, 210, 10
|
xAxis = -40, 210, 10
|
||||||
#endif
|
#endif
|
||||||
yAxis = 0, 50, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = cltFuelCorrBins, coolant
|
xBins = cltFuelCorrBins, coolant
|
||||||
yBins = cltFuelCorr
|
yBins = cltFuelCorr
|
||||||
gauge = CLTGauge
|
gauge = CLTGauge
|
||||||
|
@ -456,7 +456,7 @@ fileVersion = { 20171101 }
|
||||||
#else
|
#else
|
||||||
xAxis = -40, 210, 10
|
xAxis = -40, 210, 10
|
||||||
#endif
|
#endif
|
||||||
yAxis = 0, 30, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = crankingFuelBins, coolant
|
xBins = crankingFuelBins, coolant
|
||||||
yBins = crankingFuelCoef
|
yBins = crankingFuelCoef
|
||||||
gauge = CLTGauge
|
gauge = CLTGauge
|
||||||
|
@ -472,7 +472,7 @@ fileVersion = { 20171101 }
|
||||||
curve = crankingTpsCurve, "Cranking TPS Multiplier"
|
curve = crankingTpsCurve, "Cranking TPS Multiplier"
|
||||||
columnLabel = "TPS", "Multiplier"
|
columnLabel = "TPS", "Multiplier"
|
||||||
xAxis = 0, 100, 10
|
xAxis = 0, 100, 10
|
||||||
yAxis = 0, 5, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = crankingTpsBins, TPSValue
|
xBins = crankingTpsBins, TPSValue
|
||||||
yBins = crankingTpsCoef
|
yBins = crankingTpsCoef
|
||||||
gauge = TPSGauge
|
gauge = TPSGauge
|
||||||
|
@ -480,7 +480,7 @@ fileVersion = { 20171101 }
|
||||||
curve = crankingDurationCurve, "Cranking Duration Multiplier"
|
curve = crankingDurationCurve, "Cranking Duration Multiplier"
|
||||||
columnLabel = "Engine Cycle", "Multiplier"
|
columnLabel = "Engine Cycle", "Multiplier"
|
||||||
xAxis = 0, 1000, 10
|
xAxis = 0, 1000, 10
|
||||||
yAxis = 0, 5, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = crankingCycleBins
|
xBins = crankingCycleBins
|
||||||
yBins = crankingCycleCoef
|
yBins = crankingCycleCoef
|
||||||
|
|
||||||
|
@ -492,7 +492,7 @@ fileVersion = { 20171101 }
|
||||||
#else
|
#else
|
||||||
xAxis = -40, 250, 10
|
xAxis = -40, 250, 10
|
||||||
#endif
|
#endif
|
||||||
yAxis = 0, 50, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = cltIdleCorrBins, coolant
|
xBins = cltIdleCorrBins, coolant
|
||||||
yBins = cltIdleCorr
|
yBins = cltIdleCorr
|
||||||
gauge = CLTGauge
|
gauge = CLTGauge
|
||||||
|
@ -516,7 +516,7 @@ fileVersion = { 20171101 }
|
||||||
#else
|
#else
|
||||||
xAxis = -40, 250, 10
|
xAxis = -40, 250, 10
|
||||||
#endif
|
#endif
|
||||||
yAxis = 0, 300, 10
|
yAxis = 0, 3, 10
|
||||||
xBins = cltCrankingCorrBins, coolant
|
xBins = cltCrankingCorrBins, coolant
|
||||||
yBins = cltCrankingCorr
|
yBins = cltCrankingCorr
|
||||||
gauge = CLTGauge
|
gauge = CLTGauge
|
||||||
|
@ -849,7 +849,7 @@ gaugeCategory = Fuel Data
|
||||||
#else
|
#else
|
||||||
tChargeGauge = tCharge, @@GAUGE_NAME_FUEL_CHARGE_TEMP@@, "°F", -40, 285, 5, 35, 205, 230, 1, 1
|
tChargeGauge = tCharge, @@GAUGE_NAME_FUEL_CHARGE_TEMP@@, "°F", -40, 285, 5, 35, 205, 230, 1, 1
|
||||||
#endif
|
#endif
|
||||||
baroCorrectionGauge = baroCorrection,"BaroCorr", "%", 0, 120, 10, 10, 100, 100, 1, 1
|
baroCorrectionGauge = baroCorrection,"BaroCorr", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1
|
||||||
crankingFuelGauge = crankingFuelMs, @@GAUGE_NAME_FUEL_CRANKING@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1
|
crankingFuelGauge = crankingFuelMs, @@GAUGE_NAME_FUEL_CRANKING@@, "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1
|
||||||
iatCorrectionGauge = iatCorrection, @@GAUGE_NAME_FUEL_IAT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2
|
iatCorrectionGauge = iatCorrection, @@GAUGE_NAME_FUEL_IAT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2
|
||||||
cltCorrectionGauge = cltCorrection, @@GAUGE_NAME_FUEL_CLT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2
|
cltCorrectionGauge = cltCorrection, @@GAUGE_NAME_FUEL_CLT_CORR@@, "mult", 0, 3, 0, 0, 3, 3, 2, 2
|
||||||
|
|
|
@ -53,7 +53,7 @@ TEST(cranking, testFasterEngineSpinningUp) {
|
||||||
// test if ignition mode is temporary changed to wasted spark, if set to individual coils
|
// test if ignition mode is temporary changed to wasted spark, if set to individual coils
|
||||||
ASSERT_EQ(IM_WASTED_SPARK, getCurrentIgnitionMode(PASS_ENGINE_PARAMETER_SIGNATURE));
|
ASSERT_EQ(IM_WASTED_SPARK, getCurrentIgnitionMode(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
// check real events
|
// check real events
|
||||||
eth.assertEvent5(&engine->executor, "inj start#1", 0, (void*)startSimultaniousInjection, timeStartUs, MS2US(200) + 81250);
|
eth.assertEvent5(&engine->executor, "inj start#1", 0, (void*)startSimultaniousInjection, timeStartUs, MS2US(200) + 98125);
|
||||||
eth.assertEvent5(&engine->executor, "inj end#1", 1, (void*)endSimultaniousInjection, timeStartUs, MS2US(200) + 100000);
|
eth.assertEvent5(&engine->executor, "inj end#1", 1, (void*)endSimultaniousInjection, timeStartUs, MS2US(200) + 100000);
|
||||||
|
|
||||||
// skip the rest of the cycle
|
// skip the rest of the cycle
|
||||||
|
@ -75,7 +75,7 @@ TEST(cranking, testFasterEngineSpinningUp) {
|
||||||
// two simultaneous injections
|
// two simultaneous injections
|
||||||
ASSERT_EQ( 4, engine->executor.size()) << "plain#2";
|
ASSERT_EQ( 4, engine->executor.size()) << "plain#2";
|
||||||
// check real events
|
// check real events
|
||||||
eth.assertEvent5(&engine->executor, "inj start#2", 0, (void*)startSimultaniousInjection, eth.getTimeNowUs(), 131250);
|
eth.assertEvent5(&engine->executor, "inj start#2", 0, (void*)startSimultaniousInjection, eth.getTimeNowUs(), 148125);
|
||||||
eth.assertEvent5(&engine->executor, "inj end#2", 1, (void*)endSimultaniousInjection, eth.getTimeNowUs(), 150000);
|
eth.assertEvent5(&engine->executor, "inj end#2", 1, (void*)endSimultaniousInjection, eth.getTimeNowUs(), 150000);
|
||||||
|
|
||||||
// skip, clear & advance 1 more revolution at higher RPM
|
// skip, clear & advance 1 more revolution at higher RPM
|
||||||
|
@ -96,8 +96,8 @@ TEST(cranking, testFasterEngineSpinningUp) {
|
||||||
|
|
||||||
// check real events for sequential injection
|
// check real events for sequential injection
|
||||||
// Note: See addFuelEvents() fix inside setRpmValue()!
|
// Note: See addFuelEvents() fix inside setRpmValue()!
|
||||||
eth.assertEvent5(&engine->executor, "inj start#3", 0, (void*)seTurnPinHigh, timeStartUs, MS2US(60) + 11250);
|
eth.assertEvent5(&engine->executor, "inj start#3", 0, (void*)seTurnPinHigh, timeStartUs, MS2US(60) + 28125);
|
||||||
eth.assertEvent5(&engine->executor, "inj end#3", 1, (void*)seTurnPinLow, timeStartUs, MS2US(60) + 11250 + 3000);
|
eth.assertEvent5(&engine->executor, "inj end#3", 1, (void*)seTurnPinLow, timeStartUs, MS2US(60) + 28125 + 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doTestFasterEngineSpinningUp60_2(int startUpDelayMs, int rpm1, int expectedRpm) {
|
static void doTestFasterEngineSpinningUp60_2(int startUpDelayMs, int rpm1, int expectedRpm) {
|
||||||
|
|
|
@ -80,7 +80,7 @@ TEST(misc, testFuelMap) {
|
||||||
printf("*************************************************** setting CLT table\r\n");
|
printf("*************************************************** setting CLT table\r\n");
|
||||||
for (int i = 0; i < CLT_CURVE_SIZE; i++) {
|
for (int i = 0; i < CLT_CURVE_SIZE; i++) {
|
||||||
eth.engine.config->cltFuelCorrBins[i] = i;
|
eth.engine.config->cltFuelCorrBins[i] = i;
|
||||||
eth.engine.config->cltFuelCorr[i] = 100;
|
eth.engine.config->cltFuelCorr[i] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
setFlatInjectorLag(0 PASS_CONFIG_PARAMETER_SUFFIX);
|
setFlatInjectorLag(0 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
|
@ -110,10 +110,10 @@ TEST(misc, testFuelMap) {
|
||||||
printf("*************************************************** getStartingFuel\r\n");
|
printf("*************************************************** getStartingFuel\r\n");
|
||||||
// NAN in case we have issues with the CLT sensor
|
// NAN in case we have issues with the CLT sensor
|
||||||
ASSERT_EQ( 6.0, getCrankingFuel3(NAN, 0 PASS_ENGINE_PARAMETER_SUFFIX)) << "getStartingFuel nan";
|
ASSERT_EQ( 6.0, getCrankingFuel3(NAN, 0 PASS_ENGINE_PARAMETER_SUFFIX)) << "getStartingFuel nan";
|
||||||
assertEqualsM("getStartingFuel#1", 116, getCrankingFuel3(0, 4 PASS_ENGINE_PARAMETER_SUFFIX));
|
assertEqualsM("getStartingFuel#1", 11.6, getCrankingFuel3(0, 4 PASS_ENGINE_PARAMETER_SUFFIX));
|
||||||
assertEqualsM("getStartingFuel#2", 58.2120, getCrankingFuel3(8, 15 PASS_ENGINE_PARAMETER_SUFFIX));
|
assertEqualsM("getStartingFuel#2", 5.82120, getCrankingFuel3(8, 15 PASS_ENGINE_PARAMETER_SUFFIX));
|
||||||
assertEqualsM("getStartingFuel#3", 60.00, getCrankingFuel3(70, 0 PASS_ENGINE_PARAMETER_SUFFIX));
|
assertEqualsM("getStartingFuel#3", 6.000, getCrankingFuel3(70, 0 PASS_ENGINE_PARAMETER_SUFFIX));
|
||||||
assertEqualsM("getStartingFuel#4", 24.1379, getCrankingFuel3(70, 50 PASS_ENGINE_PARAMETER_SUFFIX));
|
assertEqualsM("getStartingFuel#4", 2.41379, getCrankingFuel3(70, 50 PASS_ENGINE_PARAMETER_SUFFIX));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ TEST(engine, testPlainCrankingWithoutAdvancedFeatures) {
|
||||||
// two simultaneous injections
|
// two simultaneous injections
|
||||||
ASSERT_EQ( 4, engine->executor.size()) << "plain#2";
|
ASSERT_EQ( 4, engine->executor.size()) << "plain#2";
|
||||||
|
|
||||||
eth.assertEvent5(&engine->executor, "sim start", 0, (void*)startSimultaniousInjection, eth.getTimeNowUs(), 81250);
|
eth.assertEvent5(&engine->executor, "sim start", 0, (void*)startSimultaniousInjection, eth.getTimeNowUs(), 100000 - 1875);
|
||||||
eth.assertEvent5(&engine->executor, "sim end", 1, (void*)endSimultaniousInjection, eth.getTimeNowUs(), 100000);
|
eth.assertEvent5(&engine->executor, "sim end", 1, (void*)endSimultaniousInjection, eth.getTimeNowUs(), 100000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue