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
|
||||
engineConfiguration->globalTriggerAngleOffset = 46;
|
||||
engineConfiguration->injectionAngle = 46;
|
||||
// set_injection_offset 0
|
||||
engineConfiguration->injectionAngle = 0;
|
||||
|
||||
setMap(engineConfiguration->fuelTable, -180);
|
||||
|
||||
engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS;
|
||||
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.beforeAdvance = GET_TIMESTAMP();
|
||||
float result = advanceMap.getValue(engineLoad, engineConfiguration->ignitionLoadBins, (float) rpm,
|
||||
engineConfiguration->ignitionRpmBins);
|
||||
float result = advanceMap.getValue(engineLoad, (float) rpm);
|
||||
engine->m.advanceTime = GET_TIMESTAMP() - engine->m.beforeAdvance;
|
||||
return result;
|
||||
}
|
||||
|
@ -59,5 +58,6 @@ float getAdvance(int rpm, float engineLoad DECLARE_ENGINE_PARAMETER_S) {
|
|||
}
|
||||
|
||||
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);
|
||||
setWholeVEMap(engineConfiguration, 0.8);
|
||||
setMap(engineConfiguration->afrTable, 14.7);
|
||||
|
||||
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);
|
||||
engineConfiguration->clt.bias_resistor = 1500;
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
EXTERN_ENGINE;
|
||||
|
||||
static Map3D1616 fuelMap;
|
||||
static Map3D1616 fuelPhaseMap;
|
||||
|
||||
float getBaseFuel(int rpm DECLARE_ENGINE_PARAMETER_S) {
|
||||
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
|
||||
* is to prepare the fuel map data structure for 3d interpolation
|
||||
*/
|
||||
void prepareFuelMap(engine_configuration_s *engineConfiguration) {
|
||||
fuelMap.init(engineConfiguration->fuelTable);
|
||||
void prepareFuelMap(engine_configuration_s *e) {
|
||||
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");
|
||||
return NAN;
|
||||
}
|
||||
return fuelMap.getValue(engineLoad, engineConfiguration->fuelLoadBins, rpm,
|
||||
engineConfiguration->fuelRpmBins);
|
||||
return fuelMap.getValue(engineLoad, rpm);
|
||||
}
|
||||
|
||||
#if EFI_ENGINE_CONTROL
|
||||
|
|
|
@ -17,11 +17,13 @@
|
|||
template<int RPM_BIN_SIZE, int LOAD_BIN_SIZE>
|
||||
class Map3D {
|
||||
public:
|
||||
void init(float table[RPM_BIN_SIZE][LOAD_BIN_SIZE]);
|
||||
float getValue(float x, float xBin[], float y, float yBin[]);
|
||||
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 rpm);
|
||||
void setAll(float value);
|
||||
private:
|
||||
float *pointers[LOAD_BIN_SIZE];
|
||||
float *loadBins;
|
||||
float *rpmBins;
|
||||
int initialized;
|
||||
};
|
||||
|
||||
|
@ -55,17 +57,21 @@ void Table2D<SIZE>::preCalc(float *bin, float *values) {
|
|||
|
||||
|
||||
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++) {
|
||||
pointers[k] = table[k];
|
||||
}
|
||||
initialized = MAGIC_TRUE_VALUE;
|
||||
this->loadBins = loadBins;
|
||||
this->rpmBins = rpmBins;
|
||||
}
|
||||
|
||||
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);
|
||||
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>
|
||||
|
|
|
@ -85,10 +85,8 @@ float getSpeedDensityFuel(Engine *engine, int rpm) {
|
|||
float intakeC = engine->engineState.iat;
|
||||
float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC));
|
||||
float map = getMap();
|
||||
float VE = veMap.getValue(map, engineConfiguration->veLoadBins, rpm,
|
||||
engineConfiguration->veRpmBins);
|
||||
float AFR = afrMap.getValue(map, engineConfiguration->afrLoadBins, rpm,
|
||||
engineConfiguration->afrRpmBins);
|
||||
float VE = veMap.getValue(map, rpm);
|
||||
float AFR = afrMap.getValue(map, rpm);
|
||||
|
||||
return sdMath(engine->engineConfiguration, VE, map, AFR, tChargeK) * 1000;
|
||||
}
|
||||
|
@ -104,7 +102,8 @@ void setDetaultVETable(engine_configuration_s *engineConfiguration) {
|
|||
afrMap.setAll(14.7);
|
||||
}
|
||||
|
||||
void initSpeedDensity(engine_configuration_s *engineConfiguration) {
|
||||
veMap.init(engineConfiguration->veTable);
|
||||
afrMap.init(engineConfiguration->afrTable);
|
||||
void initSpeedDensity(engine_configuration_s *e) {
|
||||
veMap.init(e->veTable, e->veLoadBins, e->veRpmBins);
|
||||
veMap.init(e->ve2Table, e->ve2LoadBins, e->ve2RpmBins);
|
||||
afrMap.init(e->afrTable, e->afrLoadBins, e->afrRpmBins);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue