Rule ID: 21-10
Rule Description: When the building is modeled with HHW plant (served by either boiler(s) or purchased hot water/steam), the hot water pump shall be modeled as riding the pump curve if the hot water system serves less than 120,000 ft^2 otherwise it shall be modeled with a VFD.
Rule Assertion: B-RMR
Appendix G Section: Section 21 Boiler
Appendix G Section Reference: Section G3.1.3.5 Building System-Specific Modeling Requirements for the Baseline model
Applicability: All required data elements exist for B_RMR
Applicability Checks:
- B-RMR is modeled with at least one air-side system that is Type-1, 5, 7, 11.2, 12, 1a, 7a, 11.2a, 12a, 1b, 3b, 5b, 6b, 7b, 8b, 9b, 11b, 12b, 13b, 1c, 3c, 7c, 11c, 13c.
Manual Check: None
Evaluation Context: Building
Data Lookup: None
Function Call:
- get_baseline_system_types()
- get_loop_zone_list_w_area()
Applicability Checks:
-
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-1, 5, 7, 11.2, 12, 1a, 7a, 11.2a, 12a, 1b, 3b, 5b, 6b, 7b, 8b, 9b, 11.1b, 12b, 1c, 3c, 7c, 8c, 11.1c, continue to rule logic:
if any(sys_type in baseline_hvac_system_dict.keys() for sys_type in ["SYS-1", "SYS-5", "SYS-7", "SYS-11.2", "SYS-12", "SYS-1A", "SYS-7A", "SYS-11.2A", "SYS-12A", "SYS-1B", "SYS-3B", "SYS-5B", "SYS-6B", "SYS-7B", "SYS-8B", "SYS-9B", "SYS-11.1B", "SYS-12B", "SYS-1C", "SYS-3C", "SYS-7C", "SYS-11.1C"]): CHECK_RULE_LOGIC
-
Else, rule is not applicable to B-RMR:
else: RULE_NOT_APPLICABLE
-
-
Get dictionary that saves the list of zones and the total floor area served by each CHW or HHW loop:
loop_zone_list_w_area_dict = get_loop_zone_list_w_area(B_RMR)
-
For each pump in B-RMR:
for pump_b in B_RMR.RulesetModelInstance.pumps:
-
Check if pump serves heating hot water loop:
if pump_b.loop_or_piping.type == "HEATING":
-
Check if heating hot water loop serves less than 120,000 ft^2, set target pump type to riding the pump curve:
if loop_area_dict(pump_b.loop_or_piping) < 120000: target_pump_type == "FIXED_SPEED"
-
Else, heating hot water loop serves 120,000 ft^2 or more, set target pump type to variable speed:
else: target_pump_type == "VARIABLE_SPEED"
Rule Assertion - Component:
-
Case 1: For heating hot water loop, if the hot water pump is modeled as riding the pump curve when the hot water system serves less than 120,000 ft^2, or modeled with a VFD when the hot water system serves more than or equal to 120,000 ft^2:
if pump_b.speed_control == target_pump_type: PASS
-
Case 2: Else:
else: FAIL
-
-
-