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

# Overriding fan mass air flow in EMS

Related to a previous question - Double skin facade providing outside air to AHUs - I'm actively trying to implement an EMS solution.

I've setup a simple case with two labs (the rectangles if you will) and a "cavity" (the long thing):

The cavity is modeled with a separate AirLoopHVAC (which ultimately I'll set the fan curve coefficient to all zero in order to not double count fan power), 100% outside air (it's not right now...), and an adiabatic cooler which operation is limited to weather-permitting conditions matching the proposed sequence of operation from the MEP for summer pre-cooling.

Each lab AHU is modeled explicitly as an AirLoopHVAC with an outdoor air system. Both are identical and as follows:

The following pseudo-code algorithm is envisioned to be implemented using the EnergyManagementSystem:

• Sum the requested mass air flow rates for outside air of all AHU drawing from the cavity
• Pass the requested mass air flow rates to the cavity’s AirLoopHVAC
• Get the condition of the cavity’s zone node and feed this condition to outside air node of each lab AHU

I've then moved to EnergyPlus .idf and implemented the code in EMS, but I'm getting some strange results:

• I see the Cavity Fan using energy
• I see the Mass Flow Rate at the fan supply outlet node (which is also the loop's supply outlet) being changed
• BUT, All of the other nodes in the Cavity AHU loop has zero Mass Flow Rate

Additionally I'm trying to set both the Drybulb and Wetlbulb of the Lab's AHU outside air node to match the cavity zone, but the zone doesn't have wetbulb available, so I'm calculating wetbulb from db, humidity ratio and pressure, using the built-in Psychrometric function in EMS and getting absurd results.

What's wrong with this EMS code? How can I fix it?

### Source:

I've uploaded my EnergyPlus model (and the initial OpenStudio model if you want to take an easier look at loops) here, but here is also my EMS code if that's easier for you:

!-   ===========  ALL OBJECTS IN CLASS: OUTDOORAIR:NODELIST ===========

OutdoorAir:NodeList,
Cavity East AHU Outside Air Node;  !- Node or NodeList Name 1

OutdoorAir:NodeList,
RTU Lab1 Outside Air Node;  !- Node or NodeList Name 1

OutdoorAir:NodeList,
RTU Lab2 Outside Air Node;  !- Node or NodeList Name 1

!-   ===========  ALL OBJECTS IN CLASS: ENERGYMANAGEMENTSYSTEM:SENSOR ===========

EnergyManagementSystem:Sensor,
S_Cavity_Tdb,            !- Name
Cavity East Zn,          !- Output:Variable or Output:Meter Index Key Name
Zone Air Temperature;    !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
RTU1MassFlowRate,        !- Name
RTU Lab1,                !- Output:Variable or Output:Meter Index Key Name
Air System Outdoor Air Mass Flow Rate;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
RTU2MassFlowRate,        !- Name
RTU Lab2,                !- Output:Variable or Output:Meter Index Key Name
Air System Outdoor Air Mass Flow Rate;  !- Output:Variable or Output:Meter Name

EnergyManagementSystem:Sensor,
S_Cavity_W,              !- Name
Cavity East Zn,          !- Output:Variable or Output:Meter Index Key Name
Zone Air Humidity Ratio; !- Output:Variable or Output ...
edit retag close merge delete

Sort by » oldest newest most voted

Implementing @Archmage tips on actuating the Mass Flow Rate for the AirTerminal:SingleDuct:Uncontrolled and sensing the zone output, it was still not working.

I actually started investigating whether it was some kind of sizing problem. Here's what I did to make it work:

• Removing for the cavity the Controller:MechanicalVentilation. This had a problem because I never defined a space type for my Cavity (which is like a plenum...) and therefore does NOT have a DesignSpecification:OutdoorAir object associated with it
• Removing the sizing:zone (my zone is a plenum effectively), and,
• Hardsizing the flow rates of the AirLoopHVAC, Controller:OutdoorAir and the ATU. Not sure if I need to hardsize all of that...

I think the real problem was the Controller:MechanicalVentilation one and it is probably deeply related to this issue: Controller:OutdoorAir Field: Minimum Fraction of Outdoor Air Schedule Name

For the record, actuating the Fan mass flow rate instead of AirTerminal:SingleDuct:Uncontrolled mass flow rate does NOT work.

more

To get a fake fan to use no energy, set the fan's Pressure Rise to something very small.

It turns out the rather than actuate the fan, it works better to control AHU airflow with the actuator on the air terminal unit, called “AirTerminal:SingleDuct:Uncontrolled” with the control type called “Mass Flow Rate.”

Instead of sensing a "zone" output, you can set up the sensor on a the zone's air node, which will have the wetbulb.

more

I've actually tried setting the terminal mass flow rate, not one node had any flow... I'm outputting my calculated mass flow rate, it's definitely not zero.

( 2016-04-28 01:38:02 -0500 )edit
1

Setting the curve coeffs to all zero works nicely for the fan power.

@eringold pointed me to your helpful post here which is why I tried actuating the ATU.

And very good point for the Zone's zone air node, I'm doing that now.

( 2016-04-28 07:07:10 -0500 )edit