more idle control complexity

This commit is contained in:
rusefi 2017-12-27 00:26:40 -05:00
parent 903bec19ab
commit 30c66f91ea
6 changed files with 29 additions and 21 deletions

View File

@ -593,7 +593,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
boardConfiguration->mapMinBufferLength = 1;
engineConfiguration->iacRPMErrorThreshold = 0;
engineConfiguration->idlePidRpmDeadZone = 50;
engineConfiguration->startOfCrankingPrimingPulse = 0;
engineConfiguration->acCutoffLowRpm = 700;

View File

@ -1,4 +1,4 @@
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017
// begin
#ifndef ENGINE_CONFIGURATION_GENERATED_H_
#define ENGINE_CONFIGURATION_GENERATED_H_
@ -1353,11 +1353,13 @@ typedef struct {
*/
uint32_t engineChartSize;
/**
* set idle_rpm X
* See also cltIdleCorr
* offset 1492
*/
int unusedIdleRpm;
int16_t idlePidRpmUpperLimit;
/**
* offset 1494
*/
int16_t unusedInt16;
/**
* A/C button input handled as analog input
* offset 1496
@ -1574,7 +1576,7 @@ typedef struct {
* If RPM is close enough let's leave IAC alone
* offset 2010
*/
int16_t iacRPMErrorThreshold;
int16_t idlePidRpmDeadZone;
/**
* CLT-based target RPM for automatic idle controller
* offset 2012
@ -2233,4 +2235,4 @@ typedef struct {
#endif
// end
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017

View File

@ -918,8 +918,10 @@
#define twoWireBatchIgnition_offset_hex 5cc
#define engineChartSize_offset 1488
#define engineChartSize_offset_hex 5d0
#define unusedIdleRpm_offset 1492
#define unusedIdleRpm_offset_hex 5d4
#define idlePidRpmUpperLimit_offset 1492
#define idlePidRpmUpperLimit_offset_hex 5d4
#define unusedInt16_offset 1494
#define unusedInt16_offset_hex 5d6
#define acSwitchAdc_offset 1496
#define acSwitchAdc_offset_hex 5d8
#define ignMathCalculateAtIndex_offset 1500
@ -1104,8 +1106,8 @@
#define stepperDirectionPinMode_offset_hex 7d4
#define startUpFuelPumpDuration_offset 2008
#define startUpFuelPumpDuration_offset_hex 7d8
#define iacRPMErrorThreshold_offset 2010
#define iacRPMErrorThreshold_offset_hex 7da
#define idlePidRpmDeadZone_offset 2010
#define idlePidRpmDeadZone_offset_hex 7da
#define cltIdleRpmBins_offset 2012
#define cltIdleRpmBins_offset_hex 7dc
#define cltIdleRpm_offset 2076

View File

@ -667,7 +667,8 @@ custom idle_mode_e 4 bits, U32, @OFFSET@, [0:0], "false", "true"
uint32_t engineChartSize;;"count", 1, 0, 0, 300, 0
int unusedIdleRpm;set idle_rpm X\nSee also cltIdleCorr;"RPM", 1, 0, 0, 7000, 0
int16_t idlePidRpmUpperLimit;;"RPM", 1, 0, 0, 9000, 0
int16_t unusedInt16;
adc_channel_e acSwitchAdc;A/C button input handled as analog input
@ -743,7 +744,7 @@ custom pin_mode_e 4 bits, U32, @OFFSET@, [0:5], @@pin_mode_e_enum@@
pin_output_mode_e stepperDirectionPinMode;
int16_t startUpFuelPumpDuration;;"seconds", 1, 0, 0, 6000, 0
int16_t iacRPMErrorThreshold;If RPM is close enough let's leave IAC alone;"C", 1, 0, 0, 1000, 0
int16_t idlePidRpmDeadZone;If RPM is close enough let's leave IAC alone;"C", 1, 0, 0, 1000, 0
float[CLT_CURVE_SIZE] cltIdleRpmBins;CLT-based target RPM for automatic idle controller;"C", 1, 0, -100.0, 250.0, 2

View File

@ -63,7 +63,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017
; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017
pageSize = 20000
page = 1
@ -478,7 +478,8 @@ page = 1
useOnlyRisingEdgeForTrigger= bits, U32, 1484, [14:14], "false", "true"
twoWireBatchIgnition = bits, U32, 1484, [15:15], "false", "true"
engineChartSize = scalar, U32, 1488, "count", 1, 0, 0, 300, 0
unusedIdleRpm = scalar, S32, 1492, "RPM", 1, 0, 0, 7000, 0
idlePidRpmUpperLimit = scalar, S16, 1492, "RPM", 1, 0, 0, 9000, 0
;skipping unusedInt16 offset 1494
acSwitchAdc = bits, U32, 1496, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
ignMathCalculateAtIndex = scalar, S32, 1500, "index", 1, 0, 0, 7000, 0
;skipping acCutoffLowRpm offset 1504
@ -567,7 +568,7 @@ page = 1
throttlePedalWOTVoltage = scalar, F32, 2000, "voltage", 1, 0, -6, 6, 2
stepperDirectionPinMode = bits, U32, 2004, [0:1], "default", "default inverted", "open collector", "open collector inverted"
startUpFuelPumpDuration = scalar, S16, 2008, "seconds", 1, 0, 0, 6000, 0
iacRPMErrorThreshold = scalar, S16, 2010, "C", 1, 0, 0, 1000, 0
idlePidRpmDeadZone = scalar, S16, 2010, "C", 1, 0, 0, 1000, 0
cltIdleRpmBins = array, F32, 2012, [16], "C", 1, 0, -100.0, 250.0, 2
cltIdleRpm = array, F32, 2076, [16], "RPM", 1, 0, 0.0, 8000.0, 0
targetVBatt = scalar, F32, 2140, "Volts", 1, 0, 0,30, 1

View File

@ -1,6 +1,6 @@
package com.rusefi.config;
// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 24 21:42:02 EST 2017
// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 26 11:24:20 EST 2017
public class Fields {
public static final int LE_COMMAND_LENGTH = 200;
public static final int BLOCKING_FACTOR = 400;
@ -628,7 +628,8 @@ public class Fields {
public static final int useOnlyRisingEdgeForTrigger_offset = 1484;
public static final int twoWireBatchIgnition_offset = 1484;
public static final int engineChartSize_offset = 1488;
public static final int unusedIdleRpm_offset = 1492;
public static final int idlePidRpmUpperLimit_offset = 1492;
public static final int unusedInt16_offset = 1494;
public static final int acSwitchAdc_offset = 1496;
public static final int ignMathCalculateAtIndex_offset = 1500;
public static final int acCutoffLowRpm_offset = 1504;
@ -767,7 +768,7 @@ public class Fields {
public static final int throttlePedalWOTVoltage_offset = 2000;
public static final int stepperDirectionPinMode_offset = 2004;
public static final int startUpFuelPumpDuration_offset = 2008;
public static final int iacRPMErrorThreshold_offset = 2010;
public static final int idlePidRpmDeadZone_offset = 2010;
public static final int cltIdleRpmBins_offset = 2012;
public static final int cltIdleRpm_offset = 2076;
public static final int targetVBatt_offset = 2140;
@ -1533,7 +1534,8 @@ public class Fields {
public static final Field USEONLYRISINGEDGEFORTRIGGER = Field.create("USEONLYRISINGEDGEFORTRIGGER", 1484, FieldType.BIT, 14);
public static final Field TWOWIREBATCHIGNITION = Field.create("TWOWIREBATCHIGNITION", 1484, FieldType.BIT, 15);
public static final Field ENGINECHARTSIZE = Field.create("ENGINECHARTSIZE", 1488, FieldType.INT);
public static final Field UNUSEDIDLERPM = Field.create("UNUSEDIDLERPM", 1492, FieldType.INT);
public static final Field IDLEPIDRPMUPPERLIMIT = Field.create("IDLEPIDRPMUPPERLIMIT", 1492, FieldType.INT);
public static final Field UNUSEDINT16 = Field.create("UNUSEDINT16", 1494, FieldType.INT);
public static final Field ACSWITCHADC = Field.create("ACSWITCHADC", 1496, FieldType.INT, adc_channel_e);
public static final Field IGNMATHCALCULATEATINDEX = Field.create("IGNMATHCALCULATEATINDEX", 1500, FieldType.INT);
public static final Field ACCUTOFFLOWRPM = Field.create("ACCUTOFFLOWRPM", 1504, FieldType.INT);
@ -1616,7 +1618,7 @@ public class Fields {
public static final Field THROTTLEPEDALWOTVOLTAGE = Field.create("THROTTLEPEDALWOTVOLTAGE", 2000, FieldType.FLOAT);
public static final Field STEPPERDIRECTIONPINMODE = Field.create("STEPPERDIRECTIONPINMODE", 2004, FieldType.INT, pin_output_mode_e);
public static final Field STARTUPFUELPUMPDURATION = Field.create("STARTUPFUELPUMPDURATION", 2008, FieldType.INT);
public static final Field IACRPMERRORTHRESHOLD = Field.create("IACRPMERRORTHRESHOLD", 2010, FieldType.INT);
public static final Field IDLEPIDRPMDEADZONE = Field.create("IDLEPIDRPMDEADZONE", 2010, FieldType.INT);
public static final Field TARGETVBATT = Field.create("TARGETVBATT", 2140, FieldType.FLOAT);
public static final Field ALTERNATOROFFABOVETPS = Field.create("ALTERNATOROFFABOVETPS", 2144, FieldType.FLOAT);
public static final Field STARTOFCRANKINGPRIMINGPULSE = Field.create("STARTOFCRANKINGPRIMINGPULSE", 2148, FieldType.FLOAT);