I am currently working on a project where we need to model an "ambient type loop", i.e. a loop that is controlled to ~ 60 - 70F and feeds WSHPs. The setup is:
a hot water loop with two boilers
a cooling tower
a building loop. it's connected to the hw loop through a HX. and still trying to figure out how exactly it's connected to the CT but my guess is there's a bypass with a three way valve to the CT or a HX between the building loop and the CT.
WSHPs connect to the building loop and provide zone temp control
It seems like a typical enough system in multifamily residential that we should have a well defined way to do this (but I don't know it...). As outlined on the Github issue, I'm unsure of how loops are used / defined in Haystack and it seems like something we should tackle as part of the Haystack 4 update, especially when trying to understand the role of conduit, specifically pipes in Haystack 4. I've also been noodling on how this relates to the 223 work.
Summary of my understanding (based on currently proposed Haystack 4)
There currently is no first class loop type.
A plant is a type of equip (which isn't worth arguing about IMO it's fine). A plant has subtypes: chilled-water-plant, hot-water-plant, steam-plant. This seems to align with the Alpha and Bravo examples
In the alpha example, the chilled water plant consists of:
3 chillers
2 CTs
2 CW pumps
2 CHW pumps
It seems to me that adding a condenser-water-plant would be beneficial. A chilled-water-plant would then interface with a condenser-water-plant (via a condenserWaterRef). The alpha example would then break out into:
A condenser-water-plant with the 2x CTs and 2x CW pumps
A chilled-water-plant with the 3x chillers and 2x CHW pumps and condenserWaterRef -> @cwp
Distinguishing the type of plant primarily seems to be done based on the expected temperature output. In discussing with some folks, my understanding is as follows:
chilled-water-plant: ~ 45 - 55 degF. chw plants consist of the primary cooling equipment as well as the piping and pumping equipment (a chilled-water-loop)
hot-water-plant: ~ 110 - 120 degF. hw plants consist of the primary heating equipment as well as the piping and pumping equipment (a hot-water-loop)
condenser-water-plant: ~ 70 - 85 degF. Used specifically to represent the condenser side of plant chw plants. consists of heat rejection equipment. The piping and pumping equipment (a condenser-water-loop)
steam-plant: ... and on ...
Using the above as a guide, I think it makes sense to add in the concept of an ambient-water-loop. I don't think an ambient-water-plant makes sense. The other distinguishing factor of an ambient loop might be that they are often used in both a source and a sink type fashion (WSHPs, district systems, etc.). A more specific type of ambient-water-loop could be a ground-water-loop, which one could infer that the addition / removal of energy from the loop is done by the ground.
I think the current definition of a heatPump is good, but I think we need to add something about the fluid on the other side of the condenser/evaporator (i.e. air or water). How would people go about doing that? Also, would we just use a waterRef or a new ambientWaterRef tag to point back to the ambient-water-loop?
Summary
I think we have the following concepts to add:
condenser-water-plant
Top level loop with subtypes:
chilled-water-loop
hot-water-loop
condenser-water-loop
steam-loop
ambient-water-loop:
ground-water-loop
I would like some feedback on:
How to define what a heatPump is accepting / rejecting from (water source vs. air source)?
What the ref should be: waterRef or ambientWaterRef?
If we start modeling loops, what should be our recommended way to connect loops, plants, and pumps? i.e. should a pump on a condenser water loop ref the loop or the condenser water plant? (and so on for chw, hw, etc.)
If people are interested in hashing this out, it's probably worth getting a group together. The hope would be to provide sketches / drawings of a few typical plant types as well as recommended ways to model them, which I think we should then contribute back to the group. Please respond if interested.
Mike MelilloMon 15 Mar 2021
I really like the idea overall. Making modest attempts to use fandoc formatting here..
Modelling Loops
Rambling a little bit about how to model loops... From what I'm reading, loop lives in its own little world (and it sounds like if you had a do-over button you'd make plant that way too ... not that it's necessary, just trying to get perspective) and has some inputs/outputs relationship with its plant.
For whatever reason, in my head I think of a plant as containing the central equipment and producing x-water and the loop being a transport mechanism. That would leave me wanting to organize all equipment that is physically located in the plant room or rooms as part of the plant and it conveys x-water to the loop. The loop then conveys it to downstream equipment.
That would make consumption references for chilled-water-input to chilled-water-output go something like:
ahu -> chilled-water-loop -> chilled-water-plant
Depending on how crazy someone wanted to get with defining equips along the way this could get as detailed as a Chilled Water Valve Actuator contained by an AHU inputs Chilled Water conveyed by some Pipe Section which is part of the Primary Chilled Water Loop fed by Chilled Water Plant A. With that little string of relationships you could bring all sorts of fun inferences along the way. I guess that looks like:
chilled-water-valve-actuator contained by ahu which is a chilledWaterCooling entity and so inputschilled-water from a chilled-water-pipe which is contained by the chilled-water-loop which both outputs chw to our ahu and inputs chw from our chilled-water-plant
I'm skipping the multitudes of possible pipe section back to the plant, but that's the gist I suppose.
Plant Entities vs Loop Entities
I do think there should be a logical separation between which entities show up in the plant vs what entities show up in the loop, and I'm not sure how to do so without involving grey areas. The best way I can think of is physical location. So for the pumps and sensors located within the "Chiller MER", I would put them in the respective chilled-water or condenser-waterplant. If there are secondary booster pumps, or temp/pressure sensors located out on the riser, I would put those as a part of the chilled-water-loop. Even if one of those pressure sensors is the loop-pressure sensor that may serve as control variable for the pump speed control back in the plant.
In a way, that could constrain the definition of the condenser-water-plant to entities existing between the towers, heat exchangers, pumps,and chillers directly to the plant entity, and then if that pipe is fed to other equipment such as a heat pump any sensors or pipes along there become part of the loop. Not sure how that plays out for the other loop types.
waterRef vs ambient
For feedback question 2, waterRef until someone comes up with a good idea for what to do with older buildings that have dual temp loops (50-60F in the summer, 130-150F in the winter). Right now I'm doing both hot-water and chilled-water ref to the same entities and it feels bonkers.
heatPump and water sources
For your note on heatPump. I think that is a separate issue dealing with how haystack currently views equipFunction, process, and relates what an equipment does to how it does it. I'm not sure what to do to solve it but have written about it. Based on the decision to explode point types, I would say follow suit for the variations of equipment processes. In short, a process should (if it involves an input and output should probably have that information encoded in its def).
I'm never really sure if the entire thing should be contained in a CHWS entity which then consists of CWS, PCHWS and SCHWS. This makes some sense when trying to work out where "field" related points should be pinned, i.e. #AHU's calling for cooling or Total Building Thermal Load. The latter being measured over the entire series of the primary and second chilled water system doesn't really logically belong to either.
Cory Mosiman Mon 15 Mar 2021
Overview
I have been looking at previous posts on loops:
I also put together a question in the Haystack Github regarding loops:
I recently did some relevant work on the Brick side of things, although it didn't get fully fleshed out, there are some good discussions there:
I am currently working on a project where we need to model an "ambient type loop", i.e. a loop that is controlled to ~ 60 - 70F and feeds WSHPs. The setup is:
It seems like a typical enough system in multifamily residential that we should have a well defined way to do this (but I don't know it...). As outlined on the Github issue, I'm unsure of how loops are used / defined in Haystack and it seems like something we should tackle as part of the Haystack 4 update, especially when trying to understand the role of
conduit
, specificallypipe
s in Haystack 4. I've also been noodling on how this relates to the 223 work.Summary of my understanding (based on currently proposed Haystack 4)
loop
type.plant
is a type of equip (which isn't worth arguing about IMO it's fine). Aplant
has subtypes:chilled-water-plant
,hot-water-plant
,steam-plant
. This seems to align with the Alpha and Bravo examplescondenser-water-plant
would be beneficial. Achilled-water-plant
would then interface with acondenser-water-plant
(via acondenserWaterRef
). The alpha example would then break out into:condenser-water-plant
with the 2x CTs and 2x CW pumpschilled-water-plant
with the 3x chillers and 2x CHW pumps andcondenserWaterRef
-> @cwpchilled-water-plant
: ~ 45 - 55 degF. chw plants consist of the primary cooling equipment as well as the piping and pumping equipment (achilled-water-loop
)hot-water-plant
: ~ 110 - 120 degF. hw plants consist of the primary heating equipment as well as the piping and pumping equipment (ahot-water-loop
)condenser-water-plant
: ~ 70 - 85 degF. Used specifically to represent the condenser side of plant chw plants. consists of heat rejection equipment. The piping and pumping equipment (acondenser-water-loop
)steam-plant
: ... and on ...Using the above as a guide, I think it makes sense to add in the concept of an
ambient-water-loop
. I don't think anambient-water-plant
makes sense. The other distinguishing factor of an ambient loop might be that they are often used in both a source and a sink type fashion (WSHPs, district systems, etc.). A more specific type ofambient-water-loop
could be aground-water-loop
, which one could infer that the addition / removal of energy from the loop is done by the ground.waterRef
or a newambientWaterRef
tag to point back to theambient-water-loop
?Summary
I think we have the following concepts to add:
condenser-water-plant
loop
with subtypes:chilled-water-loop
hot-water-loop
condenser-water-loop
steam-loop
ambient-water-loop
:ground-water-loop
I would like some feedback on:
waterRef
orambientWaterRef
?If people are interested in hashing this out, it's probably worth getting a group together. The hope would be to provide sketches / drawings of a few typical plant types as well as recommended ways to model them, which I think we should then contribute back to the group. Please respond if interested.
Mike Melillo Mon 15 Mar 2021
I really like the idea overall. Making modest attempts to use fandoc formatting here..
Modelling Loops
Rambling a little bit about how to model loops... From what I'm reading,
loop
lives in its own little world (and it sounds like if you had a do-over button you'd makeplant
that way too ... not that it's necessary, just trying to get perspective) and has someinputs/outputs
relationship with its plant.For whatever reason, in my head I think of a
plant
as containing the central equipment and producingx-water
and theloop
being a transport mechanism. That would leave me wanting to organize all equipment that is physically located in the plant room or rooms as part of theplant
and it conveysx-water
to the loop. The loop then conveys it to downstream equipment.That would make consumption references for
chilled-water-input
tochilled-water-output
go something like:ahu
->chilled-water-loop
->chilled-water-plant
Depending on how crazy someone wanted to get with defining equips along the way this could get as detailed as a Chilled Water Valve Actuator contained by an AHU inputs Chilled Water conveyed by some Pipe Section which is part of the Primary Chilled Water Loop fed by Chilled Water Plant A. With that little string of relationships you could bring all sorts of fun inferences along the way. I guess that looks like:
chilled-water-valve-actuator
contained byahu
which is achilledWaterCooling
entity and soinputs
chilled-water
from achilled-water-pipe
which is contained by thechilled-water-loop
which bothoutputs
chw to our ahu andinputs
chw from ourchilled-water-plant
I'm skipping the multitudes of possible pipe section back to the plant, but that's the gist I suppose.
Plant Entities vs Loop Entities
I do think there should be a logical separation between which entities show up in the plant vs what entities show up in the loop, and I'm not sure how to do so without involving grey areas. The best way I can think of is physical location. So for the pumps and sensors located within the "Chiller MER", I would put them in the respective
chilled-water
orcondenser-water
plant
. If there are secondary booster pumps, or temp/pressure sensors located out on the riser, I would put those as a part of thechilled-water-loop
. Even if one of those pressure sensors is theloop-pressure
sensor that may serve as control variable for the pump speed control back in the plant.In a way, that could constrain the definition of the
condenser-water-plant
to entities existing between the towers, heat exchangers, pumps,and chillers directly to theplant
entity, and then if that pipe is fed to other equipment such as a heat pump any sensors or pipes along there become part of theloop
. Not sure how that plays out for the otherloop
types.waterRef vs ambient
For feedback question 2,
waterRef
until someone comes up with a good idea for what to do with older buildings that have dual temp loops (50-60F in the summer, 130-150F in the winter). Right now I'm doing bothhot-water
andchilled-water
ref to the same entities and it feels bonkers.heatPump and water sources
For your note on heatPump. I think that is a separate issue dealing with how haystack currently views
equipFunction
,process
, and relates what an equipment does to how it does it. I'm not sure what to do to solve it but have written about it. Based on the decision to explode point types, I would say follow suit for the variations of equipment processes. In short, aprocess
should (if it involves aninput
andoutput
should probably have that information encoded in its def).That post is here: https://project-haystack.org/forum/topic/878#c5
David Waterworth Mon 22 Mar 2021
This is fairly similar to how we model the chilled water system - the main difference being that we use system rather than plant, we generally have
condenser water system (CWS): contains cooling towers (with associated fans, vsds), condenser water bypass, condenser water bypass valve, condenser water pump.
chilled water system (CHWS): contains chillers, chilled water bypass, chilled water bypass valve, chilled water pump.
We also almost always have a primary chilled water system (PCHWS) and a secondary chilled water system (SCHWS). The secondary system usually consists of just of pumps and bypass.
I'm never really sure if the entire thing should be contained in a CHWS entity which then consists of CWS, PCHWS and SCHWS. This makes some sense when trying to work out where "field" related points should be pinned, i.e. #AHU's calling for cooling or Total Building Thermal Load. The latter being measured over the entire series of the primary and second chilled water system doesn't really logically belong to either.