diff --git a/Overview_BusAuxConfig.txt b/Overview_BusAuxConfig.txt new file mode 100644 index 0000000000000000000000000000000000000000..09e18fa38acf0ba1c9f45748ab7c71eb75defe7d --- /dev/null +++ b/Overview_BusAuxConfig.txt @@ -0,0 +1,93 @@ +AuxiliaryConfig + +--- ElectricUserInputConfig + | +--- PowerNetVoltage => const + | +--- AlternatorMap (IAlternatorMap) -> to be replaced by fixed efficiency (function of technology, size (=0.7)) + | +--- AlternatorGearEfficiency => const + | +--- ElectricalConsumerList (IElectricalConsumerList) => fix, which consumers are applied from segment table, or input (bool), doors: 2 + | +--- DoorActuationTime => const + | +--- ResultCardIdle (IResultCard) => input (?) + | | +--- Results (IReadonlyList<SmartResult>) ==> Not needed in Interface? XX + | | +--- GetSmartCurrentResult + | +--- ResultCardTraction + | | +--- Results (IReadonlyList<SmartResult>) ==> Not needed in Interface? XX + | | +--- GetSmartCurrentResult + | +--- ResultCardOverrun + | | +--- Results (IReadonlyList<SmartResult>) ==> Not needed in Interface? XX + | | +--- GetSmartCurrentResult + | +--- SmartElectrical => input + | +--- StoredEnergyEfficiency => const + +--- PneumaticAuxiliariesConfig => const + | +--- OverrunUtilisationForComressionFraction + | +--- BrakingWithRetarderNIperKg + | +--- BrakingNoRetarderNIperKg + | +--- PerDoorOpeningNI + | +--- PerStopBrakeActuationNIperKG + | +--- AirControlledSuspensionNIperMinute + | +--- AdBlueNIperMinute + | +--- NonSmartRegenFractionTotalAirDemand + | +--- SmartRegenFractionTotalAirDemand + | +--- DeadVolumeLiters + | +--- DeadVolBlowOutsPerLitresperHour + +--- PneumaticUserInputsconfig + | +--- CompressorMap (ICompressorMap) => input (size of air supply) defines compressor map to be used (available in test project!) + | +--- CompressorGearEfficiency => const + | +--- CompressorGearRatio => input + | X ActuationsMap (Dictionary<ActuationsKey, int>) (XXX) + | +--- SmartAirCompression => input (?) + | +--- SmartRegeneration => input (?) + | +--- RetartderBrake => input vehicle data + | +--- KneelingHeight => calculate: entrance height - 270mm, primary vehicle fix 80mm + | +--- AirSuspensionControlTechnology => input + | +--- AdBlueDosingTechnology => yes -> pneumatic, no electric + | +--- DoorsTechnology => input + +--- HVACUserInputsConfig + | +--- HVACConstants + | +--- FuelProperties + +--- SSMInputs + | +--- SSMDisabled => false + | +--- BusParameters => vehicle data + | | +--- BusModel + | | +--- NumberOfPassengers + | | +--- BusFloorType + | | +--- BusLength + | | +--- BusWidth + | | +--- BusHeight + | | +--- ... further derived parameters + | +--- Technologies (List<TechBenefitLine) => input + | +--- BoundaryConditions => const + | | +--- GFactor + | | +--- SolarClouding + | | +--- HeatPerPassengerIntoCabin + | | +--- UValue + | | +--- HeatingBoundaryTemp + | | +--- CoolingBoundaryTemp + | | +--- HighVentilation + | | +--- LowVentilation + | | +--- ... further constant values + | +--- EnvironmentalConditions + | | +--- DefaultConditions (IEnvironmentalContitionsMapEntry) --> not relevant + | | | +--- Temperature + | | | +--- Solar + | | | +--- Weighting ( = 1) + | | +--- EnvironmentalConditionsMap (IEnvironmentalConditionsMap) ==> const + | | | +--- GetEnvironmentalConditions (IReadonlyList<IEnvironmentalContitionsMapEntry>) + | | +--- BatchMode => true + | +--- ACSystem + | | +--- CompressorType -> input parameter + | | +--- CompressorTypeDerived -> calculated + | | +--- CompressorCapacity -> calculated (excel) + | | +--- COP -> generic + | +--- Ventilation + | | +--- VentilationDuringHeating => const + | | +--- VentilationWhenBothHeatingAndACInactive => const + | | +--- VentilationDuringAC => const + | | +--- VentilationFlowSettingsWhenHeatingAndACInactive => const + | | +--- VentilationDuringHeating => const + | | +--- VentilationDuringCooling => const + | +--- AuxHeater + | +--- FuelFiredHeaterKw => derived fom input parameter + | +--- FuelEnergyToHeatToCoolant => const + | +--- CoolantHeatTransferredToAirCondition => const + +--- ActuationsMap (??) => update + +--- VehicleData + +--- FuelMap \ No newline at end of file diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux b/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux index cea26c5ac48813f9aa232809e2f4d56c9619542b..c9f0851aaca4177895fbf0fab1b836379ca594a7 100644 --- a/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux +++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/AdvAuxTest.aaux @@ -281,7 +281,6 @@ "Doors": "Pneumatic", "KneelingHeightMillimeters": 80.0, "ActuationsMap": "testPneumaticActuationsMap.APAC", - "RetarderBrake": true, "SmartAirCompression": true, "SmartRegeneration": true }, @@ -290,8 +289,7 @@ "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Pneumatics.PneumaticsAuxilliariesConfig, BusAuxiliaries", "AdBlueNIperMinute": 21.25, "AirControlledSuspensionNIperMinute": 15.0, - "BrakingNoRetarderNIperKG": 0.00081, - "BrakingWithRetarderNIperKG": 0.0006, + "BrakingNIperKG": 0.00081, "BreakingPerKneelingNIperKGinMM": 6.6E-05, "DeadVolBlowOutsPerLitresperHour": 24.0, "DeadVolumeLitres": 30.0, diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux index 3d07b0736aea49c39106a00c7f5f54552a267457..5dc8b18d75eeb0db183510f85995f8424b5bb3e0 100644 --- a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux +++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux @@ -276,7 +276,6 @@ "Doors": "Pneumatic", "KneelingHeightMillimeters": 80.0, "ActuationsMap": "testPneumaticActuationsMap.APAC", - "RetarderBrake": true, "SmartAirCompression": true, "SmartRegeneration": true }, @@ -285,8 +284,7 @@ "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Pneumatics.PneumaticsAuxilliariesConfig, BusAuxiliaries", "AdBlueNIperMinute": 21.25, "AirControlledSuspensionNIperMinute": 15.0, - "BrakingNoRetarderNIperKG": 0.00081, - "BrakingWithRetarderNIperKG": 0.0006, + "BrakingNIperKG": 0.0006, "BreakingPerKneelingNIperKGinMM": 6.6E-05, "DeadVolBlowOutsPerLitresperHour": 24.0, "DeadVolumeLitres": 30.0, diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb index 9c07134a80fbfe4d2e9f79fe1c3921e280234e6a..1650b0cfd3e1b965ab085122b52e5289e9fed8ba 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AuxiliaryEnvironmentComparisonTests.vb @@ -490,7 +490,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).AdBlueNIperMinute += 1.SI(Of NormLiterPerSecond) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).AdBlueInjection += 1.SI(Of NormLiterPerSecond) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -506,7 +506,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).AirControlledSuspensionNIperMinute += 1.SI(of NormLiterPerSecond) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).AirControlledSuspension += 1.SI(of NormLiterPerSecond) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -522,7 +522,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingNoRetarderNIperKG += 1.SI(of NormLiterPerKilogram) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).Braking += 1.SI(of NormLiterPerKilogram) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -530,21 +530,21 @@ Namespace UnitTests Assert.AreEqual(False, compareResult) End Sub - <Test()> - <Category("PneumaticAuxiliariesConfig")> - Public Sub PneumaticsAuxuiliaryConfig_BrakingWithRetarderNIperKG_Enequal() + '<Test()> + '<Category("PneumaticAuxiliariesConfig")> + 'Public Sub PneumaticsAuxuiliaryConfig_BrakingWithRetarderNIperKG_Enequal() - 'Arrange - Dim auxFresh = GetDefaultAuxiliaryConfig() - Dim auxNow = GetDefaultAuxiliaryConfig() - Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingWithRetarderNIperKG += 1.SI(Of NormLiterPerKilogram) + ' 'Arrange + ' Dim auxFresh = GetDefaultAuxiliaryConfig() + ' Dim auxNow = GetDefaultAuxiliaryConfig() + ' Dim compareResult As Boolean + ' CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BrakingWithRetarderNIperKG += 1.SI(Of NormLiterPerKilogram) - 'Act - compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) + ' 'Act + ' compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) - Assert.AreEqual(False, compareResult) - End Sub + ' Assert.AreEqual(False, compareResult) + 'End Sub <Test()> <Category("PneumaticAuxiliariesConfig")> @@ -554,7 +554,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).BreakingPerKneelingNIperKGinMM += 1.SI(Of NormLiterPerKilogramMeter) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).BreakingWithKneeling += 1.SI(Of NormLiterPerKilogramMeter) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -570,7 +570,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).DeadVolBlowOutsPerLitresperHour += 1.SI(Of PerSecond) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DeadVolBlowOuts += 1.SI(Of PerSecond) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -586,7 +586,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).DeadVolumeLitres += 1.SI(of NormLiter) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DeadVolume += 1.SI(of NormLiter) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -602,7 +602,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).NonSmartRegenFractionTotalAirDemand += 1 + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).NonSmartRegenFractionTotalAirDemand += 1 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -618,7 +618,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).OverrunUtilisationForCompressionFraction += 1 + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).OverrunUtilisationForCompressionFraction += 1 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -634,7 +634,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).PerDoorOpeningNI += 1.SI(Of NormLiter) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).DoorOpening += 1.SI(Of NormLiter) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -650,7 +650,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).PerStopBrakeActuationNIperKG += 1.SI(of NormLiterPerKilogram) + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).StopBrakeActuation += 1.SI(of NormLiterPerKilogram) 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -666,7 +666,7 @@ Namespace UnitTests Dim auxFresh = GetDefaultAuxiliaryConfig() Dim auxNow = GetDefaultAuxiliaryConfig() Dim compareResult As Boolean - CType (auxNow.PneumaticAuxillariesConfig, PneumaticsAuxilliariesConfig).SmartRegenFractionTotalAirDemand += 1 + CType (auxNow.PneumaticAuxillariesConfig, PneumaticsConsumersDemand).SmartRegenFractionTotalAirDemand += 1 'Act compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) @@ -812,20 +812,20 @@ Namespace UnitTests Assert.AreEqual(False, compareResult) End Sub - <Test()> - <Category("PneumaticUserInputsConfig")> - Public Sub PneumaticUserInputsConfig_RetarderBrake_Enequal() + '<Test()> + '<Category("PneumaticUserInputsConfig")> + 'Public Sub PneumaticUserInputsConfig_RetarderBrake_Enequal() - 'Arrange - Dim auxFresh = GetDefaultAuxiliaryConfig() - Dim auxNow = GetDefaultAuxiliaryConfig() - Dim compareResult As Boolean - CType (auxNow.PneumaticUserInputsConfig, PneumaticUserInputsConfig).RetarderBrake = Not auxNow.PneumaticUserInputsConfig.RetarderBrake + ' 'Arrange + ' Dim auxFresh = GetDefaultAuxiliaryConfig() + ' Dim auxNow = GetDefaultAuxiliaryConfig() + ' Dim compareResult As Boolean + ' CType (auxNow.PneumaticUserInputsConfig, PneumaticUserInputsConfig).RetarderBrake = Not auxNow.PneumaticUserInputsConfig.RetarderBrake - 'Act - compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) - Assert.AreEqual(False, compareResult) - End Sub + ' 'Act + ' compareResult = auxFresh.ConfigValuesAreTheSameAs(auxNow) + ' Assert.AreEqual(False, compareResult) + 'End Sub <Test()> <Category("PneumaticUserInputsConfig")> diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb index dcd80c932a07a00fee92e985a5028f832453ecdf..7cf71eb32dac0fee205b16d241799bfecdb1f7d6 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/AveragePneumaticLoadDemandTests.vb @@ -2,20 +2,23 @@ Imports System.IO Imports NUnit.Framework Imports TUGraz.VectoCommon.BusAuxiliaries +Imports TUGraz.VectoCommon.Models Imports TUGraz.VectoCommon.Utils Imports TUGraz.VectoCore.InputData.Reader.ComponentData +Imports TUGraz.VectoCore.InputData.Reader.DataObjectAdapter Imports TUGraz.VectoCore.Models.BusAuxiliaries Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC Imports TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics Imports TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces Imports TUGraz.VectoCore.Models.Declaration +Imports TUGraz.VectoCore.Models.Simulation.Data Imports TUGraz.VectoCore.Models.SimulationComponent.Data Namespace UnitTests <TestFixture> Public Class M3_AveragePneumaticLoadDemandTests Private _pneumaticUserInputsConfig As IPneumaticUserInputsConfig - Private _pneumaticAuxillariesConfig As IPneumaticsAuxilliariesConfig + Private _pneumaticAuxillariesConfig As IPneumaticsConsumersDemand Private _actuationsMap As IActuationsMap Private _pneumaticsCompressorFlowRateMap As ICompressorMap Private _vehicleMassKG As Single = 16500 @@ -47,7 +50,7 @@ Namespace UnitTests _defaultInputConfig.CompressorGearRatio = 1.3 _defaultInputConfig.CompressorGearEfficiency = 0.8 _defaultInputConfig.SmartRegeneration = True - _defaultInputConfig.RetarderBrake = True + '_defaultInputConfig.RetarderBrake = True _defaultInputConfig.KneelingHeightMillimeters = 80.SI(Unit.SI.Milli.Meter).Cast (of Meter) _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Electrically ' "Electrically" _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatic ' "Pneumatic" @@ -68,8 +71,7 @@ Namespace UnitTests psUserInputsConfig.Doors = ConsumerTechnology.Pneumatic '"Pneumatic" psUserInputsConfig.AdBlueDosing = ConsumerTechnology.Pneumatic ' "Pneumatic" - - Dim psAuxConfig = DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -91,8 +93,7 @@ Namespace UnitTests initialise() - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -118,8 +119,7 @@ Namespace UnitTests initialise() - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) @@ -149,8 +149,7 @@ Namespace UnitTests _defaultInputConfig.CompressorGearEfficiency = 0.8 - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -174,8 +173,7 @@ Namespace UnitTests initialise() - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -206,8 +204,7 @@ Namespace UnitTests _defaultInputConfig.SmartRegeneration = False - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -234,10 +231,9 @@ Namespace UnitTests initialise() - _defaultInputConfig.RetarderBrake = False - - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + '_defaultInputConfig.RetarderBrake = False + + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.None) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -266,8 +262,7 @@ Namespace UnitTests _defaultInputConfig.KneelingHeightMillimeters = 100.SI(Unit.si.Milli.Meter).Cast (Of Meter) - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -293,8 +288,7 @@ Namespace UnitTests _defaultInputConfig.AirSuspensionControl = ConsumerTechnology.Mechanically - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -322,8 +316,7 @@ Namespace UnitTests _defaultInputConfig.AdBlueDosing = ConsumerTechnology.Pneumatic - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -352,8 +345,7 @@ Namespace UnitTests _defaultInputConfig.Doors = ConsumerTechnology.Electrically - Dim psAuxConfig = CType(DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - PneumaticsAuxilliariesConfig) + Dim psAuxConfig = New DeclarationDataAdapter().CreatePneumaticAuxConfig(RetarderType.LossesIncludedInTransmission) Dim psActuationsMap = ActuationsMapReader.Read(_actuationsMapPath) Dim psCompressorMap = CompressorMapReader.ReadFile(_compressorMapPath) @@ -373,7 +365,7 @@ Namespace UnitTests Assert.AreEqual(expected, target.AverageAirConsumed().Value(), 0.001) End Sub - Private Function GetAuxConfig(psAuxConfig As PneumaticsAuxilliariesConfig) As IAuxiliaryConfig + Private Function GetAuxConfig(psAuxConfig As IPneumaticsConsumersDemand) As IAuxiliaryConfig Return New AuxiliaryConfig() with { .PneumaticAuxillariesConfig = psAuxConfig, diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb index 93a8c2974d73d5c1ca711a041bb3567feea356ae..e36c600bb6e2dafc3c5a7406eed24d3e3422d6da 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M9Tests.vb @@ -39,7 +39,7 @@ Namespace UnitTests Dim m8Mock As New Mock(Of IM8) Dim fMapMock As New MockFuel50PC() Dim sgnlsMock As New Mock(Of ISignals) - Dim psac As New Mock(Of IPneumaticsAuxilliariesConfig) + Dim psac As New Mock(Of IPneumaticsConsumersDemand) m6Mock.Setup(Function(x) x.AvgPowerDemandAtCrankFromElectricsIncHVAC).Returns(IP1.SI(Of Watt)) m1Mock.Setup(Function(x) x.AveragePowerDemandAtCrankFromHVACMechanicals).Returns(IP2.SI(Of Watt)) @@ -91,7 +91,7 @@ Namespace UnitTests Dim m8Mock As New Mock(Of IM8) Dim fMapMock As New Mock(Of IFuelConsumptionMap) Dim sgnlsMock As New Mock(Of ISignals) - Dim psac As New Mock(Of IPneumaticsAuxilliariesConfig) + Dim psac As New Mock(Of IPneumaticsConsumersDemand) fMapMock.Setup(Function(x) x.GetFuelConsumption(1.SI(Of NewtonMeter), 1.RPMtoRad())).Returns( (-1 / 1000).SI(Of KilogramPerSecond)()) diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb index b2967098a80a58ee8aed1a804b1b8a3c506a3f78..bf0aa1bbb2933f41482aa6bc1ffbdc26c3a25685 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb @@ -12,66 +12,65 @@ Imports TUGraz.VectoCore.Models.Declaration Imports TUGraz.VectoCore.Models.SimulationComponent.Data Public Class Utils - public shared function GetElectricConsumers As IElectricalConsumerList - Dim _powernetVoltage = 26.3.SI (Of Volt) - Dim list As List(Of IElectricalConsumer) = New List(Of IElectricalConsumer)() - list.add(New ElectricalConsumer(False, "Doors", "Doors per vehicle", 3.0.SI (Of Ampere), 0.096339, - _powernetVoltage, 3, "")) - list.add(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc", - 25.0.SI (Of Ampere), 1.0, _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.0.SI (Of Ampere), 0.8, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.0.SI (Of Ampere), - 0.8, _powernetVoltage, 0, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism", - 9.0.SI (Of Ampere), 0.8, - _powernetVoltage, 0, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.0.SI (Of Ampere), 0.5, - _powernetVoltage, 0, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard", - 67.0.SI (Of Ampere), 0.05, _powernetVoltage, 0, "")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", - "Interior lights City/ Intercity + Doorlights [Should be 1/m]", - 1.0.SI (Of Ampere), 0.7, - _powernetVoltage, 12, "1 Per metre length of bus")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", - "LED Interior lights ceiling city/Intercity + door [Should be 1/m]", - 0.6.SI (Of Ampere), 0.7, - _powernetVoltage, 0, "1 Per metre length of bus")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]", - 1.1.SI (Of Ampere), 0.7, _powernetVoltage, 0, "1 Per metre length of bus")) - list.add(New ElectricalConsumer(False, "Vehicle basic equipment", - "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]", - 0.66.SI (Of Ampere), 0.7, - _powernetVoltage, 0, "1 Per metre length of bus")) - list.add(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear", - 2.65017667844523.SI (Of Ampere), 1.0, _powernetVoltage, 4, "")) - list.add(New ElectricalConsumer(False, "Customer Specific Equipment", - "Internal display per unit ( front side rear)", - 1.06007067137809.SI (Of Ampere), 1.0, _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Customer Specific Equipment", - "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.3.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.4.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", - 0.723.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", - 0.17.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", - 1.2.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", - 0.3.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) - list.add(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", - 1.2.SI (Of Ampere), 1.0, - _powernetVoltage, 1, "")) + Dim _powernetVoltage = 26.3.SI (Of Volt) + Dim list As List(Of IElectricalConsumer) = New List(Of IElectricalConsumer)() + list.add(New ElectricalConsumer(False, "Doors", "Doors per vehicle", 3.0.SI (Of Ampere), 0.096339, + _powernetVoltage, 3, "")) + list.add(New ElectricalConsumer(True, "Veh Electronics &Engine", "Controllers,Valves etc", + 25.0.SI (Of Ampere), 1.0, _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio City", 2.0.SI (Of Ampere), 0.8, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio Intercity", 5.0.SI (Of Ampere), + 0.8, _powernetVoltage, 0, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Radio/Audio Tourism", + 9.0.SI (Of Ampere), 0.8, + _powernetVoltage, 0, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Fridge", 4.0.SI (Of Ampere), 0.5, + _powernetVoltage, 0, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Kitchen Standard", + 67.0.SI (Of Ampere), 0.05, _powernetVoltage, 0, "")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", + "Interior lights City/ Intercity + Doorlights [Should be 1/m]", + 1.0.SI (Of Ampere), 0.7, + _powernetVoltage, 12, "1 Per metre length of bus")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", + "LED Interior lights ceiling city/Intercity + door [Should be 1/m]", + 0.6.SI (Of Ampere), 0.7, + _powernetVoltage, 0, "1 Per metre length of bus")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", "Interior lights Tourism + reading [1/m]", + 1.1.SI (Of Ampere), 0.7, _powernetVoltage, 0, "1 Per metre length of bus")) + list.add(New ElectricalConsumer(False, "Vehicle basic equipment", + "LED Interior lights ceiling Tourism + LED reading [Should be 1/m]", + 0.66.SI (Of Ampere), 0.7, + _powernetVoltage, 0, "1 Per metre length of bus")) + list.add(New ElectricalConsumer(False, "Customer Specific Equipment", "External Displays Font/Side/Rear", + 2.65017667844523.SI (Of Ampere), 1.0, _powernetVoltage, 4, "")) + list.add(New ElectricalConsumer(False, "Customer Specific Equipment", + "Internal display per unit ( front side rear)", + 1.06007067137809.SI (Of Ampere), 1.0, _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Customer Specific Equipment", + "CityBus Ref EBSF Table4 Devices ITS No Displays", 9.3.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Exterior Lights BULB", 7.4.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Day running lights LED bonus", - 0.723.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Antifog rear lights LED bonus", - 0.17.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Position lights LED bonus", - 1.2.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Direction lights LED bonus", - 0.3.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) + list.add(New ElectricalConsumer(False, "Lights", "Brake Lights LED bonus", - 1.2.SI (Of Ampere), 1.0, + _powernetVoltage, 1, "")) - Return New ElectricalConsumerList(list) - End function + Return New ElectricalConsumerList(list) + End function Public Shared Function GetDefaultVehicleData(optional vehicleWeight As Kilogram = Nothing) as VehicleData - Return New VehicleData With { - .CurbWeight = If(vehicleWeight, 0.si(of Kilogram)), + Return New VehicleData With { + .CurbWeight = If(vehicleWeight, 0.si (of Kilogram)), .Length = 10.655.SI (Of Meter)(), .Width = 2.55.SI (Of Meter)(), .Height = 2.275.SI (of Meter)(), @@ -81,16 +80,44 @@ Public Class Utils } End Function - public Shared Function GetAuxTestConfig() as IAuxiliaryConfig - + public shared Function CreatePneumaticAuxConfig(retarder As boolean) As IPneumaticsConsumersDemand + + return new PneumaticsConsumersDemand() with { + .AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection, + .AirControlledSuspension = + Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension, + .Braking = If (retarder, Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder, + Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder), + .BreakingWithKneeling = + Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling, + .DeadVolBlowOuts = + Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts, + .DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume, + .NonSmartRegenFractionTotalAirDemand = + Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand, + .SmartRegenFractionTotalAirDemand = + Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand, + .OverrunUtilisationForCompressionFraction = + Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction, + .DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening, + .StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation + } + End function + + public Shared Function GetAuxTestConfig(Optional retarder As boolean = true) as IAuxiliaryConfig + Dim signals = New Signals() signals.EngineSpeed = 2000.RPMtoRad() dim vehicleData = GetDefaultVehicleData() - Dim heatingFuel As FuelData.Entry = New FuelData.Entry(FuelType.DieselCI, Nothing, Nothing,1, 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast(Of JoulePerKilogramm), 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast(Of JoulePerKilogramm)) + Dim heatingFuel As FuelData.Entry = New FuelData.Entry(FuelType.DieselCI, Nothing, Nothing, 1, + 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast _ + (Of JoulePerKilogramm), + 11.8.SI(Unit.SI.Kilo.Watt.Hour.Per.kilo.Gramm).Cast _ + (Of JoulePerKilogramm)) Dim retval = New AuxiliaryConfig() With { - .ElectricalUserInputsConfig = New ElectricsUserInputsConfig() With { + .ElectricalUserInputsConfig = New ElectricsUserInputsConfig() With { .ElectricalConsumers = GetElectricConsumers(), .ResultCardIdle = New ResultCard(New List(Of SmartResult)()), .ResultCardTraction = New ResultCard(New List(Of SmartResult)()), @@ -99,40 +126,42 @@ Public Class Utils .DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond, .PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage }, - .PneumaticAuxillariesConfig = DeclarationData.BusAuxiliaries.DefaultPneumaticAuxConfig, - .PneumaticUserInputsConfig = New PneumaticUserInputsConfig() With { + .PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(retarder), + .PneumaticUserInputsConfig = New PneumaticUserInputsConfig() With { .CompressorGearRatio = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearRatio, .CompressorGearEfficiency = Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency, .AdBlueDosing = ConsumerTechnology.Pneumatic, .AirSuspensionControl = ConsumerTechnology.Mechanically, .Doors = ConsumerTechnology.Pneumatic, - .KneelingHeightMillimeters = 70.SI(Unit.SI.Milli.Meter).Cast(Of Meter), - .RetarderBrake = True, + .KneelingHeightMillimeters = 70.SI(Unit.SI.Milli.Meter).Cast (Of Meter), .SmartAirCompression = False, .SmartRegeneration = False }, - .SSMInputs = New SSMInputs(vehicleData, Nothing, heatingFuel) With { + .SSMInputs = New SSMInputs(vehicleData, Nothing, heatingFuel) With { .Technologies = DeclarationData.BusAuxiliaries.SSMTechnologyList, - .DefaultConditions = New EnvironmentalConditionMapEntry(25.0.DegCelsiusToKelvin(), 400.SI(Of WattPerSquareMeter), 1.0), + .DefaultConditions = + New EnvironmentalConditionMapEntry(25.0.DegCelsiusToKelvin(), 400.SI (Of WattPerSquareMeter), 1.0), .EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions, .HeatingBoundaryTemperature = 18.0.DegCelsiusToKelvin(), .CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(), - .HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast(Of PerSecond), - .LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast(Of PerSecond), - .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast(Of JoulePerCubicMeter), + .HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond), + .LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast (Of PerSecond), + .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast (Of JoulePerCubicMeter), .CompressorType = ACCompressorType.TwoStage, - .CompressorCapacity = 18.si(Unit.SI.kilo.watt).Cast(of Watt), + .CompressorCapacity = 18.si(Unit.SI.kilo.watt).Cast (of Watt), .AuxHeaterEfficiency = 0.84, - .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast(Of Watt), + .FuelFiredHeaterPower = 30.SI(Unit.SI.kilo.watt).Cast (Of Watt), .FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant, - .CoolantHeatTransferredToAirCabinHeater = Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater, - .MaxPossibleBenefitFromTechnologyList = Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList - }, - .VehicleData = vehicleData, - .Signals = signals, - .ActuationsMap = ActuationsMapReader.Read("TestFiles/testPneumaticActuationsMap_GOODMAP.apac"), - .Cycle = "TESTCYCLE" - } + .CoolantHeatTransferredToAirCabinHeater = + Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater, + .MaxPossibleBenefitFromTechnologyList = + Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList + }, + .VehicleData = vehicleData, + .Signals = signals, + .ActuationsMap = ActuationsMapReader.Read("TestFiles/testPneumaticActuationsMap_GOODMAP.apac"), + .Cycle = "TESTCYCLE" + } Return retVal End Function End Class \ No newline at end of file diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs index c7e9627280de0582411f046abbaa37e7864b78c3..d887d5af8d6f3ab26df8daa8283ddc887e67a38e 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IAuxiliaryConfig.cs @@ -18,7 +18,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { // Pneumatics IPneumaticUserInputsConfig PneumaticUserInputsConfig { get; } - IPneumaticsAuxilliariesConfig PneumaticAuxillariesConfig { get; } + IPneumaticsConsumersDemand PneumaticAuxillariesConfig { get; } ISSMInputs SSMInputs { get; } diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs index a017978abc312dce67005949e2fd12d33f86c87b..62c73bf2f1c93d5901fdefb0998323543d2896d9 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticUserInputsConfig.cs @@ -9,10 +9,9 @@ namespace TUGraz.VectoCommon.BusAuxiliaries ICompressorMap CompressorMap { get; } double CompressorGearEfficiency { get; } double CompressorGearRatio { get; } - //Dictionary<ActuationsKey, int> ActuationsMap { get; } bool SmartAirCompression { get; } bool SmartRegeneration { get; } - bool RetarderBrake { get; } + //bool RetarderBrake { get; } Meter KneelingHeightMillimeters { get; } ConsumerTechnology AirSuspensionControl { get; } // mechanical or electrical ConsumerTechnology AdBlueDosing { get; } // pnmeumatic or electric diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs deleted file mode 100644 index 868d93643adc007a5da8089e6cb2eeda88403953..0000000000000000000000000000000000000000 --- a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsAuxilliariesConfig.cs +++ /dev/null @@ -1,20 +0,0 @@ -using TUGraz.VectoCommon.Utils; - -namespace TUGraz.VectoCommon.BusAuxiliaries { - public interface IPneumaticsAuxilliariesConfig - { - double OverrunUtilisationForCompressionFraction { get; } - NormLiterPerKilogram BrakingWithRetarderNIperKG { get; } - NormLiterPerKilogram BrakingNoRetarderNIperKG { get; } - NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM { get; } - NormLiter PerDoorOpeningNI { get; } - NormLiterPerKilogram PerStopBrakeActuationNIperKG { get; } - NormLiterPerSecond AirControlledSuspensionNIperMinute { get; } - NormLiterPerSecond AdBlueNIperMinute { get; } - double NonSmartRegenFractionTotalAirDemand { get; } - double SmartRegenFractionTotalAirDemand { get; } - NormLiter DeadVolumeLitres { get; } - // Nl / Nl / h => 1/h - PerSecond DeadVolBlowOutsPerLitresperHour { get; } - } -} diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs new file mode 100644 index 0000000000000000000000000000000000000000..5c7ad100c8dd84f5955e720d7465a8470378e1be --- /dev/null +++ b/VectoCommon/VectoCommon/BusAuxiliaries/IPneumaticsConsumersDemand.cs @@ -0,0 +1,20 @@ +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCommon.BusAuxiliaries { + public interface IPneumaticsConsumersDemand + { + double OverrunUtilisationForCompressionFraction { get; } + //NormLiterPerKilogram BrakingWithRetarderNIperKG { get; } + NormLiterPerKilogram Braking { get; } + NormLiterPerKilogramMeter BreakingWithKneeling { get; } + NormLiter DoorOpening { get; } + NormLiterPerKilogram StopBrakeActuation { get; } + NormLiterPerSecond AirControlledSuspension { get; } + NormLiterPerSecond AdBlueInjection { get; } + double NonSmartRegenFractionTotalAirDemand { get; } + double SmartRegenFractionTotalAirDemand { get; } + NormLiter DeadVolume { get; } + // Nl / Nl / h => 1/h + PerSecond DeadVolBlowOuts { get; } + } +} diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj index a45bad7a108bdbf368fbd6940684ec60ca69e125..707db66816a74580ae0062e46865ffc63150cf45 100644 --- a/VectoCommon/VectoCommon/VectoCommon.csproj +++ b/VectoCommon/VectoCommon/VectoCommon.csproj @@ -67,7 +67,7 @@ <Compile Include="BusAuxiliaries\IHVACConstants.cs" /> <Compile Include="BusAuxiliaries\IHVACUserInputsConfig.cs" /> <Compile Include="BusAuxiliaries\IActuationsMap.cs" /> - <Compile Include="BusAuxiliaries\IPneumaticsAuxilliariesConfig.cs" /> + <Compile Include="BusAuxiliaries\IPneumaticsConsumersDemand.cs" /> <Compile Include="BusAuxiliaries\IPneumaticUserInputsConfig.cs" /> <Compile Include="BusAuxiliaries\IResultCard.cs" /> <Compile Include="BusAuxiliaries\ISignals.cs" /> diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs index 221c32b5decef20b871cbddb6589081d0ae7ddd9..1640f234b0774fca4f4c68d7f9ced890779f09da 100644 --- a/VectoCore/VectoCore/Configuration/Constants.cs +++ b/VectoCore/VectoCore/Configuration/Constants.cs @@ -138,33 +138,34 @@ namespace TUGraz.VectoCore.Configuration public static readonly Second DoorActuationTimeSecond = 4.SI<Second>(); } - public static class PneumaticAuxDemands + public static class PneumaticConsumersDemands { - public static readonly NormLiterPerSecond AdBlueNIperMinute = + public static readonly NormLiterPerSecond AdBlueInjection = 21.25.SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(); - public static readonly NormLiterPerSecond AirControlledSuspensionNIperMinute = + public static readonly NormLiterPerSecond AirControlledSuspension = 15.SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(); - public static readonly NormLiterPerKilogram BrakingNoRetarderNIperKG = + public static readonly NormLiterPerKilogram BrakingNoRetarder = 0.00081.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); - public static readonly NormLiterPerKilogram BrakingWithRetarderNIperKG = + public static readonly NormLiterPerKilogram BrakingWithRetarder = 0.0006.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); - public static readonly NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM = + public static readonly NormLiterPerKilogramMeter BreakingAndKneeling = 0.000066.SI(Unit.SI.Liter.Per.Kilo.Gramm.Milli.Meter).Cast<NormLiterPerKilogramMeter>(); - public static readonly PerSecond DeadVolBlowOutsPerLitresperHour = 24.SI(Unit.SI.Per.Hour).Cast<PerSecond>(); - public static readonly NormLiter DeadVolumeLitres = 30.SI<NormLiter>(); + // Nl (blowout) / Nl (DeadVolume) / h -> 1/s + public static readonly PerSecond DeadVolBlowOuts = 24.SI(Unit.SI.Per.Hour).Cast<PerSecond>(); + public static readonly NormLiter DeadVolume = 30.SI<NormLiter>(); public static readonly double NonSmartRegenFractionTotalAirDemand = 0.26; + public static readonly double SmartRegenFractionTotalAirDemand = 0.12; public static readonly double OverrunUtilisationForCompressionFraction = 0.97; - public static readonly NormLiter PerDoorOpeningNI = 12.7.SI<NormLiter>(); + public static readonly NormLiter DoorOpening = 12.7.SI<NormLiter>(); - public static readonly NormLiterPerKilogram PerStopBrakeActuationNIperKG = + public static readonly NormLiterPerKilogram StopBrakeActuation = 0.00064.SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); - public static readonly double SmartRegenFractionTotalAirDemand = 0.12; } public static class PneumaticUserConfig diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs index 16a878d433cf9ef5aa0029298ce9f05931210278..ee4ee701b55662e630d7af666df44ed4ed746904 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs @@ -108,27 +108,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON return electricalUserInputsConfig; } - private static IPneumaticsAuxilliariesConfig LoadPneumaticsAuxConfig(JObject paData, string baseDir) + private static IPneumaticsConsumersDemand LoadPneumaticsAuxConfig(JObject paData, string baseDir) { - var pneumaticAuxillariesConfig = new PneumaticsAuxilliariesConfig(); - pneumaticAuxillariesConfig.AdBlueNIperMinute = + var pneumaticAuxillariesConfig = new PneumaticsConsumersDemand(); + pneumaticAuxillariesConfig.AdBlueInjection = paData.GetEx<double>("AdBlueNIperMinute").SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(); - pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute = + pneumaticAuxillariesConfig.AirControlledSuspension = paData.GetEx<double>("AirControlledSuspensionNIperMinute").SI(Unit.SI.Liter.Per.Minute).Cast<NormLiterPerSecond>(); - pneumaticAuxillariesConfig.BrakingNoRetarderNIperKG = paData - .GetEx<double>("BrakingNoRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); - pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG = paData - .GetEx<double>("BrakingWithRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); - pneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM = paData + pneumaticAuxillariesConfig.Braking = paData + .GetEx<double>("BrakingNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); + //pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG = paData + //.GetEx<double>("BrakingWithRetarderNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); + pneumaticAuxillariesConfig.BreakingWithKneeling = paData .GetEx<double>("BreakingPerKneelingNIperKGinMM").SI(Unit.SI.Liter.Per.Kilo.Gramm.Milli.Meter) .Cast<NormLiterPerKilogramMeter>(); - pneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour = + pneumaticAuxillariesConfig.DeadVolBlowOuts = paData.GetEx<double>("DeadVolBlowOutsPerLitresperHour").SI(Unit.SI.Per.Hour).Cast<PerSecond>(); - pneumaticAuxillariesConfig.DeadVolumeLitres = paData.GetEx<double>("DeadVolumeLitres").SI<NormLiter>(); + pneumaticAuxillariesConfig.DeadVolume = paData.GetEx<double>("DeadVolumeLitres").SI<NormLiter>(); pneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand = paData.GetEx<double>("NonSmartRegenFractionTotalAirDemand"); - pneumaticAuxillariesConfig.PerDoorOpeningNI = paData.GetEx<double>("PerDoorOpeningNI").SI<NormLiter>(); - pneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG = paData + pneumaticAuxillariesConfig.DoorOpening = paData.GetEx<double>("PerDoorOpeningNI").SI<NormLiter>(); + pneumaticAuxillariesConfig.StopBrakeActuation = paData .GetEx<double>("PerStopBrakeActuationNIperKG").SI(Unit.SI.Liter.Per.Kilo.Gramm).Cast<NormLiterPerKilogram>(); pneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand = paData.GetEx<double>("SmartRegenFractionTotalAirDemand"); @@ -153,7 +153,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON pneumaticUserInputsConfig.Doors = puData.GetEx<string>("Doors").ParseEnum<ConsumerTechnology>(); pneumaticUserInputsConfig.KneelingHeightMillimeters = puData.GetEx<double>("KneelingHeightMillimeters").SI(Unit.SI.Milli.Meter).Cast<Meter>(); - pneumaticUserInputsConfig.RetarderBrake = puData.GetEx<bool>("RetarderBrake"); + //pneumaticUserInputsConfig.RetarderBrake = puData.GetEx<bool>("RetarderBrake"); pneumaticUserInputsConfig.SmartAirCompression = puData.GetEx<bool>("SmartAirCompression"); pneumaticUserInputsConfig.SmartRegeneration = puData.GetEx<bool>("SmartRegeneration"); return pneumaticUserInputsConfig; diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index 9469d38e77a6f88c82895fab6ff2af4f14b4992d..06754a3ee9f64cf11a729f1a86d3a9633030542b 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -40,6 +40,7 @@ using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; +using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data; @@ -70,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter MinSpeed = DeclarationData.Driver.OverSpeed.MinSpeed, OverSpeed = DeclarationData.Driver.OverSpeed.AllowedOverSpeed, }; - + var retVal = new DriverData { LookAheadCoasting = lookAheadData, OverSpeed = overspeedData, @@ -80,8 +81,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter UtilityFactor = DeclarationData.Driver.EngineStopStart.UtilityFactor, }, EcoRoll = new DriverData.EcoRollData() { - UnderspeedThreshold = DeclarationData.Driver.EcoRoll.UnderspeedThreshold, - MinSpeed = DeclarationData.Driver.EcoRoll.MinSpeed, + UnderspeedThreshold = DeclarationData.Driver.EcoRoll.UnderspeedThreshold, + MinSpeed = DeclarationData.Driver.EcoRoll.MinSpeed, ActivationPhaseDuration = DeclarationData.Driver.EcoRoll.ActivationDelay, AccelerationLowerLimit = DeclarationData.Driver.EcoRoll.AccelerationLowerLimit, AccelerationUpperLimit = DeclarationData.Driver.EcoRoll.AccelerationUpperLimit, @@ -124,11 +125,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter retVal.VocationalVehicle = data.VocationalVehicle; retVal.ADAS = CreateADAS(data.ADAS); + // eco-roll is not allowed for MT transmissions! if (retVal.ADAS.EcoRoll != EcoRollType.None && data.Components.GearboxInputData.Type == GearboxType.MT) { retVal.ADAS.EcoRoll = EcoRollType.None; } - if (retVal.ADAS.EcoRoll == EcoRollType.WithEngineStop && data.Components.GearboxInputData.Type.AutomaticTransmission()) { + if (retVal.ADAS.EcoRoll == EcoRollType.WithEngineStop && + data.Components.GearboxInputData.Type.AutomaticTransmission()) { retVal.ADAS.EcoRoll = EcoRollType.WithoutEngineStop; } @@ -174,7 +177,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return retVal; } - private VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data) { @@ -191,7 +193,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter } - internal CombustionEngineData CreateEngineData(IVehicleDeclarationInputData vehicle, IEngineModeDeclarationInputData mode, Mission mission) + internal CombustionEngineData CreateEngineData( + IVehicleDeclarationInputData vehicle, IEngineModeDeclarationInputData mode, Mission mission) { var engine = vehicle.Components.EngineInputData; var gearbox = vehicle.Components.GearboxInputData; @@ -203,22 +206,21 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var retVal = SetCommonCombustionEngineData(engine, vehicle.TankSystem); retVal.IdleSpeed = VectoMath.Max(mode.IdleSpeed, vehicle.EngineIdleSpeed); - - retVal.Fuels = new List<CombustionEngineFuelData>(); foreach (var fuel in mode.Fuels) { - retVal.Fuels.Add(new CombustionEngineFuelData() { - WHTCUrban = fuel.WHTCUrban, - WHTCRural = fuel.WHTCRural, - WHTCMotorway = fuel.WHTCMotorway, - ColdHotCorrectionFactor = fuel.ColdHotBalancingFactor, - CorrectionFactorRegPer = fuel.CorrectionFactorRegPer, - FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicle.TankSystem), - ConsumptionMap = FuelConsumptionMapReader.Create(fuel.FuelConsumptionMap), - FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup( - mission.MissionType.GetNonEMSMissionType(), fuel.WHTCRural, fuel.WHTCUrban, - fuel.WHTCMotorway) * fuel.ColdHotBalancingFactor * fuel.CorrectionFactorRegPer, - }); + retVal.Fuels.Add( + new CombustionEngineFuelData() { + WHTCUrban = fuel.WHTCUrban, + WHTCRural = fuel.WHTCRural, + WHTCMotorway = fuel.WHTCMotorway, + ColdHotCorrectionFactor = fuel.ColdHotBalancingFactor, + CorrectionFactorRegPer = fuel.CorrectionFactorRegPer, + FuelData = DeclarationData.FuelData.Lookup(fuel.FuelType, vehicle.TankSystem), + ConsumptionMap = FuelConsumptionMapReader.Create(fuel.FuelConsumptionMap), + FuelConsumptionCorrectionFactor = DeclarationData.WHTCCorrection.Lookup( + mission.MissionType.GetNonEMSMissionType(), fuel.WHTCRural, fuel.WHTCUrban, + fuel.WHTCMotorway) * fuel.ColdHotBalancingFactor * fuel.CorrectionFactorRegPer, + }); } retVal.Inertia = DeclarationData.Engine.EngineInertia(retVal.Displacement, gearbox.Type); @@ -240,8 +242,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var whr = CreateWHRData(mode.WasteHeatRecoveryData); if (whr != null) { whr.WHRCorrectionFactor = DeclarationData.WHTCCorrection.Lookup( - mission.MissionType.GetNonEMSMissionType(), whr.CFRural, whr.CFUrban, - whr.CFMotorway) * whr.CFColdHot * whr.CFRegPer; + mission.MissionType.GetNonEMSMissionType(), whr.CFRural, whr.CFUrban, + whr.CFMotorway) * whr.CFColdHot * whr.CFRegPer; } retVal.WHRData = whr; @@ -620,6 +622,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter HighVentilation = Constants.BusAuxiliaries.SteadyStateModel.HighVentilation, LowVentilation = Constants.BusAuxiliaries.SteadyStateModel.LowVentilation, SpecificVentilationPower = Constants.BusAuxiliaries.SteadyStateModel.SpecificVentilationPower, + // TODO! MQ 2019-19-29 Compressor Type and CompressorCapacity from input data? CompressorType = ACCompressorType.TwoStage, // "2-stage", CompressorCapacity = 18.SI(Unit.SI.Kilo.Watt).Cast<Watt>(), @@ -629,14 +632,34 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter FuelEnergyToHeatToCoolant = Constants.BusAuxiliaries.Heater.FuelEnergyToHeatToCoolant, CoolantHeatTransferredToAirCabinHeater = Constants.BusAuxiliaries.Heater.CoolantHeatTransferredToAirCabinHeater, GFactor = Constants.BusAuxiliaries.SteadyStateModel.GFactor, - VentilationOnDuringHeating = true, + VentilationOnDuringHeating = true, VentilationWhenBothHeatingAndACInactive = true, VentilationDuringAC = true, VentilationDuringHeating = VentilationLevel.High, VentilationDuringCooling = VentilationLevel.High, VentilationFlowSettingWhenHeatingAndACInactive = VentilationLevel.High, - MaxPossibleBenefitFromTechnologyList = Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList, - }; + MaxPossibleBenefitFromTechnologyList = + Constants.BusAuxiliaries.SteadyStateModel.MaxPossibleBenefitFromTechnologyList, + }; + } + + public IPneumaticsConsumersDemand CreatePneumaticAuxConfig(RetarderType retarderType) + { + return new PneumaticsConsumersDemand() { + AdBlueInjection = Constants.BusAuxiliaries.PneumaticConsumersDemands.AdBlueInjection, + AirControlledSuspension = Constants.BusAuxiliaries.PneumaticConsumersDemands.AirControlledSuspension, + Braking = retarderType == RetarderType.None ? + Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingNoRetarder : + Constants.BusAuxiliaries.PneumaticConsumersDemands.BrakingWithRetarder, + BreakingWithKneeling = Constants.BusAuxiliaries.PneumaticConsumersDemands.BreakingAndKneeling, + DeadVolBlowOuts = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolBlowOuts, + DeadVolume = Constants.BusAuxiliaries.PneumaticConsumersDemands.DeadVolume, + NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.NonSmartRegenFractionTotalAirDemand, + SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticConsumersDemands.SmartRegenFractionTotalAirDemand, + OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticConsumersDemands.OverrunUtilisationForCompressionFraction, + DoorOpening = Constants.BusAuxiliaries.PneumaticConsumersDemands.DoorOpening, + StopBrakeActuation = Constants.BusAuxiliaries.PneumaticConsumersDemands.StopBrakeActuation, + }; } } } diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs index 0366d4a8e7e92d297b8f1aab2740e110024655e4..696df4a5cf2f0a0c9ee108f353afbb81f91c01d2 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/AuxiliaryConfig.cs @@ -24,7 +24,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries { // Pneumatics public IPneumaticUserInputsConfig PneumaticUserInputsConfig { get; internal set; } - public IPneumaticsAuxilliariesConfig PneumaticAuxillariesConfig { get; internal set; } + public IPneumaticsConsumersDemand PneumaticAuxillariesConfig { get; internal set; } public ISSMInputs SSMInputs { get; internal set; } @@ -113,40 +113,40 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries { private bool ComparePneumaticAuxiliariesConfig(IAuxiliaryConfig other) { - if (PneumaticAuxillariesConfig.AdBlueNIperMinute != other.PneumaticAuxillariesConfig.AdBlueNIperMinute) { + if (PneumaticAuxillariesConfig.AdBlueInjection != other.PneumaticAuxillariesConfig.AdBlueInjection) { return false; } - if (PneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute != - other.PneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute) { + if (PneumaticAuxillariesConfig.AirControlledSuspension != + other.PneumaticAuxillariesConfig.AirControlledSuspension) { return false; } - if (PneumaticAuxillariesConfig.BrakingNoRetarderNIperKG != other.PneumaticAuxillariesConfig.BrakingNoRetarderNIperKG) { + if (PneumaticAuxillariesConfig.Braking != other.PneumaticAuxillariesConfig.Braking) { return false; } - if (PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG != - other.PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG) { - return false; - } - if (PneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM != - other.PneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM) { + //if (PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG != + // other.PneumaticAuxillariesConfig.BrakingWithRetarderNIperKG) { + // return false; + //} + if (PneumaticAuxillariesConfig.BreakingWithKneeling != + other.PneumaticAuxillariesConfig.BreakingWithKneeling) { return false; } - if (PneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour != - other.PneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour) { + if (PneumaticAuxillariesConfig.DeadVolBlowOuts != + other.PneumaticAuxillariesConfig.DeadVolBlowOuts) { return false; } - if (PneumaticAuxillariesConfig.DeadVolumeLitres != other.PneumaticAuxillariesConfig.DeadVolumeLitres) { + if (PneumaticAuxillariesConfig.DeadVolume != other.PneumaticAuxillariesConfig.DeadVolume) { return false; } if (PneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand != other.PneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand) { return false; } - if (PneumaticAuxillariesConfig.PerDoorOpeningNI != other.PneumaticAuxillariesConfig.PerDoorOpeningNI) { + if (PneumaticAuxillariesConfig.DoorOpening != other.PneumaticAuxillariesConfig.DoorOpening) { return false; } - if (PneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG != - other.PneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG) { + if (PneumaticAuxillariesConfig.StopBrakeActuation != + other.PneumaticAuxillariesConfig.StopBrakeActuation) { return false; } if (PneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand != @@ -165,26 +165,36 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries { { //if (PneumaticUserInputsConfig.ActuationsMap != other.PneumaticUserInputsConfig.ActuationsMap) // return false; - if (PneumaticUserInputsConfig.AdBlueDosing != other.PneumaticUserInputsConfig.AdBlueDosing) + if (PneumaticUserInputsConfig.AdBlueDosing != other.PneumaticUserInputsConfig.AdBlueDosing) { return false; - if (PneumaticUserInputsConfig.AirSuspensionControl != other.PneumaticUserInputsConfig.AirSuspensionControl) - return false; - if (PneumaticUserInputsConfig.CompressorGearEfficiency != other.PneumaticUserInputsConfig.CompressorGearEfficiency) + } + if (PneumaticUserInputsConfig.AirSuspensionControl != other.PneumaticUserInputsConfig.AirSuspensionControl) { return false; - if (PneumaticUserInputsConfig.CompressorGearRatio != other.PneumaticUserInputsConfig.CompressorGearRatio) + } + if (PneumaticUserInputsConfig.CompressorGearEfficiency != other.PneumaticUserInputsConfig.CompressorGearEfficiency) { return false; - if (PneumaticUserInputsConfig.CompressorMap != other.PneumaticUserInputsConfig.CompressorMap) + } + if (PneumaticUserInputsConfig.CompressorGearRatio != other.PneumaticUserInputsConfig.CompressorGearRatio) { return false; - if (PneumaticUserInputsConfig.Doors != other.PneumaticUserInputsConfig.Doors) + } + if (PneumaticUserInputsConfig.CompressorMap != other.PneumaticUserInputsConfig.CompressorMap) { return false; - if (PneumaticUserInputsConfig.KneelingHeightMillimeters != other.PneumaticUserInputsConfig.KneelingHeightMillimeters) + } + if (PneumaticUserInputsConfig.Doors != other.PneumaticUserInputsConfig.Doors) { return false; - if (PneumaticUserInputsConfig.RetarderBrake != other.PneumaticUserInputsConfig.RetarderBrake) + } + if (PneumaticUserInputsConfig.KneelingHeightMillimeters != other.PneumaticUserInputsConfig.KneelingHeightMillimeters) { return false; - if (PneumaticUserInputsConfig.SmartAirCompression != other.PneumaticUserInputsConfig.SmartAirCompression) + } + + //if (PneumaticUserInputsConfig.RetarderBrake != other.PneumaticUserInputsConfig.RetarderBrake) + // return false; + if (PneumaticUserInputsConfig.SmartAirCompression != other.PneumaticUserInputsConfig.SmartAirCompression) { return false; - if (PneumaticUserInputsConfig.SmartRegeneration != other.PneumaticUserInputsConfig.SmartRegeneration) + } + if (PneumaticUserInputsConfig.SmartRegeneration != other.PneumaticUserInputsConfig.SmartRegeneration) { return false; + } return true; } @@ -192,12 +202,16 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries { public bool ConfigValuesAreTheSameAs(IAuxiliaryConfig other) { - if (!CompareElectricalConfiguration(other)) + if (!CompareElectricalConfiguration(other)) { return false; - if (!ComparePneumaticAuxiliariesConfig(other)) + } + if (!ComparePneumaticAuxiliariesConfig(other)) { return false; - if (!ComparePneumaticUserConfig(other)) + } + if (!ComparePneumaticUserConfig(other)) { return false; + } + //if (!CompareHVACConfig(other)) // return false; diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs index c788f3c219fc7fb538704f9a03657cc34d91d31d..45cefda3c5da9ba016557580b99ef9e63fef9312 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs @@ -375,8 +375,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC var gen = ssmTOOL.SSMInputs; var tl = ssmTOOL.TechList; - double result; - + // Dim TLR92 As Double = tl.CValueVariation 'TECH LIST INPUT'!R92 // Dim C43 As Double = gen.BC_MaxPossibleBenefitFromTechnologyList // Dim C53 As string = gen.AC_CompressorType @@ -387,17 +386,13 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC // Math.Max(If(gen.AC_CompressorType.ToLower() = "mechanical", tl.CValueVariation, 0), // -gen.BC_MaxPossibleBenefitFromTechnologyList)) - result = (gen.ACSystem.CompressorType.IsMechanical() - ? tl.CValueVariation - : 0) > 0 - ? Math.Min( - gen.ACSystem.CompressorType.IsMechanical() ? tl.CValueVariation : 0, - gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList) - : Math.Max( - gen.ACSystem.CompressorType.IsMechanical() ? tl.CValueVariation : 0, - -gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList); - - return result; + if (gen.ACSystem.CompressorType.IsElectrical()) { + return 0; + } + + return tl.CValueVariation.LimitTo( + -gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList, + gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList); } } @@ -408,23 +403,18 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC var gen = ssmTOOL.SSMInputs; var tl = ssmTOOL.TechList; - double result; - + // Dim TLR92 As Double = tl.CValueVariation 'TECH LIST INPUT'!R92 // Dim C43 As Double = gen.BC_MaxPossibleBenefitFromTechnologyList // Dim C53 As string = gen.AC_CompressorType - result = gen.ACSystem.CompressorType.IsMechanical() - ? 0 - : tl.CValueVariation > 0 - ? Math.Min( - gen.ACSystem.CompressorType.IsMechanical() ? 0 : tl.CValueVariation, - gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList) - : Math.Max( - gen.ACSystem.CompressorType.IsMechanical() ? 0 : tl.CValueVariation, - -gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList); - - return result; + if (gen.ACSystem.CompressorType.IsMechanical()) { + return 0; + } + + return tl.CValueVariation.LimitTo( + -gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList, + gen.BoundaryConditions.MaxPossibleBenefitFromTechnologyList); } } @@ -523,55 +513,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC sb.AppendLine(Run1.ToString()); sb.AppendLine(Run2.ToString()); - //// Staging Calcs - //sb.AppendLine("Staging Base Values"); - //sb.AppendLine("*******************"); - //sb.AppendLine( - // vbTab + vbTab + vbTab + "Mechanical" + vbTab + "Elec Cool/Heat" + vbTab + "Elec Vent" + vbTab + - // "Fuel Fired Heating"); - - //sb.AppendLine( - // string.Format( - // "Heating {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseHeatingW_Mechanical.Value().ToString("0.00"), - // BaseHeatingW_ElectricalCoolingHeating.Value().ToString("0.00"), - // BaseHeatingW_ElectricalVentilation.Value().ToString("0.00"), - // BaseHeatingW_FuelFiredHeating.Value().ToString("0.00"))); - //sb.AppendLine( - // string.Format( - // "Cooling {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseCoolingW_Mechanical.Value().ToString("0.00"), - // BaseCoolingW_ElectricalCoolingHeating.Value().ToString("0.00"), - // BaseCoolingW_ElectricalVentilation.Value().ToString("0.00"), - // BaseCoolingW_FuelFiredHeating.Value().ToString("0.00"))); - //sb.AppendLine( - // string.Format( - // "Ventilate {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, BaseVentilationW_Mechanical.Value().ToString("0.00"), - // BaseVentilationW_ElectricalCoolingHeating.Value().ToString("0.00"), - // BaseVentilationW_ElectricalVentilation.Value().ToString("0.00"), - // BaseVentilationW_FuelFiredHeating.Value().ToString("0.00"))); - - //sb.AppendLine(""); - //sb.AppendLine("Staging Adjusted Values"); - //sb.AppendLine("***********************"); - - //sb.AppendLine( - // string.Format( - // "Heating {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedHeatingW_Mechanical.ToString("0.00"), - // TechListAdjustedHeatingW_ElectricalCoolingHeating.ToString("0.00"), - // TechListAdjustedHeatingW_ElectricalVentilation.ToString("0.00"), - // TechListAdjustedHeatingW_FuelFiredHeating.ToString("0.00"))); - //sb.AppendLine( - // string.Format( - // "Cooling {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedCoolingW_Mechanical.ToString("0.00"), - // TechListAdjustedCoolingW_ElectricalCoolingHeating.ToString("0.00"), - // TechListAdjustedCoolingW_ElectricalVentilation.ToString("0.00"), - // TechListAdjustedCoolingW_FuelFiredHeating.ToString("0.00"))); - //sb.AppendLine( - // string.Format( - // "Ventilate {0}{1}{0}{2}{0}{3}{0}{4}", vbTab + vbTab, TechListAdjustedVentilationW_Mechanical.ToString("0.00"), - // TechListAdjustedVentilationW_ElectricalCoolingHeating.ToString("0.00"), - // TechListAdjustedVentilationW_ElectricalVentilation.ToString("0.00"), - // TechListAdjustedVentilationW_FuelFiredHeating.ToString("0.00"))); - + return sb.ToString(); } diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs index f76f762ea418e85ec5372b15eab4344efffe021a..177c98d58901aa84ce8d045d53e316e658cf76d9 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/M09Impl.cs @@ -29,10 +29,10 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl protected readonly IM6 M6; protected readonly IM8 M8; protected readonly IFuelConsumptionMap FMAP; - protected readonly IPneumaticsAuxilliariesConfig PSAC; + protected readonly IPneumaticsConsumersDemand PSAC; protected readonly ISignals Signals; - public M09Impl(IM1_AverageHVACLoadDemand m1, IM4_AirCompressor m4, IM6 m6, IM8 m8, IFuelConsumptionMap fmap, IPneumaticsAuxilliariesConfig psac, ISignals signals) + public M09Impl(IM1_AverageHVACLoadDemand m1, IM4_AirCompressor m4, IM6 m6, IM8 m8, IFuelConsumptionMap fmap, IPneumaticsConsumersDemand psac, ISignals signals) { M1 = m1; M4 = m4; diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs index 99841a3316ef63e3cc56c40f195936a8eee9a330..2ae3b292be40cf3477e6e29b09b7c04f3b2320d4 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/M03Impl.cs @@ -8,7 +8,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati public class M03Impl : AbstractModule, IM3_AveragePneumaticLoadDemand { protected IPneumaticUserInputsConfig _pneumaticUserInputsConfig; - protected IPneumaticsAuxilliariesConfig _pneumaticAuxillariesConfig; + protected IPneumaticsConsumersDemand _pneumaticAuxillariesConfig; protected IActuationsMap ActuationsMap; protected ICompressorMap _pneumaticsCompressorFlowRateMap; protected Kilogram _vehicleMassKG; @@ -45,9 +45,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati //'* * Breaks * * double numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Brakes", _cycleName)); //'=IF(K10 = "yes", IF(COUNTBLANK(F33), G33, F33), IF(COUNTBLANK(F34), G34, F34)) * K16 - var airConsumptionPerActuation = (_pneumaticUserInputsConfig.RetarderBrake - ? _pneumaticAuxillariesConfig.BrakingWithRetarderNIperKG - : _pneumaticAuxillariesConfig.BrakingNoRetarderNIperKG) * _vehicleMassKG; + var airConsumptionPerActuation = _pneumaticAuxillariesConfig.Braking * _vehicleMassKG; var breaks = numActuationsPerCycle * airConsumptionPerActuation ; //'* * ParkBrakesBreakplus2Doors * *Park break +2 doors @@ -56,14 +54,14 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati //'=SUM(IF(K14 = "electric", 0, IF(COUNTBLANK(F36), G36, F36)), PRODUCT(K16 * IF(COUNTBLANK(F37), G37, F37))) airConsumptionPerActuation = _pneumaticUserInputsConfig.Doors == ConsumerTechnology.Electrically ? 0.SI<NormLiter>() - : _pneumaticAuxillariesConfig.PerDoorOpeningNI; - airConsumptionPerActuation += _pneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG * _vehicleMassKG; + : _pneumaticAuxillariesConfig.DoorOpening; + airConsumptionPerActuation += _pneumaticAuxillariesConfig.StopBrakeActuation * _vehicleMassKG; var parkBrakesplus2Doors = (numActuationsPerCycle * airConsumptionPerActuation); //'* * Kneeling * * numActuationsPerCycle = ActuationsMap.GetNumActuations(new ActuationsKey("Kneeling", _cycleName)); //'=IF(COUNTBLANK(F35), G35, F35) * K11 * K16 - airConsumptionPerActuation = _pneumaticAuxillariesConfig.BreakingPerKneelingNIperKGinMM * + airConsumptionPerActuation = _pneumaticAuxillariesConfig.BreakingWithKneeling * _pneumaticUserInputsConfig.KneelingHeightMillimeters * _vehicleMassKG; var kneeling = (numActuationsPerCycle * airConsumptionPerActuation); @@ -71,7 +69,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati // '=IF(K13 = "electric", 0, G39 * F54) - Supplied Spreadsheet var adBlue = _pneumaticUserInputsConfig.AdBlueDosing == ConsumerTechnology.Electrically ? 0.SI<NormLiter>() - : _pneumaticAuxillariesConfig.AdBlueNIperMinute * totalCycleTimeSeconds; + : _pneumaticAuxillariesConfig.AdBlueInjection * totalCycleTimeSeconds; //'* * Regeneration * * // '=SUM(R6: R9) * IF(K9 = "yes", IF(COUNTBLANK(F41), G41, F41), IF(COUNTBLANK(F40), G40, F40)) - Supplied SpreadSheet @@ -84,15 +82,15 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati //'* * DeadVolBlowOuts * * // '=IF(COUNTBLANK(F43), G43, F43) / (F54 / 60) - Supplied SpreadSheet //numActuationsPerCycle =; - airConsumptionPerActuation = _pneumaticAuxillariesConfig.DeadVolumeLitres; - var deadVolBlowOuts = (airConsumptionPerActuation * _pneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour * + airConsumptionPerActuation = _pneumaticAuxillariesConfig.DeadVolume; + var deadVolBlowOuts = (airConsumptionPerActuation * _pneumaticAuxillariesConfig.DeadVolBlowOuts * totalCycleTimeSeconds).Cast<NormLiter>(); //'* * AirSuspension * * // '=IF(K12 = "electrically", 0, G38 * F54) - Suplied Spreadsheet var airSuspension = _pneumaticUserInputsConfig.AirSuspensionControl == ConsumerTechnology.Electrically ? 0.SI<NormLiter>() - : _pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute * totalCycleTimeSeconds; + : _pneumaticAuxillariesConfig.AirControlledSuspension * totalCycleTimeSeconds; //'* * Total Air Demand** var totalAirDemand = breaks + parkBrakesplus2Doors + kneeling + adBlue + regeneration + deadVolBlowOuts + diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs index 961db5b3c81ba805e6cf97729b25618ce1a4e142..79721f4f801f733e38c313684cdf7b7319f9a21f 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticUserInputsConfig.cs @@ -30,7 +30,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumati public ConsumerTechnology Doors { get; set; } public Meter KneelingHeightMillimeters { get; set; } - public bool RetarderBrake { get; set; } + //public bool RetarderBrake { get; set; } public bool SmartAirCompression { get; set; } public bool SmartRegeneration { get; set; } } diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs similarity index 57% rename from VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs rename to VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs index b378d19b0efd906681cc0c4c12b03c13c510c56e..b9f68b70abe824a7d17785998a7ac140aabf7a6e 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsAuxilliariesConfig.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/Pneumatics/PneumaticsConsumersDemand.cs @@ -14,29 +14,28 @@ using TUGraz.VectoCommon.Utils; namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics { - public class PneumaticsAuxilliariesConfig : IPneumaticsAuxilliariesConfig + public class PneumaticsConsumersDemand : IPneumaticsConsumersDemand { - public NormLiterPerSecond AdBlueNIperMinute { get; set; } + public NormLiterPerSecond AdBlueInjection { get; set; } - public NormLiterPerSecond AirControlledSuspensionNIperMinute { get; set; } + public NormLiterPerSecond AirControlledSuspension { get; set; } - public NormLiterPerKilogram BrakingNoRetarderNIperKG { get; set; } + public NormLiterPerKilogram Braking { get; set; } - public NormLiterPerKilogram BrakingWithRetarderNIperKG { get; set; } + public NormLiterPerKilogramMeter BreakingWithKneeling { get; set; } - public NormLiterPerKilogramMeter BreakingPerKneelingNIperKGinMM { get; set; } + // Nl/Nl/h => 1/s + public PerSecond DeadVolBlowOuts { get; set; } - public PerSecond DeadVolBlowOutsPerLitresperHour { get; set; } - - public NormLiter DeadVolumeLitres { get; set; } + public NormLiter DeadVolume { get; set; } public double NonSmartRegenFractionTotalAirDemand { get; set; } public double OverrunUtilisationForCompressionFraction { get; set; } - public NormLiter PerDoorOpeningNI { get; set; } + public NormLiter DoorOpening { get; set; } - public NormLiterPerKilogram PerStopBrakeActuationNIperKG { get; set; } + public NormLiterPerKilogram StopBrakeActuation { get; set; } public double SmartRegenFractionTotalAirDemand { get; set; } diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index ad5d2c48750df4a8e70bcda1d7a7d5065489a31e..10e361fa392be017cb7431b3fbc6c9b4a2a41870 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -176,26 +176,7 @@ namespace TUGraz.VectoCore.Models.Declaration } } - public static IPneumaticsAuxilliariesConfig DefaultPneumaticAuxConfig - { - get { - return new PneumaticsAuxilliariesConfig() { - AdBlueNIperMinute = Constants.BusAuxiliaries.PneumaticAuxDemands.AdBlueNIperMinute, - AirControlledSuspensionNIperMinute = Constants.BusAuxiliaries.PneumaticAuxDemands.AirControlledSuspensionNIperMinute, - BrakingNoRetarderNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.BrakingNoRetarderNIperKG, - BrakingWithRetarderNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.BrakingWithRetarderNIperKG, - BreakingPerKneelingNIperKGinMM = Constants.BusAuxiliaries.PneumaticAuxDemands.BreakingPerKneelingNIperKGinMM, - DeadVolBlowOutsPerLitresperHour = Constants.BusAuxiliaries.PneumaticAuxDemands.DeadVolBlowOutsPerLitresperHour, - DeadVolumeLitres = Constants.BusAuxiliaries.PneumaticAuxDemands.DeadVolumeLitres, - NonSmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticAuxDemands.NonSmartRegenFractionTotalAirDemand, - SmartRegenFractionTotalAirDemand = Constants.BusAuxiliaries.PneumaticAuxDemands.SmartRegenFractionTotalAirDemand, - OverrunUtilisationForCompressionFraction = Constants.BusAuxiliaries.PneumaticAuxDemands.OverrunUtilisationForCompressionFraction, - PerDoorOpeningNI = Constants.BusAuxiliaries.PneumaticAuxDemands.PerDoorOpeningNI, - PerStopBrakeActuationNIperKG = Constants.BusAuxiliaries.PneumaticAuxDemands.PerStopBrakeActuationNIperKG, - }; - } - } - + //public static IPneumaticUserInputsConfig DefaultPneumaticUserConfig { get; } public static IHVACUserInputsConfig DefaultHVACUserConfig { get; } diff --git a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs index ce3bc606c8d4232d55fec66090d132be80b77cee..b02ecf909c61dbb18e0785d5dfc3704e542e4891 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs @@ -144,27 +144,27 @@ namespace TUGraz.VectoCore.OutputData.FileIO puData["CompressorMap"] = pneumaticUserCfg.CompressorMap == null ? "" : JSONFileWriter.GetRelativePath(pneumaticUserCfg.CompressorMap.Source, auxPath); puData["Doors"] = pneumaticUserCfg.Doors; puData["KneelingHeightMillimeters"] = pneumaticUserCfg.KneelingHeightMillimeters.ConvertToMilliMeter().Value; - puData["RetarderBrake"] = pneumaticUserCfg.RetarderBrake; + //puData["RetarderBrake"] = pneumaticUserCfg.RetarderBrake; puData["SmartAirCompression"] = pneumaticUserCfg.SmartAirCompression; puData["SmartRegeneration"] = pneumaticUserCfg.SmartRegeneration; return puData; } - protected static Dictionary<string, object> SavePneumaticAuxconfig(IPneumaticsAuxilliariesConfig pneumaticAuxCfg) + protected static Dictionary<string, object> SavePneumaticAuxconfig(IPneumaticsConsumersDemand pneumaticAuxCfg) { var paData = new Dictionary<string, object>(); - paData["AdBlueNIperMinute"] = pneumaticAuxCfg.AdBlueNIperMinute.ConvertToNlPerMin().Value; - paData["AirControlledSuspensionNIperMinute"] = pneumaticAuxCfg.AirControlledSuspensionNIperMinute.ConvertToNlPerMin().Value; - paData["BrakingNoRetarderNIperKG"] = pneumaticAuxCfg.BrakingNoRetarderNIperKG.Value(); - paData["BrakingWithRetarderNIperKG"] = pneumaticAuxCfg.BrakingWithRetarderNIperKG.Value(); - paData["BreakingPerKneelingNIperKGinMM"] = pneumaticAuxCfg.BreakingPerKneelingNIperKGinMM.Value() / 1000; - paData["DeadVolBlowOutsPerLitresperHour"] = pneumaticAuxCfg.DeadVolBlowOutsPerLitresperHour.ConvertToPerHour().Value; - paData["DeadVolumeLitres"] = pneumaticAuxCfg.DeadVolumeLitres.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value; + paData["AdBlueNIperMinute"] = pneumaticAuxCfg.AdBlueInjection.ConvertToNlPerMin().Value; + paData["AirControlledSuspensionNIperMinute"] = pneumaticAuxCfg.AirControlledSuspension.ConvertToNlPerMin().Value; + paData["BrakingNIperKG"] = pneumaticAuxCfg.Braking.Value(); + //paData["BrakingWithRetarderNIperKG"] = pneumaticAuxCfg.BrakingWithRetarderNIperKG.Value(); + paData["BreakingPerKneelingNIperKGinMM"] = pneumaticAuxCfg.BreakingWithKneeling.Value() / 1000; + paData["DeadVolBlowOutsPerLitresperHour"] = pneumaticAuxCfg.DeadVolBlowOuts.ConvertToPerHour().Value; + paData["DeadVolumeLitres"] = pneumaticAuxCfg.DeadVolume.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value; paData["NonSmartRegenFractionTotalAirDemand"] = pneumaticAuxCfg.NonSmartRegenFractionTotalAirDemand; - paData["PerDoorOpeningNI"] = pneumaticAuxCfg.PerDoorOpeningNI.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value; - paData["PerStopBrakeActuationNIperKG"] = pneumaticAuxCfg.PerStopBrakeActuationNIperKG.Value(); + paData["PerDoorOpeningNI"] = pneumaticAuxCfg.DoorOpening.Cast<CubicMeter>().ConvertToCubicDeziMeter().Value; + paData["PerStopBrakeActuationNIperKG"] = pneumaticAuxCfg.StopBrakeActuation.Value(); paData["SmartRegenFractionTotalAirDemand"] = pneumaticAuxCfg.SmartRegenFractionTotalAirDemand; paData["OverrunUtilisationForCompressionFraction"] = pneumaticAuxCfg.OverrunUtilisationForCompressionFraction; diff --git a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC index dd5dd6987aa47981d3949c8d7f7d59f4931c72bd..318d9a9de99f5869bbdd940ceb9c0fa219725487 100644 --- a/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC +++ b/VectoCore/VectoCore/Resources/Declaration/Buses/DefaultActuationsMap.APAC @@ -11,8 +11,8 @@ Park brake + 2 doors,Suburban,25 Park brake + 2 doors,Interurban,9 Park brake + 2 doors,Coach,6 Park brake + 2 doors,UnknownCycleName,0 -Kneeling,Heavy urban,27 -Kneeling,Urban,25 +Kneeling,Heavy urban,68 +Kneeling,Urban,58 Kneeling,Suburban,6 Kneeling,Interurban,0 Kneeling,Coach,0 diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index a7f6ac5a321c35f803ed357e319a447ac3b2499e..14af693bddcec5f31b73013ef9e768162e614617 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -308,7 +308,7 @@ <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\M03Impl.cs" /> <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\M04Impl.cs" /> <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\ActuationsMap.cs" /> - <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticsAuxilliariesConfig.cs" /> + <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticsConsumersDemand.cs" /> <Compile Include="Models\BusAuxiliaries\DownstreamModules\Impl\Pneumatics\PneumaticUserInputsConfig.cs" /> <Compile Include="Models\BusAuxiliaries\Interfaces\DownstreamModules\Electrics\AltUserInput.cs" /> <Compile Include="Models\BusAuxiliaries\Interfaces\DownstreamModules\Electrics\IAlternator.cs" />