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:
- 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.
- B-RMR is modeled with primary-secondary configuration.
Function Calls:
- get_baseline_system_types()
- get_primary_secondary_loops()
- 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
-
-
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)
- Save loop served by pump and pump to a dictionary:
-
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:
- Updated the Rule ID from 22-25 to 22-24 on 7/26/2022