From 2704ec112cfe7b0866e0712f57412c201ef33238 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 4 Aug 2017 09:54:27 +0200 Subject: [PATCH] write copy cold-hot balancing factor to engine data instance --- .../Data/CombustionEngineData.cs | 193 +++++++++--------- 1 file changed, 97 insertions(+), 96 deletions(-) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs index d888ef53d3..09427161a5 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs @@ -29,101 +29,102 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using TUGraz.VectoCommon.Models; -using TUGraz.VectoCommon.Utils; -using TUGraz.VectoCore.Configuration; -using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; - -namespace TUGraz.VectoCore.Models.SimulationComponent.Data -{ - [CustomValidation(typeof(CombustionEngineData), "ValidateData")] - public class CombustionEngineData : SimulationComponentData - { - [Required, SIRange(1000 * 1E-6, 20000 * 1E-6)] - public CubicMeter Displacement { get; internal set; } - - [Required, SIRange(400 * Constants.RPMToRad, 1000 * Constants.RPMToRad)] - public PerSecond IdleSpeed { get; internal set; } - - [Required, SIRange(0, 10)] - public KilogramSquareMeter Inertia { get; internal set; } - - [Required, Range(0.9, 2)] - public double WHTCUrban { get; internal set; } - - [Required, Range(0.9, 2)] - public double WHTCRural { get; internal set; } - - [Required, Range(0.9, 2)] - public double WHTCMotorway { get; internal set; } - - [Required, ValidateObject] - public FuelConsumptionMap ConsumptionMap { get; internal set; } - - [Required, ValidateObject] - public Dictionary<uint, EngineFullLoadCurve> FullLoadCurves { get; internal set; } - - [Required, Range(double.MinValue, double.MaxValue)] - public double ColdHotCorrectionFactor { get; internal set; } - - [Required, Range(double.MinValue, double.MaxValue)] - public double CorrectionFactorRegPer { get; internal set; } - - [Required, Range(double.MinValue, double.MaxValue)] - public double CorrectionFactorNCV { get; internal set; } - - public double FuelConsumptionCorrectionFactor { get; internal set; } - - public PerSecond RatedSpeedDeclared { get; internal set; } - - public Watt RatedPowerDeclared { get; internal set; } - - public NewtonMeter MaxTorqueDeclared { get; internal set; } - - public FuelType FuelType { get; internal set; } - - public CombustionEngineData() - { - WHTCUrban = 1; - WHTCMotorway = 1; - WHTCRural = 1; - CorrectionFactorNCV = 1; - CorrectionFactorRegPer = 1; - FuelConsumptionCorrectionFactor = 1; - } - - public CombustionEngineData Copy() - { +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; + +namespace TUGraz.VectoCore.Models.SimulationComponent.Data +{ + [CustomValidation(typeof(CombustionEngineData), "ValidateData")] + public class CombustionEngineData : SimulationComponentData + { + [Required, SIRange(1000 * 1E-6, 20000 * 1E-6)] + public CubicMeter Displacement { get; internal set; } + + [Required, SIRange(400 * Constants.RPMToRad, 1000 * Constants.RPMToRad)] + public PerSecond IdleSpeed { get; internal set; } + + [Required, SIRange(0, 10)] + public KilogramSquareMeter Inertia { get; internal set; } + + [Required, Range(0.9, 2)] + public double WHTCUrban { get; internal set; } + + [Required, Range(0.9, 2)] + public double WHTCRural { get; internal set; } + + [Required, Range(0.9, 2)] + public double WHTCMotorway { get; internal set; } + + [Required, ValidateObject] + public FuelConsumptionMap ConsumptionMap { get; internal set; } + + [Required, ValidateObject] + public Dictionary<uint, EngineFullLoadCurve> FullLoadCurves { get; internal set; } + + [Required, Range(double.MinValue, double.MaxValue)] + public double ColdHotCorrectionFactor { get; internal set; } + + [Required, Range(double.MinValue, double.MaxValue)] + public double CorrectionFactorRegPer { get; internal set; } + + [Required, Range(double.MinValue, double.MaxValue)] + public double CorrectionFactorNCV { get; internal set; } + + public double FuelConsumptionCorrectionFactor { get; internal set; } + + public PerSecond RatedSpeedDeclared { get; internal set; } + + public Watt RatedPowerDeclared { get; internal set; } + + public NewtonMeter MaxTorqueDeclared { get; internal set; } + + public FuelType FuelType { get; internal set; } + + public CombustionEngineData() + { + WHTCUrban = 1; + WHTCMotorway = 1; + WHTCRural = 1; + CorrectionFactorNCV = 1; + CorrectionFactorRegPer = 1; + FuelConsumptionCorrectionFactor = 1; + } + + public CombustionEngineData Copy() + { return new CombustionEngineData { Manufacturer = Manufacturer, - ModelName = ModelName, - Displacement = Displacement, - IdleSpeed = IdleSpeed, - Inertia = Inertia, - WHTCUrban = WHTCUrban, - WHTCRural = WHTCRural, - WHTCMotorway = WHTCMotorway, - ConsumptionMap = ConsumptionMap, - FullLoadCurves = FullLoadCurves, - CorrectionFactorRegPer = CorrectionFactorRegPer, - CorrectionFactorNCV = CorrectionFactorNCV, - FuelConsumptionCorrectionFactor = FuelConsumptionCorrectionFactor, - RatedPowerDeclared = RatedPowerDeclared, - RatedSpeedDeclared = RatedSpeedDeclared, - MaxTorqueDeclared = MaxTorqueDeclared, - FuelType = FuelType - }; - } - - // ReSharper disable once UnusedMember.Global -- used in CustomValidation - public static ValidationResult ValidateData(CombustionEngineData data, ValidationContext context) - { - if (data.Inertia.IsEqual(0)) { - LogManager.GetLogger(typeof(CombustionEngineData).FullName).Error("Warning: Engine Inertia is 0!"); - } - return ValidationResult.Success; - } - } -} \ No newline at end of file + ModelName = ModelName, + Displacement = Displacement, + IdleSpeed = IdleSpeed, + Inertia = Inertia, + WHTCUrban = WHTCUrban, + WHTCRural = WHTCRural, + WHTCMotorway = WHTCMotorway, + ConsumptionMap = ConsumptionMap, + FullLoadCurves = FullLoadCurves, + CorrectionFactorRegPer = CorrectionFactorRegPer, + CorrectionFactorNCV = CorrectionFactorNCV, + ColdHotCorrectionFactor = ColdHotCorrectionFactor, + FuelConsumptionCorrectionFactor = FuelConsumptionCorrectionFactor, + RatedPowerDeclared = RatedPowerDeclared, + RatedSpeedDeclared = RatedSpeedDeclared, + MaxTorqueDeclared = MaxTorqueDeclared, + FuelType = FuelType + }; + } + + // ReSharper disable once UnusedMember.Global -- used in CustomValidation + public static ValidationResult ValidateData(CombustionEngineData data, ValidationContext context) + { + if (data.Inertia.IsEqual(0)) { + LogManager.GetLogger(typeof(CombustionEngineData).FullName).Error("Warning: Engine Inertia is 0!"); + } + return ValidationResult.Success; + } + } +} -- GitLab