blockOperationMode

Block that outputs the operation mode

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.

  1. 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.
  2. 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.

Image of warm-up mode definition

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.

Image of cool-down mode definition

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).

Image of setback mode definition

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.

Image of setup mode definition

Unoccupied Mode

Unoccupied mode shall be active if the zone group is not in any other mode.

Parameters

TypeNameDefaultDescription
IntegernZonNumber of zones
RealpreWarCooTim10800Maximum cool-down or warm-up time
RealTZonFreProOn277.15Threshold temperature to activate the freeze protection mode
RealTZonFreProOff280.15Threshold temperature to end the freeze protection mode

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1OccTrue: zone scheduled to be occupied
Buildings.Controls.OBC.CDL.Interfaces.RealInputtNexOccTime to next occupied period
Buildings.Controls.OBC.CDL.Interfaces.RealInputmaxCooDowTimMaximum cool-down time among all the zones
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1HigOccCooTrue when there is zone with the temperature being higher than the occupied cooling setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealInputmaxWarUpTimMaximum warm-up time among all the zones
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1OccHeaHigTrue when there is zone with the temperature being lower than the occupied heating setpoint
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputuOpeWinTotal number of zones with opening window
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputtotColZonTotal number of cold zone
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1SetBacTrue when the average zone temperature falls below the average unoccupied heating setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1EndSetBacTrue when the setback mode could end
Buildings.Controls.OBC.CDL.Interfaces.RealInputTZonMinMinimum zone temperature
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputtotHotZonTotal number of hot zone
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1SetUpTrue when the average zone temperature rises above the average unoccupied cooling setpoint
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1EndSetUpTrue when the setup mode could end
Buildings.Controls.OBC.CDL.Interfaces.IntegerOutputyOpeModOperation mode

Revisions

  • March 1, 2023, by Michael Wetter:
    Changed constant from 0 to 0.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.