blockController

Fan coil unit controller that comprises subsequences for controlling fan speed and supply air temperature

Information

Block for fan coil unit control. It outputs supply fan enable signal and speed signal, the supply air temperature setpoint, the zone air heating and cooling setpoints, and commanded valve positions for heating and cooling coils.

It is implemented according to the ASHRAE Guideline 36-2021, Part 5.22.

The sequences consist of the following subsequences.

Supply fan control

The supply fan control is implemented according to Part 5.22.4. It outputs the control signals for supply fan enable yFan and the fan speed yFanSpe. See Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeed for a detailed description.

Supply air temperature setpoint

The supply air temperature setpoint control sequences are implemented based on Part 5.22.4. The block outputs a supply air temperature setpoint signal TSupSet, and control signals for the heating coil yHeaCoi and the cooling coil yCooCoi. See Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperature for a detailed description.

Zone air heating and cooling setpoints

The zone air heating setpoint TZonHeaSetand cooling setpoint TZonHeaSet as well as system operation mode signal modSetPoi.yOpeMod are described at Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.ModeAndSetPoints.

Plant requests

The plant requests are implemented based on Part 5.22.8. The block outputs a chilled water plant request yChiPlaReq, chilled water supply temperature reset request yChiWatResReq, hot water plant request yHotWatPlaReq and hot water supply temperature reset request yHotWatResReq. See Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequests for a detailed description.

Parameters

