Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.
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
|
Validation of the top-level controller |
CoolingCoil
|
Validation of cooling coil model |
ZoneState
|
Validation models of determining zone state |
Validation of the top-level controller
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Controller.
Modelica definition
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) ;
Buildings.Controls.SetPoints.OccupancySchedule occSch(
final occupancy=3600*{4,20})
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TCut(
final k=289.15)
;
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)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut1(
final k=301.15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon1(
final duration=86400,
final height=-3,
final offset=273.15 + 26) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut2(
final k=295.15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOut3(
final k=289.15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup(
final height=2,
final duration=86400,
final offset=273.15 + 22.5) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup1(
final height=-3,
final duration=86400,
final offset=273.15 + 24) ;
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;
Validation of cooling coil model
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.CoolingCoil.
Modelica definition
model CoolingCoil
final parameter Real TSupSet(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=291.15
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.CoolingCoil cooCoi(
controllerTypeCooCoi=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
kCooCoi=1)
;
CDL.Continuous.Sources.Ramp TSup(
final height=4,
final offset=TSupSet - 2,
final duration=3600*8)
;
CDL.Continuous.Sources.Constant TSupSetSig(
final k=TSupSet)
;
CDL.Logical.Sources.Constant fanStatus(k=true)
;
CDL.Continuous.Sources.Pulse zonSta(
offset=2,
period=3600*2)
;
CDL.Conversions.RealToInteger reaToInt
;
equation
connect(TSup.y, cooCoi.TSup);
connect(TSupSetSig.y, cooCoi.TSupCoo);
connect(fanStatus.y, cooCoi.uSupFan);
connect(zonSta.y, reaToInt.u);
connect(reaToInt.y, cooCoi.uZonSta);
end CoolingCoil;
Validation models of determining zone state
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.ZoneState.
Modelica definition
model ZoneState
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.ZoneState zonSta
;
CDL.Continuous.Sources.TimeTable uHeaCoo(
table=[
0,0,0;
1,0,1;
2,1,0],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments,
extrapolation=Buildings.Controls.OBC.CDL.Types.Extrapolation.HoldLastPoint)
;
equation
connect(zonSta.uHea, uHeaCoo.y[1]);
connect(zonSta.uCoo, uHeaCoo.y[2]);
end ZoneState;