System Design
Loads and Air Flow Rates[LINK]
The purpose of the system design calculation is to estimate
design heating and cooling loads and air flow rates for each
air loop in the simulation problem. The calculation sequence
for system level design loads and air flow rates resembles the
calculation sequence for zone loads and air flow rates. There
is an update subroutine UpdateSysSizing called at the
beginning, during, and end of a loop in the Sizing Manager
over all the design days. The major difference is that this
calculation is done at the zone time-step only. There is no
idealized component calculation triggered at the system
time-step as in the zone calculation. The system design
calculation operates at the zone time step using the design
environment weather data and the data stored in the zone
sizing arrays. The results of the system design calculation
are stored in the system sizing arrays described below.
System Design Data
Arrays[LINK]
The system design data arrays are:
SysSizInput(i) stores the input data from the Sizing:System
objects.
SysSizing(i,j) stores the results of the system
design calculations for all systems and all design days. The
index i is for air loops, j for design days.
CalcSysSizing(i) stores the results of the system
design calculations for the peak heating and cooling cases for
each air loop. The index i is for the air loops.
FinalSysSizing(i) corresponds to
CalcSysSizing but includes the effect of the user
specified sizing factor or user specified system design flow
rate.
The data stored in SysSizing,
CalcSysSizing and FinalSysSizing includes
the following data items.
System Sizing Data
| Name |
Description |
| All the data from
SysSizInput |
|
| CoinCoolMassFlow |
coincident peak cooling mass
flow rate [kg/s] |
| CoinHeatMassFlow |
coincident peak heating mass
flow rate [kg/s] |
| NonCoinCoolMassFlow |
noncoincident peak cooling mass
flow rate [kg/s] |
| NonCoinHeatMassFlow |
noncoincident peak heating mass
flow rate [kg/s] |
| DesMainVolFlow |
design main supply duct volume
flow [m\(^{3}\)/s] |
| DesHeatVolFlow |
design heat supply duct volume
flow [m\(^{3}\)/s] |
| DesCoolVolFlow |
design cool supply duct volume
flow [m\(^{3}\)/s] |
| SensCoolCap |
design sensible cooling capacity
[W] |
| TotCoolCap |
design total cooling capacity
[W] |
| HeatCap |
design heating capacity [W] |
| PreheatCap |
design preheat capacity [W] |
| MixTempAtCoolPeak |
mixed air temperature at the
time of the cooling peak [C] |
| MixHumRatAtCoolPeak |
mixed air humidity ratio at the
time of the cooling peak [kg water/kg dry air] |
| RetTempAtCoolPeak |
return air temperature at the
time of the cooling peak [C] |
| RetHumRatAtCoolPeak |
return air humidity ratio at the
time of the cooling peak [kg water/kg dry air] |
| OutTempAtCoolPeak |
outside air temperature at the
time of the cooling peak [C] |
| OutHumRatAtCoolPeak |
outside air humidity ratio at
the time of the cooling peak [kg water/kg dry air] |
| HeatMixTemp |
design mixed air temperature for
heating [C] |
| HeatMixHumRat |
design mixed air humidity ratio
for heating [kg water/kg dry air] |
| HeatRetTemp |
design return air temperature
for heating [C] |
| HeatRetHumRat |
design return air humidity ratio
for heating [kg water/kg dry air] |
| HeatOutTemp |
design outside air temperature
for heating [C] |
| HeatOutHumRat |
design outside air humidity
ratio for heating [kg water/kg dry air] |
| HeatFlowSeq(i) |
daily sequence of system heating
air mass flow rate (zone time step) [kg/s] |
| CoolFlowSeq(i) |
daily sequence of system cooling
air mass flow rate (zone time step) [kg/s] |
| SumZoneCoolLoadSeq(I) |
daily sequence of zones’ summed
cooling load (zone time step) [W] |
| CoolZoneAvgTempSeq(I) |
daily sequence of zones flow
weighted average temperature (zone time step) [W] |
| SensCoolCapSeq(I) |
daily sequence of system
sensible cooling capacity (zone time step) [W] |
| TotCoolCapSeq(I) |
daily sequence of system total
cooling capacity (zone time step) [W] |
| HeatCapSeq(i) |
daily sequence of system heating
capacity (zone time step) [W] |
| PreHeatCapSeq(i) |
daily sequence of system preheat
capacity (zone time step) [W] |
| SysCoolRetTempSeq(i) |
daily sequence of system cooling
return temperatures (zone time step) [C] |
| SysCoolRetHumRatSeq(I) |
daily sequence of system cooling
return humidity ratios (zone time step) [kg water/kg dry
air] |
| SysHeatRetTempSeq(i) |
daily sequence of system heating
return temperatures (zone time step) [C] |
| SysHeatRetHumRatSeq(I) |
daily sequence of system heating
return humidity ratios (zone time step) [kg water/kg dry
air] |
| SysCoolOutTempSeq |
daily sequence of system cooling
outside temperatures (zone time step) [C] |
| SysCoolOutHumRatSeq |
daily sequence of system cooling
outside humidity ratios (zone time step) [kg water/kg dry
air] |
| SysHeatOutTempSeq |
daily sequence of system heating
outside temperatures (zone time step) [C] |
| SysHeatOutHumRatSeq |
daily sequence of system heating
outside humidity ratios (zone time step) [kg water/kg dry
air] |
System
Design Flow Rate and Load Summation and Adjustment[LINK]
There is no system level subroutine corresponding to
SizeZoneEquipment. Instead the system design loads
and flow rates are calculated using the zone level results. If
latent sizing is requested and latent loads are greater than
sensible loads the latent design load and air mass flow rate
are used for that zone. The zone design flow rates for the
zones served by an air loop are summed to obtain the system
level design flow rates. These air flows are mixed with the
system level design minimum outside air flow rate to obtain
system design coil loads. These activities are all performed
within the UpdateSysSizing subroutine in the
SimAirServingZones module. 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 =
EndSysSizingCalc).
There is a logical flag SysSizingCalc
corresponding to ZoneSizingCalc. It is used to allow
the component routines to distinguish a normal simulation call
from a being called during a system sizing calculation.
Note that throughout this section, any reference to a
“zone” is equivalent to “air terminal unit”.
The environment (in this case, a design day) name is
stored in the system sizing data structures.
Loop over the zones cooled by this air loop:
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesCoolMassFlow\(_{zone}\)
- Loop over the zones heated by this air loop:
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesHeatMassFlow\(_{zone}\)
- Loop over the zones cooled by this air loop:
CoolFlowSeq\(_{sys}\)(i) = \(\Sigma\) CoolFlowSeq \(_{zone}\)(i)
SysCoolRetTemp(i) = \(\Sigma\)
(CoolZoneRetTempSeq(i) * CoolFlowSeq\(_{zone}\)(i))/
CoolFlowSeq\(_{sys}\)(i)
SysCoolRetHumRat(i) = \(\Sigma\)
(CoolZoneHumRatSeq(i) * CoolFlowSeq\(_{zone}\)(i))/
CoolFlowSeq\(_{sys}\)(i)
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
CoolFlowSeq\(_{sys}\)(i)
T\(_{mix}\) =
T\(_{outside}\) *
FracOA + SysCoolRetTemp(i)(1 -
FracOA)
W\(_{mix}\) =
W\(_{outside}\) *
FracOA + SysCoolRetHumRat (i)(1 -
FracOA)
SysCoolOutTempSeq(i) = T\(_{outside}\)
SysCoolOutHumRatSeq(i) = W\(_{outside}\)
Get the current (zone time-step) system cooling
capacity:
SysSensCoolCap\(_{cur}\) = C\(_{p,air}\) *
CoolFlowSeq\(_{sys}\)(i) *( T\(_{mix}\)-T\(_{sup}\))
SensCoolCapSeq(I) = SysSensCoolCap\(_{cur}\)
If SysSensCoolCap\(_{cur}\) is the maximum for
the day so far then save SysSensCoolCap\(_{cur}\) as the design
value:
SensCoolCap(i )\(_{sys}\) =
SysSensCoolCap\(_{cur}\)
And save the corresponding mixed, return and outside
conditions:
CoolMixTemp\(_{sys}\) = T\(_{mix}\)
CoolMixHumRat\(_{sys}\) = W\(_{mix}\)
CoolRetTemp\(_{sys}\) =
SysCoolRetTemp(i)
CoolRetHumRat\(_{sys}\) =
SysCoolRetHumRat(I)
CoolOutTemp\(_{sys}\) = T\(_{outside}\)
CoolOutHumRat\(_{sys}\) = W\(_{outside}\)
Here \(\rho\)\(_{air}\) is the density of dry
air at 20\(^{\circ}\)C and
standard elevation corrected pressure, [kg/m\(^{3}\)];
FracOA is the outside air fraction; C\(_{p,air}\) is the specific heat
of dry air at 20\(^{\circ}\)C, [J/kg-K]; T\(_{sup}\) is the user specified
design cooling supply temperature [C]; T\(_{mix}\) is the current mixed air
temperature [C]; W\(_{mix}\)
is the current mixed air humidity ratio [kg water / kg dry
air]; \(T_{outside}\) is the
current outside air temperature [C]; \(W_{outside}\) is the current
outside air humidity ratio [kg water / kg dry air].
Note: When latent sizing is requested the zone design
supply air humidity ratio used during zone latent sizing is
used as the system cooling coil outlet air humidity ratio
(w\(_{sup}\)) for
sytem cooling coil sizing. The system cooling coil outlet air
humidity ratio is calculated as a mass flow rate weighted
average of each zone’s latent cooling supply air humidity
ratio. See Sizing:Zone
field Zone
Latent Cooling Design Supply Air Humidity Ratio Input
Method. This calculated value is used only when one or
more zone latent load is found to be greater than that zone’s
sensible load, or latent only sizing is requested. A control
method that enables the system cooling coil to dehumidify to
the design latent supply air humidity ratio is suggested so
that the system sensible load can be exceeded when additional
dehumidification is required.
- Loop over the zones heated by this air loop.
HeatFlowSeq\(_{sys}\)(i) = \(\Sigma\) HeatFlowSeq \(_{zone}\)(i)
SysHeatRetTemp(i) = \(\Sigma\)
(HeatZoneRetTempSeq(i) * HeatFlowSeq\(_{zone}\)(i))/
HeatFlowSeq\(_{sys}\)(i)
SysHeatRetHumRat(i) = \(\Sigma\)
(HeatZoneHumRatSeq(i) * HeatFlowSeq\(_{zone}\)(i))/
HeatFlowSeq\(_{sys}\)(i)
FracOA = r\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
HeatFlowSeq\(_{sys}\)(i)
T\(_{mix}\) =
T\(_{outside}\) *
FracOA + SysHeatRetTemp(i)(1 -
FracOA)
W\(_{mix}\) =
W\(_{outside}\) *
FracOA + SysHeatRetHumRat (i)(1 -
FracOA)
SysHeatOutTempSeq(i) = T\(_{outside}\)
SysHeatOutHumRatSeq(i) = W\(_{outside}\)
Get the current (zone time-step) system heating
capacity:
SysHeatCap\(_{cur}\) = C\(_{p,air}\) *
MinFlowRat\(_{sys}\)
*HeatFlowSeq\(_{sys}\)(i) *( T\(_{sup}\)-T\(_{mix}\))
HeatCapSeq(I) = SysHeatCap\(_{cur}\)
If SysHeatCap\(_{cur}\) is the maximum for
the day so far then save SysHeatCap\(_{cur}\) as the design
value:
HeatCap(i )\(_{sys}\) =
SysHeatCap\(_{cur}\)
And save the corresponding mixed, return and outside
conditions:
HeatMixTemp\(_{sys}\) = T\(_{mix}\)
HeatMixHumRat\(_{sys}\) = W\(_{mix}\)
HeatRetTemp\(_{sys}\) =
SysHeatRetTemp(i)
HeatRetHumRat\(_{sys}\) =
SysHeatRetHumRat(I)
HeatOutTemp\(_{sys}\) = T\(_{outside}\)
HeatOutHumRat\(_{sys}\) = W\(_{outside}\)
Here MinFlowRat\(_{sys}\) is the user
specified minimum supply flow ratio.
If the user has specified coincident system sizing
then:
DesCoolVolFlow\(_{sys}\) = \(\rho\)\(_{air}\)
*CoinCoolMassFlow\(_{sys}\)
DesHeatVolFlow\(_{sys}\) = \(\rho\)\(_{air}\)
*CoinHeatMassFlow\(_{sys}\)
DesMainVolFlow\(_{sys}\) =
Max(DesCoolVolFlow\(_{sys}\),
DesHeatVolFlow\(_{sys}\))
If the user has specified noncoincidentsystem
sizing then:
DesCoolVolFlow\(_{sys}\) = \(\rho\)\(_{air}\)
*NonCoinCoolMassFlow\(_{sys}\)
DesHeatVolFlow\(_{sys}\) = \(\rho\)\(_{air}\)
*NonCoinHeatMassFlow\(_{sys}\)
DesMainVolFlow\(_{sys}\) =
Max(DesCoolVolFlow\(_{sys}\),
DesHeatVolFlow\(_{sys}\))
Based on the outdoor air method selected, the
DesCoolVolFlow\(_{sys}\) and
DesHeatVolFlow\(_{sys}\) are modified based
on the system ventilation effciency calculated based on the
maximum outdoor air fraction.
EndSysSizingCalc[LINK]
At this point all the calculations have been done in
SysSizing(i,j): we have results for each design day.
Now these results need to be processed to find the heating and
cooling design quantities for each system over all the design
days.
For coincident sizing the task is quite easy.
- Loop over all of the air loops.
- Loop over all of the design days.
If the value of DesCoolVolFlow in
SysSizing for the current design day is greater than
the value stored in CalcSysSizing, then move
DesCoolVolFlow from SysSizing into
CalcSysSizing along with CoolDesDay,
CoinCoolMassFlow, SensCoolCap,
CoolFlowSeq(i), SensCoolCapSeq(i),
CoolMixTemp, CoolRetTemp,
CoolMixHumRat, CoolRetHumRat,
CoolOutTemp, CoolOutHumRat,
SysCoolRetTempSeq(i),
SysCoolRetHumRatSeq(i), SysCoolOutTempSeq(i)
and SysCoolOutHumRatSeq(i).
If the value of DesHeatVolFlow in
SysSizing for the current design day is greater than
the value stored in CalcSysSizing, then move
DesHeatVolFlow from SysSizing into
CalcSysSizing along with HeatDesDay,
CoinHeatMassFlow, HeatCap,
PreHeatCap, HeatFlowSeq(i),
HeatCapSeq(i), PreHeatCapSeq(i),
HeatMixTemp, HeatRetTemp,
HeatMixHumRat, HeatRetHumRat,
HeatOutTemp, HeatOutHumRat,
SysHeatRetTempSeq(i),
SysHeatRetHumRatSeq(i), SysHeatOutTempSeq(i)
and SysHeatOutHumRatSeq(i).
At the end of each design day loop the peak cooling and the
peak heating data will be stored in CalcSysSizing. At
this point we set DesMainVolFlow in
CalcSysSizing equal to the maximum of
DesCoolVolFlow and DesHeatVolFlow.
For noncoincident sizing the task is harder since we don’t
have a single time-step during which all the zone peaks occur.
So there is no obvious value for outside air temperature at
the peak, return air temperature at the peak and so forth. We
must return to the zone sizing data and calculate average
values for return and outside conditions.
- Loop over all of the zones cooled by this air loop.
In FinalZoneSizing replace the value in
DesCoolCoilInTemp with the user specified
CoolSupTemp\(_{sys}\). Do the same for
DesCoolCoilInHumRat and CoolSupHumRat. This
ensures that zone equipment connected to an air loop will use
the system design supply air conditions as coil entering
conditions.
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesCoolMassFlow\(_{zone}\)
SysCoolRetTemp = (ZoneRetTempAtCoolPeak
*DesCoolMassFlow\(_{zone}\)) /
NonCoinCoolMassFlow\(_{sys}\)
SysCoolRetHumRat = (ZoneHumRatAtCoolPeak
* DesCoolMassFlow\(_{zone}\))
/NonCoinCoolMassFlow\(_{sys}\)
SysCoolOutTemp = (T\(_{OA,zone\, peak}\)
*DesCoolMassFlow\(_{zone}\))
/NonCoinCoolMassFlow\(_{sys}\)
SysCoolOutHumRat = (W\(_{OA,zone\\ peak}\)
*DesCoolMassFlow\(_{zone}\))
/NonCoinCoolMassFlow\(_{sys}\)
At the end of the zone loop calculate mixed air conditions
and the system sensible cooling capacity.
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
NonCoinCoolMassFlow\(_{sys}\)
T\(_{mix}\) =
SysCoolOutTemp * FracOA +
SysCoolRetTemp * (1 - FracOA)
W\(_{mix}\) =
SysCoolOutHumRat * FracOA +
SysCoolRetHumRat *
(1 - FracOA)
SysSensCoolCap = C\(_{p,air}\) *
NonCoinCoolMassFlow *( T\(_{mix}\)-T\(_{sup}\))
Then (for noncoincident sizing) the variables calculated in
section (ii) are moved into the CalcSysSizing
Array.
- Loop over all of the zones heated by this air loop.
In FinalZoneSizing replace the value in
DesHeatCoilInTemp with the user specified
HeatSupTemp\(_{sys}\). Do the same for
DesHeatCoilInHumRat and HeatSupHumRat. This
ensures that zone equipment connected to an air loop will use
the system design supply air conditions as coil entering
conditions.
NonCoinHeatMassFlow\(_{sys}\) = \(\Sigma\) DesHeatMassFlow\(_{zone}\)
SysHeatRetTemp = (ZoneRetTempAtHeatPeak
*DesHeatMassFlow\(_{zone}\))/
NonCoinHeatMassFlow\(_{sys}\)
SysHeatRetHumRat = (ZoneHumRatAtHeatPeak
*DesHeatMassFlow\(_{zone}\))/
NonCoinHeatMassFlow\(_{sys}\)
SysHeatOutTemp = (T\(_{OA,zone\\ peak}\)
*DesHeatMassFlow\(_{zone}\))/NonCoinHeatMassFlow\(_{sys}\)
SysHeatOutHumRat = (W\(_{OA,zone\\ peak}\)
*DesHeatMassFlow\(_{zone}\))/NonCoinHeatMassFlow\(_{sys}\)
At the end of the zone loop calculate mixed air conditions
and the system sensible cooling capacity.
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
NonCoinHeatMassFlow\(_{sys}\)
T\(_{mix}\) =
SysHeatOutTemp * FracOA +
SysHeatRetTemp * (1 - FracOA)
W\(_{mix}\) =
SysHeatOutHumRat * FracOA +
SysHeatRetHumRat *
(1 - FracOA)
SysHeatlCap = C\(_{p,air}\) *
NonCoinHeatlMassFlow *( T\(_{sup}\)-T\(_{mix}\))
Then (for noncoincident sizing) the variables calculated in
section (ii) are moved into the CalcSysSizing
Array.
- We now have the calculated system sizing data. This data
needs to be altered to take into account the user input system
design flow rates (if any), or the fact that the user may have
requested that the system flow rate be sized on the
ventilation requirement. Note that user specified sizing
ratios have already been applied to the zone sizing data which
have been used in out preceding system sizing calculation.
Thus the user specified sizing ratios do not have to be
explicitly taken into account at the system level.
First we move the calculated system sizing data from
CalcSysSizing array into the FinalSysSizing
array. FinalSysSizing will contain the user modified
system design data when we are all done.
Loop over the air loops.
- As in the zone case, the user specified system design flow
rates are turned into sizing ratios by dividing the user input
value by the calculated value. The same strategy is employed
for sizing on the ventilation requirement: the design
ventilation flow rate is divided by the calculated design flow
rate value. For each air loop this gives us a SizRat\(_{cool}\) and
SizRat\(_{heat}\).
CoinCoolMassFlow = SizRat\(_{cool}\) *
CoinCoolMassFlow\(_{calc}\)
NonCoinCoolMassFlow = SizRat\(_{cool}\) *
NonCoinCoolMassFlow\(_{calc}\)
DesCoolVolFlow = SizRat\(_{cool}\) *
DesCoolVolFlow\(_{calc}\)
Since the flow rates have been altered the outside air
fraction will change. This will alter the design mixed air
conditions and lead to an altered value for the cooling
capacity. This must be done for the time-step sequence and for
the peak value.
Loop over the zone timesteps (index = i).
CoolFlowSeq\(_{sys}\)(i) =
SizRat\(_{cool}\) *
CoolFlowSeq\(_{sys,calc}\)(i)
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
CoolFlowSeq\(_{sys}\)(i)
T\(_{mix}\) =
SysCoolOutTempSeq(i) *FracOA +
SysCoolRetTempSeq(i) *(1-FracOA)
SensCoolCapSeq(i) = C\(_{p,air}\) *
CoolFlowSeq\(_{sys}\)(i) *( T\(_{mix}\)-T\(_{sup}\))
Do the same calculation for peak cooling.
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
DesCoolVolFlow
T\(_{mix}\) =
CoolOutTemp\(_{sys}\)
*FracOA + CoolRetTemp\(_{sys}\) *(1-FracOA)
W\(_{mix}\) =
CoolOutHumRat\(_{sys}\)
*FracOA + CoolRetHumRat\(_{sys}\) * (1-FracOA)
SensCoolCap\(_{sys}\) = C\(_{p,air}\) *
DesCoolVolFlow\(_{sys}\) *( T\(_{mix}\)-T\(_{sup}\))
T\(_{mix}\) and
W\(_{mix}\) are
saved in FinalSysSizing .
Do the same calculation for the heating case.
CoinHeatMassFlow = SizRat\(_{heat}\) *
CoinHeatMassFlow\(_{calc}\)
NonCoinHeatMassFlow = SizRat\(_{heat}\) *
NonCoinHeatMassFlow\(_{calc}\)
DesHeatVolFlow = SizRat\(_{heat}\) *
DesHeatVolFlow\(_{calc}\)
Loop over the zone timesteps (index = i).
HeatFlowSeq\(_{sys}\)(i) =
SizRat\(_{Heat}\) *
HeatFlowSeq\(_{sys,calc}\)(i)
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
HeatFlowSeq\(_{sys}\)(i)
T\(_{mix}\) =
SysHeatOutTempSeq(i) * FracOA + SysHeatRetTempSeq(i) *
(1-FracOA)
HeatCapSeq(i) = C\(_{p,air}\) *
HeatFlowSeq\(_{sys}\)(i) *(T\(_{sup}\)-T\(_{mix}\))
Do the same calculation for peak heating.
FracOA = \(\rho\)\(_{air}\) *
DesOutAirVolFlow\(_{sys}\)/
DesHeatVolFlow
T\(_{mix}\) =
HeatOutTemp\(_{sys}\)
*FracOA + HeatRetTemp\(_{sys}\) *
(1-FracOA)
W\(_{mix}\) =
HeatOutHumRat\(_{sys}\)
*FracOA + HeatRetHumRat\(_{sys}\) * (1-FracOA)
HeatCap\(_{sys}\)
= C\(_{p,air}\) *
DesHeatVolFlow\(_{sys}\) *( T\(_{sup}\)-T\(_{mix}\))
T\(_{mix}\) and
W\(_{mix}\) are
saved in FinalSysSizing .
DesMainVolFlow\(_{sys}\) =
MAX(DesCoolVolFlow\(_{sys}\),DesHeatVolFlow\(_{sys}\))
At this point, the design main flow is the larger of the
cooling design flow or the heating design flow. The program
stores the information for which was dominant for each airloop
in the boolean data structure variables sysSizeCoolingDominant
and sysSizeHeatingDominant.
System
Sizing Adjustments for Air Terminal Operation[LINK]
Additional adjustments are made to system air flow sizes
based on details of the how the zone air terminals connected
to the system will eventually operate. These system sizing
adjustments were added as of version 8.9 of EnergyPlus. The
basic idea is to account for operating details of the air
terminal units attached to the system by making adjustments to
the system sizing results after the zone equipment has been
setup and sized. The routine ManageSystemSizingAdjustments has
been added that first sets up the zone equipment and then
makes adjustments to the system sizing by mining information
from the air terminal models for minimum flow fractions,
operating modes during heating, and any user-defined hard
sizes to improve accuracy and robustness. Once the air
terminals are setup, the actual operating flow rates during
heating are often quite different from the design heating flow
rate derived from the zone loads. The adjustment method scans
all the air terminals and develops accurate values for the
minimum and maximum flow rates that will occur during heating
operation. Then the system design heating flow rate is
adjusted to reflect this new result. For example in a VAV
system with Normal action dampers that is cooling dominated,
the heating design flow rate is no longer really related to
the zone loads, but is the cooling design flow rate times the
minimum flow fraction at the dampers. Similarly when heating
loads dominate, the cooling design flow rate needs to be
adjusted to account for how the terminals will really operate
during cooling rather than the cooling-load-based sizing
result.
The routine ManageSystemSizingAdjustments adjusts system
sizing outcomes based on how the zone air terminals finish out
their sizing. The zone models are executed to trigger their
sizing routines, by calling ManageZoneEquipment(). Then for
each airloop, the routine loops over all the zones attached to
that air loop. The air terminal units are scanned to sum
design flow rates. Every air terminal connected to a
particular air loop is summed for: (1) minimum flow rate
during heating operation (airLoopHeatingMinimumFlowRateSum),
(2) maximum flow rate during heating operation
(airLoopHeatingMaximumFlowRateSum), and (3) maximum flow rate
(airLoopMaxFlowRateSum). The routine also stores zone level
flow information for Standard 62.1 calculations, Vpz,
Vpzmin, Vdz, and Vdzmin for both
cooling and heating.
The three summed values for terminal air flows for each
airloop are reported to the EIO and table summary report using
the outputs "Sum of Air Terminal Maximum Heating Flow Rates
[m3/s]," "Sum of Air Terminal Minimum Heating Flow Rates
[m3/s]," and "Sum of Air Terminal Maximum Flow Rates
[m3/s]."
The summed values are used to "Adjust" the system sizing
results in the following ways. The setting for the type of
zone sum to use can be either noncoincident or
coincident (determined in the input field called Type
of Zone
Sum to Use in the Sizing:System
input object). For noncoincident the design system
heating flow rate is set to be the larger of the airloop
heating maximum flow rate sum (from the air terminals) and the
design flow rate from the load based calculations (described
above). The design system main flow rate is set to be the
larger of the airloop maximum flow rate sum (from the air
terminals) and the design flow rate from the larger of the
cooling and heating calculations. The cooling design flow rate
is set differently depending on if the air loop was cooling
dominant or heating dominant. For noncoincident and
cooling dominant, the cooling design air flow
rate is set to the design main air flow (typically the
airLoopMaxFlowRateSum). For coincident and
heating dominant, the cooling design air flow
rate is set to the larger of the original cooling-load-based
value for flow and the lowest value the air handler will
really operate at (from the
airLoopHeatingMinimumFlowRateSum).
For coincident type sums, the air terminal
summation is not as useful because we generally expect that
the straight sum of air terminal sizes will be larger than the
coincident sum because by its very nature the straight sum is
only expected to match noncoincident approach. Therefore the
adjustments are more to keep design flows within bounds set by
minimum and maximum sums so that the coincident sum is within
physical bounds set by how the air terminals can operate. For
coincident and cooling dominant
airloops, (a) the heating design flow rate is the larger of
the heating minimum flow rate (from the
airLoopHeatingMinimumFlowRateSum) and the design heat flow
from the coincident design calculation, (b) the main design
flow is not typically altered but it will be checked to be at
least as large as the heating minimum flow rate (from the
airLoopHeatingMinimumFlowRateSum), and (c) the cooling design
flow rate is set to the main design flow which we expect to be
the result of the coincident design calculation. For
coincident and heating dominant
airloops, (a) the heating design flow rate is the larger of
the heating maximum flow rate (from the
airLoopHeatingMaximumFlowRateSum) and the design heat flow
rate from the coincident design calculation, (b) the main
design flow rate is set to be the larger of the heating
maximum flow rate (from the airLoopHeatingMaximumFlowRateSum)
and main design flow rate from the coincident sizing
calculations, and (c) the cooling design flow rate is set to
be the larger of the heating minimum flow rate (from the
airLoopHeatingMinimumFlowRateSum) and the cooling design flow
rate from the coincident calculation.
The resulting adjusted system sizes for each airloop are
reported to the EIO and table summary report using the outputs
"Adjusted Heating Design Air Flow Rate [m3/s]," "Adjusted
Cooling Design Air Flow Rate [m3/s]," and "Adjusted Main
Design Air Flow Rate [m3/s]."
Central
Heating Maximum System Air Flow Ratio Sizing[LINK]
The routine ManageSystemSizingAdjustments also includes
calculating the ratio for the central heating maximum system
air flow rate to the maximum flow rate for the airloop. This
ratio is the input field called Central Heating Maximum System
Air Flow Ratio in the Sizing:System
object and, as of version 8.9, can be autosized. The value is
calculated even if the input was not autosized so that inputs
can be checked. The corrected values are used to autosize the
central heating flow ratio, if set to autosize by the user.
The ratio is calculated by dividing the adjusted design
heating flow by the adjusted design main flow.
System Design Outdoor
Air Flow Rate[LINK]
The design outdoor air flow rate input in the Sizing:System
object can be set to autosize. The sizing calculations for
determining the system-level design outdoor air flow rate,
Vot, depend on the method chosen in the field called
System Output Air Method in Sizing:System,
either ZoneSum,
Standard62.1VentilationRateProcedure, or
Standard62.1SimplifiedProcedure, and the design
results at the zone level, see Zone
Outdoor Air Design Data discussion below. The calculations
generally follow the Standard 62.1 approach and are discussed
separately in the Demand Controlled Ventilation section
elsewhere in the Engineering Reference. The sizing
calculations apply the Standard 62.1 calculations separately
for both peak cooling design conditions and peak heating
design conditions and take the larger to be the single design
outdoor air volume flow rate. The predefined table summary
report "Standard 62.1 Summary" provides comprehensive summary
of the calculations for outdoor air rate. As of version 8.9,
the system level summations and flow rate results are based on
the adjusted system sizes and zone level summations that mine
the individual air terminals attached to the air handlers.
This concludes the system design
calculation.
Scalable System HVAC
Sizing[LINK]
The scalable system sizing applies to system supply air
flow rates and sysyem capacity in coolin and heating
modes.
Scalable System Air Flow Sizing
The scalable sizing methods for supply air flow rate
allowed are either, FlowPerFloorArea,
FractionOfAutosizedCoolingAirflow, or
FlowPerCoolingCapacity. The scalable system air flow
sizing methods are defined as follows:
FlowPerFloorArea means the program calculates the
cooling supply air volume flow rate from zone floor area
served by the airloop and user specified Flow Per Floor
Area value.
FractionOfAutosizedCoolingAirflow means the
program calculates the cooling supply air volume flow rate
from user specified fraction and the autosized design cooling
supply air volume flow rate value determined by the
simulation.
FractionOfAutosizedHeatingAirflow means the
program calculates the heating supply air volume flow rate
from user specified fraction and the autosized design heating
supply air volume flow rate value determined by the
simulation.
FlowPerCoolingCapacity means the supply air volume
is calculated from user specified flow per cooling capacity
and design cooling capacity determined by the simulation.
FlowPerHeatingCapacity means the supply air volume
is calculated from user specified flow per heating capacity
and design heating capacity determined by the simulation.
Scalable System Capacity Sizing
The scalable sizing methods for system capacity available
are: CapacityPerFloorArea,
FractionOfAutosizedCoolingCapacity and
FractionOfAutosizedHeatingCapacity. The scalable
system capacity sizing methods are defined as follows:
CapacityPerFloorArea means the program calculates
the design capacity from user specified capacity per floor
area and floor area of the zones served by the airloop.
FractionOfAutosizedCoolingCapacity means the
program calculates the design cooling capacity from user
specified fraction and the auto-sized design cooling
capacity.
FractionOfAutosizedHeatingCapacity means the
program calculates the design heating capacity from user
specified fraction and the auto-sized design heating
capacity.
System Design Loads and Air Flow Rates[LINK]
Overview[LINK]
The purpose of the system design calculation is to estimate design heating and cooling loads and air flow rates for each air loop in the simulation problem. The calculation sequence for system level design loads and air flow rates resembles the calculation sequence for zone loads and air flow rates. There is an update subroutine UpdateSysSizing called at the beginning, during, and end of a loop in the Sizing Manager over all the design days. The major difference is that this calculation is done at the zone time-step only. There is no idealized component calculation triggered at the system time-step as in the zone calculation. The system design calculation operates at the zone time step using the design environment weather data and the data stored in the zone sizing arrays. The results of the system design calculation are stored in the system sizing arrays described below.
System Design Data Arrays[LINK]
The system design data arrays are:
SysSizInput(i) stores the input data from the Sizing:System objects.
SysSizing(i,j) stores the results of the system design calculations for all systems and all design days. The index i is for air loops, j for design days.
CalcSysSizing(i) stores the results of the system design calculations for the peak heating and cooling cases for each air loop. The index i is for the air loops.
FinalSysSizing(i) corresponds to CalcSysSizing but includes the effect of the user specified sizing factor or user specified system design flow rate.
The data stored in SysSizing, CalcSysSizing and FinalSysSizing includes the following data items.
System Design Flow Rate and Load Summation and Adjustment[LINK]
There is no system level subroutine corresponding to SizeZoneEquipment. Instead the system design loads and flow rates are calculated using the zone level results. If latent sizing is requested and latent loads are greater than sensible loads the latent design load and air mass flow rate are used for that zone. The zone design flow rates for the zones served by an air loop are summed to obtain the system level design flow rates. These air flows are mixed with the system level design minimum outside air flow rate to obtain system design coil loads. These activities are all performed within the UpdateSysSizing subroutine in the SimAirServingZones module. 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 = EndSysSizingCalc).
There is a logical flag SysSizingCalc corresponding to ZoneSizingCalc. It is used to allow the component routines to distinguish a normal simulation call from a being called during a system sizing calculation.
Note that throughout this section, any reference to a “zone” is equivalent to “air terminal unit”.
BeginDay[LINK]
The environment (in this case, a design day) name is stored in the system sizing data structures.
Loop over the zones cooled by this air loop:
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesCoolMassFlow\(_{zone}\)
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesHeatMassFlow\(_{zone}\)
DuringDay[LINK]
CoolFlowSeq\(_{sys}\)(i) = \(\Sigma\) CoolFlowSeq \(_{zone}\)(i)
SysCoolRetTemp(i) = \(\Sigma\) (CoolZoneRetTempSeq(i) * CoolFlowSeq\(_{zone}\)(i))/ CoolFlowSeq\(_{sys}\)(i)
SysCoolRetHumRat(i) = \(\Sigma\) (CoolZoneHumRatSeq(i) * CoolFlowSeq\(_{zone}\)(i))/ CoolFlowSeq\(_{sys}\)(i)
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ CoolFlowSeq\(_{sys}\)(i)
T\(_{mix}\) = T\(_{outside}\) * FracOA + SysCoolRetTemp(i)(1 - FracOA)
W\(_{mix}\) = W\(_{outside}\) * FracOA + SysCoolRetHumRat (i)(1 - FracOA)
SysCoolOutTempSeq(i) = T\(_{outside}\)
SysCoolOutHumRatSeq(i) = W\(_{outside}\)
Get the current (zone time-step) system cooling capacity:
SysSensCoolCap\(_{cur}\) = C\(_{p,air}\) * CoolFlowSeq\(_{sys}\)(i) *( T\(_{mix}\)-T\(_{sup}\))
SensCoolCapSeq(I) = SysSensCoolCap\(_{cur}\)
If SysSensCoolCap\(_{cur}\) is the maximum for the day so far then save SysSensCoolCap\(_{cur}\) as the design value:
SensCoolCap(i )\(_{sys}\) = SysSensCoolCap\(_{cur}\)
And save the corresponding mixed, return and outside conditions:
CoolMixTemp\(_{sys}\) = T\(_{mix}\)
CoolMixHumRat\(_{sys}\) = W\(_{mix}\)
CoolRetTemp\(_{sys}\) = SysCoolRetTemp(i)
CoolRetHumRat\(_{sys}\) = SysCoolRetHumRat(I)
CoolOutTemp\(_{sys}\) = T\(_{outside}\)
CoolOutHumRat\(_{sys}\) = W\(_{outside}\)
Here \(\rho\)\(_{air}\) is the density of dry air at 20\(^{\circ}\)C and standard elevation corrected pressure, [kg/m\(^{3}\)];
FracOA is the outside air fraction; C\(_{p,air}\) is the specific heat of dry air at 20\(^{\circ}\)C, [J/kg-K]; T\(_{sup}\) is the user specified design cooling supply temperature [C]; T\(_{mix}\) is the current mixed air temperature [C]; W\(_{mix}\) is the current mixed air humidity ratio [kg water / kg dry air]; \(T_{outside}\) is the current outside air temperature [C]; \(W_{outside}\) is the current outside air humidity ratio [kg water / kg dry air].
Note: When latent sizing is requested the zone design supply air humidity ratio used during zone latent sizing is used as the system cooling coil outlet air humidity ratio (w\(_{sup}\)) for sytem cooling coil sizing. The system cooling coil outlet air humidity ratio is calculated as a mass flow rate weighted average of each zone’s latent cooling supply air humidity ratio. See Sizing:Zone field Zone Latent Cooling Design Supply Air Humidity Ratio Input Method. This calculated value is used only when one or more zone latent load is found to be greater than that zone’s sensible load, or latent only sizing is requested. A control method that enables the system cooling coil to dehumidify to the design latent supply air humidity ratio is suggested so that the system sensible load can be exceeded when additional dehumidification is required.
HeatFlowSeq\(_{sys}\)(i) = \(\Sigma\) HeatFlowSeq \(_{zone}\)(i)
SysHeatRetTemp(i) = \(\Sigma\) (HeatZoneRetTempSeq(i) * HeatFlowSeq\(_{zone}\)(i))/
HeatFlowSeq\(_{sys}\)(i)
SysHeatRetHumRat(i) = \(\Sigma\) (HeatZoneHumRatSeq(i) * HeatFlowSeq\(_{zone}\)(i))/
HeatFlowSeq\(_{sys}\)(i)
FracOA = r\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ HeatFlowSeq\(_{sys}\)(i)
T\(_{mix}\) = T\(_{outside}\) * FracOA + SysHeatRetTemp(i)(1 - FracOA)
W\(_{mix}\) = W\(_{outside}\) * FracOA + SysHeatRetHumRat (i)(1 - FracOA)
SysHeatOutTempSeq(i) = T\(_{outside}\)
SysHeatOutHumRatSeq(i) = W\(_{outside}\)
Get the current (zone time-step) system heating capacity:
SysHeatCap\(_{cur}\) = C\(_{p,air}\) * MinFlowRat\(_{sys}\) *HeatFlowSeq\(_{sys}\)(i) *( T\(_{sup}\)-T\(_{mix}\))
HeatCapSeq(I) = SysHeatCap\(_{cur}\)
If SysHeatCap\(_{cur}\) is the maximum for the day so far then save SysHeatCap\(_{cur}\) as the design value:
HeatCap(i )\(_{sys}\) = SysHeatCap\(_{cur}\)
And save the corresponding mixed, return and outside conditions:
HeatMixTemp\(_{sys}\) = T\(_{mix}\)
HeatMixHumRat\(_{sys}\) = W\(_{mix}\)
HeatRetTemp\(_{sys}\) = SysHeatRetTemp(i)
HeatRetHumRat\(_{sys}\) = SysHeatRetHumRat(I)
HeatOutTemp\(_{sys}\) = T\(_{outside}\)
HeatOutHumRat\(_{sys}\) = W\(_{outside}\)
Here MinFlowRat\(_{sys}\) is the user specified minimum supply flow ratio.
EndDay[LINK]
If the user has specified coincident system sizing then:
DesCoolVolFlow\(_{sys}\) = \(\rho\)\(_{air}\) *CoinCoolMassFlow\(_{sys}\)
DesHeatVolFlow\(_{sys}\) = \(\rho\)\(_{air}\) *CoinHeatMassFlow\(_{sys}\)
DesMainVolFlow\(_{sys}\) = Max(DesCoolVolFlow\(_{sys}\), DesHeatVolFlow\(_{sys}\))
If the user has specified noncoincidentsystem sizing then:
DesCoolVolFlow\(_{sys}\) = \(\rho\)\(_{air}\) *NonCoinCoolMassFlow\(_{sys}\)
DesHeatVolFlow\(_{sys}\) = \(\rho\)\(_{air}\) *NonCoinHeatMassFlow\(_{sys}\)
DesMainVolFlow\(_{sys}\) = Max(DesCoolVolFlow\(_{sys}\), DesHeatVolFlow\(_{sys}\))
Based on the outdoor air method selected, the DesCoolVolFlow\(_{sys}\) and DesHeatVolFlow\(_{sys}\) are modified based on the system ventilation effciency calculated based on the maximum outdoor air fraction.
EndSysSizingCalc[LINK]
At this point all the calculations have been done in SysSizing(i,j): we have results for each design day. Now these results need to be processed to find the heating and cooling design quantities for each system over all the design days.
For coincident sizing the task is quite easy.
If the value of DesCoolVolFlow in SysSizing for the current design day is greater than the value stored in CalcSysSizing, then move DesCoolVolFlow from SysSizing into CalcSysSizing along with CoolDesDay, CoinCoolMassFlow, SensCoolCap, CoolFlowSeq(i), SensCoolCapSeq(i), CoolMixTemp, CoolRetTemp, CoolMixHumRat, CoolRetHumRat, CoolOutTemp, CoolOutHumRat, SysCoolRetTempSeq(i), SysCoolRetHumRatSeq(i), SysCoolOutTempSeq(i) and SysCoolOutHumRatSeq(i).
If the value of DesHeatVolFlow in SysSizing for the current design day is greater than the value stored in CalcSysSizing, then move DesHeatVolFlow from SysSizing into CalcSysSizing along with HeatDesDay, CoinHeatMassFlow, HeatCap, PreHeatCap, HeatFlowSeq(i), HeatCapSeq(i), PreHeatCapSeq(i), HeatMixTemp, HeatRetTemp, HeatMixHumRat, HeatRetHumRat, HeatOutTemp, HeatOutHumRat, SysHeatRetTempSeq(i), SysHeatRetHumRatSeq(i), SysHeatOutTempSeq(i) and SysHeatOutHumRatSeq(i).
At the end of each design day loop the peak cooling and the peak heating data will be stored in CalcSysSizing. At this point we set DesMainVolFlow in CalcSysSizing equal to the maximum of DesCoolVolFlow and DesHeatVolFlow.
For noncoincident sizing the task is harder since we don’t have a single time-step during which all the zone peaks occur. So there is no obvious value for outside air temperature at the peak, return air temperature at the peak and so forth. We must return to the zone sizing data and calculate average values for return and outside conditions.
In FinalZoneSizing replace the value in DesCoolCoilInTemp with the user specified CoolSupTemp\(_{sys}\). Do the same for DesCoolCoilInHumRat and CoolSupHumRat. This ensures that zone equipment connected to an air loop will use the system design supply air conditions as coil entering conditions.
NonCoinCoolMassFlow\(_{sys}\) = \(\Sigma\) DesCoolMassFlow\(_{zone}\)
SysCoolRetTemp = (ZoneRetTempAtCoolPeak *DesCoolMassFlow\(_{zone}\)) / NonCoinCoolMassFlow\(_{sys}\)
SysCoolRetHumRat = (ZoneHumRatAtCoolPeak * DesCoolMassFlow\(_{zone}\)) /NonCoinCoolMassFlow\(_{sys}\)
SysCoolOutTemp = (T\(_{OA,zone\, peak}\) *DesCoolMassFlow\(_{zone}\)) /NonCoinCoolMassFlow\(_{sys}\)
SysCoolOutHumRat = (W\(_{OA,zone\\ peak}\) *DesCoolMassFlow\(_{zone}\)) /NonCoinCoolMassFlow\(_{sys}\)
At the end of the zone loop calculate mixed air conditions and the system sensible cooling capacity.
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ NonCoinCoolMassFlow\(_{sys}\)
T\(_{mix}\) = SysCoolOutTemp * FracOA + SysCoolRetTemp * (1 - FracOA)
W\(_{mix}\) = SysCoolOutHumRat * FracOA + SysCoolRetHumRat *
(1 - FracOA)
SysSensCoolCap = C\(_{p,air}\) * NonCoinCoolMassFlow *( T\(_{mix}\)-T\(_{sup}\))
Then (for noncoincident sizing) the variables calculated in section (ii) are moved into the CalcSysSizing Array.
In FinalZoneSizing replace the value in DesHeatCoilInTemp with the user specified HeatSupTemp\(_{sys}\). Do the same for DesHeatCoilInHumRat and HeatSupHumRat. This ensures that zone equipment connected to an air loop will use the system design supply air conditions as coil entering conditions.
NonCoinHeatMassFlow\(_{sys}\) = \(\Sigma\) DesHeatMassFlow\(_{zone}\)
SysHeatRetTemp = (ZoneRetTempAtHeatPeak *DesHeatMassFlow\(_{zone}\))/ NonCoinHeatMassFlow\(_{sys}\)
SysHeatRetHumRat = (ZoneHumRatAtHeatPeak *DesHeatMassFlow\(_{zone}\))/ NonCoinHeatMassFlow\(_{sys}\)
SysHeatOutTemp = (T\(_{OA,zone\\ peak}\) *DesHeatMassFlow\(_{zone}\))/NonCoinHeatMassFlow\(_{sys}\)
SysHeatOutHumRat = (W\(_{OA,zone\\ peak}\) *DesHeatMassFlow\(_{zone}\))/NonCoinHeatMassFlow\(_{sys}\)
At the end of the zone loop calculate mixed air conditions and the system sensible cooling capacity.
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ NonCoinHeatMassFlow\(_{sys}\)
T\(_{mix}\) = SysHeatOutTemp * FracOA + SysHeatRetTemp * (1 - FracOA)
W\(_{mix}\) = SysHeatOutHumRat * FracOA + SysHeatRetHumRat *
(1 - FracOA)
SysHeatlCap = C\(_{p,air}\) * NonCoinHeatlMassFlow *( T\(_{sup}\)-T\(_{mix}\))
Then (for noncoincident sizing) the variables calculated in section (ii) are moved into the CalcSysSizing Array.
First we move the calculated system sizing data from CalcSysSizing array into the FinalSysSizing array. FinalSysSizing will contain the user modified system design data when we are all done.
Loop over the air loops.
CoinCoolMassFlow = SizRat\(_{cool}\) * CoinCoolMassFlow\(_{calc}\)
NonCoinCoolMassFlow = SizRat\(_{cool}\) * NonCoinCoolMassFlow\(_{calc}\)
DesCoolVolFlow = SizRat\(_{cool}\) * DesCoolVolFlow\(_{calc}\)
Since the flow rates have been altered the outside air fraction will change. This will alter the design mixed air conditions and lead to an altered value for the cooling capacity. This must be done for the time-step sequence and for the peak value.
Loop over the zone timesteps (index = i).
CoolFlowSeq\(_{sys}\)(i) = SizRat\(_{cool}\) * CoolFlowSeq\(_{sys,calc}\)(i)
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ CoolFlowSeq\(_{sys}\)(i)
T\(_{mix}\) = SysCoolOutTempSeq(i) *FracOA + SysCoolRetTempSeq(i) *(1-FracOA)
SensCoolCapSeq(i) = C\(_{p,air}\) * CoolFlowSeq\(_{sys}\)(i) *( T\(_{mix}\)-T\(_{sup}\))
Do the same calculation for peak cooling.
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ DesCoolVolFlow
T\(_{mix}\) = CoolOutTemp\(_{sys}\) *FracOA + CoolRetTemp\(_{sys}\) *(1-FracOA)
W\(_{mix}\) = CoolOutHumRat\(_{sys}\) *FracOA + CoolRetHumRat\(_{sys}\) * (1-FracOA)
SensCoolCap\(_{sys}\) = C\(_{p,air}\) * DesCoolVolFlow\(_{sys}\) *( T\(_{mix}\)-T\(_{sup}\))
T\(_{mix}\) and W\(_{mix}\) are saved in FinalSysSizing .
Do the same calculation for the heating case.
CoinHeatMassFlow = SizRat\(_{heat}\) * CoinHeatMassFlow\(_{calc}\)
NonCoinHeatMassFlow = SizRat\(_{heat}\) * NonCoinHeatMassFlow\(_{calc}\)
DesHeatVolFlow = SizRat\(_{heat}\) * DesHeatVolFlow\(_{calc}\)
Loop over the zone timesteps (index = i).
HeatFlowSeq\(_{sys}\)(i) = SizRat\(_{Heat}\) * HeatFlowSeq\(_{sys,calc}\)(i)
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ HeatFlowSeq\(_{sys}\)(i)
T\(_{mix}\) = SysHeatOutTempSeq(i) * FracOA + SysHeatRetTempSeq(i) * (1-FracOA)
HeatCapSeq(i) = C\(_{p,air}\) * HeatFlowSeq\(_{sys}\)(i) *(T\(_{sup}\)-T\(_{mix}\))
Do the same calculation for peak heating.
FracOA = \(\rho\)\(_{air}\) * DesOutAirVolFlow\(_{sys}\)/ DesHeatVolFlow
T\(_{mix}\) = HeatOutTemp\(_{sys}\) *FracOA + HeatRetTemp\(_{sys}\) * (1-FracOA)
W\(_{mix}\) = HeatOutHumRat\(_{sys}\) *FracOA + HeatRetHumRat\(_{sys}\) * (1-FracOA)
HeatCap\(_{sys}\) = C\(_{p,air}\) * DesHeatVolFlow\(_{sys}\) *( T\(_{sup}\)-T\(_{mix}\))
T\(_{mix}\) and W\(_{mix}\) are saved in FinalSysSizing .
DesMainVolFlow\(_{sys}\) = MAX(DesCoolVolFlow\(_{sys}\),DesHeatVolFlow\(_{sys}\))
At this point, the design main flow is the larger of the cooling design flow or the heating design flow. The program stores the information for which was dominant for each airloop in the boolean data structure variables sysSizeCoolingDominant and sysSizeHeatingDominant.
System Sizing Adjustments for Air Terminal Operation[LINK]
Additional adjustments are made to system air flow sizes based on details of the how the zone air terminals connected to the system will eventually operate. These system sizing adjustments were added as of version 8.9 of EnergyPlus. The basic idea is to account for operating details of the air terminal units attached to the system by making adjustments to the system sizing results after the zone equipment has been setup and sized. The routine ManageSystemSizingAdjustments has been added that first sets up the zone equipment and then makes adjustments to the system sizing by mining information from the air terminal models for minimum flow fractions, operating modes during heating, and any user-defined hard sizes to improve accuracy and robustness. Once the air terminals are setup, the actual operating flow rates during heating are often quite different from the design heating flow rate derived from the zone loads. The adjustment method scans all the air terminals and develops accurate values for the minimum and maximum flow rates that will occur during heating operation. Then the system design heating flow rate is adjusted to reflect this new result. For example in a VAV system with Normal action dampers that is cooling dominated, the heating design flow rate is no longer really related to the zone loads, but is the cooling design flow rate times the minimum flow fraction at the dampers. Similarly when heating loads dominate, the cooling design flow rate needs to be adjusted to account for how the terminals will really operate during cooling rather than the cooling-load-based sizing result.
The routine ManageSystemSizingAdjustments adjusts system sizing outcomes based on how the zone air terminals finish out their sizing. The zone models are executed to trigger their sizing routines, by calling ManageZoneEquipment(). Then for each airloop, the routine loops over all the zones attached to that air loop. The air terminal units are scanned to sum design flow rates. Every air terminal connected to a particular air loop is summed for: (1) minimum flow rate during heating operation (airLoopHeatingMinimumFlowRateSum), (2) maximum flow rate during heating operation (airLoopHeatingMaximumFlowRateSum), and (3) maximum flow rate (airLoopMaxFlowRateSum). The routine also stores zone level flow information for Standard 62.1 calculations, Vpz, Vpzmin, Vdz, and Vdzmin for both cooling and heating.
The three summed values for terminal air flows for each airloop are reported to the EIO and table summary report using the outputs "Sum of Air Terminal Maximum Heating Flow Rates [m3/s]," "Sum of Air Terminal Minimum Heating Flow Rates [m3/s]," and "Sum of Air Terminal Maximum Flow Rates [m3/s]."
The summed values are used to "Adjust" the system sizing results in the following ways. The setting for the type of zone sum to use can be either noncoincident or coincident (determined in the input field called Type of Zone Sum to Use in the Sizing:System input object). For noncoincident the design system heating flow rate is set to be the larger of the airloop heating maximum flow rate sum (from the air terminals) and the design flow rate from the load based calculations (described above). The design system main flow rate is set to be the larger of the airloop maximum flow rate sum (from the air terminals) and the design flow rate from the larger of the cooling and heating calculations. The cooling design flow rate is set differently depending on if the air loop was cooling dominant or heating dominant. For noncoincident and cooling dominant, the cooling design air flow rate is set to the design main air flow (typically the airLoopMaxFlowRateSum). For coincident and heating dominant, the cooling design air flow rate is set to the larger of the original cooling-load-based value for flow and the lowest value the air handler will really operate at (from the airLoopHeatingMinimumFlowRateSum).
For coincident type sums, the air terminal summation is not as useful because we generally expect that the straight sum of air terminal sizes will be larger than the coincident sum because by its very nature the straight sum is only expected to match noncoincident approach. Therefore the adjustments are more to keep design flows within bounds set by minimum and maximum sums so that the coincident sum is within physical bounds set by how the air terminals can operate. For coincident and cooling dominant airloops, (a) the heating design flow rate is the larger of the heating minimum flow rate (from the airLoopHeatingMinimumFlowRateSum) and the design heat flow from the coincident design calculation, (b) the main design flow is not typically altered but it will be checked to be at least as large as the heating minimum flow rate (from the airLoopHeatingMinimumFlowRateSum), and (c) the cooling design flow rate is set to the main design flow which we expect to be the result of the coincident design calculation. For coincident and heating dominant airloops, (a) the heating design flow rate is the larger of the heating maximum flow rate (from the airLoopHeatingMaximumFlowRateSum) and the design heat flow rate from the coincident design calculation, (b) the main design flow rate is set to be the larger of the heating maximum flow rate (from the airLoopHeatingMaximumFlowRateSum) and main design flow rate from the coincident sizing calculations, and (c) the cooling design flow rate is set to be the larger of the heating minimum flow rate (from the airLoopHeatingMinimumFlowRateSum) and the cooling design flow rate from the coincident calculation.
The resulting adjusted system sizes for each airloop are reported to the EIO and table summary report using the outputs "Adjusted Heating Design Air Flow Rate [m3/s]," "Adjusted Cooling Design Air Flow Rate [m3/s]," and "Adjusted Main Design Air Flow Rate [m3/s]."
Central Heating Maximum System Air Flow Ratio Sizing[LINK]
The routine ManageSystemSizingAdjustments also includes calculating the ratio for the central heating maximum system air flow rate to the maximum flow rate for the airloop. This ratio is the input field called Central Heating Maximum System Air Flow Ratio in the Sizing:System object and, as of version 8.9, can be autosized. The value is calculated even if the input was not autosized so that inputs can be checked. The corrected values are used to autosize the central heating flow ratio, if set to autosize by the user. The ratio is calculated by dividing the adjusted design heating flow by the adjusted design main flow.
System Design Outdoor Air Flow Rate[LINK]
The design outdoor air flow rate input in the Sizing:System object can be set to autosize. The sizing calculations for determining the system-level design outdoor air flow rate, Vot, depend on the method chosen in the field called System Output Air Method in Sizing:System, either ZoneSum, Standard62.1VentilationRateProcedure, or Standard62.1SimplifiedProcedure, and the design results at the zone level, see Zone Outdoor Air Design Data discussion below. The calculations generally follow the Standard 62.1 approach and are discussed separately in the Demand Controlled Ventilation section elsewhere in the Engineering Reference. The sizing calculations apply the Standard 62.1 calculations separately for both peak cooling design conditions and peak heating design conditions and take the larger to be the single design outdoor air volume flow rate. The predefined table summary report "Standard 62.1 Summary" provides comprehensive summary of the calculations for outdoor air rate. As of version 8.9, the system level summations and flow rate results are based on the adjusted system sizes and zone level summations that mine the individual air terminals attached to the air handlers.
This concludes the system design calculation.
Scalable System HVAC Sizing[LINK]
The scalable system sizing applies to system supply air flow rates and sysyem capacity in coolin and heating modes.
Scalable System Air Flow Sizing
The scalable sizing methods for supply air flow rate allowed are either, FlowPerFloorArea, FractionOfAutosizedCoolingAirflow, or FlowPerCoolingCapacity. The scalable system air flow sizing methods are defined as follows:
FlowPerFloorArea means the program calculates the cooling supply air volume flow rate from zone floor area served by the airloop and user specified Flow Per Floor Area value.
FractionOfAutosizedCoolingAirflow means the program calculates the cooling supply air volume flow rate from user specified fraction and the autosized design cooling supply air volume flow rate value determined by the simulation.
FractionOfAutosizedHeatingAirflow means the program calculates the heating supply air volume flow rate from user specified fraction and the autosized design heating supply air volume flow rate value determined by the simulation.
FlowPerCoolingCapacity means the supply air volume is calculated from user specified flow per cooling capacity and design cooling capacity determined by the simulation.
FlowPerHeatingCapacity means the supply air volume is calculated from user specified flow per heating capacity and design heating capacity determined by the simulation.
Scalable System Capacity Sizing
The scalable sizing methods for system capacity available are: CapacityPerFloorArea, FractionOfAutosizedCoolingCapacity and FractionOfAutosizedHeatingCapacity. The scalable system capacity sizing methods are defined as follows:
CapacityPerFloorArea means the program calculates the design capacity from user specified capacity per floor area and floor area of the zones served by the airloop.
FractionOfAutosizedCoolingCapacity means the program calculates the design cooling capacity from user specified fraction and the auto-sized design cooling capacity.
FractionOfAutosizedHeatingCapacity means the program calculates the design heating capacity from user specified fraction and the auto-sized design heating capacity.
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.