auto-sync
This commit is contained in:
parent
80c188a679
commit
4486ca0b51
|
@ -189,7 +189,10 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
||||||
|
|
||||||
// set_global_trigger_offset_angle 46
|
// set_global_trigger_offset_angle 46
|
||||||
engineConfiguration->globalTriggerAngleOffset = 46;
|
engineConfiguration->globalTriggerAngleOffset = 46;
|
||||||
engineConfiguration->injectionAngle = 46;
|
// set_injection_offset 0
|
||||||
|
engineConfiguration->injectionAngle = 0;
|
||||||
|
|
||||||
|
setMap(engineConfiguration->fuelTable, -180);
|
||||||
|
|
||||||
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
|
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
|
||||||
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
||||||
|
|
|
@ -40,8 +40,7 @@ float getBaseAdvance(int rpm, float engineLoad DECLARE_ENGINE_PARAMETER_S) {
|
||||||
engine->m.zeroTestTime = GET_TIMESTAMP() - engine->m.beforeZeroTest;
|
engine->m.zeroTestTime = GET_TIMESTAMP() - engine->m.beforeZeroTest;
|
||||||
|
|
||||||
engine->m.beforeAdvance = GET_TIMESTAMP();
|
engine->m.beforeAdvance = GET_TIMESTAMP();
|
||||||
float result = advanceMap.getValue(engineLoad, engineConfiguration->ignitionLoadBins, (float) rpm,
|
float result = advanceMap.getValue(engineLoad, (float) rpm);
|
||||||
engineConfiguration->ignitionRpmBins);
|
|
||||||
engine->m.advanceTime = GET_TIMESTAMP() - engine->m.beforeAdvance;
|
engine->m.advanceTime = GET_TIMESTAMP() - engine->m.beforeAdvance;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -59,5 +58,6 @@ float getAdvance(int rpm, float engineLoad DECLARE_ENGINE_PARAMETER_S) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void prepareTimingMap(DECLARE_ENGINE_PARAMETER_F) {
|
void prepareTimingMap(DECLARE_ENGINE_PARAMETER_F) {
|
||||||
advanceMap.init(engineConfiguration->ignitionTable);
|
advanceMap.init(engineConfiguration->ignitionTable, engineConfiguration->ignitionLoadBins,
|
||||||
|
engineConfiguration->ignitionRpmBins);
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,7 +192,10 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
||||||
setWholeFuelMap(engineConfiguration, 3);
|
setWholeFuelMap(engineConfiguration, 3);
|
||||||
setWholeVEMap(engineConfiguration, 0.8);
|
setWholeVEMap(engineConfiguration, 0.8);
|
||||||
setMap(engineConfiguration->afrTable, 14.7);
|
setMap(engineConfiguration->afrTable, 14.7);
|
||||||
|
|
||||||
setMap(engineConfiguration->injectionPhase, 0);
|
setMap(engineConfiguration->injectionPhase, 0);
|
||||||
|
setRpmTableBin(engineConfiguration->injPhaseRpmBins, FUEL_RPM_COUNT);
|
||||||
|
setTableBin2(engineConfiguration->injPhaseLoadBins, FUEL_LOAD_COUNT, 10, 300, 1);
|
||||||
|
|
||||||
setThermistorConfiguration(&engineConfiguration->clt, 0, 9500, 23.8889, 2100, 48.8889, 1000);
|
setThermistorConfiguration(&engineConfiguration->clt, 0, 9500, 23.8889, 2100, 48.8889, 1000);
|
||||||
engineConfiguration->clt.bias_resistor = 1500;
|
engineConfiguration->clt.bias_resistor = 1500;
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
static Map3D1616 fuelMap;
|
static Map3D1616 fuelMap;
|
||||||
|
static Map3D1616 fuelPhaseMap;
|
||||||
|
|
||||||
float getBaseFuel(int rpm DECLARE_ENGINE_PARAMETER_S) {
|
float getBaseFuel(int rpm DECLARE_ENGINE_PARAMETER_S) {
|
||||||
if (engine->engineConfiguration->algorithm == LM_SPEED_DENSITY) {
|
if (engine->engineConfiguration->algorithm == LM_SPEED_DENSITY) {
|
||||||
|
@ -119,8 +120,9 @@ float getInjectorLag(float vBatt DECLARE_ENGINE_PARAMETER_S) {
|
||||||
* @note this method has nothing to do with fuel map VALUES - it's job
|
* @note this method has nothing to do with fuel map VALUES - it's job
|
||||||
* is to prepare the fuel map data structure for 3d interpolation
|
* is to prepare the fuel map data structure for 3d interpolation
|
||||||
*/
|
*/
|
||||||
void prepareFuelMap(engine_configuration_s *engineConfiguration) {
|
void prepareFuelMap(engine_configuration_s *e) {
|
||||||
fuelMap.init(engineConfiguration->fuelTable);
|
fuelMap.init(e->fuelTable, e->fuelLoadBins, e->fuelRpmBins);
|
||||||
|
fuelPhaseMap.init(e->injectionPhase, e->injPhaseLoadBins, e->injPhaseRpmBins);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -146,8 +148,7 @@ float getBaseTableFuel(engine_configuration_s *engineConfiguration, int rpm, flo
|
||||||
warning(OBD_PCM_Processor_Fault, "NaN engine load");
|
warning(OBD_PCM_Processor_Fault, "NaN engine load");
|
||||||
return NAN;
|
return NAN;
|
||||||
}
|
}
|
||||||
return fuelMap.getValue(engineLoad, engineConfiguration->fuelLoadBins, rpm,
|
return fuelMap.getValue(engineLoad, rpm);
|
||||||
engineConfiguration->fuelRpmBins);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if EFI_ENGINE_CONTROL
|
#if EFI_ENGINE_CONTROL
|
||||||
|
|
|
@ -17,11 +17,13 @@
|
||||||
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
||||||
class Map3D {
|
class Map3D {
|
||||||
public:
|
public:
|
||||||
void init(float table[RPM_BIN_SIZE][LOAD_BIN_SIZE]);
|
void init(float table[RPM_BIN_SIZE][LOAD_BIN_SIZE], float loadBins[LOAD_BIN_SIZE], float rpmBins[RPM_BIN_SIZE]);
|
||||||
float getValue(float x, float xBin[], float y, float yBin[]);
|
float getValue(float x, float rpm);
|
||||||
void setAll(float value);
|
void setAll(float value);
|
||||||
private:
|
private:
|
||||||
float *pointers[LOAD_BIN_SIZE];
|
float *pointers[LOAD_BIN_SIZE];
|
||||||
|
float *loadBins;
|
||||||
|
float *rpmBins;
|
||||||
int initialized;
|
int initialized;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,17 +57,21 @@ void Table2D<SIZE>::preCalc(float *bin, float *values) {
|
||||||
|
|
||||||
|
|
||||||
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
||||||
void Map3D<RPM_BIN_SIZE, LOAD_BIN_SIZE>::init(float table[RPM_BIN_SIZE][LOAD_BIN_SIZE]) {
|
void Map3D<RPM_BIN_SIZE, LOAD_BIN_SIZE>::init(float table[RPM_BIN_SIZE][LOAD_BIN_SIZE],
|
||||||
|
float loadBins[LOAD_BIN_SIZE],
|
||||||
|
float rpmBins[RPM_BIN_SIZE]) {
|
||||||
for (int k = 0; k < LOAD_BIN_SIZE; k++) {
|
for (int k = 0; k < LOAD_BIN_SIZE; k++) {
|
||||||
pointers[k] = table[k];
|
pointers[k] = table[k];
|
||||||
}
|
}
|
||||||
initialized = MAGIC_TRUE_VALUE;
|
initialized = MAGIC_TRUE_VALUE;
|
||||||
|
this->loadBins = loadBins;
|
||||||
|
this->rpmBins = rpmBins;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
||||||
float Map3D<RPM_BIN_SIZE, LOAD_BIN_SIZE>::getValue(float x, float xBin[], float y, float yBin[]) {
|
float Map3D<RPM_BIN_SIZE, LOAD_BIN_SIZE>::getValue(float x, float rpm) {
|
||||||
efiAssert(initialized == MAGIC_TRUE_VALUE, "map not initialized", NAN);
|
efiAssert(initialized == MAGIC_TRUE_VALUE, "map not initialized", NAN);
|
||||||
return interpolate3d(x, xBin, LOAD_BIN_SIZE, y, yBin, RPM_BIN_SIZE, pointers);
|
return interpolate3d(x, loadBins, LOAD_BIN_SIZE, rpm, rpmBins, RPM_BIN_SIZE, pointers);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
||||||
|
|
|
@ -85,10 +85,8 @@ float getSpeedDensityFuel(Engine *engine, int rpm) {
|
||||||
float intakeC = engine->engineState.iat;
|
float intakeC = engine->engineState.iat;
|
||||||
float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC));
|
float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC));
|
||||||
float map = getMap();
|
float map = getMap();
|
||||||
float VE = veMap.getValue(map, engineConfiguration->veLoadBins, rpm,
|
float VE = veMap.getValue(map, rpm);
|
||||||
engineConfiguration->veRpmBins);
|
float AFR = afrMap.getValue(map, rpm);
|
||||||
float AFR = afrMap.getValue(map, engineConfiguration->afrLoadBins, rpm,
|
|
||||||
engineConfiguration->afrRpmBins);
|
|
||||||
|
|
||||||
return sdMath(engine->engineConfiguration, VE, map, AFR, tChargeK) * 1000;
|
return sdMath(engine->engineConfiguration, VE, map, AFR, tChargeK) * 1000;
|
||||||
}
|
}
|
||||||
|
@ -104,7 +102,8 @@ void setDetaultVETable(engine_configuration_s *engineConfiguration) {
|
||||||
afrMap.setAll(14.7);
|
afrMap.setAll(14.7);
|
||||||
}
|
}
|
||||||
|
|
||||||
void initSpeedDensity(engine_configuration_s *engineConfiguration) {
|
void initSpeedDensity(engine_configuration_s *e) {
|
||||||
veMap.init(engineConfiguration->veTable);
|
veMap.init(e->veTable, e->veLoadBins, e->veRpmBins);
|
||||||
afrMap.init(engineConfiguration->afrTable);
|
veMap.init(e->ve2Table, e->ve2LoadBins, e->ve2RpmBins);
|
||||||
|
afrMap.init(e->afrTable, e->afrLoadBins, e->afrRpmBins);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue