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 |
Controller
|
Validate model for controlling VAV terminal box with reheat |
ModeAndSetPoints
|
Validation models of reseting the zone setpoint temperature |
Validate model for controlling VAV terminal box with reheat
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller.
Modelica definition
model Controller
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Controller
con(
AFlo=50,
samplePeriod=120,
V_flow_nominal=(50*3/3600)*6)
;
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)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooCoo(k=273.15 + 24)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp disAirFlo(
offset=0.02,
height=0.0168,
duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon(
height=6,
offset=273.15 + 17,
duration=3600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TDis(
height=4,
duration=3600,
offset=273.15 + 18) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup(
height=4,
duration=3600,
offset=273.15 + 14) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSetRooHea(k=273.15 + 20)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ppmCO2(
duration=3600,
height=800,
offset=200) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta(period=3600)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp nOcc(
height=5,
duration=4800,
offset=0) ;
Buildings.Controls.OBC.CDL.Continuous.Round rou(n=0) ;
Buildings.Controls.OBC.CDL.Discrete.ZeroOrderHold zerOrdHol(
final samplePeriod=2) ;
Buildings.Controls.OBC.CDL.Discrete.ZeroOrderHold zerOrdHol1(
final samplePeriod=2) ;
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;
Validation models of reseting the zone setpoint temperature
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints.
Modelica definition
model ModeAndSetPoints
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi(
cooAdj=true, heaAdj=true) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi1(
have_occSen=true, have_winSen=true)
;
Buildings.Controls.SetPoints.OccupancySchedule occSch ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine heaSetAdj(
freqHz=1/28800,
amplitude=0.5) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine cooSetAdj(
freqHz=1/28800) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon1(
amplitude=5,
offset=18 + 273.15,
freqHz=1/86400) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TZon2(
offset=18 + 273.15,
freqHz=1/86400,
amplitude=7.5) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta1(k=false)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta2(k=true)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant occSen1(k=false)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant occSen2(k=true)
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi3(
have_occSen=true, have_winSen=true)
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.ModeAndSetPoints setPoi2(
cooAdj=true, heaAdj=true) ;
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;