Skip to content

Commit

Permalink
Merge pull request #1886 from NREL/gshp-pump-power
Browse files Browse the repository at this point in the history
Update GSHP default pump power
  • Loading branch information
shorowit authored Nov 16, 2024
2 parents cba77dd + 853aec0 commit fb6983a
Show file tree
Hide file tree
Showing 21 changed files with 66 additions and 66 deletions.
2 changes: 1 addition & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ __Bugfixes__
- Fixes default CFIS fan power during ventilation only mode.
- Fixes a bug that potentially oversizes heat pumps when detailed performance capacity fractions are provided.
- For a CFIS system with a supplemental fan, fixes supplemental fan runtime when using sub-hourly timesteps.
- Fixes GSHP fan power in net to gross calculations.
- Fixes GSHP rated fan/pump powers in net to gross calculations and improves default modeled pump power (W/ton).

## OpenStudio-HPXML v1.8.1

Expand Down
12 changes: 6 additions & 6 deletions HPXMLtoOpenStudio/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>a0e85ae2-09d7-4b4a-801e-e660762f85f4</version_id>
<version_modified>2024-11-15T19:42:05Z</version_modified>
<version_id>b20ae61b-bf29-4be9-8e25-a44b3b12c232</version_id>
<version_modified>2024-11-16T00:20:48Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -327,7 +327,7 @@
<filename>defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>0329B068</checksum>
<checksum>BCA4AD98</checksum>
</file>
<file>
<filename>energyplus.rb</filename>
Expand Down Expand Up @@ -387,7 +387,7 @@
<filename>hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>E186B07A</checksum>
<checksum>0DF759D2</checksum>
</file>
<file>
<filename>hvac_sizing.rb</filename>
Expand Down Expand Up @@ -663,7 +663,7 @@
<filename>test_defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>1531AC7C</checksum>
<checksum>1004443C</checksum>
</file>
<file>
<filename>test_enclosure.rb</filename>
Expand All @@ -687,7 +687,7 @@
<filename>test_hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>DCE0B460</checksum>
<checksum>994A2553</checksum>
</file>
<file>
<filename>test_hvac_sizing.rb</filename>
Expand Down
5 changes: 2 additions & 3 deletions HPXMLtoOpenStudio/resources/defaults.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5401,12 +5401,11 @@ def self.get_duct_outside_fraction(ncfl_ag)
return f_out
end

# Gets the default pump power for a ground-source heat pump.
# Gets the default pump power for a closed loop ground-source heat pump.
#
# @return [Double] Pump power (W/ton)
def self.get_gshp_pump_power()
# ANSI/RESNET/ICC 301-2019 Section 4.4.5 (closed loop)
return 30.0
return 80.0 # Rough estimate based on a literature review of different studies/websites
end

# Gets the default Electric Auxiliary Energy (EAE) for a boiler.
Expand Down
5 changes: 3 additions & 2 deletions HPXMLtoOpenStudio/resources/hvac.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2022,9 +2022,10 @@ def self.set_curves_gshp(heat_pump)

# Fan/pump adjustments calculations
# Fan power to overcome the static pressure adjustment
rated_fan_watts_per_cfm = 0.5 * heat_pump.fan_watts_per_cfm # Calculate rated fan power by assuming the power to overcome the ductwork is approximately 50% of the total fan power (ANSI 301 says 0.2 W/cfm is the fan power associated with ductwork, but we don't know if that was a PSC or BPM fan)
rated_fan_watts_per_cfm = 0.5 * heat_pump.fan_watts_per_cfm # Calculate rated fan power by assuming the power to overcome the ductwork is approximately 50% of the total fan power (ANSI/RESNET/ICC 301 says 0.2 W/cfm is the fan power associated with ductwork, but we don't know if that was a PSC or BPM fan)
power_f = rated_fan_watts_per_cfm * 400.0 / UnitConversions.convert(1.0, 'ton', 'Btu/hr') # 400 cfm/ton, result is in W per Btu/hr of capacity
power_p = heat_pump.pump_watts_per_ton / UnitConversions.convert(1.0, 'ton', 'Btu/hr') # result is in W per Btu/hr of capacity
rated_pump_watts_per_ton = 30.0 # ANSI/RESNET/ICC 301, estimated pump power required to overcome the internal resistance of the ground-water heat exchanger under AHRI test conditions for a closed loop system
power_p = rated_pump_watts_per_ton / UnitConversions.convert(1.0, 'ton', 'Btu/hr') # result is in W per Btu/hr of capacity

cool_eir = UnitConversions.convert(((1 - UnitConversions.convert(power_f, 'Wh', 'Btu')) / heat_pump.cooling_efficiency_eer - power_f - power_p), 'Wh', 'Btu')
heat_eir = (1 + UnitConversions.convert(power_f, 'Wh', 'Btu')) / heat_pump.heating_efficiency_cop - UnitConversions.convert(power_f + power_p, 'Wh', 'Btu')
Expand Down
2 changes: 1 addition & 1 deletion HPXMLtoOpenStudio/tests/test_defaults.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2306,7 +2306,7 @@ def test_ground_source_heat_pumps
hpxml_bldg.heat_pumps[0].backup_heating_capacity = nil
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
_default_hpxml, default_hpxml_bldg = _test_measure()
_test_default_ground_to_air_heat_pump_values(default_hpxml_bldg.heat_pumps[0], 30.0, 0.375, nil, nil, 0, nil, nil, nil)
_test_default_ground_to_air_heat_pump_values(default_hpxml_bldg.heat_pumps[0], 80.0, 0.375, nil, nil, 0, nil, nil, nil)
end

