lib/openstudio-standards/hvac/cbecs_hvac.rb in openstudio-standards-0.5.0 vs lib/openstudio-standards/hvac/cbecs_hvac.rb in openstudio-standards-0.6.0.rc1
- old
+ new
@@ -1,9 +1,10 @@
-# Method to apply a typical CBECS HVAC system to thermal zones
module OpenstudioStandards
+ # The HVAC module provides methods create, modify, and get information about HVAC systems in the model
module HVAC
# @!group CBECS HVAC
+ # Method to apply a typical CBECS HVAC system to thermal zones
# Adds the HVAC system as derived from the combinations of CBECS 2012 MAINHT and MAINCL fields.
# Mapping between combinations and HVAC systems per http://www.nrel.gov/docs/fy08osti/41956.pdf
# Table C-31
#
@@ -14,15 +15,15 @@
# @return [Boolean] returns true if successful, false if not
def self.add_cbecs_hvac_system(model, standard, hvac_system_type, zones)
# the 'zones' argument includes zones that have heating, cooling, or both
# if the HVAC system type serves a single zone, handle zones with only heating separately by adding unit heaters
# applies to system types PTAC, PTHP, PSZ-AC, and Window AC
- heated_and_cooled_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
- heated_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) }
- cooled_zones = zones.select { |zone| standard.thermal_zone_cooled?(zone) }
- cooled_only_zones = zones.select { |zone| !standard.thermal_zone_heated?(zone) && standard.thermal_zone_cooled?(zone) }
- heated_only_zones = zones.select { |zone| standard.thermal_zone_heated?(zone) && !standard.thermal_zone_cooled?(zone) }
+ heated_and_cooled_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
+ heated_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) }
+ cooled_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
+ cooled_only_zones = zones.select { |zone| !OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
+ heated_only_zones = zones.select { |zone| OpenstudioStandards::ThermalZone.thermal_zone_heated?(zone) && !OpenstudioStandards::ThermalZone.thermal_zone_cooled?(zone) }
system_zones = heated_and_cooled_zones + cooled_only_zones
# system type naming convention:
# [ventilation strategy] [ cooling system and plant] [heating system and plant]
@@ -433,11 +434,15 @@
standard.model_add_hvac_system(model, 'PVAV Reheat', ht = 'DistrictHeating', znht = 'DistrictHeating', cl = 'Electricity', zones)
when 'PVAV with PFP boxes'
standard.model_add_hvac_system(model, 'PVAV PFP Boxes', ht = 'Electricity', znht = 'Electricity', cl = 'Electricity', zones)
- when 'PVAV with gas heat with electric reheat'
- standard.model_add_hvac_system(model, 'PVAV Reheat', ht = 'Gas', znht = 'Electricity', cl = 'Electricity', zones)
+ when 'PVAV with gas heat with electric reheat', 'PVAV with gas coil heat with electric reheat'
+ standard.model_add_hvac_system(self, 'PVAV Reheat', ht = 'Gas', znht = 'Electricity', cl = 'Electricity', zones,
+ air_loop_heating_type: 'Gas')
+
+ when 'PVAV with gas boiler heat with electric reheat'
+ standard.model_add_hvac_system(self, 'PVAV Reheat', ht = 'Gas', znht = 'Electricity', cl = 'Electricity', zones)
# all residential systems do not have ventilation
when 'Residential AC with baseboard electric'
standard.model_add_hvac_system(model, 'Residential AC', ht = nil, znht = nil, cl = nil, cooled_zones)
standard.model_add_hvac_system(model, 'Baseboards', ht = 'Electricity', znht = nil, cl = nil, heated_zones)