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 2088a54f authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge branch 'bugfix/32-missing_SSM_technologies' into 'tug-dev'

Bugfix/32 missing ssm technologies

See merge request vecto!2
parents f5306208 9d644d76
Branches
Tags
No related merge requests found
No preview for this file type
......@@ -78,6 +78,7 @@ Namespace UnitTests
Dim mission As New Mission With {
.BusParameter = New BusParameters() With {
.HVACConventional = New HVACParameters With {
.HeatPumpTypeDriverCompartmentCooling = HeatPumpType.none,
.HeatPumpTypePassengerCompartmentCooling = HeatPumpType.non_R_744_2_stage,
.HVACAuxHeaterPower = 30000.0.SI(Of Watt),
.HVACConfiguration = BusHVACSystemConfiguration.Configuration6
......@@ -589,6 +590,7 @@ Namespace UnitTests
.MissionType = MissionType.HeavyUrban,
.BusParameter = New BusParameters() With {
.HVACConventional = New HVACParameters() With {
.HeatPumpTypeDriverCompartmentCooling = HeatPumpType.none,
.HeatPumpTypePassengerCompartmentCooling = HeatPumpType.non_R_744_2_stage,
.HVACAuxHeaterPower = 18000.0.SI(Of Watt),
.HVACConfiguration = BusHVACSystemConfiguration.Configuration6
......
......@@ -78,12 +78,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
HeatPumpType.none, hvacParams.HeatPumpTypePassengerCompartmentHeating);
var ssmCooling = CreatePrimarySSMModelParameters(primaryVehicle.Components.BusAuxiliaries, mission,
runData.Loading, applicableHVACConfigCooling, HeatPumpType.none,
hvacParams.HeatPumpTypePassengerCompartmentCooling, hvacParams.HVACAuxHeaterPower, FuelData.Diesel, true);
runData.Loading, applicableHVACConfigCooling, hvacParams, FuelData.Diesel, true);
var ssmHeating = CreatePrimarySSMModelParameters(primaryVehicle.Components.BusAuxiliaries, mission,
runData.Loading, applicableHVACConfigHeating, HeatPumpType.none,
hvacParams.HeatPumpTypePassengerCompartmentHeating, hvacParams.HVACAuxHeaterPower, FuelData.Diesel,
false);
runData.Loading, applicableHVACConfigHeating, hvacParams, FuelData.Diesel, false);
ssmHeating.ElectricHeater = GetElectricHeater(mission, runData);
ssmHeating.HeatingDistributions = DeclarationData.BusAuxiliaries.HeatingDistributionCases;
return (ssmCooling, ssmHeating);
......@@ -348,10 +345,17 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
public virtual SSMInputs CreatePrimarySSMModelParameters(IBusAuxiliariesDeclarationData busAuxInputData,
Mission mission,
LoadingType loadingType, BusHVACSystemConfiguration applicableHVACConfiguration,
HeatPumpType driverHeatpumpType, HeatPumpType passengerHeatpumpType, Watt auxHeaterPower,
HVACParameters hvacParameters,
IFuelProperties heatingFuel, bool cooling)
{
var busParams = mission.BusParameter;
var auxHeaterPower = hvacParameters.HVACAuxHeaterPower;
var driverHeatpumpType = cooling
? hvacParameters.HeatPumpTypeDriverCompartmentCooling
: hvacParameters.HeatPumpTypeDriverCompartmentHeating;
var passengerHeatpumpType = cooling
? hvacParameters.HeatPumpTypePassengerCompartmentCooling
: hvacParameters.HeatPumpTypePassengerCompartmentHeating;
var isDoubleDecker = busParams.VehicleCode.IsDoubleDeckerBus();
var internalLength = applicableHVACConfiguration == BusHVACSystemConfiguration.Configuration2
......@@ -366,7 +370,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
var retVal = GetDefaulSSMInputs(heatingFuel);
retVal.BusFloorType = busParams.VehicleCode.GetFloorType();
retVal.Technologies = GetSSMTechnologyBenefits(busAuxInputData, mission.BusParameter.VehicleCode.GetFloorType());
retVal.Technologies = GetSSMTechnologyBenefits(busAuxInputData, mission.BusParameter.VehicleCode.GetFloorType(), hvacParameters);
retVal.FuelFiredHeaterPower = auxHeaterPower;
retVal.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(busParams.DoubleDecker) * internalLength +
......@@ -443,17 +447,30 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
}
}
protected virtual TechnologyBenefits GetSSMTechnologyBenefits(IBusAuxiliariesDeclarationData inputData, FloorType floorType)
protected virtual TechnologyBenefits GetSSMTechnologyBenefits(IBusAuxiliariesDeclarationData inputData,
FloorType floorType, HVACParameters hvacParameters)
{
var onVehicle = new List<SSMTechnology>();
foreach (var item in DeclarationData.BusAuxiliaries.SSMTechnologyList)
{
if ("Double-glazing".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) &&
hvacParameters.HVACDoubleGlasing) {
onVehicle.Add(item);
}
if ("Adjustable auxiliary heater".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) &&
hvacParameters.HVACAdjustableAuxHeater) {
onVehicle.Add(item);
}
if ("Separate air distribution ducts".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) &&
hvacParameters.HVACSeparateAirDistributionDucts) {
onVehicle.Add(item);
}
if ("Adjustable coolant thermostat".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) &&
(inputData?.HVACAux.AdjustableCoolantThermostat ?? false))
{
onVehicle.Add(item);
}
if ("Engine waste gas heat exchanger".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) &&
(inputData?.HVACAux.EngineWasteGasHeatExchanger ?? false))
{
......
......@@ -173,6 +173,10 @@ namespace TUGraz.VectoCore.Models.Declaration
public Watt HVACAuxHeaterPower { get; internal set; }
public HeatPumpType HeatPumpTypeDriverCompartmentCooling { get; internal set; }
public HeatPumpType HeatPumpTypeDriverCompartmentHeating { get; internal set; }
public HeatPumpType HeatPumpTypePassengerCompartmentCooling { get; internal set; }
public HeatPumpType HeatPumpTypePassengerCompartmentHeating { get; internal set; }
......
......@@ -166,6 +166,8 @@ namespace TUGraz.VectoCore.Models.Declaration
HVACConventional = new HVACParameters() {
HVACConfiguration = BusHVACSystemConfigurationHelper.Parse(row.Field<string>("hvacsystemconfiguration")),
HVACAuxHeaterPower = row.ParseDouble("hvacauxheaterconventional").SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
HeatPumpTypeDriverCompartmentCooling = HeatPumpType.none,
HeatPumpTypeDriverCompartmentHeating = HeatPumpType.none,
HeatPumpTypePassengerCompartmentCooling = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpcoolingpassengerconventional")),
HeatPumpTypePassengerCompartmentHeating = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpcoolingpassengerconventional")),
HVACDoubleGlasing = row.ParseBoolean("hvacdoubleglasing"),
......@@ -176,6 +178,8 @@ namespace TUGraz.VectoCore.Models.Declaration
HVACHEV = new HVACParameters() {
HVACConfiguration = BusHVACSystemConfigurationHelper.Parse(row.Field<string>("hvacsystemconfiguration")),
HVACAuxHeaterPower = row.ParseDouble("hvacauxheaterhev").SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
HeatPumpTypeDriverCompartmentCooling = HeatPumpType.none,
HeatPumpTypeDriverCompartmentHeating = HeatPumpType.none,
HeatPumpTypePassengerCompartmentCooling = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpcoolingpassengerhev")),
HeatPumpTypePassengerCompartmentHeating = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpheatingpassengerhev")),
HVACDoubleGlasing = row.ParseBoolean("hvacdoubleglasing"),
......@@ -186,6 +190,8 @@ namespace TUGraz.VectoCore.Models.Declaration
HVACPEV = new HVACParameters() {
HVACConfiguration = BusHVACSystemConfigurationHelper.Parse(row.Field<string>("hvacsystemconfiguration")),
HVACAuxHeaterPower = row.ParseDouble("hvacauxheaterpev").SI(Unit.SI.Kilo.Watt).Cast<Watt>(),
HeatPumpTypeDriverCompartmentCooling = HeatPumpType.none,
HeatPumpTypeDriverCompartmentHeating = HeatPumpType.none,
HeatPumpTypePassengerCompartmentCooling = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpcoolingpassengerpev")),
HeatPumpTypePassengerCompartmentHeating = HeatPumpTypeHelper.Parse(row.Field<string>("heatpumpheatingpassengerpev")),
HVACDoubleGlasing = row.ParseBoolean("hvacdoubleglasing"),
......
namespace TUGraz.VectoCore.Models.Declaration
{
using System.Diagnostics;
namespace TUGraz.VectoCore.Models.Declaration
{
[DebuggerDisplay("{BenefitName}|{Category}")]
public class SSMTechnology
{
public string Category { get; set; }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment