diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index 4adacfdaaf7242481d0785d88d124807d25c5007..26e22fad12d1430648f6ceeaeb57092ba37b9cf5 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -1444,7 +1444,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies } } - if ((!prohibitGearshift || AllowEmergencyShift) && best.IgnoreReason.EngineSpeedBelowDownshift()) { + if ((!prohibitGearshift || AllowEmergencyShift) && (best.IgnoreReason.EngineSpeedBelowDownshift() || best.IgnoreReason.EngineSpeedTooLow())) { best = DoSelectBestOption(eval, absTime, dt, outTorque, outAngularVelocity, dryRun, currentGear); if (best.IgnoreReason.EngineSpeedBelowDownshift()) { //try downshift @@ -2087,7 +2087,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies // //tmp.FuelCosts = double.NaN; // = Tuple.Create(true, response.Gearbox.Gear - 1); // tmp.IgnoreReason |= HybridConfigurationIgnoreReason.EngineSpeedBelowDownshift; //} - CheckGearshiftLimits(tmp, resp); + if (!tmp.IgnoreReason.EngineTorqueDemandTooHigh()) { + CheckGearshiftLimits(tmp, resp); + } if (resp.Source is TorqueConverter) { if (resp is ResponseUnderload) {