Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 3.89 KB

Rule23-15.md

File metadata and controls

53 lines (39 loc) · 3.89 KB

Airside System - Rule 23-15

Schema Version: 0.0.34
Mandatory Rule: FALSE
Rule ID: 23-15
Rule Description: Dehumidification reheat shall be the same as the system heating type.
Rule Assertion: B-RMR = expected value
Appendix G Section: Section 23 Air-side
90.1 Section Reference: G3.1.3.18 Dehumidification (Systems 3 through 8 and 11, 12, and 13)
Data Lookup: None
Evaluation Context: HVAC System

Applicability Checks:

  1. P-RMR is modeled with at least one air-side system that includes humidistatic controls.

Function Calls:

  1. get_dict_of_zones_and_terminal_units_served_by_hvac_sys
  2. baseline_system_type_compare

Applicability Checks:

  • create a list of the target system types: APPLICABLE_SYS_TYPES = [HVAC_SYS.SYS_3, HVAC_SYS.SYS_4, HVAC_SYS.SYS_5, HVAC_SYS.SYS_6, HVAC_SYS.SYS_7, HVAC_SYS.SYS_8, HVAC_SYS.SYS_11, HVAC_SYS.SYS_12, HVAC_SYS.SYS_13]

  • Get B-RMR system types: baseline_hvac_system_dict = get_baseline_system_types(B-RMR)

  • make a list of HVAC systems that are one of the applicable system types: applicable_hvac_systems = []

  • loop through the baseline_hvac_system_dict: for system_type in baseline_system_type_dict:

    • if the system type is one of the target system types, append the hvac_ids to applicable_hvac_systems: if any(baseline_system_type_compare(system_type,target-system_type, false) for target_system_type in APPLICABLE_SYS_TYPES:
      • append all hvac_ids of the system type to the applicable_hvac_systems list: applicable_hvac_systems = applicable_hvac_systems + baseline_hvac_system_dict[system_type]
  • get a list of the hvac systems and the zones they served in the P_RMR: hvac_systems_and_zones_p = get_dict_of_zones_and_terminal_units_served_by_hvac_sys(P_RMR)

  • look through each hvac system in the proposed: for hvac_p_id in hvac_systems_and_zones_p:

    • get the proposed hvac sytem: hvac_p = get_object_by_id(hvac_p_id)
    • set a boolean has_humidifcation_controls equal to false: has_humidifcation_controls = FALSE
    • get the cooling system: cooling_system_p = hvac_p.cooling_system
    • check to see if the cooling system has a humidification type other than NONE, if so, there are humidification controls set has_humidifcation_controls = TRUE: if cooling_system_p.dehumidification_type != NULL && cooling_system_p.dehumidification_type != NONE: has_humidifcation_controls = TRUE
    • if there are humidity controls, we will now check for zone humidity setpoint schedules: if has_humidifcation_controls:
      • create a list zones_with_humidity_schedules_list: zones_with_humidity_schedules_list = []
      • look through each zone served by the system: for zone_id in hvac_systems_and_zones_p[hvac_p_id]["ZONE_LIST"]:
        • get the zone: zone_p = get_object_by_id(zone_id, P_RMR)
        • also get the baseline zone: zone_b = get_object_by_id(zone_id, B_RMR)
        • check if the zone_b is served by one of the applicable system types: if zone_served_by_heating_ventilating_air_conditioning_system.in? applicable_hvac_systems.include?:
          • if the zone_p.maximum_humidity_setpoint_schedule exists, add the zone_id to the zones_with_humidity_schedules_list: if zone_p.maximum_humidity_setpoint_schedule: zones_with_humidity_schedules_list << zone_id
    • erase any duplicates on zones_with_humidity_schedules_list by calling uniq!: zones_with_humidity_schedules_list.uniq!
    • if zones_with_humidity_schedules_list has any zones on the list, the rule is applicable, return APPLICABLE and a not letting the user know which zones have humidity schedules: if len(zones_with_humidity_schedules_list)> 0: UNDETERMINED; note = "The following zones have humidity schedules: " + zones_with_humidity_schedules_list
    • if we make it down here without triggering an applicable result, the rule is not applicable: NOT_APPLICABLE

Back