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")