Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations

Package of sequences to modulate economizer dampers

Information

The package contains the sequences to modulate the economizer dampers. The damper control depends on the type of building pressure control system.

Package Content

Name Description
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs Reliefs Modulates dampers of economizer in buildings using relief damper or fan to control the pressure
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan ReturnFan Modulates dampers of economizer in buildings using return fan to control the pressure
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Validation Validation Collection of validation models

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs

Modulates dampers of economizer in buildings using relief damper or fan to control the pressure

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs

Information

This is a multi zone VAV AHU economizer modulation block. It calculates the outdoor and return air damper positions based on the supply air temperature control loop signal. It is implemented according to Section 5.16.2.3.d, Figure 5.16.2.3-1 of ASHRAE Guideline 36, May 2020. Damper positions are linearly mapped to the supply air control loop signal.

When the economizer is enabled, the PI controller modulates the damper positions. Return and outdoor damper are not interlocked. When the economizer is disabled, the damper positions are set to the minimum outdoor air damper position limits.

The control charts below show the input-output structure and an economizer damper modulation sequence assuming a well configured controller. Control diagram:

Image of the multi zone AHU modulation sequence control diagram

Multi zone AHU economizer modulation control chart:

Image of the multi zone AHU modulation sequence expected performance

Parameters

TypeNameDefaultDescription
Commissioning
Controller
RealuMin-0.25Lower limit of controller input when outdoor damper opens (see diagram) [1]
RealuMax+0.25Upper limit of controller input when return damper is closed (see diagram) [1]
RealuOutDamMax(uMin + uMax)/2Maximum loop signal for the OA damper to be fully open [1]
RealuRetDamMin(uMin + uMax)/2Minimum loop signal for the RA damper to be fully open [1]

Connectors

TypeNameDescription
input RealInputuTSupSignal for supply air temperature control (T Sup Control Loop Signal in diagram) [1]
input RealInputuOutDam_minMinimum economizer damper position limit as returned by the damper position limits sequence [1]
input RealInputuOutDam_maxMaximum economizer damper position limit as returned by the economizer enable-disable sequence. If the economizer is disabled, this value equals uOutDam_min [1]
input RealInputuRetDam_minMinimum return air damper position limit as returned by the economizer enable-disable sequence [1]
input RealInputuRetDam_maxMaximum return air damper position limit as returned by the economizer enable-disable sequence [1]
output RealOutputyOutDamEconomizer damper commanded position [1]
output RealOutputyRetDamReturn air damper commanded position [1]

Modelica definition

block Reliefs "Modulates dampers of economizer in buildings using relief damper or fan to control the pressure" parameter Real uMin( final max=0, final unit="1")=-0.25 "Lower limit of controller input when outdoor damper opens (see diagram)"; parameter Real uMax( final min=0, final unit="1")=+0.25 "Upper limit of controller input when return damper is closed (see diagram)"; parameter Real uOutDamMax( final min=-1, final max=1, final unit="1") = (uMin + uMax)/2 "Maximum loop signal for the OA damper to be fully open"; parameter Real uRetDamMin( final min=-1, final max=1, final unit="1") = (uMin + uMax)/2 "Minimum loop signal for the RA damper to be fully open"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uTSup(final unit="1") "Signal for supply air temperature control (T Sup Control Loop Signal in diagram)"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uOutDam_min( final min=0, final max=1, final unit="1") "Minimum economizer damper position limit as returned by the damper position limits sequence"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uOutDam_max( final min=0, final max=1, final unit="1") "Maximum economizer damper position limit as returned by the economizer enable-disable sequence. If the economizer is disabled, this value equals uOutDam_min"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uRetDam_min( final min=0, final max=1, final unit="1") "Minimum return air damper position limit as returned by the economizer enable-disable sequence"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uRetDam_max( final min=0, final max=1, final unit="1") "Maximum return air damper position limit as returned by the economizer enable-disable sequence"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam( final min=0, final max=1, final unit="1") "Economizer damper commanded position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRetDam( final min=0, final max=1, final unit="1") "Return air damper commanded position"; protected Buildings.Controls.OBC.CDL.Reals.Sources.Constant outDamMinLimSig( final k=uMin) "Minimal control loop signal for the outdoor air damper"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant outDamMaxLimSig( final k=uOutDamMax) "Maximum control loop signal for the outdoor air damper"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant retDamConMinLimSig( final k=uRetDamMin) "Minimal control loop signal for the return air damper"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant retDamMaxLimSig( final k=uMax) "Maximal control loop signal for the return air damper"; Buildings.Controls.OBC.CDL.Reals.Line outDamPos( final limitBelow=true, final limitAbove=true) "Damper position is linearly proportional to the control signal between signal limits"; Buildings.Controls.OBC.CDL.Reals.Line retDamPos( final limitBelow=true, final limitAbove=true) "Damper position is linearly proportional to the control signal between signal limits"; Buildings.Controls.OBC.CDL.Reals.Min min "Overwrite due to freeze protection"; Buildings.Controls.OBC.CDL.Reals.Max max "Overwrite due to freeze protection"; equation connect(outDamPos.x2, outDamMaxLimSig.y); connect(outDamPos.x1, outDamMinLimSig.y); connect(outDamPos.f1, uOutDam_min); connect(outDamPos.f2, uOutDam_max); connect(retDamPos.x2, retDamMaxLimSig.y); connect(retDamPos.x1, retDamConMinLimSig.y); connect(retDamPos.f1, uRetDam_max); connect(retDamPos.f2, uRetDam_min); connect(min.u2, uOutDam_max); connect(min.u1, outDamPos.y); connect(max.u1, retDamPos.y); connect(uRetDam_min, max.u2); connect(uTSup, retDamPos.u); connect(uTSup, outDamPos.u); connect(max.y, yRetDam); connect(min.y, yOutDam); end Reliefs;

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan

