From 1eeca8f94deb1001f112ca06eff687f37c472dbc Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Fri, 30 Sep 2022 11:36:13 +0200 Subject: [PATCH] ignore engineering auxiliaries in Electric auxiliaries simulation component --- .../ComponentData/DrivingCycleDataReader.cs | 2 +- .../DeclarationDataAdapterHeavyLorry.cs | 10 +++++++++ .../IDeclarationDataAdapter.cs | 5 +++-- ...DeclarationModeHeavyLorryRunDataFactory.cs | 6 +++--- ...DeclarationModePrimaryBusRunDataFactory.cs | 2 +- ...PModeVectoRunDataFactoryHeavyBusPrimary.cs | 4 ++-- .../Simulation/Impl/PowertrainBuilder.cs | 5 ++++- .../Impl/Auxiliaries/ElectricAuxiliaries.cs | 21 ++++++++++++++++++- 8 files changed, 44 insertions(+), 11 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs index de2dac89ed..21ce0a7a1a 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs @@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData /// <param name="cycleData">The cycle data.</param> /// <returns></returns> /// <exception cref="VectoException">CycleFile Format is unknown.</exception> - private static CycleType DetectCycleType(DataTable cycleData) + public static CycleType DetectCycleType(DataTable cycleData) { var cols = cycleData.Columns; diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs index 9b9594f7d9..3ed33b0359 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/HeavyLorry/DeclarationDataAdapterHeavyLorry.cs @@ -472,6 +472,16 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.HeavyLorry return _vehicleDataAdapter.CreateExemptedVehicleData(vehicle); } + public override PTOData CreatePTOCycleData() + { + throw new NotImplementedException(); + } + + public override PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData) + { + throw new NotImplementedException(); + } + public override ShiftStrategyParameters CreateGearshiftData(double axleRatio, PerSecond engineIdlingSpeed, GearboxType gearboxType, int gearsCount) { throw new NotImplementedException(); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs index 0d51360006..08c27a6ae8 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/IDeclarationDataAdapter.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter //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); - PTOData CreatePTOCycleData(); + } public interface ILorryDeclarationDataAdapter : IDeclarationDataAdapter @@ -48,6 +48,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter IShiftPolygonCalculator shiftPolygonCalc); PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData); + PTOData CreatePTOCycleData(); @@ -89,7 +90,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter IShiftPolygonCalculator shiftPolygonCalc); //RetarderData CreateRetarderData(IRetarderInputData retarderData); - PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData); + //PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData); ShiftStrategyParameters CreateGearshiftData(GearboxData gbx, double axleRatio, PerSecond engineIdlingSpeed); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs index 0759c26194..32826432c5 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/HeavyLorryRunDataFactory/DeclarationModeHeavyLorryRunDataFactory.cs @@ -125,8 +125,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa _ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); - _municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData(); - + _municipalPtoTransmissionData = DataAdapter.CreatePTOCycleData(); + } @@ -381,7 +381,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDa var ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); - var municipalPtoTransmissionData = PTODataAdapterLorry.DefaultPTOData(); + var municipalPtoTransmissionData = DataAdapter.CreatePTOCycleData(); result.PTO = mission.MissionType == MissionType.MunicipalUtility ? municipalPtoTransmissionData diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs index 25857d4d88..f651db58dd 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationMode/PrimaryBusRunDataFactory/DeclarationModePrimaryBusRunDataFactory.cs @@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.PrimaryBusRunDa _retarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData); - _ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); + //_ptoTransmissionData = DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs index 7e5b08fe39..917ff48f95 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactoryHeavyBusPrimary.cs @@ -73,8 +73,8 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl null); RetarderData = DataAdapter.CreateRetarderData(vehicle.Components.RetarderInputData); - PTOTransmissionData = - DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); + //PTOTransmissionData = + // DataAdapter.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); GearshiftData = DataAdapter.CreateGearshiftData( GearboxData, AxlegearData.AxleGear.Ratio * (AngledriveData?.Angledrive.Ratio ?? 1.0), EngineData.IdleSpeed); diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs index 868a7393ac..6a2d303a6c 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs @@ -772,7 +772,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var elAux = new ElectricAuxiliaries(container); elAux.AddAuxiliaries(data.Aux.Where(x => x.ConnectToREESS && x.ID != Constants.Auxiliaries.IDs.Cond)); - elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond))); + if (data.Aux.Any(aux => aux.ID == Constants.Auxiliaries.IDs.Cond)) { + elAux.AddAuxiliary(new Conditioning(data.Aux.FirstOrDefault(aux => aux.ID == Constants.Auxiliaries.IDs.Cond))); + } + dcdc.Connect(elAux); dcdc.Initialize(); } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs index b22dd00af7..fc7771f7f6 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/Auxiliaries/ElectricAuxiliaries.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using System.Linq; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; @@ -13,6 +14,7 @@ using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.SimulationComponent.Impl.Auxiliaries; using TUGraz.VectoCore.OutputData; +// ReSharper disable UseStringInterpolation namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { @@ -26,6 +28,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl private IDictionary<string, string> _auxColumnName = new Dictionary<string, string>(); private IDictionary<string, Watt> _powerDemands = new Dictionary<string, Watt>(); + + private HashSet<string> _ignoredIds = new HashSet<string>() { + Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_FAN, + Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_STP, + Constants.Auxiliaries.IDs.ENGMode_AUX_MECH_BASE, + }; #region Implementation of IElectricAuxPort @@ -49,13 +57,19 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl _auxColumnName.Add(auxId, name); //use column name as ID VehicleContainer.AddAuxiliary(name, name); } - + return 0.SI<Watt>(); } public void AddAuxiliary(VectoRunData.AuxData aux) { + if (_ignoredIds.Contains(aux.ID)) { + Log.Debug(string.Format("{0} ignored in {1}", aux.ID, nameof(ElectricAuxiliaries))); + return; + } + + if (aux.DemandType == AuxiliaryDemandType.Constant) { _auxData.Add(aux.ID, (dataBus) => aux.PowerDemandElectric); }else if (aux.DemandType == AuxiliaryDemandType.Dynamic) { @@ -65,6 +79,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public void AddAuxiliary(IAuxDemand aux) { + if (_ignoredIds.Contains(aux.AuxID)) + { + Log.Debug(string.Format("{0} ignored in {1}", aux.AuxID, nameof(ElectricAuxiliaries))); + return; + } _auxData.Add(aux.AuxID, aux.PowerDemand); } -- GitLab