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 2858a044 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adapt shift polygon drawer to draw intersected full-load curve (gear's max torque)

parent d8de8844
No related branches found
No related tags found
No related merge requests found
...@@ -389,25 +389,30 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration ...@@ -389,25 +389,30 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
}; };
engineData.FullLoadCurve.EngineData = engineData; engineData.FullLoadCurve.EngineData = engineData;
var gearboxData = new JSONGearboxDataV5(JSONInputDataFactory.ReadFile(gearboxFile), gearboxFile); var gearboxData = new JSONGearboxDataV6(JSONInputDataFactory.ReadFile(gearboxFile), gearboxFile);
var shiftPolygons = new List<ShiftPolygon>(); var shiftPolygons = new List<ShiftPolygon>();
var downshiftTransformed = new List<List<Point>>(); var downshiftTransformed = new List<List<Point>>();
var downshiftOrig = new List<List<Point>>(); var downshiftOrig = new List<List<Point>>();
var upshiftOrig = new List<List<Point>>(); var upshiftOrig = new List<List<Point>>();
var fullLoadCurves = new List<EngineFullLoadCurve>();
for (var i = 0; i < gearboxData.Gears.Count; i++) { for (var i = 0; i < gearboxData.Gears.Count; i++) {
shiftPolygons.Add(DeclarationData.Gearbox.ComputeShiftPolygon(i, engineData.FullLoadCurve, gearboxData.Gears, var fullLoadCurve = AbstractSimulationDataAdapter.IntersectFullLoadCurves(engineData.FullLoadCurve,
gearboxData.Gears[i].MaxTorque);
shiftPolygons.Add(DeclarationData.Gearbox.ComputeShiftPolygon(i, fullLoadCurve, gearboxData.Gears,
engineData, axlegearRatio, rdyn)); engineData, axlegearRatio, rdyn));
List<Point> tmp1, tmp2, tmp3; List<Point> tmp1, tmp2, tmp3;
ShiftPolygonComparison.ComputShiftPolygonPoints(i, engineData.FullLoadCurve, gearboxData.Gears,
ShiftPolygonComparison.ComputShiftPolygonPoints(i, fullLoadCurve, gearboxData.Gears,
engineData, axlegearRatio, rdyn, out tmp1, out tmp2, out tmp3); engineData, axlegearRatio, rdyn, out tmp1, out tmp2, out tmp3);
upshiftOrig.Add(tmp1); upshiftOrig.Add(tmp1);
downshiftTransformed.Add(tmp2); downshiftTransformed.Add(tmp2);
downshiftOrig.Add(tmp3); downshiftOrig.Add(tmp3);
fullLoadCurves.Add(fullLoadCurve);
} }
ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(gearboxFile), engineData.FullLoadCurve, shiftPolygons, ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(gearboxFile), fullLoadCurves, shiftPolygons,
"scania_fullload_shiftpolygon-test.png", "daimler_fullload_shiftpolygon-test_3.png",
DeclarationData.Gearbox.TruckMaxAllowedSpeed / rdyn * axlegearRatio * gearboxData.Gears.Last().Ratio, upshiftOrig, DeclarationData.Gearbox.TruckMaxAllowedSpeed / rdyn * axlegearRatio * gearboxData.Gears.Last().Ratio, upshiftOrig,
downshiftTransformed, downshiftOrig); downshiftTransformed, downshiftOrig);
} }
...@@ -458,22 +463,26 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration ...@@ -458,22 +463,26 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
var shiftPolygons = new List<ShiftPolygon>(); var shiftPolygons = new List<ShiftPolygon>();
var downshiftTransformed = new List<List<Point>>(); var downshiftTransformed = new List<List<Point>>();
var upshiftOrig = new List<List<Point>>(); var upshiftOrig = new List<List<Point>>();
var fullLoadCurves = new List<EngineFullLoadCurve>();
for (var i = 0; i < gearboxData.Gears.Count; i++) { for (var i = 0; i < gearboxData.Gears.Count; i++) {
var fullLoadCurve = AbstractSimulationDataAdapter.IntersectFullLoadCurves(engineData.FullLoadCurve,
gearboxData.Gears[i].MaxTorque);
shiftPolygons.Add( shiftPolygons.Add(
DeclarationData.Gearbox.ComputeShiftPolygon(i, engineData.FullLoadCurve, gearboxData.Gears, DeclarationData.Gearbox.ComputeShiftPolygon(i, fullLoadCurve, gearboxData.Gears,
engineData, axlegearRatio, rdyn.SI<Meter>()) engineData, axlegearRatio, rdyn.SI<Meter>())
); );
List<Point> tmp1, tmp2, tmp3; List<Point> tmp1, tmp2, tmp3;
ComputShiftPolygonPoints(i, engineData.FullLoadCurve, gearboxData.Gears, ComputShiftPolygonPoints(i, fullLoadCurve, gearboxData.Gears,
engineData, axlegearRatio, rdyn.SI<Meter>(), out tmp1, out tmp2, out tmp3); engineData, axlegearRatio, rdyn.SI<Meter>(), out tmp1, out tmp2, out tmp3);
upshiftOrig.Add(tmp1); upshiftOrig.Add(tmp1);
downshiftTransformed.Add(tmp2); downshiftTransformed.Add(tmp2);
fullLoadCurves.Add(fullLoadCurve);
} }
var imageFile = Path.GetDirectoryName(gearboxFile) + "_" + Path.GetFileNameWithoutExtension(gearboxFile) + "_" + var imageFile = Path.GetDirectoryName(gearboxFile) + "_" + Path.GetFileNameWithoutExtension(gearboxFile) + "_" +
Path.GetFileNameWithoutExtension(engineFldFile) + Path.GetFileNameWithoutExtension(engineFldFile) +
".png"; ".png";
ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(gearboxFile), engineData.FullLoadCurve, shiftPolygons, ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(gearboxFile), fullLoadCurves, shiftPolygons,
imageFile, imageFile,
DeclarationData.Gearbox.TruckMaxAllowedSpeed / rdyn.SI<Meter>() * axlegearRatio * gearboxData.Gears.Last().Ratio, DeclarationData.Gearbox.TruckMaxAllowedSpeed / rdyn.SI<Meter>() * axlegearRatio * gearboxData.Gears.Last().Ratio,
upshiftOrig, downshiftTransformed); upshiftOrig, downshiftTransformed);
......
...@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.Tests.Utils ...@@ -52,7 +52,7 @@ namespace TUGraz.VectoCore.Tests.Utils
private static Size _diagramSize = new Size(1000, 800); private static Size _diagramSize = new Size(1000, 800);
public static void DrawShiftPolygons(string title, EngineFullLoadCurve engineFld, List<ShiftPolygon> polygons, public static void DrawShiftPolygons(string title, List<EngineFullLoadCurve> engineFld, List<ShiftPolygon> polygons,
string imageFileName, PerSecond speed85kmh, List<List<Point>> upshiftOrig = null, string imageFileName, PerSecond speed85kmh, List<List<Point>> upshiftOrig = null,
List<List<Point>> downshiftTransformed = null, List<List<Point>> downshiftOrig = null) List<List<Point>> downshiftTransformed = null, List<List<Point>> downshiftOrig = null)
{ {
...@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Tests.Utils ...@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Tests.Utils
var chart = new Chart() { var chart = new Chart() {
Size = new Size((int)(_diagramSize.Width * numCols), (int)(_diagramSize.Height * numRows)) Size = new Size((int)(_diagramSize.Width * numCols), (int)(_diagramSize.Height * numRows))
}; };
var maxX = engineFld.FullLoadEntries.Last().EngineSpeed.Value() / Constants.RPMToRad * 1.1; var maxX = engineFld.First().FullLoadEntries.Last().EngineSpeed.Value() / Constants.RPMToRad * 1.1;
AddLegend(chart); AddLegend(chart);
...@@ -70,8 +70,8 @@ namespace TUGraz.VectoCore.Tests.Utils ...@@ -70,8 +70,8 @@ namespace TUGraz.VectoCore.Tests.Utils
foreach (var shiftPolygon in polygons) { foreach (var shiftPolygon in polygons) {
var chartArea = AddChartArea(chart, "Gear " + (i + 1), "Engine Speed", "Torque", 0, maxX); var chartArea = AddChartArea(chart, "Gear " + (i + 1), "Engine Speed", "Torque", 0, maxX);
PlotPower(engineFld, chartArea, chart, "engine power " + i); PlotPower(engineFld[i], chartArea, chart, "engine power " + i);
PlotFLD(engineFld, speed85kmh, chartArea, chart, "Engine Full Load " + i); PlotFLD(engineFld[i], speed85kmh, chartArea, chart, "Engine Full Load " + i);
if (upshiftOrig != null && i < upshiftOrig.Count) { if (upshiftOrig != null && i < upshiftOrig.Count) {
PlotShiftLine("UpshiftOrig " + i, chartArea, chart, Color.Gray, PlotShiftLine("UpshiftOrig " + i, chartArea, chart, Color.Gray,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment