blockG36VAVMultiZone

Guideline 36 controller

Extends from Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone (Interface class for multiple-zone VAV controller).

Information

Description

This is an implementation of the control sequence specified in ASHRAE (2021) for multiple-zone VAV air handlers. It contains the following components.

References

  • ASHRAE, 2021. Guideline 36-2021, High-Performance Sequences of Operation for HVAC Systems. Atlanta, GA.

Parameters

TypeNameDefaultDescription
IntegernZon (from PartialController)Number of served zones
Buildings.Templates.Data.AllSystemsdatAll (from PartialController)Top-level (whole building) system parameters
Buildings.Templates.Components.Types.FantypFanSup (from PartialController)Type of supply fan
Buildings.Templates.Components.Types.FantypFanRel (from PartialController)Type of relief fan
Buildings.Templates.Components.Types.FantypFanRet (from PartialController)Type of return fan
IntegernFanSup (from PartialController)Number of supply fans
IntegernFanRel (from PartialController)Number of relief fans
IntegernFanRet (from PartialController)Number of return fans
Buildings.Templates.AirHandlersFans.Components.Data.PartialControllerdat (from PartialController)Design and operating parameters
Booleanhave_frePro (from PartialControllerVAVMultizone)trueSet to true to include freeze protection
Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStattypFreSta (from PartialControllerVAVMultizone)Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat.No_freeze_statOption for low limit (freeze) protection
Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandardstdEne (from PartialControllerVAVMultizone)datAll.stdEneEnergy standard
Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandardstdVen (from PartialControllerVAVMultizone)datAll.stdVenVentilation standard
String[:]idZondat.idZonZone (or terminal unit) names
String[:]namGrodat.namGroName of zone groups
String[:]namGroZondat.namGroZonName of group which each zone belongs to
Boolean[nGro,nZon]isZonInGro{{namGro[i] == namGroZon[j] for j in 1:nZon} for i in 1:nGro}True if zone belongs to group
Integer[nGro,nZon]isZonInGroInt{{if isZonInGro[i, j] then 1 else 0 for j in 1:nZon} for i in 1:nGro}1 if zone belongs to group, 0 otherwise
Integer[nZon,nGro]isZonInGroIntTra{{isZonInGroInt[i, j] for i in 1:size(isZonInGroInt, 1)} for j in 1:size(isZonInGroInt, 2)}Transpose of isZonInGroInt: 1 if zone belongs to group, 0 otherwise
Integer[nGro]nZonPerGro{sum(isZonInGroInt[i]) for i in 1:nGro}Number of zones that each group contains
Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoiltypCoiCooif coiCoo.typ == Buildings.Templates.Components.Types.Coil.WaterBasedCooling then Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased elseif coiCoo.typ == Buildings.Templates.Components.Types.Coil.EvaporatorMultiStage or coiCoo.typ == Buildings.Templates.Components.Types.Coil.EvaporatorVariableSpeed then Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.DXCoil else Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.NoneType of cooling coil
Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoiltypCoiHeaif coiHeaPre.typ == Buildings.Templates.Components.Types.Coil.WaterBasedHeating or coiHeaReh.typ == Buildings.Templates.Components.Types.Coil.WaterBasedHeating then Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased elseif coiHeaPre.typ == Buildings.Templates.Components.Types.Coil.ElectricHeating or coiHeaPre.typ == Buildings.Templates.Components.Types.Coil.ElectricHeating then Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.Electric else Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.NoneType of cooling coil
Modelica.Units.SI.VolumeFlowRateVOutUnc_flow_nominaldat.VOutUnc_flow_nominalUncorrected design outdoor air flow rate, including diversity where applicable
Modelica.Units.SI.VolumeFlowRateVOutTot_flow_nominaldat.VOutTot_flow_nominalDesign total outdoor air flow rate
Modelica.Units.SI.VolumeFlowRateVOutAbsMin_flow_nominaldat.VOutAbsMin_flow_nominalDesign outdoor air flow rate when all zones with CO2 sensors or occupancy sensors are unpopulated
Modelica.Units.SI.VolumeFlowRateVOutMin_flow_nominaldat.VOutMin_flow_nominalDesign minimum outdoor air flow rate when all zones are occupied at their design population, including diversity
Modelica.Units.SI.PressureDifferencedpDamOutMinAbsdat.dpDamOutMinAbsDifferential pressure across the minimum outdoor air damper that provides the absolute minimum outdoor airflow
Modelica.Units.SI.PressureDifferencedpDamOutMin_nominaldat.dpDamOutMin_nominalDifferential pressure across the minimum outdoor air damper that provides the design minimum outdoor airflow
Modelica.Units.SI.PressureDifferencepAirSupSet_rel_maxdat.pAirSupSet_rel_maxMaximum supply duct static pressure setpoint
Modelica.Units.SI.PressureDifferencepAirRetSet_rel_mindat.pAirRetSet_rel_minReturn fan minimum discharge static pressure setpoint
Modelica.Units.SI.PressureDifferencepAirRetSet_rel_maxdat.pAirRetSet_rel_maxReturn fan maximum discharge static pressure setpoint
RealyFanSup_mindat.yFanSup_minLowest allowed fan speed if fan is on
Modelica.Units.SI.TemperatureTAirSupSet_mindat.TAirSupSet_minLowest supply air temperature setpoint
Modelica.Units.SI.TemperatureTAirSupSet_maxdat.TAirSupSet_maxHighest supply air temperature setpoint
Modelica.Units.SI.TemperatureTOutRes_mindat.TOutRes_minLowest value of the outdoor air temperature reset range
Modelica.Units.SI.TemperatureTOutRes_maxdat.TOutRes_maxHighest value of the outdoor air temperature reset range
RealyFanRel_mindat.yFanRel_minMinimum relief fan speed
RealyFanRet_mindat.yFanRet_minMinimum return fan speed
Modelica.Units.SI.VolumeFlowRatedVFanRet_flowdat.dVFanRet_flowAirflow differential between supply and return fans to maintain building pressure at setpoint
Configuration
Buildings.Templates.AirHandlersFans.Types.Controllertyp (from PartialController)Type of controller
Buildings.Templates.AirHandlersFans.Types.ControlFanReturntypCtlFanRet (from PartialControllerVAVMultizone)Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasuredReturn fan control type
Booleanhave_CO2Sen (from PartialControllerVAVMultizone)falseSet to true if there are zones with CO2 sensor
IntegernGrosize(namGro, 1)Number of zone groups
Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZoneashCliZondatAll.ashCliZonASHRAE climate zone
Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZonetit24CliZondatAll.tit24CliZonCalifornia Title 24 climate zone
Booleanhave_perZonRehBoxfalseSet to true if there are any VAV-reheat boxes on perimeter zones
Economizer
Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizertypCtlEco (from PartialControllerVAVMultizone)Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulbEconomizer control type
Booleanuse_TMix (from PartialControllerVAVMultizone)trueSet to true if mixed air temperature measurement is enabled
Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSectiontypSecOut (from PartialControllerVAVMultizone)secOutRel.typSecOutType of outdoor air section
Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControlbuiPreCon (from PartialControllerVAVMultizone)if secOutRel.typSecRel == Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReliefDamper then Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper elseif secOutRel.typSecRel == Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReliefFan then Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan elseif secOutRel.typSecRel == Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReturnFan then (if typCtlFanRet == Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasured then Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir elseif typCtlFanRet == Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.BuildingPressure then Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanDp else Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper) else Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamperType of building pressure control system

Connectors

TypeNameDefaultDescription
Buildings.Templates.AirHandlersFans.Interfaces.Busbus (from PartialController)AHU control bus
Buildings.Templates.ZoneEquipment.Interfaces.Bus[nZon]busTer (from PartialController)Terminal unit control bus

Components

TypeNameDefaultDescription
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSectionsecOutRel (from PartialControllerVAVMultizone)Outdoor/relief/return air section
Buildings.Templates.Components.Coils.NonecoiCoo (from PartialControllerVAVMultizone)Cooling coil
Buildings.Templates.Components.Coils.NonecoiHeaPre (from PartialControllerVAVMultizone)Heating coil (preheat position)
Buildings.Templates.Components.Coils.NonecoiHeaReh (from PartialControllerVAVMultizone)Heating coil (reheat position)
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.ControllerctlAHU controller
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.SumZoneaggZonVen_A621Aggregate zone level ventilation signals - ASHRAE 62.1
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.SumZoneaggZonVen_T24Aggregate zone level ventilation signals - California Title 24
Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneStatusDuplicatorrepSigZonReplicate zone signals
Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.GroupStatus[nGro]staGroEvaluate zone group status
Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.OperationMode[nGro]opeModSelOperation mode selection for each zone group
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorTAirSupSetPass signal to terminal unit bus
Buildings.Controls.OBC.CDL.Integers.MultiSumreqZonTemResSum up signals
Buildings.Controls.OBC.CDL.Integers.MultiSumreqZonPreResSum up signals
Buildings.Controls.OBC.CDL.Logical.Sources.Constantu1FreStaRFE: Freezestat and freezestat reset are currently not modeled
Buildings.Controls.OBC.CDL.Logical.Sources.Constantu1SofSwiResRFE: Freezestat and freezestat reset are currently not modeled
Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicatory1FanSup_actualPass signal to terminal unit bus
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorTAirSupPass signal to terminal unit bus
Buildings.Controls.OBC.CDL.Routing.IntegerVectorReplicatorintVecRepRepeat group signal nZon times
Buildings.Controls.OBC.CDL.Integers.MultiSum[nZon]asgOpeModAssign group operating mode to each zone belonging to group
Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneGroupSystemahuModCompute the AHU operating mode

Revisions

  • March 16, 2026, by Antoine Gautier:
    Moved zoning parameter declarations into controller data record.
    This is for #4497.
  • November 8, 2023, by Antoine Gautier:
    Added support for additional configurations.
    This is for #3526.
  • February 11, 2022, by Antoine Gautier:
    First implementation.