Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.

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.TerminalUnits.Validation.Controller Controller Validate model for controlling VAV terminal box with reheat
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.ModeAndSetPoints ModeAndSetPoints Validation models of reseting the zone setpoint temperature

Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.Controller Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.Controller

Validate model for controlling VAV terminal box with reheat

Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.Controller

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller.

Modelica definition

model Controller "Validate model for controlling VAV terminal box with reheat" Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller con( AFlo=50, samplePeriod=120, V_flow_nominal=(50*3/3600)*6) "Controller for VAV terminal unit with reheat"; Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller con1( AFlo=50, samplePeriod=120, V_flow_nominal=(50*3/3600)*6, have_occSen=true, have_winSen=true, have_CO2Sen=true) "Controller for VAV terminal unit with reheat"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooCoo(k=273.15 + 24) "Room cooling setpoint "; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirFlo( offset=0.02, height=0.0168, duration=3600) "Discharge airflow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon( height=6, offset=273.15 + 17, duration=3600) "Measured room temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TDis( height=4, duration=3600, offset=273.15 + 18) "Terminal unit discharge air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup( height=4, duration=3600, offset=273.15 + 14) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod( final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "AHU operation mode is Occupied"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooHea(k=273.15 + 20) "Room heating setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ppmCO2( duration=3600, height=800, offset=200) "CO2 concentration"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(period=3600) "WIndow status"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp nOcc( height=5, duration=4800, offset=0) "Number of occupants"; Buildings.Controls.OBC.CDL.Continuous.Round rou(n=0) "Round the input"; Buildings.Controls.OBC.CDL.Discrete.ZeroOrderHold zerOrdHol( final samplePeriod=2) "Mimic damper position"; Buildings.Controls.OBC.CDL.Discrete.ZeroOrderHold zerOrdHol1( final samplePeriod=2) "Mimic damper position"; equation connect(TSetRooHea.y,con.TZonHeaSet); connect(TSetRooCoo.y, con.TZonCooSet); connect(disAirFlo.y, con.VDis_flow); connect(TZon.y, con.TZon); connect(TDis.y, con.TDis); connect(TSup.y, con.TSupAHU); connect(opeMod.y, con.uOpeMod); connect(nOcc.y, rou.u); connect(rou.y, con1.nOcc); connect(ppmCO2.y, con1.ppmCO2); connect(winSta.y, con1.uWin); connect(TSetRooHea.y,con1.TZonHeaSet); connect(TSetRooCoo.y, con1.TZonCooSet); connect(disAirFlo.y, con1.VDis_flow); connect(TZon.y, con1.TZon); connect(TDis.y, con1.TDis); connect(TSup.y, con1.TSupAHU); connect(opeMod.y, con1.uOpeMod); connect(con.yDam, zerOrdHol.u); connect(con1.yDam, zerOrdHol1.u); connect(zerOrdHol.y,con.yDam_actual); connect(zerOrdHol1.y,con1.yDam_actual); end Controller;

Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.ModeAndSetPoints Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.ModeAndSetPoints

Validation models of reseting the zone setpoint temperature

Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Validation.ModeAndSetPoints

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints.

Modelica definition

model ModeAndSetPoints "Validation models of reseting the zone setpoint temperature" Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi( cooAdj=true, heaAdj=true) "Output resetted zone setpoint remperature"; Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi1( have_occSen=true, have_winSen=true) "Output resetted zone setpoint remperature"; Buildings.Controls.SetPoints.OccupancySchedule occSch "Occupancy schedule"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine heaSetAdj( freqHz=1/28800, amplitude=0.5) "Heating setpoint adjustment"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine cooSetAdj( freqHz=1/28800) "Cooling setpoint adjustment"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon1( amplitude=5, offset=18 + 273.15, freqHz=1/86400) "Zone 1 temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon2( offset=18 + 273.15, freqHz=1/86400, amplitude=7.5) "Zone 2 temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta1(k=false) "Window status"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta2(k=true) "Window status"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant occSen1(k=false) "Occupancy sensor"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant occSen2(k=true) "Occupancy sensor"; Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi3( have_occSen=true, have_winSen=true) "Output resetted zone setpoint remperature"; Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi2( cooAdj=true, heaAdj=true) "Output resetted zone setpoint remperature"; equation connect(cooSetAdj.y, setPoi.setAdj); connect(heaSetAdj.y, setPoi.heaSetAdj); connect(occSen2.y, setPoi3.uOccSen); connect(winSta2.y, setPoi3.uWinSta); connect(setPoi3.TZon, TZon2.y); connect(setPoi2.TZon, TZon2.y); connect(cooSetAdj.y, setPoi2.setAdj); connect(heaSetAdj.y, setPoi2.heaSetAdj); connect(TZon1.y, setPoi.TZon); connect(setPoi1.TZon, setPoi.TZon); connect(occSch.tNexOcc, setPoi.tNexOcc); connect(occSch.tNexOcc, setPoi1.tNexOcc); connect(setPoi2.tNexOcc, setPoi1.tNexOcc); connect(setPoi3.tNexOcc, setPoi1.tNexOcc); connect(occSch.occupied, setPoi.uOcc); connect(occSch.occupied, setPoi1.uOcc); connect(occSch.occupied, setPoi2.uOcc); connect(occSch.occupied, setPoi3.uOcc); connect(occSen1.y, setPoi1.uOccSen); connect(winSta1.y, setPoi1.uWinSta); end ModeAndSetPoints;