TypeNameDefaultDescription
Booleanhave_winSenfalseTrue if the zone has window status sensor
Booleanhave_occSenfalseTrue if the zone has occupancy sensor
RealheaDea0.1Heating loop signal limit above which controller operation changes from deadband mode to heating mode
RealcooDea0.1Cooling loop signal limit above which controller operation changes from deadband mode to cooling mode
System and building parameters
Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoilcooCoiBuildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBasedCooling coil type
Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoilheaCoiBuildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBasedHeating coil type
PID parameters › Cooling loop control
Buildings.Controls.OBC.CDL.Types.SimpleControllercooConTypBuildings.Controls.OBC.CDL.Types.SimpleController.PIType of cooling loop signal controller
RealkCoo0.1Gain for cooling control loop signal
RealTiCoo900Time constant of integrator block for cooling control loop signal
RealTdCoo0.1Time constant of derivative block for cooling control loop signal
PID parameters › Heating loop control
Buildings.Controls.OBC.CDL.Types.SimpleControllerheaConTypBuildings.Controls.OBC.CDL.Types.SimpleController.PIType of heating loop signal controller
RealkHea0.1Gain for heating control loop signal
RealTiHea900Time constant of integrator block for heating control loop signal
RealTdHea0.1Time constant of derivative block for heating control loop signal
PID parameters › Cooling coil control
Buildings.Controls.OBC.CDL.Types.SimpleControllercooCoiConTypBuildings.Controls.OBC.CDL.Types.SimpleController.PIType of cooling coil controller
RealkCooCoi0.1Gain for cooling coil control signal
RealTiCooCoi900Time constant of integrator block for cooling coil control signal
RealTdCooCoi0.1Time constant of derivative block for cooling coil control signal
PID parameters › Heating coil control
Buildings.Controls.OBC.CDL.Types.SimpleControllerheaCoiConTypBuildings.Controls.OBC.CDL.Types.SimpleController.PIType of heating coil controller
RealkHeaCoi0.1Gain for heating coil control signal
RealTiHeaCoi900Time constant of integrator block for heating coil control signal
RealTdHeaCoi0.1Time constant of derivative block for heatinging coil control signal
Supply air setpoints
RealuCooFan_min0.5Cooling loop signal limit at which supply air temperature is at minimum and fan speed starts to be modified
RealuHeaFan_min0.5Heating loop signal limit at which supply air temperature is at maximum and fan speed starts to be modified
Supply air setpoints › Temperature limits
RealTSupSet_maxMaximum supply air temperature for heating
RealTSupSet_minMinimum supply air temperature for cooling
Supply air setpoints › Fan speed
RealdeaSpe0.1Deadband mode fan speed
Supply air setpoints › Fan speed - Heating
RealuHeaFan_max1Maximum heating loop signal at which fan speed is modified
RealheaSpe_max1Maximum fan speed for heating
RealheaSpe_min0.1Minimum fan speed for heating
Supply air setpoints › Fan speed - Cooling
RealuCooFan_max1Maximum cooling loop signal at which fan speed is modified
RealcooSpe_max1Maximum fan speed for cooling
RealcooSpe_min0.1Minimum fan speed for cooling
Adjust temperature setpoint › General
Booleanhave_locAdjtrueFlag, set to true if both cooling and heating setpoint are adjustable through a single common knob
BooleansepAdjfalseTrue: cooling and heating setpoint can be adjusted separately
BooleanignDemLimfalseFlag, set to true to exempt individual zone from demand limit setpoint adjustment
Adjust temperature setpoint › Advanced
RealbouLim1Threshold of temperature difference for indicating the end of setback or setup mode
Adjust temperature setpoint › Limits
RealTActCoo_max300.15Maximum cooling setpoint during on
RealTActCoo_min295.15Minimum cooling setpoint during on
RealTActHea_max295.15Maximum heating setpoint during on
RealTActHea_min291.15Minimum heating setpoint during on
RealTWinOpeCooSet322.15Cooling setpoint when window is open
RealTWinOpeHeaSet277.15Heating setpoint when window is open
Adjust temperature setpoint › Demand control adjustment
RealincTSetDem_10.56Cooling setpoint increase value (degK) when cooling demand limit level 1 is imposed
RealincTSetDem_21.1Cooling setpoint increase value (degK) when cooling demand limit level 2 is imposed
RealincTSetDem_32.2Cooling setpoint increase value (degK) when cooling demand limit level 3 is imposed
RealdecTSetDem_10.56Heating setpoint decrease value (degK) when heating demand limit level 1 is imposed
RealdecTSetDem_21.1Heating setpoint decrease value (degK) when heating demand limit level 2 is imposed
RealdecTSetDem_32.2Heating setpoint decrease value (degK) when heating demand limit level 3 is imposed
Request limits › Chilled water plant requests
RealchiWatPlaReqLim00.1Valve position limit below which zero chilled water plant requests are sent when one request was previously being sent
RealchiWatPlaReqLim10.95Valve position limit above which one chilled water plant request is sent
Request limits › Chilled water temperature reset requests
RealchiWatResReqLim00.85Valve position limit below which zero chilled water reset requests are sent when one request was previously being sent
RealchiWatResReqLim22.78Temperature difference limit between setpoint and supply air temperature above which two chilled water reset requests are sent
RealchiWatResReqTimLim2300Time period for which chiWatResReqLim2 has to be exceeded before two chilled water reset requests are sent
RealchiWatResReqLim35.56Temperature difference limit between setpoint and supply air temperature above which three chilled water reset requests are sent
RealchiWatResReqTimLim3300Time period for which chiWatResReqLim3 has to be exceeded before three chilled water reset requests are sent
Request limits › Hot water requests
RealhotWatPlaReqLim00.1Valve position limit below which zero hot water plant requests are sent when one request was previously being sent
RealhotWatResReqLim00.85Valve position limit below which zero hot water reset requests are sent when one request was previously being sent
RealhotWatPlaReqLim10.95Valve position limit above which one hot water plant request is sent
RealhotWatResReqLim28Temperature difference limit between setpoint and supply air temperature above which two hot water reset requests are sent
RealhotWatResReqTimLim2300Time period for which hotWatResReqLim2 has to be exceeded before two hot water reset requests are sent
RealhotWatResReqLim317Temperature difference limit between setpoint and supply air temperature above which three hot water reset requests are sent
RealhotWatResReqTimLim3300Time period for which hotWatResReqLim3 has to be exceeded before three hot water reset requests are sent
Advanced
RealuLow-0.1Lower limit of the hysteresis for checking temperature difference
RealuHigh0.1Higher limit of the hysteresis for checking temperature difference
RealdeaHysLim0.05Hysteresis limits for cooling and heating loop signals for deadband mode transitions
RealTHys0.1Hysteresis for checking temperature difference
RealdFanSpe0.05Fan speed hysteresis difference
Advanced › Operation mode
RealpreWarCooTim10800Maximum cool-down or warm-up time

