Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update GSHP default pump power #1886

Merged
merged 6 commits into from
Nov 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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