blockDampersDualSensors
Output signals for controlling dampers of snap-acting controlled dual-duct terminal unit with dual inlet airflow sensors
Information
This sequence sets the dampers for snap-acting controlled dual-duct terminal unit with dual inlet airflow sensors. The implementation is according to Section 5.11.5.1 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 and heating airflow set points shall be their last set points just before entering deadband. In other words, when going from cooling to deadband, the cooling airflow set point is equal to the zone minimumVActMin_flow, and the heating set point is zero When going from heating to deadband, the heating airflow set point is equal to the zone minimumVActMin_flow, and the cooling set point is zero. -
When the zone state is heating (
uHea > 0), then the heating loop outputuHeashall reset the heating supply airflow setpointVHotDucDis_flow_Setfrom the minimumVActMin_flowto 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 closedyCooDam=0.-
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 snap-acting controlled dual-duct terminal unit with dual inlet airflow sensors 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 | samplePeriod | Sample period of component | |
| 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 |
Components
| 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 | |
| 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.PIDWithReset | conCooDam | Cooling damper position controller | |
| 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.Switch | cooDamPos | Output cooling damper position | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDis_flowNor | Normalized discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDisSet_flowNor | Normalized setpoint for discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer1 | Constant zero | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr2 | Check if it is heating state | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conOne1 | Constant one | |
| Buildings.Controls.OBC.CDL.Reals.Line | lin1 | Active airflow setpoint for heating | |
| 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 | swi1 | Airflow setpoint when it is in heating state | |
| Buildings.Controls.OBC.CDL.Logical.Or | or2 | Cooing or heating state | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | In deadband | |
| Buildings.Controls.OBC.CDL.Logical.FallingEdge | falEdg | Becoming heating or cooling state | |
| Buildings.Controls.OBC.CDL.Logical.And | and2 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | and3 | Logical and | |
| Buildings.Controls.OBC.CDL.Discrete.Sampler | samHea | Sample the heating loop output | |
| Buildings.Controls.OBC.CDL.Discrete.Sampler | samCoo | Sample the cooling loop output | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr4 | Check if it is cooling state | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr5 | Check if it is heating state | |
| Buildings.Controls.OBC.CDL.Logical.Latch | lat | Changing from cooling state to deadband | |
| Buildings.Controls.OBC.CDL.Logical.Latch | lat1 | Changing from heating state to deadband | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi2 | Cold duct airflow setpoint when it is in deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer2 | Constant zero | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi3 | Hot duct airflow setpoint when it is in deadband state | |
| Buildings.Controls.OBC.CDL.Reals.Switch | swi4 | Output active hot duct airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.PIDWithReset | conHeaDam | Heating damper position controller | |
| Buildings.Controls.OBC.CDL.Reals.Switch | heaDamPos | Output heating damper position | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDis_flowNor1 | Normalized discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Divide | VDisSet_flowNor1 | Normalized setpoint for discharge volume flow rate | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer3 | Constant zero | |
| Buildings.Controls.OBC.CDL.Logical.Not | not2 | Not proven on | |
| Buildings.Controls.OBC.CDL.Logical.Not | not3 | Not proven on | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul | Make sure heating damper is closed when it is in cooling state | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea | Ensure heating damper closed when it is in cooling state | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul1 | Make sure heating damper is closed when it is in cooling state | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea1 | Ensure cooling damper closed when it is in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul2 | Make sure cooling damper is closed when it is in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul3 | Make sure cooling damper is closed when it is in heating state | |
| Buildings.Controls.OBC.CDL.Reals.Add | add2 | Total discharge airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | heaMax1 | Heating maximum flow | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cooMax1 | Cooling 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.