def test_geothermal_loops
Expand Down
4 changes: 2 additions & 2 deletions HPXMLtoOpenStudio/tests/test_hvac.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1317,13 +1317,13 @@ def test_shared_ground_loop_ground_to_air_heat_pump
# Check cooling coil
assert_equal(1, model.getCoilCoolingWaterToAirHeatPumpEquationFits.size)
clg_coil = model.getCoilCoolingWaterToAirHeatPumpEquationFits[0]
assert_in_epsilon(5.56, clg_coil.ratedCoolingCoefficientofPerformance, 0.01)
assert_in_epsilon(5.84, clg_coil.ratedCoolingCoefficientofPerformance, 0.01)
assert_in_epsilon(clg_capacity, clg_coil.ratedTotalCoolingCapacity.get, 0.01)

# Check heating coil
assert_equal(1, model.getCoilHeatingWaterToAirHeatPumpEquationFits.size)
htg_coil = model.getCoilHeatingWaterToAirHeatPumpEquationFits[0]
assert_in_epsilon(3.81, htg_coil.ratedHeatingCoefficientofPerformance, 0.01)
assert_in_epsilon(3.94, htg_coil.ratedHeatingCoefficientofPerformance, 0.01)
assert_in_epsilon(htg_capacity, htg_coil.ratedHeatingCapacity.get, 0.01)
end

Expand Down
2 changes: 1 addition & 1 deletion docs/source/workflow_inputs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3056,7 +3056,7 @@ Each ground-to-air heat pump is entered as a ``/HPXML/Building/BuildingDetails/S
.. [#] NumberofUnitsServed only required if IsSharedSystem is true, in which case it must be > 1.
.. [#] AttachedToGeothermalLoop must reference a ``GeothermalLoop``.
.. [#] If AttachedToGeothermalLoop not provided, the ground-to-air heat pump will be automatically attached to a geothermal loop that is entirely defaulted.
.. [#] If PumpPowerWattsPerTon not provided, defaults to 30 W/ton per `ANSI/RESNET/ICC 301-2019 <https://codes.iccsafe.org/content/RESNET3012019P1>`_ for a closed loop system.
.. [#] If PumpPowerWattsPerTon not provided, defaults to 80 W/ton for a closed loop system.
.. [#] Pump power is calculated using PumpPowerWattsPerTon and the cooling capacity in tons, unless the system only provides heating, in which case the heating capacity in tons is used instead.
Any pump power that is shared by multiple dwelling units should be included in SharedLoopWatts, *not* PumpPowerWattsPerTon, so that shared loop pump power attributed to the dwelling unit is calculated.
.. [#] SharedLoopWatts only required if IsSharedSystem is true.
Expand Down
4 changes: 2 additions & 2 deletions tasks.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1481,7 +1481,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml)

hpxml_bldg.heat_pumps.each do |heat_pump|
if heat_pump.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir
heat_pump.pump_watts_per_ton = 30.0
heat_pump.pump_watts_per_ton = 100.0
end
end
if hpxml_file.include?('chiller') || hpxml_file.include?('cooling-tower')
Expand Down Expand Up @@ -1843,7 +1843,7 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml)
heating_efficiency_cop: 3.6,
cooling_efficiency_eer: 16.6,
cooling_shr: 0.73,
pump_watts_per_ton: 30.0)
pump_watts_per_ton: 100.0)
hpxml_bldg.heat_pumps.add(id: "HeatPump#{hpxml_bldg.heat_pumps.size + 1}",
heat_pump_type: HPXML::HVACTypeHeatPumpMiniSplit,
heat_pump_fuel: HPXML::FuelTypeElectricity,
Expand Down
2 changes: 1 addition & 1 deletion workflow/sample_files/base-dhw-desuperheater-gshp.xml
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@
</AnnualHeatingEfficiency>
<AttachedToGeothermalLoop idref='GeothermalLoop1'/>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
<GeothermalLoop>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@
<AirflowDefectRatio>-0.25</AirflowDefectRatio>
<ChargeDefectRatio>-0.25</ChargeDefectRatio>
<FanPowerWattsPerCFM>0.365</FanPowerWattsPerCFM>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
</HVACPlant>
Expand Down
2 changes: 1 addition & 1 deletion workflow/sample_files/base-hvac-multiple.xml
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@
<Value>3.6</Value>
</AnnualHeatingEfficiency>
<extension>
<PumpPowerWattsPerTon>30.0</PumpPowerWattsPerTon>
<PumpPowerWattsPerTon>100.0</PumpPowerWattsPerTon>
</extension>
</HeatPump>
<HeatPump>
Expand Down
Loading

0 comments on commit fb6983a

Please sign in to comment.