Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
55ae9a1
convert user provided cops
yzhou601 Apr 30, 2026
f270e68
hvac sizing
yzhou601 Apr 30, 2026
ae7df53
capacity, refactor
yzhou601 Apr 30, 2026
33aca65
one more cleanup
yzhou601 Apr 30, 2026
dff73ee
temporarily disabled experimental unit tests
yzhou601 May 11, 2026
4c0cb87
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 11, 2026
76c1ee7
changed capacity ratios and cop ratios based on rated data
yzhou601 May 11, 2026
0f6fe3c
Latest results. [skip ci]
May 12, 2026
b48d2b3
update comments
yzhou601 May 12, 2026
9b34f98
Merge branch 'GHP_experimental_rated_conditions' of https://github.co…
yzhou601 May 12, 2026
c7b6331
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 12, 2026
2a5d00a
Latest results. [skip ci]
May 12, 2026
d2c2cf4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 13, 2026
f1cd56e
Merge branch 'GHP_experimental_rated_conditions' of https://github.co…
yzhou601 May 13, 2026
2fea4e1
Latest results. [skip ci]
May 13, 2026
63ae249
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 22, 2026
732765a
Merge branch 'GHP_experimental_rated_conditions' of https://github.co…
yzhou601 May 22, 2026
30931f3
update unit tests
yzhou601 May 22, 2026
f23eff8
revert experimental assumptions to stick to E+ rated conditions, wrot…
yzhou601 May 23, 2026
b95bc5f
changelog
yzhou601 May 23, 2026
1733f91
Latest results. [skip ci]
May 23, 2026
1460ef5
typo fix in the unit test
yzhou601 May 28, 2026
b543e9c
typo fix for unit test 2
yzhou601 May 28, 2026
b3f6a27
Apply suggestions from code review
yzhou601 May 28, 2026
625d0cd
change coil reference capacity too, address method comment
yzhou601 May 28, 2026
9ea8fb8
Merge branch 'GHP_experimental_rated_conditions' of https://github.co…
yzhou601 May 28, 2026
62b062b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 28, 2026
981d5e4
fix index, the capacity ratios are calculated at E+ rated conditions,…
yzhou601 May 28, 2026
88b955d
exclude a warning
yzhou601 May 29, 2026
e0d9e44
Latest results. [skip ci]
May 29, 2026
d13b701
Apply suggestions from code review
yzhou601 Jun 1, 2026
d4f7866
Potential fix for pull request finding
yzhou601 Jun 1, 2026
bb53c39
Apply suggestions from code review - reuse methods
yzhou601 Jun 1, 2026
2344d0f
update_measures finally ran!
yzhou601 Jun 1, 2026
f4fb5be
Merge branch 'GHP_experimental_rated_conditions' of https://github.co…
yzhou601 Jun 1, 2026
6a6237b
remove duplicate method explanation
yzhou601 Jun 1, 2026
ab60212
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Jun 10, 2026
d02d202
updated airflow coefficients to fix an excel error at curve generation
yzhou601 Jun 11, 2026
c160f82
Latest results. [skip ci]
Jun 12, 2026
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
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ __Bugfixes__
- Fixes PV grid connection fee applying in utility bill calculation even if the home has no PV.
- Fixes possible "Failed to process String" EnergyPlus error when requesting component loads.
- Fixes ducts in manufactured home belly from being incorrectly modeled as if they were outside.
- Fixes ground-source heat pump experimental model using wrong rated condition inputs.

