diff --git a/BuildResidentialHPXML/README.md b/BuildResidentialHPXML/README.md index 1fab36eadd..c322c00d0e 100644 --- a/BuildResidentialHPXML/README.md +++ b/BuildResidentialHPXML/README.md @@ -3795,7 +3795,7 @@ Ratio of energy delivered to water heater to the energy content of the fuel cons **Water Heater: Heating Capacity** -Heating capacity. Only applies to storage water heater. If not provided, the OS-HPXML default (see Conventional Storage) is used. +Heating capacity. Only applies to storage water heater and heat pump water heater (compressor). If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used. - **Name:** ``water_heater_heating_capacity`` - **Type:** ``Double`` @@ -3806,6 +3806,19 @@ Heating capacity. Only applies to storage water heater. If not provided, the OS-
+**Water Heater: Backup Heating Capacity** + +Backup heating capacity for a heat pump water heater. If not provided, the OS-HPXML default (see Heat Pump) is used. + +- **Name:** ``water_heater_backup_heating_capacity`` +- **Type:** ``Double`` + +- **Units:** ``Btu/hr`` + +- **Required:** ``false`` + +
+ **Water Heater: Standby Loss** The standby loss of water heater. Only applies to space-heating boilers. If not provided, the OS-HPXML default (see Combi Boiler w/ Storage) is used. diff --git a/BuildResidentialHPXML/measure.rb b/BuildResidentialHPXML/measure.rb index e513e47341..b819408084 100644 --- a/BuildResidentialHPXML/measure.rb +++ b/BuildResidentialHPXML/measure.rb @@ -2273,7 +2273,13 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_heating_capacity', false) arg.setDisplayName('Water Heater: Heating Capacity') - arg.setDescription("Heating capacity. Only applies to #{HPXML::WaterHeaterTypeStorage}. If not provided, the OS-HPXML default (see Conventional Storage) is used.") + arg.setDescription("Heating capacity. Only applies to #{HPXML::WaterHeaterTypeStorage} and #{HPXML::WaterHeaterTypeHeatPump} (compressor). If not provided, the OS-HPXML default (see Conventional Storage, Heat Pump) is used.") + arg.setUnits('Btu/hr') + args << arg + + arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('water_heater_backup_heating_capacity', false) + arg.setDisplayName('Water Heater: Backup Heating Capacity') + arg.setDescription("Backup heating capacity for a #{HPXML::WaterHeaterTypeHeatPump}. If not provided, the OS-HPXML default (see Heat Pump) is used.") arg.setUnits('Btu/hr') args << arg @@ -6609,6 +6615,8 @@ def self.set_water_heating_systems(hpxml_bldg, args) heating_capacity = args[:water_heater_heating_capacity] tank_model_type = args[:water_heater_tank_model_type] elsif [HPXML::WaterHeaterTypeHeatPump].include? water_heater_type + heating_capacity = args[:water_heater_heating_capacity] + backup_heating_capacity = args[:water_heater_backup_heating_capacity] operating_mode = args[:water_heater_operating_mode] end @@ -6629,6 +6637,7 @@ def self.set_water_heating_systems(hpxml_bldg, args) jacket_r_value: jacket_r_value, temperature: args[:water_heater_setpoint_temperature], heating_capacity: heating_capacity, + backup_heating_capacity: backup_heating_capacity, is_shared_system: is_shared_system, number_of_bedrooms_served: number_of_bedrooms_served, tank_model_type: tank_model_type, diff --git a/BuildResidentialHPXML/measure.xml b/BuildResidentialHPXML/measure.xml index 7d36c5968d..7ca4ef9098 100644 --- a/BuildResidentialHPXML/measure.xml +++ b/BuildResidentialHPXML/measure.xml @@ -3,8 +3,8 @@ 3.1 build_residential_hpxml a13a8983-2b01-4930-8af2-42030b6e4233 - 2f4fbbe3-a36f-4d03-a5f5-87c150890550 - 2024-10-13T19:48:25Z + 8dfdc271-772e-46a3-a611-71ca703a96c2 + 2024-10-14T23:23:50Z 2C38F48B BuildResidentialHPXML HPXML Builder @@ -4696,7 +4696,16 @@ water_heater_heating_capacity Water Heater: Heating Capacity - Heating capacity. Only applies to storage water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#conventional-storage'>Conventional Storage</a>) is used. + Heating capacity. Only applies to storage water heater and heat pump water heater (compressor). If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#conventional-storage'>Conventional Storage</a>, <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used. + Double + Btu/hr + false + false + + + water_heater_backup_heating_capacity + Water Heater: Backup Heating Capacity + Backup heating capacity for a heat pump water heater. If not provided, the OS-HPXML default (see <a href='https://openstudio-hpxml.readthedocs.io/en/v1.8.1/workflow_inputs.html#heat-pump'>Heat Pump</a>) is used. Double Btu/hr false @@ -7518,7 +7527,7 @@ README.md md readme - 9F5858F9 + 25110074 README.md.erb @@ -7535,7 +7544,7 @@ measure.rb rb script - C1F50EA1 + F2C64E58 constants.rb diff --git a/Changelog.md b/Changelog.md index a426d90ffe..b88eab1e19 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,7 +3,7 @@ __New Features__ - Updates to HPXML v4.0 final release. - Allows `Site/Address/ZipCode` to be provided instead of `ClimateandRiskZones/WeatherStation/extension/EPWFilePath`, in which case the closest TMY3 weather station will be automatically selected. -- Adds inputs for modeling skylight curbs and/or shafts. +- Allows optional inputs for modeling skylight curbs and/or shafts. - Allows modeling exterior horizontal insulation for a slab-on-grade foundation (or basement/crawlspace floor). - Allows alternative infiltration input `AirInfiltrationMeasurement/LeakinessDescription`, in which the infiltration level is estimated using age of home, climate zone, foundation type, etc. - Window shading enhancements: @@ -15,6 +15,7 @@ __New Features__ - Updates hot water usage based on FSEC study. - Updates misc/tv plug load usage based on RECS 2020 data. - Updates relationship between number of bedrooms and number of occupants to use RECS 2020 instead of RECS 2015. +- Allows optional `HeatingCapacity` and `BackupHeatingCapacity` inputs for heat pump water heaters (HPWHs). - Central Fan Integrated Supply (CFIS) mechanical ventilation enhancements: - CFIS systems with no strategy to meet remainder of ventilation target (`CFISControls/AdditionalRuntimeOperatingMode="none"`). - HVAC Manual J design load and sizing calculations: diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 17dc245037..1bae06f8cc 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - b5f6daaa-2d62-4c04-8442-5dd880a2a3eb - 2024-10-14T15:59:52Z + 5c60d469-73ac-415f-b37f-8b8401c8d5f3 + 2024-10-16T17:32:33Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -327,7 +327,7 @@ defaults.rb rb resource - DF462CB6 + 1B4820ED energyplus.rb @@ -357,7 +357,7 @@ hpxml.rb rb resource - D8F0176E + F866C769 hpxml_schema/HPXML.xsd @@ -375,7 +375,7 @@ hpxml_schematron/EPvalidator.xml xml resource - 5238EC23 + BD9733AC hpxml_schematron/iso-schematron.xsd @@ -603,7 +603,7 @@ unit_conversions.rb rb resource - 1AB34E95 + 8BAAF04E util.rb @@ -627,7 +627,7 @@ waterheater.rb rb resource - EA8D60B3 + 6F8A18EC weather.rb @@ -663,7 +663,7 @@ test_defaults.rb rb test - 05F155DA + 9DD97EAF test_enclosure.rb @@ -735,13 +735,13 @@ test_validation.rb rb test - 2E4AE571 + 7CB39E62 test_water_heater.rb rb test - 3F35600F + A293B678 test_weather.rb diff --git a/HPXMLtoOpenStudio/resources/defaults.rb b/HPXMLtoOpenStudio/resources/defaults.rb index dfe8200afa..30d03cafb2 100644 --- a/HPXMLtoOpenStudio/resources/defaults.rb +++ b/HPXMLtoOpenStudio/resources/defaults.rb @@ -2912,6 +2912,15 @@ def self.apply_water_heaters(hpxml_bldg, eri_version, schedules_file) end end if (water_heating_system.water_heater_type == HPXML::WaterHeaterTypeHeatPump) + Waterheater.set_heat_pump_cop(water_heating_system) + if water_heating_system.heating_capacity.nil? + water_heating_system.heating_capacity = (UnitConversions.convert(0.5, 'kW', 'Btu/hr') * water_heating_system.additional_properties.cop).round + water_heating_system.heating_capacity_isdefaulted = true + end + if water_heating_system.backup_heating_capacity.nil? + water_heating_system.backup_heating_capacity = UnitConversions.convert(4.5, 'kW', 'Btu/hr').round + water_heating_system.backup_heating_capacity_isdefaulted = true + end if water_heating_system.tank_volume.nil? water_heating_system.tank_volume = get_water_heater_tank_volume(water_heating_system.fuel_type, nbeds, nbaths) water_heating_system.tank_volume_isdefaulted = true diff --git a/HPXMLtoOpenStudio/resources/hpxml.rb b/HPXMLtoOpenStudio/resources/hpxml.rb index 54884d2e64..f79f2b67d0 100644 --- a/HPXMLtoOpenStudio/resources/hpxml.rb +++ b/HPXMLtoOpenStudio/resources/hpxml.rb @@ -8374,6 +8374,7 @@ class WaterHeatingSystem < BaseElement :tank_volume, # [Double] TankVolume (gal) :fraction_dhw_load_served, # [Double] FractionDHWLoadServed (frac) :heating_capacity, # [Double] HeatingCapacity (Btu/hr) + :backup_heating_capacity, # [Double] BackupHeatingCapacity (Btu/hr) :energy_factor, # [Double] EnergyFactor (frac) :uniform_energy_factor, # [Double] UniformEnergyFactor (frac) :operating_mode, # [String] HPWHOperatingMode (HPXML::WaterHeaterOperatingModeXXX) @@ -8457,6 +8458,7 @@ def to_doc(building) XMLHelper.add_element(water_heating_system, 'TankVolume', @tank_volume, :float, @tank_volume_isdefaulted) unless @tank_volume.nil? XMLHelper.add_element(water_heating_system, 'FractionDHWLoadServed', @fraction_dhw_load_served, :float) unless @fraction_dhw_load_served.nil? XMLHelper.add_element(water_heating_system, 'HeatingCapacity', @heating_capacity, :float, @heating_capacity_isdefaulted) unless @heating_capacity.nil? + XMLHelper.add_element(water_heating_system, 'BackupHeatingCapacity', @backup_heating_capacity, :float, @backup_heating_capacity_isdefaulted) unless @backup_heating_capacity.nil? XMLHelper.add_element(water_heating_system, 'EnergyFactor', @energy_factor, :float, @energy_factor_isdefaulted) unless @energy_factor.nil? XMLHelper.add_element(water_heating_system, 'UniformEnergyFactor', @uniform_energy_factor, :float) unless @uniform_energy_factor.nil? XMLHelper.add_element(water_heating_system, 'HPWHOperatingMode', @operating_mode, :string, @operating_mode_isdefaulted) unless @operating_mode.nil? @@ -8504,6 +8506,7 @@ def from_doc(water_heating_system) @tank_volume = XMLHelper.get_value(water_heating_system, 'TankVolume', :float) @fraction_dhw_load_served = XMLHelper.get_value(water_heating_system, 'FractionDHWLoadServed', :float) @heating_capacity = XMLHelper.get_value(water_heating_system, 'HeatingCapacity', :float) + @backup_heating_capacity = XMLHelper.get_value(water_heating_system, 'BackupHeatingCapacity', :float) @energy_factor = XMLHelper.get_value(water_heating_system, 'EnergyFactor', :float) @uniform_energy_factor = XMLHelper.get_value(water_heating_system, 'UniformEnergyFactor', :float) @operating_mode = XMLHelper.get_value(water_heating_system, 'HPWHOperatingMode', :string) diff --git a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml index dc804f9724..7fac85970b 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +++ b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml @@ -2155,6 +2155,7 @@ Expected 0 or 1 element(s) for xpath: TankVolume Expected 1 element(s) for xpath: FractionDHWLoadServed Expected 0 or 1 element(s) for xpath: HeatingCapacity + Expected HeatingCapacity to be greater than 0. Expected 1 element(s) for xpath: UniformEnergyFactor | EnergyFactor Expected UniformEnergyFactor to be less than 1 Expected EnergyFactor to be less than 1 @@ -2206,6 +2207,9 @@ Expected 0 or 1 element(s) for xpath: IsSharedSystem Expected 0 or 1 element(s) for xpath: TankVolume Expected 1 element(s) for xpath: FractionDHWLoadServed + Expected 0 or 1 element(s) for xpath: HeatingCapacity + Expected HeatingCapacity to be greater than 0. + Expected 0 or 1 element(s) for xpath: BackupHeatingCapacity Expected 1 element(s) for xpath: UniformEnergyFactor | EnergyFactor Expected UniformEnergyFactor to be greater than 1 Expected EnergyFactor to be greater than 1 diff --git a/HPXMLtoOpenStudio/resources/unit_conversions.rb b/HPXMLtoOpenStudio/resources/unit_conversions.rb index c7651e860f..b1f3d3f6c6 100644 --- a/HPXMLtoOpenStudio/resources/unit_conversions.rb +++ b/HPXMLtoOpenStudio/resources/unit_conversions.rb @@ -47,6 +47,7 @@ module UnitConversions ['ton', 'kbtu/hr'] => 12.0, ['ton', 'w'] => 3516.85284207, ['w', 'btu/hr'] => 3.412141633127942, + ['kw', 'btu/hr'] => 3412.141633127942, ['kbtu/hr', 'kw'] => 0.2930710701722222, # Power Flux diff --git a/HPXMLtoOpenStudio/resources/waterheater.rb b/HPXMLtoOpenStudio/resources/waterheater.rb index 44771a9c0d..003b113a8f 100644 --- a/HPXMLtoOpenStudio/resources/waterheater.rb +++ b/HPXMLtoOpenStudio/resources/waterheater.rb @@ -965,7 +965,7 @@ def self.setup_hpwh_dxcoil(model, runner, water_heating_system, elevation, obj_n ) # Assumptions and values - cap = 0.5 * unit_multiplier # kW + cap = UnitConversions.convert(water_heating_system.heating_capacity, 'Btu/hr', 'W') * unit_multiplier # kW shr = 0.88 # unitless # Calculate an altitude adjusted rated evaporator wetbulb temperature @@ -979,26 +979,11 @@ def self.setup_hpwh_dxcoil(model, runner, water_heating_system, elevation, obj_n w_adj = Psychrometrics.w_fT_Twb_P(dp_rated, dp_rated, p_atm) twb_adj = Psychrometrics.Twb_fT_w_P(runner, rated_edb_F, w_adj, p_atm) - # Calculate the COP based on EF - if not water_heating_system.energy_factor.nil? - uef = (0.60522 + water_heating_system.energy_factor) / 1.2101 - cop = 1.174536058 * uef # Based on simulation of the UEF test procedure at varying COPs - elsif not water_heating_system.uniform_energy_factor.nil? - uef = water_heating_system.uniform_energy_factor - if water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinVerySmall - fail 'It is unlikely that a heat pump water heater falls into the very small bin of the First Hour Rating (FHR) test. Double check input.' - elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinLow - cop = 1.0005 * uef - 0.0789 - elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinMedium - cop = 1.0909 * uef - 0.0868 - elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinHigh - cop = 1.1022 * uef - 0.0877 - end - end + cop = water_heating_system.additional_properties.cop coil = OpenStudio::Model::CoilWaterHeatingAirToWaterHeatPumpWrapped.new(model) coil.setName("#{obj_name} coil") - coil.setRatedHeatingCapacity(UnitConversions.convert(cap, 'kW', 'W') * cop) + coil.setRatedHeatingCapacity(cap) coil.setRatedCOP(cop) coil.setRatedSensibleHeatRatio(shr) coil.setRatedEvaporatorInletAirDryBulbTemperature(rated_edb) @@ -1015,6 +1000,30 @@ def self.setup_hpwh_dxcoil(model, runner, water_heating_system, elevation, obj_n return coil end + # Calculates the HPWH compressor COP based on UEF regressions. + # + # @param water_heating_system [HPXML::WaterHeatingSystem] The HPXML water heating system of interest + # return [Double] COP of the HPWH compressor + def self.set_heat_pump_cop(water_heating_system) + # Calculate the COP based on EF + if not water_heating_system.energy_factor.nil? + uef = (0.60522 + water_heating_system.energy_factor) / 1.2101 + cop = 1.174536058 * uef # Based on simulation of the UEF test procedure at varying COPs + elsif not water_heating_system.uniform_energy_factor.nil? + uef = water_heating_system.uniform_energy_factor + if water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinVerySmall + fail 'It is unlikely that a heat pump water heater falls into the very small bin of the First Hour Rating (FHR) test. Double check input.' + elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinLow + cop = 1.0005 * uef - 0.0789 + elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinMedium + cop = 1.0909 * uef - 0.0868 + elsif water_heating_system.usage_bin == HPXML::WaterHeaterUsageBinHigh + cop = 1.1022 * uef - 0.0877 + end + end + water_heating_system.additional_properties.cop = cop + end + # TODO # # @param model [OpenStudio::Model::Model] OpenStudio Model object @@ -1034,7 +1043,7 @@ def self.setup_hpwh_stratified_tank(model, water_heating_system, obj_name, solar v_actual = calc_storage_tank_actual_vol(water_heating_system.tank_volume, water_heating_system.fuel_type) # gal a_tank, a_side = calc_tank_areas(v_actual, UnitConversions.convert(h_tank, 'm', 'ft')) # sqft - e_cap = 4.5 # kW + e_cap = UnitConversions.convert(water_heating_system.backup_heating_capacity, 'Btu/hr', 'W') # W parasitics = 3.0 # W # Based on Ecotope lab testing of most recent AO Smith HPWHs (series HPTU) if water_heating_system.tank_volume <= 58.0 @@ -1061,12 +1070,12 @@ def self.setup_hpwh_stratified_tank(model, water_heating_system, obj_name, solar tank.setHeaterPriorityControl('MasterSlave') tank.heater1SetpointTemperatureSchedule.remove tank.setHeater1SetpointTemperatureSchedule(hpwh_top_element_sp) - tank.setHeater1Capacity(UnitConversions.convert(e_cap, 'kW', 'W')) + tank.setHeater1Capacity(e_cap) tank.setHeater1Height((1.0 - (3 - 0.5) / 12.0) * h_tank) # in the 3rd node of a 12-node tank (counting from top) tank.setHeater1DeadbandTemperatureDifference(18.5) tank.heater2SetpointTemperatureSchedule.remove tank.setHeater2SetpointTemperatureSchedule(hpwh_bottom_element_sp) - tank.setHeater2Capacity(UnitConversions.convert(e_cap, 'kW', 'W')) + tank.setHeater2Capacity(e_cap) tank.setHeater2Height((1.0 - (10 - 0.5) / 12.0) * h_tank) # in the 10th node of a 12-node tank (counting from top) tank.setHeater2DeadbandTemperatureDifference(3.89) tank.setHeaterFuelType(EPlus::FuelTypeElectricity) diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 6b6488347e..ebc5cd8371 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -3262,16 +3262,20 @@ def test_heat_pump_water_heaters hpxml, hpxml_bldg = _create_hpxml('base-dhw-tank-heat-pump.xml') hpxml_bldg.water_heating_systems[0].tank_volume = 44.0 hpxml_bldg.water_heating_systems[0].operating_mode = HPXML::WaterHeaterOperatingModeHeatPumpOnly + hpxml_bldg.water_heating_systems[0].heating_capacity = 4000.0 + hpxml_bldg.water_heating_systems[0].backup_heating_capacity = 5000.0 XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_heat_pump_water_heater_values(default_hpxml_bldg, [44.0, HPXML::WaterHeaterOperatingModeHeatPumpOnly]) + _test_default_heat_pump_water_heater_values(default_hpxml_bldg, [44.0, HPXML::WaterHeaterOperatingModeHeatPumpOnly, 4000.0, 5000.0]) # Test defaults hpxml_bldg.water_heating_systems[0].tank_volume = nil hpxml_bldg.water_heating_systems[0].operating_mode = nil + hpxml_bldg.water_heating_systems[0].heating_capacity = nil + hpxml_bldg.water_heating_systems[0].backup_heating_capacity = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_heat_pump_water_heater_values(default_hpxml_bldg, [50.0, HPXML::WaterHeaterOperatingModeHybridAuto]) + _test_default_heat_pump_water_heater_values(default_hpxml_bldg, [50.0, HPXML::WaterHeaterOperatingModeHybridAuto, 4811.0, 15355.0]) end def test_indirect_water_heaters @@ -5528,10 +5532,12 @@ def _test_default_heat_pump_water_heater_values(hpxml_bldg, *expected_wh_values) heat_pump_water_heaters = hpxml_bldg.water_heating_systems.select { |w| w.water_heater_type == HPXML::WaterHeaterTypeHeatPump } assert_equal(expected_wh_values.size, heat_pump_water_heaters.size) heat_pump_water_heaters.each_with_index do |wh_system, idx| - tank_volume, operating_mode = expected_wh_values[idx] + tank_volume, operating_mode, htg_cap, backup_htg_cap = expected_wh_values[idx] assert_equal(tank_volume, wh_system.tank_volume) assert_equal(operating_mode, wh_system.operating_mode) + assert_in_epsilon(htg_cap, wh_system.heating_capacity, 0.01) + assert_in_epsilon(backup_htg_cap, wh_system.backup_heating_capacity, 0.01) end end diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index 1843962214..538f12a0f1 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -223,6 +223,8 @@ def test_schema_schematron_error_messages 'invalid-ventilation-fan' => ['Expected 1 element(s) for xpath: UsedForWholeBuildingVentilation[text()="true"] | UsedForLocalVentilation[text()="true"] | UsedForSeasonalCoolingLoadReduction[text()="true"] | UsedForGarageVentilation[text()="true"]'], 'invalid-ventilation-recovery' => ['Expected 0 element(s) for xpath: TotalRecoveryEfficiency | AdjustedTotalRecoveryEfficiency', 'Expected 0 element(s) for xpath: SensibleRecoveryEfficiency | AdjustedSensibleRecoveryEfficiency'], + 'invalid-water-heater-heating-capacity' => ['Expected HeatingCapacity to be greater than 0.'], + 'invalid-water-heater-heating-capacity2' => ['Expected HeatingCapacity to be greater than 0.'], 'invalid-window-height' => ['Expected DistanceToBottomOfWindow to be greater than DistanceToTopOfWindow [context: /HPXML/Building/BuildingDetails/Enclosure/Windows/Window/Overhangs[number(Depth) > 0], id: "Window2"]'], 'leakiness-description-missing-year-built' => ['Expected 1 element(s) for xpath: BuildingSummary/BuildingConstruction/YearBuilt'], 'lighting-fractions' => ['Expected sum(LightingGroup/FractionofUnitsInLocation) for Location="interior" to be less than or equal to 1 [context: /HPXML/Building/BuildingDetails/Lighting, id: "MyBuilding"]'], @@ -670,6 +672,12 @@ def test_schema_schematron_error_messages hpxml, hpxml_bldg = _create_hpxml('base-mechvent-exhaust.xml') hpxml_bldg.ventilation_fans[0].sensible_recovery_efficiency = 0.72 hpxml_bldg.ventilation_fans[0].total_recovery_efficiency = 0.48 + elsif ['invalid-water-heater-heating-capacity'].include? error_case + hpxml, hpxml_bldg = _create_hpxml('base-dhw-tank-gas.xml') + hpxml_bldg.water_heating_systems[0].heating_capacity = 0 + elsif ['invalid-water-heater-heating-capacity2'].include? error_case + hpxml, hpxml_bldg = _create_hpxml('base-dhw-tank-heat-pump.xml') + hpxml_bldg.water_heating_systems[0].heating_capacity = 0 elsif ['invalid-window-height'].include? error_case hpxml, hpxml_bldg = _create_hpxml('base-enclosure-overhangs.xml') hpxml_bldg.windows[1].overhangs_distance_to_bottom_of_window = 1.0 diff --git a/HPXMLtoOpenStudio/tests/test_water_heater.rb b/HPXMLtoOpenStudio/tests/test_water_heater.rb index 4c458ab66f..50677c78d3 100644 --- a/HPXMLtoOpenStudio/tests/test_water_heater.rb +++ b/HPXMLtoOpenStudio/tests/test_water_heater.rb @@ -950,6 +950,8 @@ def test_tank_heat_pump ther_eff = 1.0 cop = 2.820 tank_height = 1.598 + cap = 500.0 * cop # W + backup_cap = 4500.0 # W # Check water heater assert_equal(1, model.getWaterHeaterHeatPumpWrappedCondensers.size) @@ -961,13 +963,14 @@ def test_tank_heat_pump assert_equal('Schedule', wh.ambientTemperatureIndicator) assert_in_epsilon(tank_volume, wh.tankVolume.get, 0.001) assert_in_epsilon(tank_height, wh.tankHeight.get, 0.001) - assert_in_epsilon(4500.0, wh.heater1Capacity.get, 0.001) - assert_in_epsilon(4500.0, wh.heater2Capacity, 0.001) + assert_in_epsilon(backup_cap, wh.heater1Capacity.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater2Capacity, 0.001) assert_in_epsilon(u, wh.uniformSkinLossCoefficientperUnitAreatoAmbientTemperature.get, 0.001) assert_in_epsilon(ther_eff, wh.heaterThermalEfficiency, 0.001) # Check heat pump cooling coil cop assert_in_epsilon(cop, coil.ratedCOP, 0.001) + assert_in_epsilon(cap, coil.ratedHeatingCapacity, 0.001) end def test_tank_heat_pump_uef @@ -985,6 +988,8 @@ def test_tank_heat_pump_uef ther_eff = 1.0 cop = 4.004 tank_height = 1.0335 + cap = 500.0 * cop # W + backup_cap = 4500.0 # W # Check water heater assert_equal(1, model.getWaterHeaterHeatPumpWrappedCondensers.size) @@ -996,13 +1001,52 @@ def test_tank_heat_pump_uef assert_equal('Schedule', wh.ambientTemperatureIndicator) assert_in_epsilon(tank_volume, wh.tankVolume.get, 0.001) assert_in_epsilon(tank_height, wh.tankHeight.get, 0.001) - assert_in_epsilon(4500.0, wh.heater1Capacity.get, 0.001) - assert_in_epsilon(4500.0, wh.heater2Capacity, 0.001) + assert_in_epsilon(backup_cap, wh.heater1Capacity.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater2Capacity, 0.001) assert_in_epsilon(u, wh.uniformSkinLossCoefficientperUnitAreatoAmbientTemperature.get, 0.001) assert_in_epsilon(ther_eff, wh.heaterThermalEfficiency, 0.001) # Check heat pump cooling coil cop assert_in_epsilon(cop, coil.ratedCOP, 0.001) + assert_in_epsilon(cap, coil.ratedHeatingCapacity, 0.001) + end + + def test_tank_heat_pump_capacities + args_hash = {} + args_hash['hpxml_path'] = File.absolute_path(File.join(sample_files_dir, 'base-dhw-tank-heat-pump-capacities.xml')) + model, _hpxml, hpxml_bldg = _test_measure(args_hash) + + # Get HPXML values + water_heating_system = hpxml_bldg.water_heating_systems[0] + + # Expected value + tank_volume = UnitConversions.convert(water_heating_system.tank_volume * 0.9, 'gal', 'm^3') # convert to actual volume + fuel = EPlus.fuel_type(water_heating_system.fuel_type) + u = 0.925 + ther_eff = 1.0 + cop = 2.820 + tank_height = 1.598 + cap = UnitConversions.convert(water_heating_system.heating_capacity, 'Btu/hr', 'W') # W + backup_cap = UnitConversions.convert(water_heating_system.backup_heating_capacity, 'Btu/hr', 'W') # W + + # Check water heater + assert_equal(1, model.getWaterHeaterHeatPumpWrappedCondensers.size) + assert_equal(1, model.getWaterHeaterStratifieds.size) + hpwh = model.getWaterHeaterHeatPumpWrappedCondensers[0] + wh = hpwh.tank.to_WaterHeaterStratified.get + coil = hpwh.dXCoil.to_CoilWaterHeatingAirToWaterHeatPumpWrapped.get + assert_equal(fuel, wh.heaterFuelType) + assert_equal('Schedule', wh.ambientTemperatureIndicator) + assert_in_epsilon(tank_volume, wh.tankVolume.get, 0.001) + assert_in_epsilon(tank_height, wh.tankHeight.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater1Capacity.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater2Capacity, 0.001) + assert_in_epsilon(u, wh.uniformSkinLossCoefficientperUnitAreatoAmbientTemperature.get, 0.001) + assert_in_epsilon(ther_eff, wh.heaterThermalEfficiency, 0.001) + + # Check heat pump cooling coil cop + assert_in_epsilon(cop, coil.ratedCOP, 0.001) + assert_in_epsilon(cap, coil.ratedHeatingCapacity, 0.001) end def test_tank_jacket @@ -1098,6 +1142,8 @@ def test_shared_water_heater_heat_pump ther_eff = 1.0 cop = 2.820 tank_height = 2.3495 + cap = 500.0 * cop # W + backup_cap = 4500.0 # W # Check water heater assert_equal(1, model.getWaterHeaterHeatPumpWrappedCondensers.size) @@ -1109,13 +1155,14 @@ def test_shared_water_heater_heat_pump assert_equal('Schedule', wh.ambientTemperatureIndicator) assert_in_epsilon(tank_volume, wh.tankVolume.get, 0.001) assert_in_epsilon(tank_height, wh.tankHeight.get, 0.001) - assert_in_epsilon(4500.0, wh.heater1Capacity.get, 0.001) - assert_in_epsilon(4500.0, wh.heater2Capacity, 0.001) + assert_in_epsilon(backup_cap, wh.heater1Capacity.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater2Capacity, 0.001) assert_in_epsilon(u, wh.uniformSkinLossCoefficientperUnitAreatoAmbientTemperature.get, 0.001) assert_in_epsilon(ther_eff, wh.heaterThermalEfficiency, 0.001) # Check heat pump cooling coil cop assert_in_epsilon(cop, coil.ratedCOP, 0.001) + assert_in_epsilon(cap, coil.ratedHeatingCapacity, 0.001) end def test_shared_laundry_room @@ -1163,6 +1210,8 @@ def test_tank_heat_pump_operating_mode_heat_pump_only ther_eff = 1.0 cop = 4.004 tank_height = 1.0335 + cap = 500.0 * cop # W + backup_cap = 4500.0 # W # Check water heater assert_equal(1, model.getWaterHeaterHeatPumpWrappedCondensers.size) @@ -1174,13 +1223,14 @@ def test_tank_heat_pump_operating_mode_heat_pump_only assert_equal('Schedule', wh.ambientTemperatureIndicator) assert_in_epsilon(tank_volume, wh.tankVolume.get, 0.001) assert_in_epsilon(tank_height, wh.tankHeight.get, 0.001) - assert_in_epsilon(4500.0, wh.heater1Capacity.get, 0.001) - assert_in_epsilon(4500.0, wh.heater2Capacity, 0.001) + assert_in_epsilon(backup_cap, wh.heater1Capacity.get, 0.001) + assert_in_epsilon(backup_cap, wh.heater2Capacity, 0.001) assert_in_epsilon(u, wh.uniformSkinLossCoefficientperUnitAreatoAmbientTemperature.get, 0.001) assert_in_epsilon(ther_eff, wh.heaterThermalEfficiency, 0.001) # Check heat pump cooling coil cop assert_in_epsilon(cop, coil.ratedCOP, 0.001) + assert_in_epsilon(cap, coil.ratedHeatingCapacity, 0.001) end def test_tank_stratified diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 2e7c8f112c..abc2601f34 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -4032,24 +4032,26 @@ Heat Pump Each heat pump water heater is entered as a ``/HPXML/Building/BuildingDetails/Systems/WaterHeating/WaterHeatingSystem``. - ============================================= ================ ============= ====================== ======== =========== ============================================= - Element Type Units Constraints Required Default Notes - ============================================= ================ ============= ====================== ======== =========== ============================================= - ``SystemIdentifier`` id Yes Unique identifier - ``FuelType`` string electricity Yes Fuel type - ``WaterHeaterType`` string heat pump water heater Yes Type of water heater - ``Location`` string See [#]_ No See [#]_ Water heater location - ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units or shared laundry room - ``TankVolume`` double gal > 0 No See [#]_ Nominal tank volume - ``FractionDHWLoadServed`` double frac >= 0, <= 1 [#]_ Yes Fraction of hot water load served [#]_ - ``UniformEnergyFactor`` or ``EnergyFactor`` double frac > 1, <= 5 Yes EnergyGuide label rated efficiency - ``HPWHOperatingMode`` string See [#]_ No hybrid/auto Operating mode [#]_ - ``UsageBin`` or ``FirstHourRating`` string or double str or gal/hr See [#]_ or > 0 No See [#]_ EnergyGuide label usage bin/first hour rating - ``WaterHeaterInsulation/Jacket/JacketRValue`` double F-ft2-hr/Btu >= 0 No 0 R-value of additional tank insulation wrap - ``HotWaterTemperature`` double F > 0 No 125 Water heater setpoint [#]_ - ``UsesDesuperheater`` boolean No false Presence of desuperheater? [#]_ - ``extension/NumberofBedroomsServed`` integer > NumberofBedrooms See [#]_ Number of bedrooms served directly or indirectly - ============================================= ================ ============= ====================== ======== =========== ============================================= + ============================================= ================ ============= ====================== ======== ============== ============================================= + Element Type Units Constraints Required Default Notes + ============================================= ================ ============= ====================== ======== ============== ============================================= + ``SystemIdentifier`` id Yes Unique identifier + ``FuelType`` string electricity Yes Fuel type + ``WaterHeaterType`` string heat pump water heater Yes Type of water heater + ``Location`` string See [#]_ No See [#]_ Water heater location + ``IsSharedSystem`` boolean No false Whether it serves multiple dwelling units or shared laundry room + ``TankVolume`` double gal > 0 No See [#]_ Nominal tank volume + ``FractionDHWLoadServed`` double frac >= 0, <= 1 [#]_ Yes Fraction of hot water load served [#]_ + ``HeatingCapacity`` double Btu/hr > 0 No See [#]_ Heating output capacity + ``BackupHeatingCapacity`` double Btu/hr >= 0 No 15355 (4.5 kW) Heating capacity of the electric resistance backup + ``UniformEnergyFactor`` or ``EnergyFactor`` double frac > 1, <= 5 Yes EnergyGuide label rated efficiency + ``HPWHOperatingMode`` string See [#]_ No hybrid/auto Operating mode [#]_ + ``UsageBin`` or ``FirstHourRating`` string or double str or gal/hr See [#]_ or > 0 No See [#]_ EnergyGuide label usage bin/first hour rating + ``WaterHeaterInsulation/Jacket/JacketRValue`` double F-ft2-hr/Btu >= 0 No 0 R-value of additional tank insulation wrap + ``HotWaterTemperature`` double F > 0 No 125 Water heater setpoint [#]_ + ``UsesDesuperheater`` boolean No false Presence of desuperheater? [#]_ + ``extension/NumberofBedroomsServed`` integer > NumberofBedrooms See [#]_ Number of bedrooms served directly or indirectly + ============================================= ================ ============= ====================== ======== ============== ============================================= .. [#] Location choices are "conditioned space", "basement - unconditioned", "basement - conditioned", "attic - unvented", "attic - vented", "garage", "crawlspace - unvented", "crawlspace - vented", "crawlspace - conditioned", "other exterior", "other housing unit", "other heated space", "other multifamily buffer space", or "other non-freezing space". See :ref:`hpxml_locations` for descriptions. @@ -4063,6 +4065,7 @@ Each heat pump water heater is entered as a ``/HPXML/Building/BuildingDetails/Sy .. [#] The sum of all ``FractionDHWLoadServed`` (across all WaterHeatingSystems) must equal to 1. .. [#] FractionDHWLoadServed represents only the fraction of the hot water load associated with the hot water **fixtures**. Additional hot water load from clothes washers/dishwashers will be automatically assigned to the appropriate water heater(s). + .. [#] If HeatingCapacity not provided, defaults to 1706 Btu/hr (0.5 kW) multiplied by the heat pump COP. .. [#] HPWHOperatingMode choices are "hybrid/auto" or "heat pump only". .. [#] The heat pump water heater operating mode can alternatively be defined using :ref:`schedules_detailed`. .. [#] UsageBin choices are "very small", "low", "medium", or "high". diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index df6d576453..342eede201 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -1282,7 +1282,8 @@ "water_heater_type": "heat pump water heater", "water_heater_tank_volume": 120, "water_heater_efficiency": 2.3, - "water_heater_num_bedrooms_served": 18 + "water_heater_num_bedrooms_served": 18, + "water_heater_heating_capacity": null }, "sample_files/base-bldgtype-mf-unit-shared-water-heater-recirc.xml": { "parent_hpxml": "sample_files/base-bldgtype-mf-unit-shared-water-heater.xml" @@ -1497,7 +1498,14 @@ "parent_hpxml": "sample_files/base.xml", "water_heater_type": "heat pump water heater", "water_heater_tank_volume": 80, - "water_heater_efficiency": 2.3 + "water_heater_efficiency": 2.3, + "water_heater_heating_capacity": null + }, + "sample_files/base-dhw-tank-heat-pump-capacities.xml": { + "parent_hpxml": "sample_files/base-dhw-tank-heat-pump.xml", + "water_heater_type": "heat pump water heater", + "water_heater_heating_capacity": 3000, + "water_heater_backup_heating_capacity": 0 }, "sample_files/base-dhw-tank-heat-pump-outside.xml": { "parent_hpxml": "sample_files/base-dhw-tank-heat-pump.xml", diff --git a/workflow/real_homes/house039.xml b/workflow/real_homes/house039.xml index 4400dde8b9..697413867e 100644 --- a/workflow/real_homes/house039.xml +++ b/workflow/real_homes/house039.xml @@ -425,7 +425,6 @@ conditioned space 50.0 1.0 - 15359.0 2.0 1.0 diff --git a/workflow/sample_files/base-dhw-tank-heat-pump-capacities.xml b/workflow/sample_files/base-dhw-tank-heat-pump-capacities.xml new file mode 100644 index 0000000000..c4142bbf36 --- /dev/null +++ b/workflow/sample_files/base-dhw-tank-heat-pump-capacities.xml @@ -0,0 +1,552 @@ + + + + HPXML + tasks.rb + 2000-01-01T00:00:00-07:00 + create + + + + + 60 + + + + Bills + + + + + + + + +
+ CO +
+
+ + proposed workscope + + + + + suburban + stand-alone + no units above or below + 180 + + electricity + natural gas + + + + single-family detached + 2.0 + 1.0 + 8.0 + 3 + 2 + 2700.0 + 21600.0 + + + + + 2006 + 5B + + + + USA_CO_Denver.Intl.AP.725650_TMY3 + + USA_CO_Denver.Intl.AP.725650_TMY3.epw + + + + + + + + 50.0 + + ACH + 3.0 + + 21600.0 + + + + + + + + false + + + false + + + + + + + + + + + true + + + + + + + + + + + attic - unvented + 1509.3 + asphalt or fiberglass shingles + 0.7 + 0.92 + 6.0 + + + 2.3 + + + + + + + outside + basement - conditioned + 115.6 + wood siding + 0.7 + 0.92 + + + 23.0 + + + + + + + outside + conditioned space + + + + 1200.0 + wood siding + 0.7 + 0.92 + + gypsum board + + + + 23.0 + + + + + outside + attic - unvented + gable + + + + 225.0 + wood siding + 0.7 + 0.92 + + + 4.0 + + + + + + + ground + basement - conditioned + 8.0 + 1200.0 + 8.0 + 7.0 + + gypsum board + + + + + continuous - exterior + 8.9 + 0.0 + 8.0 + + + continuous - interior + 0.0 + + + + + + + + attic - unvented + conditioned space + ceiling + + + + 1350.0 + + gypsum board + + + + 39.3 + + + + + + + basement - conditioned + 1350.0 + 4.0 + 150.0 + + + + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + + + + 0.0 + 0.0 + + + + + + + 108.0 + 0 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 72.0 + 90 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 108.0 + 180 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + 72.0 + 270 + 0.33 + 0.45 + + + 0.7 + 0.85 + + 0.67 + + + + + + + + 40.0 + 180 + 4.4 + + + + + + + + + + + + + + + + + natural gas + 36000.0 + + AFUE + 0.92 + + 1.0 + + + + + central air conditioner + electricity + 24000.0 + single stage + 1.0 + + SEER + 13.0 + + 0.73 + + + + + 68.0 + 78.0 + + + + + + regular velocity + + supply + + CFM25 + 75.0 + to outside + + + + return + + CFM25 + 25.0 + to outside + + + + + supply + 4.0 + attic - unvented + 150.0 + + + + return + 0.0 + attic - unvented + 50.0 + + + + + + + + + electricity + heat pump water heater + conditioned space + 80.0 + 1.0 + 3000.0 + 0.0 + 2.3 + 125.0 + + + + + + 50.0 + + + + 0.0 + + + + + shower head + true + + + + faucet + false + + + + + + + conditioned space + 1.21 + 380.0 + 0.12 + 1.09 + 27.0 + 6.0 + 3.2 + + + + conditioned space + electricity + 3.73 + true + 150.0 + + + + conditioned space + 307.0 + 12 + 0.12 + 1.09 + 22.32 + 4.0 + + + + conditioned space + 650.0 + + + + conditioned space + electricity + false + + + + false + + + + + + interior + 0.4 + + + + + + + interior + 0.1 + + + + + + + interior + 0.25 + + + + + + + exterior + 0.4 + + + + + + + exterior + 0.1 + + + + + + + exterior + 0.25 + + + + + + + + + TV other + + kWh/year + 620.0 + + + + + other + + kWh/year + 2457.0 + + + 0.855 + 0.045 + + + + +
+
\ No newline at end of file diff --git a/workflow/tests/base_results/results_simulations_bills.csv b/workflow/tests/base_results/results_simulations_bills.csv index 51189ee85c..53776741fb 100644 --- a/workflow/tests/base_results/results_simulations_bills.csv +++ b/workflow/tests/base_results/results_simulations_bills.csv @@ -109,6 +109,7 @@ base-dhw-tank-gas-outside.xml,1693.09,144.0,973.19,0.0,1117.19,144.0,431.9,575.9 base-dhw-tank-gas-uef-fhr.xml,1675.64,144.0,979.47,0.0,1123.47,144.0,408.17,552.17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-dhw-tank-gas-uef.xml,1675.64,144.0,979.47,0.0,1123.47,144.0,408.17,552.17,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-dhw-tank-gas.xml,1679.86,144.0,980.72,0.0,1124.72,144.0,411.14,555.14,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +base-dhw-tank-heat-pump-capacities.xml,1665.87,144.0,1082.5,0.0,1226.5,144.0,295.37,439.37,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-dhw-tank-heat-pump-detailed-schedules.xml,1638.9,144.0,1046.75,0.0,1190.75,144.0,304.15,448.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,1632.93,144.0,1040.4,0.0,1184.4,144.0,304.53,448.53,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, base-dhw-tank-heat-pump-outside.xml,1760.52,144.0,1218.72,0.0,1362.72,144.0,253.8,397.8,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/workflow/tests/base_results/results_simulations_energy.csv b/workflow/tests/base_results/results_simulations_energy.csv index 2f7148fe8e..ba35da4c6c 100644 --- a/workflow/tests/base_results/results_simulations_energy.csv +++ b/workflow/tests/base_results/results_simulations_energy.csv @@ -88,7 +88,7 @@ base-dhw-jacket-gas.xml,65.499,65.499,26.894,26.894,38.605,0.0,0.0,0.0,0.0,0.0,0 base-dhw-jacket-hpwh.xml,57.91,57.91,29.6,29.6,28.31,0.0,0.0,0.0,0.0,0.0,0.0,0.702,0.0,0.0,3.922,0.572,3.274,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.063,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,28.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-jacket-indirect.xml,53.766,53.766,21.363,21.363,32.403,0.0,0.0,0.0,0.0,0.0,0.0,0.147,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.151,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,19.422,0.0,12.981,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-low-flow-fixtures.xml,59.397,59.397,35.581,35.581,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,8.793,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-dhw-multiple.xml,48.031,48.031,23.297,23.297,24.735,0.0,0.0,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,1.927,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.147,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.806,0.0,3.928,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-dhw-multiple.xml,48.032,48.032,23.297,23.297,24.735,0.0,0.0,0.0,0.0,0.0,0.0,0.158,0.0,0.0,0.0,0.0,1.927,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.147,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,20.806,0.0,3.928,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-none.xml,48.676,48.676,24.487,24.487,24.19,0.0,0.0,0.0,0.0,0.0,0.0,0.6,0.0,0.0,4.303,0.644,0.0,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.07,0.0,0.0,0.0,0.0,0.0,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.19,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-recirc-demand-scheduled.xml,59.569,59.569,35.753,35.753,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,8.94,0.026,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-recirc-demand.xml,59.569,59.569,35.753,35.753,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,8.94,0.026,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 @@ -109,6 +109,7 @@ base-dhw-tank-gas-outside.xml,67.995,67.995,26.736,26.736,41.259,0.0,0.0,0.0,0.0 base-dhw-tank-gas-uef-fhr.xml,65.901,65.901,26.909,26.909,38.992,0.0,0.0,0.0,0.0,0.0,0.0,0.602,0.0,0.0,4.49,0.679,0.0,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.279,0.0,14.713,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-tank-gas-uef.xml,65.901,65.901,26.909,26.909,38.992,0.0,0.0,0.0,0.0,0.0,0.0,0.602,0.0,0.0,4.49,0.679,0.0,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.279,0.0,14.713,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-tank-gas.xml,66.219,66.219,26.943,26.943,39.275,0.0,0.0,0.0,0.0,0.0,0.0,0.595,0.0,0.0,4.524,0.686,0.0,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.073,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.994,0.0,15.282,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-dhw-tank-heat-pump-capacities.xml,57.955,57.955,29.739,29.739,28.216,0.0,0.0,0.0,0.0,0.0,0.0,0.7,0.0,0.0,3.93,0.574,3.407,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.063,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,28.216,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-tank-heat-pump-detailed-schedules.xml,57.813,57.813,28.757,28.757,29.056,0.0,0.0,0.0,0.0,0.0,0.0,0.721,0.0,0.0,3.874,0.564,2.472,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.061,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,29.056,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,57.674,57.674,28.583,28.583,29.091,0.0,0.0,0.0,0.0,0.0,0.0,0.722,0.0,0.0,3.843,0.558,2.333,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.062,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,29.091,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-tank-heat-pump-outside.xml,57.727,57.727,33.482,33.482,24.245,0.0,0.0,0.0,0.0,0.0,0.0,0.602,0.0,0.0,4.347,0.652,6.745,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.071,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,24.245,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 diff --git a/workflow/tests/base_results/results_simulations_hvac.csv b/workflow/tests/base_results/results_simulations_hvac.csv index 70f98885b9..0cf2dec354 100644 --- a/workflow/tests/base_results/results_simulations_hvac.csv +++ b/workflow/tests/base_results/results_simulations_hvac.csv @@ -109,6 +109,7 @@ base-dhw-tank-gas-outside.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508. base-dhw-tank-gas-uef-fhr.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-dhw-tank-gas-uef.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-dhw-tank-gas.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 +base-dhw-tank-heat-pump-capacities.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-dhw-tank-heat-pump-detailed-schedules.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 base-dhw-tank-heat-pump-outside.xml,6.8,91.76,36000.0,24000.0,0.0,32239.0,8709.0,7508.0,0.0,575.0,6918.0,0.0,0.0,1738.0,2171.0,4620.0,0.0,0.0,20039.0,6112.0,7037.0,0.0,207.0,448.0,0.0,0.0,0.0,2293.0,622.0,0.0,3320.0,0.0,0.0,139.0,0.0,-661.0,0.0,800.0 diff --git a/workflow/tests/base_results/results_simulations_loads.csv b/workflow/tests/base_results/results_simulations_loads.csv index e95e85e0cf..91a83e765a 100644 --- a/workflow/tests/base_results/results_simulations_loads.csv +++ b/workflow/tests/base_results/results_simulations_loads.csv @@ -88,7 +88,7 @@ base-dhw-jacket-gas.xml,23.058,0.0,14.047,9.071,2.73,0.0,0.0,0.0,3.82,3.89,0.546 base-dhw-jacket-hpwh.xml,26.748,0.0,11.906,9.135,1.281,0.0,0.0,0.0,3.85,3.947,0.553,7.505,0.691,10.903,-14.096,0.0,0.0,0.0,8.438,-0.119,5.362,0.0,0.783,0.0,6.199,-4.89,-2.753,0.0,0.175,-0.069,0.002,2.94,0.058,-0.318,10.318,0.0,0.0,0.0,-5.838,-0.115,-0.718,-3.54,-0.091,0.0,2.772,4.713,1.754 base-dhw-jacket-indirect.xml,16.396,0.0,0.0,9.097,1.92,0.0,0.0,0.0,4.054,3.833,0.539,7.563,0.673,10.626,-13.372,0.0,0.0,0.0,8.211,-0.1,5.03,0.0,0.763,0.0,0.0,-9.142,-2.628,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-low-flow-fixtures.xml,22.503,0.0,13.745,8.834,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 -base-dhw-multiple.xml,17.623,0.0,0.0,9.063,2.823,0.0,5.891,0.0,4.075,3.853,0.542,7.539,0.677,10.682,-13.446,0.0,0.0,0.0,8.17,-0.113,6.186,0.0,0.765,0.0,0.0,-9.01,-2.642,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-dhw-multiple.xml,17.623,0.0,0.0,9.063,2.823,0.0,5.891,0.0,4.076,3.853,0.542,7.537,0.677,10.681,-13.446,0.0,0.0,0.0,8.165,-0.113,6.186,0.0,0.765,0.0,0.0,-9.007,-2.641,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-dhw-none.xml,22.856,0.0,13.375,0.0,0.0,0.0,0.0,0.0,3.82,3.887,0.546,7.554,0.685,10.79,-13.614,0.0,0.0,0.0,8.356,-0.126,5.818,0.0,0.0,0.0,5.398,-7.933,-2.675,0.0,0.047,-0.173,-0.012,2.842,0.04,-0.571,10.799,0.0,0.0,0.0,-6.103,-0.122,-0.927,-3.828,0.0,0.0,3.04,6.633,1.832 base-dhw-recirc-demand-scheduled.xml,22.503,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 base-dhw-recirc-demand.xml,22.503,0.0,13.745,9.013,0.615,0.0,0.0,0.0,3.819,3.882,0.545,7.57,0.682,10.76,-13.574,0.0,0.0,0.0,8.363,-0.116,5.259,0.0,0.77,0.0,5.323,-8.475,-2.662,0.0,0.029,-0.188,-0.014,2.827,0.035,-0.632,10.839,0.0,0.0,0.0,-6.138,-0.112,-0.847,-3.884,-0.117,0.0,3.113,7.106,1.845 @@ -109,6 +109,7 @@ base-dhw-tank-gas-outside.xml,22.909,0.0,13.535,9.071,5.067,0.0,0.0,0.0,3.816,3. base-dhw-tank-gas-uef-fhr.xml,22.94,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.392,0.0,0.771,0.0,5.423,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 base-dhw-tank-gas-uef.xml,22.94,0.0,14.108,9.071,2.983,0.0,0.0,0.0,3.819,3.887,0.546,7.571,0.684,10.781,-13.562,0.0,0.0,0.0,8.337,-0.119,6.392,0.0,0.771,0.0,5.423,-9.275,-2.667,0.0,0.028,-0.186,-0.014,2.82,0.036,-0.621,10.852,0.0,0.0,0.0,-6.177,-0.115,-1.056,-3.905,-0.116,0.0,3.186,7.651,1.84 base-dhw-tank-gas.xml,22.67,0.0,14.249,9.071,3.629,0.0,0.0,0.0,3.814,3.88,0.545,7.574,0.683,10.763,-13.523,0.0,0.0,0.0,8.331,-0.119,6.38,0.0,0.77,0.0,5.365,-9.486,-2.657,0.0,0.015,-0.197,-0.015,2.811,0.033,-0.651,10.89,0.0,0.0,0.0,-6.197,-0.115,-1.071,-3.933,-0.118,0.0,3.211,7.852,1.85 +base-dhw-tank-heat-pump-capacities.xml,26.659,0.0,11.948,9.115,0.0,0.0,0.0,0.0,3.835,3.937,0.552,7.504,0.69,10.885,-14.036,0.0,0.0,0.0,8.434,-0.121,5.352,0.0,0.781,0.0,6.168,-4.937,-2.744,0.0,0.158,-0.08,0.0,2.935,0.056,-0.341,10.377,0.0,0.0,0.0,-5.852,-0.117,-0.728,-3.547,-0.093,0.0,2.776,4.759,1.763 base-dhw-tank-heat-pump-detailed-schedules.xml,27.444,0.0,11.715,9.213,1.386,0.0,0.0,0.0,3.831,3.936,0.552,7.47,0.691,10.953,-14.05,0.0,0.0,0.0,8.382,-0.18,5.373,0.0,0.781,0.0,6.343,-4.283,-2.747,0.0,0.171,-0.069,0.003,2.933,0.06,-0.234,10.363,0.0,0.0,0.0,-5.854,-0.176,-0.695,-3.426,-0.092,0.0,2.708,4.363,1.76 base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,27.471,0.0,11.596,9.136,1.286,0.0,0.0,0.0,3.837,3.946,0.553,7.493,0.693,10.929,-14.096,0.0,0.0,0.0,8.441,-0.128,5.373,0.0,0.784,0.0,6.349,-4.289,-2.764,0.0,0.179,-0.062,0.003,2.957,0.062,-0.266,10.318,0.0,0.0,0.0,-5.807,-0.124,-0.704,-3.493,-0.088,0.0,2.708,4.337,1.743 base-dhw-tank-heat-pump-outside.xml,22.909,0.0,13.535,9.1,2.505,0.0,0.0,0.0,3.816,3.885,0.546,7.568,0.683,10.77,-13.61,0.0,0.0,0.0,8.371,-0.116,5.266,0.0,0.77,0.0,5.409,-8.135,-2.67,0.0,0.038,-0.18,-0.013,2.843,0.037,-0.604,10.803,0.0,0.0,0.0,-6.108,-0.113,-0.836,-3.842,-0.115,0.0,3.076,6.83,1.837 diff --git a/workflow/tests/base_results/results_simulations_misc.csv b/workflow/tests/base_results/results_simulations_misc.csv index 2625ed12e8..65f1d410ed 100644 --- a/workflow/tests/base_results/results_simulations_misc.csv +++ b/workflow/tests/base_results/results_simulations_misc.csv @@ -57,7 +57,7 @@ base-bldgtype-mf-unit-shared-mechvent-preconditioning.xml,0.0,0.0,1354.7,998.0,1 base-bldgtype-mf-unit-shared-mechvent.xml,0.0,0.0,1354.7,998.0,11171.5,3093.4,1564.8,2386.7,2386.7,6.049,8.526,0.0 base-bldgtype-mf-unit-shared-pv-battery.xml,0.0,0.0,1354.7,998.0,11171.5,3093.4,1645.6,2090.8,2090.8,3.848,7.747,41.283 base-bldgtype-mf-unit-shared-pv.xml,0.0,0.0,1354.7,998.0,11171.5,3093.4,1600.2,2088.7,2088.7,3.848,7.747,0.0 -base-bldgtype-mf-unit-shared-water-heater-heat-pump.xml,0.0,0.0,1354.7,998.0,10522.6,2913.7,1290.4,1607.3,1607.3,5.567,7.703,0.0 +base-bldgtype-mf-unit-shared-water-heater-heat-pump.xml,0.0,0.0,1354.7,998.0,10522.6,2913.7,1290.5,1607.3,1607.3,5.567,7.703,0.0 base-bldgtype-mf-unit-shared-water-heater-recirc-beds-0.xml,0.0,0.0,732.1,456.9,3657.3,0.0,818.9,1467.6,1467.6,4.376,7.22,0.0 base-bldgtype-mf-unit-shared-water-heater-recirc-scheduled.xml,0.0,0.0,1354.7,998.0,11171.6,3093.4,943.5,1655.2,1655.2,4.039,7.78,0.0 base-bldgtype-mf-unit-shared-water-heater-recirc.xml,0.0,0.0,1354.7,998.0,11171.6,3093.4,943.5,1655.2,1655.2,4.039,7.78,0.0 @@ -85,10 +85,10 @@ base-dhw-indirect-with-solar-fraction.xml,0.0,0.0,390.1,285.6,3157.8,724.6,1295. base-dhw-indirect.xml,0.0,0.0,1070.2,771.5,8872.7,2036.0,1294.9,1163.3,1294.9,16.535,0.0,0.0 base-dhw-jacket-electric.xml,0.0,0.0,1354.7,998.0,11171.5,2563.5,2077.4,3480.3,3480.3,23.764,18.692,0.0 base-dhw-jacket-gas.xml,0.0,0.0,1354.7,998.0,11171.7,2563.6,1429.0,3213.8,3213.8,24.233,19.126,0.0 -base-dhw-jacket-hpwh.xml,0.0,0.0,1354.7,998.0,10683.2,2451.5,1849.6,3635.1,3635.1,24.22,18.777,0.0 +base-dhw-jacket-hpwh.xml,0.0,0.0,1354.7,998.0,10683.2,2451.5,1849.6,3635.2,3635.2,24.22,18.777,0.0 base-dhw-jacket-indirect.xml,0.0,0.0,1075.8,776.9,8924.0,2047.8,1295.0,1163.2,1295.0,16.584,0.0,0.0 base-dhw-low-flow-fixtures.xml,0.0,0.0,1354.7,998.0,10829.6,2485.1,2080.9,3485.8,3485.8,23.709,18.744,0.0 -base-dhw-multiple.xml,0.0,0.0,472.1,347.7,3917.6,899.0,1883.5,1933.1,1989.4,17.068,0.0,0.0 +base-dhw-multiple.xml,0.0,0.0,472.1,347.7,3917.7,899.0,1883.5,1933.1,1989.4,17.068,0.0,0.0 base-dhw-none.xml,0.0,0.0,0.0,0.0,0.0,0.0,1324.3,3037.3,3037.3,23.81,18.402,0.0 base-dhw-recirc-demand-scheduled.xml,0.0,0.0,1354.7,998.0,11171.5,2460.6,2078.6,3487.0,3487.0,23.709,18.744,0.0 base-dhw-recirc-demand.xml,0.0,0.0,1354.7,998.0,11171.5,2460.6,2078.6,3487.0,3487.0,23.709,18.744,0.0 @@ -109,13 +109,14 @@ base-dhw-tank-gas-outside.xml,0.0,0.0,1354.7,998.0,11171.6,2563.5,1426.1,3161.8, base-dhw-tank-gas-uef-fhr.xml,0.0,0.0,1354.7,998.0,11171.8,2563.6,1428.7,3216.7,3216.7,24.197,19.154,0.0 base-dhw-tank-gas-uef.xml,0.0,0.0,1354.7,998.0,11171.8,2563.6,1428.7,3216.7,3216.7,24.197,19.154,0.0 base-dhw-tank-gas.xml,0.0,0.0,1354.7,998.0,11171.8,2563.6,1428.2,3224.1,3224.1,24.125,19.223,0.0 +base-dhw-tank-heat-pump-capacities.xml,0.0,0.0,1354.7,998.0,10843.5,2488.3,1700.0,3383.5,3383.5,23.472,18.354,0.0 base-dhw-tank-heat-pump-detailed-schedules.xml,0.0,0.0,1354.7,998.0,9985.2,2291.3,1857.0,3153.8,3153.8,27.442,18.597,0.0 base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml,0.0,0.0,1354.7,998.0,10679.5,2450.6,1823.3,3231.4,3231.4,25.961,17.573,0.0 base-dhw-tank-heat-pump-outside.xml,0.0,0.0,1354.7,998.0,10966.9,2516.6,2990.0,3443.3,3443.3,23.814,18.643,0.0 base-dhw-tank-heat-pump-uef.xml,0.0,0.0,1354.7,998.0,10679.5,2450.6,1823.3,3231.4,3231.4,25.961,17.573,0.0 base-dhw-tank-heat-pump-with-solar-fraction.xml,0.0,0.0,474.2,349.3,3796.5,871.2,1846.4,3171.1,3171.1,25.864,18.703,0.0 base-dhw-tank-heat-pump-with-solar.xml,0.0,0.0,1354.4,997.6,11663.2,2676.3,1860.6,3223.3,3223.3,24.008,19.19,0.0 -base-dhw-tank-heat-pump.xml,0.0,0.0,1354.7,998.0,10750.0,2466.8,1856.7,3649.6,3649.6,24.427,18.865,0.0 +base-dhw-tank-heat-pump.xml,0.0,0.0,1354.7,998.0,10750.0,2466.8,1856.8,3649.6,3649.6,24.427,18.865,0.0 base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml,0.0,0.0,1354.7,998.0,10791.3,2476.3,4762.4,5444.6,5444.6,31.718,18.721,0.0 base-dhw-tank-model-type-stratified.xml,0.0,0.0,1354.7,998.0,10775.1,2472.6,1958.7,3512.1,3512.1,23.798,18.659,0.0 base-dhw-tank-oil.xml,0.0,0.0,1354.7,998.0,11171.8,2563.6,1428.2,3224.1,3224.1,24.125,19.223,0.0