From bfcceb3eaf7ef251f3519408c39f671c8eb657b9 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Mon, 19 Sep 2022 15:20:28 +0200 Subject: [PATCH] updated declaration data adapter interfaces --- ...clarationDataAdapterGenericCompletedBus.cs | 4 +-- .../IDeclarationDataAdapter.cs | 9 +++-- .../DeclarationDataAdapterPrimaryBus.cs | 8 ++--- ...DeclarationModeHeavyLorryRunDataFactory.cs | 36 ++++++++++++------- ...DeclarationModePrimaryBusRunDataFactory.cs | 1 - .../Models/Declaration/DeclarationData.cs | 1 + .../AMTShiftStrategyOptimized.cs | 6 ++-- 7 files changed, 38 insertions(+), 27 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs index 54a077b8f9..f5d5fe7eae 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/CompletedBus/Generic/DeclarationDataAdapterGenericCompletedBus.cs @@ -78,9 +78,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Gener //return _gearboxDataAdapter.CreateGearshiftData(gbx, axleRatio, engineIdlingSpeed, gbx.Type, gbx.Gears.Count); } - public RetarderData CreateRetarderData(IRetarderInputData retarderData) + public RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet) { - return _retarderDataAdapter.CreateRetarderData(retarderData); + return _retarderDataAdapter.CreateRetarderData(retarderData, position); } public DriverData CreateDriverData(Segment segment) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs index 32466be8f2..ce7438b9d4 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs @@ -29,6 +29,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter //IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesDeclarationInputData auxData, IBusAuxiliariesDeclarationData busAuxData, MissionType missionType, VehicleClass vehicleClass, Meter vehicleLength, int? numSteeredAxles); //AxleGearData CreateDummyAxleGearData(IGearboxDeclarationInputData gbxData); VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission first, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> keyValuePair, bool allowVocational); + RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet); } public interface ILorryDeclarationDataAdapter : IDeclarationDataAdapter @@ -47,7 +48,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData); - RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet); + ShiftStrategyParameters CreateGearshiftData(double axleRatio, PerSecond engineIdlingSpeed, GearboxType gearboxType, int gearsCount); @@ -86,7 +87,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter VectoRunData runData, IShiftPolygonCalculator shiftPolygonCalc); - RetarderData CreateRetarderData(IRetarderInputData retarderData); + //RetarderData CreateRetarderData(IRetarderInputData retarderData); PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData); ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed); @@ -102,7 +103,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Meter vehicleLength, int? numSteeredAxles); AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragData, Mission mission, Segment segment); - VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational); } public interface IGenericCompletedBusDeclarationDataAdapter : IDeclarationDataAdapter @@ -129,14 +129,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed); - RetarderData CreateRetarderData(IRetarderInputData retarderData); + //RetarderData CreateRetarderData(IRetarderInputData retarderData); DriverData CreateDriverData(Segment segment); IAuxiliaryConfig CreateBusAuxiliariesData( Mission mission, IVehicleDeclarationInputData vehicleData, VectoRunData runData); - VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational); } public interface ISpecificCompletedBusDeclarationDataAdapter diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs index 4f53e399f7..1964006aba 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/PrimaryBus/DeclarationDataAdapterPrimaryBus.cs @@ -82,9 +82,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus throw new NotImplementedException(); } - public RetarderData CreateRetarderData(IRetarderInputData retarderData) + + public RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet) { - return _retarderDataAdapter.CreateRetarderData(retarderData); + return _retarderDataAdapter.CreateRetarderData(retarderData, position); } public PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData) @@ -135,8 +136,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.PrimaryBus public override ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed) { - throw new NotImplementedException(); - //return _gearboxDataAdapter.CreateGearshiftData(gbx, axleRatio, engineIdlingSpeed, gbx.Type, gbx.Gears.Count); + return _gearboxDataAdapter.CreateGearshiftData(axleRatio, engineIdlingSpeed, gbx.Type, gbx.Gears.Count); } #endregion diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index 5ff594efda..5a1c49f687 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -106,8 +106,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa _segment = GetSegment(vehicle); _driverdata = DataAdapter.CreateDriverData(_segment); - _driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile); - + _airdragData = DataAdapter.CreateAirdragData(vehicle.Components.AirdragInputData, _segment.Missions.First(), _segment); if (InputDataProvider.JobInputData.Vehicle.AxleConfiguration.AxlegearIncludedInGearbox()) @@ -246,6 +245,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa { var engine = InputDataProvider.JobInputData.Vehicle.Components.EngineInputData; var engineModes = engine.EngineModes; + if (!modeIdx.HasValue) { + throw new VectoException("Engine mode has to be specified for conventional vehicle"); + } var engineMode = engineModes[modeIdx.Value]; var simulationRunData = CreateCommonRunData(vehicle, mission, loading, _segment, engineModes, modeIdx.Value); @@ -266,7 +268,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa simulationRunData.GearshiftParameters = DataAdapter.CreateGearshiftData( simulationRunData.AxleGearData?.AxleGear.Ratio ?? 1.0, - null, + vehicle.EngineIdleSpeed, vehicle.Components.GearboxInputData.Type, vehicle.Components.GearboxInputData.Gears.Count ); @@ -276,9 +278,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa 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, @@ -319,15 +321,17 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa protected override IEnumerable<VectoRunData> GetNextRun() { var vehicle = InputDataProvider.JobInputData.Vehicle; - foreach (var mission in _segment.Missions) - { - //if (mission.MissionType.IsEMS() && - // engine.RatedPowerDeclared.IsSmaller(DeclarationData.MinEnginePowerForEMS)) - //{ - // continue; - //} - - foreach (var loading in mission.Loadings) + foreach (var mission in _segment.Missions) { + if (mission.MissionType.IsEMS() && + vehicle.Components.ElectricMachines.Entries + .Where(e => e.Position != PowertrainPosition.GEN) + .Sum(e => e.ElectricMachine.R85RatedPower) + .IsSmaller(DeclarationData.MinEnginePowerForEMS_PEV)) + { + continue; + } + + foreach (var loading in mission.Loadings) { var simulationRunData = CreateVectoRunData(vehicle, mission, loading); simulationRunData.BatteryData.Batteries.ForEach(t => t.Item2.ChargeSustainingBattery = true); @@ -384,6 +388,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa } + if (mission.MissionType == MissionType.MunicipalUtility) { + + } + + + result.Aux = new List<VectoRunData.AuxData>(); //TODO: Remove diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index 9cfcf3e8ec..bf2a2cddd6 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -93,7 +93,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa _segment = GetSegment(vehicle); _driverdata = DataAdapter.CreateDriverData(_segment); - _driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile); var tempVehicle = DataAdapter.CreateVehicleData(vehicle, _segment, _segment.Missions.First(), _segment.Missions.First().Loadings.First(), _allowVocational); _airdragData = DataAdapter.CreateAirdragData(vehicle.Components.AirdragInputData, diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index b908450f98..882807f008 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -67,6 +67,7 @@ namespace TUGraz.VectoCore.Models.Declaration public const string DeclarationDataResourcePrefix = "TUGraz.VectoCore.Resources.Declaration"; public static readonly Watt MinEnginePowerForEMS = 300e3.SI<Watt>(); + public static readonly Watt MinEnginePowerForEMS_PEV = 300e3.SI<Watt>(); public static readonly TruckSegments TruckSegments = new TruckSegments(); public static readonly PrimaryBusSegments PrimaryBusSegments = new PrimaryBusSegments(); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategyOptimized.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategyOptimized.cs index dc0ccc2119..363f901f80 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategyOptimized.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Shiftstrategies/AMTShiftStrategyOptimized.cs @@ -48,14 +48,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public AMTShiftStrategyOptimized(IVehicleContainer dataBus) : base(dataBus) { var runData = dataBus.RunData; + _shiftStrategyParameters = runData.GearshiftParameters; + _shiftPolygonCalculator = ShiftPolygonCalculator.Create(Name, _shiftStrategyParameters); if (runData.EngineData == null) { return; } fcMap = runData.EngineData.Fuels; fld = runData.EngineData.FullLoadCurves; - _shiftStrategyParameters = runData.GearshiftParameters; - _shiftPolygonCalculator = ShiftPolygonCalculator.Create(Name, _shiftStrategyParameters); + + //accCurve = runData.DriverData.AccelerationCurve; vehicleMass = runData.VehicleData.TotalVehicleMass; if (_shiftStrategyParameters == null) { -- GitLab