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

Revision history [back]

1) EnergyPlus branch and node management: i read the E+ documentation about branch and node but i did not get fully imaging how a modeler should setup air and plant loop. Which part is used for determine boundary between supply and demand side in a loop (air/water) ? Have any good step-by-step procedure for implementing a HVAC system schematic into E+. Lastest version of energy plus have a lot groups for zoneHVAC equipment make me more confused especially node management.

The loops can seem complicated, but really they are quite straight-forward in their design. Since there is no documentation that describes these connections in detail, the best way to understand the loop topology is to study the example files. Start with the AirloopHVAC or PlantLoop object and, by following the node names, draw the loop on paper showing the component types and node names. Use a text editor and search for the component or node name to see where it connects (which is how I created this answer). When designing a new system the reverse is true, draw the system on paper and then enter the components needed to describe that loop. The following description uses the 5ZoneBoilerOutsideAirReset example file.

The boundary interface between supply and demand is the AirloopHVAC or PlantLoop objects. These objects have the node names of the supply and demand side inlet and outlet and the branch list name where components are entered in the order placed on the loop.

AirLoopHVAC,
 VAV Sys 1,                       !- Name
 VAV Sys 1 Controllers,   !- Controller List Name
 VAV Sys 1 Avail List,       !- Availability Manager List Name
 autosize,                          !- Design Supply Air Flow Rate {m3/s}
 VAV Sys 1 Branches,       !- Branch List Name
 ,                                         !- Connector List Name
 VAV Sys 1 Inlet Node,     !- Supply Side Inlet Node Name
 PLENUM-1 Out Node,     !- Demand Side Outlet Node Name
 Zone Eq In Node,             !- Demand Side Inlet Node Names
 VAV Sys 1 Outlet Node;   !- Supply Side Outlet Node Names

The PlantLoop also has connector list names where the splitter and mixer are defined. One connector list each for the plant and demand side of the loop.

PlantLoop,
 Hot Water Loop,          !- Name
 Water,                           !- Fluid Type
 ,                                      !- User Defined Fluid Type
 Hot Loop Operation,      !- Plant Equipment Operation Scheme Name
 HW Supply Outlet Node,   !- Loop Temperature Setpoint Node Name
 100,                                !- Maximum Loop Temperature {C}
 10,                                 !- Minimum Loop Temperature {C}
 autosize,                       !- Maximum Loop Flow Rate {m3/s}
 0.0,                                !- Minimum Loop Flow Rate {m3/s}
 autocalculate,              !- Plant Loop Volume {m3}
 HW Supply Inlet Node,    !- Plant Side Inlet Node Name
 HW Supply Outlet Node,   !- Plant Side Outlet Node Name
 Heating Supply Side Branches,  !- Plant Side Branch List Name
 Heating Supply Side Connectors,  !- Plant Side Connector List Name
 HW Demand Inlet Node,    !- Demand Side Inlet Node Name
 HW Demand Outlet Node,   !- Demand Side Outlet Node Name
 Heating Demand Side Branches,  !- Demand Side Branch List Name
 Heating Demand Side Connectors,  !- Demand Side Connector List Name
 SequentialLoad;          !- Load Distribution Scheme

The AirloopHVAC branch list shows the branch used to describe the air loop components and the order in which they are placed on the branch (and the order in which they are simulated). The BranchList name below is the same name shown in the AirLoopHVAC branch loop name input field shown above. Also notice that each component in the branch has an inlet and outlet node name. Each subsequent component has an inlet node name that is the same as the previous component's outlet node name. Each o9f these componets are then described elsewhere in the input file and must have the same node names described here.

BranchList,
 VAV Sys 1 Branches,         !- Name
 VAV Sys 1 Main Branch;   !- Branch 1 Name

