From f3a100081e1c327cbd70d9c3524826ec0391a772 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 17 Apr 2019 08:33:34 +0200
Subject: [PATCH] AT shift strategy: avoid emergency upshift from TC to locked
 if acc in locked gear is less than 0

---
 .../Models/SimulationComponent/Impl/ATShiftStrategy.cs         | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/ATShiftStrategy.cs
index a10c53c0e6..40e1c4a434 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;
-- 
GitLab