From 30e9372c279ddd5812eab736f03665eddf053777 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Fri, 3 Mar 2023 16:25:29 +0100
Subject: [PATCH] correct serial hybrid strategy parameters: target soc is 1%
 below inital soc, avoid unit conversion in calculating deltaSoC

---
 .../HybridStrategyParameterDataAdapter.cs                | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs
index b81ad5070f..53ec8bc7e3 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/StrategyDataAdapter/HybridStrategyParameterDataAdapter.cs
@@ -344,7 +344,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 				result.TargetSoC = reessMaxSoc - 1 * deltaSoc;
 				result.MinSoC = reessMinSoc + 2 * deltaSoc;
 				if (reessMinSoc >= result.TargetSoC) {
-					throw new VectoException("Min SOC higher than Target SOC");
+					throw new VectoException("Min SOC higher than Target SOC - probably the battery capacity is too small");
 				}
 			}
 
@@ -355,7 +355,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 					break;
 				case VectoRunData.OvcHevMode.ChargeDepleting:
 					result.InitialSoc = (tmpSystem.MaxSoC + tmpSystem.MinSoC) / 2;
-					result.TargetSoC = result.InitialSoc - 1;
+					result.TargetSoC = result.InitialSoc - 0.01;  // target SoC is 1% below initial SoC
 					break;
 				default:
 					throw new ArgumentOutOfRangeException(nameof(ovcMode), ovcMode, null);
@@ -367,8 +367,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 		{
 
 			var v_nom = tmpSystem.NominalVoltage;
-			var c_nom = tmpSystem.Capacity.AsAmpHour;
-			var result = KineticEnergy(vehicleMass, v).ConvertToWattHour()  / v_nom / c_nom;
+			var c_nom = tmpSystem.Capacity;
+			//var result = KineticEnergy(vehicleMass, v).ConvertToWattHour()  / v_nom / c_nom;
+			var result = KineticEnergy(vehicleMass, v) / v_nom / c_nom;
 			return result.Value();
 		}
 
-- 
GitLab