## OpenStudio-HPXML v1.11.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>hpxml_to_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>c6afec99-c1c2-4e83-9bee-102d983c0cb1</version_id>
<version_modified>2026-05-22T21:28:36Z</version_modified>
<version_id>94711da9-1580-4b00-99c6-473b2dcf2af2</version_id>
<version_modified>2026-06-01T22:06:14Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLToOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -367,7 +367,7 @@
<filename>defaults.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>A3B194F3</checksum>
<checksum>3FAD0E6C</checksum>
</file>
<file>
<filename>electric_panel.rb</filename>
Expand Down Expand Up @@ -433,13 +433,13 @@
<filename>hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>DF5A0B42</checksum>
<checksum>6DCDB9F0</checksum>
</file>
<file>
<filename>hvac_sizing.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>A450945A</checksum>
<checksum>CC053A51</checksum>
</file>
<file>
<filename>internal_gains.rb</filename>
Expand Down Expand Up @@ -781,7 +781,7 @@
<filename>test_hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>8D9CC019</checksum>
<checksum>840B2D62</checksum>
</file>
<file>
<filename>test_hvac_sizing.rb</filename>
Expand Down
12 changes: 6 additions & 6 deletions HPXMLtoOpenStudio/resources/defaults.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7942,13 +7942,13 @@ def self.interpolate_seer2(seer2, eer2, seer2_array, seer2_eer2_ratio_array, cop
# Cooling Curves
# E+ Capacity and EIR as function of temperature curves(bi-quadratic) generated using E+ HVACCurveFitTool
# See: https://bigladdersoftware.com/epx/docs/24-2/auxiliary-programs/hvac-performance-curve-fit-tool.html#hvac-performance-curve-fit-tool
# Catalog data from : https://files.climatemaster.com/Genesis-GS-Series-Product-Catalog.pdf, p180
# Catalog data from : https://www.climatemaster.com/download/18.274be999165850ccd5b5b73/1535543867815/lc377-climatemaster-commercial-tranquility-20-single-stage-ts-series-water-source-heat-pump-submittal-set.pdf

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update outdated product links

# Using E+ rated conditions:
# Cooling: Indoor air at 67F WB, 80F DB; Entering water temperature: 85F
clg_ap.cool_cap_ft_spec = [[0.3926140238, 0.0297981297, 0.0000000582, 0.0123906803, -0.0003014284, -0.0001113698]]
clg_ap.cool_eir_ft_spec = [[1.1828664909, -0.0450835550, 0.0009273315, 0.0056194113, 0.0006683467, -0.0007256237]]
clg_ap.cool_cap_fflow_spec = [[0.5068, 0.8099, -0.3165]]
clg_ap.cool_eir_fflow_spec = [[2.0184, -1.6182, 0.5789]]
clg_ap.cool_eir_fflow_spec = [[1.4249, -0.8767, 0.4518]]
clg_ap.cool_cap_fwf_spec = [[1.0, 0.0, 0.0]]
clg_ap.cool_eir_fwf_spec = [[1.0, 0.0, 0.0]]
cool_cop_ratios = [1.0]
Expand All @@ -7973,7 +7973,7 @@ def self.interpolate_seer2(seer2, eer2, seer2_array, seer2_eer2_ratio_array, cop
clg_ap.cool_eir_fwf_spec = [[1.7131, -1.3055, 0.5924],
[1.5872, -1.055, 0.4678]]

# Catalog data from ClimateMaster residential tranquility 30 premier two-stage series Model SE036: https://files.climatemaster.com/RP3001-Residential-SE-Product-Catalog.pdf
# Rated data from ClimateMaster residential tranquility 30 premier two-stage series Model SE036: https://files.climatemaster.com/RP3001-Residential-SE-Product-Catalog.pdf
cool_cop_ratios = [1.102827763, 1.0]
when HPXML::HVACCompressorTypeVariableSpeed
clg_ap.cool_capacity_ratios = [0.4802, 1.0]
Expand Down Expand Up @@ -8144,13 +8144,13 @@ def self.interpolate_hspf2(hspf2, qm17full, hspf2_array, qm17full_array, cop47fu
# Heating Curves
# E+ Capacity and EIR as function of temperature curves(bi-quadratic) generated using E+ HVACCurveFitTool
# See: https://bigladdersoftware.com/epx/docs/24-2/auxiliary-programs/hvac-performance-curve-fit-tool.html#hvac-performance-curve-fit-tool
# Catalog data from : https://files.climatemaster.com/Genesis-GS-Series-Product-Catalog.pdf, p180
# Catalog data from : https://www.climatemaster.com/download/18.274be999165850ccd5b5b73/1535543867815/lc377-climatemaster-commercial-tranquility-20-single-stage-ts-series-water-source-heat-pump-submittal-set.pdf
# Using E+ rated conditions:
# Heating: Indoor air at 70F DB; Entering water temperature: 70F
htg_ap.heat_cap_ft_spec = [[0.7353127278, -0.0035056759, -0.0000439615, 0.0204411095, -0.0000320781, -0.0001322685]]
htg_ap.heat_eir_ft_spec = [[0.6273820540, 0.0124891750, 0.0012720188, -0.0151581268, 0.0004164343, -0.0007259611]]
htg_ap.heat_cap_fflow_spec = [[0.7594, 0.3642, -0.1234]]
htg_ap.heat_eir_fflow_spec = [[2.796, -3.0886, 1.3858]]
htg_ap.heat_eir_fflow_spec = [[2.3403, -2.3479, 1.0068]]
htg_ap.heat_cap_fwf_spec = [[1.0, 0.0, 0.0]]
htg_ap.heat_eir_fwf_spec = [[1.0, 0.0, 0.0]]
heat_cop_ratios = [1.0]
Expand All @@ -8174,7 +8174,7 @@ def self.interpolate_hspf2(hspf2, qm17full, hspf2_array, qm17full_array, cop47fu
[0.769, 0.399, -0.168]]
htg_ap.heat_eir_fwf_spec = [[1.3457, -0.6658, 0.3201],
[1.1679, -0.3215, 0.1535]]
# Catalog data from ClimateMaster residential tranquility 30 premier two-stage series Model SE036: https://files.climatemaster.com/RP3001-Residential-SE-Product-Catalog.pdf
# Rated data from ClimateMaster residential tranquility 30 premier two-stage series Model SE036: https://files.climatemaster.com/RP3001-Residential-SE-Product-Catalog.pdf
heat_cop_ratios = [1.161791639, 1.0]
when HPXML::HVACCompressorTypeVariableSpeed
htg_ap.heat_capacity_ratios = [0.4473, 1.0]
Expand Down
44 changes: 36 additions & 8 deletions HPXMLtoOpenStudio/resources/hvac.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ module HVAC
ActualCFMPerTonHeat = 240.0 # cfm/ton of rated capacity, default actual airflow rate for furnaces, RESNET
MinCapacity = 1.0 # Btuh
MinAirflow = 3.0 # cfm; E+ min airflow is 0.001 m3/s
GroundSourceHeatRatedWET = 70.0 # degF, Rated water entering temperature for ground-source systems, heating
GroundSourceHeatRatedIDB = 70.0 # degF, Rated indoor drybulb for ground-source systems, heating
GroundSourceCoolRatedWET = 85.0 # degF, Rated water entering temperature for ground-source systems, cooling
GroundSourceCoolRatedIDB = 80.0 # degF, Rated indoor drybulb for ground-source systems, cooling
GroundSourceCoolRatedIWB = 67.0 # degF, Rated indoor wetbulb for ground-source systems, cooling
GroundSourceHeatGLHPRatedEWT = 32.0 # degF, Rated water entering temperature for ground-source systems, heating

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These variables are used to convert E+ rated conditions to GLHP rated conditions

GroundSourceCoolGLHPRatedEWT = 77.0 # degF, Rated water entering temperature for ground-source systems, cooling

# Adds any HVAC Systems to the OpenStudio model.
#
Expand Down Expand Up @@ -670,6 +670,8 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
min_x: 0, max_x: 1, min_y: 0.7, max_y: 1
)
end
# convert GLHP rated capacities to E+ rated
clg_capacity_rated_eplus = UnitConversions.convert(heat_pump.cooling_capacity, 'Btu/hr', 'W') / get_experimental_ghp_rated_condition_conversion(:clg, hp_ap.cool_cap_ft_spec[-1])
clg_coil = OpenStudio::Model::CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit.new(model, plf_fplr_curve)
clg_coil.setName(obj_name + ' clg coil')
clg_coil.setNominalTimeforCondensatetoBeginLeavingtheCoil(1000)
Expand All @@ -678,7 +680,7 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
clg_coil.setRatedAirFlowRateAtSelectedNominalSpeedLevel(clg_air_flow_rated)
clg_coil.setRatedWaterFlowRateAtSelectedNominalSpeedLevel(UnitConversions.convert(geothermal_loop.loop_flow, 'gal/min', 'm^3/s'))
# TODO: Add net to gross conversion after RESNET PR: https://github.com/NatLabRockies/OpenStudio-HPXML/pull/1879
clg_coil.setGrossRatedTotalCoolingCapacityAtSelectedNominalSpeedLevel(UnitConversions.convert(heat_pump.cooling_capacity, 'Btu/hr', 'W'))
clg_coil.setGrossRatedTotalCoolingCapacityAtSelectedNominalSpeedLevel(clg_capacity_rated_eplus)
for i in 0..(num_speeds - 1)
cap_ft_curve = Model.add_curve_biquadratic(
model,
Expand Down Expand Up @@ -723,10 +725,12 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
coeff: [1, 0, 0, 0, 0, 0]
)
speed = OpenStudio::Model::CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFitSpeedData.new(model, cap_ft_curve, cap_faf_curve, cap_fwf_curve, eir_ft_curve, eir_faf_curve, eir_fwf_curve, waste_heat_ft)
# convert GLHP rated COPs to E+ rated
rated_cop_eplus = hp_ap.cool_rated_cops[i] * get_experimental_ghp_rated_condition_conversion(:clg, hp_ap.cool_eir_ft_spec[i])
# TODO: Add net to gross conversion after RESNET PR: https://github.com/NatLabRockies/OpenStudio-HPXML/pull/1879
speed.setReferenceUnitGrossRatedTotalCoolingCapacity(UnitConversions.convert(heat_pump.cooling_capacity, 'Btu/hr', 'W') * hp_ap.cool_capacity_ratios[i])
speed.setReferenceUnitGrossRatedTotalCoolingCapacity(clg_capacity_rated_eplus * hp_ap.cool_capacity_ratios[i])
speed.setReferenceUnitGrossRatedSensibleHeatRatio(hp_ap.cool_rated_shr_gross)
speed.setReferenceUnitGrossRatedCoolingCOP(hp_ap.cool_rated_cops[i])
speed.setReferenceUnitGrossRatedCoolingCOP(rated_cop_eplus)
speed.setReferenceUnitRatedAirFlowRate(UnitConversions.convert(UnitConversions.convert(heat_pump.cooling_capacity, 'Btu/hr', 'ton') * hp_ap.cool_capacity_ratios[i] * hp_ap.cool_rated_cfm_per_ton, 'cfm', 'm^3/s'))
speed.setReferenceUnitRatedWaterFlowRate(UnitConversions.convert(geothermal_loop.loop_flow, 'gal/min', 'm^3/s') * hp_ap.cool_capacity_ratios[i])
speed.setReferenceUnitWasteHeatFractionofInputPowerAtRatedConditions(0.0)
Expand All @@ -751,10 +755,12 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
htg_coil = OpenStudio::Model::CoilHeatingWaterToAirHeatPumpVariableSpeedEquationFit.new(model, plf_fplr_curve)
htg_coil.setName(obj_name + ' htg coil')
htg_coil.setNominalSpeedLevel(num_speeds)
# convert GLHP rated capacities to E+ rated
htg_capacity_rated_eplus = UnitConversions.convert(heat_pump.heating_capacity, 'Btu/hr', 'W') / get_experimental_ghp_rated_condition_conversion(:htg, hp_ap.heat_cap_ft_spec[-1])
htg_coil.setRatedAirFlowRateAtSelectedNominalSpeedLevel(htg_air_flow_rated)
htg_coil.setRatedWaterFlowRateAtSelectedNominalSpeedLevel(UnitConversions.convert(geothermal_loop.loop_flow, 'gal/min', 'm^3/s'))
# TODO: Add net to gross conversion after RESNET PR: https://github.com/NatLabRockies/OpenStudio-HPXML/pull/1879
htg_coil.setRatedHeatingCapacityAtSelectedNominalSpeedLevel(UnitConversions.convert(heat_pump.heating_capacity, 'Btu/hr', 'W'))
htg_coil.setRatedHeatingCapacityAtSelectedNominalSpeedLevel(htg_capacity_rated_eplus)
for i in 0..(num_speeds - 1)
cap_ft_curve = Model.add_curve_biquadratic(
model,
Expand Down Expand Up @@ -799,9 +805,11 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
coeff: [1, 0, 0, 0, 0, 0]
)
speed = OpenStudio::Model::CoilHeatingWaterToAirHeatPumpVariableSpeedEquationFitSpeedData.new(model, cap_ft_curve, cap_faf_curve, cap_fwf_curve, eir_ft_curve, eir_faf_curve, eir_fwf_curve, waste_heat_ft)
# convert GLHP rated COPs to E+ rated
rated_cop_eplus = hp_ap.heat_rated_cops[i] * get_experimental_ghp_rated_condition_conversion(:htg, hp_ap.heat_eir_ft_spec[i])
# TODO: Add net to gross conversion after RESNET PR: https://github.com/NatLabRockies/OpenStudio-HPXML/pull/1879
speed.setReferenceUnitGrossRatedHeatingCapacity(UnitConversions.convert(heat_pump.heating_capacity, 'Btu/hr', 'W') * hp_ap.heat_capacity_ratios[i])
speed.setReferenceUnitGrossRatedHeatingCOP(hp_ap.heat_rated_cops[i])
speed.setReferenceUnitGrossRatedHeatingCapacity(htg_capacity_rated_eplus * hp_ap.heat_capacity_ratios[i])
speed.setReferenceUnitGrossRatedHeatingCOP(rated_cop_eplus)
speed.setReferenceUnitRatedAirFlow(UnitConversions.convert(UnitConversions.convert(heat_pump.heating_capacity, 'Btu/hr', 'ton') * hp_ap.heat_capacity_ratios[i] * hp_ap.heat_rated_cfm_per_ton, 'cfm', 'm^3/s'))
speed.setReferenceUnitRatedWaterFlowRate(UnitConversions.convert(geothermal_loop.loop_flow, 'gal/min', 'm^3/s') * hp_ap.heat_capacity_ratios[i])
speed.setReferenceUnitWasteHeatFractionofInputPowerAtRatedConditions(0.0)
Expand Down Expand Up @@ -845,6 +853,26 @@ def self.apply_ground_source_heat_pump(runner, model, weather, hpxml_bldg, hpxml
return air_loop
end

# Get the curve value at GLHP rated conditions (Only used for experimental model because E+ rated conditions are different from GLHP rated conditions)
#
# @param mode [Symbol] Heating or cooling
# @param biquadratic_spec [Array<Double>] EIR or Capacity function of temperature biquadratic curve coefficients
# @return [Double] Curve value at GLHP rated conditions for conversion
def self.get_experimental_ghp_rated_condition_conversion(mode, biquadratic_spec)
case mode
when :clg
return MathTools.biquadratic(UnitConversions.convert(GroundSourceCoolRatedIWB, 'F', 'C'),
UnitConversions.convert(GroundSourceCoolGLHPRatedEWT, 'F', 'C'),
biquadratic_spec)
when :htg
return MathTools.biquadratic(UnitConversions.convert(GroundSourceHeatRatedIDB, 'F', 'C'),
UnitConversions.convert(GroundSourceHeatGLHPRatedEWT, 'F', 'C'),
biquadratic_spec)
else
fail "Unexpected mode: #{mode}."
end
end
Comment thread
yzhou601 marked this conversation as resolved.
Comment thread
yzhou601 marked this conversation as resolved.

# Adds the HPXML GeothermalLoop to the OpenStudio model. If it has already been
# added to the model (because there are multiple ground-source heat pumps attached
# to it), then it reuses the existing one.
Expand Down
9 changes: 7 additions & 2 deletions HPXMLtoOpenStudio/resources/hvac_sizing.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2841,7 +2841,10 @@ def self.apply_hvac_equipment_adjustments(mj, runner, hvac_sizings, weather, hva
hvac_sizings.Cool_Capacity_Sens = hvac_sizings.Cool_Capacity * clg_ap.cool_rated_shr_gross
hvac_sizings.Cool_Airflow = calc_airflow_rate(:clg, hvac_cooling, hvac_sizings.Cool_Capacity, hpxml_bldg)
elsif [HPXML::GroundToAirHeatPumpModelTypeExperimental].include? hpxml_header.ground_to_air_heat_pump_model_type
total_cap_curve_value = MathTools.biquadratic(UnitConversions.convert(mj.cool_indoor_wetbulb, 'F', 'C'), UnitConversions.convert(entering_temp, 'F', 'C'), clg_ap.cool_cap_ft_spec[hvac_cooling_speed])
# Need to adjust the capacity to GLHP rated conditions
total_cap_curve_value_design = MathTools.biquadratic(UnitConversions.convert(mj.cool_indoor_wetbulb, 'F', 'C'), UnitConversions.convert(entering_temp, 'F', 'C'), clg_ap.cool_cap_ft_spec[hvac_cooling_speed])
total_cap_curve_value_glhp_rated = HVAC.get_experimental_ghp_rated_condition_conversion(:clg, clg_ap.cool_cap_ft_spec[hvac_cooling_speed])
total_cap_curve_value = total_cap_curve_value_design / total_cap_curve_value_glhp_rated
Comment thread
yzhou601 marked this conversation as resolved.
calculate_cooling_capacities(mj, clg_ap, hvac_sizings, hpxml_bldg.header.manualj_humidity_setpoint, total_cap_curve_value, undersize_limit, oversize_limit, HVAC::GroundSourceCoolRatedIDB, HVAC::GroundSourceCoolRatedIWB, hvac_cooling, hpxml_bldg)
end
elsif HPXML::HVACTypeEvaporativeCooler == cooling_type
Expand Down Expand Up @@ -3922,7 +3925,9 @@ def self.calc_gshp_htg_curve_value(htg_ap, hpxml_header, db_temp, w_temp, hvac_h

htg_cap_curve_value = MathTools.quadlinear(db_temp / ref_temp, w_temp / ref_temp, 1.0, 1.0, htg_ap.heat_cap_curve_spec[hvac_heating_speed])
elsif (hpxml_header.ground_to_air_heat_pump_model_type == HPXML::GroundToAirHeatPumpModelTypeExperimental)
htg_cap_curve_value = MathTools.biquadratic(UnitConversions.convert(db_temp, 'F', 'C'), UnitConversions.convert(w_temp, 'F', 'C'), htg_ap.heat_cap_ft_spec[hvac_heating_speed])
htg_cap_curve_value_design = MathTools.biquadratic(UnitConversions.convert(db_temp, 'F', 'C'), UnitConversions.convert(w_temp, 'F', 'C'), htg_ap.heat_cap_ft_spec[hvac_heating_speed])
htg_cap_curve_value_glhp_rated = HVAC.get_experimental_ghp_rated_condition_conversion(:htg, htg_ap.heat_cap_ft_spec[hvac_heating_speed])
htg_cap_curve_value = htg_cap_curve_value_design / htg_cap_curve_value_glhp_rated
Comment thread
yzhou601 marked this conversation as resolved.
end
Comment thread
yzhou601 marked this conversation as resolved.

return htg_cap_curve_value
Expand Down
Loading