diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs index fa19858e24c4955f4a00f9e4080e6dcea0484828..79ed9f108a9aca7b6b6f03a73c7ba9568c565538 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Driver.cs @@ -196,12 +196,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl // search again for operating point, transmission may have shifted inbetween nextOperatingPoint = SearchOperatingPoint(absTime, ds, gradient, operatingPoint.Acceleration, response); - limitedOperatingPoint = LimitAccelerationByDriverModel(nextOperatingPoint, - LimitationMode.LimitDecelerationDriver); - DriverAcceleration = limitedOperatingPoint.Acceleration; - retVal = NextComponent.Request(absTime, limitedOperatingPoint.SimulationInterval, - limitedOperatingPoint.Acceleration, - gradient); + DriverAcceleration = nextOperatingPoint.Acceleration; + retVal = NextComponent.Request(absTime, nextOperatingPoint.SimulationInterval, + nextOperatingPoint.Acceleration, gradient); } else { if (absTime > 0 && DataBus.VehicleStopped) { Log.Info( @@ -526,6 +523,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient, operatingPoint.Acceleration, response); DriverAcceleration = operatingPoint.Acceleration; + if (DataBus.BrakePower.IsSmaller(0)) { + DataBus.BrakePower = 0.SI<Watt>(); + + operatingPoint = SearchOperatingPoint(absTime, ds, gradient, 0.SI<MeterPerSquareSecond>(), r); + } retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval, operatingPoint.Acceleration, gradient); } else {