Skip to content

Latest commit

 

History

History
58 lines (35 loc) · 2.44 KB

Rule22-24.md

File metadata and controls

58 lines (35 loc) · 2.44 KB

CHW&CW - Rule 22-24

Schema Version: 0.0.10
Mandatory Rule: True
Rule ID: 22-24
Rule Description: For baseline chilled-water systems served by chiller(s), the primary pump shall be modeled as constant volume.
Rule Assertion: B-RMR = expected value
Appendix G Section: Section 22 CHW&CW Loop
90.1 Section Reference: Section G3.1.3.10 Chilled-water pumps (Systems 7, 8, 11, 12, and 13)
Data Lookup: None
Evaluation Context: Building
Applicability Checks:

  1. B-RMR is modeled with at least one air-side system that is Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11.1b, 12b.
  2. B-RMR is modeled with primary-secondary configuration.

Function Calls:

  1. get_baseline_system_types()
  2. get_primary_secondary_loops()
  3. get_component_by_id()

Applicability Checks:

  • Check 1: 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-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11b, 12b, 13b, i.e. with air-side system served by chiller(s), continue to the next applicability check: if any(sys_type in baseline_hvac_system_dict.keys() for sys_type in ["SYS-7", "SYS-8", "SYS-11.1", "SYS-11.2", "SYS-12", "SYS-13", "SYS-7B", "SYS-8B", "SYS-11B", "SYS-12B", "SYS-13B"]): NEXT_APPLICABILITY_CHECK

    • Else, rule is not applicable to B-RMR: else: RULE_NOT_APPLICABLE

  • Check 2: Get primary and secondary loops for B-RMR: primary_secondary_loop_dictionary = get_primary_secondary_loops(B_RMR)

    • Check if B-RMR is modeled with primary secondary configuration, continue to rule logic: if LEN(primary_secondary_loop_dictionary) != 0: CHECK_RULE_LOGIC

    • Else, rule is not applicable to B-RMR: else: RULE_NOT_APPLICABLE

Rule Logic:

  • For each pump in B_RMR: for pump_b in B_RMR.RulesetModelInstance.pumps:

    • Save loop served by pump and pump to a dictionary: loop_pump_dictionary[pump_b.loop_or_piping].append(pump_b)
  • For each primary loop in B-RMR: for primary_loop_id_b in primary_secondary_loop_dictionary.keys():

    • For each pump serving primary loop: for pump_b in loop_pump_dictionary[primary_loop_id_b]:

      Rule Assertion - Component:

      • Case 1: If pump serving primary loop is modeled as constant volume: if pump_b.speed_control == FIXED_SPEED: PASS

      • Case 2: Else: else: FAIL

Notes:

  1. Updated the Rule ID from 22-25 to 22-24 on 7/26/2022

Back