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

Updates HERS test outputs #758

Merged
merged 4 commits into from
Dec 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
5 changes: 5 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ __New Features__

__Bugfixes__

## OpenStudio-ERI v1.9.2

__New Features__
- Updates HERS test outputs to match the latest RESNET accreditation forms.

## OpenStudio-ERI v1.9.1

__Bugfixes__
Expand Down
35 changes: 11 additions & 24 deletions hpxml-measures/workflow/tests/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1288,15 +1288,11 @@ def _write_hers_hvac_results(all_results, test_results_csv)
all_results = all_results.sort_by { |k, _v| k.downcase }.to_h
hvac_energy = {}
CSV.open(test_results_csv, 'w') do |csv|
csv << ['Test Case', 'HVAC (kWh or therm)', 'HVAC Fan (kWh)']
csv << ['Test Case', 'Heat/Cool Energy (MBtu)', 'Fan Energy (MBtu)']
all_results.each do |xml, results|
csv << [xml, results[0], results[1]]
test_name = File.basename(xml, File.extname(xml))
if xml.include?('HVAC2a') || xml.include?('HVAC2b')
hvac_energy[test_name] = results[0] / 10.0 + results[1] / 293.08
else
hvac_energy[test_name] = results[0] + results[1]
end
hvac_energy[test_name] = results[0] + results[1]
end
end
puts "Wrote results to #{test_results_csv}."
Expand All @@ -1309,20 +1305,11 @@ def _write_hers_dse_results(all_results, test_results_csv)
all_results = all_results.sort_by { |k, _v| k.downcase }.to_h
dhw_energy = {}
CSV.open(test_results_csv, 'w') do |csv|
csv << ['Test Case', 'Heat/Cool (kWh or therm)', 'HVAC Fan (kWh)']
all_results.each do |xml, results|
next unless ['HVAC3a.xml', 'HVAC3e.xml'].include? xml

csv << [xml, results[0], results[1]]
test_name = File.basename(xml, File.extname(xml))
dhw_energy[test_name] = results[0] / 10.0 + results[1] / 293.08
end
csv << ['Test Case', 'Heat/Cool Energy (MBtu)', 'Fan Energy (MBtu)']
all_results.each do |xml, results|
next if ['HVAC3a.xml', 'HVAC3e.xml'].include? xml

csv << [xml, results[0], results[1]]
test_name = File.basename(xml, File.extname(xml))
dhw_energy[test_name] = results[0] / 10.0 + results[1] / 293.08
dhw_energy[test_name] = results[0] + results[1]
end
end
puts "Wrote results to #{test_results_csv}."
Expand All @@ -1335,10 +1322,10 @@ def _write_hers_hot_water_results(all_results, test_results_csv)
all_results = all_results.sort_by { |k, _v| k.downcase }.to_h
dhw_energy = {}
CSV.open(test_results_csv, 'w') do |csv|
csv << ['Test Case', 'DHW Energy (therms)', 'Recirc Pump (kWh)']
csv << ['Test Case', 'DHW Energy (MBtu)', 'Pump Energy (MBtu)']
all_results.each do |xml, result|
wh_energy, recirc_energy = result
csv << [xml, (wh_energy * 10.0).round(1), (recirc_energy * 293.08).round(1)]
csv << [xml, wh_energy, recirc_energy]
test_name = File.basename(xml, File.extname(xml))
dhw_energy[test_name] = wh_energy + recirc_energy
end
Expand All @@ -1357,15 +1344,15 @@ def _get_simulation_load_results(results)

def _get_simulation_hvac_energy_results(results, is_heat, is_electric_heat)
if not is_heat
hvac = UnitConversions.convert(results["End Use: #{FT::Elec}: #{EUT::Cooling} (MBtu)"], 'MBtu', 'kwh').round(2)
hvac_fan = UnitConversions.convert(results["End Use: #{FT::Elec}: #{EUT::CoolingFanPump} (MBtu)"], 'MBtu', 'kwh').round(2)
hvac = results["End Use: #{FT::Elec}: #{EUT::Cooling} (MBtu)"].round(2)
hvac_fan = results["End Use: #{FT::Elec}: #{EUT::CoolingFanPump} (MBtu)"].round(2)
else
if is_electric_heat
hvac = UnitConversions.convert(results["End Use: #{FT::Elec}: #{EUT::Heating} (MBtu)"], 'MBtu', 'kwh').round(2)
hvac = results["End Use: #{FT::Elec}: #{EUT::Heating} (MBtu)"].round(2)
else
hvac = UnitConversions.convert(results["End Use: #{FT::Gas}: #{EUT::Heating} (MBtu)"], 'MBtu', 'therm').round(2)
hvac = results["End Use: #{FT::Gas}: #{EUT::Heating} (MBtu)"].round(2)
end
hvac_fan = UnitConversions.convert(results["End Use: #{FT::Elec}: #{EUT::HeatingFanPump} (MBtu)"], 'MBtu', 'kwh').round(2)
hvac_fan = results["End Use: #{FT::Elec}: #{EUT::HeatingFanPump} (MBtu)"].round(2)
end

