From 470e54cbfab76da495b2defbb9d5a9dd3eae1fb3 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 25 May 2020 08:55:52 +0200 Subject: [PATCH] correct calculation of internal height --- .../DeclarationDataAdapterCompletedBusSpecific.cs | 10 +++++----- .../DeclarationDataAdapterPrimaryBus.cs | 4 ++-- .../VectoCore/Models/Declaration/DeclarationData.cs | 12 ++++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index 943730cdc5..4dda937a01 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -182,10 +182,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckerBus(); var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration; var hvacBusLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2 - ? 2 * Constants.BusParameters.DriverCompartmentLength - : completedVehicle.Length; - - var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.Height); + ? 2 * Constants.BusParameters.DriverCompartmentLength // OK + : completedVehicle.Length; + + var hvacBusHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.Height); var hvacBusWidth = DeclarationData.BusAuxiliaries.CorrectedBusWidth(completedVehicle.Width); var coolingPower = CalculateMaxCoolingPower(completedVehicle, mission); @@ -276,7 +276,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var length = DeclarationData.BusAuxiliaries.CalculateInternalLength( completedVehicle.Length , completedVehicle.VehicleCode, completedVehicle.NumberOfPassengersLowerDeck); - var height = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.Height); + var height = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.Height); var volume = length * height * completedVehicle.Width; var driver = DeclarationData.BusAuxiliaries.HVACMaxCoolingPower.DriverMaxCoolingPower( diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs index 616965942b..66556fbc4f 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs @@ -300,7 +300,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var hvacBusLength = busParams.HVACConfiguration == BusHVACSystemConfiguration.Configuration2 ? 2 * Constants.BusParameters.DriverCompartmentLength // OK : busParams.VehicleLength; // missing: correction length for low floor buses - var hvacBusheight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(mission.BusParameter.VehicleCode, busParams.BodyHeight); + var hvacBusheight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(mission.BusParameter.VehicleCode, RegistrationClass.II, busParams.BodyHeight); var coolingPower = CalculateMaxCoolingPower(null, mission); var retVal = GetDefaulSSMInputs(heatingFuel); @@ -395,7 +395,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var length = DeclarationData.BusAuxiliaries.CalculateInternalLength( busParams.VehicleLength, busParams.VehicleCode, busParams.NumberPassengersLowerDeck); - var height = DeclarationData.BusAuxiliaries.CalculateInternalHeight(busParams.VehicleCode, busParams.BodyHeight); + var height = DeclarationData.BusAuxiliaries.CalculateInternalHeight(busParams.VehicleCode, RegistrationClass.II, busParams.BodyHeight); var volume = length * height * busParams.VehicleWidth; var driver = DeclarationData.BusAuxiliaries.HVACMaxCoolingPower.DriverMaxCoolingPower( diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 3d254a2459..8fb6ba4df0 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -299,7 +299,7 @@ namespace TUGraz.VectoCore.Models.Declaration return CalculateInternalLength(vehicleLength, vehicleCode, numPassLowFloor); } - public static Meter CalculateInternalHeight(VehicleCode vehicleCode, Meter vehicleHeight) + public static Meter CalculateInternalHeight(VehicleCode vehicleCode, RegistrationClass registrationClass, Meter bodyHeight) { if (vehicleCode.IsDoubleDeckerBus()) { return Constants.BusParameters.InternalHeightDoubleDecker; @@ -307,11 +307,15 @@ namespace TUGraz.VectoCore.Models.Declaration switch (vehicleCode.GetFloorType()) { case FloorType.LowFloor: - return vehicleHeight; + return bodyHeight; case FloorType.HighFloor: - return vehicleHeight - Constants.BusParameters.HeightLuggageCompartment; + if ((registrationClass == RegistrationClass.II_III && bodyHeight > 3.1.SI<Meter>()) || + registrationClass == RegistrationClass.III || registrationClass == RegistrationClass.B) { + return Constants.BusParameters.InternalHeightDoubleDecker; + } + return bodyHeight - Constants.BusParameters.HeightLuggageCompartment; } - + throw new VectoException("Internal height for vehicle floor type '{0}' {1} not defined", vehicleCode.GetFloorType().ToString(), vehicleCode.IsDoubleDeckerBus() ? "double decker" : "single decker"); } -- GitLab