blockOperationMode
Information
This block outputs VAV system operating mode. It is implemented according to ASHRAE guideline G36, section 5.4.3, section 5.4.4, section 5.4.5 and section 5.4.6.
Note that, from the user's point of view, schedules can be a set for individual zones, or they can be set for an entire zone group, depending on how the user interface is implemented. From the point of view of the BAS, individual zone schedules are superimposed to create a zone-group schedule, which then drives system behavior.
- All zones in each zone group shall be in the same zone-group operating mode. If one zone in a zone group is placed in any zone-group operating mode other than unoccupied mode (due to override, sequence logic, or scheduled occupancy), all zones in that group shall enter that mode.
- A zone group may be in only one mode at a given time.
Each zone group shall have the operating modes shown below.
Occupied Mode
A zone group is in the occupied mode when
occupancy input u1Occ is true. This input shall be retrieved from
other sequences that specifies occupancy variation and time remaining to the
next occupied period tNexOcc. A zone group could be in the occupied
mode when any of the following is true:
- The time of day is between the zone group's scheduled occupied start and stop times.
- The schedules have been overriden by the occupant override system.
- Any zone local override timer is nonzero.
Warm-up Mode
Warm-up mode shall start based on the zone with the longest calculated warm-up
time maxWarUpTim requirement, but no earlier than 3 hours
(preWarCooTim) before the start of the scheduled occupied period,
and shall end at the scheduled occupied start time. Zones where the window switch
indicates that a window is open shall be ignored. Note that for each zone,
the optimal warm-up time shall be obtained from an Optimal Start sequences,
computed in a separate block. The figure below shows the sequence.
Cooldown Mode
Cooldown mode shall start based on the zone with the longest calculated
cooldown time maxCooDowTim requirement, but no earlier than 3 hours
(preWarCooTim) before the start of the scheduled occupied period,
and shall end at the scheduled occupied start time. Zones where the window switch
indicates that a window is open shall be ignored. Note that for each zone,
the optimal cooldown time shall be obtained from an Optimal Start sequences,
computed in a separate block.
Setback Mode
During unoccupied mode, if any 5 zones (or all zones, if fewer than 5)
in the zone group fall below their unoccupied heating setpoints, or if the average
zone temperature of the zone group falls below the average unoccupied heating setpoint
(uSetBac becomes true), the zone group shall enter setback mode until
all spaces in the zone group are 1 °C (2 °F) above their
unoccupied setpoints (uEndSetBac becomes true).
Freeze Protection Setback Mode
During unoccupied Mode, if any single zone falls below 4 °C (40 °F), the zone group shall enter setback mode until all zones are above 7 °C (45 °F), and a Level 3 alarm shall be set.
Setup Mode
During unoccupied mode, if any 5 zones (or all zones, if fewer than 5)
in the zone group rise above their unoccupied cooling setpoints, or if the average
zone temperature of the zone group rises above the average unoccupied cooling setpoint
(uSetUp becomes true), the zone group shall enter setup mode until
all spaces in the zone group are 1 °C (2 °F) below their
unoccupied setpoints. Zones where the window switch indicates that a window is
open shall be ignored.
Unoccupied Mode
Unoccupied mode shall be active if the zone group is not in any other mode.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nZon | Number of zones | |
| Real | preWarCooTim | 10800 | Maximum cool-down or warm-up time |
| Real | TZonFreProOn | 277.15 | Threshold temperature to activate the freeze protection mode |
| Real | TZonFreProOff | 280.15 | Threshold temperature to end the freeze protection mode |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1Occ | True: zone scheduled to be occupied | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | tNexOcc | Time to next occupied period | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | maxCooDowTim | Maximum cool-down time among all the zones | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1HigOccCoo | True when there is zone with the temperature being higher than the occupied cooling setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | maxWarUpTim | Maximum warm-up time among all the zones | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1OccHeaHig | True when there is zone with the temperature being lower than the occupied heating setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.IntegerInput | uOpeWin | Total number of zones with opening window | |
| Buildings.Controls.OBC.CDL.Interfaces.IntegerInput | totColZon | Total number of cold zone | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1SetBac | True when the average zone temperature falls below the average unoccupied heating setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1EndSetBac | True when the setback mode could end | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TZonMin | Minimum zone temperature | |
| Buildings.Controls.OBC.CDL.Interfaces.IntegerInput | totHotZon | Total number of hot zone | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1SetUp | True when the average zone temperature rises above the average unoccupied cooling setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1EndSetUp | True when the setup mode could end | |
| Buildings.Controls.OBC.CDL.Interfaces.IntegerOutput | yOpeMod | Operation mode |
Revisions
-
March 1, 2023, by Michael Wetter:
Changed constant from0to0.0.
This is for #3267. -
June 15, 2020, by Jianjun Hu:
Upgraded the sequence according to ASHRAE Guideline 36, May 2020 version. -
April 29, 2020, by Kun Zhang:
Fixed bug related to activation of warm-up and cool down mode.
This is for #1893. -
March 09, 2020, by Jianjun Hu:
Reimplemented to remove the vector-valued calculations.
This is for #1709. -
April 13, 2019, by Michael Wetter:
Corrected wrong time in the documentation of the parameters.
This is for #1409. -
June 19, 2017, by Jianjun Hu:
First implementation.