Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic

Generic control sequences

Information

This package contains generic sequences that would be needed for both AHU and terminal units control.

Package Content

Name Description
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.FreezeProtectionMixedAir FreezeProtectionMixedAir Freeze protection based on mixed air temperature
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints SetPoints Output control setpoints
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.Validation Validation Collection of validation models

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.FreezeProtectionMixedAir Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.FreezeProtectionMixedAir

Freeze protection based on mixed air temperature

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.FreezeProtectionMixedAir

Information

Block that tracks the mixed air temperature TMix using a PI controller and outputs a freeze protection control signal yFrePro and its inverse yFreProInv.

Parameters

TypeNameDefaultDescription
SimpleControllercontrollerTypeBuildings.Controls.OBC.CDL.T...Type of controller
Realk0.1Gain [1/K]
TimeTi120Time constant of integrator block [s]
TimeTd0.1Time constant of derivative block [s]
TemperatureTFreSet279.15Lower limit for mixed air temperature for freeze protection [K]

Connectors

TypeNameDescription
input RealInputTMixMixed air temperature measurement [K]
output RealOutputyFreProFreeze protection control signal, 0 if no frost, 1 if TMix below TFreSet [1]
output RealOutputyFreProInvInverse freeze protection control signal, 1 if no frost, 0 if TMix below TFreSet [1]

Modelica definition

block FreezeProtectionMixedAir "Freeze protection based on mixed air temperature" parameter Buildings.Controls.OBC.CDL.Types.SimpleController controllerType= Buildings.Controls.OBC.CDL.Types.SimpleController.PI "Type of controller"; parameter Real k(final unit="1/K")=0.1 "Gain"; parameter Modelica.SIunits.Time Ti=120 "Time constant of integrator block"; parameter Modelica.SIunits.Time Td=0.1 "Time constant of derivative block"; parameter Modelica.SIunits.Temperature TFreSet = 279.15 "Lower limit for mixed air temperature for freeze protection"; Buildings.Controls.OBC.CDL.Interfaces.RealInput TMix( final unit="K", final quantity = "ThermodynamicTemperature") "Mixed air temperature measurement"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yFrePro( final unit="1", final min=0, final max=1) "Freeze protection control signal, 0 if no frost, 1 if TMix below TFreSet"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yFreProInv( final unit="1", final min=0, final max=1) "Inverse freeze protection control signal, 1 if no frost, 0 if TMix below TFreSet"; Buildings.Controls.OBC.CDL.Continuous.LimPID con( final controllerType=controllerType, final k=k, final Ti=Ti, final Td=Td, final yMax=1, final yMin=0) "Controller for mixed air to track freeze protection set point"; protected Buildings.Controls.OBC.CDL.Continuous.Sources.Constant setPoi(final k=TFreSet) "Set point for freeze protection"; Buildings.Controls.OBC.CDL.Continuous.AddParameter yOut(final p=1, final k=-1) "Freeze protection control signal inverter"; equation connect(con.u_s, setPoi.y); connect(yOut.y, yFreProInv); connect(TMix, con.u_m); connect(con.y, yFrePro); connect(con.y, yOut.u); end FreezeProtectionMixedAir;