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 |
|---|---|
| Freeze protection based on mixed air temperature | |
| Output control setpoints | |
| 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;