selectable idle Y axis override (#94)
* selectable idle Y axis override * changelog (cherry picked from commit f30e2ce0f2d5b0df90fd97b454c81423c397b268)
This commit is contained in:
parent
61b9e6b035
commit
8549349995
|
@ -40,6 +40,7 @@ Release template (copy/paste this for new release):
|
|||
- Support gauge fuel pressure sensors
|
||||
- Better idle VE table transition
|
||||
- Detected gear available as gppwm channel
|
||||
- Y axis override for Idle VE table. Helps with idle quality on ITB setups. #94
|
||||
|
||||
## April 2023 Release - "Day 419"
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
AirmassVeModelBase::AirmassVeModelBase(const ValueProvider3D& veTable) : m_veTable(&veTable) {}
|
||||
|
||||
float AirmassVeModelBase::getVeLoadAxis(float passedLoad) const {
|
||||
switch(engineConfiguration->veOverrideMode) {
|
||||
static float getVeLoadAxis(ve_override_e mode, float passedLoad) {
|
||||
switch(mode) {
|
||||
case VE_None: return passedLoad;
|
||||
case VE_MAP: return Sensor::getOrZero(SensorType::Map);
|
||||
case VE_TPS: return Sensor::getOrZero(SensorType::Tps1);
|
||||
|
@ -18,7 +18,7 @@ float AirmassVeModelBase::getVe(int rpm, float load) const {
|
|||
efiAssert(ObdCode::OBD_PCM_Processor_Fault, m_veTable != nullptr, "VE table null", 0);
|
||||
|
||||
// Override the load value if necessary
|
||||
load = getVeLoadAxis(load);
|
||||
load = getVeLoadAxis(engineConfiguration->veOverrideMode, load);
|
||||
|
||||
percent_t ve = m_veTable->getValue(rpm, load);
|
||||
|
||||
|
@ -27,9 +27,11 @@ float AirmassVeModelBase::getVe(int rpm, float load) const {
|
|||
// get VE from the separate table for Idle if idling
|
||||
if (engine->module<IdleController>()->isIdlingOrTaper() &&
|
||||
tps && engineConfiguration->useSeparateVeForIdle) {
|
||||
float idleVeLoad = getVeLoadAxis(engineConfiguration->idleVeOverrideMode, load);
|
||||
|
||||
percent_t idleVe = interpolate3d(
|
||||
config->idleVeTable,
|
||||
config->idleVeLoadBins, load,
|
||||
config->idleVeLoadBins, idleVeLoad,
|
||||
config->idleVeRpmBins, rpm
|
||||
);
|
||||
|
||||
|
|
|
@ -21,6 +21,4 @@ public:
|
|||
|
||||
private:
|
||||
const ValueProvider3D* const m_veTable;
|
||||
|
||||
float getVeLoadAxis(float passedLoad) const;
|
||||
};
|
||||
|
|
|
@ -592,7 +592,7 @@ adc_channel_e throttlePedalPositionAdcChannel;Electronic throttle pedal position
|
|||
switch_input_pin_e throttlePedalUpPin;Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata
|
||||
|
||||
|
||||
air_pressure_sensor_config_s baroSensor;@see hasBaroSensor
|
||||
air_pressure_sensor_config_s baroSensor;@see hasBaroSensor
|
||||
|
||||
struct idle_hardware_s
|
||||
int solenoidFrequency;;"Hz", 1, 0, 0, 3000, 0
|
||||
|
@ -625,6 +625,12 @@ engineSyncCam_e engineSyncCam;Select which cam is used for engine sync. Other ca
|
|||
|
||||
uint16_t autoscale vssGearRatio;Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.;"ratio", 0.001, 0, 0, 60, 3
|
||||
uint8_t vssToothCount;Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.;"count", 1, 0, 1, 100, 0
|
||||
|
||||
#define ve_override_e_enum "None", "MAP", "TPS"
|
||||
custom ve_override_e 1 bits, U08, @OFFSET@, [0:1], @@ve_override_e_enum@@
|
||||
|
||||
ve_override_e idleVeOverrideMode;Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this.
|
||||
|
||||
Gpio l9779_cs;
|
||||
|
||||
|
||||
|
@ -1142,8 +1148,6 @@ int16_t tps2Max;Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\
|
|||
custom can_baudrate_e 1 bits, U08, @OFFSET@, [0:2], @@can_baudrate_e_enum@@
|
||||
can_baudrate_e canBaudRate; set can_baudrate
|
||||
|
||||
#define ve_override_e_enum "None", "MAP", "TPS"
|
||||
custom ve_override_e 1 bits, U08, @OFFSET@, [0:1], @@ve_override_e_enum@@
|
||||
ve_override_e veOverrideMode;Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this.
|
||||
|
||||
can_baudrate_e can2BaudRate;
|
||||
|
|
|
@ -3180,6 +3180,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
dialog = idleExtra, "Extra Idle Features"
|
||||
field = "Use idle ignition table", useSeparateAdvanceForIdle
|
||||
field = "Use idle VE table", useSeparateVeForIdle
|
||||
field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 }
|
||||
field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper
|
||||
field = "Use coasting idle table", useIacTableForCoasting
|
||||
field = "Detailed status in console", isVerboseIAC
|
||||
|
|
Loading…
Reference in New Issue