Schema Version: 0.0.24
Mandatory Rule: False
Rule ID: 19-34
Rule Description: Where no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in this table, heating and/or cooling system fans shall not be simulated as running continuously during occupied hours but shall be cycled ON and OFF to meet heating and cooling loads during all hours in the baseline design.
Rule Assertion: Options are NOT_APPLICABLE/UNDETERMINED
Appendix G Section: Section G3.1-4 Schedules Exception #1.
Appendix G Section Reference: Section G3.1-10 HVAC Systems proposed column c and d
Data Lookup: None
Evaluation Context: Evaluate each HeatingVentilatingAirConditioningSystem data group
Applicability Checks:
- Applicable if no heating and/or cooling system is to be installed, and a heating or cooling system is being simulated only to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d.
Function Call:
- get_proposed_hvac_modeled_with_virtual_heating()
- get_proposed_hvac_modeled_with_virtual_cooling()
- get_hvac_zone_list_w_area_by_rmi_dict()
- match_data_element()
- get_list_hvac_systems_associated_with_zone()
Manual Check: None
Rule Logic:
Applicability Check 1:
- Call function to get list of proposed HVAC systems in which virtual cooling being modeled in the proposed per G3.1-10 d :
HVAC_systems_virtual_cooling_list_p = get_proposed_hvac_modeled_with_virtual_cooling(U_RMD,P_RMD)
- Call function to get list of proposed HVAC systems in which virtual heating being modeled in the proposed per G3.1-10 c:
HVAC_systems_virtual_heating_list_p = get_proposed_hvac_modeled_with_virtual_heating(U_RMD,P_RMD)
- Combine list of hvac systems with virtual heating and/or cooling:
HVAC_systems_virtual_list_p = HVAC_systems_virtual_cooling_list_p + HVAC_systems_virtual_heating_list_p
- Eliminate duplicate HVAC systems:
HVAC_systems_virtual_list_p = list(set(HVAC_systems_virtual_list_p))
Create a list of the zones served by the HVAC systems in which virtual heating and/or cooling has been modeled in the proposed RMD - Get dictionary with list of zones associated with each HVAC system:
dict_hvac_sys_zones_served_p = get_hvac_zone_list_w_area_by_rmi_dict(P_RMD)
- Loop through the HVAC systems with virtual heating and/or cooling and add to list of zones with virtual heating and/or cooling:
For hvac_p in HVAC_systems_virtual_list_p:
- Get list of zones associated with the hvac system and add to list of zones with virtual heating and/or cooling:
zones_virtual_heating_cooling_list += dict_hvac_sys_zones_served_p[hvac_p.id]["Zone_List"]
- Get list of zones associated with the hvac system and add to list of zones with virtual heating and/or cooling:
- Eliminate duplicate zones from the list:
zones_virtual_heating_cooling_list = list(set(zones_virtual_heating_cooling_list))
- Loop through each zone in the zones_virtual_heating_cooling_list and obtain the hvac system serving the zone in the B_RMI and add to the list of HVAC systems applicable to this check:
For zone_p in zones_virtual_heating_cooling_list:
- Get analogous zone in the B_RMI:
zone_b = match_data_element(B_RMI, Zone,zone_p.id)
- Get list of hvac systems serving the zone and add to list of applicable hvac systems:
applicable_hvac_with_virtual_heating_cooling.append(get_list_hvac_systems_associated_with_zone(B_RMI, zone_b.id))
- Get analogous zone in the B_RMI:
- Eliminate duplicates in list of hvac systems:
applicable_hvac_with_virtual_heating_cooling = list(set(applicable_hvac_with_virtual_heating_cooling))
- For each HeatingVentilatingAirconditioningSystem in the B_RMI:
for each hvac_b in B_RMI...HeatingVentilatingAirConditioningSystem:
-
Check if hvac_b is in the list of applicable systems, if it is found then carry on, if not found then NOT_APPLICABLE for the hvac system:
if hvac_b in applicable_hvac_with_virtual_heating_cooling:
- Get operation during occupied periods:
operation_during_occupied_b = hvac_b.fan_system.operation_during_occupied
Rule Assertion:
- Case 1: For each applicable hvac system:
outcome == "UNDETERMINED" and raise_message "It appears that <insert hvac_b.id> is only being simulated in the P_RMD to meet the requirements described in Section G3.1-10 HVAC Systems proposed column c and d for heating and/or cooling. Check that the hvac system fan is simulated to be cycled ON and OFF to meet heating and/or cooling loads during occupied hours as applicable. Note that per the RMD the fan associated with <insert hvac_b.id> is operating as <insert operation_during_occupied_b> during occupied hours. This may require further investigation if only heating or cooling is being simulated to meet Section G3.1-10 HVAC Systems proposed column c or d because different fan operation will be required depending on whether the system is operating in heating or cooling mode."
- Get operation during occupied periods:
-
Notes
- The reason this is UNDETERMINED is because if just heating or just cooling is modeled to meet the requirements of Section G3.1-10 HVAC Systems proposed column c and d we cannot assess from the schema whether the fans are being modeled as cycling with load for just heating or just cooling.
- Updated the Rule ID from 19-37 to 19-34 on 04/17/2023