diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs index 84adc817723d1b52f4680ea63287f094a8527279..792885f060097b46e1840b6f0255fb3e3a51b723 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Strategies/HybridStrategy.cs @@ -57,6 +57,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque, Controller.PreviousState.OutAngularVelocity); TestPowertrain.Clutch.Initialize(DataBus.ClutchInfo.ClutchLosses); TestPowertrain.Battery?.Initialize(DataBus.BatteryInfo.StateOfCharge); + if (TestPowertrain.Battery != null) { + TestPowertrain.Battery.PreviousState.PulseDuration = + (DataBus.BatteryInfo as Battery).PreviousState.PulseDuration; + } if (TestPowertrain.BatterySystem != null) { var batSystem = DataBus.BatteryInfo as BatterySystem; foreach (var bsKey in batSystem.Batteries.Keys) { @@ -65,6 +69,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies .Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge); } } + TestPowertrain.BatterySystem.PreviousState.PulseDuration = + (DataBus.BatteryInfo as BatterySystem).PreviousState.PulseDuration; } TestPowertrain.SuperCap?.Initialize(DataBus.BatteryInfo.StateOfCharge); @@ -214,8 +220,22 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies TestPowertrain.HybridController.ApplyStrategySettings(cfg); TestPowertrain.HybridController.Initialize(Controller.PreviousState.OutTorque, Controller.PreviousState.OutAngularVelocity); // TestPowertrain.Clutch.Initialize(DataBus.ClutchInfo.ClutchLosses); - TestPowertrain.Battery?.Initialize(DataBus.BatteryInfo.StateOfCharge); + if (TestPowertrain.Battery != null) { + TestPowertrain.Battery.PreviousState.PulseDuration = + (DataBus.BatteryInfo as Battery).PreviousState.PulseDuration; + } + if (TestPowertrain.BatterySystem != null) { + var batSystem = DataBus.BatteryInfo as BatterySystem; + foreach (var bsKey in batSystem.Batteries.Keys) { + for (var i = 0; i < batSystem.Batteries[bsKey].Batteries.Count; i++) { + TestPowertrain.BatterySystem.Batteries[bsKey].Batteries[i] + .Initialize(batSystem.Batteries[bsKey].Batteries[i].StateOfCharge); + } + } + TestPowertrain.BatterySystem.PreviousState.PulseDuration = + (DataBus.BatteryInfo as BatterySystem).PreviousState.PulseDuration; + } TestPowertrain.SuperCap?.Initialize(DataBus.BatteryInfo.StateOfCharge); TestPowertrain.Brakes.BrakePower = DataBus.Brakes.BrakePower;