diff --git a/libraries/ashrae/223p/nrel-templates/connections.yml b/libraries/ashrae/223p/nrel-templates/connections.yml index 7d2023ba4..1ea525c40 100644 --- a/libraries/ashrae/223p/nrel-templates/connections.yml +++ b/libraries/ashrae/223p/nrel-templates/connections.yml @@ -48,7 +48,7 @@ duct: @prefix s223: . P:name a s223:Duct ; s223:hasMedium s223:Medium-Air ; - s223:connectsAt P:a, P:b . + s223:cnx P:a, P:b . # issue here is that 'connectsAt' requires a,b to be conn points # but we can't instantiate that class directly *and* being a conn point # involves other properties that must be included (e.g. hasmedium). @@ -56,24 +56,55 @@ duct: # P:a a s223:ConnectionPoint . # P:b a s223:ConnectionPoint . -zone-air-inlet-cp: +junction: body: > @prefix P: . @prefix s223: . - P:name a s223:InletZoneConnectionPoint ; - s223:mapsTo P:mapsto ; - s223:hasMedium s223:Medium-Air . - P:mapsto a s223:InletConnectionPoint ; - s223:hasMedium s223:Medium-Air . - optional: ["mapsto"] - -zone-air-outlet-cp: - body: > - @prefix P: . - @prefix s223: . - P:name a s223:OutletZoneConnectionPoint ; - s223:mapsTo P:mapsto ; - s223:hasMedium s223:Medium-Air . - P:mapsto a s223:OutletConnectionPoint ; - s223:hasMedium s223:Medium-Air . - optional: ["mapsto"] + P:name a s223:Junction ; + s223:hasMedium s223:Medium-Air ; + s223:cnx P:in1, P:in2, P:out1, P:out2, P:out3, P:out4, P:out5, P:out6, P:out7, + P:out8, P:out9, P:out10, P:out11, P:out12, P:out13, P:out14, P:out15, P:out16 . + optional: ["in2","in3","in4","in5","out2", "out3", "out4", "out5", "out6", "out7", "out8", "out9","out10","out11","out12","out13","out14","out15", "out16"] + dependencies: + - template: air-inlet-cp + args: {"name": "in1"} + - template: air-inlet-cp + args: {"name": "in2"} + - template: air-inlet-cp + args: {"name": "in3"} + - template: air-inlet-cp + args: {"name": "in4"} + - template: air-inlet-cp + args: {"name": "in5"} + - template: air-outlet-cp + args: {"name": "out1"} + - template: air-outlet-cp + args: {"name": "out2"} + - template: air-outlet-cp + args: {"name": "out3"} + - template: air-outlet-cp + args: {"name": "out4"} + - template: air-outlet-cp + args: {"name": "out5"} + - template: air-outlet-cp + args: {"name": "out6"} + - template: air-outlet-cp + args: {"name": "out7"} + - template: air-outlet-cp + args: {"name": "out8"} + - template: air-outlet-cp + args: {"name": "out9"} + - template: air-outlet-cp + args: {"name": "out10"} + - template: air-outlet-cp + args: {"name": "out11"} + - template: air-outlet-cp + args: {"name": "out12"} + - template: air-outlet-cp + args: {"name": "out13"} + - template: air-outlet-cp + args: {"name": "out14"} + - template: air-outlet-cp + args: {"name": "out15"} + - template: air-outlet-cp + args: {"name": "out16"} diff --git a/libraries/ashrae/223p/nrel-templates/devices.yml b/libraries/ashrae/223p/nrel-templates/devices.yml index 51f6ef0a9..7efa35d2e 100644 --- a/libraries/ashrae/223p/nrel-templates/devices.yml +++ b/libraries/ashrae/223p/nrel-templates/devices.yml @@ -16,12 +16,31 @@ damper: - template: damper-feedback args: {"name": "feedback"} +#Selam +vlv-dmp: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:Valve ; + s223:hasConnectionPoint P:in, P:out ; + #s223:hasMedium s223:Medium-Air ; + s223:hasProperty P:command, P:feedback . + dependencies: + - template: air-inlet-cp + args: {"name": "in"} + - template: air-outlet-cp + args: {"name": "out"} + - template: start-command + args: {"name": "command"} + - template: run-status + args: {"name": "feedback"} + fan: body: > @prefix P: . @prefix s223: . P:name a s223:Fan ; - s223:hasProperty P:start-cmd, P:motor-status, P:oa-flow-switch ; + s223:hasProperty P:start-cmd, P:motor-status, P:oa-flow-switch, P:vfd-cur, P:vfd-energy, P:vfd-volt, P:vfd-frq, P:vfd-flt, P:vfd-pwr, P:vfd-spd, P:vfd-fb ; s223:hasConnectionPoint P:in, P:out . dependencies: - template: air-inlet-cp @@ -34,6 +53,22 @@ fan: args: {"name": "motor-status"} - template: flow-status args: {"name": "oa-flow-switch"} + - template: vfd-current + args: {"name": "vfd-cur"} + - template: vfd-energy + args: {"name": "vfd-energy"} + - template: vfd-voltage + args: {"name": "vfd-volt"} + - template: vfd-frequency + args: {"name": "vfd-frq"} + - template: vfd-fault + args: {"name": "vfd-flt"} + - template: vfd-power + args: {"name": "vfd-pwr"} + - template: vfd-speed + args: {"name": "vfd-spd"} + - template: vfd-feedback + args: {"name": "vfd-fb"} filter: body: > @@ -56,7 +91,9 @@ heat-recovery-coil: @prefix quantitykind: . @prefix qudt: . @prefix unit: . + @prefix rdfs: . @prefix s223: . + s223:HeatRecoveryCoil rdfs:subClassOf s223:Coil . P:name a s223:HeatRecoveryCoil ; s223:hasProperty P:entering-air-temp, P:leaving-air-temp, P:supply-water-temp, P:return-water-temp ; s223:hasConnectionPoint P:air-in, P:air-out, P:water-in, P:water-out . @@ -145,8 +182,12 @@ chw-pump: @prefix s223: . P:name a s223:Pump ; s223:hasConnectionPoint P:in, P:out ; - s223:hasMedium s223:Water-ChilledWater ; - s223:hasProperty P:onoff-cmd, P:onoff-sts . + #s223:hasMedium s223:Water-ChilledWater ; + s223:hasProperty P:onoff-cmd, P:onoff-sts, P:vfd-cur, + P:vfd-energy, P:vfd-volt, P:vfd-frq, P:vfd-flt, + P:vfd-pwr, P:vfd-spd, P:vfd-fb, + P:vfd-cur, P:vfd-energy . + #optional: ["in", "out"] dependencies: - template: start-command @@ -157,6 +198,22 @@ chw-pump: args: {"name": "in"} - template: water-outlet-cp args: {"name": "out"} + - template: vfd-current + args: {"name": "vfd-cur"} + - template: vfd-energy + args: {"name": "vfd-energy"} + - template: vfd-voltage + args: {"name": "vfd-volt"} + - template: vfd-frequency + args: {"name": "vfd-frq"} + - template: vfd-fault + args: {"name": "vfd-flt"} + - template: vfd-power + args: {"name": "vfd-pwr"} + - template: vfd-speed + args: {"name": "vfd-spd"} + - template: vfd-feedback + args: {"name": "vfd-fb"} hw-pump: body: > @@ -164,8 +221,8 @@ hw-pump: @prefix s223: . P:name a s223:Pump ; s223:hasConnectionPoint P:in, P:out ; - s223:hasMedium s223:Water-HotWater ; - s223:hasProperty P:onoff-cmd, P:onoff-sts . + #s223:hasMedium s223:Water-HotWater ; + s223:hasProperty P:onoff-cmd, P:onoff-sts, P:vfd-cur, P:vfd-energy, P:vfd-volt, P:vfd-frq, P:vfd-flt, P:vfd-pwr, P:vfd-spd, P:vfd-fb . #optional: ["in", "out"] dependencies: - template: start-command @@ -176,7 +233,57 @@ hw-pump: args: {"name": "in"} - template: water-outlet-cp args: {"name": "out"} + - template: vfd-current + args: {"name": "vfd-cur"} + - template: vfd-energy + args: {"name": "vfd-energy"} + - template: vfd-voltage + args: {"name": "vfd-volt"} + - template: vfd-frequency + args: {"name": "vfd-frq"} + - template: vfd-fault + args: {"name": "vfd-flt"} + - template: vfd-power + args: {"name": "vfd-pwr"} + - template: vfd-speed + args: {"name": "vfd-spd"} + - template: vfd-feedback + args: {"name": "vfd-fb"} +HR-pump: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:Pump ; + s223:hasConnectionPoint P:in, P:out ; + #s223:hasMedium s223:Water ; + s223:hasProperty P:onoff-cmd, P:onoff-sts, P:vfd-cur, P:vfd-energy, P:vfd-volt, P:vfd-frq, P:vfd-flt, P:vfd-pwr, P:vfd-spd, P:vfd-fb . + #optional: ["in", "out"] + dependencies: + - template: start-command + args: {"name": "onoff-cmd"} + - template: run-status + args: {"name": "onoff-sts"} + - template: water-inlet-cp + args: {"name": "in"} + - template: water-outlet-cp + args: {"name": "out"} + - template: vfd-current + args: {"name": "vfd-cur"} + - template: vfd-energy + args: {"name": "vfd-energy"} + - template: vfd-voltage + args: {"name": "vfd-volt"} + - template: vfd-frequency + args: {"name": "vfd-frq"} + - template: vfd-fault + args: {"name": "vfd-flt"} + - template: vfd-power + args: {"name": "vfd-pwr"} + - template: vfd-speed + args: {"name": "vfd-spd"} + - template: vfd-feedback + args: {"name": "vfd-fb"} chw-valve: body: > @@ -184,7 +291,7 @@ chw-valve: @prefix s223: . P:name a s223:Valve ; s223:hasConnectionPoint P:in, P:out ; - s223:hasMedium s223:Water-ChilledWater ; + # s223:hasMedium s223:Water-ChilledWater ; s223:hasProperty P:command, P:feedback . dependencies: - template: water-inlet-cp @@ -202,7 +309,7 @@ hw-valve: @prefix s223: . P:name a s223:Valve ; s223:hasConnectionPoint P:in, P:out ; - s223:hasMedium s223:Water-HotWater ; + #s223:hasMedium s223:Water-HotWater ; s223:hasProperty P:command, P:feedback . dependencies: - template: water-inlet-cp @@ -228,7 +335,8 @@ differential-sensor: @prefix P: . @prefix s223: . P:name a s223:Sensor ; - s223:hasObservationLocation P:whereA, P:whereB ; + s223:hasObservationLocationHigh P:whereA ; + s223:hasObservationLocationLow P:whereB ; s223:observes P:property . optional: ["whereA", "whereB"] @@ -313,18 +421,31 @@ heat-exchanger: args: {"name": "chw-flow-sensor", "property": "chw-flow", "where": "B-out"} fcu: - # TODO: add s223:FCU body: > @prefix P: . @prefix s223: . - P:name a s223:FCU ; - s223:contains P:fan, P:cooling-coil ; + P:name a s223:FanCoilUnit ; + s223:hasRole s223:Role-Cooling, s223:Role-Heating ; + s223:contains P:fan, P:cooling-coil, P:heating-coil ; + s223:hasProperty P:cond-overflow, P:DA-temp, P:occ-override, P:zone-temp, P:zone-humidity ; s223:hasConnectionPoint P:in, P:out . dependencies: - template: chilled-water-coil args: {"name": "cooling-coil"} + - template: hot-water-coil + args: {"name": "heating-coil"} - template: fan args: {"name": "fan"} + - template: condensate-overflow + args: {"name": "cond-overflow"} + - template: air-temperature + args: {"name": "DA-temp"} + - template: occupancy-override + args: {"name": "occ-override"} + - template: air-temperature + args: {"name": "zone-temp"} + - template: relative-humidity + args: {"name": "zone-humidity"} - template: air-outlet-cp args: {"name": "out"} - template: air-inlet-cp @@ -349,3 +470,123 @@ unit-heater: - template: air-inlet-cp args: {"name": "in"} +domestic-water-heater: + body: > + @prefix P: . + @prefix s223: . + @prefix rdfs: . + P:name a s223:DomesticWaterHeater, s223:Equipment ; + rdfs:label "domestic water heater" ; + s223:contains P:dw-hwp, P:dw-hx ; + s223:hasConnectionPoint P:in, P:out . + dependencies: + - template: heat-exchanger + args: {"name": "dw-hx"} + - template: hw-pump + args: {"name": "dw-hwp"} + - template: water-outlet-cp + args: {"name": "out"} + - template: water-inlet-cp + args: {"name": "in"} + + +HRC-BTU-meter: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:ElectricMeter ; + s223:hasProperty P:HRW-energy, P:HRW-energy-rate, P:HRW-flow, P:HRW-vol, P:return-water-temp, P:supply-water-temp . + dependencies: + - template: BTU-Meter-energy + args: {"name": "HRW-energy"} + - template: BTU-Meter-energy-rate + args: {"name": "HRW-energy-rate"} + - template: BTU-Meter-water-flow + args: {"name": "HRW-flow"} + - template: BTU-Meter-water-volume + args: {"name": "HRW-vol"} + - template: water-temperature + args: {"name": "supply-water-temp"} + - template: water-temperature + args: {"name": "return-water-temp"} + +hot-water-system-BTU-meter: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:ElectricMeter ; + s223:hasProperty P:HW-energy, P:HW-energy-rate, P:HW-flow, P:HW-vol, P:HWS-temp, P:HWR-temp . + dependencies: + - template: BTU-Meter-energy + args: {"name": "HW-energy"} + - template: BTU-Meter-energy-rate + args: {"name": "HW-energy-rate"} + - template: BTU-Meter-water-flow + args: {"name": "HW-flow"} + - template: BTU-Meter-water-volume + args: {"name": "HW-vol"} + - template: water-temperature + args: {"name": "HWS-temp"} + - template: water-temperature + args: {"name": "HWR-temp"} + +chilled-water-system-BTU-meter: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:ElectricMeter ; + s223:hasProperty P:CHW-energy, P:CHW-energy-rate, P:CHW-flow, P:CHW-vol, P:CHWS-temp, P:CHWR-temp . + dependencies: + - template: BTU-Meter-energy + args: {"name": "CHW-energy"} + - template: BTU-Meter-energy-rate + args: {"name": "CHW-energy-rate"} + - template: BTU-Meter-water-flow + args: {"name": "CHW-flow"} + - template: BTU-Meter-water-volume + args: {"name": "CHW-vol"} + - template: water-temperature + args: {"name": "CHWS-temp"} + - template: water-temperature + args: {"name": "CHWR-temp"} + + +exhaust-fan: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:Fan ; + s223:contains P:iso-dmp, P:low-sp-sensor ; + s223:hasProperty P:start-cmd, P:motor-status, P:low-sp, P:vfd-cur, P:vfd-energy, P:vfd-volt, P:vfd-frq, P:vfd-flt, P:vfd-pwr, P:vfd-spd, P:vfd-fb ; + s223:hasConnectionPoint P:in, P:out . + dependencies: + - template: air-inlet-cp + args: {"name": "in"} + - template: air-outlet-cp + args: {"name": "out"} + - template: start-command + args: {"name": "start-cmd"} + - template: run-status + args: {"name": "motor-status"} + - template: low-static-pressure + args: {"name": "low-sp"} + - template: sensor + args: {"name": "low-sp-sensor", "property": "low-sp", "where": "out"} + - template: vfd-current + args: {"name": "vfd-cur"} + - template: vfd-energy + args: {"name": "vfd-energy"} + - template: vfd-voltage + args: {"name": "vfd-volt"} + - template: vfd-frequency + args: {"name": "vfd-frq"} + - template: vfd-fault + args: {"name": "vfd-flt"} + - template: vfd-power + args: {"name": "vfd-pwr"} + - template: vfd-speed + args: {"name": "vfd-spd"} + - template: vfd-feedback + args: {"name": "vfd-fb"} + - template: damper + args: {"name": "iso-dmp"} diff --git a/libraries/ashrae/223p/nrel-templates/properties.yml b/libraries/ashrae/223p/nrel-templates/properties.yml index 2af05ed75..1e8afad38 100644 --- a/libraries/ashrae/223p/nrel-templates/properties.yml +++ b/libraries/ashrae/223p/nrel-templates/properties.yml @@ -7,7 +7,18 @@ static-pressure: @prefix s223: . P:name a s223:QuantifiableObservableProperty ; qudt:hasQuantityKind quantitykind:Pressure ; - qudt:hasUnit unit:INH2O . + qudt:hasUnit unit:IN_H2O . + +low-static-pressure: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Pressure; + qudt:hasUnit unit:IN_H2O . damper-command: body: > @@ -20,6 +31,17 @@ damper-command: qudt:hasQuantityKind quantitykind:DimensionlessRatio ; qudt:hasUnit unit:PERCENT . +water-static-pressure: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Pressure ; + qudt:hasUnit unit:PSI . + damper-feedback: body: > @prefix P: . @@ -40,7 +62,18 @@ differential-pressure: @prefix s223: . P:name a s223:QuantifiableObservableProperty ; qudt:hasQuantityKind quantitykind:Pressure; - qudt:hasUnit unit:INH2O . + qudt:hasUnit unit:IN_H2O . + +water-differential-pressure: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Pressure; + qudt:hasUnit unit:PSI . air-temperature: body: > @@ -104,9 +137,14 @@ flow-status: body: > @prefix P: . @prefix rdfs: . + @prefix sh: . @prefix s223: . P:name a s223:EnumeratedObservableProperty ; s223:hasEnumerationKind s223:EnumerationKind-FlowStatus . + s223:EnumerationKind-FlowStatus a s223:Class, + s223:EnumerationKind-FlowStatus, sh:NodeShape ; + rdfs:label "EnumerationKind FlowStatus" ; + rdfs:subClassOf s223:EnumerationKind . # TODO: add Flowstatus from g36 to s223 relative-humidity: @@ -119,3 +157,183 @@ relative-humidity: P:name a s223:QuantifiableObservableProperty ; qudt:hasQuantityKind quantitykind:RelativeHumidity ; qudt:hasUnit unit:PERCENT_RH . + +#Selam +vfd-current: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:ElectricCurrent ; + qudt:hasUnit unit:A . + +vfd-frequency: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Frequency ; + qudt:hasUnit unit:HZ . + +vfd-voltage: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:ElectricPotential ; + qudt:hasUnit unit:V . + +vfd-power: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:ElectricPower ; + qudt:hasUnit unit:KiloW . + +vfd-energy: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Energy ; + qudt:hasUnit unit:KiloW-HR . + +vfd-speed: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix rdfs: . + @prefix s223: . + P:name a s223:QuantifiableActuatableProperty ; + qudt:hasQuantityKind quantitykind:PositiveDimensionlessRatio ; + rdfs:label "Fan speed as percentage of maximum frequency" ; + qudt:hasUnit unit:PERCENT . + +vfd-feedback: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix rdfs: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:PositiveDimensionlessRatio ; + rdfs:label "Fan speed feedback as percentage of maximum frequency" ; + qudt:hasUnit unit:PERCENT . + +vfd-fault: + body: > + @prefix P: . + @prefix sh: . + @prefix rdfs: . + @prefix s223: . + s223:EnumerationKind-AlarmStatus a s223:Class, + s223:EnumerationKind-AlarmStatus, sh:NodeShape ; + rdfs:label "EnumerationKind AlarmStatus" ; + rdfs:subClassOf s223:EnumerationKind . + s223:EnumerationKind-Overridden a s223:EnumerationKind-AlarmStatus ; + rdfs:label "AlarmStatus-Ok"@en . + s223:EnumerationKind-Default a s223:EnumerationKind-AlarmStatus ; + rdfs:label "AlarmStatus-Alarm"@en . + P:name a s223:EnumeratedObservableProperty ; + s223:hasEnumerationKind s223:EnumerationKind-AlarmStatus . + +BTU-Meter-energy: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:ThermalEnergy ; + qudt:hasUnit unit:BTU . + +BTU-Meter-energy-rate: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Power ; + qudt:hasUnit unit:KiloBTU_TH-PER-HR . + +BTU-Meter-water-flow: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:VolumeFlowRate; + qudt:hasUnit unit:GAL_US-PER-MIN . + +BTU-Meter-water-volume: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix s223: . + P:name a s223:QuantifiableObservableProperty ; + qudt:hasQuantityKind quantitykind:Volume ; + qudt:hasUnit unit:GAL_US . + +condensate-overflow: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix rdfs: . + @prefix s223: . + @prefix sh: . + s223:EnumerationKind-AlarmStatus a s223:Class, + s223:EnumerationKind-AlarmStatus, sh:NodeShape ; + rdfs:label "EnumerationKind AlarmStatus" ; + rdfs:subClassOf s223:EnumerationKind . + s223:EnumerationKind-Overridden a s223:EnumerationKind-AlarmStatus ; + rdfs:label "AlarmStatus-Ok"@en . + s223:EnumerationKind-Default a s223:EnumerationKind-AlarmStatus ; + rdfs:label "AlarmStatus-Alarm"@en . + P:name a s223:EnumeratedObservableProperty ; + s223:hasEnumerationKind s223:EnumerationKind-AlarmStatus . + +occupancy-override: + body: > + @prefix P: . + @prefix sh: . + @prefix rdfs: . + @prefix s223: . + s223:EnumerationKind-Override a s223:Class, + s223:EnumerationKind-Override, sh:NodeShape ; + rdfs:label "EnumerationKind Override" ; + rdfs:subClassOf s223:EnumerationKind . + s223:EnumerationKind-Overridden a s223:EnumerationKind-Override ; + rdfs:label "Override-Overridden"@en . + s223:EnumerationKind-Default a s223:EnumerationKind-Override ; + rdfs:label "Override-Default"@en . + P:name a s223:EnumeratedObservableProperty ; + s223:hasEnumerationKind s223:EnumerationKind-Override . diff --git a/libraries/ashrae/223p/nrel-templates/spaces.yml b/libraries/ashrae/223p/nrel-templates/spaces.yml index d22750e68..7d7b517a1 100644 --- a/libraries/ashrae/223p/nrel-templates/spaces.yml +++ b/libraries/ashrae/223p/nrel-templates/spaces.yml @@ -3,13 +3,22 @@ hvac-zone: @prefix P: . @prefix s223: . P:name a s223:Zone ; - s223:hasZoneConnectionPoint P:in, P:out ; + #s223:hasConnectionPoint P:in, P:out ; s223:hasDomain s223:Domain-HVAC . - dependencies: - - template: zone-air-inlet-cp - args: {"name": "in"} - - template: zone-air-outlet-cp - args: {"name": "out"} + # dependencies: + # - template: hvac-space + # args: {"name": "domain-space"} + # #- template: air-inlet-cp + # # args: {"name": "in"} + # #- template: air-outlet-cp + # # args: {"name": "out"} + +hvac-zone-contains-space: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:Zone ; + s223:hasDomainSpace P:domain-space . hvac-space: body: > @@ -21,33 +30,44 @@ hvac-space: @prefix rdfs: . @prefix s223: . P:name a s223:DomainSpace ; - s223:hasProperty P:temp, P:supply-air-flow, P:exhaust-air-flow, - P:humidity ; # TODO: , P:occupancy, P:occupancy-override ; - s223:hasConnectionPoint P:in, P:out ; - s223:contains P:temp-sensor, P:exh-flow-sensor, P:sup-flow-sensor, P:humidity-sensor ; + s223:hasProperty P:temp, P:relative-humidity ; + s223:hasConnectionPoint P:in, P:in2, P:in3, P:in4, P:out, P:out2 ; s223:hasDomain s223:Domain-HVAC . - P:zone s223:contains P:name . + P:physical-space a s223:PhysicalSpace ; + s223:encloses P:name ; + s223:hasProperty P:supply-air-flow, P:exhaust-air-flow . + P:temp-sensor s223:hasPhysicalLocation P:physical-space . + P:humidity-sensor s223:hasPhysicalLocation P:physical-space . + P:exh-flow-sensor s223:hasPhysicalLocation P:physical-space . + P:sup-flow-sensor s223:hasPhysicalLocation P:physical-space . + optional: ["in2", "in3", "in4", "out2"] dependencies: - - template: hvac-zone - args: {"name": "zone"} - - template: air-outlet-cp + - template: air-inlet-cp args: {"name": "in"} - template: air-inlet-cp + args: {"name": "in2"} + - template: air-inlet-cp + args: {"name": "in3"} + - template: air-inlet-cp + args: {"name": "in4"} + - template: air-outlet-cp args: {"name": "out"} + - template: air-outlet-cp + args: {"name": "out2"} - template: air-temperature args: {"name": "temp"} + - template: relative-humidity + args: {"name": "relative-humidity"} + - template: sensor + args: {"name": "temp-sensor", "property": "temp", "where": "name"} + - template: sensor + args: {"name": "humidity-sensor", "property": "relative-humidity", "where": "name"} - template: air-flow args: {"name": "supply-air-flow"} - template: air-flow args: {"name": "exhaust-air-flow"} - - template: relative-humidity - args: {"name": "humidity"} - - template: sensor - args: {"name": "temp-sensor", "property": "temp", "where": "name"} - template: sensor args: {"name": "exh-flow-sensor", "property": "exhaust-air-flow", "where": "out"} - template: sensor args: {"name": "sup-flow-sensor", "property": "supply-air-flow", "where": "in"} - - template: sensor - args: {"name": "humidity-sensor", "property": "humidity", "where": "name"} diff --git a/libraries/ashrae/223p/nrel-templates/systems.yml b/libraries/ashrae/223p/nrel-templates/systems.yml index 04ae9ddcd..a511ad9da 100644 --- a/libraries/ashrae/223p/nrel-templates/systems.yml +++ b/libraries/ashrae/223p/nrel-templates/systems.yml @@ -8,37 +8,41 @@ makeup-air-unit: @prefix rdfs: . @prefix s223: . - P:name a s223:MAU ; - s223:contains P:oad, P:pre-filter, P:final-filter, P:HRC, P:supply-fan, - P:evaporative-cooler, - P:cooling-coil, P:heating-coil, P:sa_pressure_sensor; + P:name a s223:AirHandlingUnit ; + s223:contains P:oad, P:pre-filter, P:final-filter, P:MAU-HRC, P:supply-fan, + P:heating-coil, + P:cooling-coil, P:evaporative-cooler, P:sa_pressure_sensor ; s223:hasProperty P:oa_rh, P:sa_sp ; s223:hasConnectionPoint P:air-supply, P:outside-air . P:oad-in s223:mapsTo P:outside-air . - P:oad-out s223:connectsThrough P:c1 . - P:pre-filter-in s223:connectsThrough P:c1 . + P:oad-out s223:cnx P:c1 . + P:pre-filter-in s223:cnx P:c1 . - P:pre-filter-out s223:connectsThrough P:c2 . - P:final-filter-in s223:connectsThrough P:c2 . + P:pre-filter-out s223:cnx P:c2 . + P:final-filter-in s223:cnx P:c2 . - P:final-filter-out s223:connectsThrough P:c3 . - P:HRC-air-in s223:connectsThrough P:c3 . + P:final-filter-out s223:cnx P:c3 . + P:MAU-HRC-air-in s223:cnx P:c3 . - P:HRC-air-out s223:connectsThrough P:c4 . - P:supply-fan-in s223:connectsThrough P:c4 . + P:MAU-HRC-air-out s223:cnx P:c4 . + P:supply-fan-in s223:cnx P:c4 . - P:supply-fan-out s223:connectsThrough P:c5 . - P:cooling-coil-air-in s223:connectsThrough P:c5 . + P:supply-fan-out s223:cnx P:c5 . + P:heating-coil-air-in s223:cnx P:c5 . - P:cooling-coil-air-out s223:connectsThrough P:c6 . - P:heating-coil-air-in s223:connectsThrough P:c6 . + P:heating-coil-air-out s223:cnx P:c6 . + P:cooling-coil-air-in s223:cnx P:c6 . - P:heating-coil-air-out s223:connectsThrough P:c7 . - P:evaporative-cooler-in s223:connectsThrough P:c7 . + P:cooling-coil-air-out s223:cnx P:c7 . + P:evaporative-cooler-in s223:cnx P:c7 . P:evaporative-cooler-out s223:mapsTo P:air-supply . - # s223:servesVAV P:vav + + P:air-supply a s223:OutletConnectionPoint ; + s223:hasMedium s223:Medium-Air . + P:outside-air a s223:InletConnectionPoint ; + s223:hasMedium s223:Medium-Air . # TODO: building static pressure? # TODO: outside air dry bulb temp # TODO: outside air differential pressure @@ -48,15 +52,15 @@ makeup-air-unit: - template: duct args: {"name": "c2", "a": "pre-filter-out", "b": "final-filter-in"} - template: duct - args: {"name": "c3", "a": "final-filter-out", "b": "HRC-air-in"} + args: {"name": "c3", "a": "final-filter-out", "b": "MAU-HRC-air-in"} - template: duct - args: {"name": "c4", "a": "HRC-air-out", "b": "supply-fan-in"} + args: {"name": "c4", "a": "MAU-HRC-air-out", "b": "supply-fan-in"} - template: duct - args: {"name": "c5", "a": "supply-fan-out", "b": "cooling-coil-air-in"} + args: {"name": "c5", "a": "supply-fan-out", "b": "heating-coil-air-in"} - template: duct - args: {"name": "c6", "a": "cooling-coil-air-out", "b": "heating-coil-air-in"} + args: {"name": "c6", "a": "heating-coil-air-out", "b": "cooling-coil-air-in"} - template: duct - args: {"name": "c7", "a": "heating-coil-air-out", "b": "evaporative-cooler-in"} + args: {"name": "c7", "a": "cooling-coil-air-out", "b": "evaporative-cooler-in"} - template: damper args: {"name": "oad", "in-mapsto": "outside-air"} - template: evaporative-cooler @@ -66,7 +70,7 @@ makeup-air-unit: - template: filter args: {"name": "final-filter"} - template: heat-recovery-coil - args: {"name": "HRC"} + args: {"name": "MAU-HRC"} - template: fan args: {"name": "supply-fan"} - template: chilled-water-coil @@ -77,6 +81,8 @@ makeup-air-unit: args: {"name": "sa_pressure_sensor", "property": "sa_sp", "where": "air-supply"} - template: static-pressure args: {"name": "sa_sp"} + - template: relative-humidity + args: {"name": "oa_rh"} - template: air-outlet-cp args: {"name": "air-supply"} - template: air-inlet-cp @@ -86,24 +92,24 @@ vav-reheat: body: > @prefix P: . @prefix s223: . - P:name a s223:VAV ; + P:name a s223:TerminalUnit ; s223:contains P:rhc, P:dmp, P:sup-air-flow-sensor, P:sup-air-temp-sensor, P:sup-air-pressure-sensor ; s223:hasProperty P:sup-air-temp, P:sup-air-flow, P:sup-air-pressure ; s223:hasConnectionPoint P:air-in, P:air-out . - P:rhc-air-in s223:mapsTo P:air-in . - P:rhc-air-out s223:connectsThrough P:c0 . - P:dmp-in s223:connectsThrough P:c0 . - P:dmp-out s223:mapsTo P:air-out . + P:air-in a s223:InletConnectionPoint ; + s223:hasMedium s223:Medium-Air . + P:air-out a s223:OutletConnectionPoint ; + s223:hasMedium s223:Medium-Air . dependencies: - template: duct - args: {"name": "c0", "a": "rhc-air-out", "b": "dmp-in"} + args: {"name": "c0", "a": "dmp-air-out", "b": "rhc-air-in"} - template: hot-water-coil - args: {"name": "rhc", "air-in-mapsto": "air-in"} + args: {"name": "rhc"} - template: damper - args: {"name": "dmp", "out-mapsto": "air-out"} + args: {"name": "dmp"} - template: air-inlet-cp args: {"name": "air-in"} - template: air-outlet-cp @@ -130,7 +136,7 @@ chilled-water-system: rdfs:label "Chilled Water System" ; s223:contains P:bypass-valve, P:lead-chw-pump, P:standby-chw-pump, P:lead-chw-booster-pump, P:standby-chw-booster-pump, - P:chw-hx . # TODO:, P:chw-btu-meter . + P:chw-hx . dependencies: - template: chw-valve args: {"name": "bypass-valve"} @@ -154,7 +160,7 @@ hot-water-system: rdfs:label "Hot Water System" ; s223:contains P:bypass-valve, P:lead-hw-pump, P:standby-hw-pump, P:lead-hw-booster-pump, P:standby-hw-booster-pump, - P:hw-hx . # TODO:, P:hw-btu-meter . + P:hw-hx, P:dwh . dependencies: - template: hw-valve args: {"name": "bypass-valve"} @@ -168,3 +174,178 @@ hot-water-system: args: {"name": "standby-hw-booster-pump"} - template: heat-exchanger args: {"name": "hw-hx"} + - template: domestic-water-heater + args: {"name": "dwh"} + + + +#Selam +lab-vav-reheat: + body: > + @prefix P: . + @prefix s223: . + P:name a s223:TerminalUnit ; + s223:contains P:rhc, P:vlv-dmp, P:sup-air-flow-sensor, + P:sup-air-temp-sensor, P:sup-air-pressure-sensor ; + s223:hasProperty P:sup-air-temp, P:sup-air-flow, P:sup-air-pressure ; + s223:hasConnectionPoint P:air-in, P:air-out . + + # damper, then coil + # - vlv-dmp-in maps to air-in + P:vlv-dmp-in s223:mapsTo P:air-in . + # - vlv-dmp-out (a) -> duct -> rhc-air-in (b) + # (in deps) + P:rhc-air-out s223:maspTo P:air-out . + + dependencies: + - template: duct + args: {"name": "c0", "a": "vlv-dmp-out", "b": "rhc-air-in"} + - template: vlv-dmp + args: {"name": "vlv-dmp", "in-mapsto": "air-in"} + - template: hot-water-coil + args: {"name": "rhc", "air-out-mapsto": "air-out"} + - template: air-inlet-cp + args: {"name": "air-in"} + - template: air-outlet-cp + args: {"name": "air-out"} + - template: air-temperature + args: {"name": "sup-air-temp"} + - template: sensor + args: {"name": "sup-air-temp-sensor", "property": "sup-air-temp", "where": "air-out"} + - template: air-flow + args: {"name": "sup-air-flow"} + - template: sensor + args: {"name": "sup-air-flow-sensor", "property": "sup-air-flow", "where": "air-out"} + - template: static-pressure + args: {"name": "sup-air-pressure"} + - template: sensor + args: {"name": "sup-air-pressure-sensor", "property": "sup-air-pressure", "where": "air-out"} + + +exhaust-air-unit: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix rdf: . + @prefix rdfs: . + @prefix s223: . + + P:name a s223:EAU, s223:Equipment ; + s223:contains P:pre-filter, P:evaporative-cooler, P:EAU-HRC, P:final-filter, P:isolation-damper, P:exhaust-fan, + P:ea-pressure-sensor, P:low-pressure-sensor ; + s223:hasProperty P:low-sp, P:ea-sp ; + s223:hasConnectionPoint P:return-air, P:air-exhaust . + P:pre-filter-in s223:mapsTo P:return-air . + + P:pre-filter-out s223:cnx P:c10 . + P:evaporative-cooler-in s223:cnx P:c10 . + + P:evaporative-cooler-out s223:cnx P:c11 . + P:EAU-HRC-air-in s223:cnx P:c11 . + + P:EAU-HRC-air-out s223:cnx P:c12 . + P:final-filter-in s223:cnx P:c12 . + + P:final-filter-out s223:cnx P:c13 . + P:isolation-damper-in s223:cnx P:c13 . + + P:isolation-damper-out s223:cnx P:c14 . + P:exhaust-fan-in s223:cnx P:c14 . + + P:exhaust-fan-out s223:mapsTo P:air-exhaust . + P:pre-filter-in s223:mapsTo P:return-air . + + dependencies: + - template: duct + args: {"name": "c10", "a": "pre-filter-out", "b": "evaporative-cooler-in"} + - template: duct + args: {"name": "c11", "a": "evaporative-cooler-out", "b": "EAU-HRC-air-in"} + - template: duct + args: {"name": "c12", "a": "EAU-HRC-air-out", "b": "final-filter-in"} + - template: duct + args: {"name": "c13", "a": "final-filter-out", "b": "isolation-damper-in"} + - template: duct + args: {"name": "c14", "a": "isolation-damper-out", "b": "exhaust-fan-in"} + - template: exhaust-fan + args: {"name": "exhaust-fan", "out-mapsto": "air-exhaust"} + - template: evaporative-cooler + args: {"name": "evaporative-cooler"} + - template: filter + args: {"name": "pre-filter"} + - template: filter + args: {"name": "final-filter"} + - template: heat-recovery-coil + args: {"name": "EAU-HRC"} + - template: sensor + args: {"name": "ea-pressure-sensor", "property": "ea-sp", "where": "return-air"} + - template: sensor + args: {"name": "low-pressure-sensor", "property": "low-sp", "where": "air-exhaust"} + - template: static-pressure + args: {"name": "ea-sp"} + - template: low-static-pressure + args: {"name": "low-sp"} + - template: air-outlet-cp + args: {"name": "air-exhaust"} + - template: air-inlet-cp + args: {"name": "return-air"} + - template: vlv-dmp + args: {"name": "isolation-damper"} + + +heat-recovery-system: + body: > + @prefix P: . + @prefix quantitykind: . + @prefix qudt: . + @prefix unit: . + @prefix rdf: . + @prefix rdfs: . + @prefix s223: . + + P:name a s223:HRS, s223:System ; + rdfs:label "heat recovery system" ; + s223:contains P:MAU-HRC, P:EAU-HRC, P:HR-pmp, P:hrw-meter, + P:water-pressure-sensor ; + s223:hasProperty P:hrw_p . + dependencies: + - template: heat-recovery-coil + args: {"name": "MAU-HRC", "water-out": "EAU-HRC-water-in"} + - template: HR-pump + args: {"name": "HR-pmp"} + - template: HRC-BTU-meter + args: {"name": "hrw-meter"} + - template: heat-recovery-coil + args: {"name": "EAU-HRC"} + - template: sensor + args: {"name": "water-pressure-sensor", "property": "hrw-p"} + +process-chilled-water-system: + body: > + @prefix P: . + @prefix s223: . + @prefix rdfs: . + P:name a s223:System ; + rdfs:label "Chilled Water System" ; + s223:contains P:bypass-valve, P:lead-pchw-pump, P:standby-pchw-pump, + P:water-sp-sensor, P:water-diff-press_sensor, + P:chw-hx ; + s223:hasProperty P:water-sp, P:water-diff-press . + dependencies: + - template: chw-valve + args: {"name": "bypass-valve"} + - template: chw-pump + args: {"name": "lead-pchw-pump"} + - template: chw-pump + args: {"name": "standby-pchw-pump"} + - template: heat-exchanger + args: {"name": "chw-hx"} + - template: sensor + args: {"name": "water-sp-sensor", "property": "water-sp"} + - template: water-static-pressure + args: {"name": "water-sp"} + - template: sensor + args: {"name": "water-diff-press-sensor", "property": "water-diff-press"} + - template: water-differential-pressure + args: {"name": "water-diff-press"}