Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.SetPoints.Validation
Collection of validation models
Information
This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.SetPoints.
Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.
Package Content
Name | Description |
---|---|
ZoneTemperatures | Validate block for zone set point |
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.SetPoints.Validation.ZoneTemperatures
Validate block for zone set point
Information
This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.SetPoints.ZoneTemperatures for a change of zone setpoint temperature.
Modelica definition
model ZoneTemperatures "Validate block for zone set point"
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.SetPoints.ZoneTemperatures
TZonSet(
final have_occSen=true,
final sinAdj=false,
final cooAdj=true,
final have_winSen=true,
final heaAdj=true) "Block that determines the thermal zone setpoints";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetOcc(
final k=297.15)
"Occupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetOcc(
final k=293.15)
"Occupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetUno(
final k=303.15)
"Unoccupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetUno(
final k=287.15)
"Unoccupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine cooSetAdj(
final freqHz=1/28800)
"Cooling setpoint adjustment";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine heaSetAdj(
final freqHz=1/28800,
final amplitude=0.5)
"Heating setpoint adjustment";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant cooDemLimLev(
final k=0)
"Cooling demand limit level";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant heaDemLimLev(
final k=0)
"Heating demand limit level";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram(
final duration=28800)
"Generate ramp output";
Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold greThr(
final t=0.75)
"Check if input is greater than 0.75";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
final integerTrue=1,
final integerFalse=7)
"Convert boolean input to integer output";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(
final period=14400,
final shift=1200)
"Generate signal indicating window status";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occSta(
final period=14400,
final width=0.95)
"Generate signal indicating occupancy status";
Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zerAdj(
final k=0)
"Zero adjustment";
Buildings.Controls.OBC.CDL.Logical.Switch swi1
"Switch to zero adjustment when window is open";
Buildings.Controls.OBC.CDL.Logical.Switch swi2
"Switch to zero adjustment when window is open";
equation
connect(ram.y, greThr.u);
connect(greThr.y, not1.u);
connect(not1.y, booToInt.u);
connect(TZonCooSetOcc.y, TZonSet.TZonCooSetOcc);
connect(TZonHeaSetOcc.y, TZonSet.TZonHeaSetOcc);
connect(TZonCooSetUno.y, TZonSet.TZonCooSetUno);
connect(TZonHeaSetUno.y, TZonSet.TZonHeaSetUno);
connect(cooDemLimLev.y, TZonSet.uCooDemLimLev);
connect(heaDemLimLev.y, TZonSet.uHeaDemLimLev);
connect(booToInt.y, TZonSet.uOpeMod);
connect(winSta.y, swi2.u2);
connect(winSta.y, swi1.u2);
connect(zerAdj.y, swi2.u1);
connect(zerAdj.y, swi1.u1);
connect(cooSetAdj.y, swi2.u3);
connect(heaSetAdj.y, swi1.u3);
connect(swi2.y, TZonSet.setAdj);
connect(swi1.y, TZonSet.heaSetAdj);
connect(occSta.y, TZonSet.uOccSen);
connect(winSta.y, TZonSet.uWinSta);
end ZoneTemperatures;