From b5506fe16bf0dd2de4dfa0b49a0247618c1985a4 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 18 Sep 2020 13:28:02 +0200
Subject: [PATCH] fix cycle gearbox for VTP with TC in 1st and 2nd gear

---
 .../Models/SimulationComponent/Impl/CycleGearbox.cs   | 11 ++++++++---
 VectoCore/VectoCoreTest/VectoCoreTest.csproj          |  9 +++++++++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
index 6bfedbb717..e8b23506f4 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/CycleGearbox.cs
@@ -99,10 +99,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			IResponse response;
 
 			if (Gear != 0) {
-				inAngularVelocity = outAngularVelocity * ModelData.Gears[Gear].Ratio;
-				var inTorqueLossResult = ModelData.Gears[Gear].LossMap.GetTorqueLoss(outAngularVelocity, outTorque);
+				var ratio = (TorqueConverterActive != null && TorqueConverterActive.Value
+					? ModelData.Gears[Gear].TorqueConverterRatio
+					: ModelData.Gears[Gear].Ratio);
+				inAngularVelocity = outAngularVelocity * ratio;
+				var inTorqueLossResult = TorqueConverterActive != null && TorqueConverterActive.Value
+					? ModelData.Gears[Gear].TorqueConverterGearLossMap.GetTorqueLoss(outAngularVelocity, outTorque)
+					: ModelData.Gears[Gear].LossMap.GetTorqueLoss(outAngularVelocity, outTorque);
 				CurrentState.TorqueLossResult = inTorqueLossResult;
-				inTorque = outTorque / ModelData.Gears[Gear].Ratio + inTorqueLossResult.Value;
+				inTorque = outTorque / ratio + inTorqueLossResult.Value;
 
 				var torqueLossInertia = outAngularVelocity.IsEqual(0)
 					? 0.SI<NewtonMeter>()
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 50531ceb57..7ffda65be3 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -1871,6 +1871,12 @@
     <None Include="TestData\Integration\VTPMode\GenericVehicle\VTP cycle_RD_2Hz.vdri">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="TestData\Integration\VTPMode\GenericVehicle\VTP_AT-gbx_2TC.vecto">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+    <None Include="TestData\Integration\VTPMode\GenericVehicle\vtp_cycle_citybus_atser_2TC.vdri">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
     <None Include="TestData\Integration\VTPMode\GenericVehicle_CNG\class_5_generic vehicle_DECL.vecto">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
@@ -2919,6 +2925,9 @@
     <Content Include="TestData\Integration\VTPMode\GenericVehicle XMLJob PTO\Tractor_4x2_vehicle-class-5_Generic vehicle.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="TestData\Integration\VTPMode\GenericVehicle\CityBus_AT_Ser_2TC.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\Integration\VTPMode\GenericVehicle\Rigid Truck_4x2_vehicle-class-3_EURO6_2018.MANUFACTURER.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-- 
GitLab