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

ASHRAE Guideline 36, Section 4, Water-Side #265

Merged
merged 23 commits into from
Jun 5, 2024

Conversation

MatthewSteen
Copy link
Member

@MatthewSteen MatthewSteen commented Aug 7, 2023

Separate pull request for the more complex water-side sections 4.10 and 4.11 to merge into #263.

@selamHaile I'd like your review of my interpretation of G36. Here are some additional areas of feedback. Thanks!

  • approach, specifically about loops and plants
  • appropriate/correct use of brick classes
  • equipment connections, i.e. is everything connected correctly for the different types of plants?

@MatthewSteen MatthewSteen marked this pull request as draft August 7, 2023 18:56
@MatthewSteen
Copy link
Member Author

MatthewSteen commented Aug 7, 2023

@gtfierro I could use a quick review for my approach in the 4.11-hot-water-plant.ttl shapes. No rush, thanks!

Copy link
Collaborator

@gtfierro gtfierro left a comment

Choose a reason for hiding this comment

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

Couple small mistakes in the SHACL phrasing (it gets tough to keep track of the nesting of property/node shapes...), but otherwise this looks great

libraries/ashrae/guideline36/4.11-hot-water-plant.ttl Outdated Show resolved Hide resolved
libraries/ashrae/guideline36/4.11-hot-water-plant.ttl Outdated Show resolved Hide resolved
libraries/ashrae/guideline36/4.11-hot-water-plant.ttl Outdated Show resolved Hide resolved
libraries/ashrae/guideline36/4.11-hot-water-plant.ttl Outdated Show resolved Hide resolved
libraries/ashrae/guideline36/4.11-hot-water-plant.ttl Outdated Show resolved Hide resolved
@MatthewSteen MatthewSteen marked this pull request as ready for review September 13, 2023 19:08
Copy link
Collaborator

@gtfierro gtfierro left a comment

Choose a reason for hiding this comment

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

This looks fantastic and I don't think I have any feedback on the shapes themselves.

Not sure why this decided to break now, but the tests fail because one of the templates makes reference to a fan template but no fan template exists. Here's the fix:

--- a/libraries/ashrae/guideline36/4.3-fan-powered.yml
+++ b/libraries/ashrae/guideline36/4.3-fan-powered.yml
@@ -6,7 +6,7 @@ fan-powered-terminal-unit:
       brick:hasPart p:fan, p:damper ;
       brick:hasPoint p:heating_signal, p:airflow, p:dat, p:zat .
   dependencies:
-  - template: fan
+  - template: sa_fan
     args: {"name": "fan"}
   - template: damper
     args: {"name": "damper"}

@selamHaile
Copy link
Collaborator

selamHaile commented Sep 20, 2023

4.11 Hot Water Plant Review

line 22
primary-seconary-plant > primary-secondary-plant (spelling error)

Primary-only plants missed a sensor for Plant HW return temperature
IT IS A REQUIRED POINT FOR THE APPLICATION

Pump
bmotif:HVAC > bmotif:device??

bring line 228-236 to line 191 under the HW system gauge pressure since it is both for constant and variable primary loops.

component of 4.11.2

