Skip to content

Commit

Permalink
Update Qinf=f(NL) equation.
Browse files Browse the repository at this point in the history
  • Loading branch information
shorowit committed Dec 18, 2023
1 parent bddcef9 commit 85b4086
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
7 changes: 6 additions & 1 deletion HPXMLtoOpenStudio/resources/airflow.rb
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ def self.get_default_mech_vent_flow_rate(hpxml_bldg, vent_fan, weather, cfa, nbe
sla, _ach50, _nach, _volume, height, a_ext = get_values_from_air_infiltration_measurements(hpxml_bldg, cfa, weather)

nl = get_infiltration_NL_from_SLA(sla, height)
q_inf = nl * weather.data.WSF * cfa / 7.3 # Effective annual average infiltration rate, cfm, eq. 4.5a
q_inf = get_infiltration_Qinf_from_NL(nl, weather, cfa)

q_tot = get_mech_vent_qtot_cfm(nbeds, cfa)

Expand Down Expand Up @@ -2012,6 +2012,11 @@ def self.get_infiltration_ACH50_from_SLA(sla, n_i, floor_area, volume)
# Returns the infiltration ACH50 given a SLA.
return ((sla * floor_area * UnitConversions.convert(1.0, 'ft^2', 'in^2') * 50.0**n_i * 60.0) / (0.283316478 * 4.0**n_i * volume))
end

def self.get_infiltration_Qinf_from_NL(nl, weather, cfa)
# Returns the effective annual average infiltration rate in cfm
return nl * weather.data.WSF * cfa * 8.202 / 60.0
end

def self.calc_duct_leakage_at_diff_pressure(q_old, p_old, p_new)
return q_old * (p_new / p_old)**0.6 # Derived from Equation C-1 (Annex C), p34, ASHRAE Standard 152-2004.
Expand Down
8 changes: 4 additions & 4 deletions HPXMLtoOpenStudio/tests/test_defaults.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2303,7 +2303,7 @@ def test_mech_ventilation_fans
hpxml_bldg.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitExterior
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
_default_hpxml, default_hpxml_bldg = _test_measure()
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 27.2, 77.3)
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 27.1, 77.3)

# Test defaults w/ MF building, compartmentalization test
hpxml, hpxml_bldg = _create_hpxml('base-bldgtype-mf-unit.xml')
Expand All @@ -2328,7 +2328,7 @@ def test_mech_ventilation_fans
used_for_whole_building_ventilation: true)
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
_default_hpxml, default_hpxml_bldg = _test_measure()
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 21.6, 61.7)
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 21.7, 61.9)

# Test defaults w/ CFM50 infiltration
hpxml, hpxml_bldg = _create_hpxml('base-enclosure-infil-cfm50.xml')
Expand All @@ -2355,7 +2355,7 @@ def test_mech_ventilation_fans
used_for_whole_building_ventilation: true)
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
_default_hpxml, default_hpxml_bldg = _test_measure()
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 27.0, 77.1)
_test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 27.0, 77.2)

# Test inputs not overridden by defaults w/ CFIS
hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis.xml')
Expand Down Expand Up @@ -2396,7 +2396,7 @@ def test_mech_ventilation_fans
vent_fan.cfis_addtl_runtime_operating_mode = nil
XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path)
_default_hpxml, default_hpxml_bldg = _test_measure()
_test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, 149.4, 298.7, 1.0, HPXML::CFISModeAirHandler)
_test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, 149.4, 298.8, 1.0, HPXML::CFISModeAirHandler)

# Test inputs not overridden by defaults w/ ERV
hpxml, hpxml_bldg = _create_hpxml('base-mechvent-erv.xml')
Expand Down

0 comments on commit 85b4086

Please sign in to comment.