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.
Extends from Modelica.Icons.Package (Icon for standard packages).
Package Content
Name | Description |
---|---|
FreezeProtectionMixedAir | Freeze protection based on mixed air temperature |
SetPoints | 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;