This package contains validation models.
model VariableSpeed
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeed ctlPumPriHdrHea(
have_heaWat=true,
have_chiWat=false,
have_pumPriCtlDp=false,
have_pumPriHdr=true,
nPumHeaWatPri=2,
yPumHeaWatPriSet=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.VariableSpeed ctlPumPriHdr(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=false,
have_pumPriHdr=true,
nEqu=2,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9)
;
Buildings.Controls.OBC.CDL.Logical.Not u1Coo[2]
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeed ctlPumPriDedCom(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=false,
have_pumChiWatPriDed=false,
have_pumPriHdr=false,
nEqu=2,
nPumHeaWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeed ctlPumPriDedSep(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=false,
have_pumChiWatPriDed=true,
have_pumPriHdr=false,
nEqu=2,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeed ctlPumPriHdrHeaDp(
have_heaWat=true,
have_chiWat=false,
have_pumPriCtlDp=true,
have_pumPriHdr=true,
nPumHeaWatPri=2,
yPumHeaWatPriSet=0.8,
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.VariableSpeed ctlPumPriHdrDp(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=true,
have_pumPriHdr=true,
nEqu=2,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9,
have_senDpHeaWatRemWir=true,
nSenDpHeaWatRem=2,
have_senDpChiWatRemWir=true,
nSenDpChiWatRem=2)
;
Buildings.Templates.Plants.Controls.Pumps.Primary.VariableSpeed ctlPumPriDedComDp(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=true,
have_pumChiWatPriDed=false,
have_pumPriHdr=false,
nEqu=2,
nPumHeaWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9,
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.VariableSpeed ctlPumPriDedSepDp(
have_heaWat=true,
have_chiWat=true,
have_pumPriCtlDp=true,
have_pumChiWatPriDed=true,
have_pumPriHdr=false,
nEqu=2,
nPumHeaWatPri=2,
nPumChiWatPri=2,
yPumHeaWatPriSet=0.8,
yPumChiWatPriSet=0.9,
have_senDpHeaWatRemWir=false,
nSenDpHeaWatRem=2,
have_senDpChiWatRemWir=false,
nSenDpChiWatRem=2)
;
equation
connect(u1.y, u1Coo.u);
connect(u1Coo.y, ctlPumPriHdr.u1PumChiWatPri);
connect(u1.y, ctlPumPriHdr.u1PumHeaWatPri);
connect(u1.y, ctlPumPriDedCom.u1PumHeaWatPri);
connect(u1.y, ctlPumPriDedSep.u1PumHeaWatPri);
connect(u1.y, ctlPumPriHdrHea.u1PumHeaWatPri);
connect(u1.y, ctlPumPriHdrHeaDp.u1PumHeaWatPri);
connect(u1.y, ctlPumPriHdrHeaDp.u1PumHeaWatPri_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.u1PumHeaWatPri);
connect(u1.y, ctlPumPriHdrDp.u1PumHeaWatPri_actual);
connect(u1Coo.y, ctlPumPriHdrDp.u1PumChiWatPri);
connect(u1Coo.y, ctlPumPriHdrDp.u1PumChiWatPri_actual);
connect(dpSet.y, ctlPumPriHdrDp.dpHeaWatRemSet);
connect(dp.y, ctlPumPriHdrDp.dpHeaWatRem);
connect(dp.y, ctlPumPriHdrDp.dpChiWatRem);
connect(dpSet.y, ctlPumPriHdrDp.dpChiWatRemSet);
connect(u1.y, ctlPumPriDedComDp.u1PumHeaWatPri);
connect(u1.y, ctlPumPriDedComDp.u1PumHeaWatPri_actual);
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.u1Hea);
connect(dpSet.y, ctlPumPriDedSepDp.dpHeaWatLocSet);
connect(dpSet.y, ctlPumPriDedSepDp.dpChiWatLocSet);
connect(dp[2].y, ctlPumPriDedSepDp.dpChiWatLoc);
connect(dp[1].y, ctlPumPriDedSepDp.dpHeaWatLoc);
connect(u1.y, ctlPumPriDedSepDp.u1PumHeaWatPri);
connect(u1.y, ctlPumPriDedSepDp.u1PumHeaWatPri_actual);
connect(u1Coo.y, ctlPumPriDedSepDp.u1PumChiWatPri);
connect(u1Coo.y, ctlPumPriDedSepDp.u1PumChiWatPri_actual);
connect(u1Hea.y, ctlPumPriDedCom.u1Hea);
connect(u1Coo.y, ctlPumPriDedSep.u1PumChiWatPri);
end VariableSpeed;