Skip to content

Latest commit

 

History

History
50 lines (31 loc) · 3.05 KB

Rule22-12.md

File metadata and controls

50 lines (31 loc) · 3.05 KB

CHW&CW - Rule 22-12

Schema Version: 0.0.25
Mandatory Rule: True
Rule ID: 22-12
Rule Description: The heat rejection system shall be a single loop, modeled with a single cooling tower
Rule Assertion: B-RMR = expected value
Appendix G Section: Section 22 CHW&CW Loop
90.1 Section Reference: G3.1.3.11
Data Lookup: None
Evaluation Context: Each Heat Rejection Loop
Applicability Checks:

  1. B-RMI is modeled with at least one air-side system that is Type-7, 8, 12, 13, 7b, 8b, 12b.
  2. B-RMI is modeled with heat rejection loop

Function Call:

  1. get_heat_rejection_loops_connected_to_baseline_systems()

Applicability Checks:

  • The function get_heat_rejection_loops_connected_to_baseline_systems() returns a list of loops that are connected to Type 7,8,12,13,7b,8b,12b. Get the list of applicable heat rejection loops: heat_rejection_loop_ids_b = get_heat_rejection_loops_connected_to_baseline_systems(B_RMI)

  • if there is one or more loops on this list, the rule is applicable: if len(heat_rejection_loop_ids_b) > 0:

    • continue to rule logic
  • otherwise, rule not applicable: ELSE: NOT_APPLICABLE

Rule Logic:

  • create a variable to count the number of heat rejections: number_of_baseline_heat_rejections_b = 0

  • we are looking for one heat rejection connected to one condensing loop. There might be heat rejections for process loads that are not applicable for this rule, so look at each heat_rejection: for heat_rejection in B_RMI.heat_rejections:

    • check if the heat rejection is connected to one of the fluid loops in heat_rejection_loop_ids_b, this tells us that it is not a process load cooling tower: if heat_rejection.loop.id in heat_rejection_loop_ids_b:

      • increment the number_of_baseline_heat_rejections_b: number_of_baseline_heat_rejections_b += 1

Rule Assertion:

  • Case 1: If there is exactly one heat rejection, AND there is exactly one heat rejection loop, PASS: if number_of_baseline_heat_rejections_b == 1 AND len(heat_rejection_loop_ids_b) == 1 : PASS

  • Case 2: Elsif there is exactly one heat rejection, but there is more than one fluid loop, fail and include note: elsif number_of_baseline_heat_rejections_b == 1 AND len(heat_rejection_loop_ids_b) > 1: FAIL; note = "There is more than one condenser loop for this project. There should only be one condenser loop attached to all chillers in the baseline chiller plant"

  • Case 3: Elsif there is exactly one heat rejection loop, but more than one heat rejection, fail and include note: elsif number_of_baseline_heat_rejections_b > 1 AND len(heat_rejection_loop_ids_b) == 1: FAIL; note = "There is more than one cooling tower for the baseline chiller plant. There should only be one cooling tower attached to the condenser loop"

  • Case 4: Else fail and note: Else: FAIL; note = "There is more than one cooling tower on this loop and there is more than one condenser loop for the chiller plant. For the baseline chiller plant, there should be only one condenser loop with only one cooling tower."

Back