From bff7c79872d6a55f30c15fc06fd76c4a319d93d6 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 13 Feb 2019 15:33:35 +0100
Subject: [PATCH] loss-map extension: in case of negative slope for regression
 line exten loss-map with torque loss of last entry in loss-map

---
 .../Reader/ComponentData/TransmissionLossMapReader.cs  | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs
index 21919d1a7d..2bf6548ebe 100644
--- a/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/TransmissionLossMapReader.cs
@@ -130,8 +130,14 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData
 					out r);
 
 				var inTq = DeclarationData.LossMapExtrapolationFactor * maxTorque;
-				entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, inTq, k * inTq + d.SI<NewtonMeter>()));
-				entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, -inTq, k * inTq + d.SI<NewtonMeter>()));
+				if (k > 0) {
+					entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, inTq, k * inTq + d.SI<NewtonMeter>()));
+					entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, -inTq, k * inTq + d.SI<NewtonMeter>()));
+				} else {
+					var torqueLossLastEntry = speedBucket.Value.OrderBy(x => x.InputSpeed).Last().TorqueLoss;
+					entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, inTq, torqueLossLastEntry));
+					entries.Add(new TransmissionLossMap.GearLossMapEntry(speedBucket.Key, -inTq, torqueLossLastEntry));
+				}
 			}
 
 			return entries;
-- 
GitLab