blockAlarms
Generate alarms of dual-duct terminal unit with cold-duct minimum control
Information
This block outputs alarms of dual-duct terminal unit with cold-duct minimum control. The implementation is according to the Section 5.14.6 of ASHRAE Guideline 36, May 2020. Note that the sequence uses two airflow sensors, one at each inlet.
Low airflow
-
If the zone is in occupied mode and after the AHU supply fan has been enabled for
staTim, if the measured airflow (VColDucDis_flowplusVHotDucDis_flow) is less than 70% of setpointVActSet_flowfor 5 minutes (lowFloTim) while the setpoint is greater than zero, generate a Level 3 alarm. -
If the zone is in occupied mode and after the AHU supply fan has been enabled for
staTim, if the measured airflow (VColDucDis_flowplusVHotDucDis_flow) is less than 50% of setpointVActSet_flowfor 5 minutes (lowFloTim) while the setpoint is greater than zero, generate a Level 2 alarm. -
If a zone has an importance multiplier (
staPreMul) of 0 for its static pressure reset Trim-Respond control loop, low airflow alarms shall be suppressed for that zone.
Airflow sensor calibration
-
If the cooling fan serving the zone has been OFF (
u1CooFan=false) for 10 minutes (fanOffTim), and the cold-duct airflow sensor readingVColDucDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flow, generate a Level 3 alarm. -
If the heating fan serving the zone has been OFF (
u1HeaFan=false) for 10 minutes (fanOffTim), and the hot-duct airflow sensor readingVHotDucDis_flowis above 10% of the heating maximum airflow setpointVHeaMax_flow, generate a Level 3 alarm.
Leaking damper
-
If the cooling damper position (
uCooDam) is 0% and airflow sensor readingVColDucDis_flowis above 10% of the cooling maximum airflow setpointVCooMax_flowfor 10 minutes (leaFloTim) while the fan serving the zone is proven on (u1CooFan=true), generate a Level 4 alarm. -
If the heating damper position (
uHeaDam) is 0% and airflow sensor readingVHotDucDis_flowis above 10% of the heating maximum airflow setpointVHeaMax_flowfor 10 minutes (leaFloTim) while the fan serving the zone is proven on (u1HeaFan=true), generate a Level 4 alarm.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | staPreMul | Importance multiplier for the zone static pressure reset control loop | |
| Real | VCooMax_flow | Design zone cooling maximum airflow rate | |
| Real | VHeaMax_flow | Design zone heating maximum airflow rate | |
| Real | lowFloTim | 300 | Threshold time to check low flow rate |
| Real | fanOffTim | 600 | Threshold time to check fan off |
| Real | leaFloTim | 600 | Threshold time to check damper leaking airflow |
| Advanced | |||
| Real | floHys | 0.05 | Near zero flow rate, below which the flow rate or difference will be seen as zero |
| Real | damPosHys | 0.05 | Near zero damper position, below which the damper will be seen as closed |
| Real | staTim | 1800 | Delay triggering alarms after enabling AHU supply fan |
Connectors
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Reals.Less | les | Check if measured airflow is less than threshold | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel | Check if the measured airflow has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr | Check if setpoint airflow is greater than zero | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre | Check if measured airflow is less than threshold | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai1 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel1 | Check if the measured airflow has been less than threshold value for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and2 | Measured airflow has been less than threshold value for sufficient time | |
| Buildings.Controls.OBC.CDL.Logical.And | and1 | Measured airflow has been less than threshold value for sufficient time | |
| Buildings.Controls.OBC.CDL.Integers.Switch | lowFloAla | Low airflow alarm | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | conInt | Level 2 alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | conInt1 | Importance multiplier for zone static pressure reset | |
| Buildings.Controls.OBC.CDL.Reals.GreaterThreshold | greThr1 | Check if the multiplier is greater than zero | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt1 | Suppress the alarm when multiplier is zero | |
| Buildings.Controls.OBC.CDL.Integers.Multiply | proInt | Low flow alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | and8 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not1 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes | Level 2 low airflow alarm | |
| Buildings.Controls.OBC.CDL.Logical.And | and4 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.Not | not2 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes1 | Level 3 low airflow alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | cooMaxFlo | Cooling maximum airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai2 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.Not | not3 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel2 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre1 | Check if measured airflow is greater than threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and5 | Check if the measured airflow is greater than the threshold and the supply fan is OFF | |
| Buildings.Controls.OBC.CDL.Logical.Not | not4 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes2 | Level 3 airflow sensor alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt2 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel3 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | cloDam | Check if damper position is near zero | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.Not | not5 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes3 | Level 4 leaking damper alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt3 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | heaMaxFlo | Heating maximum airflow setpoint | |
| Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter | gai3 | Percentage of the setpoint | |
| Buildings.Controls.OBC.CDL.Logical.Not | not6 | Logical not | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel4 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.Greater | gre2 | Check if measured airflow is greater than threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and6 | Check if the measured airflow is greater than the threshold and the supply fan is OFF | |
| Buildings.Controls.OBC.CDL.Logical.Not | not7 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes4 | Level 3 airflow sensor alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt4 | Convert boolean true to level 3 alarm | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel5 | Check if the input has been true for more than threshold time | |
| Buildings.Controls.OBC.CDL.Reals.LessThreshold | cloDam1 | Check if damper position is near zero | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla1 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.Not | not8 | Logical not | |
| Buildings.Controls.OBC.CDL.Utilities.Assert | assMes5 | Level 4 leaking damper alarm | |
| Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger | booToInt5 | Convert boolean true to level 4 alarm | |
| Buildings.Controls.OBC.CDL.Reals.Add | add2 | Total discharge airflow | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | truDel6 | Check if the active flow setpoint has been greater than zero for the threshold time | |
| Buildings.Controls.OBC.CDL.Logical.TrueDelay | fanIni | Check if the AHU supply fan has been enabled for threshold time | |
| Buildings.Controls.OBC.CDL.Logical.And | and11 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Logical.And | and10 | True: AHU fan is enabled and the discharge flow is lower than the threshold | |
| Buildings.Controls.OBC.CDL.Logical.Or | fanOn | Check if any AHU supply fan is enabled | |
| Buildings.Controls.OBC.CDL.Integers.Sources.Constant | occMod | Occupied mode | |
| Buildings.Controls.OBC.CDL.Integers.Equal | isOcc | Check if current operation mode is occupied mode | |
| Buildings.Controls.OBC.CDL.Logical.And | and3 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | and7 | Logical and | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla2 | Check if generating leak damper alarms | |
| Buildings.Controls.OBC.CDL.Logical.And | leaDamAla3 | Check if generating leak damper alarms |
Revisions
-
August 29, 2023, by Hongxiang Fu:
Because of the removal ofLogical.And3based on ASHRAE 231P, replaced it with a stack of twoLogical.Andblocks. This is for #2465. -
August 23, 2023, by Jianjun Hu:
Added delaystaTimto allow the system becoming stabilized. This is for issue 3257. -
August 1, 2020, by Jianjun Hu:
First implementation.