Schema Version: 0.0.23
Mandatory Rule: True
Rule ID: 23-16
Rule Description: Systems 5 - 8, the baseline system shall be modeled with preheat coils controlled to a fixed set point 20F less than the design room heating temperature setpoint.
Rule Assertion: B-RMR = expected value
Appendix G Section: Section 23 Air-side
90.1 Section Reference: Section G3.1.3.19 Preheat Coils (Systems 5 through 8)
Data Lookup: None
Evaluation Context: Building
Applicability Checks:
- B-RMR is modeled with at least one air-side system that is Type-5, 6, 7, 8, 7a, 8a, 5b, 6b, 7b, 8b, 7c.
Function Calls:
- get_baseline_system_types()
- baseline_system_type_compare()
- get_component_by_id()
Applicability Checks:
-
create a list of the target system types:
APPLICABLE_SYS_TYPES = [HVAC_SYS.SYS_5,HVAC_SYS.SYS_6,HVAC_SYS.SYS_7,HVAC_SYS.SYS_8]
-
Get B-RMR system types:
baseline_hvac_system_dict = get_baseline_system_types(B-RMR)
-
Check if B-RMR is modeled with at least one air-side system that is Type-5, 6, 7, 8, 7a, 8a, 5b, 6b, 7b, 8b, 7c, continue to rule logic:
if any(baseline_system_type_compare(system_type, target_sys_type, false) for system_type in baseline_system_types_dict.keys() for applicable_sys_type in APPLICABLE_SYS_TYPES): CHECK RULE LOGIC
-
Else, rule is not applicable to B-RMR:
else: RULE_NOT_APPLICABLE
-
-
make a list of eligible hvac systems:
eligible_systems = []
-
loop through the system types in baseline_hvac_system_dict:
for system_type in baseline_hvac_system_dict:
-
check if it is one of the target baseline system types:
if any(aseline_system_type_compare(system_type,target_system_type,false) for target_system_type in target_system_types):
- add the hvac system ids to the list of eligible systems:
eligible_systems = eligible_systems + baseline_hvac_system_dict[system_type]
- add the hvac system ids to the list of eligible systems:
-
-
For each zone in B_RMR:
for zone_b in B_RMR...zones:
-
For each terminal in zone:
for terminal_b in zone_b.terminals:
-
Get HVAC system serving terminal:
hvac_b = terminal_b.served_by_heating_ventilation_air_conditioning_systems
-
Get zone design heating temperature setpoint:
zone_heating_setpoint_b = zone_b.design_thermostat_heating_setpoint
-
Save HVAC system and zone design heating temperature setpoint if temperature is higher than current value saved:
if zone_heating_setpoint_b > hvac_max_zone_setpoint_dict[hvac_b]: hvac_max_zone_setpoint_dict[hvac_b] = zone_heating_setpoint_b
-
-
-
For each HVAC system in B_RMR:
for hvac_b in B_RMR...heating_ventilating_air_conditioning_systems:
-
Get preheat system of HVAC system:
preheat_b = hvac_b.preheat_system
Rule Assertion:
-
Case 1: For each Baseline system type 5, 6, 7, 8, 7a, 8a, 5b, 6b, 7b, 8b, 7c, if preheat system is a coil connected to heating hot water loop, and preheat coils is controlled to a fixed set point 20F less than the design room heating temperature setpoint:
if ( preheat_b.heating_system_type == "FLUID_LOOP" ) AND ( get_component_by_id(preheat_b.hot_water_loop).type == "HEATING" ) AND ( preheat_b.heating_coil_setpoint == hvac_max_zone_setpoint_dict[hvac_b.id] - 20F ): PASS
-
Case 2: Else:
else: FAIL
-
Notes:
- Updated the Rule ID from 23-19 to 23-16 on 11/28/2022