Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers

Economizer control of single zone VAV AHU

Information

The package contains a single zone VAV AHU economizer control sequence and the related economizer subsequences.

Package Content

Name Description
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller Controller Single zone VAV AHU economizer control sequence
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences Subsequences Subsequences for economizer control
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Validation Validation Collection of validation models

Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller

Single zone VAV AHU economizer control sequence

Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller

Information

Single zone VAV AHU economizer control sequence that calculates outdoor and return air damper positions based on Section 5.18.5, 5.18.6, 5.18.7, 5.1.17 of ASHRAE Guidline 36, May 2020.

The sequence consists of three subsequences.

Parameters

TypeNameDefaultDescription
EnergyStandardeneStd Energy standard, ASHRAE 90.1 or Title 24
ControlEconomizerecoHigLimCon Economizer high limit control device
ASHRAEClimateZoneashCliZonBuildings.Controls.OBC.ASHRA...ASHRAE climate zone
Title24ClimateZonetit24CliZonBuildings.Controls.OBC.ASHRA...California Title 24 climate zone
Booleanhave_heaCoitrueTrue if the air handling unit has heating coil
RealuMin0.1Lower limit of controller output at which the dampers are at their limits [1]
RealuMax0.9Upper limit of controller output at which the dampers are at their limits [1]
Modulation
SimpleControllercontrollerTypeModBuildings.Controls.OBC.CDL.T...Type of controller
RealkMod1Gain of modulation controller [1/K]
RealTiMod300Time constant of modulation controller integrator block [s]
RealTdMod0.1Time constant of derivative block for modulation controller [s]
Advanced
Hysteresis
RealdelTOutHys1Delta between the temperature hysteresis high and low limit [K]
RealdelEntHys1000Delta between the enthalpy hysteresis high and low limits [J/kg]
RealfloHys0.01Near zero flow rate, below which the flow rate or difference will be seen as zero
Commissioning
Damper position limits
RealsupFanSpe_min0.1Minimum supply fan operation speed [1]
RealsupFanSpe_max0.9Maximum supply fan operation speed [1]
RealVOutMin_flow1.0Calculated minimum outdoor airflow rate [m3/s]
RealVOutDes_flow2.0Calculated design outdoor airflow rate [m3/s]
RealoutDamMinFloMinSpe0.4Outdoor air damper position to supply minimum outdoor airflow at minimum fan speed [1]
RealoutDamMinFloMaxSpe0.3Outdoor air damper position to supply minimum outdoor airflow at maximum fan speed [1]
RealoutDamDesFloMinSpe0.9Outdoor air damper position to supply design outdoor airflow at minimum fan speed [1]
RealoutDamDesFloMaxSpe0.8Outdoor air damper position to supply design outdoor airflow at maximum fan speed [1]
Physical damper position limits
RealoutDamPhy_max1Physically fixed maximum position of the outdoor air damper [1]
RealoutDamPhy_min0Physically fixed minimum position of the outdoor air damper [1]
RealretDamPhy_max1Physically fixed maximum position of the return air damper [1]
RealretDamPhy_min0Physically fixed minimum position of the return air damper [1]

Connectors

TypeNameDescription
input RealInputTOutOutdoor air temperature [K]
input RealInputTAirRetUsed only for fixed plus differential dry bulb temperature high limit cutoff [K]
input RealInputhOutOutdoor air enthalpy [J/kg]
input RealInputhAirRetReturn air enthalpy [J/kg]
input RealInputTAirSupMeasured supply air temperature [K]
input RealInputTSupHeaEcoSetSupply air temperature heating setpoint [K]
input RealInputVOutMinSet_flowMinimum outdoor airflow setpoint [m3/s]
input RealInputuSupFan_actualActual supply fan speed [1]
input IntegerInputuZonStaZone state signal
input IntegerInputuFreProStaFreeze protection status
input IntegerInputuOpeModAHU operation mode status signal
input BooleanInputu1SupFanSupply fan proven on
output RealOutputyOutDam_minOutdoor damper minimum position [1]
output RealOutputyHeaCoiHeating coil commanded valve position [1]
output RealOutputyRetDamReturn air damper commanded position [1]
output RealOutputyOutDamOutdoor air damper commanded position [1]

Modelica definition

