Skip to content

Latest commit

 

History

History
73 lines (63 loc) · 5.67 KB

Rule19-17.md

File metadata and controls

73 lines (63 loc) · 5.67 KB

Section 19 - Rule 19-17

Schema Version: 0.0.23
Mandatory Rule: True
Rule ID: 19-17
Rule Description: For baseline system 1 and 2, the total fan electrical power (Pfan) for supply, return, exhaust, and relief shall be = airflows × 0.3, where, airflows = the baseline system maximum design supply fan airflow rate, airflow.
Rule Assertion: Options are Pass/Fail/NOT_APPLICABLE
Appendix G Section: G3.1.2.9
90.1 Section Reference: None

Data Lookup: None

Evaluation Context: Each HeatingVentilatingAirConditioningSystem

Applicability Checks:

  1. Applies to baseline HVAC system types 1 and 2.

Function Calls:

  1. get_baseline_system_types()
  2. get_dict_of_zones_and_terminal_units_served_by_hvac_sys()
  3. get_fan_object_electric_power()

Rule Logic:

Applicability Check 1

  • Create a list of the target system types: target_system_types = [HVAC_SYS.SYS_1, HVAC_SYS.SYS_2]
  • Create dictionary of baseline system types: baseline_system_types_dict = get_baseline_system_types(B_RMI)
  • Check if B-RMR is modeled with at least one applicable air-side system, if yes then carry on, if no then NOT_APPLICABLE for the project: if any(baseline_system_type_compare(system_type, target_sys_type, false) for system_type in baseline_hvac_system_dict.keys() for target_system_type in target_system_types):
    • Create dictionary of hvac systems, zones, and terminal units: dict_of_zones_and_terminal_units_served_by_hvac_sys = get_dict_of_zones_and_terminal_units_served_by_hvac_sys(B_RMI)
    • For each hvac system in the B_RMI: for hvac in B_RMI...HeatingVentilatingAirConditioningSystem:
      • Get the baseline system type: sys_type = list(baseline_system_types_dict.keys())[list(baseline_system_types_dict.values()).index(hvac.id)])

      • Check if system type is of an applicable system type, if yes then carry on, if no then NOT_APPLICABLE for the hvac system: if any(baseline_system_type_compare(sys_type, target_sys_type, false) for target_system_type in target_system_types):

        • Get the list of zones associated with the hvac system: zone_list = dict_of_zones_and_terminal_units_served_by_hvac_sys[hvac.id]["ZONE_LIST"]
        • Reset supply airflow to zero: supply_airflow_b = 0
        • Reset total_fan_power to zero: total_fan_power = 0
        • Reset fan_power_airflow to zero: fan_power_airflow = 0
        • Get the fan system object: fan_sys_b = hvac.fan_system
        • Get list of supply fan fan objects: fan_sys_supply_list = list(fan_sys_b.supply_fans)
        • Get list of return fan fan objects: fan_sys_return_list = list(fan_sys_b.return_fans)
        • Get list of relief fan fan objects: fan_sys_relief_list = list(fan_sys_b.relief_fans)
        • Get list of exhaust fan fan objects: fan_sys_exhaust_list = list(fan_sys_b.exhaust_fans)

        Below cycles through all fans associated with the HVAC system and sums the total fan kW.

        • Cycle through the list of supply fans: for fan_b in fan_sys_supply_list:

          • Get the supply airflow and add to cumulative supply airflow as the logic cycles through the supply fans: supply_airflow_b = supply_airflow_b + fan_b.design_airflow
          • Get the fan power: fan_elec_power = get_fan_object_electric_power(B_RMI,fan_b)
          • Add to the total power: total_fan_power = total_fan_power + fan_elec_power
        • Cycle through the list of return fans: for fan_b in fan_sys_return_list:

          • Get the fan power: fan_elec_power = get_fan_object_electric_power(B_RMI,fan_b)
          • Add to the total power: total_fan_power = total_fan_power + fan_elec_power
        • Cycle through the list of relief fans: for fan_b in fan_sys_relief_list:

          • Get the fan power: fan_elec_power = get_fan_object_electric_power(B_RMI,fan_b)
          • Add to the total power: total_fan_power = total_fan_power + fan_elec_power
        • Cycle through the list of exhaust fans: for fan_b in fan_sys_exhaust_list:

          • Get the fan power: fan_elec_power = get_fan_object_electric_power(B_RMI,fan_b)
          • Add to the total power: total_fan_power = total_fan_power + fan_elec_power
        • Cycle through each zone associated with the HVAC system to get the exhaust fan power: for zone_b in zone_list:

          • Create a zone object from the zone id (not sure how the RCT will do this): zone_b_obj = zone_b
          • Check if there are any exhaust fan objects associated with the zone: if zone_b_obj.zonal_exhaust_fan != Null:
            • Get the fan power: fan_elec_power = get_fan_object_electric_power(B_RMI,zone_b_obj.zonal_exhaust_fan)
            • Add to the total power: total_fan_power = total_fan_power + fan_elec_power
        • Calculate W/airflow: fan_power_airflow = total_fan_power/supply_airflow_b

        • Rule Assertion:

        • Case 1: If fan_power_airflow equals 0.3: if fan_power_airflow <= 0.3: outcome = "PASS"

        • Case 2: Else, fail: Else: outcome = "Fail"

Notes/Questions:

  1. Is the design_pressure_rise the same as total static pressure?
  2. I don't need case 1 but I put it here just so the RCT could see the "perfect" result.
  3. Note if there are multiple fan_system.supply_fans this RDS sums the airflow as if they were in parallel as opposed to series.
  4. Updated the Rule ID from 19-18 to 19-17 on 04/17/2023

Back