diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb index 4709dc41fc1cb94ba608b09b5e1390dc7bddef84..670f09d3139e4636afe6d317a30a2c1478163f01 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb @@ -115,9 +115,9 @@ Namespace UnitTests Assert.AreEqual(23, target.BoundaryConditions.CoolingBoundaryTemperature.AsDegCelsius) Assert.AreEqual(20, target.BoundaryConditions.VentilationRate.Value()*3600) 'Assert.AreEqual(7, target.BoundaryConditions.LowVentilation.Value()*3600) - Assert.AreEqual(1236.25, Math.Round(target.BoundaryConditions.VolumeExchange.Value()*3600, 2)) + 'Assert.AreEqual(1236.25, Math.Round(target.BoundaryConditions.VolumeExchange.Value()*3600, 2)) 'Assert.AreEqual(432.69, Math.Round(target.BoundaryConditions.LowVolumeExchange.Value()*3600, 2)) - Assert.AreEqual(692.3, Math.Round(target.BoundaryConditions.VentPower.Value(), 2)) + Assert.AreEqual(692.3, Math.Round(target.BoundaryConditions.VentPower(False).Value(), 2)) 'Assert.AreEqual(242.3, Math.Round(target.BoundaryConditions.LowVentPower.Value(), 2)) Assert.AreEqual(0.56R, target.BoundaryConditions.SpecificVentilationPower.Value()/3600) Assert.AreEqual(0.84, target.BoundaryConditions.AuxHeaterEfficiency) diff --git a/VECTOAux/VectoAuxiliariesTests/app.config b/VECTOAux/VectoAuxiliariesTests/app.config new file mode 100644 index 0000000000000000000000000000000000000000..fdc60f6f83437dedadf5df7aad3f232919b15e36 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/app.config @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <runtime> + <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> + <dependentAssembly> + <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" /> + <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" /> + </dependentAssembly> + </assemblyBinding> + </runtime> +</configuration> \ No newline at end of file diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs index 25ab8d335d72743fbf0d060c0d000b7fc6bde12f..c81d6e24aae0a28c5d7f5b816a84fb19874a724c 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMInputs.cs @@ -7,7 +7,6 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { public interface ISSMInputs { - ISSMBusParameters BusParameters { get; } ISSMTechnologyBenefits Technologies { get; } @@ -40,19 +39,27 @@ namespace TUGraz.VectoCommon.BusAuxiliaries double SolarClouding(Kelvin envTemp); Watt HeatPerPassengerIntoCabin(Kelvin envTemp); + WattPerKelvinSquareMeter UValue { get; } + Kelvin HeatingBoundaryTemperature { get; } + Kelvin CoolingBoundaryTemperature { get; } + Kelvin TemperatureCoolingTurnsOff { get; } + PerSecond VentilationRate { get; } - CubicMeterPerSecond VolumeExchange { get; } - Watt VentPower { get; } + + Watt VentPower(bool heating); + JoulePerCubicMeter SpecificVentilationPower { get; } + double AuxHeaterEfficiency { get; } + JoulePerKilogramm GCVDieselOrHeatingOil { get; } - //SquareMeterPerMeter WindowAreaPerUnitBusLength { get; } - //SquareMeter FrontRearWindowArea { get; } + Kelvin MaxTemperatureDeltaForLowFloorBusses { get; } + double MaxPossibleBenefitFromTechnologyList { get; } } @@ -71,7 +78,9 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { // AC-system ACCompressorType HVACCompressorType { get; } + Watt HVACMaxCoolingPower { get; } + double COP { get; } } @@ -81,14 +90,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries bool VentilationOnDuringHeating { get; } bool VentilationWhenBothHeatingAndACInactive { get; } - bool VentilationDuringAC { get; } - //VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; } - //VentilationLevel VentilationDuringHeating { get; } - //VentilationLevel VentilationDuringCooling { get; } + bool VentilationDuringAC { get; } } - + public enum ACCompressorType { Unknown, @@ -137,13 +143,10 @@ namespace TUGraz.VectoCommon.BusAuxiliaries switch (type) { case ACCompressorType.None: - case ACCompressorType.Unknown: - return 0; - case ACCompressorType.TwoStage: - return cop; + case ACCompressorType.Unknown: return 0; + case ACCompressorType.TwoStage: return cop; case ACCompressorType.ThreeStage: - case ACCompressorType.FourStage: - return cop * 1.02; + case ACCompressorType.FourStage: return cop * 1.02; case ACCompressorType.Continuous: return floortype == FloorType.LowFloor ? cop * 1.04 diff --git a/VectoCore/VectoCore/Configuration/Constants.cs b/VectoCore/VectoCore/Configuration/Constants.cs index 2cccc249901de685b2e12a7d5ee8c8feb0981bec..bbe90aab1c56798a616730e8168d31f54f1e6794 100644 --- a/VectoCore/VectoCore/Configuration/Constants.cs +++ b/VectoCore/VectoCore/Configuration/Constants.cs @@ -87,12 +87,11 @@ namespace TUGraz.VectoCore.Configuration public static readonly Kelvin CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(); public static readonly PerSecond HighVentilation = 20.SI(Unit.SI.Per.Hour).Cast<PerSecond>(); + public static readonly PerSecond HighVentilationHeating = 10.SI(Unit.SI.Per.Hour).Cast<PerSecond>(); public static readonly PerSecond LowVentilation = 7.SI(Unit.SI.Per.Hour).Cast<PerSecond>(); public const double AuxHeaterEfficiency = 0.84; - public static readonly Watt FuelFiredHeaterPower = 30.SI(Unit.SI.Kilo.Watt).Cast<Watt>(); - public static readonly JoulePerCubicMeter SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast<JoulePerCubicMeter>(); diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs index e038ac525c7c68dd62b298bbba544d218872b22b..01777ac29798bbf5b027c12168462fc0505e6035 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs @@ -255,6 +255,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var hvacBusheight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(mission.BusParameter.FloorType, mission.BusParameter.DoubleDecker, busParams.BodyHeight); var coolingPower = CalculateMaxCoolingPower(mission); var retVal = new SSMInputs(null, heatingFuel) { + BusFloorType = busParams.FloorType, Technologies = GetSSMTechnologyBenefits(busAuxInputData, mission.BusParameter.FloorType), DefaultConditions = new EnvironmentalConditionMapEntry( Constants.BusAuxiliaries.SteadyStateModel.DefaultTemperature, @@ -289,7 +290,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter NumberOfPassengers = DeclarationData.BusAuxiliaries.CalculateBusFloorSurfaceArea(hvacBusLength, busParams.VehicleWidth) * busParams.PassengerDensity + 1, // add driver for 'heat input' - VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(busParams.HVACConfiguration), + VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(busParams.HVACConfiguration, false), + VentilationRateHeating = DeclarationData.BusAuxiliaries.VentilationRate(busParams.HVACConfiguration, true), HVACMaxCoolingPower = coolingPower.Item1 + coolingPower.Item2, HVACCompressorType = busParams.HVACCompressorType, // use passenger compartment diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs index 0886150191f0caa48fd7f316d7a5fbd0855bc8f4..0530682fafa7d21c6cce7f6fdd6683ff489fc174 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMCalculate.cs @@ -190,7 +190,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC var run2TotalW = Run2.TotalW(environmentalTemperature, solar); var res = run1TotalW < 0 && run2TotalW < 0 && ventilation.VentilationOnDuringHeating - ? bc.VentPower + ? bc.VentPower(true) : 0.SI<Watt>(); return res; @@ -285,7 +285,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC return environmentalTemperature >= gen.BoundaryConditions.TemperatureCoolingTurnsOff && run1TotalW > 0 && run2TotalW > 0 && gen.Ventilation.VentilationDuringAC - ? gen.BoundaryConditions.VentPower + ? gen.BoundaryConditions.VentPower(false) : 0.SI<Watt>(); } @@ -312,7 +312,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC run1TotalW > 0 && run2TotalW > 0) || (run1TotalW > 0 && run2TotalW < 0) ? gen.Ventilation.VentilationWhenBothHeatingAndACInactive - ? gen.BoundaryConditions.VentPower + ? gen.BoundaryConditions.VentPower(false) : 0.SI<Watt>() : 0.SI<Watt>(); @@ -442,69 +442,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC } } - // Provides Diagnostic Information for the user which can be displayed on the form. - // Based on the inputs generated, can be used to cross reference the Excel Model with the - // Outputs generated here. - public override string ToString() - { - var sb = new StringBuilder(); - var vbTab = "\t"; - - sb.AppendLine(""); - sb.AppendLine("TechList Detail"); - sb.AppendLine("***********************"); - - var nameLength = 40; - var catLength = 15; - var unitLength = 15; - var firstValuePos = nameLength + catLength + unitLength + 2; - //string cat; - //string name; - - sb.AppendLine(string.Format(new string(' ', firstValuePos) + "H{0}VH{0}VV{0}VC{0}C{0}", vbTab)); - - //foreach (var line in ssmTOOL.TechList.TechLines) { - // { - // var withBlock = line; - - // var extraNameSpaces = nameLength - withBlock.BenefitName.Length; - // var extraCatSpaces = catLength - withBlock.Category.Length; - - // cat = line.Category.Substring(0, Math.Min(line.Category.Length, catLength)) + - // new string(' ', extraCatSpaces < 0 ? 0 : extraCatSpaces).Replace(" ", "."); - // name = line.BenefitName.Substring(0, Math.Min(line.BenefitName.Length, nameLength)) + - // new string(' ', extraNameSpaces < 0 ? 0 : extraNameSpaces).Replace(" ", "."); - - // sb.AppendLine( - // string.Format( - // cat + name + " {0}{1}{0}{2}{0}{3}{0}{4}{0}{5}", vbTab, withBlock.H.ToString("0.000"), - // withBlock.VH.ToString("0.000"), withBlock.VV.ToString("0.000"), withBlock.VC.ToString("0.000"), - // withBlock.C.ToString("0.000"))); - // } - //} - - sb.AppendLine(""); - sb.AppendLine("TechList Totals"); - sb.AppendLine("***********************"); - - { - var withBlock = ssmTOOL.TechList; - sb.AppendLine(vbTab + vbTab + "H" + vbTab + "VH" + vbTab + "VV" + vbTab + "VC" + vbTab + "C"); - sb.AppendLine( - string.Format( - "Base Var % {0}{1}{0}{2}{0}{3}{0}{4}{0}{5}", vbTab, withBlock.HValueVariation.ToString("0.000"), - withBlock.VHValueVariation.ToString("0.000"), withBlock.VVValueVariation.ToString("0.000"), - withBlock.VCValueVariation.ToString("0.000"), withBlock.CValueVariation.ToString("0.000"))); - } - - // Runs - sb.AppendLine(Run1.ToString()); - sb.AppendLine(Run2.ToString()); - - - return sb.ToString(); - } - private Watt CalculateElectricalWBase(ISSMInputs genInputs, IEnvironmentalConditionsMapEntry env) { // MIN(SUM(H94),C54*1000)/C59+SUM(I93:I95) diff --git a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs index 2a53575a7432a4caaad6abb02f25feff8a7e92b7..fbf2327de6ad0a2ef1df23d0e40b18d5aaba5118 100644 --- a/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs +++ b/VectoCore/VectoCore/Models/BusAuxiliaries/DownstreamModules/Impl/HVAC/SSMInputs.cs @@ -11,7 +11,7 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC public class SSMInputs : ISSMInputs, ISSMBoundaryConditions, IEnvironmentalConditions, IACSystem, IVentilation, IAuxHeater, ISSMBusParameters { - private IFuelProperties HeatingFuel; + private readonly IFuelProperties HeatingFuel; public SSMInputs(string source, IFuelProperties heatingFuel = null) { @@ -21,168 +21,45 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC public string Source { get; } - //public IVehicleData Vehicle { get; } - - // C5/D5 - public double NumberOfPassengers - { - get; - internal set; - - //get { return Vehicle.PassengerCount; } - } + public double NumberOfPassengers { get; internal set; } // C6/D6 public FloorType BusFloorType { get; internal set; } - // C10/D10 - //public bool DoubleDecker - //{ - // get { return Vehicle.DoubleDecker; } - //} - - // D12/C12 - ( M ) - //public Meter BusLength - //{ - // get { return Vehicle.Length; } - //} - - //// D13/C13 - ( M ) - //public Meter BusWidth - //{ - // get { return Vehicle.Width; } - //} - - //// D14/C14 - ( M ) - //public Meter BusHeight - //{ - // get { return Vehicle.Height; } - //} - - - // D7/C7 - ( M/2 ) - //public SquareMeter BusFloorSurfaceArea - //{ - // get { - // // =IF(AND(C6="low floor",C13<=2.55,C13>=2.5),(2.55*(C12-1.2)),((C12-1.2)*C13)) - // if (BusFloorType == FloorType.LowFloor && BusWidth <= 2.55 && BusWidth >= 2.5) { - // return 2.55.SI<Meter>() * (BusLength - 1.2.SI<Meter>()); - // } - - // return ((BusLength - 1.2.SI<Meter>()) * BusWidth); - // } - //} - // D8/C8 - ( M/2 ) - public SquareMeter BusSurfaceArea - { - get; - internal set; - - //get { - // // 2 * (C12*C13 + C12*C14 + C13*C14) - // return 2 * ((BusLength * BusWidth) + (BusLength * BusHeight) + (BusWidth * BusHeight)); - //} - } + public SquareMeter BusSurfaceArea { get; internal set; } // D9/C9 - ( M/2 ) public SquareMeter BusWindowSurface { get; internal set; } - // D11/C11 - ( M/3 ) - public CubicMeter BusVolume - { - get; internal set; - - //get { - // // =(C12*C13*C14) - // return BusLength * BusWidth * BusHeight; - //} - } - + public CubicMeter BusVolume { get; internal set; } // C17 public double GFactor { get; set; } - //PassengerBoundaryTemperature = 17 - // C18 public double SolarClouding(Kelvin enviromentalTemperature) { - - // =IF(C46<17,0.65,0.8) - return enviromentalTemperature < Constants.BusAuxiliaries.SteadyStateModel.PassengerBoundaryTemperature - ? Constants.BusAuxiliaries.SteadyStateModel.SolarCloudingLow - : Constants.BusAuxiliaries.SteadyStateModel.SolarCloudingHigh; - + // =IF(C46<17,0.65,0.8) + return enviromentalTemperature < Constants.BusAuxiliaries.SteadyStateModel.PassengerBoundaryTemperature + ? Constants.BusAuxiliaries.SteadyStateModel.SolarCloudingLow + : Constants.BusAuxiliaries.SteadyStateModel.SolarCloudingHigh; } // C19 - ( W ) public Watt HeatPerPassengerIntoCabin(Kelvin enviromentalTemperature) { - // =IF(C46<17,50,80) - return enviromentalTemperature < Constants.BusAuxiliaries.SteadyStateModel.PassengerBoundaryTemperature - ? Constants.BusAuxiliaries.SteadyStateModel.HeatPerPassengerIntoCabinLow - : Constants.BusAuxiliaries.SteadyStateModel.HeatPerPassengerIntoCabinHigh; + // =IF(C46<17,50,80) + return enviromentalTemperature < Constants.BusAuxiliaries.SteadyStateModel.PassengerBoundaryTemperature + ? Constants.BusAuxiliaries.SteadyStateModel.HeatPerPassengerIntoCabinLow + : Constants.BusAuxiliaries.SteadyStateModel.HeatPerPassengerIntoCabinHigh; } - // C20 - ( oC ) - //public Kelvin PassengerBoundaryTemperature { get; set; } - - // C21 - ( Passenger/Metre Squared ) - //public PerSquareMeter PassengerDensityLowFloor - //{ - // get { - // // =IF($C$10="No",3,3.7) - // return (DoubleDecker ? 3.7 : 3).SI<PerSquareMeter>(); - // } - //} - - //// C22 - ( Passenger/Metre Squared ) - //public PerSquareMeter PassengerDensitySemiLowFloor - //{ - // get { - // // =IF($C$10="No",2.2,3) - // return (DoubleDecker ? 3 : 2.2).SI<PerSquareMeter>(); - // } - //} - - //// C23 - ( Passenger/Metre Squared ) - //public PerSquareMeter PassengerDensityRaisedFloor - //{ - // get { - // // =IF($C$10="No",1.4,2) - // return (DoubleDecker ? 2 : 1.4).SI<PerSquareMeter>(); - // } - //} - - //// C24 - //public double CalculatedPassengerNumber - //{ - // get { - // // =ROUND(IF($D$5<IF(D6="low floor",C21,IF(D6="semi low floor",C22,C23))*D7,$D$5,IF(D6="low floor",C21,IF(D6="semi low floor",C22,C23))*D7),0) - // var tmp = (BusFloorType == FloorType.LowFloor - // ? PassengerDensityLowFloor - // : BusFloorType == FloorType.SemiLowFloor - // ? PassengerDensitySemiLowFloor - // : PassengerDensityRaisedFloor) * BusFloorSurfaceArea; - // return Math.Round(NumberOfPassengers < tmp ? NumberOfPassengers : tmp.Value(), 0); - // } - //} // C25 - ( W/K/M3 ) - public WattPerKelvinSquareMeter UValue - { - get; - internal set; - - //get { - // // =IF(D6="low floor",4,IF(D6="semi low floor",3.5,3)) - // return (BusFloorType == FloorType.LowFloor ? 4 : BusFloorType == FloorType.SemiLowFloor ? 3.5 : 3) - // .SI<WattPerKelvinSquareMeter>(); - //} - } + public WattPerKelvinSquareMeter UValue { get; internal set; } // C26 - ( oC ) public Kelvin HeatingBoundaryTemperature { get; set; } @@ -199,45 +76,15 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC // C29 - ( L/H ) --- !! 1/h public PerSecond VentilationRate { get; set; } - // C30 - ( L/H ) --- !! 1/h - //public PerSecond LowVentilation { get; set; } - - // C31 - ( M3/H ) - public CubicMeterPerSecond VolumeExchange - { - get { - // =D11*C29 - return BusVolume * VentilationRate; - } - } - - // C32 - ( M3/H ) - //public CubicMeterPerSecond LowVolumeExchange - //{ - // get { - // // =C30*D11 - // return BusVolume * LowVentilation; - // } - //} + public PerSecond VentilationRateHeating { get; internal set; } // C33 - ( W ) - public Watt VentPower + public Watt VentPower(bool heating) { - get { - // =C31*C35 - return VolumeExchange * SpecificVentilationPower; - } + // =C31*C35 + return BusVolume * (heating ? VentilationRateHeating : VentilationRate) * SpecificVentilationPower; } - // C34 - ( W ) - //public Watt LowVentPower - //{ - // get { - // // =C32*C35 - // return LowVolumeExchange * SpecificVentilationPower; - // } - //} - // C35 - ( Wh/M3 ) public JoulePerCubicMeter SpecificVentilationPower { get; set; } @@ -245,25 +92,10 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC public double AuxHeaterEfficiency { get; set; } // C38 - ( KW/HKG ) - public JoulePerKilogramm GCVDieselOrHeatingOil { get { return HeatingFuel.LowerHeatingValueVecto; } } - - // C40 - ( M2/M ) - //public SquareMeterPerMeter WindowAreaPerUnitBusLength - //{ - // get { - // // =IF($C$10="No",1.5,2.5) - // return (DoubleDecker ? 2.5 : 1.5).SI<SquareMeterPerMeter>(); - // } - //} - - //// C41 - ( M/2 ) - //public SquareMeter FrontRearWindowArea - //{ - // get { - // // =IF($C$10="No",5,8) - // return (DoubleDecker ? 8 : 5).SI<SquareMeter>(); - // } - //} + public JoulePerKilogramm GCVDieselOrHeatingOil + { + get { return HeatingFuel.LowerHeatingValueVecto; } + } // C42 - ( K ) public Kelvin MaxTemperatureDeltaForLowFloorBusses @@ -275,12 +107,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC public double MaxPossibleBenefitFromTechnologyList { get; set; } - // C46 - ( oC ) - //public Kelvin EnviromentalTemperature { get; set; } - - // C47 - ( W/M3 ) - //public WattPerSquareMeter Solar { get; set; } - public IEnvironmentalConditionsMapEntry DefaultConditions { get; set; } // ( EC_EnviromentalTemperature and EC_Solar) (Batch Mode) @@ -317,19 +143,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC // C64 - Boolean Yes/No public bool VentilationDuringAC { get; set; } - // C65 - String high/low - //public VentilationLevel VentilationFlowSettingWhenHeatingAndACInactive { get; set; } - - //// C66 - String high/low - //public VentilationLevel VentilationDuringHeating { get; set; } - - //// C67 - String high/low - //public VentilationLevel VentilationDuringCooling { get; set; } - - - // C70 - ( KW ) - //public Watt EngineWasteHeatkW { get; set; } - // C71 - ( KW ) public Watt FuelFiredHeaterPower { get; set; } @@ -372,7 +185,6 @@ namespace TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC public ISSMTechnologyBenefits Technologies { get; set; } - #endregion } } diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index a8a39a1cfba8914c9cc5145e1fdee4c9b4d007ee..c05f03cca2764aa83b57ddf0b38d4b8ac6a8713f 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -197,7 +197,7 @@ namespace TUGraz.VectoCore.Models.Declaration get { return hvacMaxCoolingPower ?? (hvacMaxCoolingPower = new HVACCoolingPower()); } } - public static PerSecond VentilationRate(BusHVACSystemConfiguration hvacSystemConfig) + public static PerSecond VentilationRate(BusHVACSystemConfiguration hvacSystemConfig, bool heating) { switch (hvacSystemConfig) { @@ -213,7 +213,9 @@ namespace TUGraz.VectoCore.Models.Declaration case BusHVACSystemConfiguration.Configuration7: case BusHVACSystemConfiguration.Configuration8: case BusHVACSystemConfiguration.Configuration9: - return Constants.BusAuxiliaries.SteadyStateModel.HighVentilation; + return heating + ? Constants.BusAuxiliaries.SteadyStateModel.HighVentilationHeating + : Constants.BusAuxiliaries.SteadyStateModel.HighVentilation; default: throw new ArgumentOutOfRangeException(nameof(hvacSystemConfig), hvacSystemConfig, null); }