From 6b5b435ec965e821bac16c24ff95e981bba4cbad Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 29 May 2017 16:04:48 +0200 Subject: [PATCH] implement CO2 values per fuel type --- VECTO/Configuration.vb | 14 +++++++---- VECTO/GUI/EngineForm.vb | 4 +-- VECTO/GUI/MainForm.vb | 5 ---- VECTO/GUI/Settings.Designer.vb | 1 + VectoCommon/VectoCommon/Models/FuelType.cs | 3 +-- .../AbstractSimulationDataAdapter.cs | 2 ++ .../Models/Declaration/DeclarationData.cs | 25 +------------------ .../Models/Simulation/DataBus/IDataBus.cs | 3 +++ .../Simulation/Impl/SimulatorFactory.cs | 3 ++- .../Simulation/Impl/VehicleContainer.cs | 3 +++ .../Data/CombustionEngineData.cs | 4 ++- .../Impl/BusAuxiliariesAdapter.cs | 3 ++- .../VectoCore/OutputData/DeclarationReport.cs | 2 +- .../OutputData/IModalDataContainer.cs | 7 ++++-- .../OutputData/ModalDataContainer.cs | 14 ++++++++--- VectoCore/VectoCore/Utils/Physics.cs | 9 ------- VectoCore/VectoCore/VectoCore.csproj | 2 ++ .../VectoCoreTest/Integration/ATPowerTrain.cs | 2 +- .../BusAuxiliaries/AuxDemandTest.cs | 2 +- .../Integration/CoachAdvancedAuxPowertrain.cs | 2 +- .../Integration/CoachPowerTrain.cs | 2 +- .../EngineOnlyCycle/EngineOnlyCycleTest.cs | 3 ++- .../SimulationRuns/FullPowertrain.cs | 6 ++--- .../SimulationRuns/MinimalPowertrain.cs | 6 ++--- .../Integration/Truck40tPowerTrain.cs | 2 +- .../Models/Simulation/AuxTests.cs | 4 ++- .../Models/SimulationComponent/DriverTest.cs | 6 ++--- .../VectoCoreTest/Reports/SumWriterTest.cs | 5 ++-- .../Utils/MockModalDataContainer.cs | 3 +++ .../Utils/MockVehicleContainer.cs | 6 +++++ 30 files changed, 78 insertions(+), 75 deletions(-) diff --git a/VECTO/Configuration.vb b/VECTO/Configuration.vb index f4a18ed4ef..315694210f 100644 --- a/VECTO/Configuration.vb +++ b/VECTO/Configuration.vb @@ -12,8 +12,10 @@ Imports System.Collections.Generic Imports System.IO Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq +Imports TUGraz.VectoCommon.Models Imports TUGraz.VectoCore.InputData.FileIO.JSON Imports TUGraz.VectoCore.Models.Declaration +Imports TUGraz.VectoCore.Utils Public Class Configuration Public FilePath As String @@ -28,6 +30,8 @@ Public Class Configuration Public FirstRun As Boolean Public DeclMode As Boolean + Public Const DefaultFuelType As FuelType = FuelType.DieselCI + Private Const FormatVersion As Short = 2 Public Sub New() @@ -35,9 +39,9 @@ Public Class Configuration End Sub Public Sub DeclInit() - AirDensity = DeclarationData.Physics.AirDensity.Value() ' cDeclaration.AirDensity - FuelDens = DeclarationData.Physics.FuelDensity.Value() ' cDeclaration.FuelDens - CO2perFC = DeclarationData.Physics.CO2PerFuelWeight ' cDeclaration.CO2perFC + AirDensity = Physics.AirDensity.Value() ' cDeclaration.AirDensity + FuelDens = DeclarationData.FuelData.Lookup(DefaultFuelType).FuelDensity.Value() ' cDeclaration.FuelDens + Co2PerFc = DeclarationData.FuelData.Lookup(DefaultFuelType).CO2PerFuelWeight ' cDeclaration.CO2perFC End Sub Public Sub SetDefault() @@ -47,8 +51,8 @@ Public Class Configuration AirDensity = 1.2 OpenCmd = "notepad" OpenCmdName = "Notepad" - FuelDens = DeclarationData.Physics.FuelDensity.Value() - CO2perFC = DeclarationData.Physics.CO2PerFuelWeight + FuelDens = DeclarationData.FuelData.Lookup(DefaultFuelType).FuelDensity.Value() + Co2PerFc = DeclarationData.FuelData.Lookup(DefaultFuelType).CO2PerFuelWeight FirstRun = True DeclMode = True End Sub diff --git a/VECTO/GUI/EngineForm.vb b/VECTO/GUI/EngineForm.vb index 8d9e87efaa..84c1ff1abc 100644 --- a/VECTO/GUI/EngineForm.vb +++ b/VECTO/GUI/EngineForm.vb @@ -55,7 +55,7 @@ Public Class EngineForm cbFuelType.ValueMember = "Value" cbFuelType.DisplayMember = "Label" cbFuelType.DataSource = - [Enum].GetValues(GetType(FuelType)).Cast(Of FuelType).Select( + [Enum].GetValues(GetType(TUGraz.VectoCommon.Models.FuelType)).Cast(Of TUGraz.VectoCommon.Models.FuelType).Select( Function(type) New With {Key .Value = type, .Label = type.GetLabel()}).ToList() _changed = False @@ -257,7 +257,7 @@ Public Class EngineForm engine.ratedSpeedInput = tbRatedSpeed.Text.ToDouble(0).RPMtoRad() engine.maxTorqueInput = tbMaxTorque.Text.ToDouble(0).SI(Of NewtonMeter)() - engine.FuelTypeInput = CType(cbFuelType.SelectedValue, FuelType) + engine.FuelTypeInput = CType(cbFuelType.SelectedValue, TUGraz.VectoCommon.Models.FuelType) If Not engine.SaveFile Then MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index 962da79881..3a3e4c08a0 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -983,11 +983,6 @@ lbFound: mode = ExecutionMode.Declaration Else mode = ExecutionMode.Engineering - Physics.FuelDensity = Cfg.FuelDens.SI(Of KilogramPerCubicMeter)() _ - 'New SI(Cfg.FuelDens).Kilo.Gramm.Per.Cubic.Dezi.Meter.Cast(Of KilogramPerCubicMeter)() - Physics.AirDensity = Cfg.AirDensity.SI(Of KilogramPerCubicMeter)() _ - 'New SI(Cfg.AirDensity).Kilo.Gramm.Per.Cubic.Meter.Cast(Of KilogramPerCubicMeter)() - Physics.CO2PerFuelWeight = Cfg.Co2PerFc End If 'dictionary of run-identifiers to fileWriters (used for output directory of modfile) diff --git a/VECTO/GUI/Settings.Designer.vb b/VECTO/GUI/Settings.Designer.vb index 685f298f86..4f608afb08 100644 --- a/VECTO/GUI/Settings.Designer.vb +++ b/VECTO/GUI/Settings.Designer.vb @@ -192,6 +192,7 @@ Partial Class Settings Me.GrCalc.TabIndex = 1 Me.GrCalc.TabStop = False Me.GrCalc.Text = "Calculation" + Me.GrCalc.Visible = False ' 'Label11 ' diff --git a/VectoCommon/VectoCommon/Models/FuelType.cs b/VectoCommon/VectoCommon/Models/FuelType.cs index 0c68df4ff6..36cd69a93f 100644 --- a/VectoCommon/VectoCommon/Models/FuelType.cs +++ b/VectoCommon/VectoCommon/Models/FuelType.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics.CodeAnalysis; namespace TUGraz.VectoCommon.Models { @@ -11,7 +10,7 @@ namespace TUGraz.VectoCommon.Models PetrolPI, EthanolPI, LPG, - NG + NG, // ReSharper restore InconsistentNaming } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs index 80e49d0a0a..19e10be48d 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs @@ -37,6 +37,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; @@ -121,6 +122,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter RatedPowerDeclared = data.RatedPowerDeclared, RatedSpeedDeclared = data.RatedSpeedDeclared, MaxTorqueDeclared = data.MaxTorqueDeclared, + FuelType = data.FuelType }; return retVal; } diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 3c1bd0a69e..c9cd23536a 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -29,7 +29,6 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System; using System.Collections.Generic; using System.Data; using System.Linq; @@ -54,6 +53,7 @@ namespace TUGraz.VectoCore.Models.Declaration public static readonly Segments Segments = new Segments(); public static readonly Wheels Wheels = new Wheels(); public static readonly PT1 PT1 = new PT1(); + public static readonly FuelData FuelData = FuelData.Instance(); public static readonly ElectricSystem ElectricSystem = new ElectricSystem(); public static readonly Fan Fan = new Fan(); @@ -96,29 +96,6 @@ namespace TUGraz.VectoCore.Models.Declaration return 1; } - public static class Physics - { - /// <summary> - /// The standard acceleration for gravity on earth. - /// http://physics.nist.gov/Pubs/SP330/sp330.pdf (page 52) - /// </summary> - public static readonly MeterPerSquareSecond GravityAccelleration = 9.80665.SI<MeterPerSquareSecond>(); - - /// <summary> - /// Density of air. - /// </summary> - public static readonly KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>(); - - /// <summary> - /// Density of fuel. - /// </summary> - public static readonly KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>(); - - /// <summary> - /// fuel[kg] => co2[kg]. Factor to convert from fuel weight to co2 weight. - /// </summary> - public static readonly double CO2PerFuelWeight = 3.16; - } public static class Driver { diff --git a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs index 3dab5addb3..6c0870d42d 100644 --- a/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs +++ b/VectoCore/VectoCore/Models/Simulation/DataBus/IDataBus.cs @@ -31,6 +31,7 @@ using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent; namespace TUGraz.VectoCore.Models.Simulation.DataBus @@ -43,6 +44,8 @@ namespace TUGraz.VectoCore.Models.Simulation.DataBus { ExecutionMode ExecutionMode { get; } + FuelType FuelType { get; } + Second AbsTime { get; set; } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index 048c4413ce..593a4fad17 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -181,7 +181,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType); } - var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type, data.Mission != null && data.Mission.MissionType.IsEMS()); + var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type, + data.Mission != null && data.Mission.MissionType.IsEMS()); if (validationErrors.Any()) { throw new VectoException("Validation of Run-Data Failed: " + string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames)))); diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs index 9be939e92d..1d19735199 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs @@ -37,6 +37,7 @@ using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.Connector.Ports; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.SimulationComponent; @@ -263,6 +264,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl return Cycle; } + public FuelType FuelType { get { return ModData.FuelData.FuelType; } } + public Second AbsTime { get; set; } public void AddComponent(VectoSimulationComponent component) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs index e7770538f2..f9a305a769 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs @@ -35,6 +35,7 @@ using System.ComponentModel.DataAnnotations; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; namespace TUGraz.VectoCore.Models.SimulationComponent.Data @@ -75,7 +76,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [Required, Range(double.MinValue, double.MaxValue)] public double CorrectionFactorNCV { get; internal set; } - public double FuelConsumptionCorrectionFactor {get; internal set; } + public double FuelConsumptionCorrectionFactor { get; internal set; } public PerSecond RatedSpeedDeclared { get; internal set; } @@ -112,6 +113,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data RatedPowerDeclared = RatedPowerDeclared, RatedSpeedDeclared = RatedSpeedDeclared, MaxTorqueDeclared = MaxTorqueDeclared, + FuelType = FuelType }; } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs index bbe1a721ca..9901d0c982 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/BusAuxiliariesAdapter.cs @@ -33,6 +33,7 @@ using System; using System.IO; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; @@ -79,7 +80,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl _fcMapAdapter = new FuelConsumptionAdapter() { FcMap = fcMap }; tmpAux.VectoInputs.FuelMap = _fcMapAdapter; - tmpAux.VectoInputs.FuelDensity = Physics.FuelDensity; + tmpAux.VectoInputs.FuelDensity = FuelData.Instance().Lookup(container.FuelType).FuelDensity; //'Set Signals tmpAux.Signals.EngineIdleSpeed = engineIdleSpeed; diff --git a/VectoCore/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/VectoCore/OutputData/DeclarationReport.cs index d49000c659..afdd105cf6 100644 --- a/VectoCore/VectoCore/OutputData/DeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/DeclarationReport.cs @@ -106,7 +106,7 @@ namespace TUGraz.VectoCore.OutputData /// <summary> /// The full load curve. /// </summary> - internal Dictionary<uint, EngineFullLoadCurve> Flc { get; set; } + internal Dictionary<uint, EngineFullLoadCurve> Flc { get; set; } /// <summary> /// The declaration segment from the segment table diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs index a145fe66d5..9e9eea705d 100644 --- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs @@ -35,6 +35,7 @@ using System.Data; using System.Linq; using System.Runtime.Remoting.Metadata.W3cXsd2001; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -71,6 +72,8 @@ namespace TUGraz.VectoCore.OutputData /// </summary> void CommitSimulationStep(); + FuelData.Entry FuelData { get; } + VectoRun.Status RunStatus { get; } /// <summary> @@ -379,7 +382,7 @@ namespace TUGraz.VectoCore.OutputData return null; } - var fcVolumePerMeter = fuelConsumptionFinal / Physics.FuelDensity; + var fcVolumePerMeter = fuelConsumptionFinal / data.FuelData.FuelDensity; return fcVolumePerMeter.ConvertTo().Cubic.Dezi.Meter * 100.SI().Kilo.Meter; } @@ -389,7 +392,7 @@ namespace TUGraz.VectoCore.OutputData if (distance == null || distance.IsEqual(0)) { return null; } - return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) * Physics.CO2PerFuelWeight / distance; + return data.TimeIntegral<Kilogram>(ModalResultField.FCFinal) * data.FuelData.CO2PerFuelWeight / distance; } public static KilogramPerSecond FCMapPerSecond(this IModalDataContainer data) diff --git a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs index e4bad04e09..b0fe385de2 100644 --- a/VectoCore/VectoCore/OutputData/ModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/ModalDataContainer.cs @@ -35,7 +35,9 @@ using System.Data; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; +using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -61,14 +63,14 @@ namespace TUGraz.VectoCore.OutputData public bool WriteAdvancedAux { get; set; } - public ModalDataContainer(string runName, IModalDataWriter writer, bool writeEngineOnly = false) - : this(runName, "", "", writer, _ => { }, writeEngineOnly) {} + public ModalDataContainer(string runName, FuelType fuel, IModalDataWriter writer, bool writeEngineOnly = false) + : this(runName, "",fuel, "", writer, _ => { }, writeEngineOnly) {} public ModalDataContainer(VectoRunData runData, IModalDataWriter writer, Action<ModalDataContainer> addReportResult, bool writeEngineOnly, params IModalDataFilter[] filter) - : this(runData.JobName, runData.Cycle.Name, runData.ModFileSuffix, writer, addReportResult, writeEngineOnly, filter) {} + : this(runData.JobName, runData.Cycle.Name, runData.EngineData.FuelType, runData.ModFileSuffix, writer, addReportResult, writeEngineOnly, filter) {} - protected ModalDataContainer(string runName, string cycleName, string runSuffix, IModalDataWriter writer, + protected ModalDataContainer(string runName, string cycleName, FuelType fuelType, string runSuffix, IModalDataWriter writer, Action<ModalDataContainer> addReportResult, bool writeEngineOnly, params IModalDataFilter[] filters) { HasTorqueConverter = false; @@ -77,6 +79,8 @@ namespace TUGraz.VectoCore.OutputData RunSuffix = runSuffix; _writer = writer; + FuelData = Models.Declaration.FuelData.Instance().Lookup(fuelType); + _writeEngineOnly = writeEngineOnly; _filters = filters ?? new IModalDataFilter[0]; _addReportResult = addReportResult ?? (x => { }); @@ -95,6 +99,8 @@ namespace TUGraz.VectoCore.OutputData CurrentRow = Data.NewRow(); } + public FuelData.Entry FuelData { get; private set; } + public void Finish(VectoRun.Status runStatus) { var dataColumns = new List<ModalResultField> { ModalResultField.time }; diff --git a/VectoCore/VectoCore/Utils/Physics.cs b/VectoCore/VectoCore/Utils/Physics.cs index 4b6edc6caa..ac63dd4bb2 100644 --- a/VectoCore/VectoCore/Utils/Physics.cs +++ b/VectoCore/VectoCore/Utils/Physics.cs @@ -46,10 +46,6 @@ namespace TUGraz.VectoCore.Utils /// </summary> public static KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>(); - /// <summary> - /// Density of fuel. - /// </summary> - public static KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>(); public const double RollResistanceExponent = 0.9; @@ -67,10 +63,5 @@ namespace TUGraz.VectoCore.Utils /// Hellmann Exponent for modelling of wind speed in specific heights. /// </summary> public const double HellmannExponent = 0.2; - - /// <summary> - /// fuel[kg] => co2[kg]. Factor to convert from fuel weight to co2 weight. - /// </summary> - public static double CO2PerFuelWeight = 3.16; } } \ No newline at end of file diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index 459239ec80..4356f0f03c 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -166,6 +166,7 @@ <Compile Include="Models\Connector\Ports\IFvPort.cs" /> <Compile Include="Models\Connector\Ports\ITnPort.cs" /> <Compile Include="InputData\Reader\ComponentData\AccelerationCurveReader.cs" /> + <Compile Include="Models\Declaration\FuelData.cs" /> <Compile Include="Models\Declaration\PTOTransmission.cs" /> <Compile Include="Models\Declaration\IDeclarationAuxiliaryTable.cs" /> <Compile Include="Models\SimulationComponent\Data\AngledriveData.cs" /> @@ -431,6 +432,7 @@ </EmbeddedResource> <EmbeddedResource Include="Resources\Declaration\MissionCycles\MunicipalUtility_PTO_generic.vptoc" /> <EmbeddedResource Include="Resources\Declaration\MissionCycles\MunicipalUtility_PTO_generic.vptol" /> + <EmbeddedResource Include="Resources\Declaration\FuelTypes.csv" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="Resources\Declaration\Report\4x2r.png" /> diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs index f390dd5768..3797a8a9bd 100644 --- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs @@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.Tests.Integration bool overspeed = false, KilogramSquareMeter gearBoxInertia = null) { var fileWriter = new FileOutputWriter(modFileName); - var modData = new ModalDataContainer(modFileName, fileWriter) { + var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) { WriteModalResults = true, HasTorqueConverter = true }; diff --git a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs index 91912d7232..9527cbd03c 100644 --- a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs +++ b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs @@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries var engineFLDFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vfld"; var engineFCMapFilePath = @"TestData\Integration\BusAuxiliaries\24t Coach.vmap"; - var vehicle = new VehicleContainer(ExecutionMode.Engineering); + var vehicle = new VehicleContainer(ExecutionMode.Engineering, new MockModalDataContainer()); var fcMap = FuelConsumptionMapReader.ReadFromFile(engineFCMapFilePath); var fld = EngineFullLoadCurve.ReadFromFile(engineFLDFilePath); var modelData = new CombustionEngineData() { diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs index 79ce266962..3bfa4573d4 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs @@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration bool highEnginePower = true) { var fileWriter = new FileOutputWriter(modFileName); - var modData = new ModalDataContainer(modFileName, fileWriter) { WriteAdvancedAux = true, WriteModalResults = true }; + var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) { WriteAdvancedAux = true, WriteModalResults = true }; var container = new VehicleContainer(ExecutionMode.Engineering, modData) { RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData } }; diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs index fef70e6d68..dce0151e0f 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration KilogramSquareMeter gearBoxInertia = null, bool engineHighPower = true) { var fileWriter = new FileOutputWriter(modFileName); - var modData = new ModalDataContainer(modFileName, fileWriter) { WriteModalResults = true }; + var modData = new ModalDataContainer(modFileName, FuelType.DieselCI, fileWriter) { WriteModalResults = true }; var container = new VehicleContainer(ExecutionMode.Engineering, modData) { RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData } }; diff --git a/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs b/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs index d42b318eaa..02d38767c0 100644 --- a/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/EngineOnlyCycle/EngineOnlyCycleTest.cs @@ -37,6 +37,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.Reader; using TUGraz.VectoCore.Models.Connector.Ports.Impl; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; @@ -88,7 +89,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle var modFile = Path.GetFileNameWithoutExtension(modalResultFile); //Path.GetFileNameWithoutExtension(Path.GetRandomFileName()); // + ".vmod"; var fileWriter = new FileOutputWriter(modFile); - var modData = new ModalDataContainer(modFile, fileWriter, true) { WriteModalResults = true }; + var modData = new ModalDataContainer(modFile, FuelType.DieselCI, fileWriter, true) { WriteModalResults = true }; modData.AddAuxiliary(Constants.Auxiliaries.Cycle); port.Initialize(data.Entries.First().Torque, data.Entries.First().AngularVelocity); foreach (var cycleEntry in data.Entries) { diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs index 6f2f22579b..0fe65c037d 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs @@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns public void Test_FullPowertrain_SimpleGearbox() { var fileWriter = new FileOutputWriter("Coach_FullPowertrain_SimpleGearbox"); - var modData = new ModalDataContainer("Coach_FullPowertrain_SimpleGearbox", fileWriter); + var modData = new ModalDataContainer("Coach_FullPowertrain_SimpleGearbox", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var gearboxData = CreateSimpleGearboxData(); @@ -134,7 +134,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns public void Test_FullPowertrain() { var fileWriter = new FileOutputWriter("Coach_FullPowertrain"); - var modData = new ModalDataContainer("Coach_FullPowertrain", fileWriter); + var modData = new ModalDataContainer("Coach_FullPowertrain", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var gearboxData = CreateGearboxData(); @@ -212,7 +212,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns public void Test_FullPowertrain_LowSpeed() { var fileWriter = new FileOutputWriter("Coach_FullPowertrain_LowSpeed"); - var modData = new ModalDataContainer("Coach_FullPowertrain_LowSpeed", fileWriter); + var modData = new ModalDataContainer("Coach_FullPowertrain_LowSpeed", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var gearboxData = CreateGearboxData(); diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs index e01dbeb844..84d54158c3 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs @@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var driverData = CreateDriverData(AccelerationFile); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrainOverload"); - var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var driver = new Driver(container, driverData, new DefaultDriverStrategy()); @@ -121,7 +121,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var driverData = CreateDriverData(AccelerationFile); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain"); - var modData = new ModalDataContainer("Coach_MinimalPowertrain", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrain", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var cycle = new DistanceBasedDrivingCycle(container, cycleData); @@ -193,7 +193,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns var driverData = CreateDriverData(AccelerationFile2); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrainOverload"); - var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrainOverload", FuelType.DieselCI, fileWriter); var container = new VehicleContainer(ExecutionMode.Engineering, modData); var cycle = new DistanceBasedDrivingCycle(container, cycleData); diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs index 428b90cdd6..00b8cab64b 100644 --- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs @@ -85,7 +85,7 @@ namespace TUGraz.VectoCore.Tests.Integration Kilogram massExtra, Kilogram loading, bool overspeed = false, GearboxType gbxType = GearboxType.AMT) { var fileWriter = new FileOutputWriter(modFileName); - var modData = new ModalDataContainer(Path.GetFileName(modFileName), fileWriter) { WriteModalResults = true }; + var modData = new ModalDataContainer(Path.GetFileName(modFileName), FuelType.DieselCI, fileWriter) { WriteModalResults = true }; var container = new VehicleContainer(ExecutionMode.Engineering, modData) { RunData = new VectoRunData { JobName = modFileName, Cycle = cycleData } }; diff --git a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs index 4297deb76d..b9185306ca 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/AuxTests.cs @@ -62,7 +62,9 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation { var fileWriter = new FileOutputWriter("AuxWriteModFileSumFile"); - var modData = new ModalDataContainer("AuxWriteModFileSumFile", fileWriter) { WriteModalResults = true }; + var modData = new ModalDataContainer("AuxWriteModFileSumFile", FuelType.DieselCI, fileWriter) { + WriteModalResults = true + }; modData.AddAuxiliary("FAN"); modData.AddAuxiliary("PS"); modData.AddAuxiliary("STP"); diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs index 2c94ef86a3..84abb65280 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs @@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var driverData = CreateDriverData(); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain_Coasting"); - var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", FuelType.DieselCI, fileWriter); var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData); var mockCycle = new MockDrivingCycle(vehicleContainer, null); @@ -128,7 +128,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var driverData = CreateDriverData(); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain_Coasting"); - var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrain_Coasting", FuelType.DieselCI, fileWriter); var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData); var mockCycle = new MockDrivingCycle(vehicleContainer, null); @@ -190,7 +190,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent var driverData = CreateDriverData(); var fileWriter = new FileOutputWriter("Coach_MinimalPowertrain"); - var modData = new ModalDataContainer("Coach_MinimalPowertrain", fileWriter); + var modData = new ModalDataContainer("Coach_MinimalPowertrain", FuelType.DieselCI, fileWriter); var vehicleContainer = new VehicleContainer(ExecutionMode.Engineering, modData); var cycle = new MockDrivingCycle(vehicleContainer, null); diff --git a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs index 442b57b3dd..faaf23237f 100644 --- a/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs +++ b/VectoCore/VectoCoreTest/Reports/SumWriterTest.cs @@ -32,6 +32,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -52,7 +53,7 @@ namespace TUGraz.VectoCore.Tests.Reports var writer = new FileOutputWriter("testsumcalc_fixed"); var sumWriter = new SummaryDataContainer(writer); - var modData = new ModalDataContainer("testsumcalc_fixed", writer); + var modData = new ModalDataContainer("testsumcalc_fixed", FuelType.DieselCI, writer); modData.AddAuxiliary("FAN"); @@ -108,7 +109,7 @@ namespace TUGraz.VectoCore.Tests.Reports var writer = new FileOutputWriter("testsumcalc_var"); var sumWriter = new SummaryDataContainer(writer); - var modData = new ModalDataContainer("testsumcalc_var", writer); + var modData = new ModalDataContainer("testsumcalc_var", FuelType.DieselCI, writer); modData.AddAuxiliary("FAN"); var timeSteps = new[] diff --git a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs index f0a08e3fbe..ba581dd6ec 100644 --- a/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockModalDataContainer.cs @@ -34,6 +34,7 @@ using System.Collections.Generic; using System.Data; using System.Linq; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.OutputData; @@ -74,6 +75,8 @@ namespace TUGraz.VectoCore.Tests.Utils CurrentRow = Data.NewRow(); } + public FuelData.Entry FuelData { get { return VectoCore.Models.Declaration.FuelData.Diesel; } } + public VectoRun.Status RunStatus { get { return VectoRun.Status.Success; } diff --git a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs index 5b94e64f13..344ae6fafc 100644 --- a/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs +++ b/VectoCore/VectoCoreTest/Utils/MockVehicleContainer.cs @@ -33,6 +33,7 @@ using System.Collections.Generic; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Models.Connector.Ports; +using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.DataBus; @@ -70,6 +71,11 @@ namespace TUGraz.VectoCore.Tests.Utils public MeterPerSquareSecond StartAcceleration { get; set; } public NewtonMeter GearMaxTorque { get; set; } + public FuelType FuelType + { + get { return FuelType.DieselCI; } + } + public Second AbsTime { get; set; } public Watt GearboxLoss() -- GitLab