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
Verified Commit 08ed7c6b authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

PEV AMT Shift strategy: when selecting optimal gear for braking consider the max EM speed

parent f21da42f
No related branches found
No related tags found
No related merge requests found
...@@ -490,6 +490,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies ...@@ -490,6 +490,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies
GearboxModelData.Gears[tmpGear.Gear].Ratio; GearboxModelData.Gears[tmpGear.Gear].Ratio;
var firstGear = GearList.Predecessor(currentGear, 1); var firstGear = GearList.Predecessor(currentGear, 1);
var lastGear = GearList.Predecessor(currentGear, (uint)GearshiftParams.AllowedGearRangeFC); var lastGear = GearList.Predecessor(currentGear, (uint)GearshiftParams.AllowedGearRangeFC);
var maxEmSpeed = DataBus.GetElectricMotors().First(x => x.Position != PowertrainPosition.GEN).MaxSpeed;
foreach (var gear in GearList.IterateGears(firstGear, lastGear)) { foreach (var gear in GearList.IterateGears(firstGear, lastGear)) {
var ratio = gear.IsLockedGear() var ratio = gear.IsLockedGear()
? GearboxModelData.Gears[gear.Gear].Ratio ? GearboxModelData.Gears[gear.Gear].Ratio
...@@ -498,9 +499,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies ...@@ -498,9 +499,17 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies
if (GearboxModelData.Gears[gear.Gear].MaxSpeed != null && gbxInSpeed.IsGreater(GearboxModelData.Gears[gear.Gear].MaxSpeed)) { if (GearboxModelData.Gears[gear.Gear].MaxSpeed != null && gbxInSpeed.IsGreater(GearboxModelData.Gears[gear.Gear].MaxSpeed)) {
continue; continue;
} }
if (gbxInSpeed.IsGreater(maxEmSpeed)) {
continue;
}
candidates[gear] = gbxInSpeed; candidates[gear] = gbxInSpeed;
} }
if (!candidates.Any()) {
return tmpGear;
}
var ratedSpeed = VoltageLevels.VoltageLevels.First().FullLoadCurve.RatedSpeed; var ratedSpeed = VoltageLevels.VoltageLevels.First().FullLoadCurve.RatedSpeed;
var maxSpeedNorm = VoltageLevels.MaxSpeed / ratedSpeed; var maxSpeedNorm = VoltageLevels.MaxSpeed / ratedSpeed;
var targetMotor = (_shiftStrategyParameters.PEV_TargetSpeedBrakeNorm * (maxSpeedNorm - 1) + 1) * ratedSpeed; var targetMotor = (_shiftStrategyParameters.PEV_TargetSpeedBrakeNorm * (maxSpeedNorm - 1) + 1) * ratedSpeed;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment