From 3dde14772825aa64f64a2596371217fe8abdb44c Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Fri, 26 Jun 2020 16:01:48 +0200
Subject: [PATCH] more work on hybrid controller

---
 .../Impl/StopStartCombustionEngine.cs         | 29 +++++++++++++++++--
 .../Strategies/HybridStrategy.cs              |  3 +-
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
index 57be84629f..73daa73282 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/StopStartCombustionEngine.cs
@@ -44,11 +44,34 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl {
 		{
 			if (!outTorque.IsEqual(0)) {
 				if (dryRun) {
-					return new ResponseOverload(this) {
-						Delta = outTorque * outAngularVelocity
+					return new ResponseDryRun(this) {
+						DeltaFullLoad = outTorque * ModelData.IdleSpeed,
+						DeltaDragLoad = outTorque * ModelData.IdleSpeed,
+						Engine = {
+							TotalTorqueDemand = outTorque,
+							PowerRequest = outTorque * outAngularVelocity,
+							DynamicFullLoadPower = 0.SI<Watt>(),
+							DragPower = 0.SI<Watt>(),
+							EngineSpeed = 0.RPMtoRad(),
+							AuxiliariesPowerDemand = 0.SI<Watt>(),
+						},
+						DeltaEngineSpeed = 0.RPMtoRad(),
 					};
 				}
-				throw new VectoSimulationException("Combustion engine cannot supply outtorque when switched off (T_out: {0})", outTorque);
+
+				return new ResponseOverload(this) {
+					Delta = outTorque * outAngularVelocity,
+					Engine = {
+						TotalTorqueDemand = outTorque,
+						PowerRequest = outTorque * outAngularVelocity,
+						DynamicFullLoadPower = 0.SI<Watt>(),
+						DragPower = 0.SI<Watt>(),
+						EngineSpeed = 0.RPMtoRad(),
+						AuxiliariesPowerDemand = 0.SI<Watt>(),
+					},
+				};
+
+				//throw new VectoSimulationException("Combustion engine cannot supply outtorque when switched off (T_out: {0})", outTorque);
 			}
 			CurrentState.EngineOn = false;
 			CurrentState.EngineSpeed = ModelData.IdleSpeed;
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
index 6c81ba20d9..9e1aa9d69f 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs
@@ -174,7 +174,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
 						CombustionEngineOn = DataBus.EngineInfo.EngineOn,
 						MechanicalAssistPower = ElectricMotorsOff
 					},
-					FuelCosts = double.NaN
+					FuelCosts = double.NaN,
+					ICEOff = !DataBus.EngineInfo.EngineOn,
 				});
 			}
 			if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake && eval.Count  == 0) {
-- 
GitLab