lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb in openstudio-standards-0.1.9 vs lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb in openstudio-standards-0.1.10
- old
+ new
@@ -94,11 +94,11 @@
end
end
when 'NECB 2011'
volume_l_per_s = volume_m3 * 1000
- if capacity_btu_per_hr <= OpenStudio.convert(12, 'kW', 'Btu/hr')
+ if capacity_btu_per_hr <= OpenStudio.convert(12, 'kW', 'Btu/hr').get
# Fixed water heater efficiency per PNNL
water_heater_eff = 1
# Calculate the max allowable standby loss (SL)
sl_w = if volume_l_per_s < 270
40 + 0.2 * volume_l_per_s # assume bottom inlet
@@ -127,11 +127,11 @@
water_heater_eff = 0.82
# Calculate the minimum Energy Factor (EF)
base_ef, vol_drt = case template
when '90.1-2004', '90.1-2007'
[0.62, 0.0019]
- when '90.1-2010'
+ when '90.1-2010', 'NECB 2011'
[0.67, 0.0019]
when '90.1-2013'
[0.67, 0.0005]
end
@@ -150,16 +150,15 @@
else
# Thermal efficiency requirement from 90.1
et = 0.8
# Calculate the max allowable standby loss (SL)
cap_adj, vol_drt = case template
- when '90.1-2004', '90.1-2007', '90.1-2010'
+ when '90.1-2004', '90.1-2007', '90.1-2010', 'NECB 2011'
[800, 110]
when '90.1-2013'
[799, 16.6]
end
-
sl_btu_per_hr = (capacity_btu_per_hr / cap_adj + vol_drt * Math.sqrt(volume_gal))
# Calculate the skin loss coefficient (UA)
ua_btu_per_hr_per_f = (sl_btu_per_hr * et) / 70
# Calculate water heater efficiency
water_heater_eff = (ua_btu_per_hr_per_f * 70 + capacity_btu_per_hr * et) / capacity_btu_per_hr
@@ -183,9 +182,15 @@
# self.setOffCycleParasiticFuelConsumptionRate(??)
setOnCycleParasiticHeatFractiontoTank(0)
setOffCycleParasiticFuelType(fuel_type)
# self.setOffCycleParasiticFuelConsumptionRate(??)
setOffCycleParasiticHeatFractiontoTank(0.8)
+
+ # set part-load performance curve
+ if template == 'NECB 2011' && fuel_type == 'NaturalGas'
+ plf_vs_plr_curve = model.add_curve('SWH-EFFFPLR-NECB2011')
+ setPartLoadFactorCurve(plf_vs_plr_curve)
+ end
# Append the name with standards information
setName("#{name} #{water_heater_eff.round(3)} Therm Eff")
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.WaterHeaterMixed', "For #{template}: #{name}; thermal efficiency = #{water_heater_eff.round(3)}, skin-loss UA = #{ua_btu_per_hr_per_f.round}Btu/hr")