From 44e5ea770e9e91227ce6557c188a6a54abf829bf Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Wed, 20 Apr 2022 11:30:32 +0200 Subject: [PATCH] HybridStrategy: replaced EngineSpeedTooLow Variable by direct function evaluation with current response --- .../SimulationComponent/Strategies/HybridStrategy.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index 9ac424fb62..fee6cfa041 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -1099,11 +1099,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies }; var firstResponse = RequestDryRun(absTime, dt, outTorque, outAngularVelocity, nextGear, tmp); debug.Add($"[AHS.HBA-0] DryRun Gear={nextGear}", firstResponse); - var engineSpeedTooLow = EngineSpeedTooLow(firstResponse); var endSpeed = DataBus.VehicleInfo.VehicleSpeed + DataBus.DriverInfo.DriverAcceleration * ModelData.GearboxData.TractionInterruption; - if (engineSpeedTooLow + if (EngineSpeedTooLow(firstResponse) && DataBus.GearboxInfo.GearboxType.ManualTransmission() && endSpeed.IsSmallerOrEqual(disengageSpeedThreshold, 0.1.KMPHtoMeterPerSecond())) { var responseEmOff = ResponseEmOff; @@ -1115,7 +1114,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies } if (GearList.HasPredecessor(nextGear) - && engineSpeedTooLow + && EngineSpeedTooLow(firstResponse) && (!vehiclespeedBelowThreshold || AllowEmergencyShift)) { // engine speed would fall below idling speed - consider downshift var estimatedVelocityPostShift = VelocityDropData.Valid @@ -1136,7 +1135,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies } while (GearList.HasPredecessor(nextGear) && firstResponse == null); } - if (nextGear.Equals(GearList.First()) && engineSpeedTooLow) { + if (nextGear.Equals(GearList.First()) && EngineSpeedTooLow(firstResponse)) { // disengage gearbox... var responseEmOff = ResponseEmOff; responseEmOff.Gear = new GearshiftPosition(0); -- GitLab