Connectors

TypeNameDefaultDescription
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1OccCurrent occupancy period, true if it is in occupant period
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1WinWindow status, normally closed (true), when windows open, it becomes false
Buildings.Controls.OBC.CDL.Interfaces.BooleanInputu1FanFan proven on signal
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputuCooDemLimLevCooling demand limit level
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputuHeaDemLimLevHeating demand limit level
Buildings.Controls.OBC.CDL.Interfaces.IntegerInputnOccNumber of occupants
Buildings.Controls.OBC.CDL.Interfaces.RealInputwarUpTimWarm-up time retrieved from optimal warm-up block
Buildings.Controls.OBC.CDL.Interfaces.RealInputcooDowTimCool-down time retrieved from optimal cool-down block
Buildings.Controls.OBC.CDL.Interfaces.RealInputtNexOccTime to next occupied period
Buildings.Controls.OBC.CDL.Interfaces.RealInputTZonMeasured zone temperatures
Buildings.Controls.OBC.CDL.Interfaces.RealInputTSupMeasured supply air temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputsetAdjSetpoint adjustment value
Buildings.Controls.OBC.CDL.Interfaces.RealInputcooSetAdjCooling setpoint adjustment value
Buildings.Controls.OBC.CDL.Interfaces.RealInputheaSetAdjHeating setpoint adjustment value
Buildings.Controls.OBC.CDL.Interfaces.RealInputTOccHeaSetOccupied heating setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTOccCooSetOccupied cooling setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTUnoHeaSetUnoccupied heating setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.RealInputTUnoCooSetUnoccupied cooling setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutputy1FanFan command on status
Buildings.Controls.OBC.CDL.Interfaces.IntegerOutputyChiWatResReqChilled water reset request
Buildings.Controls.OBC.CDL.Interfaces.IntegerOutputyChiPlaReqChiller plant requests
Buildings.Controls.OBC.CDL.Interfaces.IntegerOutputyHotWatResReqHot water reset requests
Buildings.Controls.OBC.CDL.Interfaces.IntegerOutputyHotWatPlaReqHot water plant requests
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTSupSetSupply air temperature setpoint
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyFanFan command speed
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTZonHeaSetHeating setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.RealOutputTZonCooSetCooling setpoint temperature
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyCooCoiCooling coil control signal
Buildings.Controls.OBC.CDL.Interfaces.RealOutputyHeaCoiHeating coil control signal

Components

TypeNameDefaultDescription
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.ModeAndSetPointsmodSetPoiZone setpoint and operation mode
Buildings.Controls.OBC.CDL.Reals.PIDWithResetcooPIZone cooling control signal
Buildings.Controls.OBC.CDL.Reals.PIDWithResetheaPIZone heating control signal
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.PlantRequestsfcuPlaReqBlock for generating chilled water requests and hot water requests for their respective plants
Buildings.Controls.OBC.CDL.Integers.Sources.ConstantunOccModUnoccupied mode
Buildings.Controls.OBC.CDL.Integers.EqualisUnOccCheck if current operation mode is unoccupied mode
Buildings.Controls.OBC.CDL.Logical.NotisOccIf in unoccupied mode, switch off
Buildings.Controls.OBC.CDL.Integers.GreaterEqualThresholdhavOccCheck if there is occupant
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.SupplyAirTemperatureTSupAirSupply air temperature setpoint controller
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Subsequences.FanSpeedfanSpeFan speed controller

Revisions

  • November 20, 2025, by Karthik Devaprasad:
    Added error scaling factors to PI blocks for heating and cooling loop signal generation.
  • March 22, 2022, by Karthik Devaprasad:
    First implementation.