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.
Name |
Description |
Controller
|
Validation of the top-level controller |
CoolingCoil
|
Validation of cooling coil model |
ZoneState
|
Validation models of determining zone state |
model Controller
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV(
final have_winSen=false,
final kHea=1,
final yHeaMax=1,
final yMin=0.1,
final AFlo=50,
final controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final have_occSen=true,
final TSupSetMax=297.15,
final TSupSetMin=285.15,
final use_TMix=false,
final controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final kMod=1,
final VOutMin_flow=6e-3,
final VOutDes_flow=0.25) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV1(
final have_winSen=true,
final kCoo=1,
final kHea=1,
final yHeaMax=1,
final yMin=0.1,
final AFlo=50,
final controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final have_occSen=false,
final TSupSetMax=297.15,
final TSupSetMin=285.15,
final use_TMix=false,
final controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final kMod=1,
final VOutMin_flow=6e-3,
final VOutDes_flow=0.25) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV2(
final have_winSen=false,
final kCoo=1,
final kHea=1,
final yHeaMax=1,
final yMin=0.1,
final AFlo=50,
final controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final have_occSen=true,
final TSupSetMax=297.15,
final TSupSetMin=285.15,
final use_TMix=false,
final controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final kMod=1,
final VOutMin_flow=6e-3,
final VOutDes_flow=0.25) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV3(
final have_winSen=true,
final kCoo=1,
final kHea=1,
final yHeaMax=1,
final yMin=0.1,
final AFlo=50,
final controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final have_occSen=false,
final TSupSetMax=297.15,
final TSupSetMin=285.15,
final use_TMix=false,
final controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
final kMod=1,
final VOutMin_flow=6e-3,
final VOutDes_flow=0.25) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon(
final duration=86400,
final height=6,
final offset=273.15 + 16,
y(unit="K")) ;
Buildings.Controls.SetPoints.OccupancySchedule occSch(
final occupancy=3600*{4,20})
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TCut(
final k=289.15,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant nOcc(
final k=2)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant win(
final k=false)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut(
final k=290.15,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut1(
final k=301.15,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon1(
final duration=86400,
final height=-3,
final offset=273.15 + 26,
y(unit="K")) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut2(
final k=295.15,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut3(
final k=289.15,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup(
final height=2,
final duration=86400,
final offset=273.15 + 22.5,
y(unit="K")) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup1(
final height=-3,
final duration=86400,
final offset=273.15 + 24,
y(unit="K")) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant demLim(
final k=0)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant cooWarTim(
final k=0)
;
equation
connect(TZon.y, conVAV.TZon);
connect(occSch.occupied, conVAV.uOcc);
connect(occSch.tNexOcc, conVAV.tNexOcc);
connect(TCut.y, conVAV.TCut);
connect(nOcc.y, conVAV.nOcc);
connect(TOut.y, conVAV.TOut);
connect(TSup.y, conVAV.TSup);
connect(win.y, conVAV1.uWin);
connect(occSch.tNexOcc, conVAV1.tNexOcc);
connect(occSch.occupied, conVAV1.uOcc);
connect(TOut1.y, conVAV1.TOut);
connect(TZon1.y, conVAV1.TZon);
connect(TSup1.y, conVAV1.TSup);
connect(TCut.y, conVAV1.TCut);
connect(TSup1.y,conVAV2. TSup);
connect(occSch.occupied,conVAV2. uOcc);
connect(occSch.tNexOcc,conVAV2. tNexOcc);
connect(TCut.y,conVAV2. TCut);
connect(TZon1.y, conVAV2.TZon);
connect(TOut2.y, conVAV2.TOut);
connect(win.y, conVAV3.uWin);
connect(occSch.occupied, conVAV3.uOcc);
connect(TCut.y, conVAV3.TCut);
connect(TSup1.y, conVAV3.TSup);
connect(TZon1.y, conVAV3.TZon);
connect(occSch.tNexOcc, conVAV3.tNexOcc);
connect(TOut3.y, conVAV3.TOut);
connect(nOcc.y, conVAV2.nOcc);
connect(cooWarTim.y, conVAV.warUpTim);
connect(cooWarTim.y, conVAV.cooDowTim);
connect(cooWarTim.y, conVAV1.warUpTim);
connect(cooWarTim.y, conVAV1.cooDowTim);
connect(cooWarTim.y, conVAV2.warUpTim);
connect(cooWarTim.y, conVAV2.cooDowTim);
connect(cooWarTim.y, conVAV3.warUpTim);
connect(cooWarTim.y, conVAV3.cooDowTim);
connect(demLim.y, conVAV3.uHeaDemLimLev);
connect(demLim.y, conVAV3.uCooDemLimLev);
connect(demLim.y, conVAV2.uHeaDemLimLev);
connect(demLim.y, conVAV2.uCooDemLimLev);
connect(demLim.y, conVAV1.uHeaDemLimLev);
connect(demLim.y, conVAV1.uCooDemLimLev);
connect(demLim.y, conVAV.uCooDemLimLev);
connect(demLim.y, conVAV.uHeaDemLimLev);
end Controller;