Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

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

corrections: p5 is at 95% rated speed, shift polygons go below drag torque

parent 76ba971a
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
......
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