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.
- Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller: Main controller for the air handler
- Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.GroupStatus and Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.OperationMode: Computation of the zone group operating mode out of zone-level signals
- Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneGroupSystem: Computation of the AHU operating mode
References
- ASHRAE, 2021. Guideline 36-2021, High-Performance Sequences of Operation for HVAC Systems. Atlanta, GA.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nZon (from PartialController) | Number of served zones | |
| Buildings.Templates.Data.AllSystems | datAll (from PartialController) | Top-level (whole building) system parameters | |
| Buildings.Templates.Components.Types.Fan | typFanSup (from PartialController) | Type of supply fan | |
| Buildings.Templates.Components.Types.Fan | typFanRel (from PartialController) | Type of relief fan | |
| Buildings.Templates.Components.Types.Fan | typFanRet (from PartialController) | Type of return fan | |
| Integer | nFanSup (from PartialController) | Number of supply fans | |
| Integer | nFanRel (from PartialController) | Number of relief fans | |
| Integer | nFanRet (from PartialController) | Number of return fans | |
| Buildings.Templates.AirHandlersFans.Components.Data.PartialController | dat (from PartialController) | Design and operating parameters | |
| Boolean | have_frePro (from PartialControllerVAVMultizone) | true | Set to true to include freeze protection |
| Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat | typFreSta (from PartialControllerVAVMultizone) | Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat.No_freeze_stat | Option for low limit (freeze) protection |
| Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard | stdEne (from PartialControllerVAVMultizone) | datAll.stdEne | Energy standard |
| Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard | stdVen (from PartialControllerVAVMultizone) | datAll.stdVen | Ventilation standard |
| String[:] | idZon | dat.idZon | Zone (or terminal unit) names |
| String[:] | namGro | dat.namGro | Name of zone groups |
| String[:] | namGroZon | dat.namGroZon | Name 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.CoolingCoil | typCoiCoo | if 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.None | Type of cooling coil |
| Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil | typCoiHea | if 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.None | Type of cooling coil |
| Modelica.Units.SI.VolumeFlowRate | VOutUnc_flow_nominal | dat.VOutUnc_flow_nominal | Uncorrected design outdoor air flow rate, including diversity where applicable |
| Modelica.Units.SI.VolumeFlowRate | VOutTot_flow_nominal | dat.VOutTot_flow_nominal | Design total outdoor air flow rate |
| Modelica.Units.SI.VolumeFlowRate | VOutAbsMin_flow_nominal | dat.VOutAbsMin_flow_nominal | Design outdoor air flow rate when all zones with CO2 sensors or occupancy sensors are unpopulated |
| Modelica.Units.SI.VolumeFlowRate | VOutMin_flow_nominal | dat.VOutMin_flow_nominal | Design minimum outdoor air flow rate when all zones are occupied at their design population, including diversity |
| Modelica.Units.SI.PressureDifference | dpDamOutMinAbs | dat.dpDamOutMinAbs | Differential pressure across the minimum outdoor air damper that provides the absolute minimum outdoor airflow |
| Modelica.Units.SI.PressureDifference | dpDamOutMin_nominal | dat.dpDamOutMin_nominal | Differential pressure across the minimum outdoor air damper that provides the design minimum outdoor airflow |
| Modelica.Units.SI.PressureDifference | pAirSupSet_rel_max | dat.pAirSupSet_rel_max | Maximum supply duct static pressure setpoint |
| Modelica.Units.SI.PressureDifference | pAirRetSet_rel_min | dat.pAirRetSet_rel_min | Return fan minimum discharge static pressure setpoint |
| Modelica.Units.SI.PressureDifference | pAirRetSet_rel_max | dat.pAirRetSet_rel_max | Return fan maximum discharge static pressure setpoint |
| Real | yFanSup_min | dat.yFanSup_min | Lowest allowed fan speed if fan is on |
| Modelica.Units.SI.Temperature | TAirSupSet_min | dat.TAirSupSet_min | Lowest supply air temperature setpoint |
| Modelica.Units.SI.Temperature | TAirSupSet_max | dat.TAirSupSet_max | Highest supply air temperature setpoint |
| Modelica.Units.SI.Temperature | TOutRes_min | dat.TOutRes_min | Lowest value of the outdoor air temperature reset range |
| Modelica.Units.SI.Temperature | TOutRes_max | dat.TOutRes_max | Highest value of the outdoor air temperature reset range |
| Real | yFanRel_min | dat.yFanRel_min | Minimum relief fan speed |
| Real | yFanRet_min | dat.yFanRet_min | Minimum return fan speed |
| Modelica.Units.SI.VolumeFlowRate | dVFanRet_flow | dat.dVFanRet_flow | Airflow differential between supply and return fans to maintain building pressure at setpoint |
| Configuration | |||
| Buildings.Templates.AirHandlersFans.Types.Controller | typ (from PartialController) | Type of controller | |
| Buildings.Templates.AirHandlersFans.Types.ControlFanReturn | typCtlFanRet (from PartialControllerVAVMultizone) | Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasured | Return fan control type |
| Boolean | have_CO2Sen (from PartialControllerVAVMultizone) | false | Set to true if there are zones with CO2 sensor |
| Integer | nGro | size(namGro, 1) | Number of zone groups |
| Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone | ashCliZon | datAll.ashCliZon | ASHRAE climate zone |
| Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone | tit24CliZon | datAll.tit24CliZon | California Title 24 climate zone |
| Boolean | have_perZonRehBox | false | Set to true if there are any VAV-reheat boxes on perimeter zones |
| Economizer | |||
| Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer | typCtlEco (from PartialControllerVAVMultizone) | Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb | Economizer control type |
| Boolean | use_TMix (from PartialControllerVAVMultizone) | true | Set to true if mixed air temperature measurement is enabled |
| Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection | typSecOut (from PartialControllerVAVMultizone) | secOutRel.typSecOut | Type of outdoor air section |
| Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl | buiPreCon (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.ReliefDamper | Type of building pressure control system |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Templates.AirHandlersFans.Interfaces.Bus | bus (from PartialController) | AHU control bus | |
| Buildings.Templates.ZoneEquipment.Interfaces.Bus[nZon] | busTer (from PartialController) | Terminal unit control bus |