Skip to content
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions docs/section22/Rule22-44.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# CHW & CW - Rule 22-44

**Rule ID:** 22-44
**Rule Description:** Where part-load performance of chillers in the proposed design is not available, and the design temperature across the condenser is 10°F, the performance curves in Normative Appendix J, as referenced in Table J-1, shall be modeled for the specified chiller.
**Rule Assertion:** Proposed RMD = expected value
**Appendix G Section:** Table G3.1 #10b Proposed Column

**Mandatory Rule:** True
**Evaluation Context:** Each Chiller
**Table Lookup:** 90.1 Appendix J Table J-4
**Function Call:**
1. is_chiller_performance_app_j()

## Applicability Check:

- **Check 1:** Get B-RMD system types: `baseline_hvac_system_dict = get_baseline_system_types(B-RMD)`

- Check if B-RMD is modeled with at least one air-side system that is Type-7, 8, 11.1, 11.2, 12, 13, 7b, 8b, 11b, 12b, 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"]): NEXT_APPLICABILITY_CHECK`

- Else, rule is not applicable to B-RMD: `else: RULE_NOT_APPLICABLE`

- Get primary and secondary loops for B-RMD: `primary_secondary_loop_dictionary = get_primary_secondary_loops_dict(B_RMD)`

- For each chiller in B_RMD: `for chiller in B_RMD...chillers:`
- Store the design temperature across the condenser: `design_temperature_across_condenser = chiller.design_leaving_condenser_temperature - chiiler.design_entering_condenser_temperature`
- Check if chiller is connected to a primary chilled water loop that serves HVAC systems: `if chiller.cooling_loop.id in primary_secondary_loop_dictionary: CHECK_RULE_LOGIC`

**Rule Assertion:**
- Case 1: all lists of missing or non-matching validation points have a length of zero and the design temperature across the condenser is 10F: PASS: `if is_chiller_performance_app_j(chiller) and design_temperature_across_condenser == 10: PASS`
- Case 2: all lists of missing or non-matching validation points have a length of zero and the design temperature across the condenser is NOT 10F: `elif is_chiller_performance_app_j(chiller) and design_temperature_across_condenser != 10: FAIL`
- Case 3: else when all output data is present for the chiller UNDETERMINED: `else: UNDETERMINED and raise_message "FAIL unless manufacturer full- and part-load data is provided to support the modeled curves.`
- Note to RDS team - if there is missing output data the outcome is also UNDETERMINED with a message indicating that the modeled performance curves could not be evaluated.

**Notes:**
1. Can we add chiller.design_leaving_condenser_temperature to th schema?
2. Update is_chiller_performance_app_j() to take in which table to reference?
3. This rule needs to be added to the rule Workbook


**[Back](../_toc.md)**
Loading