Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modeling VRFs and Heat Pumps #590

Merged
merged 34 commits into from
Jan 15, 2024
Merged
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
80edee0
Merge pull request #4 from BrickSchema/master
jbkoh Sep 20, 2023
36e645b
Merge pull request #5 from mapped/sync-with-upstream-230928
connorjcantrell Sep 28, 2023
dfe0985
Merge remote-tracking branch 'upstream/master'
connorjcantrell Nov 14, 2023
4d42a16
Merge pull request #6 from mapped/sync-with-upstream-231114
connorjcantrell Nov 14, 2023
b9cccb8
Merge branch 'master' of https://github.com/BrickSchema/Brick into up…
connorjcantrell Dec 5, 2023
f66670a
Merge pull request #7 from mapped/update-master
connorjcantrell Dec 5, 2023
a74f788
Add VRF, Heat Pump, and Chiller equipment
connorjcantrell Dec 5, 2023
256aec5
Add VRF System
connorjcantrell Dec 8, 2023
b6decd3
Add definitions
connorjcantrell Dec 12, 2023
8fc21e8
Add Condensing Unit definitions
connorjcantrell Dec 12, 2023
6f4cb1b
Add commas
connorjcantrell Dec 12, 2023
7eb9bd6
Add Expansion Valves
connorjcantrell Dec 12, 2023
4c5e4d5
Update Electronic Expansion Valve name
connorjcantrell Dec 12, 2023
2c8a2a2
Move expansion valves to new metering device class
connorjcantrell Dec 12, 2023
1e1fe92
Add refrigeration system
connorjcantrell Dec 12, 2023
3afe698
Add metering device definitions
connorjcantrell Dec 12, 2023
5a10c2c
Add connectedTo relationship
connorjcantrell Dec 12, 2023
8e73f53
Rename metering device to throttling device
connorjcantrell Dec 13, 2023
cbcc5d4
Add ground, air, water source condensing and packaged units
connorjcantrell Dec 13, 2023
192c141
Add alias to Duct FCU
connorjcantrell Dec 13, 2023
135c7c2
Add horizontal tag to Duct FCU
connorjcantrell Dec 13, 2023
c3d3f22
Rename throttling device to refrigerant metering device
connorjcantrell Dec 13, 2023
56f6ad1
Add capillary tube metering device
connorjcantrell Dec 13, 2023
fcfa489
Add VRF, Heat Pump, and Chiller equipment
connorjcantrell Dec 5, 2023
636e03e
Add Expansion Valves
connorjcantrell Dec 12, 2023
f313094
Update Electronic Expansion Valve name
connorjcantrell Dec 12, 2023
d15d70e
Move expansion valves to new metering device class
connorjcantrell Dec 12, 2023
720b806
Rename metering device to throttling device
connorjcantrell Dec 13, 2023
bbe898a
Merge branch 'master' into add-vrf
connorjcantrell Jan 12, 2024
c2950c4
Remove comma
connorjcantrell Jan 12, 2024
f1a83a6
Fix format
connorjcantrell Jan 12, 2024
bc0c789
Wrap definition
connorjcantrell Jan 12, 2024
6a03d2a
Update obsolete terms
connorjcantrell Jan 12, 2024
8510dd9
Remove Packaged GSHP
connorjcantrell Jan 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
262 changes: 215 additions & 47 deletions bricksrc/equipment.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"Photovoltaic_Inverter": {
"tags": [TAG.Photovoltaic, TAG.Inverter, TAG.Equipment]
}
}
},
},
"PlugStrip": {"tags": [TAG.PlugStrip, TAG.Equipment]},
"Disconnect_Switch": {"tags": [TAG.Disconnect, TAG.Switch, TAG.Equipment]},
Expand All @@ -74,7 +74,13 @@
"tags": [TAG.Equipment, TAG.Motor],
"subclasses": {
"Variable_Frequency_Drive": {
"tags": [TAG.Equipment, TAG.Variable, TAG.Frequency, TAG.Drive, TAG.VFD],
"tags": [
TAG.Equipment,
TAG.Variable,
TAG.Frequency,
TAG.Drive,
TAG.VFD,
],
"aliases": [BRICK["VFD"]],
"subclasses": {
"Heat_Wheel_VFD": {
Expand Down Expand Up @@ -243,59 +249,119 @@
"tags": [TAG.Water, TAG.Storage, TAG.Equipment],
"subclasses": {
"Chilled_Water_Storage_Tank": {
"tags": [TAG.Chilled, TAG.Water, TAG.Storage, TAG.Equipment]
"tags": [
TAG.Chilled,
TAG.Water,
TAG.Storage,
TAG.Equipment,
]
},
"Cold_Water_Storage_Tank": {
"tags": [TAG.Cold, TAG.Water, TAG.Storage, TAG.Equipment]
"tags": [
TAG.Cold,
TAG.Water,
TAG.Storage,
TAG.Equipment,
]
},
"Hot_Water_Storage_Tank": {
"tags": [TAG.Hot, TAG.Water, TAG.Storage, TAG.Equipment]
},
"Fire_Sprinkler_Water_Storage_Tank": {
"tags": [TAG.Fire, TAG.Water, TAG.Storage, TAG.Equipment]
"tags": [
TAG.Fire,
TAG.Water,
TAG.Storage,
TAG.Equipment,
]
},
"Rain_Water_Storage_Tank": {
"tags": [TAG.Rain, TAG.Water, TAG.Storage, TAG.Equipment]
"tags": [
TAG.Rain,
TAG.Water,
TAG.Storage,
TAG.Equipment,
]
},
}
},
},
"Thermal_Energy_Storage_Tank": {
"tags": [TAG.Thermal, TAG.Energy, TAG.Storage, TAG.Tank, TAG.Equipment],
"tags": [
TAG.Thermal,
TAG.Energy,
TAG.Storage,
TAG.Tank,
TAG.Equipment,
],
"subclasses": {
"Chilled_Water_Thermal_Energy_Storage_Tank": {
"tags": [TAG.Chilled, TAG.Water, TAG.Thermal, TAG.Energy, TAG.Storage, TAG.Tank, TAG.Equipment],
"tags": [
TAG.Chilled,
TAG.Water,
TAG.Thermal,
TAG.Energy,
TAG.Storage,
TAG.Tank,
TAG.Equipment,
],
},
"Hot_Water_Thermal_Energy_Storage_Tank": {
"tags": [TAG.Hot, TAG.Water, TAG.Thermal, TAG.Energy, TAG.Storage, TAG.Tank, TAG.Equipment],
}
}
}
}
"tags": [
TAG.Hot,
TAG.Water,
TAG.Thermal,
TAG.Energy,
TAG.Storage,
TAG.Tank,
TAG.Equipment,
],
},
},
},
},
},
"Thermal_Expansion_Tank": {
"tags": [TAG.Tank, TAG.Equipment],
"subclasses": {
"Chilled_Water_Thermal_Expansion_Tank": {
"tags": [TAG.Chilled, TAG.Thermal, TAG.Expansion, TAG.Tank, TAG.Equipment],
"tags": [
TAG.Chilled,
TAG.Thermal,
TAG.Expansion,
TAG.Tank,
TAG.Equipment,
],
},
"Hot_Water_Thermal_Expansion_Tank": {
"tags": [TAG.Hot, TAG.Thermal, TAG.Expansion, TAG.Tank, TAG.Equipment],
"tags": [
TAG.Hot,
TAG.Thermal,
TAG.Expansion,
TAG.Tank,
TAG.Equipment,
],
},
"Fire_Sprinkler_Thermal_Expansion_Tank": {
"tags": [TAG.Fire, TAG.Thermal, TAG.Expansion, TAG.Tank, TAG.Equipment],
}
}
"tags": [
TAG.Fire,
TAG.Thermal,
TAG.Expansion,
TAG.Tank,
TAG.Equipment,
],
},
},
},
"Separation_Tank": {
"tags": [TAG.Tank, TAG.Equipment],
"subclasses": {
"Grease_Interceptor": {
"tags": [TAG.Waste, TAG.Tank, TAG.Equipment],
}
}
}
}
}
},
},
},
},
}

