Skip to content
28 changes: 22 additions & 6 deletions base.pxt
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,10 @@
parameter "supply_duct_area_fraction", :default=>0 # fraction of conditioned floor area to set as supply duct area
parameter "return_duct_area_fraction", :default=>0 # fraction of conditioned floor area to set as return duct area
parameter "duct_zone", :default=>"Main Zone" # zone where supply and return ducts are located
parameter "duct_insulation_r_value", :default=>0 # R-value of duct insulation without air film
parameter "duct_air_film_r_value", :default=>1.5 # R-value of exterior air film for duct (or duct insulation)
parameter "duct_insulation_r_value_supply", :default=>0 # R-value of duct insulation without air film
parameter "duct_air_film_r_value_supply", :default=>1.7 # R-value of exterior air film for duct (or duct insulation)
parameter "duct_insulation_r_value_return", :default=>0 # R-value of duct insulation without air film
parameter "duct_air_film_r_value_return", :default=>1.7 # R-value of exterior air film for duct (or duct insulation)
parameter "duct_leakage_flow", :default=>0 # combined cfm airflow leaking out of supply + return ducts
parameter "duct_exterior_emittance", :default=>0 # Exposed (i.e. insulation) outside surface exterior long wave (thermal) emittance

Expand Down Expand Up @@ -75,6 +77,14 @@ def c_f(c)
return c*9/5.0 + 32.0
end

def calculate_duct_air_film_r_value(duct_insulation_r_value,duct_type)
if duct_type == "SUPPLY"
return 2.2438 - 0.4381 * duct_insulation_r_value
elsif duct_type == "RETURN"
return 2.0388 - 0.2947 * duct_insulation_r_value
end
end
Copy link
Member

Choose a reason for hiding this comment

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

Did you test what happens if the air film is less than 1?

Copy link
Member Author

@nathancoliver nathancoliver Jul 11, 2023

Choose a reason for hiding this comment

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

I performed some tests, and it appears that negative air films close to zero produce unusual and unexpected heating and cooling energy use results. Other air film values, including positive numbers between 0 and 1 and negative numbers less than 1, do not produce strange results.


# Internal use
nsteps = 6

Expand Down Expand Up @@ -647,27 +657,33 @@ window_area = 0.0
rsVFPerTon = <%= fan_flow_per_cap %>

<% if supply_duct_area > 0 %>
<% if duct_insulation_r_value_supply > 0 %>
<% duct_air_film_r_value_supply = calculate_duct_air_film_r_value(duct_insulation_r_value_supply,"SUPPLY") %>
<% end %>
// Main Zone Supply Duct
DUCTSEG "Main Zone Supply Duct"
dsTy = SUPPLY
dsExArea = <%= supply_duct_area %>
dsExCnd = ADJZN
dsAdjZn = "<%= duct_zone %>"
dsInsulR = <%= duct_insulation_r_value %>
dsExH = <%= 1 / duct_air_film_r_value %>
dsInsulR = <%= duct_insulation_r_value_supply %>
dsExH = <%= 1 / duct_air_film_r_value_supply %>
dsLeakF = <%= duct_leakage_fraction %>
dsEpsLW = <%= duct_exterior_emittance %>
<% end %>

<% if return_duct_area > 0 %>
<% if duct_insulation_r_value_return > 0 %>
<% duct_air_film_r_value_return = calculate_duct_air_film_r_value(duct_insulation_r_value_return,"RETURN") %>
<% end %>
// Main Zone Return Duct
DUCTSEG "Main Zone Return Duct"
dsTy = Return
dsExArea = <%= return_duct_area %>
dsExCnd = ADJZN
dsAdjZn = "<%= duct_zone %>"
dsInsulR = <%= duct_insulation_r_value %>
dsExH = <%= 1 / duct_air_film_r_value %>
dsInsulR = <%= duct_insulation_r_value_return %>
dsExH = <%= 1 / duct_air_film_r_value_return %>
dsLeakF = <%= duct_leakage_fraction %>
dsEpsLW = <%= duct_exterior_emittance %>
<% end %>
Expand Down
4 changes: 2 additions & 2 deletions cases/dse/HVAC3c.pxv
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
:supply_duct_area_fraction=>0.2,
:return_duct_area_fraction=>0.05,
:duct_zone=>"Basement Zone",
:duct_insulation_r_value=>6,
:duct_air_film_r_value=>1.0
:duct_insulation_r_value_supply=>6,
:duct_insulation_r_value_return=>6
4 changes: 2 additions & 2 deletions cases/dse/HVAC3d.pxv
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
:supply_duct_area_fraction=>0.2,
:return_duct_area_fraction=>0.05,
:duct_zone=>"Basement Zone",
:duct_insulation_r_value=>6,
:duct_air_film_r_value=>1.0,
:duct_insulation_r_value_supply=>6,
:duct_insulation_r_value_return=>6,
:duct_leakage_flow=>250
4 changes: 2 additions & 2 deletions cases/dse/HVAC3g.pxv
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
:supply_duct_area_fraction=>0.2,
:return_duct_area_fraction=>0.05,
:duct_zone=>"Attic Zone",
:duct_insulation_r_value=>6,
:duct_air_film_r_value=>1.0
:duct_insulation_r_value_supply=>6,
:duct_insulation_r_value_return=>6
4 changes: 2 additions & 2 deletions cases/dse/HVAC3h.pxv
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
:supply_duct_area_fraction=>0.2,
:return_duct_area_fraction=>0.05,
:duct_zone=>"Attic Zone",
:duct_insulation_r_value=>6,
:duct_air_film_r_value=>1.0,
:duct_insulation_r_value_supply=>6,
:duct_insulation_r_value_return=>6,
:duct_leakage_flow=>250