diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/DrivingCycleDataReader.cs index de2dac89edd6cd204fe845d7416f8fd07f5e631c..21ce0a7a1ae929c632337a3485492d7e061c22fe 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 9b9594f7d98c1e50d8f3acef7a418d96de7c4c5c..3ed33b03590e3d71723b86705f8f53ebc58d7df1 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 0d5136000643130ae1ceb0bb528377a00dfe03c4..08c27a6ae857fa11fcca686c409ae7844acf7c12 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 0759c26194aa8518977d7eb31aaad65dbd63104f..32826432c562f5055a4ac4e10714bc4abdf5db73 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 25857d4d88c3e97aba3144b48dcf1fffd6768a6e..f651db58dd2945d508fc85d96027f9280a9f09f7 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 7e5b08fe390bf4166f13fdb5fac38c48c70a1be5..917ff48f9540c7dd5d792439cc0076715acf9608 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 868a7393ac2b07761816c51b78df9b984b8b8554..6a2d303a6cfc07ceaed048ab5d56a599a5979ad9 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 b22dd00af7eb217053bae110c874fa710e3f4eb4..fc7771f7f6ed579fbb166ba8a7d72c5caa51994b 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); }