From d359360ac2a47479d039b13e4c8ac24da705ed96 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Thu, 15 Sep 2022 14:33:28 +0200 Subject: [PATCH] added missing case in shiftpolygon creator, use new method of creating gearboxdata in conventional heavy lorry, use 1.0 for axleratio in gearbox data adapter in no axlegear is present --- .../GearBoxDataAdapter.cs | 4 ++-- ...DeclarationModeHeavyLorryRunDataFactory.cs | 24 +++++++++++++++---- .../Shiftstrategies/ShiftPolygonCreator.cs | 4 ++++ 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/GearBoxDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/GearBoxDataAdapter.cs index 522609f38f..ef0856a46f 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/GearBoxDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/GearBoxDataAdapter.cs @@ -300,11 +300,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen var shiftPolygon = shiftPolygonCalculator != null ? shiftPolygonCalculator.ComputeDeclarationShiftPolygon( gearbox.Type, (int)i, engine?.FullLoadCurves[i + 1], gearbox.Gears, engine, axlegearRatio, - dynamicTyreRadius, runData.ElectricMachinesData?.FirstOrDefault().Item2) + dynamicTyreRadius, runData.ElectricMachinesData?.FirstOrDefault()?.Item2) : DeclarationData.Gearbox.ComputeShiftPolygon( gearbox.Type, (int)i, engine?.FullLoadCurves[i + 1], gearsInput, engine, - axlegearRatio, dynamicTyreRadius, runData.ElectricMachinesData?.FirstOrDefault().Item2); + axlegearRatio, dynamicTyreRadius, runData.ElectricMachinesData?.FirstOrDefault()?.Item2); var gearData = new GearData { diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index c59bad0a7a..288e888d4c 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -119,7 +119,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa _axlegearData = DataAdapter.CreateAxleGearData(InputDataProvider.JobInputData.Vehicle.Components.AxleGearInputData); } _angledriveData = DataAdapter.CreateAngledriveData(InputDataProvider.JobInputData.Vehicle.Components.AngledriveInputData); - SetGearboxAndGearshiftData(vehicle, _axlegearData, _angledriveData); + + _retarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData); @@ -206,6 +207,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa foreach (var loading in mission.Loadings) { var simulationRunData = CreateVectoRunData(vehicle, mission, loading, modeIdx); + yield return simulationRunData; } } @@ -261,8 +263,22 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa mission); // _engineData.Copy(), // a copy is necessary because every run has a different correction factor! simulationRunData.ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(); - simulationRunData.GearboxData = _gearboxData; + simulationRunData.GearshiftParameters = + DataAdapter.CreateGearshiftData( + simulationRunData.AxleGearData?.AxleGear.Ratio ?? 1.0, + null, + vehicle.Components.GearboxInputData.Type, + vehicle.Components.GearboxInputData.Gears.Count + ); + + + var shiftStrategyName = + PowertrainBuilder.GetShiftStrategyName(vehicle.Components.GearboxInputData.Type, + vehicle.VehicleType); simulationRunData.AxleGearData = _axlegearData; + + simulationRunData.GearboxData = DataAdapter.CreateGearboxData(vehicle, simulationRunData, + ShiftPolygonCalculator.Create(shiftStrategyName, simulationRunData.GearshiftParameters)); simulationRunData.AngledriveData = _angledriveData; simulationRunData.Aux = DataAdapter.CreateAuxiliaryData( vehicle.Components.AuxiliaryInputData, @@ -276,9 +292,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa ? _municipalPtoTransmissionData : _ptoTransmissionData; - - - simulationRunData.GearshiftParameters = _gearshiftData; simulationRunData.EngineData.FuelMode = modeIdx.Value; @@ -317,6 +330,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa foreach (var loading in mission.Loadings) { var simulationRunData = CreateVectoRunData(vehicle, mission, loading); + simulationRunData.BatteryData.Batteries.ForEach(t => t.Item2.ChargeSustainingBattery = true); yield return simulationRunData; } } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/ShiftPolygonCreator.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/ShiftPolygonCreator.cs index 5aa59950a5..e5be5101bd 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/ShiftPolygonCreator.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/ShiftPolygonCreator.cs @@ -14,6 +14,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl.Shiftstrategies return new AMTShiftStrategyOptimizedPolygonCalculator(); } + if (name == AMTShiftStrategy.Name) { + return new AMTShiftStrategyPolygonCalculator(); + } + if (name == PEVAMTShiftStrategy.Name) { if (shiftStrategyParameters == null) { throw new ArgumentException($"{nameof(shiftStrategyParameters)} required for {name}"); -- GitLab