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(
kHea=1,
yHeaMax=1,
yMin=0.1,
AFlo=50,
controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSetMax=297.15,
TSupSetMin=285.15,
use_TMix=false,
controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
kMod=1,
VOutMin_flow=6e-3,
VOutDes_flow=0.25) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon(
duration=86400,
height=6,
offset=273.15 + 16) ;
Buildings.Controls.SetPoints.OccupancySchedule occSch(occupancy=3600*{4,20})
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TCut(
final k=273.15
+ 16) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant nOcc(
final k=2)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant win(k=false)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut(
final k=273.15 +
17) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV1(
kCoo=1,
kHea=1,
yHeaMax=1,
yMin=0.1,
AFlo=50,
controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSetMax=297.15,
TSupSetMin=285.15,
use_TMix=false,
controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
kMod=1,
VOutMin_flow=6e-3,
VOutDes_flow=0.25) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut1(
final k=273.15
+ 28) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon1(
duration=86400,
height=-3,
offset=273.15 + 26) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV2(
kCoo=1,
kHea=1,
yHeaMax=1,
yMin=0.1,
AFlo=50,
controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSetMax=297.15,
TSupSetMin=285.15,
use_TMix=false,
controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
kMod=1,
VOutMin_flow=6e-3,
VOutDes_flow=0.25) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut2(
final k=273.15 + 22) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller conVAV3(
kCoo=1,
kHea=1,
yHeaMax=1,
yMin=0.1,
AFlo=50,
controllerTypeCoo=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
controllerTypeHea=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSetMax=297.15,
TSupSetMin=285.15,
use_TMix=false,
controllerTypeMod=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
kMod=1,
VOutMin_flow=6e-3,
VOutDes_flow=0.25) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut3(
final k=273.15 + 16)
;
protected
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup(
height=2,
duration=86400,
offset=273.15 + 22.5) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup1(
height=-3,
duration=86400,
offset=273.15 + 24) ;
equation
connect(TZon.y, conVAV.TZon);
connect(occSch.occupied, conVAV.uOcc);
connect(occSch.tNexOcc, conVAV.tNexOcc);
connect(TCut.y, conVAV.TCut);
connect(win.y, conVAV.uWin);
connect(nOcc.y, conVAV.nOcc);
connect(TOut.y, conVAV.TOut);
connect(TSup.y, conVAV.TSup);
connect(win.y, conVAV1.uWin);
connect(nOcc.y, conVAV1.nOcc);
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(win.y,conVAV2. uWin);
connect(TSup1.y,conVAV2. TSup);
connect(occSch.occupied,conVAV2. uOcc);
connect(occSch.tNexOcc,conVAV2. tNexOcc);
connect(TCut.y,conVAV2. TCut);
connect(nOcc.y,conVAV2. nOcc);
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(nOcc.y, conVAV3.nOcc);
connect(TZon1.y, conVAV3.TZon);
connect(occSch.tNexOcc, conVAV3.tNexOcc);
connect(TOut3.y, conVAV3.TOut);
end Controller;