@@ -232,47 +232,56 @@ initial equation
232232
233233equation
234234 /* Control point connection - start */
235+
235236 // Primary loop controller inputs from plant control bus
236- // Hybrid plants not supported: bus*Con and bus*Non are exclusive from each other.
237237 connect (bus.dpHeaWatLoc, ctlLooPri.dpHotWatPri_loc);
238238 connect (bus.dpHeaWatRem, ctlLooPri.dpHotWatPri_rem);
239239 connect (bus.TOut, ctlLooPri.TOut);
240+ // FIXME: There should be distinct connectors in the controller for condensing and non-condensing groups.
240241 connect (busLooCon.THeaWatPlaRet, ctlLooPri.TRetPri);
241242 connect (busLooNon.THeaWatPlaRet, ctlLooPri.TRetPri);
242243 connect (bus.THeaWatSecRet, ctlLooPri.TRetSec);
243- connect (busBoiCon.THeaWatSup, ctlLooPri.TSupBoi);
244- connect (busBoiNon.THeaWatSup, ctlLooPri.TSupBoi);
244+ connect (busBoiCon.THeaWatSup, ctlLooPri.TSupBoi[1 :cfg.nBoiCon]);
245+ connect (busBoiNon.THeaWatSup, ctlLooPri.TSupBoi[(cfg.nBoiCon+ 1 ):nBoi]);
246+ // FIXME: There should be distinct connectors in the controller for condensing and non-condensing groups.
245247 connect (busLooCon.THeaWatPriSup, ctlLooPri.TSupPri);
246248 connect (busLooNon.THeaWatPriSup, ctlLooPri.TSupPri);
247249 connect (bus.THeaWatSecSup, ctlLooPri.TSupSec);
248- connect (busValBoiConIso.y1_actual, ctlLooPri.uHotWatIsoVal);
249- connect (busValBoiNonIso.y1_actual, ctlLooPri.uHotWatIsoVal);
250- connect (busPumHeaWatPriCon.y1_actual, ctlLooPri.uPriPum);
251- connect (busPumHeaWatPriNon.y1_actual, ctlLooPri.uPriPum);
250+ connect (busValBoiConIso.y1_actual, ctlLooPri.uHotWatIsoVal[ 1 :cfg.nBoiCon] );
251+ connect (busValBoiNonIso.y1_actual, ctlLooPri.uHotWatIsoVal[(cfg.nBoiCon + 1 ):nBoi] );
252+ connect (busPumHeaWatPriCon.y1_actual, ctlLooPri.uPriPum[ 1 :cfg.nBoiCon] );
253+ connect (busPumHeaWatPriNon.y1_actual, ctlLooPri.uPriPum[(cfg.nBoiCon + 1 ):nBoi] );
252254 connect (bus.u1Sch, ctlLooPri.uSchEna);
255+ // FIXME: There should be distinct connectors in the controller for condensing and non-condensing groups.
253256 connect (busLooCon.VHeaWatByp_flow, ctlLooPri.VHotWatDec_flow);
254257 connect (busLooNon.VHeaWatByp_flow, ctlLooPri.VHotWatDec_flow);
258+ // FIXME: There should be distinct connectors in the controller for condensing and non-condensing groups.
255259 connect (busLooCon.VHeaWatPri_flow, ctlLooPri.VHotWatPri_flow);
256260 connect (busLooNon.VHeaWatPri_flow, ctlLooPri.VHotWatPri_flow);
257261 connect (bus.VHotWatSec_flow, ctlLooPri.VHotWatSec_flow);
262+
258263 // Secondary HW pump controller inputs from plant control bus
259264 connect (bus.dpHeaWatLoc, ctlPumHeaWatSec.dpHotWat_local);
260265 connect (bus.dpHeaWatRem, ctlPumHeaWatSec.dpHotWat_remote);
261266 connect (busPumHeaWatSec.y1_actual, ctlPumHeaWatSec.uHotWatPum);
262- connect (busPumHeaWatPriCon.y1_actual, ctlPumHeaWatSec.uPriPumSta);
263- connect (busPumHeaWatPriNon.y1_actual, ctlPumHeaWatSec.uPriPumSta);
267+ connect (busPumHeaWatPriCon.y1_actual, ctlPumHeaWatSec.uPriPumSta[ 1 :cfg.nBoiCon] );
268+ connect (busPumHeaWatPriNon.y1_actual, ctlPumHeaWatSec.uPriPumSta[(cfg.nBoiCon + 1 ):nBoi] );
264269 connect (bus.VHeaWatSec_flow, ctlPumHeaWatSec.VHotWat_flow);
270+
265271 // Primary loop controller outputs to plant control bus
266- connect (ctlLooPri.TBoiHotWatSupSet, busBoiCon.THeaWatSupSet);
267- connect (ctlLooPri.TBoiHotWatSupSet, busBoiNon.THeaWatSupSet);
268- connect (ctlLooPri.yBoi, busBoiCon.y1);
269- connect (ctlLooPri.yBoi, busBoiNon.y1);
272+ connect (ctlLooPri.TBoiHotWatSupSet[ 1 :cfg.nBoiCon] , busBoiCon.THeaWatSupSet);
273+ connect (ctlLooPri.TBoiHotWatSupSet[(cfg.nBoiCon + 1 ):nBoi] , busBoiNon.THeaWatSupSet);
274+ connect (ctlLooPri.yBoi[ 1 :cfg.nBoiCon] , busBoiCon.y1);
275+ connect (ctlLooPri.yBoi[(cfg.nBoiCon + 1 ):nBoi] , busBoiNon.y1);
270276 connect (ctlLooPri.yBypValPos, busValHeaWatMinByp.y);
271- connect (ctlLooPri.yHotWatIsoVal, busValBoiConIso.y1);
272- connect (ctlLooPri.yPriPum, busPumHeaWatPriCon.y1);
273- connect (ctlLooPri.yPriPum, busPumHeaWatPriNon.y1);
277+ connect (ctlLooPri.yHotWatIsoVal[1 :cfg.nBoiCon], busValBoiConIso.y1);
278+ connect (ctlLooPri.yHotWatIsoVal[(cfg.nBoiCon+ 1 ):nBoi], busValBoiNonIso.y1);
279+ connect (ctlLooPri.yPriPum[1 :cfg.nBoiCon], busPumHeaWatPriCon.y1);
280+ connect (ctlLooPri.yPriPum[(cfg.nBoiCon+ 1 ):nBoi], busPumHeaWatPriNon.y1);
281+ // FIXME: There should be distinct connectors in the controller for condensing and non-condensing groups.
274282 connect (ctlLooPri.yPriPumSpe, busPumHeaWatPriCon.y);
275283 connect (ctlLooPri.yPriPumSpe, busPumHeaWatPriNon.y);
284+
276285 // Secondary HW pump controller outputs to plant control bus
277286 connect (ctlPumHeaWatSec.yHotWatPum, busPumHeaWatSec.y1);
278287 connect (ctlPumHeaWatSec.yPumSpe, busPumHeaWatSec.y);
@@ -339,8 +348,6 @@ equation
339348 -20},{-20,-20.7},{-12,-20.7}}, color={255,0,255}));
340349 annotation (Documentation(info="<html>
341350<h4>Description</h4>
342- FIXME cfg.have_boiCon and cfg.have_boiNon mutually exclusive
343-
344351<p>
345352This is an implementation of the control sequence specified in ASHRAE (2021)
346353for hot water plants.
0 commit comments