Branch,
 VAV Sys 1 Main Branch,   !- Name
 autosize,                            !- Maximum Flow Rate {m3/s}
 ,                                          !- Pressure Drop Curve Name
 AirLoopHVAC:OutdoorAirSystem,  !- Component 1 Object Type
 OA Sys 1,                           !- Component 1 Name
 VAV Sys 1 Inlet Node,      !- Component 1 Inlet Node Name
 Mixed Air Node 1,           !- Component 1 Outlet Node Name
 PASSIVE,                           !- Component 1 Branch Control Type
 Coil:Cooling:Water:DetailedGeometry,  !- Component 2 Object Type
 Main Cooling Coil 1,       !- Component 2 Name
 Mixed Air Node 1,          !- Component 2 Inlet Node Name
 Main Cooling Coil 1 Outlet Node,  !- Component 2 Outlet Node Name
 PASSIVE,                          !- Component 2 Branch Control Type
 Coil:Heating:Water,       !- Component 3 Object Type
 Main Heating Coil 1,      !- Component 3 Name
 Main Cooling Coil 1 Outlet Node,  !- Component 3 Inlet Node Name
 Main Heating Coil 1 Outlet Node,  !- Component 3 Outlet Node Name
 PASSIVE,                           !- Component 3 Branch Control Type
 Fan:VariableVolume,      !- Component 4 Object Type
 Supply Fan 1,                   !- Component 4 Name
 Main Heating Coil 1 Outlet Node,  !- Component 4 Inlet Node Name
 VAV Sys 1 Outlet Node,   !- Component 4 Outlet Node Name
 ACTIVE;                             !- Component 4 Branch Control Type

To complete the air loop, the zones also need to be connected to that loop. Each zone will have a ZoneHVAC:EquipmentConnections object. There are 5 in this example file and only 1 is shown here. This object also has an equipment list, and zone inlet, exhaust and return node list or node name input field. The zone exhaust air node is not used in this example file but could be connected to a zone exhaust fan or other zone equipment, for example a ZoneHVAC:PackagedTerminalHeatPump (there are many other components that would use the zone exhaust node).

ZoneHVAC:EquipmentConnections,
 SPACE1-1,                       !- Zone Name
 SPACE1-1 Eq,                  !- Zone Conditioning Equipment List Name
 SPACE1-1 In Nodes,       !- Zone Air Inlet Node or NodeList Name
 ,                                        !- Zone Air Exhaust Node or NodeList Name
 SPACE1-1 Node,             !- Zone Air Node Name
 SPACE1-1 Out Node;       !- Zone Return Air Node Name

In this example file, a node list is used to describe zone inlet node name since more than one zone inlet could be used. For an air loop, a zone return node is required. Only 1 return node is allowed per zone so a node list is not needed.

NodeList,
 SPACE1-1 In Nodes,       !- Name
 SPACE1-1 In Node;        !- Node 1 Name

The equipment list shows the zone equipment (ZoneHVAC:) component connected to this zone. If more than one zone equipment is used, the order of simulation for cooling and heating is entered with 1 having top priority over other components.

ZoneHVAC:EquipmentList,
 SPACE1-1 Eq,               !- Name
 ZoneHVAC:AirDistributionUnit,  !- Zone Equipment 1 Object Type
 SPACE1-1 ATU,            !- Zone Equipment 1 Name
 1,                                   !- Zone Equipment 1 Cooling Sequence
 1;                                   !- Zone Equipment 1 Heating or No-Load Sequence

The component entered in the ZoneHVAC:EquipmentList object points to other objects as necessary to describe the particular zone equipment object(s).

ZoneHVAC:AirDistributionUnit,
 SPACE1-1 ATU,              !- Name
 SPACE1-1 In Node,        !- Air Distribution Unit Outlet Node Name
 AirTerminal:SingleDuct:VAV:Reheat,  !- Air Terminal Object Type
 SPACE1-1 VAV Reheat;     !- Air Terminal Name

AirTerminal:SingleDuct:VAV:Reheat,
 SPACE1-1 VAV Reheat,     !- Name
 ReheatCoilAvailSched,     !- Availability Schedule Name
 SPACE1-1 Zone Coil Air In Node,  !- Damper Air Outlet Node Name
 SPACE1-1 ATU In Node,    !- Air Inlet Node Name
 autosize,                            !- Maximum Air Flow Rate {m3/s}
 Constant,                          !- Zone Minimum Air Flow Input Method
 0.3,                                     !- Constant Minimum Air Flow Fraction
 ,                                          !- Fixed Minimum Air Flow Rate {m3/s}
 ,                                           !- Minimum Air Flow Fraction Schedule Name
 Coil:Heating:Water,          !- Reheat Coil Object Type
 SPACE1-1 Zone Coil,         !- Reheat Coil Name
 autosize,                            !- Maximum Hot Water or Steam Flow Rate {m3/s}
 0.0,                                     !- Minimum Hot Water or Steam Flow Rate {m3/s}
 SPACE1-1 In Node,            !- Air Outlet Node Name
 0.001,                                 !- Convergence Tolerance
 Reverse,                              !- Damper Heating Action
 AUTOCALCULATE,             !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2}
 AUTOCALCULATE;             !- Maximum Flow Fraction During Reheat

