Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How to configure a return air bypass system with economizing and heating after bypass

I asked a previous question about this but never got a good answer. I am trying to configure a return air bypass system in EnergyPlus that has economizing and heating AFTER the bypass. There is an EnergyPlus example file for return air bypass but it doesn't match well with the system I'm trying to model and doesn't seem to be very flexible.

The example file has all of the conditioning equipment (outdoor air system, cooling coil, hetaing coil) on the main branch and just the fan on the outlet branch (after bypass mixing). SetpointManager:ReturnAirBypass is applied to the airloop and the heating and cooling coil outlet nodes each have SetpointManager:Scheduled objects applied. There are no SetpointManager:MixedAir objects. Here are the issues that I found with the example file:

  1. If I try to move the heating coil to the outlet branch, the bypass control breaks down. Bypass flow is decreased compared to the base example file case, resulting in many hours in which the heating coil needs to run to hit the desired loop outlet temperature.
  2. If I enable economizing, bypass flow gets completely disabled during economizing hours. In reality, I would want to be able to economize on the outdoor air side to hit the dehumidification temperature at the cooling coil outlet node, and then mix with bypass flow to avoid having to heat at the heating coil to hit the desired supply air temperature.

To try to fix these issues, I wrote an EMS program to control the system. In its simplest form (without economizing), I sense the requested flow (using the mass flow rate at the supply side outlet node, with the program running inside the HVAC system iteration loop), and determine how much bypass flow is needed based on the return air mass flow and temperature, and the dehumification temperature (the temperature of the air leaving the main branch). I then actuate the mass flow rate of the inlet node of the bypass branch. To enable economizing, I am also actuating the outdoor air flow rate when conditions are appropriate. Lastly, I applied a outdoor air reset setpoint manager to the fan outlet node (supply side outlet) and a mixed air setpoint manager to the heating coil so that fan heat is accounted for at the heating coil.

I ran some tests on the EMS code and initially found it to be working as expected. However, when running an annual simulation with multiple airloops with this configuration and EMS code applied, I started to see some odd behavior. Airloops would run as expected for extended periods of time (Jan 1 through March 13, for example) and then completely stop (no flow at all) for the rest of the year. This happened at different times for different airloops. I thought that this could be related to having a return air bypass configuration but not a SetpointManager:ReturnAirBypass (I removed it when I added the EMS code because it was getting completely bypassed), so I added the return air bypass setpoint manager back in. After some initial testing, I thought that had fixed the problem (airloops were no longer shutting down). After more detailed testing, however, I noticed that there was still some strange behavior at a smaller scale (multiple day periods where reported airloop flow rates did not match EMS EDD output or expectations based on load, resulting in unmet hours). I found that this happened for one airloop during the first week of July. When I ran the simulation from July 1-2, I would see the unexpected behavior for both July 1 and July 2. When I ran on only July 2, however, the behavior was normal, matching the intent of the EMS.

I'm hoping to find someone that knows more about return air bypass in EnergyPlus to help me out with this issue. If I can avoid using EMS code altogether, that would be the most straightforward approach. If not, I would like to try to understand why the EMS code would cause this behavior (working correctly for long stretches and then hitting some kind of weird snags where EDD output does not match variable output). I can provide files/plots as needed but wanted to get the basic issue posted first

How to configure a return air bypass system with economizing and heating after bypass

I asked a previous question about this but never got a good answer. I am trying to configure a return air bypass system in EnergyPlus that has economizing and heating AFTER the bypass. There is an EnergyPlus example file for return air bypass but it doesn't match well with the system I'm trying to model and doesn't seem to be very flexible.

The example file has all of the conditioning equipment (outdoor air system, cooling coil, hetaing coil) on the main branch and just the fan on the outlet branch (after bypass mixing). SetpointManager:ReturnAirBypass is applied to the airloop and the heating and cooling coil outlet nodes each have SetpointManager:Scheduled objects applied. There are no SetpointManager:MixedAir objects. Here are the issues that I found with the example file:

  1. If I try to move the heating coil to the outlet branch, the bypass control breaks down. Bypass flow is decreased compared to the base example file case, resulting in many hours in which the heating coil needs to run to hit the desired loop outlet temperature.
  2. If I enable economizing, bypass flow gets completely disabled during economizing hours. In reality, I would want to be able to economize on the outdoor air side to hit the dehumidification temperature at the cooling coil outlet node, and then mix with bypass flow to avoid having to heat at the heating coil to hit the desired supply air temperature.

To try to fix these issues, I wrote an EMS program to control the system. In its simplest form (without economizing), I sense the requested flow (using the mass flow rate at the supply side outlet node, with the program running inside the HVAC system iteration loop), and determine how much bypass flow is needed based on the return air mass flow and temperature, and the dehumification temperature (the temperature of the air leaving the main branch). I then actuate the mass flow rate of the inlet node of the bypass branch. To enable economizing, I am also actuating the outdoor air flow rate when conditions are appropriate. Lastly, I applied a outdoor air reset setpoint manager to the fan outlet node (supply side outlet) and a mixed air setpoint manager to the heating coil so that fan heat is accounted for at the heating coil.

I ran some tests on the EMS code and initially found it to be working as expected. However, when running an annual simulation with multiple airloops with this configuration and EMS code applied, I started to see some odd behavior. Airloops would run as expected for extended periods of time (Jan 1 through March 13, for example) and then completely stop (no flow at all) for the rest of the year. This happened at different times for different airloops. I thought that this could be related to having a return air bypass configuration but not a SetpointManager:ReturnAirBypass (I removed it when I added the EMS code because it was getting completely bypassed), so I added the return air bypass setpoint manager back in. After some initial testing, I thought that had fixed the problem (airloops were no longer shutting down). After more detailed testing, however, I noticed that there was still some strange behavior at a smaller scale (multiple day periods where reported airloop flow rates did not match EMS EDD output or expectations based on load, resulting in unmet hours). I found that this happened for one airloop during the first week of July. When I ran the simulation from July 1-2, I would see the unexpected behavior for both July 1 and July 2. When I ran on only July 2, however, the behavior was normal, matching the intent of the EMS.

I'm hoping to find someone that knows more about return air bypass in EnergyPlus to help me out with this issue. If I can avoid using EMS code altogether, that would be the most straightforward approach. If not, I would like to try to understand why the EMS code would cause this behavior (working correctly for long stretches and then hitting some kind of weird snags where EDD output does not match variable output). I can provide files/plots as needed but wanted to get the basic issue posted first