blockDampers
Output signals for controlling dampers of dual-duct terminal unit using mixing control with inlet flow sensor
Information
This sequence sets the dampers for dual-duct terminal unit using mixing control with inlet flow sensor. The implementation is according to Section 5.12.5 of ASHRAE Guideline 36, May 2020. The calculation is done following the steps below.
-
When the zone state is cooling (
uCoo > 0), then the cooling loop outputuCooshall reset the cooling supply airflow setpointVColDucDis_flow_Setfrom the minimumVActMin_flowto cooling maximum setpointVActCooMax_flow. The cooling damper shall be modulated by a control loop to maintain the measured cooling aiflowVColDucDis_flowat setpoint. The heating damper shall be closedyHeaDam=0.-
If the cold-deck supply air temperature
TColSupfrom the cooling air handler is greater than room temperatureTZon, cooling supply airflow setpoint shall be no higher than the minimum.
-
If the cold-deck supply air temperature
-
When the zone state is deadband (
uCoo=0anduHea=0), the cooling airflow set pointVColDucDis_flow_Setshall be the minimum set pointVActMin_flow. The cooling damper shall be modulated by a control loop to maintain the measured cooling airflow at set point. The heating damper shall be closed. -
When the zone state is heating (
uHea > 0), then the heating loop outputuHeashall reset the heating supply airflow setpointVHotDucDis_flow_Setfrom zero to heating maximum setpointVActHeaMax_flow. The heating damper shall be modulated by a control loop to maintain the measured heating aiflowVHotDucDis_flowat setpoint. The cooling damper shall be controlled to maintain the sum of the measured inlet airflows at the minimum airflow set pointVActMin_flow.-
If the hot-deck supply air temperature
THotSupfrom the heating air handler is less than room temperatureTZon, heating supply airflow setpoint shall be no higher than the minimum.
-
If the hot-deck supply air temperature
-
Overriding above controls:
-
If heating air handler is not proven ON (
u1HeaAHU=false), the heating damper shall be closed (yHeaDam=0). -
If cooling air handler is not proven ON (
u1CooAHU=false), the cooling damper shall be closed (yCooDam=0).
-
If heating air handler is not proven ON (
The sequences of controlling dampers position for dual-duct terminal unit using mixing control with inlet flow sensor are described in the following figure below.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | VCooMax_flow | Design zone cooling maximum airflow rate | |
| Real | VHeaMax_flow | Design zone heating maximum airflow rate | |
| Buildings.Controls.OBC.CDL.Types.SimpleController | controllerTypeDam | Buildings.Controls.OBC.CDL.Types.SimpleController.PI | Type of controller |
| Real | kDam | 0.5 | Gain of controller for damper control |
| Real | TiDam | 300 | Time constant of integrator block for damper control |
| Real | TdDam | 0.1 | Time constant of derivative block for damper control |
| Advanced | |||
| Real | dTHys | 0.25 | Temperature difference hysteresis below which the temperature difference will be seen as zero |
| Real | looHys | 0.05 | Loop output hysteresis below which the output will be seen as zero |
| Real | iniDam | 0.01 | Initial damper position when the damper control is enabled |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | uCoo | Cooling control signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VActCooMax_flow | Active cooling maximum airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TColSup | Cold duct supply air temperature from central air handler | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VColDucDis_flow | Measured cold-duct discharge airflow rate airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1CooAHU | Cooling air handler status | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VActMin_flow | Active minimum airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TZon | Measured zone temperature | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | THotSup | Hot duct supply air temperature from central air handler | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | uHea | Heating control signal | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VActHeaMax_flow | Active heating maximum airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | VHotDucDis_flow | Measured hot-duct discharge airflow rate airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1HeaAHU | Heating air handler status | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VDis_flow_Set | Discharge airflow setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VColDucDis_flow_Set | Cold duct discharge airflow setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yCooDam | Cold duct damper commanded position | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | VHotDucDis_flow_Set | Hot duct discharge airflow setpoint | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yHeaDam | Hot duct damper commanded position |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Logical.And | and4 | Logical and | |
| Buildings.Controls.OBC.CDL.Reals.Line | lin | Active airflow setpoint for cooling | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi | Output active cold duct airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi5 | Airflow setpoint when it is in cooling state | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer | Constant zero | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conOne | Constant one | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr1 | Check if it is cooling state | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr | Check if supply air temperature is greater than room temperature | |
| Buildings.Controls.OBC.CDL.Reals.Subtract | sub2 | Calculate temperature difference between AHU supply air and room | |
| Buildings.Controls.OBC.CDL.Reals.Add | add2 | Total discharge airflow setpoint | |
| Buildings.Controls.OBC.CDL.Logical.Or | or2 | Cooing or heating state | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr2 | Check if it is cooling state | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | In deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi1 | Active cold duct airflow setpoint when it is in deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Line | lin1 | Active airflow setpoint for heating | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer1 | Constant zero | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conOne1 | Constant one | |
| Buildings.Controls.OBC.CDL.Reals.Subtract | sub1 | Calculate temperature difference between AHU supply air and room | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr3 | Check if supply air temperature is less than room temperature | |
| Buildings.Controls.OBC.CDL.Logical.And | and1 | Logical and | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi2 | Airflow setpoint when it is in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi3 | Airflow setpoint when it is in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer3 | Constant zero | |
| Buildings.Controls.OBC.CDL.Reals.Subtract | sub3 | Calculate flow rate difference between minimum flow setpoint and the heating setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Max | max1 | Ensure positive flow | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea2 | Convert boolean to real | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul3 | Cold duct flow setpoint when in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDisSet_flowNor | Normalized setpoint for discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.PIDWithReset | conCooDam | Cooling damper position controller | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDis_flowNor | Normalized discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Switch | cooDamPos | Output cooling damper position | |
| Buildings.Controls.OBC.CDL.Logical.Not | not3 | Not proven on | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDisSet_flowNor1 | Normalized setpoint for discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.PIDWithReset | conHeaDam | Heating damper position controller | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDis_flowNor1 | Normalized discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Switch | heaDamPos | Output heating damper position | |
| Buildings.Controls.OBC.CDL.Logical.Or | or1 | Cooing or deadband state | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea1 | Ensure heating damper is closed when it is in cooling or deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul1 | Ensure heating damper is closed when it is in cooling or deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cooMax1 | Cooling maximum flow | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | heaMax1 | Heating maximum flow | |
| Buildings.Controls.OBC.CDL.Reals.Max | max2 | Nominal flow |
Revisions
-
January 12, 2023, by Jianjun Hu:
Removed the parameterhave_preIndDamto exclude the option of using pressure independant damper.
This is for issue 3139. -
August 1, 2020, by Jianjun Hu:
First implementation.