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(
have_occSen=true,
sinAdj=false,
cooAdj=true,
have_winSen=true,
heaAdj=true) "Block that determines the thermal zone setpoints";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetOcc(k=297.15)
"Occupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetOcc(k=293.15)
"Occupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonCooSetUno(k=303.15)
"Unoccupied cooling setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TZonHeaSetUno(k=287.15)
"Unoccupied heating setpoint";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine cooSetAdj(freqHz=1/28800)
"Cooling setpoint adjustment";
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine heaSetAdj(freqHz=1/28800, amplitude=0.5)
"Heating setpoint adjustment";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant cooDemLimLev(k=0)
"Cooling demand limit level";
Buildings.Controls.OBC.CDL.Integers.Sources.Constant heaDemLimLev(k=0)
"Heating demand limit level";
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram(duration=28800)
"Generate ramp output";
Buildings.Controls.OBC.CDL.Continuous.GreaterThreshold greThr(threshold=0.75)
"Check if input is greater than 0.75";
Buildings.Controls.OBC.CDL.Conversions.BooleanToInteger booToInt(
integerTrue=1,
integerFalse=7)
"Convert boolean input to integer output";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(
period=14400,
startTime=1200)
"Generate signal indicating window status";
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse occSta(
period=14400,
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(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(occSta.y, TZonSet.uOccSen);
connect(winSta.y, TZonSet.uWinSta);
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);
end ZoneTemperatures;