Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit dd613c08 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

driver: do not limit deceleration when disengaged; search for acceleration if...

driver: do not limit deceleration when disengaged; search for acceleration if negative braking power occurs
parent 67ffe069
No related branches found
No related tags found
No related merge requests found
...@@ -196,12 +196,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -196,12 +196,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
// search again for operating point, transmission may have shifted inbetween // search again for operating point, transmission may have shifted inbetween
nextOperatingPoint = SearchOperatingPoint(absTime, ds, gradient, operatingPoint.Acceleration, nextOperatingPoint = SearchOperatingPoint(absTime, ds, gradient, operatingPoint.Acceleration,
response); response);
limitedOperatingPoint = LimitAccelerationByDriverModel(nextOperatingPoint, DriverAcceleration = nextOperatingPoint.Acceleration;
LimitationMode.LimitDecelerationDriver); retVal = NextComponent.Request(absTime, nextOperatingPoint.SimulationInterval,
DriverAcceleration = limitedOperatingPoint.Acceleration; nextOperatingPoint.Acceleration, gradient);
retVal = NextComponent.Request(absTime, limitedOperatingPoint.SimulationInterval,
limitedOperatingPoint.Acceleration,
gradient);
} else { } else {
if (absTime > 0 && DataBus.VehicleStopped) { if (absTime > 0 && DataBus.VehicleStopped) {
Log.Info( Log.Info(
...@@ -526,6 +523,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl ...@@ -526,6 +523,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient, operatingPoint = SearchBrakingPower(absTime, operatingPoint.SimulationDistance, gradient,
operatingPoint.Acceleration, response); operatingPoint.Acceleration, response);
DriverAcceleration = operatingPoint.Acceleration; 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, retVal = NextComponent.Request(absTime, operatingPoint.SimulationInterval,
operatingPoint.Acceleration, gradient); operatingPoint.Acceleration, gradient);
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment