blockG36VAVMultiZone
Guideline 36 controller
Extends from Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone.
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 |
|---|---|---|---|
| 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 | |||
| 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 |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller | ctl | AHU controller | |
| Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.ASHRAE62_1.SumZone | aggZonVen_A621 | Aggregate zone level ventilation signals - ASHRAE 62.1 | |
| Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Title24.SumZone | aggZonVen_T24 | Aggregate zone level ventilation signals - California Title 24 | |
| Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneStatusDuplicator | repSigZon | Replicate zone signals | |
| Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.GroupStatus[nGro] | staGro | Evaluate zone group status | |
| Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.OperationMode[nGro] | opeModSel | Operation mode selection for each zone group | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | TAirSupSet | Pass signal to terminal unit bus | |
| Buildings.Controls.OBC.CDL.Integers.MultiSum | reqZonTemRes | Sum up signals | |
| Buildings.Controls.OBC.CDL.Integers.MultiSum | reqZonPreRes | Sum up signals | |
| Buildings.Controls.OBC.CDL.Logical.Sources.Constant | u1FreSta | RFE: Freezestat and freezestat reset are currently not modeled | |
| Buildings.Controls.OBC.CDL.Logical.Sources.Constant | u1SofSwiRes | RFE: Freezestat and freezestat reset are currently not modeled | |
| Buildings.Controls.OBC.CDL.Routing.BooleanScalarReplicator | y1FanSup_actual | Pass signal to terminal unit bus | |
| Buildings.Controls.OBC.CDL.Routing.RealScalarReplicator | TAirSup | Pass signal to terminal unit bus | |
| Buildings.Controls.OBC.CDL.Routing.IntegerVectorReplicator | intVecRep | Repeat group signal nZon times | |
| Buildings.Controls.OBC.CDL.Integers.MultiSum[nZon] | asgOpeMod | Assign group operating mode to each zone belonging to group | |
| Buildings.Controls.OBC.ASHRAE.G36.ZoneGroups.ZoneGroupSystem | ahuMod | Compute the AHU operating mode |