NREL / BuildingMOTIF

Building Metadata OnTology Interoperability Framework (BuildingMOTIF)
https://buildingmotif.readthedocs.io/
Other
48 stars 6 forks source link

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

Closed MatthewSteen closed 3 months ago

MatthewSteen commented 1 year ago

Separate pull request for the more complex water-side sections 4.10 and 4.11 to merge into https://github.com/NREL/BuildingMOTIF/pull/263.

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

MatthewSteen commented 1 year ago

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

selamHaile commented 11 months ago

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 commented 11 months ago

@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 commented 11 months ago

@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.

MatthewSteen commented 11 months ago

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

gtfierro commented 10 months ago

@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 commented 6 months ago

@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 commented 6 months ago

Following up on our discussion yesterday -- we don't currently have this feature, but I've made a note of it at https://github.com/NREL/BuildingMOTIF/issues/303

MatthewSteen commented 6 months ago

@gtfierro this is ready for a final review.

gtfierro commented 6 months ago

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

MatthewSteen commented 3 months ago

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.