Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit fc201f32 authored by Franz KOBER josef's avatar Franz KOBER josef
Browse files

added ssmbusparameters with related test

parent 12d7ab95
No related branches found
No related tags found
No related merge requests found
...@@ -136,6 +136,28 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ...@@ -136,6 +136,28 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
return pneumaticUI; return pneumaticUI;
} }
public void SetSSMBusParameters(SSMInputs ssmInputs, Mission mission)
{
var busParams = mission.BusParameter;
var hvacBusLength = busParams.HVACConfiguration == BusHVACSystemConfiguration.Configuration2
? 2 * Constants.BusParameters.DriverCompartmentLength
: busParams.VehicleLength;
var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(busParams.FloorType,
busParams.DoubleDecker, busParams.BodyHeight);
ssmInputs.NumberOfPassengers = mission.RefLoad.Value();
ssmInputs.BusFloorType = busParams.FloorType;
ssmInputs.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(busParams.DoubleDecker) * hvacBusLength +
DeclarationData.BusAuxiliaries.FrontAndRearWindowArea(busParams.DoubleDecker);
ssmInputs.BusSurfaceArea = 2 * (hvacBusLength * busParams.VehicleWidth + hvacBusLength *
busParams.BodyHeight + busParams.VehicleWidth * busParams.BodyHeight);
ssmInputs.BusVolume = hvacBusLength * busParams.VehicleWidth * hvacBusHeight;
}
public override AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragInputData, Mission mission, public override AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragInputData, Mission mission,
Segment segment) Segment segment)
......
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using TUGraz.VectoCommon.BusAuxiliaries; using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.InputData;
...@@ -12,6 +13,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data; ...@@ -12,6 +13,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
using TUGraz.VectoCore.Models.BusAuxiliaries; using TUGraz.VectoCore.Models.BusAuxiliaries;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics; using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics;
...@@ -136,22 +138,29 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -136,22 +138,29 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
} }
public void SetSSMBusParameters(SSMInputs ssmInputs, IVehicleDeclarationInputData completedVehicle, Mission mission,
KeyValuePair<LoadingType, Kilogram> loading)
public PneumaticUserInputsConfig SetPneumaticUserInputsConfig(PneumaticUserInputsConfig pneumaticUserInputsConfig,
IVehicleDeclarationInputData completedVehicle)
{ {
var busAuxiliaries = completedVehicle.Components.BusAuxiliaries;
var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckBus();
var floorType = GetFloorType(completedVehicle.VehicleCode);
pneumaticUserInputsConfig.KneelingHeight = VectoMath.Max(0.SI<Meter>(), var hvacBusLength = busAuxiliaries.HVACAux.SystemConfiguration == BusHVACSystemConfiguration.Configuration2
completedVehicle.EntranceHeight - Constants.BusParameters.EntranceHeight); ? 2 * Constants.BusParameters.DriverCompartmentLength
pneumaticUserInputsConfig.Doors = : completedVehicle.Length;
completedVehicle.Components.BusAuxiliaries.PneumaticConsumers.DoorDriveTechnology;
return pneumaticUserInputsConfig;
}
var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(GetFloorType(completedVehicle.VehicleCode),
isDoubleDecker, completedVehicle.Height);
ssmInputs.NumberOfPassengers = GetLoading(completedVehicle, mission, loading).Value();
ssmInputs.BusFloorType = floorType;
ssmInputs.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(isDoubleDecker) * hvacBusLength +
DeclarationData.BusAuxiliaries.FrontAndRearWindowArea(isDoubleDecker);
ssmInputs.BusSurfaceArea = 2 * (hvacBusLength * completedVehicle.Width + hvacBusLength *
completedVehicle.Height + completedVehicle.Width * completedVehicle.Height);
ssmInputs.BusVolume = hvacBusLength * completedVehicle.Width * hvacBusHeight;
}
public IEnumerable<VectoRunData.AuxData> CreateAuxiliaryData( public IEnumerable<VectoRunData.AuxData> CreateAuxiliaryData(
IAuxiliariesDeclarationInputData auxiliaryInputData, IBusAuxiliariesDeclarationData mergedBusAux, IAuxiliariesDeclarationInputData auxiliaryInputData, IBusAuxiliariesDeclarationData mergedBusAux,
......
...@@ -13,6 +13,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; ...@@ -13,6 +13,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData;
using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
using TUGraz.VectoCore.Models.BusAuxiliaries; using TUGraz.VectoCore.Models.BusAuxiliaries;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC;
using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics;
using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics; using TUGraz.VectoCore.Models.BusAuxiliaries.Interfaces.DownstreamModules.Electrics;
using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Declaration;
...@@ -287,10 +288,20 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -287,10 +288,20 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
primaryBusAuxiliaries, completedVehicle, _compressorMap), primaryBusAuxiliaries, completedVehicle, _compressorMap),
PneumaticAuxillariesConfig = _consumersDeclarationData PneumaticAuxillariesConfig = _consumersDeclarationData
}; };
var ssmInputs = new SSMInputs(null);
DataAdapterCompleted.SetSSMBusParameters(ssmInputs, completedVehicle, mission, loading);
auxiliaryConfig.SSMInputs = ssmInputs;
simulationRunData.BusAuxiliaries = auxiliaryConfig; simulationRunData.BusAuxiliaries = auxiliaryConfig;
simulationRunData.Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString()); simulationRunData.Cycle = new DrivingCycleProxy(cycle, mission.MissionType.ToString());
...@@ -370,6 +381,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -370,6 +381,12 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
PneumaticAuxillariesConfig = _consumersDeclarationData PneumaticAuxillariesConfig = _consumersDeclarationData
}; };
var ssmInputs = new SSMInputs(null);
DataAdapterPrimary.SetSSMBusParameters(ssmInputs, mission);
auxiliaryConfig.SSMInputs = ssmInputs;
simulationRunData.BusAuxiliaries = auxiliaryConfig; simulationRunData.BusAuxiliaries = auxiliaryConfig;
......
...@@ -105,10 +105,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ...@@ -105,10 +105,9 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
SetRelatedVehicleParts(runs); SetRelatedVehicleParts(runs);
var index = 0;
for (int i = 0; i < relatedRuns.Count; i++) for (int i = 0; i < relatedRuns.Count; i++)
{ {
AssertVehicleData(relatedRuns[i], ref index); AssertVehicleData(relatedRuns[i],i);
AssertAirdragData(relatedRuns[i]); AssertAirdragData(relatedRuns[i]);
AssertEngineData(relatedRuns[i]); AssertEngineData(relatedRuns[i]);
AssertGearbox(relatedRuns[i]); AssertGearbox(relatedRuns[i]);
...@@ -120,13 +119,14 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ...@@ -120,13 +119,14 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
AssertElectricalUserInputConfig(relatedRuns[i]); AssertElectricalUserInputConfig(relatedRuns[i]);
AssertPneumaticUserInputsConfig(relatedRuns[i]); AssertPneumaticUserInputsConfig(relatedRuns[i]);
AssertPneumaticConsumerDemand(relatedRuns[i]); AssertPneumaticConsumerDemand(relatedRuns[i]);
AssertSSMBusParameters(relatedRuns[i], i);
} }
} }
#region Vehicle Data Asserts #region Vehicle Data Asserts
private void AssertVehicleData(RelatedRun relatedRun, ref int index) private void AssertVehicleData(RelatedRun relatedRun, int currentIndex)
{ {
var genericVehicleData = relatedRun.VectoRunDataGenericBody.VehicleData; var genericVehicleData = relatedRun.VectoRunDataGenericBody.VehicleData;
var specificVehicleData = relatedRun.VectoRunDataSpezificBody.VehicleData; var specificVehicleData = relatedRun.VectoRunDataSpezificBody.VehicleData;
...@@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ...@@ -140,7 +140,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
Assert.AreEqual(0, genericVehicleData.BodyAndTrailerMass.Value()); Assert.AreEqual(0, genericVehicleData.BodyAndTrailerMass.Value());
Assert.AreEqual(genericVehicleData.BodyAndTrailerMass, specificVehicleData.BodyAndTrailerMass); Assert.AreEqual(genericVehicleData.BodyAndTrailerMass, specificVehicleData.BodyAndTrailerMass);
AssertLoading(genericVehicleData.Loading, specificVehicleData.Loading, ref index); AssertLoading(genericVehicleData.Loading, specificVehicleData.Loading, currentIndex);
Assert.AreEqual(0.4992, genericVehicleData.DynamicTyreRadius.Value(), 1e-0); Assert.AreEqual(0.4992, genericVehicleData.DynamicTyreRadius.Value(), 1e-0);
Assert.AreEqual(genericVehicleData.DynamicTyreRadius, specificVehicleData.DynamicTyreRadius); Assert.AreEqual(genericVehicleData.DynamicTyreRadius, specificVehicleData.DynamicTyreRadius);
...@@ -150,28 +150,27 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ...@@ -150,28 +150,27 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
AssertAxles(genericVehicleData.AxleData, specificVehicleData.AxleData); AssertAxles(genericVehicleData.AxleData, specificVehicleData.AxleData);
} }
private void AssertLoading(Kilogram genericLoading, Kilogram specificLoading, ref int index) private void AssertLoading(Kilogram genericLoading, Kilogram specificLoading, int index)
{ {
switch (index) switch (index)
{ {
case 0: case 0:
Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-0); Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
Assert.AreEqual(2309.4738, specificLoading.Value(), 1e-0);//lowLoading Assert.AreEqual(2309.4738, specificLoading.Value(), 1e-4);
break; break;
case 1: case 1:
Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-0); Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
Assert.AreEqual(2130, specificLoading.Value(), 1e-0); Assert.AreEqual(2130, specificLoading.Value(), 1e-0);
break; break;
case 2: case 2:
Assert.AreEqual(3367.53, genericLoading.Value(), 1e-0); Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
Assert.AreEqual(1539.6492, specificLoading.Value(), 1e-0); Assert.AreEqual(1539.6492, specificLoading.Value(), 1e-4);
break; break;
case 3: case 3:
Assert.AreEqual(3367.53, genericLoading.Value(), 1e-0); Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
Assert.AreEqual(2130.0, specificLoading.Value(), 1e-0); Assert.AreEqual(2130.0, specificLoading.Value(), 1e-0);
break; break;
} }
index++;
} }
private void AssertADASData(VehicleData.ADASData genericAdasData, VehicleData.ADASData specificAdasData) private void AssertADASData(VehicleData.ADASData genericAdasData, VehicleData.ADASData specificAdasData)
...@@ -624,6 +623,31 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus ...@@ -624,6 +623,31 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
#endregion #endregion
#region SSMBusParameters Asserts
private void AssertSSMBusParameters(RelatedRun relatedRun, int currentIndex)
{
var genericBusParam = relatedRun.VectoRunDataGenericBody.BusAuxiliaries.SSMInputs.BusParameters;
var specificBusParam = relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.SSMInputs.BusParameters;
AssertLoading(genericBusParam.NumberOfPassengers.SI<Kilogram>(),
specificBusParam.NumberOfPassengers.SI<Kilogram>(), currentIndex);
Assert.AreEqual(FloorType.HighFloor, genericBusParam.BusFloorType);
Assert.AreEqual(FloorType.HighFloor, specificBusParam.BusFloorType);
Assert.AreEqual(34.2500, genericBusParam.BusWindowSurface.Value());
Assert.AreEqual(37.5750, specificBusParam.BusWindowSurface.Value());
Assert.AreEqual(150.1200, genericBusParam.BusSurfaceArea.Value());
Assert.AreEqual(146.6130, specificBusParam.BusSurfaceArea.Value());
Assert.AreEqual(48.1950, genericBusParam.BusVolume.Value());
Assert.AreEqual(54.2997, specificBusParam.BusVolume.Value());
}
#endregion
private CrosswindCorrectionCdxALookup GetCrosswindCorrection(string crossWindCorrectionParams, private CrosswindCorrectionCdxALookup GetCrosswindCorrection(string crossWindCorrectionParams,
SquareMeter aerodynamicDragArea, Meter vehicleHeight) SquareMeter aerodynamicDragArea, Meter vehicleHeight)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment