Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 2704ec11 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

write copy cold-hot balancing factor to engine data instance

parent e32165ad
No related branches found
No related tags found
No related merge requests found
...@@ -29,101 +29,102 @@ ...@@ -29,101 +29,102 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/ */
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils; using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Configuration;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
namespace TUGraz.VectoCore.Models.SimulationComponent.Data namespace TUGraz.VectoCore.Models.SimulationComponent.Data
{ {
[CustomValidation(typeof(CombustionEngineData), "ValidateData")] [CustomValidation(typeof(CombustionEngineData), "ValidateData")]
public class CombustionEngineData : SimulationComponentData public class CombustionEngineData : SimulationComponentData
{ {
[Required, SIRange(1000 * 1E-6, 20000 * 1E-6)] [Required, SIRange(1000 * 1E-6, 20000 * 1E-6)]
public CubicMeter Displacement { get; internal set; } public CubicMeter Displacement { get; internal set; }
[Required, SIRange(400 * Constants.RPMToRad, 1000 * Constants.RPMToRad)] [Required, SIRange(400 * Constants.RPMToRad, 1000 * Constants.RPMToRad)]
public PerSecond IdleSpeed { get; internal set; } public PerSecond IdleSpeed { get; internal set; }
[Required, SIRange(0, 10)] [Required, SIRange(0, 10)]
public KilogramSquareMeter Inertia { get; internal set; } public KilogramSquareMeter Inertia { get; internal set; }
[Required, Range(0.9, 2)] [Required, Range(0.9, 2)]
public double WHTCUrban { get; internal set; } public double WHTCUrban { get; internal set; }
[Required, Range(0.9, 2)] [Required, Range(0.9, 2)]
public double WHTCRural { get; internal set; } public double WHTCRural { get; internal set; }
[Required, Range(0.9, 2)] [Required, Range(0.9, 2)]
public double WHTCMotorway { get; internal set; } public double WHTCMotorway { get; internal set; }
[Required, ValidateObject] [Required, ValidateObject]
public FuelConsumptionMap ConsumptionMap { get; internal set; } public FuelConsumptionMap ConsumptionMap { get; internal set; }
[Required, ValidateObject] [Required, ValidateObject]
public Dictionary<uint, EngineFullLoadCurve> FullLoadCurves { get; internal set; } public Dictionary<uint, EngineFullLoadCurve> FullLoadCurves { get; internal set; }
[Required, Range(double.MinValue, double.MaxValue)] [Required, Range(double.MinValue, double.MaxValue)]
public double ColdHotCorrectionFactor { get; internal set; } public double ColdHotCorrectionFactor { get; internal set; }
[Required, Range(double.MinValue, double.MaxValue)] [Required, Range(double.MinValue, double.MaxValue)]
public double CorrectionFactorRegPer { get; internal set; } public double CorrectionFactorRegPer { get; internal set; }
[Required, Range(double.MinValue, double.MaxValue)] [Required, Range(double.MinValue, double.MaxValue)]
public double CorrectionFactorNCV { get; internal set; } public double CorrectionFactorNCV { get; internal set; }
public double FuelConsumptionCorrectionFactor { get; internal set; } public double FuelConsumptionCorrectionFactor { get; internal set; }
public PerSecond RatedSpeedDeclared { get; internal set; } public PerSecond RatedSpeedDeclared { get; internal set; }
public Watt RatedPowerDeclared { get; internal set; } public Watt RatedPowerDeclared { get; internal set; }
public NewtonMeter MaxTorqueDeclared { get; internal set; } public NewtonMeter MaxTorqueDeclared { get; internal set; }
public FuelType FuelType { get; internal set; } public FuelType FuelType { get; internal set; }
public CombustionEngineData() public CombustionEngineData()
{ {
WHTCUrban = 1; WHTCUrban = 1;
WHTCMotorway = 1; WHTCMotorway = 1;
WHTCRural = 1; WHTCRural = 1;
CorrectionFactorNCV = 1; CorrectionFactorNCV = 1;
CorrectionFactorRegPer = 1; CorrectionFactorRegPer = 1;
FuelConsumptionCorrectionFactor = 1; FuelConsumptionCorrectionFactor = 1;
} }
public CombustionEngineData Copy() public CombustionEngineData Copy()
{ {
return new CombustionEngineData { return new CombustionEngineData {
Manufacturer = Manufacturer, Manufacturer = Manufacturer,
ModelName = ModelName, ModelName = ModelName,
Displacement = Displacement, Displacement = Displacement,
IdleSpeed = IdleSpeed, IdleSpeed = IdleSpeed,
Inertia = Inertia, Inertia = Inertia,
WHTCUrban = WHTCUrban, WHTCUrban = WHTCUrban,
WHTCRural = WHTCRural, WHTCRural = WHTCRural,
WHTCMotorway = WHTCMotorway, WHTCMotorway = WHTCMotorway,
ConsumptionMap = ConsumptionMap, ConsumptionMap = ConsumptionMap,
FullLoadCurves = FullLoadCurves, FullLoadCurves = FullLoadCurves,
CorrectionFactorRegPer = CorrectionFactorRegPer, CorrectionFactorRegPer = CorrectionFactorRegPer,
CorrectionFactorNCV = CorrectionFactorNCV, CorrectionFactorNCV = CorrectionFactorNCV,
FuelConsumptionCorrectionFactor = FuelConsumptionCorrectionFactor, ColdHotCorrectionFactor = ColdHotCorrectionFactor,
RatedPowerDeclared = RatedPowerDeclared, FuelConsumptionCorrectionFactor = FuelConsumptionCorrectionFactor,
RatedSpeedDeclared = RatedSpeedDeclared, RatedPowerDeclared = RatedPowerDeclared,
MaxTorqueDeclared = MaxTorqueDeclared, RatedSpeedDeclared = RatedSpeedDeclared,
FuelType = FuelType MaxTorqueDeclared = MaxTorqueDeclared,
}; FuelType = FuelType
} };
}
// ReSharper disable once UnusedMember.Global -- used in CustomValidation
public static ValidationResult ValidateData(CombustionEngineData data, ValidationContext context) // 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!"); if (data.Inertia.IsEqual(0)) {
} LogManager.GetLogger(typeof(CombustionEngineData).FullName).Error("Warning: Engine Inertia is 0!");
return ValidationResult.Success; }
} return ValidationResult.Success;
} }
} }
\ No newline at end of file }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment