Zone Design
Loads and Air Flow Rates[LINK]
There is no single best way to establish design HVAC flow
rates and size HVAC equipment. Different building designs,
climates, and HVAC systems will impose varying constraints on
the designer. The method used to size an HVAC system in a hot,
moist climate such as Miami will be different than the method
used for a building in Albuquerque. The type of building is
also relevant - a simple watts per square foot loads estimate
could be adequate for a building containing a network server
farm while a detailed, dynamic loads simulation would be
necessary for a passive solar building. In the end the
designer’s experience and engineering judgement will play an
important role in any sizing calculation.
HVAC equipment sizing begins with the calculation of space
heating and cooling sensible and/or latent loads. A space
cooling (heating) sensible load is defined as the rate at
which heat must be removed (added) to a space to maintain a
constant zone temperature. A space cooling (heating) latent
load is defined as the rate at which moisture must be removed
(added) to a space to maintain a constant zone
moisture/humidity ratio/relative humidity level. The current
industry standard method for calculating space loads is the
heat balance method [ASHRAE Fundamentals (2001), page
29.1; Pedersen et al., (1997); Pedersen (2001). Since
EnergyPlus is a heat balance based simulation program it is
straightforward for the program to use this method for
calculating zone loads.
Zone Design Data Arrays[LINK]
The zone design data arrays are:
ZoneSizingInput(i) stores the input data from the
Sizing:Zone
objects.
CalcZoneSizing(i,j) stores the results of the zone
design calculations for all zones and all design days. The
index i is for the controlled zones, j for design days.
CalcFinalZoneSizing(i) stores the results of the
zone design calculations for the peak heating and cooling
cases for each zone. The index i is for the controlled
zones.
ZoneSizing(i,j) corresponds to
CalcZoneSizing but includes the effect of the user
specified sizing factor or user specified zone design flow
rate.
FinalZoneSizing(i) corresponds to
CalcFinalZoneSizing but includes the effect of the
user specified sizing factor or user specified zone design
flow rate.
TermUnitFinalZoneSizing(k) corresponds to
FinalZoneSizing but includes the effect of any air
system terminal unit sizing factors input with DesignSpecification:AirTerminal:Sizing
objects. The index k is for each air terminal unit. There may
be more or less terminal units than there are controlled
zones.
The data stored in CalcZoneSizing,
CalcFinalZoneSizing, ZoneSizing,
FinalZoneSizing and TermUnitFinalZoneSizing
includes the following data items.
p1.85inp4.13in Name & Description
Select data from ZoneSizingInput &
DesHeatMassFlow & the zone design sensible heating air
mass flow rate in [kg/s]
DesCoolMassFlow & the zone design sensible cooling air
mass flow rate in [kg/s]
DesLatentHeatMassFlow & the zone design latent heating air
mass flow rate in [kg/s]
DesLatentCoolMassFlow & the zone design latent cooling air
mass flow rate in [kg/s]
DesHeatLoad & the zone design sensible heating load in
[W]
DesCoolLoad & the zone design sensible cooling load in
[W]
DesHeatLoad & the zone design latent heating load in
[W]
DesCoolLoad & the zone design latent cooling load in
[W]
DesHeatDens & the zone design heating air density [kg/m
]
DesCoolDens & the zone design cooling air density [kg/m
]
DesHeatVolFlow & the zone design sensible heating air
volume flow rate [m\(^{3}\)/s]
DesCoolVolFlow & the zone design sensible cooling air
volume flow rate [m\(^{3}\)/s]
DesLatentHeatVolFlow & the zone design latent heating air
volume flow rate [m\(^{3}\)/s]
DesLatentCoolVolFlow & the zone design latent cooling air
volume flow rate [m\(^{3}\)/s]
DesHeatCoilInTemp & zone sensible heating coil design air
inlet temperature [C]
DesCoolCoilInTemp & zone sensible cooling coil design air
inlet temperature [C]
DesLatentHeatCoilInTemp & zone latent heating coil design
air inlet temperature [C]
DesLatentCoolCoilInTemp & zone latent cooling coil design
air inlet temperature [C]
DesHeatCoilInHumRat & the zone sensible heating coil
design air inlet humidity ratio [kg/kg]
DesCoolCoilInHumRat & the zone sensible cooling coil
design air inlet humidity ratio [kg/kg]
DesHeatCoilInHumRat & the zone latent heating coil design
air inlet humidity ratio [kg/kg]
DesCoolCoilInHumRat & the zone latent cooling coil design
air inlet humidity ratio [kg/kg]
HeatMassFlow & current zone heating air mass flow rate at
the HVAC time step [kg/s]
CoolMassFlow & current zone cooling air mass flow rate at
the HVAC time step [kg/s]
HeatLoad & Current zone heating load [W]
CoolLoad & Current zone cooling load [W]
HeatZoneTemp & Current zone temperature during heating
[C]
HeatZoneRetTemp & current zone return temperature during
heating [C]
CoolZoneTemp & Current zone temperature during cooling
[C]
CoolZoneRetTemp & current zone return temperature during
cooling [C]
HeatZoneHumRat & Current zone humidity ratio during
heating [C]
CoolZoneHumRat & Current zone humidity ratio during
cooling [C]
ZoneTempAtHeatPeak & zone temperature at maximum sensible
heating [C]
ZoneRetTempAtHeatPeak & zone return temperature at maximum
sensible heating [C]
ZoneRetTempAtLatentHeatPeak & zone return temperature at
maximum latent heating [C]
ZoneTempAtCoolPeak & zone temperature at maximum cooling
[C]
ZoneRetTempAtCoolPeak & zone return temperature at maximum
sensible cooling [C]
ZoneRetTempAtLatentCoolPeak & zone return temperature at
maximum latent cooling [C]
ZoneHumRatAtHeatPeak & zone humidity ratio at maximum
heating [kg/kg]
ZoneHumRatAtCoolPeak & zone humidity ratio at maximum
cooling [kg/kg]
TimeStepNumAtHeatMax & zone time step number (in the day)
at the sensible heating peak
TimeStepNumAtCoolMax & zone time step number (in the day)
at the sensible cooling peak
TimeStepNumAtLatentHeatMax & zone time step number (in the
day) at the latent heating peak
TimeStepNumAtLatentCoolMax & zone time step number (in the
day) at the latent cooling peak
HeatDDNum & design day index of design day causing
sensible heating peak
CoolDDNum & design day index of design day causing
sensible cooling peak
LatentHeatDDNum & design day index of design day causing
latent heating peak
LatentCoolDDNum & design day index of design day causing
latent cooling peak
MinOA & design minimum outside air [m\(^{3}\)/s]
HeatFlowSeq(i) & daily sequence of zone sensible heating
air mass flow rates (zone time step) [kg/s]
CoolFlowSeq(i) & daily sequence of zone sensible cooling
air mass flow rates (zone time step) [kg/s]
LatentHeatFlowSeq(i) & daily sequence of zone sensible
heating air mass flow rates (zone time step) [kg/s]
LatentCoolFlowSeq(i) & daily sequence of zone sensible
cooling air mass flow rates (zone time step) [kg/s]
HeatLoadSeq(i) & daily sequence of zone sensible heating
loads (zone time step) [W]
CoolLoadSeq(i) & daily sequence of zone sensible cooling
loads (zone time step) [W]
LatentHeatLoadSeq(i) & daily sequence of zone latent
heating loads (zone time step) [W]
LatentCoolLoadSeq(i) & daily sequence of zone latent
cooling loads (zone time step) [W]
HeatZoneTempSeq(i) & daily sequence of zone temperatures
(heating, zone time step) [C]
HeatZoneRetTempSeq(i) & daily sequence of zone return
temperatures (heating, zone time step) [C]
CooltZoneTempSeq(i) & daily sequence of zone temperatures
(cooling, zone time step) [C]
CoolZoneRetTempSeq(i) & daily sequence of zone return
temperatures (cooling, zone time step) [C]
HeatZoneHumRatSeq(i) & daily sequence of zone humidity
ratios (heating, zone time step) [kg/kg]
CoolZoneHumRatSeq(i) & daily sequence of zone humidity
ratios (cooling, zone time step) [kg/kg]
Zone Design Load
Calculation[LINK]
As described in the preceding section, the Sizing Manager
initiates the zone design calculation by looping over all of
the design days and calling the Heat Balance Manager for each
zone time-step in each design day. The Heat Balance manager
then causes the HVAC Manager to be called in a manner
identical to a normal simulation. The ZoneSizingCalc
set to true signals the HVAC Manager to ignore the
actual HVAC system and instead calculate the design sensible
and latent zone loads and air flow rates using an ideal zonal
system.
In module HVACManager, subroutine
ManageHVAC calls SimHVAC. SimHVAC
checks ZoneSizingCalc. If it is true,
SimHVAC calls ManageZoneEquipment and
returns, rather than simulating the actual system. In turn
ManageZoneEquipment checks if ZoneSizingCalc
is true; if it is it calls SizeZoneEquipment
rather than SimZoneEquipment.
SizeZoneEquipment assumes that each controlled
zone is served by an ideal air conditioning unit. This unit
supplies sensible and latent (if latent sizing is requeted)
heating or cooling air at a fixed, user input temperature and
humidity (specified in the Sizing:Zone
objects). The units have infinite capacity: the flow rate can
be any amount. Zone
humidity is controlled at a constant level when latent sizing
is requested, otherwise zone humidity is allowed to float. The
sensible and latent loads and air mass flow rates are saved
and reported to eplusout.zsz.
Before the ideal zone load is calculated, the function
checks whether the user wants to account for the heat gain or
loss caused by the ventilation air from a Dedicated Outdoor
Air System (DOAS). If the user has selected Account For
Dedicated Outdoor Air = Yes the function performs an
ideal DOAS calculation. The DOAS supply temperature is set
according to the user’s choice of 1 of 3 possible control
strategies: NeutralSupplyAir,
NeutralDehumidifiedSupplyAir, or
ColdSupplyAir. This value is saved and reported to
eplusout.zsz. The different strategies are:
DOAS Control Strategy = NeutralSupplyAir. The
purpose of this strategy is to cool or heat the outdoor air
(OA) to keep it between the T\(_{l}\) and T\(_{h}\) setpoints.
DOAS Control Strategy = Neutral Dehumidified Supply
Air. The purpose of this strategy is to cool and
dehumidify the outdoor air, then reheat it to a “neutral”
temperature so that no sensible load is imposed on the space
or AHU unit. The DOAS will with this strategy handle some or
all of the latent load. If the outdoor air temperature is
greater than T\(_{l}\) the outdoor air is
cooled to T\(_{l}\)
and reheated to T\(_{h}\). If the outdoor air
temperaure is below T\(_{l}\) it is heated to
T\(_{h}\).
DOAS Control Strategy = ColdSupplyAir. The
purpose of this strategy is to provide cool, dehumidified
ventilation air to the zone. In this case the DOAS can handle
part of the sensible zone cooling load as well as meet part or
all of the latent load. If the outdoor air temperature is
below T\(_{l}\) it
is heated to T\(_{h}\). If it is above
T\(_{l}\), it is
cooled to T\(_{l}\).
With the DOAS supply temperature set and the air mass flow
rate set to the minimum design ventilation flow rate the heat
addition rate is just
\[{\dot Q_{doa}} =
{c_{p,air}}{\dot m_{vent,min}}({T_{sup}} - {T_z})\]
UpdateSystemOutputRequired is then invoked to
adjust the load to be met by the ideal zone system.
When latent sizing is requested sensible and latent loads
provided by the DOAS are updated. Latent load units are kgw
per second.
\[{\dot Q_{doa, moisture}} =
{\dot m_{vent,min}}({w_{sup}} - {w_z})\]
The ideal loads calculation steps are as follows.
Loop over all the controlled zones.
If the system is active (zone temperature not in the
deadband and zone load greater than 1 watt) the sign of the
zone load is used to determine whether heating or cooling is
required and T\(_{in}\) and W\(_{in}\) are set to the
appropriate values from the Sizing:Zone
input. When the SupplyTemperature method is specified in the
Sizing:Zone
object, T\(_{in}\)
is fixed at the cooling or heating supply temperature. When
the TemperatureDifference method is selected, T\(_{in}\) is calculated at
each time step using the current zone air temperature. The
system output Q\(_{sys}\) is simply set equal
to the zone demand - it is assumed that the ideal system can
always meet the zone load. The air flow rate corresponding to
the load is just
\[{\dot m_{sys}} =
{Q_{sys}}/({C_{p,air}} \cdot ({T_{in}} - {T_z}))\]
Similar calculations are performed when latent sizing is
requested where a zone latent mass flow rate is
calculated.
\[{\dot m_{sys, latent}} =
{Q_{sys, latent}}/({w_{in}} - {w_z})\]
If the system is not active, the mass flow rate is set to
zero and the system output is left at zero.
- The results for each zone are stored in the zone sizing
data arrays. See comma separated variable file named
eplusout.zsz.
Updating and
Adjusting the Zone Results[LINK]
The results from SizeZoneEquipment are at the
system time-step and are for all design days. These results
then need to be summed or averaged over the zone time-step,
peak values calculated for each design day, a sensible and
latent (when latent sizing is requested) heating & a
cooling load sequence chosen for each zone from all the design
day results, possible further smoothing of results done, zone
coil loads calculated, and user sizing multipliers or user
specified design flows taken into account. These tasks are
accomplished by the subroutine UpdateZoneSizing. It
is called at the start of each design day (CallIndicator =
BeginDay), at the zone time-step (CallIndicator =
DuringDay), at the end of the design day
(CallIndicator = EndDay) and at the end of the zone
design calculation (CallIndicator =
EndZoneSizingCalc).
The environment (in this case, a design day) name and
number are stored in the zone sizing data structures
The calculated and stored sequences are summed or averaged
over the zone time-step.
- Smooth the design sequences by applying a moving,
fixed-width averaging window to the sequences. The width of
the window is user specified in the Sizing:Parameters
input object. The sequences that are smoothed are:
CoolFlowSeq
CoolLoadSeq
HeatFlowSeq
HeatLoadSeq
CoolZoneRetTempSeq
HeatZoneRetTempSeq
DOASHeatAddSeq
DOASLatSeq
LatentHeatLoadSeq
LatentHeatFlowSeq
LatentCoolLoadSeq
LatentCoolFlowSeq
CoolLatentLoadNoDOASSeq
HeatLatentLoadNoDOASSeq
CoolLoadNoDOASSeq
HeatLoadNoDOASSeq
The peak sensible and latent (when latent sizing is
requested) heating and cooling loads and mass & volume
flow rates are extracted from each set of design
sequences.
Using the time of the peak and the design outside air
fraction the design zone heating and cooling coil inlet
temperatures and humidity ratios are calculated.
For each zone, looking at the results for all of the
design days, the design days that cause the peak heating and
peak cooling for that zone are chosen and the corresponding
design sequences and peak loads and flow rates are saved in
the CalcFinalZoneSizing array. This finishes the calculated -
unmodified by the user - portion of the zone design
calculation.
When latent sizing is requested the zone latent loads are
either used (when latent only sizing is requested) or compared
to the zone sensible loads. If the zone latent load is greater
than the zone sensible load the latent zone sizing information
is used for the simulation.
EndZoneSizingCalc[LINK]
Write out onto a comma-separated file the calculated
design sequences for each zone: HeatLoadSeq,
CoolLoadSeq, HeatFlowSeq,
CoolFlowSeq, LatentHeatLoadSeq,
LatentCoolLoadSeq, LatentHeatFlowSeq,
LatentCoolFlowSeq, HeatLoadNoDOASSeq,
CoolLoadNoDOASSeq, HeatLatentLoadNoDOASSeq,
CoolLatentLoadSeq, HeatZoneTempSeq,
HeatZoneRHSeq, CoolZoneTempSeq,
CoolZoneRHSeq and the corresponding peaks and
volumetric flow peaks.
The data in CalcZoneSizing and
CalcFinalZoneSizing is moved to ZoneSizing
and FinalZoneSizing. The user modifications to the
calculated sizing will be applied to and stored in
ZoneSizing and FinalZoneSizing.
The user can modify the calculated zone design results
by specifying heating and cooling sizing factors at the global
or zone level or by specifying and actual design heating or
cooling zone design volumetric flow rate. All of this input is
treated as a sizing factor. If the user inputs a cooling
design volumetric flow rate for a zone it is divided by the
calculated cooling design volumetric flow rate for the zone to
give a zone cooling sizing factor. Note that the user can
input a zone sizing factor or a zone design flow rate - not
both - so there is never a conflict.
Once the zone heating and cooling sizing factors are
established, the design flow and load sequences as well as
peak loads and flows are multiplied by the appropriate sizing
factor and stored in ZoneSizing and
FinalZoneSizing. This is the data that will be used
for sizing zone HVAC equipment and in the system sizing
calculation.
The outside air fractions are recalculated using the
new user-modified design flow rates and new design zone coil
inlet conditions calculated and stored. At this point the
condition that the design flow rates are never allowed to be
less than the minimum outside air flow rate is
imposed.
If outside air method is flow/zone, the
input outside air flow per zone value will be used,
even if it is zero or blank. If outside air method is
sum, the sum of the outside air flow per
person * DesignNumberOfPeople + outside air
flow per area * ZoneArea will be used. If
outside air method is maximum, the maximum
of the outside air flow per person *
DesignNumberOfPeople and outside air flow per
area * ZoneArea will be used. If outside air
method is flow/person, outside air flow per
person will be used to calculate the design minimum
outside airflow rate.
If cooling design air flow method is
flow/zone, then cooling design air flow rate
will be used for the design max cooling air flow rate. If
cooling design air flow method is design
day, then the design day calculation will set the design
max cooling air flow rate. If cooling design air flow
method is design day with limit, then the
maximum from cooling min flow per area and
cooling min flow will set a lower limit on the design
max cooling air flow rate. In all cases, the maximum from
cooling min flow per area, cooling min flow,
and cooling min flow fraction will set a minimum zone
cooling air flow rate. In all cases the maximum design cooling
air flow rate must be > = to the ventilation
requirement.
If heating design air flow method is
flow/zone, then heating design air flow rate
will be used for the design max heating air flow rate. If
heating design air flow method is design
day, then the design day calculation will set the design
max heating air flow rate. If heating design air flow
method is design day with limit, then the
maximum from heating max flow per area, heating
max flow and heating max flow fraction will set
an upper limit on the design max heating air flow rate. The
design max heating air flow rate must always be > = the
ventilation requirement. In each case, the outside airflow
will be modified based on zone ventilation effectiveness
specified in the zone sizing object.
This concludes the calculation of the zone design
flow rates and loads.
Air Terminal Unit
Sizing[LINK]
Each controlled zone may have one or more air terminal
units (AirTerminal:*) served by one or more central air
handlers (AirLoopHVAC). Each air terminal unit may reference a
DesignSpecification:AirTerminal:Sizing
object which is used to adjust the FinalZoneSizing
data for each terminal unit with these user inputs:
| \(DesSensCoolingFrac\) |
= Fraction of Design Sensible
Cooling Load |
| \(DesCoolSATRatio\) |
= Cooling Design Supply Air
Temperature Difference Ratio |
| \(DesSensHeatingFrac\) |
= Fraction of Design Sensible
Heating Load |
| \(DesHeatSATRatio\) |
= Heating Design Supply Air
Temperature Difference Ratio |
| \(MinOAFrac\) |
= Fraction of Minimum Outdoor
Air Flow |
All of these factors default to 1.0. Function
UpdateTermUnitFinalZoneSizing first fills each
instance of TermUnitFinalZoneSizing with a copy of
FinaZoneSizing for the controlled zone served by the
terminal unit. Then, if there is an applicable DesignSpecification:AirTerminal:Sizing
input, the following adjustments are made:
\[{CoolLoad_{TU}} =
{CoolLoad_{FZ}} \cdot {DesSensCoolingFrac}\]
\[{minOAFlow_{TU}} =
{minOAFlow_{FZ}} \cdot {MinOAFrac}\]
\[{CoolFlowRatio} =
{DesSensCoolingFrac} / {DesCoolSATRatio}\]
\[{CoolFlow_{TU}} =
{CoolFlowNoOA_{FZ}} \cdot CoolFlowRatio + {MinOAFrac} \cdot (
{CoolFlowWithOA_{FZ}} - {CoolFlowNoOA_{FZ}} )\]
\[{CoolFlow_{TU}} =
max({CoolFlow_{TU}},{minOAFlow_{TU}})\]
Where:
| \(CoolLoad\) |
= Cooling load variables: \(DesCoolLoad, CoolLoadSeq,
NonAirSysDesCoolLoad\) |
| \(CoolFlow\) |
= Cooling flow variables: \(DesCoolVolFlow,
CoolFlowSeq\) |
| \(CoolFlowNoOA\) |
= Cooling flow variables not
adjusted for minimum outdoor air: \(DesCoolVolFlowNoOA,
CoolFlowSeqNoOA\) |
| \(minOAFlow\) |
= minimum outdoor air flow
rate |
| Subscript \(FZ\) |
= Value from \(FinalZoneSizing\) |
| Subscript \(TU\) |
= Value for \(TermUnitFinalZoneSizing\) |
Likewise for heating.
Zone HVAC Scalable
Sizing[LINK]
For zone HVAC equipment, scalable sizing applies to supply
air flow rate and capacity for both cooling and heating. The
scalable sizing method allowed for supply air flow rates
include: FractionOfAutosizedCoolingAirflow, sizing
method allowed for supply air flow rates include:
FractionOfAutosizedCoolingAirflow,
FractionOfAutosizedHeatingAirflow,
FlowPerFloorArea, FlowPerCoolingCapacity, and
FlowPerHeatingCapacity. The supply air flow rate
scalable sizing methods are defined as follows:
FlowPerFloorArea: the simulation
engine determine the supply air flow rates from the user
specified supply air flow rates per unit floor area
and the zone floor area of the zone served by the zone HVAC
equipment.
FractionOfAutosizedCoolingAirflow:
the simulation engine determines the supply air flow rates
from the user specified flow fraction and
autosized cooling design supply air flow rate.
FractionOfAutosizedHeatingAirflow:
the simulation engine determines the supply air flow rates
from the user specified flow fraction and
autosized heating design supply air flow rate.
FlowPerCoolingCapacity: he
simulation engine determines the supply air flow rates from
the user specified supply air flow per cooling capacity
value and autosized cooling design capacity.
FlowPerHeatingCapacity: the
simulation engine determines the supply air flow rates from
the user specified supply air flow per heating capacity
value and autosized heating design capacity.
The scalable capacity sizing may be indirectly impacted by
the scalable supply air flow rates sizing values. Moreover,
the autosized cold water, hot water and steam flow rates in
the parent zone HVAC objects and capacity in child components
are determined using the scalable sizing method. Scalable
capacity sizing methods allowed for cooling and heating
include: CapacityPerFloorArea,
FractionOfAutosizedCoolingCapacity,
FractionOfAutosizedHeatingCapacity. The scalable
sizing capacity methods are defined as follows:
CapacityPerFloorArea: the simulation
engine determines the cooling or heating capacity from user
specified capacity per floor area value and the floor area of
the zone served by the zone HVAC equipment.
FractionOfAutosizedCoolingCapacity: the
simulation engine sizes the cooling capacity from the user
specified capacity fraction and autosized cooling
design capacity value.
FractionOfAutosizedHeatingCapacity: the
simulation engine sizes the heating capacity from the user
specified capacity fraction and autosized heating
design capacity value.
Zone Design Loads and Air Flow Rates[LINK]
Overview[LINK]
There is no single best way to establish design HVAC flow rates and size HVAC equipment. Different building designs, climates, and HVAC systems will impose varying constraints on the designer. The method used to size an HVAC system in a hot, moist climate such as Miami will be different than the method used for a building in Albuquerque. The type of building is also relevant - a simple watts per square foot loads estimate could be adequate for a building containing a network server farm while a detailed, dynamic loads simulation would be necessary for a passive solar building. In the end the designer’s experience and engineering judgement will play an important role in any sizing calculation.
HVAC equipment sizing begins with the calculation of space heating and cooling sensible and/or latent loads. A space cooling (heating) sensible load is defined as the rate at which heat must be removed (added) to a space to maintain a constant zone temperature. A space cooling (heating) latent load is defined as the rate at which moisture must be removed (added) to a space to maintain a constant zone moisture/humidity ratio/relative humidity level. The current industry standard method for calculating space loads is the heat balance method [ASHRAE Fundamentals (2001), page 29.1; Pedersen et al., (1997); Pedersen (2001). Since EnergyPlus is a heat balance based simulation program it is straightforward for the program to use this method for calculating zone loads.
Zone Design Data Arrays[LINK]
The zone design data arrays are:
ZoneSizingInput(i) stores the input data from the Sizing:Zone objects.
CalcZoneSizing(i,j) stores the results of the zone design calculations for all zones and all design days. The index i is for the controlled zones, j for design days.
CalcFinalZoneSizing(i) stores the results of the zone design calculations for the peak heating and cooling cases for each zone. The index i is for the controlled zones.
ZoneSizing(i,j) corresponds to CalcZoneSizing but includes the effect of the user specified sizing factor or user specified zone design flow rate.
FinalZoneSizing(i) corresponds to CalcFinalZoneSizing but includes the effect of the user specified sizing factor or user specified zone design flow rate.
TermUnitFinalZoneSizing(k) corresponds to FinalZoneSizing but includes the effect of any air system terminal unit sizing factors input with DesignSpecification:AirTerminal:Sizing objects. The index k is for each air terminal unit. There may be more or less terminal units than there are controlled zones.
The data stored in CalcZoneSizing, CalcFinalZoneSizing, ZoneSizing, FinalZoneSizing and TermUnitFinalZoneSizing includes the following data items.
p1.85inp4.13in Name & Description
Select data from ZoneSizingInput &
DesHeatMassFlow & the zone design sensible heating air mass flow rate in [kg/s]
DesCoolMassFlow & the zone design sensible cooling air mass flow rate in [kg/s]
DesLatentHeatMassFlow & the zone design latent heating air mass flow rate in [kg/s]
DesLatentCoolMassFlow & the zone design latent cooling air mass flow rate in [kg/s]
DesHeatLoad & the zone design sensible heating load in [W]
DesCoolLoad & the zone design sensible cooling load in [W]
DesHeatLoad & the zone design latent heating load in [W]
DesCoolLoad & the zone design latent cooling load in [W]
DesHeatDens & the zone design heating air density [kg/m ]
DesCoolDens & the zone design cooling air density [kg/m ]
DesHeatVolFlow & the zone design sensible heating air volume flow rate [m\(^{3}\)/s]
DesCoolVolFlow & the zone design sensible cooling air volume flow rate [m\(^{3}\)/s]
DesLatentHeatVolFlow & the zone design latent heating air volume flow rate [m\(^{3}\)/s]
DesLatentCoolVolFlow & the zone design latent cooling air volume flow rate [m\(^{3}\)/s]
DesHeatCoilInTemp & zone sensible heating coil design air inlet temperature [C]
DesCoolCoilInTemp & zone sensible cooling coil design air inlet temperature [C]
DesLatentHeatCoilInTemp & zone latent heating coil design air inlet temperature [C]
DesLatentCoolCoilInTemp & zone latent cooling coil design air inlet temperature [C]
DesHeatCoilInHumRat & the zone sensible heating coil design air inlet humidity ratio [kg/kg]
DesCoolCoilInHumRat & the zone sensible cooling coil design air inlet humidity ratio [kg/kg]
DesHeatCoilInHumRat & the zone latent heating coil design air inlet humidity ratio [kg/kg]
DesCoolCoilInHumRat & the zone latent cooling coil design air inlet humidity ratio [kg/kg]
HeatMassFlow & current zone heating air mass flow rate at the HVAC time step [kg/s]
CoolMassFlow & current zone cooling air mass flow rate at the HVAC time step [kg/s]
HeatLoad & Current zone heating load [W]
CoolLoad & Current zone cooling load [W]
HeatZoneTemp & Current zone temperature during heating [C]
HeatZoneRetTemp & current zone return temperature during heating [C]
CoolZoneTemp & Current zone temperature during cooling [C]
CoolZoneRetTemp & current zone return temperature during cooling [C]
HeatZoneHumRat & Current zone humidity ratio during heating [C]
CoolZoneHumRat & Current zone humidity ratio during cooling [C]
ZoneTempAtHeatPeak & zone temperature at maximum sensible heating [C]
ZoneRetTempAtHeatPeak & zone return temperature at maximum sensible heating [C]
ZoneRetTempAtLatentHeatPeak & zone return temperature at maximum latent heating [C]
ZoneTempAtCoolPeak & zone temperature at maximum cooling [C]
ZoneRetTempAtCoolPeak & zone return temperature at maximum sensible cooling [C]
ZoneRetTempAtLatentCoolPeak & zone return temperature at maximum latent cooling [C]
ZoneHumRatAtHeatPeak & zone humidity ratio at maximum heating [kg/kg]
ZoneHumRatAtCoolPeak & zone humidity ratio at maximum cooling [kg/kg]
TimeStepNumAtHeatMax & zone time step number (in the day) at the sensible heating peak
TimeStepNumAtCoolMax & zone time step number (in the day) at the sensible cooling peak
TimeStepNumAtLatentHeatMax & zone time step number (in the day) at the latent heating peak
TimeStepNumAtLatentCoolMax & zone time step number (in the day) at the latent cooling peak
HeatDDNum & design day index of design day causing sensible heating peak
CoolDDNum & design day index of design day causing sensible cooling peak
LatentHeatDDNum & design day index of design day causing latent heating peak
LatentCoolDDNum & design day index of design day causing latent cooling peak
MinOA & design minimum outside air [m\(^{3}\)/s]
HeatFlowSeq(i) & daily sequence of zone sensible heating air mass flow rates (zone time step) [kg/s]
CoolFlowSeq(i) & daily sequence of zone sensible cooling air mass flow rates (zone time step) [kg/s]
LatentHeatFlowSeq(i) & daily sequence of zone sensible heating air mass flow rates (zone time step) [kg/s]
LatentCoolFlowSeq(i) & daily sequence of zone sensible cooling air mass flow rates (zone time step) [kg/s]
HeatLoadSeq(i) & daily sequence of zone sensible heating loads (zone time step) [W]
CoolLoadSeq(i) & daily sequence of zone sensible cooling loads (zone time step) [W]
LatentHeatLoadSeq(i) & daily sequence of zone latent heating loads (zone time step) [W]
LatentCoolLoadSeq(i) & daily sequence of zone latent cooling loads (zone time step) [W]
HeatZoneTempSeq(i) & daily sequence of zone temperatures (heating, zone time step) [C]
HeatZoneRetTempSeq(i) & daily sequence of zone return temperatures (heating, zone time step) [C]
CooltZoneTempSeq(i) & daily sequence of zone temperatures (cooling, zone time step) [C]
CoolZoneRetTempSeq(i) & daily sequence of zone return temperatures (cooling, zone time step) [C]
HeatZoneHumRatSeq(i) & daily sequence of zone humidity ratios (heating, zone time step) [kg/kg]
CoolZoneHumRatSeq(i) & daily sequence of zone humidity ratios (cooling, zone time step) [kg/kg]
Zone Design Load Calculation[LINK]
As described in the preceding section, the Sizing Manager initiates the zone design calculation by looping over all of the design days and calling the Heat Balance Manager for each zone time-step in each design day. The Heat Balance manager then causes the HVAC Manager to be called in a manner identical to a normal simulation. The ZoneSizingCalc set to true signals the HVAC Manager to ignore the actual HVAC system and instead calculate the design sensible and latent zone loads and air flow rates using an ideal zonal system.
In module HVACManager, subroutine ManageHVAC calls SimHVAC. SimHVAC checks ZoneSizingCalc. If it is true, SimHVAC calls ManageZoneEquipment and returns, rather than simulating the actual system. In turn ManageZoneEquipment checks if ZoneSizingCalc is true; if it is it calls SizeZoneEquipment rather than SimZoneEquipment.
SizeZoneEquipment assumes that each controlled zone is served by an ideal air conditioning unit. This unit supplies sensible and latent (if latent sizing is requeted) heating or cooling air at a fixed, user input temperature and humidity (specified in the Sizing:Zone objects). The units have infinite capacity: the flow rate can be any amount. Zone humidity is controlled at a constant level when latent sizing is requested, otherwise zone humidity is allowed to float. The sensible and latent loads and air mass flow rates are saved and reported to eplusout.zsz.
Before the ideal zone load is calculated, the function checks whether the user wants to account for the heat gain or loss caused by the ventilation air from a Dedicated Outdoor Air System (DOAS). If the user has selected Account For Dedicated Outdoor Air = Yes the function performs an ideal DOAS calculation. The DOAS supply temperature is set according to the user’s choice of 1 of 3 possible control strategies: NeutralSupplyAir, NeutralDehumidifiedSupplyAir, or ColdSupplyAir. This value is saved and reported to eplusout.zsz. The different strategies are:
DOAS Control Strategy = NeutralSupplyAir. The purpose of this strategy is to cool or heat the outdoor air (OA) to keep it between the T\(_{l}\) and T\(_{h}\) setpoints.
DOAS Control Strategy = Neutral Dehumidified Supply Air. The purpose of this strategy is to cool and dehumidify the outdoor air, then reheat it to a “neutral” temperature so that no sensible load is imposed on the space or AHU unit. The DOAS will with this strategy handle some or all of the latent load. If the outdoor air temperature is greater than T\(_{l}\) the outdoor air is cooled to T\(_{l}\) and reheated to T\(_{h}\). If the outdoor air temperaure is below T\(_{l}\) it is heated to T\(_{h}\).
DOAS Control Strategy = ColdSupplyAir. The purpose of this strategy is to provide cool, dehumidified ventilation air to the zone. In this case the DOAS can handle part of the sensible zone cooling load as well as meet part or all of the latent load. If the outdoor air temperature is below T\(_{l}\) it is heated to T\(_{h}\). If it is above T\(_{l}\), it is cooled to T\(_{l}\).
With the DOAS supply temperature set and the air mass flow rate set to the minimum design ventilation flow rate the heat addition rate is just
\[{\dot Q_{doa}} = {c_{p,air}}{\dot m_{vent,min}}({T_{sup}} - {T_z})\]
UpdateSystemOutputRequired is then invoked to adjust the load to be met by the ideal zone system.
When latent sizing is requested sensible and latent loads provided by the DOAS are updated. Latent load units are kgw per second.
\[{\dot Q_{doa, moisture}} = {\dot m_{vent,min}}({w_{sup}} - {w_z})\]
The ideal loads calculation steps are as follows.
Loop over all the controlled zones.
If the system is active (zone temperature not in the deadband and zone load greater than 1 watt) the sign of the zone load is used to determine whether heating or cooling is required and T\(_{in}\) and W\(_{in}\) are set to the appropriate values from the Sizing:Zone input. When the SupplyTemperature method is specified in the Sizing:Zone object, T\(_{in}\) is fixed at the cooling or heating supply temperature. When the TemperatureDifference method is selected, T\(_{in}\) is calculated at each time step using the current zone air temperature. The system output Q\(_{sys}\) is simply set equal to the zone demand - it is assumed that the ideal system can always meet the zone load. The air flow rate corresponding to the load is just
\[{\dot m_{sys}} = {Q_{sys}}/({C_{p,air}} \cdot ({T_{in}} - {T_z}))\]
Similar calculations are performed when latent sizing is requested where a zone latent mass flow rate is calculated.
\[{\dot m_{sys, latent}} = {Q_{sys, latent}}/({w_{in}} - {w_z})\]
If the system is not active, the mass flow rate is set to zero and the system output is left at zero.
Updating and Adjusting the Zone Results[LINK]
The results from SizeZoneEquipment are at the system time-step and are for all design days. These results then need to be summed or averaged over the zone time-step, peak values calculated for each design day, a sensible and latent (when latent sizing is requested) heating & a cooling load sequence chosen for each zone from all the design day results, possible further smoothing of results done, zone coil loads calculated, and user sizing multipliers or user specified design flows taken into account. These tasks are accomplished by the subroutine UpdateZoneSizing. It is called at the start of each design day (CallIndicator = BeginDay), at the zone time-step (CallIndicator = DuringDay), at the end of the design day (CallIndicator = EndDay) and at the end of the zone design calculation (CallIndicator = EndZoneSizingCalc).
BeginDay[LINK]
The environment (in this case, a design day) name and number are stored in the zone sizing data structures
DuringDay[LINK]
The calculated and stored sequences are summed or averaged over the zone time-step.
EndDay[LINK]
CoolFlowSeq
CoolLoadSeq
HeatFlowSeq
HeatLoadSeq
CoolZoneRetTempSeq
HeatZoneRetTempSeq
DOASHeatAddSeq
DOASLatSeq
LatentHeatLoadSeq
LatentHeatFlowSeq
LatentCoolLoadSeq
LatentCoolFlowSeq
CoolLatentLoadNoDOASSeq
HeatLatentLoadNoDOASSeq
CoolLoadNoDOASSeq
HeatLoadNoDOASSeq
The peak sensible and latent (when latent sizing is requested) heating and cooling loads and mass & volume flow rates are extracted from each set of design sequences.
Using the time of the peak and the design outside air fraction the design zone heating and cooling coil inlet temperatures and humidity ratios are calculated.
For each zone, looking at the results for all of the design days, the design days that cause the peak heating and peak cooling for that zone are chosen and the corresponding design sequences and peak loads and flow rates are saved in the CalcFinalZoneSizing array. This finishes the calculated - unmodified by the user - portion of the zone design calculation.
When latent sizing is requested the zone latent loads are either used (when latent only sizing is requested) or compared to the zone sensible loads. If the zone latent load is greater than the zone sensible load the latent zone sizing information is used for the simulation.
EndZoneSizingCalc[LINK]
Write out onto a comma-separated file the calculated design sequences for each zone: HeatLoadSeq, CoolLoadSeq, HeatFlowSeq, CoolFlowSeq, LatentHeatLoadSeq, LatentCoolLoadSeq, LatentHeatFlowSeq, LatentCoolFlowSeq, HeatLoadNoDOASSeq, CoolLoadNoDOASSeq, HeatLatentLoadNoDOASSeq, CoolLatentLoadSeq, HeatZoneTempSeq, HeatZoneRHSeq, CoolZoneTempSeq, CoolZoneRHSeq and the corresponding peaks and volumetric flow peaks.
The data in CalcZoneSizing and CalcFinalZoneSizing is moved to ZoneSizing and FinalZoneSizing. The user modifications to the calculated sizing will be applied to and stored in ZoneSizing and FinalZoneSizing.
The user can modify the calculated zone design results by specifying heating and cooling sizing factors at the global or zone level or by specifying and actual design heating or cooling zone design volumetric flow rate. All of this input is treated as a sizing factor. If the user inputs a cooling design volumetric flow rate for a zone it is divided by the calculated cooling design volumetric flow rate for the zone to give a zone cooling sizing factor. Note that the user can input a zone sizing factor or a zone design flow rate - not both - so there is never a conflict.
Once the zone heating and cooling sizing factors are established, the design flow and load sequences as well as peak loads and flows are multiplied by the appropriate sizing factor and stored in ZoneSizing and FinalZoneSizing. This is the data that will be used for sizing zone HVAC equipment and in the system sizing calculation.
The outside air fractions are recalculated using the new user-modified design flow rates and new design zone coil inlet conditions calculated and stored. At this point the condition that the design flow rates are never allowed to be less than the minimum outside air flow rate is imposed.
If outside air method is flow/zone, the input outside air flow per zone value will be used, even if it is zero or blank. If outside air method is sum, the sum of the outside air flow per person * DesignNumberOfPeople + outside air flow per area * ZoneArea will be used. If outside air method is maximum, the maximum of the outside air flow per person * DesignNumberOfPeople and outside air flow per area * ZoneArea will be used. If outside air method is flow/person, outside air flow per person will be used to calculate the design minimum outside airflow rate.
If cooling design air flow method is flow/zone, then cooling design air flow rate will be used for the design max cooling air flow rate. If cooling design air flow method is design day, then the design day calculation will set the design max cooling air flow rate. If cooling design air flow method is design day with limit, then the maximum from cooling min flow per area and cooling min flow will set a lower limit on the design max cooling air flow rate. In all cases, the maximum from cooling min flow per area, cooling min flow, and cooling min flow fraction will set a minimum zone cooling air flow rate. In all cases the maximum design cooling air flow rate must be > = to the ventilation requirement.
If heating design air flow method is flow/zone, then heating design air flow rate will be used for the design max heating air flow rate. If heating design air flow method is design day, then the design day calculation will set the design max heating air flow rate. If heating design air flow method is design day with limit, then the maximum from heating max flow per area, heating max flow and heating max flow fraction will set an upper limit on the design max heating air flow rate. The design max heating air flow rate must always be > = the ventilation requirement. In each case, the outside airflow will be modified based on zone ventilation effectiveness specified in the zone sizing object.
This concludes the calculation of the zone design flow rates and loads.
Air Terminal Unit Sizing[LINK]
Each controlled zone may have one or more air terminal units (AirTerminal:*) served by one or more central air handlers (AirLoopHVAC). Each air terminal unit may reference a DesignSpecification:AirTerminal:Sizing object which is used to adjust the FinalZoneSizing data for each terminal unit with these user inputs:
All of these factors default to 1.0. Function UpdateTermUnitFinalZoneSizing first fills each instance of TermUnitFinalZoneSizing with a copy of FinaZoneSizing for the controlled zone served by the terminal unit. Then, if there is an applicable DesignSpecification:AirTerminal:Sizing input, the following adjustments are made:
\[{CoolLoad_{TU}} = {CoolLoad_{FZ}} \cdot {DesSensCoolingFrac}\]
\[{minOAFlow_{TU}} = {minOAFlow_{FZ}} \cdot {MinOAFrac}\]
\[{CoolFlowRatio} = {DesSensCoolingFrac} / {DesCoolSATRatio}\]
\[{CoolFlow_{TU}} = {CoolFlowNoOA_{FZ}} \cdot CoolFlowRatio + {MinOAFrac} \cdot ( {CoolFlowWithOA_{FZ}} - {CoolFlowNoOA_{FZ}} )\]
\[{CoolFlow_{TU}} = max({CoolFlow_{TU}},{minOAFlow_{TU}})\]
Where:
Likewise for heating.
Zone HVAC Scalable Sizing[LINK]
For zone HVAC equipment, scalable sizing applies to supply air flow rate and capacity for both cooling and heating. The scalable sizing method allowed for supply air flow rates include: FractionOfAutosizedCoolingAirflow, sizing method allowed for supply air flow rates include: FractionOfAutosizedCoolingAirflow, FractionOfAutosizedHeatingAirflow, FlowPerFloorArea, FlowPerCoolingCapacity, and FlowPerHeatingCapacity. The supply air flow rate scalable sizing methods are defined as follows:
FlowPerFloorArea: the simulation engine determine the supply air flow rates from the user specified supply air flow rates per unit floor area and the zone floor area of the zone served by the zone HVAC equipment.
FractionOfAutosizedCoolingAirflow: the simulation engine determines the supply air flow rates from the user specified flow fraction and autosized cooling design supply air flow rate.
FractionOfAutosizedHeatingAirflow: the simulation engine determines the supply air flow rates from the user specified flow fraction and autosized heating design supply air flow rate.
FlowPerCoolingCapacity: he simulation engine determines the supply air flow rates from the user specified supply air flow per cooling capacity value and autosized cooling design capacity.
FlowPerHeatingCapacity: the simulation engine determines the supply air flow rates from the user specified supply air flow per heating capacity value and autosized heating design capacity.
The scalable capacity sizing may be indirectly impacted by the scalable supply air flow rates sizing values. Moreover, the autosized cold water, hot water and steam flow rates in the parent zone HVAC objects and capacity in child components are determined using the scalable sizing method. Scalable capacity sizing methods allowed for cooling and heating include: CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity, FractionOfAutosizedHeatingCapacity. The scalable sizing capacity methods are defined as follows:
CapacityPerFloorArea: the simulation engine determines the cooling or heating capacity from user specified capacity per floor area value and the floor area of the zone served by the zone HVAC equipment.
FractionOfAutosizedCoolingCapacity: the simulation engine sizes the cooling capacity from the user specified capacity fraction and autosized cooling design capacity value.
FractionOfAutosizedHeatingCapacity: the simulation engine sizes the heating capacity from the user specified capacity fraction and autosized heating design capacity value.
Documentation content copyright © 1996-2026 The Board of Trustees of the University of Illinois and the Regents of the University of California through the Ernest Orlando Lawrence Berkeley National Laboratory. All rights reserved. EnergyPlus is a trademark of the US Department of Energy.
This documentation is made available under the EnergyPlus Open Source License v1.0.