In this example file, a return plenum is used and connects all zones attached to this air loop through their corresponding return nodes. Notice that SPACE1-1 Out Node is the same node name entered in the ZoneHVAC:EquipmentConnections object above. The AirLoopHVAC:ReturnPlenum has an outlet node name which connects back to the AirloopHVAC object's Demand Side Outlet Node Name entry.

AirLoopHVAC:ReturnPlenum,
 Return-Plenum-1,         !- Name
 PLENUM-1,                     !- Zone Name
 PLENUM-1 Node,           !- Zone Node Name
 PLENUM-1 Out Node,     !- Outlet Node Name
 ,                                        !- Induced Air Outlet Node or NodeList Name
 SPACE1-1 Out Node,       !- Inlet 1 Node Name
 SPACE2-1 Out Node,       !- Inlet 2 Node Name
 SPACE3-1 Out Node,       !- Inlet 3 Node Name
 SPACE4-1 Out Node,       !- Inlet 4 Node Name
 SPACE5-1 Out Node;       !- Inlet 5 Node Name

The air loop also has a supply and return path. In this example file, the return path is already specified using the AirLoopHVAC:ReturnPlenum so no AirloopHVAC:ReturnPath object is needed in this example file. If an AirloopHVAC:ReturnPath were used, the outlet node name of that object would also connect back to the AirloopHVAC object.

The demand side of the air loop starts at the supply path object and is the connection between the AirLoopHVAC:SupplyPath object's Supply Air Path Inlet Node Name (Zone Eq In Node) back to the AirloopHAVC object.

AirLoopHVAC:SupplyPath,
 Zone Supply Air Path 1,  !- Name
 Zone Eq In Node,         !- Supply Air Path Inlet Node Name
 AirLoopHVAC:ZoneSplitter,!- Component 1 Object Type
 Zone Supply Air Splitter 1;  !- Component 1 Name

AirLoopHVAC:ZoneSplitter,
 Zone Supply Air Splitter 1,  !- Name
 Zone Eq In Node,         !- Inlet Node Name
 SPACE1-1 ATU In Node,    !- Outlet 1 Node Name
 SPACE2-1 ATU In Node,    !- Outlet 2 Node Name
 SPACE3-1 ATU In Node,    !- Outlet 3 Node Name
 SPACE4-1 ATU In Node,    !- Outlet 4 Node Name
 SPACE5-1 ATU In Node;    !- Outlet 5 Node Name

Try drawing this air loop on paper using the technique described here and after that exercise you will have a much better understanding of the loop connections. The plant loop connections are similar to that shown here and since this answer is getting rather long, I will leave that exercise to the user.

2) As you described, HVACtemplate is very useful tool but when a GUI like OS does it, most of time they go directly into detail equipment. Have any material (spreadsheet, document) as guideline (best with step-by-step_ for checking whether all input of HVAC system (Unitary, VAV, DOAS,,,,) and theirs E+ component (coil, coil control, controller, setpoint manager, etc,..) are implemented in a right way into E+ ?

There is no good documentation describing the connection of objects in the HVACTemplates. However, once you understand the answer to question 1), you should be able to enter the equipment components needed to fully describe the HVACTemplate objects in OS. Since the HVACTemplate creates the air loop and plant loops for you, the only other thing required is to tell OS what components you want in the system. One technique I have used in the past is to start with the example file Minimal.idf (the minimum number of objects needed for a input file to successfully simulate, and put only HVACTemplate objects in that input file. Then run that file and see which objects are created in the expidf file. The expidf file can then be modified if necessary and used as a template to copy a system directly into an E+ input file (you would use this technique when the HVACTemplate objects does not provide the system you desired and you wanted to used that system over and over again).

Try following the suggestion for question 1) above and I believe the answer to this question will become apparent.