mirror of https://github.com/FOME-Tech/fome-fw.git
Blend tables can override Y axis
This commit is contained in:
parent
23ea9efe31
commit
cde642ae61
|
@ -30,8 +30,9 @@ or
|
|||
|
||||
## Unreleased
|
||||
|
||||
###
|
||||
- Staged injection: a second set of fuel injectors that inject part of the fuel load when you run out of primary injector.
|
||||
### Added
|
||||
- Staged injection: a second set of fuel injectors that inject part of the fuel load when you run out of primary injector
|
||||
- VE/Ign/Boost blend tables can select a Y axis override for even more flexibility
|
||||
|
||||
## December 2023 Release
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@ float AirmassVeModelBase::getVe(int rpm, float load, bool postState) const {
|
|||
engine->outputChannels.veBlendOutput[i] = result.Value;
|
||||
}
|
||||
|
||||
// Skip extra floating point math if we can...
|
||||
if (result.Value == 0) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -459,6 +459,12 @@ BlendResult calculateBlend(blend_table_s& cfg, float rpm, float load) {
|
|||
return { 0, 0, 0 };
|
||||
}
|
||||
|
||||
// Override Y axis value (if necessary)
|
||||
if (cfg.yAxisOverride != GPPWM_Zero) {
|
||||
// TODO: is this value_or(0) correct or even reasonable?
|
||||
load = readGppwmChannel(cfg.yAxisOverride).value_or(0);
|
||||
}
|
||||
|
||||
float tableValue = interpolate3d(
|
||||
cfg.table,
|
||||
cfg.loadBins, load,
|
||||
|
|
|
@ -1711,6 +1711,7 @@ struct blend_table_s
|
|||
uint16_t[8] rpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
gppwm_channel_e blendParameter
|
||||
gppwm_channel_e yAxisOverride
|
||||
|
||||
int16_t[8] autoscale blendBins;;"", 0.1, 0, -1000, 1000, 1
|
||||
uint8_t[8] autoscale blendValues;;"%", 0.5, 0, 0, 100, 1
|
||||
|
|
|
@ -2512,7 +2512,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", ignBlends1_blendParameter
|
||||
panel = ignAdder1Bias
|
||||
field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter}
|
||||
panel = ignAdder1Bias, {ignBlends1_blendParameter}
|
||||
|
||||
dialog = ignAdder2Cfg, "Ignition adder 2 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2522,7 +2523,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", ignBlends2_blendParameter
|
||||
panel = ignAdder2Bias
|
||||
field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter}
|
||||
panel = ignAdder2Bias, {ignBlends2_blendParameter}
|
||||
|
||||
dialog = ignAdder3Cfg, "Ignition adder 3 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2532,7 +2534,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", ignBlends3_blendParameter
|
||||
panel = ignAdder3Bias
|
||||
field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter}
|
||||
panel = ignAdder3Bias, {ignBlends3_blendParameter}
|
||||
|
||||
dialog = ignAdder4Cfg, "Ignition adder 4 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2542,7 +2545,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", ignBlends4_blendParameter
|
||||
panel = ignAdder4Bias
|
||||
field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter}
|
||||
panel = ignAdder4Bias, {ignBlends4_blendParameter}
|
||||
|
||||
dialog = veBlend1Cfg, "VE blend 1 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2553,7 +2557,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", veBlends1_blendParameter
|
||||
panel = veBlend1Bias
|
||||
field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter}
|
||||
panel = veBlend1Bias, {veBlends1_blendParameter}
|
||||
|
||||
dialog = veBlend2Cfg, "VE blend 2 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2564,7 +2569,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", veBlends2_blendParameter
|
||||
panel = veBlend2Bias
|
||||
field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter}
|
||||
panel = veBlend2Bias, {veBlends2_blendParameter}
|
||||
|
||||
dialog = veBlend3Cfg, "VE blend 3 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2575,7 +2581,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", veBlends3_blendParameter
|
||||
panel = veBlend3Bias
|
||||
field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter}
|
||||
panel = veBlend3Bias, {veBlends3_blendParameter}
|
||||
|
||||
dialog = veBlend4Cfg, "VE blend 4 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2586,7 +2593,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", veBlends4_blendParameter
|
||||
panel = veBlend4Bias
|
||||
field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter}
|
||||
panel = veBlend4Bias, {veBlends4_blendParameter}
|
||||
|
||||
dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2596,7 +2604,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", boostOpenLoopBlends1_blendParameter
|
||||
panel = boostOpenLoopBlend1Bias
|
||||
field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter}
|
||||
panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter}
|
||||
|
||||
dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2606,7 +2615,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", boostOpenLoopBlends2_blendParameter
|
||||
panel = boostOpenLoopBlend2Bias
|
||||
field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter}
|
||||
panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter}
|
||||
|
||||
dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2616,7 +2626,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", boostClosedLoopBlends1_blendParameter
|
||||
panel = boostClosedLoopBlend1Bias
|
||||
field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter}
|
||||
panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter}
|
||||
|
||||
dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config"
|
||||
field = "#The bias table controls how much of the blend table"
|
||||
|
@ -2626,7 +2637,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_
|
|||
field = "#The X axis of the bias table is controlled by the selected blend"
|
||||
field = "#parameter below."
|
||||
field = "Blend parameter", boostClosedLoopBlends2_blendParameter
|
||||
panel = boostClosedLoopBlend2Bias
|
||||
field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter}
|
||||
panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter}
|
||||
|
||||
dialog = dwellSettings, "", yAxis
|
||||
panel = dwellCorrection
|
||||
|
|
Loading…
Reference in New Issue