line 186
brick:On_Command > Pump_Command (https://brickschema.org/ontology/1.3/classes/Pump_Command)
line 201
brick:Variable_Frequency_Drive > Pump_VFD (https://brickschema.org/ontology/1.3/classes/Pump_VFD)
line 222
brick:Frequency_Command > Speed_Command
line 261
brick:Differential_Pressure_Sensor > Hot_Water_Differential_Pressure_Sensor
line 269
brick:Fault_Status > Alarm

bring line 246 -255 above the vfd motor definition line 199

4.10 Chilled Water Plant
line 272
brick:Last_Fault_Code_Status I am not sure it is a status since it is an analog point. It is reading the fault code for the equipment

NEED TO ADD REFRIGERANT TEMP SENSORS AND CONDENSER WATER DIFFERENTIAL PRESSURE SENSOR POINTS IN THE BRICK ONTHOLOGY##

Line 382 since it is a condenser water on the chiller side entering and leaving functionality will change
brick:Entering_Condenser_Water_Temperature_Sensor > brick:Leaving_Condenser_Water_Temperature_Sensor
line 391
brick:Leaving_Condenser_Water_Temperature_Sensor > Entering_Condenser_Water_Temperature_Sensor

line 418
delete line 418 since brick:Valve_Position_Command is also for two postion valves
line 429 and 437
use https://brickschema.org/ontology/1.3/classes/Open_Close_Status since it is a valve
line 460
brick:Valve_Position_Command
line 479
delete line 479 since brick:Valve_Position_Command is also for two postion valves
line 490 and 498
use https://brickschema.org/ontology/1.3/classes/Open_Close_Status since it is a valve

4.10.3 Primary (only) CHW Loop
line 555
CHW system gauge pressure is for variable-primary-only-loop
line 624
add sh:path brick:hasPoint for CHW supply temperature

4.10.6 Cooling Towers
Cooling tower hasPart Fan
Fan hasPart [vfd, variable speed fan motor)
Fan hasPoint [start, status,speed]

line 851
ct-outlet-isolation-valve brick:Condenser_Water_Isolation_Valve (https://brickschema.org/ontology/1.3/classes/Condenser_Water_Isolation_Valve)
line 871
ct-bypass-valve brick:Condenser_Water_Bypass_Valve (https://brickschema.org/ontology/1.3/classes/Condenser_Water_Bypass_Valve)

line 906
On_Off_Command > brick:Fan_Command
line 914
On_Off_Status > brick:Fan_Status
line 922
Frequency_Command > brick:Fan_Speed_Command
line 930
Fault_Status > Alarm
line 968and 997
use https://brickschema.org/ontology/1.3/classes/Open_Close_Status since it is a valve

4.10.7 Condenser Water Loop
line 1084
brick:On_Off_Command >Valve_Position_Command

4.10.8 Waterside Economizer
line 1103
why is the wse-loop brick:Chilled_Water_Loop? Since it is fed by the cooling tower, it should be brick:Condenser_Water_Loop
Chiller if off when the wse is working.

line1105
Waterside Economizer brick:Economizer
line 1181
brick:On_Off_Command > brick:Valve_Position_Command
line 1188 and 1198
https://brickschema.org/ontology/1.3/classes/Open_Close_Status
line 1218
https://brickschema.org/ontology/1.3/classes/Chilled_Water_Differential_Pressure_Sensor/

MISSED
heat exchanger pump and refer to the componenet.ttl
the plant need to check outside air temp and humidity for control

@MatthewSteen
Copy link
Member Author

@selamHaile thanks, let me know when you're done with the review. FYI you can comment on specific line(s) in the code changes and even make suggestions for code changes.

@selamHaile
Copy link
Collaborator

@selamHaile thanks, let me know when you're done with the review. FYI you can comment on specific line(s) in the code changes and even make suggestions for code changes.

@MatthewSteen I am done with my review.

Copy link
Member Author

@MatthewSteen MatthewSteen left a comment

Choose a reason for hiding this comment

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

@selamHaile thanks for your review!

Here are my responses to your comments. Let me know if you'd like a meeting to go through these. Otherwise, please review and either reply or resolve.

I noticed that some of the line numbers in your comment above don't match the latest files so noted those as possibly outdated below. Maybe you reviewed local copies that were out-of-date, i.e. without git pulling.


Pump
bmotif:HVAC > bmotif:device??

The building_motif_ontology.ttl doesn't have a device, but that's something we can consider in the future.

NEED TO ADD REFRIGERANT TEMP SENSORS AND CONDENSER WATER DIFFERENTIAL PRESSURE SENSOR POINTS IN THE BRICK ONTHOLOGY##

Agree, see my notes here.

MISSED
heat exchanger pump and refer to the componenet.ttl
the plant need to check outside air temp and humidity for control

Will do.

@MatthewSteen
Copy link
Member Author

MatthewSteen commented Oct 3, 2023

@selamHaile I think I've addressed your review comments (see commit). Please formally review changes and either approve or make other suggestions. Thanks!

@gtfierro
Copy link
Collaborator

@MatthewSteen when tracking down the issue you mentioned in #278 I found a couple small issues in the shapes. Here's the git patch you can apply to fix them

diff --git a/libraries/ashrae/guideline36/4.10-chilled-water-plant.ttl b/libraries/ashrae/guideline36/4.10-chilled-water-plant.ttl
index 53efffb7..1ed53d00 100644
--- a/libraries/ashrae/guideline36/4.10-chilled-water-plant.ttl
+++ b/libraries/ashrae/guideline36/4.10-chilled-water-plant.ttl
@@ -583,6 +583,7 @@
     sh:property [
         rdfs:label "CHW supply temperature" ;
         rdfs:comment "CHW supply temperature sensor required for primary-only plants." ;
+        sh:path brick:hasPoint ;
         sh:qualifiedValueShape [ sh:class brick:Leaving_Chilled_Water_Temperature_Sensor ] ;
         sh:qualifiedMinCount 1 ;
         sh:qualifiedMaxCount 1
@@ -1206,6 +1207,7 @@
     sh:property [
         rdfs:label "WSE entering CHW temperature" ;
         rdfs:comment "Note: WSE entering CHW temperatures is located in the pipe entering the HX, not the CHWR main upstream of the WSE." ;
+        sh:path brick:hasPoint ;
         sh:qualifiedValueShape [ sh:class brick:Entering_Chilled_Water_Temperature_Sensor ] ;
         sh:qualifiedMinCount 1 ;
         sh:qualifiedMaxCount 1
@@ -1248,6 +1250,7 @@
     # applications
     sh:property [
         rdfs:label "WSE CHW bypass valve" ;
+        sh:path brick:hasPoint ;
         sh:qualifiedValueShape [ sh:node brick:Valve_Position_Command ] ;
         sh:qualifiedMinCount 1 ;
         sh:qualifiedMaxCount 1
@@ -1255,6 +1258,7 @@
     # applications
     sh:property [
         rdfs:label "WSE CHW differential pressure" ;
+        sh:path brick:hasPoint ;
         sh:qualifiedValueShape [ sh:node brick:Differential_Pressure_Sensor ] ;
         sh:qualifiedMinCount 1 ;
         sh:qualifiedMaxCount 1
diff --git a/libraries/ashrae/guideline36/4.11-hot-water-plant.ttl b/libraries/ashrae/guideline36/4.11-hot-water-plant.ttl
index ee4544b7..d58423ae 100644
--- a/libraries/ashrae/guideline36/4.11-hot-water-plant.ttl
+++ b/libraries/ashrae/guideline36/4.11-hot-water-plant.ttl
@@ -8,6 +8,8 @@
 
 # 4.11 Hot Water Plant
 
+: a owl:Ontology .
+
 :hot-water-plant a sh:NodeShape, owl:Class, bmotif:System_Specification ;
     sh:or (
         sh:node :primary-only-plant
diff --git a/libraries/ashrae/guideline36/4.3-fan-powered.yml b/libraries/ashrae/guideline36/4.3-fan-powered.yml
index a43a3bd1..29b5c25a 100644
--- a/libraries/ashrae/guideline36/4.3-fan-powered.yml
+++ b/libraries/ashrae/guideline36/4.3-fan-powered.yml
@@ -22,3 +22,14 @@ fan-powered-terminal-unit:
   - template: https://brickschema.org/schema/Brick#Heating_Command
     library: https://brickschema.org/schema/1.3/Brick
     args: {"name": "heating_signal"}
+
+fan:
+  body: >
+    @prefix p: <urn:___param___#> .
+    @prefix brick: <https://brickschema.org/schema/Brick#> .
+    p:name a brick:Fan ;
+      brick:hasPart p:fan_motor .
+  dependencies:
+    - template: fan-motor
+      args: {"name": "fan_motor"}
+

@MatthewSteen
Copy link
Member Author

MatthewSteen commented Feb 14, 2024

@gtfierro I'm writing the water-side templates now and the water-side shapes use sh:or for a one-of-many requirement.

:hot-water-plant a sh:NodeShape, owl:Class, bmotif:System_Specification ;
    sh:or (
        sh:node :primary-only-plant
        sh:node :primary-secondary-plant
    ) .

Do templates support this? It seems like this case falls between an optional and required dependency, i.e. putting both the above two plant types in the optional key could create a HW plant without a plant and omitting them from optional could create a HW plant with both types.

@gtfierro
Copy link
Collaborator

Following up on our discussion yesterday -- we don't currently have this feature, but I've made a note of it at #303

@MatthewSteen
Copy link
Member Author

@gtfierro this is ready for a final review.

@gtfierro
Copy link
Collaborator

As we discussed in the dev meeting today, this PR will need #306 to be addressed to fix syntax in the template bodies

@MatthewSteen
Copy link
Member Author

As we discussed in the dev meeting today, this PR will need #306 to be addressed to fix syntax in the template bodies

As we re-discussed, we decided to merge the G36 PRs without the sh:or template functionality.

@MatthewSteen MatthewSteen merged commit cbb0a7f into guideline36-section4 Jun 5, 2024
2 of 6 checks passed
@MatthewSteen MatthewSteen deleted the guideline36-section4-wtr-side branch September 25, 2024 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants