disable closed loop boost below MAP threshold (#3206)
* boost minimum map * changelog
This commit is contained in:
parent
22158cbc4a
commit
6407e74ae2
|
@ -31,6 +31,7 @@ All notable user-facing or behavior-altering changes will be documented in this
|
|||
- RUSEFI MSD now contains bundle-specific URL #2848
|
||||
- Nissan 4 cylinder QR trigger wheel #3118
|
||||
- 1-6-2-4-3-5 firing order for all our 911 fans!
|
||||
- Add minimum MAP threshold for closed-loop boost control
|
||||
|
||||
### Fixed
|
||||
- Composite Logger uses same engineSnifferRpmThreshold setting as engine sniffer #3161
|
||||
|
|
|
@ -106,6 +106,12 @@ expected<percent_t> BoostController::getClosedLoop(float target, float manifoldP
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (manifoldPressure < CONFIG(minimumBoostClosedLoopMap)) {
|
||||
// We're below the CL threshold, inhibit CL for now
|
||||
m_pid.reset();
|
||||
return 0;
|
||||
}
|
||||
|
||||
float closedLoop = m_pid.getOutput(target, manifoldPressure, SLOW_CALLBACK_PERIOD_MS / 1000.0f);
|
||||
|
||||
#if EFI_TUNER_STUDIO
|
||||
|
|
|
@ -901,7 +901,7 @@ pin_output_mode_e hip9011IntHoldPinMode;
|
|||
uint32_t verboseCanBaseAddress;;"", 1, 0, 0, 536870911, 0
|
||||
|
||||
uint8_t mc33_hvolt;;"v", 1, 0, 40, 70, 0
|
||||
uint8_t unused761;;"", 1, 0, 0, 255, 0
|
||||
uint8_t minimumBoostClosedLoopMap;+Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost.;"kPa", 1, 0, 0, 255, 0
|
||||
|
||||
output_pin_e acFanPin;+Optional Radiator Fan used with A/C
|
||||
pin_output_mode_e acFanPinMode;
|
||||
|
|
|
@ -3381,6 +3381,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
|||
;Boost Closed Loop
|
||||
|
||||
dialog = boostPidleft, ""
|
||||
field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 }
|
||||
field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 }
|
||||
field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 }
|
||||
field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 }
|
||||
|
|
|
@ -87,11 +87,17 @@ TEST(BoostControl, ClosedLoop) {
|
|||
|
||||
// Enable closed loop
|
||||
CONFIG(boostType) = CLOSED_LOOP;
|
||||
// Minimum 75kpa
|
||||
CONFIG(minimumBoostClosedLoopMap) = 75;
|
||||
|
||||
// At 0 RPM, closed loop is disabled
|
||||
ENGINE(rpmCalculator.mockRpm) = 0;
|
||||
EXPECT_EQ(0, bc.getClosedLoop(150, 100).value_or(-1000));
|
||||
|
||||
// too low MAP, disable closed loop
|
||||
ENGINE(rpmCalculator.mockRpm) = 0;
|
||||
EXPECT_EQ(0, bc.getClosedLoop(150, 50).value_or(-1000));
|
||||
|
||||
// With RPM, we should get an output
|
||||
ENGINE(rpmCalculator.mockRpm) = 1000;
|
||||
// Actual is below target -> positive output
|
||||
|
|
Loading…
Reference in New Issue