From 11470742c57b6d8b9fd47546d0f538388dd0a086 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 22 Mar 2017 15:49:04 +0100 Subject: [PATCH] simulate ems cycles only if sufficient engine power is available --- .../Reader/Impl/DeclarationModeVectoRunDataFactory.cs | 6 +++++- VectoCore/VectoCore/Models/Declaration/DeclarationData.cs | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs index c02751a487..5a97451882 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs @@ -34,6 +34,7 @@ using System.Linq; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.Declaration; @@ -91,8 +92,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl }; Report.InitializeReport(powertrainConfig, segment); } - + var maxEnginePower = engineData.FullLoadCurve.FullLoadStationaryPower(engineData.FullLoadCurve.PreferredSpeed); foreach (var mission in segment.Missions) { + if (mission.MissionType.IsEMS() && maxEnginePower.IsSmaller(DeclarationData.MinEnginePowerForEMS)) { + continue; + } DrivingCycleData cycle; lock (CyclesCacheLock) { if (CyclesCache.ContainsKey(mission.MissionType)) { diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index f3ecfc262a..c695c436c3 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -48,6 +48,8 @@ namespace TUGraz.VectoCore.Models.Declaration { public const string DeclarationDataResourcePrefix = "TUGraz.VectoCore.Resources.Declaration"; + public static readonly Watt MinEnginePowerForEMS = 300e3.SI<Watt>(); + private static DeclarationData _instance; private Segments _segments; private Wheels _wheels; @@ -63,6 +65,7 @@ namespace TUGraz.VectoCore.Models.Declaration private Payloads _payloads; private PTOTransmission _pto; + public static PTOTransmission PTOTransmission { get { return Instance()._pto ?? (Instance()._pto = new PTOTransmission()); } -- GitLab