Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.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
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.OperationMode OperationMode Validate block OperationModeSelector
Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.TrimAndRespond TrimAndRespond Model validates the trim and respond block

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.OperationMode Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.OperationMode

Validate block OperationModeSelector

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.OperationMode

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.OperationMode for a change of zone temperature and occupancy schedule.

Modelica definition

model OperationMode "Validate block OperationModeSelector" Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.OperationMode opeModSel(numZon=1) "Block that outputs the operation mode"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ramp1( offset=0, height=6.2831852, duration=24*3600) "Block that generates ramp signal"; Buildings.Controls.OBC.CDL.Continuous.Sin sin1 "Block that outputs the sine of the input"; Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar( p=22.5, k=12.5); Buildings.Controls.OBC.CDL.Continuous.Sources.Constant unoHeaSet( k=12) "Unoccupied heating setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant unoCooSet( k=30) "Unoccupied cooling setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant occHeaSet( k=20) "Occupied heating setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant occCooSet( k=24) "Occupied cooling setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant warUpTim(k= 1800) "Warm-up time"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant cooDowTim( k=1800) "Cooling down time"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant uWinSta(k=false) "Window on/off status"; Buildings.Controls.SetPoints.OccupancySchedule occSch "Occupancy schedule"; equation connect(ramp1.y, sin1.u); connect(sin1.y, addPar.u); connect(addPar.y, opeModSel.TZon[1]); connect(occHeaSet.y, opeModSel.THeaSet); connect(occCooSet.y, opeModSel.TCooSet); connect(unoHeaSet.y, opeModSel.TUnoHeaSet); connect(unoCooSet.y, opeModSel.TUnoCooSet); connect(warUpTim.y, opeModSel.warUpTim[1]); connect(cooDowTim.y, opeModSel.cooDowTim[1]); connect(uWinSta.y, opeModSel.uWinSta[1]); connect(occSch.tNexOcc, opeModSel.tNexOcc); connect(occSch.occupied, opeModSel.uOcc); end OperationMode;

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.TrimAndRespond Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.TrimAndRespond

Model validates the trim and respond block

Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.Validation.TrimAndRespond

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.TrimAndRespond.

Modelica definition

model TrimAndRespond "Model validates the trim and respond block" Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.TrimAndRespond trimRespondLogic( iniSet=120, minSet=37, maxSet=370, delTim=300, samplePeriod=120, numIgnReq=2, triAmo=-10, resAmo=15, maxRes=37) "Block implementing trim and respond logic"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con( k=true) "Logic true indicating device ON"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine( amplitude=6, freqHz=1/5400) "Block generates sine signal"; Buildings.Controls.OBC.CDL.Continuous.Abs abs "Block generates absolute value of input"; Buildings.Controls.OBC.ASHRAE.G36_PR1.Generic.SetPoints.TrimAndRespond trimRespondLogic1( iniSet=120, minSet=37, maxSet=370, delTim=300, samplePeriod=120, numIgnReq=2, triAmo=-10, resAmo=15, maxRes=37) "Block implementing trim and respond logic"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine1( amplitude=6, freqHz=1/5400) "Block generates sine signal"; Buildings.Controls.OBC.CDL.Continuous.Abs abs1 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( period=3600, width=0.18333333) "Generate pulse signal of type Boolean"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Switch swi "Switch between two Real signals"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con1(k=0) "Zero request when device is OFF"; Buildings.Controls.OBC.CDL.Continuous.Round round2(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Round round1(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; equation connect(con.y, trimRespondLogic.uDevSta); connect(sine.y, abs.u); connect(not1.y, trimRespondLogic1.uDevSta); connect(con1.y, swi.u1); connect(sine1.y, swi.u3); connect(swi.y, abs1.u); connect(booPul.y, swi.u2); connect(booPul.y, not1.u); connect(abs.y, round2.u); connect(round2.y, reaToInt1.u); connect(reaToInt1.y, trimRespondLogic.numOfReq); connect(abs1.y, round1.u); connect(round1.y, reaToInt2.u); connect(reaToInt2.y, trimRespondLogic1.numOfReq); end TrimAndRespond;