Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit a56d90b2 authored by Guillaume ALIX's avatar Guillaume ALIX
Browse files

forbid downshift to locked gear in APT-S if it generates direct upshift condition

Used to avoid hysteresis effect in gear selection for APT-S configuration.
Fix issue #883
Tested on all previous issue with very limited variation of consumption
observed only in APT-S configuration (always a reduction, worst case: -0.19%)
parent a11542b0
Branches
Tags
No related merge requests found
...@@ -448,9 +448,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies ...@@ -448,9 +448,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies
var shiftTimeReached = (absTime - lastShiftTime).IsGreaterOrEqual(GearshiftParams.TimeBetweenGearshifts); var shiftTimeReached = (absTime - lastShiftTime).IsGreaterOrEqual(GearshiftParams.TimeBetweenGearshifts);
if (shiftTimeReached && IsBelowDownShiftCurve(gear, inTorque, inAngularVelocity)) { if (shiftTimeReached && IsBelowDownShiftCurve(gear, inTorque, inAngularVelocity)) {
var next_gear = Gears.Predecessor(gear);
if (!(next_gear.TorqueConverterLocked.Equals(true)) || !(IsAboveUpShiftCurve(next_gear, outTorque / GearboxModelData.Gears[next_gear.Gear].Ratio, outAngularVelocity * GearboxModelData.Gears[next_gear.Gear].Ratio, true)))
{
Downshift(absTime, gear); Downshift(absTime, gear);
return true; return true;
} }
}
if (shiftTimeReached && DataBus.DriverInfo.DrivingAction == DrivingAction.Accelerate) { if (shiftTimeReached && DataBus.DriverInfo.DrivingAction == DrivingAction.Accelerate) {
if (DataBus.VehicleInfo.VehicleSpeed < DataBus.DrivingCycleInfo.CycleData.LeftSample.VehicleTargetSpeed - 10.KMPHtoMeterPerSecond() && if (DataBus.VehicleInfo.VehicleSpeed < DataBus.DrivingCycleInfo.CycleData.LeftSample.VehicleTargetSpeed - 10.KMPHtoMeterPerSecond() &&
......
...@@ -188,9 +188,9 @@ namespace TUGraz.VectoCore.Tests.Integration.GenericVehicles ...@@ -188,9 +188,9 @@ namespace TUGraz.VectoCore.Tests.Integration.GenericVehicles
[Category("Integration")] [Category("Integration")]
[ [
TestCase(SINGLEBUS_31B_FM, "Coach", 863.7357), TestCase(SINGLEBUS_31B_FM, "Coach", 863.6492),
TestCase(SINGLEBUS_31B_FM, "HeavyUrban", 1829.8008), TestCase(SINGLEBUS_31B_FM, "HeavyUrban", 1829.2873),
TestCase(SINGLEBUS_31B_FM, "Interurban", 1039.5712), TestCase(SINGLEBUS_31B_FM, "Interurban", 1039.4657),
TestCase(SINGLEBUS_34F_FM, "Coach", 686.0818), TestCase(SINGLEBUS_34F_FM, "Coach", 686.0818),
TestCase(SINGLEBUS_34F_FM, "HeavyUrban", 1860.2187), TestCase(SINGLEBUS_34F_FM, "HeavyUrban", 1860.2187),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment