This package contains validation models.
model VariableSpeedWithHeatPumps
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriHdrHea(
have_heaWat=true,
have_chiWat=false,
nHp=2,
nPhp=0,
have_pumPriCtlDp=false,
have_pumPriHdr=true,
nPumHeaWatPri=2,
nPumChiWatPri=0,
yPumHeaWatPriHdrSet=1,
yPumHeaWatPriDedHpSet=0.8)
;
Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable u1(
table=[
0, 0, 0;
0.1, 1, 0;
0.5, 1, 1;
1, 1, 1;
1.5, 1, 1;
2, 0, 1;
2.5, 0, 0;
3, 0, 0],
timeScale=800,
period=3500)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriHdr(
have_heaWat=true,
have_chiWat=true,
nHp=2,
nPhp=0,
have_pumPriCtlDp=false,
have_pumPriHdr=true,
yPumHeaWatPriHdrSet=1,
yPumChiWatPriHdrSet=1,
yPumHeaWatPriDedHpSet=0.8,
yPumChiWatPriDedHpSet=0.9,
nPumHeaWatPri=2,
nPumChiWatPri=2)
;
Buildings.Controls.OBC.CDL.Logical.Not u1Coo[2]
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriDedCom(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=false,
have_pumChiWatPriDedHp=false,
have_pumPriHdr=false,
nHp=2,
nPhp=0,
nPumHeaWatPri=2,
yPumHeaWatPriDedHpSet=0.8,
yPumChiWatPriDedHpSet=0.9)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriDedSep(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=false,
have_pumChiWatPriDedHp=true,
have_pumPriHdr=false,
nHp=2,
nPhp=0,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriDedHpSet=0.8,
yPumChiWatPriDedHpSet=0.9)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriHdrHeaDp(
have_heaWat=true,
have_chiWat=false,
nHp=2,
nPhp=0,
have_pumPriCtlDp=true,
have_pumPriHdr=true,
nPumHeaWatPri=2,
nPumChiWatPri=0,
have_senDpHeaWatRemWir=false,
nSenDpHeaWatRem=2)
;
Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable ratDp(
table=[0, 0.1, 0.5; 1, 1, 0.5; 1.5, 1, 0.2; 2, 0.1, 0.1],
timeScale=3600)
;
Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter dpSet[2](k={3E4, 2E4})
;
Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin[2](
amplitude=0.1 * dpSet.k,
freqHz={2 / 8000, 4 / 8000},
each phase=3.1415926535898)
;
Buildings.Controls.OBC.CDL.Reals.Add dp[2]
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriHdrDp(
have_heaWat=true,
have_chiWat=true,
nHp=2,
nPhp=0,
have_pumPriCtlDp=true,
have_pumPriHdr=true,
nPumHeaWatPri=2,
nPumChiWatPri=2,
have_senDpHeaWatRemWir=true,
nSenDpHeaWatRem=2,
have_senDpChiWatRemWir=true,
nSenDpChiWatRem=2)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriDedComDp(
have_heaWat=true,
have_chiWat=true,
have_pumChiWatPriDedHp=false,
nHp=2,
nPhp=0,
have_pumPriCtlDp=true,
have_pumPriHdr=false,
nPumHeaWatPri=2,
have_senDpHeaWatRemWir=false,
nSenDpHeaWatRem=2,
have_senDpChiWatRemWir=false,
nSenDpChiWatRem=2)
;
Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable u1Hea(
table=[
0, 0, 0;
0.1, 1, 0;
0.5, 1, 0;
1, 0, 0;
1.5, 0, 1;
2, 0, 1;
2.5, 0, 0;
3, 0, 0],
timeScale=600,
period=5000)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeedWithHeatPumps ctlPumPriDedSepDp(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=true,
have_pumChiWatPriDedHp=true,
have_pumPriHdr=false,
nHp=2,
nPhp=0,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriDedHpSet=0.8,
yPumChiWatPriDedHpSet=0.9,
have_senDpHeaWatRemWir=false,
nSenDpHeaWatRem=2,
have_senDpChiWatRemWir=false,
nSenDpChiWatRem=2)
;
equation
connect(u1.y, u1Coo.u);
connect(u1Coo.y, ctlPumPriHdr.u1PumChiWatPriHdr);
connect(u1.y, ctlPumPriHdr.u1PumHeaWatPriHdr);
connect(u1.y, ctlPumPriHdrHea.u1PumHeaWatPriHdr);
connect(u1.y, ctlPumPriHdrHeaDp.u1PumHeaWatPriHdr);
connect(u1.y, ctlPumPriHdrHeaDp.u1PumHeaWatPriHdr_actual);
connect(ratDp.y, dpSet.u);
connect(sin.y, dp.u2);
connect(dpSet.y, dp.u1);
connect(dpSet[1:2].y, ctlPumPriHdrHeaDp.dpHeaWatLocSet);
connect(dp[1].y, ctlPumPriHdrHeaDp.dpHeaWatLoc);
connect(u1.y, ctlPumPriHdrDp.u1PumHeaWatPriHdr);
connect(u1.y, ctlPumPriHdrDp.u1PumHeaWatPriHdr_actual);
connect(u1Coo.y, ctlPumPriHdrDp.u1PumChiWatPriHdr);
connect(u1Coo.y, ctlPumPriHdrDp.u1PumChiWatPriHdr_actual);
connect(dpSet.y, ctlPumPriHdrDp.dpHeaWatRemSet);
connect(dp.y, ctlPumPriHdrDp.dpHeaWatRem);
connect(dp.y, ctlPumPriHdrDp.dpChiWatRem);
connect(dpSet.y, ctlPumPriHdrDp.dpChiWatRemSet);
connect(dp[1].y, ctlPumPriDedComDp.dpHeaWatLoc);
connect(dp[2].y, ctlPumPriDedComDp.dpChiWatLoc);
connect(dpSet.y, ctlPumPriDedComDp.dpHeaWatLocSet);
connect(dpSet.y, ctlPumPriDedComDp.dpChiWatLocSet);
connect(u1Hea.y, ctlPumPriDedComDp.u1HeaHp);
connect(dpSet.y, ctlPumPriDedSepDp.dpHeaWatLocSet);
connect(dpSet.y, ctlPumPriDedSepDp.dpChiWatLocSet);
connect(dp[2].y, ctlPumPriDedSepDp.dpChiWatLoc);
connect(dp[1].y, ctlPumPriDedSepDp.dpHeaWatLoc);
connect(u1Hea.y, ctlPumPriDedCom.u1HeaHp);
connect(u1.y, ctlPumPriDedSepDp.u1PumHeaWatPriDedHp);
connect(u1.y, ctlPumPriDedSepDp.u1PumHeaWatPriDedHp_actual);
connect(u1.y, ctlPumPriDedCom.u1PumHeaWatPriDedHp);
connect(u1Coo.y, ctlPumPriDedSepDp.u1PumChiWatPriDedHp);
connect(u1.y, ctlPumPriDedSep.u1PumHeaWatPriDedHp);
connect(u1Coo.y, ctlPumPriDedSep.u1PumChiWatPriDedHp);
connect(u1Coo.y, ctlPumPriDedSepDp.u1PumChiWatPriDedHp_actual);
connect(u1.y, ctlPumPriDedComDp.u1PumHeaWatPriDedHp);
connect(u1.y, ctlPumPriDedComDp.u1PumHeaWatPriDedHp_actual);
end VariableSpeedWithHeatPumps;