assert_operator(hvac, :>, 0)
Expand Down
16 changes: 8 additions & 8 deletions workflow/tests/base_results/RESNET_Test_4.4_HVAC.csv
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Test Case,HVAC (kWh or therm),HVAC Fan (kWh)
HVAC1a.xml,6215.45,958.05
HVAC1b.xml,4618.8,958.05
HVAC2a.xml,639.31,542.47
HVAC2b.xml,554.07,542.47
HVAC2c.xml,7658.24,1129.2
HVAC2d.xml,4642.54,1129.2
HVAC2e.xml,14614.58,542.47
Test Case,Heat/Cool Energy (MBtu),Fan Energy (MBtu)
HVAC1a.xml,21.21,3.27
HVAC1b.xml,15.76,3.27
HVAC2a.xml,63.93,1.85
HVAC2b.xml,55.41,1.85
HVAC2c.xml,26.13,3.85
HVAC2d.xml,15.84,3.85
HVAC2e.xml,49.87,1.85
18 changes: 9 additions & 9 deletions workflow/tests/base_results/RESNET_Test_4.5_DSE.csv
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Test Case,Heat/Cool (kWh or therm),HVAC Fan (kWh)
HVAC3a.xml,562.71,327.95
HVAC3e.xml,6217.5,957.76
HVAC3b.xml,687.53,579.11
HVAC3c.xml,593.94,383.04
HVAC3d.xml,648.15,566.8
HVAC3f.xml,7859.87,1211.85
HVAC3g.xml,6633.66,1019.3
HVAC3h.xml,7389.79,1113.96
Test Case,Heat/Cool Energy (MBtu),Fan Energy (MBtu)
HVAC3a.xml,56.27,1.12
HVAC3b.xml,68.75,1.98
HVAC3c.xml,59.39,1.31
HVAC3d.xml,64.82,1.93
HVAC3e.xml,21.22,3.27
HVAC3f.xml,26.82,4.14
HVAC3g.xml,22.64,3.48
HVAC3h.xml,25.22,3.8
30 changes: 15 additions & 15 deletions workflow/tests/base_results/RESNET_Test_4.6_Hot_Water.csv
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
Test Case,DHW Energy (therms),Recirc Pump (kWh)
L100AD-HW-01.xml,194.9,0.0
L100AD-HW-02.xml,259.5,0.0
L100AD-HW-03.xml,174.1,0.0
L100AD-HW-04.xml,251.2,0.0
L100AD-HW-05.xml,548.5,439.6
L100AD-HW-06.xml,227.5,5.9
L100AD-HW-07.xml,206.5,0.0
L100AM-HW-01.xml,110.3,0.0
L100AM-HW-02.xml,135.6,0.0
L100AM-HW-03.xml,90.8,0.0
L100AM-HW-04.xml,132.5,0.0
L100AM-HW-05.xml,295.7,439.6
L100AM-HW-06.xml,122.7,5.9
L100AM-HW-07.xml,120.4,0.0
Test Case,DHW Energy (MBtu),Pump Energy (MBtu)
L100AD-HW-01.xml,19.49,0.0
L100AD-HW-02.xml,25.95,0.0
L100AD-HW-03.xml,17.41,0.0
L100AD-HW-04.xml,25.12,0.0
L100AD-HW-05.xml,54.85,1.5
L100AD-HW-06.xml,22.75,0.02
L100AD-HW-07.xml,20.65,0.0
L100AM-HW-01.xml,11.03,0.0
L100AM-HW-02.xml,13.56,0.0
L100AM-HW-03.xml,9.08,0.0
L100AM-HW-04.xml,13.25,0.0
L100AM-HW-05.xml,29.57,1.5
L100AM-HW-06.xml,12.27,0.02
L100AM-HW-07.xml,12.04,0.0
6 changes: 3 additions & 3 deletions workflow/tests/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -457,16 +457,16 @@ def _get_reference_home_components(hpxml, test_num, version)
results['Window SHGCo'] = win_shgc_htg.round(2)
assert_equal(win_shgc_htg, win_shgc_clg)
else
results['Window SHGCo (heating)'] = win_shgc_htg.round(2)
results['Window SHGCo (cooling)'] = win_shgc_clg.round(2)
results['Window SHGCo (heating)'] = win_shgc_htg.round(2)
results['Window SHGCo (cooling)'] = win_shgc_clg.round(2)
end

# Infiltration
sla, _ach50 = _get_infiltration(hpxml_bldg)
results['SLAo (ft2/ft2)'] = sla.round(5)

# Internal gains
xml_it_sens, xml_it_lat = _get_internal_gains(hpxml_bldg, hpxml.header.eri_calculation_version)
xml_it_sens, xml_it_lat = _get_internal_gains(hpxml_bldg, eri_version)
results['Sensible Internal gains (Btu/day)'] = xml_it_sens.round(0)
results['Latent Internal gains (Btu/day)'] = xml_it_lat.round(0)

Expand Down