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 |
---|---|
Controller | Single zone VAV AHU economizer control sequence |
Subsequences | Subsequences for economizer control |
Validation | Collection of validation models |
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller
Single zone VAV AHU economizer control sequence
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.
-
First, the block
damLim
computes the damper position limits to satisfy outdoor air requirements. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits for a description. -
Second, the block
enaDis
enables or disables the economizer based on outdoor temperature and optionally enthalpy, and based on the supply fan status, freeze protection stage and zone state. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable for a description. The blockecoHigLim
specifies the economizer high limit cutoff values based on the energy standard, device type and climate zones. See Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits for a description. -
Third, the block
mod
modulates the outdoor and return damper position to track the supply air temperature setpoint for heating, subject to the limits of the damper positions that were computed in the above two blocks. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Subsequences.Modulation for a description.
Parameters
Type | Name | Default | Description |
---|---|---|---|
EnergyStandard | eneStd | Energy standard, ASHRAE 90.1 or Title 24 | |
ControlEconomizer | ecoHigLimCon | Economizer high limit control device | |
ASHRAEClimateZone | ashCliZon | Buildings.Controls.OBC.ASHRA... | ASHRAE climate zone |
Title24ClimateZone | tit24CliZon | Buildings.Controls.OBC.ASHRA... | California Title 24 climate zone |
Boolean | have_heaCoi | true | True if the air handling unit has heating coil |
Real | uMin | 0.1 | Lower limit of controller output at which the dampers are at their limits [1] |
Real | uMax | 0.9 | Upper limit of controller output at which the dampers are at their limits [1] |
Modulation | |||
SimpleController | controllerTypeMod | Buildings.Controls.OBC.CDL.T... | Type of controller |
Real | kMod | 1 | Gain of modulation controller [1/K] |
Real | TiMod | 300 | Time constant of modulation controller integrator block [s] |
Real | TdMod | 0.1 | Time constant of derivative block for modulation controller [s] |
Advanced | |||
Hysteresis | |||
Real | delTOutHys | 1 | Delta between the temperature hysteresis high and low limit [K] |
Real | delEntHys | 1000 | Delta between the enthalpy hysteresis high and low limits [J/kg] |
Real | floHys | 0.01 | Near zero flow rate, below which the flow rate or difference will be seen as zero |
Commissioning | |||
Damper position limits | |||
Real | supFanSpe_min | 0.1 | Minimum supply fan operation speed [1] |
Real | supFanSpe_max | 0.9 | Maximum supply fan operation speed [1] |
Real | VOutMin_flow | 1.0 | Calculated minimum outdoor airflow rate [m3/s] |
Real | VOutDes_flow | 2.0 | Calculated design outdoor airflow rate [m3/s] |
Real | outDamMinFloMinSpe | 0.4 | Outdoor air damper position to supply minimum outdoor airflow at minimum fan speed [1] |
Real | outDamMinFloMaxSpe | 0.3 | Outdoor air damper position to supply minimum outdoor airflow at maximum fan speed [1] |
Real | outDamDesFloMinSpe | 0.9 | Outdoor air damper position to supply design outdoor airflow at minimum fan speed [1] |
Real | outDamDesFloMaxSpe | 0.8 | Outdoor air damper position to supply design outdoor airflow at maximum fan speed [1] |
Physical damper position limits | |||
Real | outDamPhy_max | 1 | Physically fixed maximum position of the outdoor air damper [1] |
Real | outDamPhy_min | 0 | Physically fixed minimum position of the outdoor air damper [1] |
Real | retDamPhy_max | 1 | Physically fixed maximum position of the return air damper [1] |
Real | retDamPhy_min | 0 | Physically fixed minimum position of the return air damper [1] |
Connectors
Type | Name | Description |
---|---|---|
input RealInput | TOut | Outdoor air temperature [K] |
input RealInput | TAirRet | Used only for fixed plus differential dry bulb temperature high limit cutoff [K] |
input RealInput | hOut | Outdoor air enthalpy [J/kg] |
input RealInput | hAirRet | Return air enthalpy [J/kg] |
input RealInput | TAirSup | Measured supply air temperature [K] |
input RealInput | TSupHeaEcoSet | Supply air temperature heating setpoint [K] |
input RealInput | VOutMinSet_flow | Minimum outdoor airflow setpoint [m3/s] |
input RealInput | uSupFan_actual | Actual supply fan speed [1] |
input IntegerInput | uZonSta | Zone state signal |
input IntegerInput | uFreProSta | Freeze protection status |
input IntegerInput | uOpeMod | AHU operation mode status signal |
input BooleanInput | u1SupFan | Supply fan proven on |
output RealOutput | yOutDam_min | Outdoor damper minimum position [1] |
output RealOutput | yHeaCoi | Heating coil commanded valve position [1] |
output RealOutput | yRetDam | Return air damper commanded position [1] |
output RealOutput | yOutDam | Outdoor 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;