Skip to content

Latest commit

 

History

History
65 lines (39 loc) · 3.31 KB

Rule23-16.md

File metadata and controls

65 lines (39 loc) · 3.31 KB

Airside System - Rule 23-16

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:

  1. 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:

  1. get_baseline_system_types()
  2. baseline_system_type_compare()
  3. 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

Rule Logic:

  • 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]
  • 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:

  1. Updated the Rule ID from 23-19 to 23-16 on 11/28/2022

Back