"""
Expand Down Expand Up @@ -323,11 +389,49 @@
"tags": [TAG.Equipment, TAG.Fan, TAG.Coil, TAG.Unit, TAG.FCU],
"aliases": [BRICK["FCU"]],
"subclasses": {
"Cassette_Fan_Coil_Unit": {"tags": [TAG.Equipment, TAG.Fan, TAG.Coil, TAG.Unit, TAG.FCU, TAG.Cassette, TAG.Ceiling]},
"Duct_Fan_Coil_Unit": {"tags": [TAG.Equipment, TAG.Fan, TAG.Coil, TAG.Unit, TAG.FCU, TAG.Duct]},
"Floor_Fan_Coil_Unit": {"tags": [TAG.Equipment, TAG.Fan, TAG.Coil, TAG.Unit, TAG.FCU, TAG.Floor]},
"Wall_Fan_Coil_Unit": {"tags": [TAG.Equipment, TAG.Fan, TAG.Coil, TAG.Unit, TAG.FCU, TAG.Wall, TAG.Mounted]},
}
"Cassette_Fan_Coil_Unit": {
"tags": [
TAG.Equipment,
TAG.Fan,
TAG.Coil,
TAG.Unit,
TAG.FCU,
TAG.Cassette,
TAG.Ceiling,
]
},
"Duct_Fan_Coil_Unit": {
"tags": [
TAG.Equipment,
TAG.Fan,
TAG.Coil,
TAG.Unit,
TAG.FCU,
TAG.Duct,
]
},
"Floor_Fan_Coil_Unit": {
"tags": [
TAG.Equipment,
TAG.Fan,
TAG.Coil,
TAG.Unit,
TAG.FCU,
TAG.Floor,
]
},
"Wall_Fan_Coil_Unit": {
"tags": [
TAG.Equipment,
TAG.Fan,
TAG.Coil,
TAG.Unit,
TAG.FCU,
TAG.Wall,
TAG.Mounted,
]
},
},
},
"Variable_Air_Volume_Box": {
"tags": [TAG.Equipment, TAG.Variable, TAG.Volume, TAG.Box, TAG.VAV],
Expand Down Expand Up @@ -598,8 +702,8 @@
TAG.Heat,
TAG.Pump,
],
}
}
},
},
},
"Fume_Hood": {"tags": [TAG.Equipment, TAG.Fume, TAG.Hood]},
"Filter": {
Expand Down Expand Up @@ -655,13 +759,47 @@
"Condensing_Unit": {
"tags": [TAG.Equipment, TAG.Condenser, TAG.Condensing, TAG.Unit],
"subclasses": {
"Cooling_Only_Condensing_Unit": {"tags": [TAG.Equipment, TAG.Condenser, TAG.Condensing, TAG.Unit, TAG.Cooling]},
"Heat_Pump_Condensing_Unit": {"tags": [TAG.Equipment, TAG.Condenser, TAG.Condensing, TAG.Unit, TAG.Cooling, TAG.Heating]},
"Heat_Recovery_Condensing_Unit": {"tags": [TAG.Equipment, TAG.Condenser, TAG.Condensing, TAG.Unit, TAG.Cooling, TAG.Heating, TAG.Recovery]},
}
"Cooling_Only_Condensing_Unit": {
"tags": [
TAG.Equipment,
TAG.Condenser,
TAG.Condensing,
TAG.Unit,
TAG.Cooling,
]
},
"Heat_Pump_Condensing_Unit": {
"tags": [
TAG.Equipment,
TAG.Condenser,
TAG.Condensing,
TAG.Unit,
TAG.Cooling,
TAG.Heating,
]
},
"Heat_Recovery_Condensing_Unit": {
"tags": [
TAG.Equipment,
TAG.Condenser,
TAG.Condensing,
TAG.Unit,
TAG.Cooling,
TAG.Heating,
TAG.Recovery,
]
},
},
},
"Computer_Room_Air_Conditioning": {
"tags": [TAG.Equipment, TAG.Computer, TAG.Room, TAG.Air, TAG.Conditioning, TAG.CRAC],
"tags": [
TAG.Equipment,
TAG.Computer,
TAG.Room,
TAG.Air,
TAG.Conditioning,
TAG.CRAC,
],
"aliases": [BRICK["CRAC"]],
"subclasses": {
"Standby_CRAC": {"tags": [TAG.Equipment, TAG.CRAC, TAG.Standby]},
Expand Down Expand Up @@ -742,19 +880,41 @@
},
"parents": [BRICK.Water_Heater],
},
"Metering_Device": {
"tags": [TAG.Refrigerant, TAG.Gas, TAG.Liquid, TAG.Metering, TAG.Expansion, TAG.Valve],
"Throttling_Device": {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though I do prefer to use Metering Device, I have renamed "Metering Device" to "Throttling Device" to avoid confusion with Brick's Meter class. Throttling device can refer to any component that restricts or regulates the flow of a fluid. It's not specific to refrigeration systems and can apply to various types of mechanical and fluid systems. Open to feedback on this, as I would prefer to use Metering Device if we didn't have a naming conflict.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not familiar with the area, but this substitution seems fine for me. We could also go "Metering Device" and then add shackle rules to either Meter class or this class that detect when it's being used incorrectly.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not either, but in general I always recommend/want terms to be rooted in a standard (ASHRAE, ISO, etc.). Does Throttling Device come from somewhere?

I see Throttling Valve in ASHRAE terminology (although it's not a standard nor are their standards required to use these).

Throttling Valve

valve used to restrict (throttle) the flow of fluid.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gtfierro Ok, great to hear. In that case, I would prefer to call it "Metering Device". @MatthewSteen I was careful not to use the name "valve", due to the various metering devices used in practice, though I do agree that Throttling Device is a bit broad. If you're curious to learn more about metering devices, this is an informative article:
https://www.skillcatapp.com/post/a-complete-guide-to-metering-devices-fixed-modulating.

With the addition of metering device, Brick now has the ability to represent a complete refrigeration cycle using the following classes:

  • Compressor
  • Reversing Valve (if Heat Pump)
  • Metering Device
  • Evaporator Coil
  • Condenser Coil

refrigerant-flow copy

Copy link

@MatthewSteen MatthewSteen Dec 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly suggest basing the terminology on existing definitions/terms that are as close to canonical as possible so we're not "inventing" our own or basing them on a website. There are a lot of interchangeable terms used in industry but I think Brick should be using "authoritative" sources when it comes to its class names whenever possible.

I may have missed it, but what's the problem with using Throttling_Valve per ASHRAE terms instead of Metering_Device? If we use Throttling_Valve, then it fits nicely under the parent Valve class like Reversing_Valve.

If Throttling Device is too broad, why isn't Metering Device, which seems a bit general for this application (VRF)? I think "metering" implies measuring something like an electric or gas meter, which aligns with Brick's Meter class and ASHRAE terms.

metering

instruments that measure electric voltage, current, power, etc.

ASHRAE terms does have this entry, which seems to conflict a bit with its definition of metering.

refrigerant metering device

device that controls the flow of liquid refrigerant to an evaporator.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed that reusing ASHRAE terms is ideal. Between the two, I would prefer "Refrigerant Metering Device".

Throttling_Valve is also a good alternative. However, Throttling Valve would only be able to represent modulating metering devices and would not be able to represent fixed metering devices.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should be basing Brick's class names on an authoritative/canonical source (such as AHRI, ANSI, ASHRAE, ISO, IEE, etc.), not https://www.skillcatapp.com/.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100% agreed, I shared the article with you to explain the differences between fixed and modulating metering devices and how throttling valve does not encompass all metering devices.

I have renamed the class to refrigerant metering device per ASHRAE's definition:
https://terminology.ashrae.org/?entry=refrigerant%20metering%20device

"tags": [TAG.Fluid, TAG.Throttling, TAG.Device],
"subclasses": {
"Thermal_Expansion_Valve": {"tags": [TAG.Refrigerant, TAG.Gas, TAG.Liquid, TAG.Expansion, TAG.Valve]},
"Electronic_Expansion_Valve": {"tags": [TAG.Refrigerant, TAG.Gas, TAG.Liquid, TAG.Expansion, TAG.Valve]},
"Capillary_Tube": {"tags": [TAG.Refrigerant, TAG.Gas, TAG.Liquid, TAG.Expansion, TAG.Valve]},
}
"Thermal_Expansion_Valve": {
"tags": [
TAG.Refrigerant,
TAG.Modulating,
TAG.Metering,
TAG.Gas,
TAG.Liquid,
TAG.Expansion,
TAG.Valve,
]
},
"Electronic_Expansion_Valve": {
"tags": [
TAG.Refrigerant,
TAG.Modulating,
TAG.Metering,
TAG.Gas,
TAG.Liquid,
TAG.Expansion,
TAG.Valve,
]
},
"Capillary_Tube": {
"tags": [TAG.Refrigerant, TAG.Gas, TAG.Fixed, TAG.Liquid, TAG.Metering]
},
},
},
"Air_Handling_Unit": {
"tags": [TAG.Equipment, TAG.Air, TAG.Handling, TAG.Handler, TAG.Unit, TAG.AHU],
"aliases": [
BRICK["AHU"],
BRICK["Air_Handler_Unit"], # here for historical purposes
BRICK["AHU"],
BRICK["Air_Handler_Unit"], # here for historical purposes
],
"subclasses": {
"Dedicated_Outdoor_Air_System_Unit": {
Expand Down Expand Up @@ -782,7 +942,7 @@
},
"Pre-Cooling_Air_Unit": {
"tags": [TAG.Equipment, TAG.PAU],
"aliases": [BRICK["PAU"]]
"aliases": [BRICK["PAU"]],
},
},
},
Expand Down Expand Up @@ -891,9 +1051,17 @@
"Refrigerant_Valve": {
"tags": [TAG.Refrigerant, TAG.Valve, TAG.Gas, TAG.Liquid],
"subclasses": {
"Reversing_Valve": {"tags": [TAG.Refrigerant, TAG.Valve, TAG.Gas, TAG.Liquid, TAG.Reversing]},
}
}
"Reversing_Valve": {
"tags": [
TAG.Refrigerant,
TAG.Valve,
TAG.Gas,
TAG.Liquid,
TAG.Reversing,
]
},
},
},
},
}
}
Expand Down
Loading