block Controller "Single zone VAV AHU economizer control sequence" parameter Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard eneStd "Energy standard, ASHRAE 90.1 or Title 24"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer ecoHigLimCon "Economizer high limit control device"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified "ASHRAE climate zone"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Not_Specified "California Title 24 climate zone"; parameter Boolean have_heaCoi=true "True if the air handling unit has heating coil"; parameter Real uMin( final min=0.1, final max=0.9, final unit="1") = 0.1 "Lower limit of controller output at which the dampers are at their limits"; parameter Real uMax( final min=0.1, final max=1, final unit="1") = 0.9 "Upper limit of controller output at which the dampers are at their limits"; parameter Buildings.Controls.OBC.CDL.Types.SimpleController controllerTypeMod= Buildings.Controls.OBC.CDL.Types.SimpleController.PI "Type of controller"; parameter Real kMod(final unit="1/K")=1 "Gain of modulation controller"; parameter Real TiMod( final unit="s", final quantity="Time")=300 "Time constant of modulation controller integrator block"; parameter Real TdMod( final unit="s", final quantity="Time")=0.1 "Time constant of derivative block for modulation controller"; parameter Real delTOutHys( final unit="K", final displayUnit="K", final quantity="TemperatureDifference")=1 "Delta between the temperature hysteresis high and low limit"; parameter Real delEntHys( final unit="J/kg", final quantity="SpecificEnergy")=1000 "Delta between the enthalpy hysteresis high and low limits"; parameter Real floHys=0.01 "Near zero flow rate, below which the flow rate or difference will be seen as zero"; parameter Real supFanSpe_min( final min=0, final max=1, final unit="1") = 0.1 "Minimum supply fan operation speed"; parameter Real supFanSpe_max( final min=0, final max=1, final unit="1") = 0.9 "Maximum supply fan operation speed"; parameter Real VOutMin_flow( final unit="m3/s", final quantity="VolumeFlowRate")=1.0 "Calculated minimum outdoor airflow rate"; parameter Real VOutDes_flow( final unit="m3/s", final quantity="VolumeFlowRate")=2.0 "Calculated design outdoor airflow rate"; parameter Real outDamMinFloMinSpe( final min=outDamPhy_min, final max=outDamPhy_max, final unit="1") = 0.4 "Outdoor air damper position to supply minimum outdoor airflow at minimum fan speed"; parameter Real outDamMinFloMaxSpe( final min=outDamPhy_min, final max=outDamPhy_max, final unit="1") = 0.3 "Outdoor air damper position to supply minimum outdoor airflow at maximum fan speed"; parameter Real outDamDesFloMinSpe( final min=outDamMinFloMinSpe, final max=outDamPhy_max, final unit="1") = 0.9 "Outdoor air damper position to supply design outdoor airflow at minimum fan speed"; parameter Real outDamDesFloMaxSpe( final min=outDamMinFloMaxSpe, final max=outDamPhy_max, final unit="1") = 0.8 "Outdoor air damper position to supply design outdoor airflow at maximum fan speed"; parameter Real outDamPhy_max( final min=0, final max=1, final unit="1") = 1 "Physically fixed maximum position of the outdoor air damper"; parameter Real outDamPhy_min( final min=0, final max=1, final unit="1") = 0 "Physically fixed minimum position of the outdoor air damper"; parameter Real retDamPhy_max( final min=0, final max=1, final unit="1") = 1 "Physically fixed maximum position of the return air damper"; parameter Real retDamPhy_min( final min=0, final max=1, final unit="1") = 0 "Physically fixed minimum position of the return air damper"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TOut( final unit="K", displayUnit="degC", final quantity = "ThermodynamicTemperature") "Outdoor air temperature"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TAirRet( final unit="K", displayUnit="degC", final quantity="ThermodynamicTemperature") if ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb "Used only for fixed plus differential dry bulb temperature high limit cutoff"; Buildings.Controls.OBC.CDL.Interfaces.RealInput hOut( final unit="J/kg", final quantity="SpecificEnergy") if (ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb or ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb) "Outdoor air enthalpy"; Buildings.Controls.OBC.CDL.Interfaces.RealInput hAirRet( final unit="J/kg", final quantity="SpecificEnergy") if (eneStd == Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016 and ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb) "Return air enthalpy"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TAirSup( final unit="K", displayUnit="degC", final quantity="ThermodynamicTemperature") "Measured supply air temperature"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TSupHeaEcoSet( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature") "Supply air temperature heating setpoint"; Buildings.Controls.OBC.CDL.Interfaces.RealInput VOutMinSet_flow( final min=VOutMin_flow, final max=VOutDes_flow, final unit="m3/s", final quantity="VolumeFlowRate") "Minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uSupFan_actual( final min=supFanSpe_min, final max=supFanSpe_max, final unit="1") "Actual supply fan speed"; Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uZonSta "Zone state signal"; Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uFreProSta "Freeze protection status"; Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uOpeMod "AHU operation mode status signal"; Buildings.Controls.OBC.CDL.Interfaces.BooleanInput u1SupFan "Supply fan proven on"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam_min( final min=0, final max=1, final unit="1") "Outdoor damper minimum position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yHeaCoi( final unit="1", final min=0, final max=1) if have_heaCoi "Heating coil commanded valve position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRetDam( final min=0, final max=1, final unit="1") "Return air damper commanded position"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam( final min=0, final max=1, final unit="1") "Outdoor air damper commanded position"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable enaDis( final use_enthalpy=ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb or ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final retDamPhy_max=retDamPhy_max, final delTOutHys=delTOutHys, final delEntHys=delEntHys, final retDamPhy_min=retDamPhy_min) "Single zone VAV AHU economizer enable/disable sequence"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits damLim( final supFanSpe_min=supFanSpe_min, final supFanSpe_max=supFanSpe_max, final outDamPhy_max=outDamPhy_max, final outDamPhy_min=outDamPhy_min, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow, final outDamMinFloMinSpe=outDamMinFloMinSpe, final outDamMinFloMaxSpe=outDamMinFloMaxSpe, final outDamDesFloMinSpe=outDamDesFloMinSpe, final outDamDesFloMaxSpe=outDamDesFloMaxSpe, final floHys=floHys) "Single zone VAV AHU economizer minimum outdoor air requirement damper limit sequence"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Modulation mod( final have_heaCoi=have_heaCoi, final controllerType=controllerTypeMod, final k=kMod, final Ti=TiMod, final Td=TdMod, final uMin=uMin, final uMax=uMax) "Single zone VAV AHU economizer damper modulation sequence"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim( final eneStd=eneStd, final ecoHigLimCon=ecoHigLimCon, final ashCliZon=ashCliZon, final tit24CliZon=tit24CliZon) "High limits"; Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar(final p=-1) if eneStd == Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.Not_Specified "Dummy block"; equation connect(u1SupFan, enaDis.u1SupFan); connect(uFreProSta, enaDis.uFreProSta); connect(hOut, enaDis.hOut); connect(TOut, enaDis.TOut); connect(u1SupFan, damLim.u1SupFan); connect(uOpeMod, damLim.uOpeMod); connect(uFreProSta, damLim.uFreProSta); connect(damLim.yOutDam_max, enaDis.uOutDam_max); connect(enaDis.yOutDam_max, mod.uOutDam_max); connect(enaDis.yRetDam_max, mod.uRetDam_max); connect(damLim.yOutDam_min, mod.uOutDam_min); connect(enaDis.yRetDam_min, mod.uRetDam_min); connect(uZonSta, enaDis.uZonSta); connect(uSupFan_actual, damLim.uSupFan_actual); connect(VOutMinSet_flow, damLim.VOutMinSet_flow); connect(mod.yHeaCoi, yHeaCoi); connect(damLim.yOutDam_min, enaDis.uOutDam_min); connect(TAirSup, mod.TSup); connect(TSupHeaEcoSet, mod.TSupHeaEcoSet); connect(u1SupFan, mod.u1SupFan); connect(mod.yRetDam, yRetDam); connect(mod.yOutDam, yOutDam); connect(damLim.yOutDam_min, yOutDam_min); connect(ecoHigLim.TCut, enaDis.TCut); connect(ecoHigLim.hCut, enaDis.hCut); connect(TAirRet, ecoHigLim.TRet); connect(hAirRet, ecoHigLim.hRet); connect(TOut, addPar.u); connect(addPar.y, enaDis.TCut); end Controller;