From 79aaae84b713c9c5d29e87c7b423132f0272237c Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Mon, 11 May 2020 14:28:34 +0200
Subject: [PATCH] bugfix smart electrics: wrong sign when calculating max
 charge/discharge power

---
 VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs    | 2 +-
 .../Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs   | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
index 830ca75cd9..8dbe91b345 100644
--- a/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
+++ b/VectoCore/VectoCore/Models/BusAuxiliaries/BusAuxiliaries.cs
@@ -289,7 +289,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries
 					var energy = (generatedElPower - ElectricPowerConsumerSum) * essFactor * seconds;
 					var maxCharge = (ElectricStorage.SOC - 1) * ElectricStorage.Capacity;
 					var maxDischarge = ElectricStorage.SOC * ElectricStorage.Capacity;
-					var batEnergy = energy.LimitTo(maxCharge, maxDischarge);
+					var batEnergy = energy.LimitTo(-maxDischarge, -maxCharge);
 					ElectricStorage.Request(batEnergy);
 				}
 				Signals.CurrentCycleTimeInSeconds += seconds.Value();
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
index 0212cc41b9..d4ca2148cf 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs
@@ -201,7 +201,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			if (SmartElectricSystem) {
 				container[ModalResultField.BatterySOC] = Auxiliaries.BatterySOC * 100.0;
 
-				container[ModalResultField.P_busAux_ES_generated] = essUtilityFactor * Auxiliaries.ElectricPowerConsumerSum;
+
+				container[ModalResultField.P_busAux_ES_generated] = essUtilityFactor * (DataBus.VehicleStopped ? Auxiliaries.ElectricPowerConsumerSum : Auxiliaries.ElectricPowerGenerated);
 				container[ModalResultField.P_busAux_ES_sum_mech] = essUtilityFactor * Auxiliaries.ElectricPowerConsumerSum /
 																	AuxCfg.ElectricalUserInputsConfig.AlternatorGearEfficiency /
 																	AuxCfg.ElectricalUserInputsConfig.AlternatorMap.GetEfficiency(0.RPMtoRad(), 0.SI<Ampere>());
-- 
GitLab