blockDampersSingleSensors
Output signals for controlling dampers of snap-acting controlled dual-duct terminal unit with single discharge airflow sensors
Information
This sequence sets the dampers for snap-acting controlled dual-duct terminal unit with single discharge airflow sensors. The implementation is according to Section 5.11.5.2 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 discharge airflow setpointVDis_flow_Setfrom the minimumVActMin_flowto cooling maximum setpointVActCooMax_flow. The cooling damper shall be modulated by a control loop to maintain the measured discharge aiflowVDis_flowat setpoint. The heating damper shall be closedyHeaDam=0. -
When the zone state is deadband (
uCoo=0anduHea=0), the discharge airflow set pointVDis_flow_Setshall be the zone minimumVActMin_flow, maintained by the damper that was operative just before entering deadband. The other damper shall remain closed. In other words, when going from cooling to deadband, the cooling damper shall maintain the discharge airflow at the zone minimum set point, and the heating damper shall be closed. When going from heating to deadband, the heating damper shall maintain the discharge airflow at the zone minimum set point, and the cooling damper shall be closed. -
When the zone state is heating (
uHea > 0), then the heating loop outputuHeashall reset the discharge airflow setpointVDis_flow_Setfrom the minimumVActMin_flowto heating maximum setpointVActHeaMax_flow. The heating damper shall be modulated by a control loop to maintain the measured discharge aiflowVDis_flowat setpoint. The cooling damper shall be closedyCooDam=0. -
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 single discharge 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 | 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 | VActMin_flow | Active minimum airflow rate | |
| 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 | VDis_flow | Measured discharge airflow rate airflow rate | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanInput | u1CooAHU | Cooling air handler status | |
| 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.BooleanOutput | y1CooDam | Cooling damper command open | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yCooDam | Cold duct damper commanded position | |
| Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput | y1HeaDam | Heating damper command open | |
| Buildings.Controls.OBC.CDL.Interfaces.RealOutput | yHeaDam | Hot duct damper commanded position | |
| 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.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.Switch | damPos | Output 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.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 | cooFloSet | Flow setpoint when it is in cooling state | |
| Buildings.Controls.OBC.CDL.Reals.Switch | heaFloSet | Flow setpoint when it is in heating state | |
| Buildings.Controls.OBC.CDL.Logical.Or | or1 | Check if any air handler is proven on | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conZer3 | Constant zero | |
| Buildings.Controls.OBC.CDL.Logical.Or | or3 | Check if it is in cooling state or in deadband that switched from cooling state | |
| Buildings.Controls.OBC.CDL.Reals.Switch | cooDamPos | Cooling damper position | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea | Ensure cooling damper closed when the cooling air handler is not proven on | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul1 | Make sure cooling damper is closed when the cooling air handler is not proven on | |
| Buildings.Controls.OBC.CDL.Logical.Or | or4 | Check if it is in heating state or in deadband that switched from heating state | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToReal | booToRea1 | Ensure heating damper closed when the heating air handler is not proven on | |
| Buildings.Controls.OBC.CDL.Reals.Multiply | mul2 | Make sure heating damper is closed when the heating air handler is not proven on | |
| Buildings.Controls.OBC.CDL.Reals.Switch | heaDamPos | Heating damper position | |
| Buildings.Controls.OBC.CDL.Logical.And | and1 | Check if cooling damper is opening | |
| Buildings.Controls.OBC.CDL.Logical.And | and4 | Check if heating damper is opening | |
| 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.