This package contains the validation model for the fan coil unit controller.
model Controller
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU(
cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased,
heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased,
have_winSen=false,
kHea=1,
cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSet_max=297.15,
TSupSet_min=285.15,
heaSpe_max=0.6,
heaSpe_min=0.2,
cooSpe_min=0.2,
have_locAdj=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU1(
cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased,
heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased,
have_winSen=true,
kCoo=1,
kHea=1,
cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=false,
TSupSet_max=297.15,
TSupSet_min=285.15,
heaSpe_max=0.6,
heaSpe_min=0.2,
cooSpe_min=0.2,
have_locAdj=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU2(
cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased,
heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased,
have_winSen=false,
kCoo=1,
kHea=1,
cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSet_max=297.15,
TSupSet_min=285.15,
heaSpe_max=0.6,
heaSpe_min=0.2,
cooSpe_min=0.2,
have_locAdj=false)
;
Buildings.Controls.OBC.ASHRAE.G36.FanCoilUnits.Controller conFCU3(
cooCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.CoolingCoil.WaterBased,
heaCoi=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased,
have_winSen=true,
kCoo=1,
kHea=1,
cooConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
heaConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.P,
have_occSen=true,
TSupSet_max=297.15,
TSupSet_min=285.15,
heaSpe_max=0.6,
heaSpe_min=0.2,
cooSpe_min=0.2,
have_locAdj=false)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccHeaSet(
k=293.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOccCooSet(
k=297.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoHeaSet(
k=285.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TUnoCooSet(
k=303.15)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TZon(
duration=86400,
height=6,
offset=273.15 + 16,
y(unit="K"))
;
Buildings.Controls.SetPoints.OccupancySchedule occSch(
occupancy=3600*{4,20})
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant nOcc(
k=2)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant win(
k=true)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TZon1(
duration=86400,
height=-3,
offset=273.15 + 26,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup(
height=2,
duration=86400,
offset=273.15 + 22.5,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup1(
height=-3,
duration=86400,
offset=273.15 + 24,
y(unit="K"))
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant demLim(
k=0)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant cooWarTim(
k=0)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant win1(
k=false)
;
equation
connect(TZon.y,conFCU. TZon);
connect(occSch.occupied,conFCU. u1Occ);
connect(occSch.tNexOcc,conFCU. tNexOcc);
connect(TSup.y,conFCU. TSup);
connect(win.y,conFCU1. u1Win);
connect(occSch.tNexOcc,conFCU1. tNexOcc);
connect(occSch.occupied,conFCU1. u1Occ);
connect(TZon1.y,conFCU1. TZon);
connect(TSup1.y,conFCU1. TSup);
connect(TSup1.y,conFCU2. TSup);
connect(occSch.occupied,conFCU2. u1Occ);
connect(occSch.tNexOcc,conFCU2. tNexOcc);
connect(TZon1.y,conFCU2. TZon);
connect(occSch.occupied,conFCU3. u1Occ);
connect(TSup1.y,conFCU3. TSup);
connect(TZon1.y,conFCU3. TZon);
connect(occSch.tNexOcc,conFCU3. tNexOcc);
connect(cooWarTim.y,conFCU. warUpTim);
connect(cooWarTim.y,conFCU. cooDowTim);
connect(cooWarTim.y,conFCU1. warUpTim);
connect(cooWarTim.y,conFCU1. cooDowTim);
connect(cooWarTim.y,conFCU2. warUpTim);
connect(cooWarTim.y,conFCU2. cooDowTim);
connect(cooWarTim.y,conFCU3. warUpTim);
connect(cooWarTim.y,conFCU3. cooDowTim);
connect(demLim.y,conFCU3. uHeaDemLimLev);
connect(demLim.y,conFCU3. uCooDemLimLev);
connect(demLim.y,conFCU2. uHeaDemLimLev);
connect(demLim.y,conFCU2. uCooDemLimLev);
connect(demLim.y,conFCU1. uHeaDemLimLev);
connect(demLim.y,conFCU1. uCooDemLimLev);
connect(demLim.y,conFCU. uCooDemLimLev);
connect(demLim.y,conFCU. uHeaDemLimLev);
connect(nOcc.y, conFCU.nOcc);
connect(nOcc.y, conFCU2.nOcc);
connect(TOccHeaSet.y, conFCU.TOccHeaSet);
connect(TOccCooSet.y, conFCU.TOccCooSet);
connect(TUnoHeaSet.y, conFCU.TUnoHeaSet);
connect(TUnoCooSet.y, conFCU.TUnoCooSet);
connect(TOccHeaSet.y, conFCU1.TOccHeaSet);
connect(TOccCooSet.y, conFCU1.TOccCooSet);
connect(TUnoHeaSet.y, conFCU1.TUnoHeaSet);
connect(TUnoCooSet.y, conFCU1.TUnoCooSet);
connect(TOccHeaSet.y, conFCU2.TOccHeaSet);
connect(TOccCooSet.y, conFCU2.TOccCooSet);
connect(TUnoHeaSet.y, conFCU2.TUnoHeaSet);
connect(TUnoCooSet.y, conFCU2.TUnoCooSet);
connect(TOccHeaSet.y, conFCU3.TOccHeaSet);
connect(TOccCooSet.y, conFCU3.TOccCooSet);
connect(TUnoHeaSet.y, conFCU3.TUnoHeaSet);
connect(TUnoCooSet.y, conFCU3.TUnoCooSet);
connect(conFCU1.y1Fan, conFCU1.u1Fan);
connect(conFCU2.y1Fan, conFCU2.u1Fan);
connect(conFCU3.y1Fan, conFCU3.u1Fan);
connect(conFCU.y1Fan, conFCU.u1Fan);
connect(nOcc.y, conFCU3.nOcc);
connect(win1.y, conFCU3.u1Win);
end Controller;