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 |
---|---|
FreezeProtectionMixedAir | Freeze protection based on mixed air temperature |
SetPoints | Package with sequences that output control setpoints |
Validation | Collection of validation models |
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.FreezeProtectionMixedAir
Freeze protection based on mixed air temperature
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
Type | Name | Default | Description |
---|---|---|---|
SimpleController | controllerType | Buildings.Controls.OBC.CDL.T... | Type of controller |
Real | k | 0.1 | Gain [1/K] |
Time | Ti | 120 | Time constant of integrator block [s] |
Time | Td | 0.1 | Time constant of derivative block [s] |
Temperature | TFreSet | 279.15 | Lower limit for mixed air temperature for freeze protection [K] |
Connectors
Type | Name | Description |
---|---|---|
input RealInput | TMix | Mixed air temperature measurement [K] |
output RealOutput | yFrePro | Freeze protection control signal, 0 if no frost, 1 if TMix below TFreSet [1] |
output RealOutput | yFreProInv | Inverse 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;