From dda821914f986c6ff4b835b88e9b5a843d45e411 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Tue, 7 Jun 2022 09:07:45 +0200 Subject: [PATCH] saving IEPC-S job works --- VECTO/Input Files/Vehicle.vb | 70 +++++++++---------- .../OutputData/FileIO/JSONFileWriter.cs | 16 +++-- 2 files changed, 47 insertions(+), 39 deletions(-) diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 328caf3488..680773de38 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -100,9 +100,9 @@ Public Class Vehicle public GearDuringPTODrive As UInteger? Public EngineSpeedDuringPTODrive As PerSecond Public ElectricMotorPerGearRatios As Double() - Public IEPCFile As SubPath + Public IEPCFile As SubPath - Public Sub New() + Public Sub New() _path = "" _filePath = "" CrossWindCorrectionFile = New SubPath @@ -963,33 +963,33 @@ Public Class IEPCWrapper _vehicle = vehicle End Sub - Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource + Public ReadOnly Property DataSource As DataSource Implements IComponentInputData.DataSource get - Dim retVal As DataSource = New DataSource() - retVal.SourceType = DataSourceType.JSONFile - retVal.SourceFile = _vehicle.IEPCFile.FullPath - Return retVal + Dim retVal As DataSource = New DataSource() + retVal.SourceType = DataSourceType.JSONFile + retVal.SourceFile = _vehicle.IEPCFile.FullPath + Return retVal End Get - End Property - Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode - Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer - Public ReadOnly Property Model As String Implements IComponentInputData.Model - Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] - Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion - Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod - Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber - Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue - Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IIEPCDeclarationInputData.ElectricMachineType - Public ReadOnly Property R85RatedPower As Watt Implements IIEPCDeclarationInputData.R85RatedPower - Public ReadOnly Property Inertia As KilogramSquareMeter Implements IIEPCDeclarationInputData.Inertia - Public ReadOnly Property DifferentialIncluded As Boolean Implements IIEPCDeclarationInputData.DifferentialIncluded - Public ReadOnly Property DesignTypeWheelMotor As Boolean Implements IIEPCDeclarationInputData.DesignTypeWheelMotor - Public ReadOnly Property NrOfDesignTypeWheelMotorMeasured As Integer? Implements IIEPCDeclarationInputData.NrOfDesignTypeWheelMotorMeasured - Public ReadOnly Property Gears As IList(Of IGearEntry) Implements IIEPCDeclarationInputData.Gears - Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IIEPCDeclarationInputData.VoltageLevels - Public ReadOnly Property DragCurves As IList(Of IDragCurve) Implements IIEPCDeclarationInputData.DragCurves - Public ReadOnly Property Conditioning As TableData Implements IIEPCDeclarationInputData.Conditioning - Public ReadOnly Property OverloadRecoveryFactor As Double Implements IIEPCEngineeringInputData.OverloadRecoveryFactor + End Property + Public ReadOnly Property SavedInDeclarationMode As Boolean Implements IComponentInputData.SavedInDeclarationMode + Public ReadOnly Property Manufacturer As String Implements IComponentInputData.Manufacturer + Public ReadOnly Property Model As String Implements IComponentInputData.Model + Public ReadOnly Property [Date] As Date Implements IComponentInputData.[Date] + Public ReadOnly Property AppVersion As String Implements IComponentInputData.AppVersion + Public ReadOnly Property CertificationMethod As CertificationMethod Implements IComponentInputData.CertificationMethod + Public ReadOnly Property CertificationNumber As String Implements IComponentInputData.CertificationNumber + Public ReadOnly Property DigestValue As DigestData Implements IComponentInputData.DigestValue + Public ReadOnly Property ElectricMachineType As ElectricMachineType Implements IIEPCDeclarationInputData.ElectricMachineType + Public ReadOnly Property R85RatedPower As Watt Implements IIEPCDeclarationInputData.R85RatedPower + Public ReadOnly Property Inertia As KilogramSquareMeter Implements IIEPCDeclarationInputData.Inertia + Public ReadOnly Property DifferentialIncluded As Boolean Implements IIEPCDeclarationInputData.DifferentialIncluded + Public ReadOnly Property DesignTypeWheelMotor As Boolean Implements IIEPCDeclarationInputData.DesignTypeWheelMotor + Public ReadOnly Property NrOfDesignTypeWheelMotorMeasured As Integer? Implements IIEPCDeclarationInputData.NrOfDesignTypeWheelMotorMeasured + Public ReadOnly Property Gears As IList(Of IGearEntry) Implements IIEPCDeclarationInputData.Gears + Public ReadOnly Property VoltageLevels As IList(Of IElectricMotorVoltageLevel) Implements IIEPCDeclarationInputData.VoltageLevels + Public ReadOnly Property DragCurves As IList(Of IDragCurve) Implements IIEPCDeclarationInputData.DragCurves + Public ReadOnly Property Conditioning As TableData Implements IIEPCDeclarationInputData.Conditioning + Public ReadOnly Property OverloadRecoveryFactor As Double Implements IIEPCEngineeringInputData.OverloadRecoveryFactor End Class Public Class ElectricStorageSystemWrapper @@ -1080,9 +1080,9 @@ Public Class ElectricMachinesWrapper Public ReadOnly Property Entries As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) Implements IElectricMachinesDeclarationInputData.Entries Get Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorDeclarationInputData)) - If (Vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + If (Vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then - retval.Add(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { + retval.Add(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), @@ -1090,7 +1090,7 @@ Public Class ElectricMachinesWrapper .RatioADC = Vehicle.ElectricMotorRatio, .RatioPerGear = vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}) - End If + End If if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.IEPC_S) Then retval.Add(New ElectricMachineEntry(Of IElectricMotorDeclarationInputData) With { @@ -1107,9 +1107,9 @@ Public Class ElectricMachinesWrapper Public ReadOnly Property IElectricMachinesEngineeringInputData_Entries As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) Implements IElectricMachinesEngineeringInputData.Entries Get Dim retval As IList(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) = New List(Of ElectricMachineEntry(Of IElectricMotorEngineeringInputData)) - - If (Vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then - retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { + + If (Vehicle.VehicleType = VectoSimulationJobType.BatteryElectricVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.ParallelHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { .ElectricMachine = new ElectricMachineWrapper(Vehicle.ElectricMotorFile), .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Vehicle.ElectricMotorMechLossMap.OriginalPath.ToDouble(), double.NaN), .MechanicalTransmissionLossMap = If(IsNumeric(Vehicle.ElectricMotorMechLossMap.OriginalPath), Nothing, VectoCSVFile.Read(Vehicle.ElectricMotorMechLossMap.FullPath)), @@ -1117,9 +1117,9 @@ Public Class ElectricMachinesWrapper .RatioADC = Vehicle.ElectricMotorRatio, .RatioPerGear = Vehicle.ElectricMotorPerGearRatios, .Count = Vehicle.ElectricMotorCount}) - End If + End If - if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle) Then + if (Vehicle.VehicleType = VectoSimulationJobType.SerialHybridVehicle OrElse Vehicle.VehicleType = VectoSimulationJobType.IEPC_S) Then retval.Add(New ElectricMachineEntry(Of IElectricMotorEngineeringInputData) With { .ElectricMachine = new ElectricMachineWrapper(Vehicle.GenSetEMFile), .MechanicalTransmissionEfficiency = If(IsNumeric(Vehicle.GenSetMechLossMap.OriginalPath), Vehicle.GenSetMechLossMap.OriginalPath.ToDouble(), double.NaN), diff --git a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs index a7da4c33d6..713229a005 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/JSONFileWriter.cs @@ -707,6 +707,9 @@ public class JSONFileWriter : IOutputFileWriter case VectoSimulationJobType.IEPC_E: SaveIEPCEJob(input, filename, DeclMode); break; + case VectoSimulationJobType.IEPC_S: + SaveIEPCEJob(input, filename, DeclMode); + break; case VectoSimulationJobType.EngineOnlySimulation: SaveEngineOnlyJob(input, filename, DeclMode); break; @@ -1137,15 +1140,20 @@ public class JSONFileWriter : IOutputFileWriter // Main Files body.Add("VehicleFile", GetRelativePath(job.Vehicle.DataSource.SourceFile, basePath)); - if (input.JobInputData.Vehicle.Components.GearboxInputData != null) { + if (job.JobType == VectoSimulationJobType.IEPC_S) { + body.Add("EngineFile", GetRelativePath(input.JobInputData.Vehicle.Components.EngineInputData.DataSource.SourceFile, basePath)); + } + + if (job.Vehicle.Components.GearboxInputData != null) { body.Add("GearboxFile", GetRelativePath(input.JobInputData.Vehicle.Components.GearboxInputData.DataSource.SourceFile, basePath)); - if (input.DriverInputData.GearshiftInputData != null) { + if (input.DriverInputData.GearshiftInputData != null && !job.SavedInDeclarationMode) { body.Add("TCU", GetRelativePath(input.DriverInputData.GearshiftInputData.Source, basePath)); } } - if (!job.SavedInDeclarationMode) { - body.Add("TCU", GetRelativePath(input.DriverInputData.GearshiftInputData.Source, basePath)); + + if (!job.SavedInDeclarationMode && job.Vehicle.VehicleType == VectoSimulationJobType.IEPC_S) { + body.Add("HybridStrategyParams", GetRelativePath(input.JobInputData.HybridStrategyParameters.Source, basePath)); } body.Add("Padd_electric", input.JobInputData.Vehicle.Components.AuxiliaryInputData.Auxiliaries.ElectricPowerDemand.Value()); -- GitLab