From 8260df348a9970dce70306b01805f68f9ac83c1a Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 15 Dec 2021 11:30:31 +0100 Subject: [PATCH] update testcase for PEV shift polygon drawing --- .../Models/Declaration/ShiftPolygonTest.cs | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs index 903e964704..5eaf85863a 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs @@ -925,9 +925,12 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration } } - [TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG.vecto"), - TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_cont30kW.vecto")] - public void ComputePEVShiftLines(string pevE2Job) + [TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG.vecto", null), + TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_cont30kW.vecto", null), + TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_cont30kW.vecto", 0.9), + TestCase(@"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_cont30kW.vecto", 1.1), + ] + public void ComputePEVShiftLines(string pevE2Job, double? factorDownshiftSpeed) { var inputData = JSONInputDataFactory.ReadJsonJob(pevE2Job) as IEngineeringInputDataProvider; var gearboxData = inputData.JobInputData.Vehicle.Components.GearboxInputData; @@ -950,20 +953,33 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration }; fullLoadCurves[(uint)(0)] = new EngineFullLoadCurve(fullLoadCurve, null) { EngineData = engineData}; var shiftPolygons = new List<ShiftPolygon>(); + + var runData = new VectoRunData() { + GearshiftParameters = new ShiftStrategyParameters() + }; + if (factorDownshiftSpeed.HasValue) { + runData.GearshiftParameters.PEV_DownshiftSpeedFactor = factorDownshiftSpeed.Value; + } + var shiftStrategy = new PEVAMTShiftStrategy(new VehicleContainer(ExecutionMode.Engineering) { RunData = runData }); + for (var i = 0; i < gearboxData.Gears.Count; i++) { - shiftPolygons.Add(DeclarationData.Gearbox.ComputeElectricMotorShiftPolygon(i, emData.EfficiencyData.VoltageLevels.First().FullLoadCurve, 1.0, gearboxData.Gears, - axlegearRatio, r_dyn)); - fullLoadCurves[(uint)(i + 1)] = new EngineFullLoadCurve(fullLoadCurve, null) { EngineData = engineData}; + shiftPolygons.Add(shiftStrategy.ComputeDeclarationShiftPolygon(GearboxType.AMT, i, null, gearboxData.Gears, + null, axlegearRatio, r_dyn, emData)); + //shiftPolygons.Add(deRatedShiftLines[(uint)(i + 1)]); + fullLoadCurves[(uint)(i + 1)] = new EngineFullLoadCurve(fullLoadCurve, null) { EngineData = engineData }; } - var imageFile = Path.Combine(Path.GetDirectoryName(pevE2Job), Path.GetFileNameWithoutExtension(pevE2Job) + "_shiftlines.png"); + + var suffix = factorDownshiftSpeed.HasValue ? $"_{factorDownshiftSpeed.Value}" : ""; + var imageFile = Path.Combine(Path.GetDirectoryName(pevE2Job), Path.GetFileNameWithoutExtension(pevE2Job) + $"_shiftlines{suffix}.png"); ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(pevE2Job), fullLoadCurves, shiftPolygons, imageFile, DeclarationData.Gearbox.TruckMaxAllowedSpeed / r_dyn * axlegearRatio * gearboxData.Gears.Last().Ratio); } - [TestCase()] - public void ComputePEVShiftLinesDeRated() + [TestCase(null), + TestCase(0.9)] + public void ComputePEVShiftLinesDeRated(double? factorDownshiftSpeed) { var pevE2Job = @"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_cont30kW.vecto"; @@ -1004,20 +1020,20 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration }; fullLoadCurves[(uint)(0)] = new EngineFullLoadCurve(fullLoadCurve, null) { EngineData = engineData }; - var shiftPolygons = new List<ShiftPolygon>(); - - var shiftStrategy = new PEVAMTShiftStrategy(new VehicleContainer(ExecutionMode.Engineering) { RunData = new VectoRunData() { GearshiftParameters = new ShiftStrategyParameters()}}); + var runData = new VectoRunData() { GearshiftParameters = new ShiftStrategyParameters() }; + if (factorDownshiftSpeed.HasValue) { + runData.GearshiftParameters.PEV_DeRatedDownshiftSpeedFactor = factorDownshiftSpeed.Value; + } + var shiftStrategy = new PEVAMTShiftStrategy(new VehicleContainer(ExecutionMode.Engineering) { RunData = runData}); var deRatedShiftLines = shiftStrategy.CalculateDeratedShiftLines(emData, gearboxData.Gears, r_dyn, axlegearRatio, gearboxData.Type); for (var i = 0; i < gearboxData.Gears.Count; i++) { - shiftPolygons.Add(deRatedShiftLines[(uint)(i + 1)]); - - fullLoadCurves[(uint)(i + 1)] = new EngineFullLoadCurve(fullLoadCurve, null) { EngineData = engineData }; } - var imageFile = Path.Combine(Path.GetDirectoryName(pevE2Job), Path.GetFileNameWithoutExtension(pevE2Job) + "_shiftlines_DeRated.png"); + var suffix = factorDownshiftSpeed.HasValue ? $"_{factorDownshiftSpeed.Value}" : ""; + var imageFile = Path.Combine(Path.GetDirectoryName(pevE2Job), Path.GetFileNameWithoutExtension(pevE2Job) + $"_shiftlines_DeRated{suffix}.png"); ShiftPolygonDrawer.DrawShiftPolygons(Path.GetDirectoryName(pevE2Job), fullLoadCurves, shiftPolygons, imageFile, -- GitLab