diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 14612799ae2e4e380f83aae708ad13dc13fb450d..9a507c1abc84d48d6a4bb1508b13f64a57268379 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -249,6 +249,8 @@ namespace TUGraz.VectoCore.Models.Declaration var engineSpeed85kmhSecondToLastGear = ComputeEngineSpeed85kmh(gears[gears.Count - 2], axlegearRatio, dynamicTyreRadius, engine); + var maxDragTorque = engine.FullLoadCurve.MaxDragTorque * 1.1; + var p1 = new Point(engine.IdleSpeed.Value() / 2, 0); var p2 = new Point(engine.IdleSpeed.Value() * 1.1, 0); var p3 = new Point(engineSpeed85kmhLastGear.Value() * 0.9, @@ -256,7 +258,7 @@ namespace TUGraz.VectoCore.Models.Declaration var p4 = new Point((engineSpeed85kmhLastGear + (engineSpeed85kmhSecondToLastGear - engineSpeed85kmhLastGear) / 3).Value(), 0); - var p5 = new Point(fullLoadCurve.RatedSpeed.Value(), fullLoadCurve.MaxTorque.Value()); + var p5 = new Point(fullLoadCurve.RatedSpeed.Value() * 0.95, fullLoadCurve.MaxTorque.Value()); var p6 = new Point(p2.X, VectoMath.Interpolate(p1, p3, p2.X)); var p7 = new Point(p4.X, VectoMath.Interpolate(p2, p5, p4.X)); @@ -264,10 +266,13 @@ namespace TUGraz.VectoCore.Models.Declaration var fldMargin = ShiftPolygonFldMargin(fullLoadCurve.FullLoadEntries, engineSpeed85kmhLastGear * 0.9); var downshiftCorr = MoveDownshiftBelowFld(Edge.Create(p6, p3), fldMargin, 1.1 * fullLoadCurve.MaxTorque); var downShift = - new[] { p2, downshiftCorr.P1, downshiftCorr.P2 }.Select(point => new ShiftPolygon.ShiftPolygonEntry() { - AngularSpeed = point.X.SI<PerSecond>(), - Torque = point.Y.SI<NewtonMeter>() - }).ToList(); + new[] { p2, downshiftCorr.P1, downshiftCorr.P2 }.Select( + point => new ShiftPolygon.ShiftPolygonEntry() { + AngularSpeed = point.X.SI<PerSecond>(), + Torque = point.Y.SI<NewtonMeter>() + }).ToList(); + + downShift[0].Torque = maxDragTorque; var upShift = new List<ShiftPolygon.ShiftPolygonEntry>(); if (gear >= gears.Count - 1) { @@ -288,7 +293,7 @@ namespace TUGraz.VectoCore.Models.Declaration AngularSpeed = point.X.SI<PerSecond>(), Torque = point.Y.SI<NewtonMeter>() }).ToList(); - + upShift[0].Torque = maxDragTorque; return new ShiftPolygon(downShift, upShift); }