diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs index a10c53c0e6afcf1c75f8e27fb8b5341f07a99415..40e1c4a4340fb87f245341ec4d6c2d5a012052b3 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs @@ -194,7 +194,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl nextInAngularSpeed = outAngularVelocity * ModelData.Gears[gear + 1].Ratio; nextInTorque = outTorque / ModelData.Gears[gear + 1].Ratio; } - if (!IsBelowDownShiftCurve(gear + 1, nextInTorque, nextInAngularSpeed)) { + var acc = EstimateAccelerationForGear(gear + 1, outAngularVelocity); + if ((acc > 0 || _gearbox.TCLocked) && !IsBelowDownShiftCurve(gear + 1, nextInTorque, nextInAngularSpeed)) { Log.Debug("engine speed would be above max speed / rated speed - shift up"); Upshift(absTime, gear); return true;