Modulates dampers of economizer in buildings using return fan to control the pressure

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan

Information

Block modulates the damper of economizers of buildings with pressure controlled by return fan and airflow tracking. It is implemented according to Section 5.16.2.3.d, Figure 5.16.2.3-2 and Figure 5.16.2.3-3 of ASHRAE Guideline 36, May 2020.

Return air damper position limits, which are the inputs to the sequence, are the outputs of sequences in package Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits. It also requires input uTSup from Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.SetPoints.SupplySignals sequences.

The time rate of change of the damper signals is limited by a first order hold, using the sample time samplePeriod. This prevents a quick opening of the outdoor air damper, for example when the outdoor airflow setpoint has a step change. Slowing down the opening of the outdoor air damper allows the freeze protection to componensate with its dynamics that is faster than the opening of the outdoor air damper. To avoid that all dampers are closed, the return air damper has the same time rate of change limitation.

The modulation is shown as the control chart:

Image of the damper modulation for economizer in buildings with pressure controller by return fan

Note in the above chart, if the building has direct pressure control (have_dirCon), the profile for relief air damper control should be ignored.

Parameters

TypeNameDefaultDescription
Booleanhave_dirContrueTrue: the building have direct pressure control
Commissioning
Controller
RealuMin-0.25Lower limit of controller input when outdoor damper opens (see diagram) [1]
RealuMax+0.25Upper limit of controller input when return damper is closed (see diagram) [1]

Connectors

TypeNameDescription
input RealInputuTSupSupply air temperature control loop signal [1]
input RealInputuRetDam_maxMaximum return air damper position limit as returned by the economizer enable-disable sequence [1]
input RealInputuRetDam_minMinimum return air damper position limit as returned by the economizer enable-disable sequence [1]
output RealOutputyRetDamReturn air damper position [1]
output RealOutputyRelDamRelief air damper position [1]
output RealOutputyOutDamOutdoor air damper position [1]

Modelica definition

block ReturnFan "Modulates dampers of economizer in buildings using return fan to control the pressure" parameter Boolean have_dirCon=true "True: the building have direct pressure control"; parameter Real uMin( final max=0, final unit="1")=-0.25 "Lower limit of controller input when outdoor damper opens (see diagram)"; parameter Real uMax( final min=0, final unit="1")=+0.25 "Upper limit of controller input when return damper is closed (see diagram)"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uTSup( final unit="1") "Supply air temperature control loop signal"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uRetDam_max( final min=0, final max=1, final unit="1") "Maximum return air damper position limit as returned by the economizer enable-disable sequence"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uRetDam_min( final min=0, final max=1, final unit="1") "Minimum return air damper position limit as returned by the economizer enable-disable sequence"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRetDam( final min=0, final max=1, final unit="1") "Return air damper position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRelDam( final min=0, final max=1, final unit="1") if not have_dirCon "Relief air damper position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam( final min=0, final max=1, final unit="1") "Outdoor air damper position"; protected Buildings.Controls.OBC.CDL.Reals.Sources.Constant damMinLimSig( final k=uMin) "Minimal control loop signal for the relief and return air damper position"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant damMaxLimSig( final k=uMax) "Maximal control loop signal for the return and exhast air damper"; Buildings.Controls.OBC.CDL.Reals.Line retDamPos( final limitBelow=true, final limitAbove=true) "Return air damper position"; Buildings.Controls.OBC.CDL.Reals.Line relDamPos( final limitBelow=true, final limitAbove=true) if not have_dirCon "Relief air damper position"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant zer( final k=0) if not have_dirCon "Constant zero"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant one( final k=1) "Constant one"; equation connect(damMinLimSig.y, retDamPos.x1); connect(uRetDam_max, retDamPos.f1); connect(damMaxLimSig.y, retDamPos.x2); connect(uRetDam_min, retDamPos.f2); connect(damMinLimSig.y, relDamPos.x1); connect(zer.y, relDamPos.f1); connect(damMaxLimSig.y, relDamPos.x2); connect(one.y, relDamPos.f2); connect(uTSup, retDamPos.u); connect(uTSup, relDamPos.u); connect(one.y, yOutDam); connect(retDamPos.y, yRetDam); connect(relDamPos.y, yRelDam); end ReturnFan;