CROSS-REFERENCE TO RELATED PATENT APPLICATIONThis application claims the benefit of and priority to U.S. Provisional Patent Application No. 62/791,991 filed Jan. 14, 2019 and U.S. Provisional Patent Application No. 62/769,447 filed Nov. 19, 2018, the entirety of each of these patent applications is incorporated by reference herein.
BACKGROUNDThe present disclosure generally relates to building systems of a building. More particularly, the present disclosure relates to information management of building data, control of building equipment, and analytics generation for the building equipment.
In a building, multiple different sub-systems (e.g., environmental control, security, fire suppression, lighting, etc.) may exist. Furthermore, across multiple buildings, the same, or similar systems may also be implemented. Even though the sub-systems in a single building, or across multiple buildings, may be similar there is no efficient mechanism for implementing control applications, defining custom operating logic, generating user interface graphics or visualizations to display building data, and searching through and understanding building information. Software applications for performing building operations may be developed in a time inefficient manner, i.e., similar software may be developed multiple times for each of multiple sub-system implementations and/or for each of multiple different buildings.
SUMMARYSemantic Building ApplicationsOne implementation of the present disclosure is a building system for implementing building applications. The building system includes one or more memory devices configured to store instructions thereon, that, when executed by one or more processors, cause the one or more processors to receive a static semantic building application, wherein the static semantic building application comprises one or more operations and a first semantic description of the static semantic building application. The instructions cause the one or more processors to determine, based on building information describing a building and the first semantic description of the static semantic building application, one or more implementation details of a particular implementation of the static semantic building application, generate, based on the one or more implementation details, a dynamic semantic building application comprising the one or more operations and a second semantic description of the dynamic semantic building application, and operate the dynamic semantic building application.
In some embodiments, the dynamic semantic building application includes a performance requirement indicating whether performance results of the dynamic semantic building application operating are normal or abnormal. In some embodiments, the instructions cause the one or more processors to identify whether the static semantic building application is available to be implemented based on the building information and generate the dynamic semantic building application in response to a determination that the static semantic building application is available to be implemented. In some embodiments, the instructions cause the one or more processors to generate a resolution to resolve an operating conflict caused by the dynamic semantic building application and a second building application operating and operate the dynamic semantic building application based on the resolution.
In some embodiments, the first semantic description of the static semantic building application describes the static semantic building application with graph including nodes, each node of the nodes describing a characteristic of the static semantic building application, wherein the graph further includes relationships, the relationships relating the nodes to an identifier of the static semantic building application.
In some embodiments, the static semantic building application is at least one of a control application configured to control a piece of building equipment or an analytics application configured to analyze data of the piece of building equipment.
In some embodiments, the static semantic building application is a generic description of the dynamic semantic building application, wherein the dynamic semantic building application is specific implementation of the static semantic building application, wherein the second semantic description of the dynamic semantic building application comprises implementation details to operate the dynamic semantic building application.
In some embodiments, the instructions cause the one or more processors to determine the one or more implementation details of the static semantic building application by performing semantic reasoning with the building information describing the building and the first semantic description of the static semantic building application.
In some embodiments, the first semantic description of the static semantic building application comprises one or more performance criteria, wherein the one or more performance criteria define normal or abnormal behavior of the static semantic building application. In some embodiments, the instructions cause the one or more processors to generate the dynamic semantic building application by causing the second semantic description of the dynamic semantic building application to include the one or more performance criteria. In some embodiments, the instructions cause the one or more processors to receive operational data of the dynamic semantic building application resulting from an operation of the dynamic semantic building application and determine a performance result of the dynamic semantic building application based on the one or more performance criteria and the operational data.
In some embodiments, the one or more implementation details comprise a conflict between a first operation of a building application and a second operation of the dynamic semantic building application. In some embodiments, the instructions cause the one or more processors to generate the dynamic semantic building application by causing the second semantic description of the dynamic semantic building application to include one or more conflict resolution operations resolving the conflict between the first operation of the building application and the second operation of the dynamic semantic building application.
In some embodiments, the one or more implementation details comprise a dependency between a building application and the dynamic semantic building application. In some embodiments, the instructions cause the one or more processors to generate, based on the one or more implementation details, the dynamic semantic building application by causing the second semantic description of the dynamic semantic building application to include one or more dependency operations based on the dependency between the building application and the dynamic semantic building application.
In some embodiments, the dependency between the building application and the dynamic semantic building application indicates at least one of the dynamic semantic building application operates if the building application fails to meet a goal or the dynamic semantic building application receives an output of the building application as an input into the dynamic semantic building application.
In some embodiments, the building information defining the building is a semantic building model comprising a semantic building description of one or more systems of the building. In some embodiments, the instructions cause the one or more processors to determine the one or more implementation details by identifying a system target of the building defined by the semantic building model based on the first semantic description of the static semantic building application and the semantic building description.
In some embodiments, the first semantic description of the static semantic building application comprises a system target criteria. In some embodiments, the instructions cause the one or more processors to identify the system target by determine particular systems of the building meeting the system target criteria.
In some embodiments, the instructions cause the one or more processors to determine one or more second implementation details by identifying a second system target of the building defined by the semantic building model, generate, based on the one or more second implementation details, a second dynamic semantic building application comprising one or more second operations and a third semantic description of the second dynamic semantic building application, and operate the second dynamic semantic building application.
In some embodiments, the instructions cause the one or more processors to operate the dynamic semantic building application to control the system target, wherein the system target is located in the building. In some embodiments, the instructions cause the one or more processors to operate the second dynamic semantic building application to control the second system target, wherein the second system target is located in a second building.
Another implementation of the present disclosure is a method of implementing building applications. The method includes receiving, by a processing circuit, a static semantic building application, wherein the static semantic building application comprises one or more operations and a first semantic description of the static semantic building application and determining, by the processing circuit, based on building information describing a building and the first semantic description of the static semantic building application, one or more implementation details of a particular implementation of the static semantic building application. The method includes generating, by the processing circuit, based on the one or more implementation details, a dynamic semantic building application comprising the one or more operations and a second semantic description of the dynamic semantic building application and operating, by the processing circuit, the dynamic semantic building application.
In some embodiments, the first semantic description of the static semantic building application describes the static semantic building application with graph comprising a plurality of nodes, each node of the plurality of nodes describing a characteristic of the static semantic building application, wherein the graph further comprises a plurality of relationships, the plurality of relationships relating the plurality of nodes to an identifier of the static semantic building application.
In some embodiments, the static semantic building application is a generic description of the dynamic semantic building application, wherein the dynamic semantic building application is specific implementation of the static semantic building application, wherein the second semantic description of the dynamic semantic building application comprises implementation details to operate the dynamic semantic building application.
In some embodiments, determining, by the processing circuit, the one or more implementation details of the static semantic building application comprises performing semantic reasoning with the building information describing the building and the first semantic description of the static semantic building application.
In some embodiments, the first semantic description of the static semantic building application comprises one or more performance criteria, wherein the one or more performance criteria define normal or abnormal behavior of the static semantic building application. In some embodiments, generating, by the processing circuit, the dynamic semantic building application comprises causing the second semantic description of the dynamic semantic building application to include the one or more performance criteria. In some embodiments, the method further includes receiving, by the processing circuit, operational data of the dynamic semantic building application resulting from an operation of the dynamic semantic building application and determining, by the processing circuit, a performance result of the dynamic semantic building application based on the one or more performance criteria and the operational data.
In some embodiments, the building information defining the building is a semantic building model comprising a semantic building description of one or more systems of the building. In some embodiments, determining, by the processing circuit, the one or more implementation details comprises identifying a system target of the building defined by the semantic building model based on the first semantic description of the static semantic building application and the semantic building description.
Another implementation of the present disclosure is a building system for implementing building applications. The building system includes one or more memory devices configured to store instructions thereon and one or more processors configured to execute the instructions to receive a static semantic building application, wherein the static semantic building application comprises one or more operations and a first semantic description of the static semantic building application. The one or more processors are configured to execute the instructions to receive a semantic building model comprising a semantic building description of one or more systems of the building, determine, based on the semantic building description and the first semantic description of the static semantic building application, one or more implementation details of a particular implementation of the static semantic building application, wherein determining the one or more implementation details comprises identifying a system target of the building defined by the semantic building model based on the first semantic description of the static semantic building application and the semantic building description, generate, based on the one or more implementation details, a dynamic semantic building application comprising the one or more operations and a second semantic description of the dynamic semantic building application, and operate the dynamic semantic building application.
In some embodiments, the building system is at least one of a local system located within one or more physical buildings or a remote processing system located outside the one or more physical buildings.
Custom Logic GenerationAnother implementation of the present disclosure is a building system for implementing user defined logic. The building system includes one or more memory devices configured to store instructions thereon, that, when executed by one or more processors, cause the one or more processors to receive user input from a user device, the user input providing a natural language description of a building logic application for a piece of building equipment, retrieve a semantic logic application comprising a semantic description of the building logic application based on the natural language description and a semantic building model comprising a semantic building description of the piece of building equipment, generate a custom logic application based on the semantic logic application, the natural language description, and the semantic building model, and operate the custom logic application.
In some embodiments, the instructions cause the one or more processors to identify a conflict between the custom logic application and a second logic application occurring when the custom logic application and the second logic application operate, generate a resolution operation to resolve the conflict, and operate the custom logic application based on the resolution operation.
In some embodiments, the instructions cause the one or more processors to generate a user interface including an indication of the custom logic application and cause the user device to display the user interface.
In some embodiments, the building logic application is at least one of a control application configured to control the piece of building equipment or a fault detection application configured to detect a fault associated with the piece of building equipment.
In some embodiments, the semantic description of the semantic logic application describes the semantic logic application with a first graph including a first plurality of nodes, each node of the first plurality of nodes describing a first characteristic of the semantic logic application, wherein the first graph further includes a first plurality of relationships, the first plurality of relationships relating the first plurality of nodes to an identifier of the semantic logic application. In some embodiments, the semantic building description of the semantic building model describes the piece of building equipment with second graph comprising a second plurality of nodes, each node of the second plurality of nodes describing a second characteristic of the piece of building equipment, wherein the second graph further comprises a second plurality of relationships, the second plurality of relationships relating the second plurality of nodes to the piece of building equipment.
In some embodiments, the instructions cause the one or more processors to generate an update to the semantic building model, where the update comprises an indication of the custom logic application.
In some embodiments, the instructions cause the one or more processors to generate a second custom logic application based on a second semantic logic application, second user input, and the indication of the custom logic application of the semantic building model.
In some embodiments, the instructions cause the one or more processors to generate one or more logic inputs describing the building logic application by analyzing the natural language description. In some embodiments, the instructions cause the one or more processors to retrieve the semantic logic application based on the one or more logic inputs. In some embodiments, the instructions cause the one or more processors to generate the custom logic application based on the one or more logic inputs.
In some embodiments, the one or more logic inputs include a logic purpose describing a purpose of the building logic application, wherein the purpose is at least one of fault detection or equipment control, a logic condition, wherein the logic condition describes one or more conditions to check with an input, and a logic action to perform in response to the logic condition being a particular state.
In some embodiments, the instructions cause the one or more processors to retrieve the semantic logic application by selecting the semantic logic application from a plurality of different semantic logic applications based on the natural language description.
In some embodiments, the instructions cause the one or more processors to retrieve the semantic logic application from the plurality of different semantic logic applications and generate the custom logic application by performing semantic reasoning with the natural language description.
In some embodiments, the natural language description includes an indication of an action to perform, a conditional requirement for performing the action, and a purpose of the building logic application in a natural language form. In some embodiments, the instructions cause the one or more processors to select the semantic logic application from the plurality of different semantic logic applications based on the natural language description by identifying, based on a particular semantic description of each of the plurality of different semantic logic applications, the semantic logic application, wherein the semantic description of the semantic logic application indicates the action to perform, the conditional requirement for performing the action, the purpose of the building logic application.
Another implementation of the present disclosure is a method of implementing user defined logic. The method includes receiving, by a processing circuit, user input from a user device, the user input providing a natural language description of a building logic application for a piece of building equipment, retrieving, by the processing circuit, a semantic logic application comprising a semantic description of the building logic application based on the natural language description and a semantic building model comprising a semantic building description of the piece of building equipment, generating, by the processing circuit, a custom logic application based on the semantic logic application, the natural language description, and the semantic building model, and operating, by the processing circuit, the custom logic application.
In some embodiments, the semantic description of the semantic logic application describes the semantic logic application with a first graph including a first plurality of nodes, each node of the first plurality of nodes describing a first characteristic of the semantic logic application, wherein the first graph further comprises a first plurality of relationships, the first plurality of relationships relating the first plurality of nodes to an identifier of the semantic logic application. In some embodiments, the semantic building description of the semantic building model describes the piece of building equipment with second graph comprising a second plurality of nodes, each node of the second plurality of nodes describing a second characteristic of the piece of building equipment, wherein the second graph further comprises a second plurality of relationships, the second plurality of relationships relating the second plurality of nodes to the piece of building equipment.
In some embodiments, the method further includes generating, by the processing circuit, one or more logic inputs describing the building logic application by analyzing the natural language description. In some embodiments, retrieving, by the processing circuit, the semantic logic application is based on the one or more logic inputs. In some embodiments, generating, by the processing circuit, the custom logic application is based on the one or more logic inputs.
In some embodiments, the one or more logic inputs include a logic purpose describing a purpose of the building logic application, wherein the purpose is at least one of fault detection or equipment control, a logic condition, wherein the logic condition describes one or more conditions to check with an input, and a logic action to perform in response to the logic condition being a particular state.
In some embodiments, retrieving, by the processing circuit, the semantic logic application comprises selecting, by the processing circuit, the semantic logic application from a plurality of different semantic logic applications based on the natural language description.
In some embodiments, retrieving, by the processing circuit, the semantic logic application from the plurality of different semantic logic applications and generating, by the processing circuit, the custom logic application includes performing semantic reasoning with the natural language description. In some embodiments, the semantic reasoning is performed with a machine readable description which may be independent of, or derived from, the natural language description.
In some embodiments, the natural language description includes an indication of an action to perform, a conditional requirement for performing the action, and a purpose of the building logic application in a natural language form. In some embodiments, selecting, by the processing circuit, the semantic logic application from the plurality of different semantic logic applications based on the natural language description comprises identifying, based on a particular semantic description of each of the plurality of different semantic logic applications, the semantic logic application, wherein the semantic description of the semantic logic application indicates the action to perform, the conditional requirement for performing the action, the purpose of the building logic application.
Another implementation of the present disclosure is a system for implementing user defined logic. The system includes one or more memory devices configured to store instructions thereon. The system includes one or more processors configured to execute the instructions to receive user input from a user device, the user input providing a natural language description of a logic application for a piece of equipment, retrieve a semantic logic application comprising a semantic description of the logic application based on the natural language description and a semantic model comprising a semantic building description of the piece of building equipment by selecting the semantic logic application from a plurality of different semantic logic applications based on the natural language description, generate a custom logic application based on the semantic logic application, the natural language description, and the semantic model, and operate the custom logic application.
In some embodiments, the one or more processors execute the instructions to retrieve the semantic logic application from the plurality of different semantic logic applications and generate the custom logic application by performing semantic reasoning with the natural language description.
In some embodiments, the natural language description includes an indication of an action to perform, a conditional requirement for performing the action, and a purpose of the logic application in a natural language form. In some embodiments, the one or more processors execute the instructions to select the semantic logic application from the plurality of different semantic logic applications based on the natural language description comprises identifying, based on a particular semantic description of each of the plurality of different semantic logic applications, the semantic logic application, wherein the semantic description of the semantic logic application indicates the action to perform, the conditional requirement for performing the action, the purpose of the logic application.
In some embodiments, the system is at least one of a local system located within one or more physical buildings or a remote processing system located outside the one or more physical buildings.
User Interface Generation Based on Semantic ModelsOne implementation of the present disclosure is a building interface system for generating a custom user interface. The building interface system includes one or more memory devices configured to store instructions thereon, the instructions causing one or more processors to receive user input defining one or more graphical requirements from a user device. The instructions cause the one or more processors to retrieve a semantic building system model based on the one or more graphical requirements, wherein the semantic building system model comprises semantic information describing a building system, retrieve one or more graphic templates based on the semantic building system model and the one or more graphical requirements, the one or more graphic templates providing a generic description of one or more user interface elements, generate the custom user interface based on the one or more graphic templates and the semantic building system model, and cause the user device to display the custom user interface.
In some embodiments, the instructions cause the one or more processors to determine whether the user input has not been received, retrieve one or more default graphic templates in response to a determination that the user input has not been received, and generate a user interface based on the one or more default graphic templates and the semantic building system model.
In some embodiments, the one or more graphics templates are master templates for multiple implementations. In some embodiments, the instructions cause the one or more processors to generate multiple custom user interfaces based on one or more templates and multiple semantic building models, wherein each of the plurality of custom interfaces is generated based on one of the semantic building models.
In some embodiments, the instructions cause the one or more processors to retrieve the semantic building system model by determining an identify of the building system based on the one or more graphical requirements of the custom user interface and selecting the semantic building system model from a plurality of other semantic building system models based on the identity of the building system.
In some embodiments, the instructions cause the one or more processors to receive one or more modifications to the custom user interface and update the custom user interface based on the one or more modifications.
In some embodiments, the one or more graphic templates comprise a first template defining user interface elements for a particular type of building system, wherein the building system is the particular type of building system, wherein the semantic information comprises a node indicating the building system is the particular type of building system.
In some embodiments, the instructions cause the one or more processors to receive historical user input defining feedback on previous custom user interfaces. In some embodiments, the instructions cause the one or more processors to generate the custom user interface further based on the historical user input.
In some embodiments, the one or more graphical requirements include an indication of a purpose of the custom user interface, wherein the indication of the purpose is at least one of a first indication of fault detection diagnostics, a second indication of system monitoring, or a third indication system visualization.
In some embodiments, the semantic information of the semantic building system model describes the building system with a graph comprising a plurality of nodes, each node of the plurality of nodes describing a characteristic of the building system, wherein the graph further comprises a plurality of relationships, the plurality of relationships relating the plurality of nodes to an identifier of the building system.
In some embodiments, the instructions cause the one or more processors to generate the custom user interface based on the one or more graphic templates and the semantic building system model based on a first characteristic of the building system by identifying the first characteristic based on a first relationship between the identifier of the building system and a first node representing the first characteristic of the building system.
In some embodiments, the one or more memory devices store a plurality of templates comprising the one or more graphic templates, wherein the plurality of templates are predefined reusable templates.
In some embodiments, the instructions cause the one or more processors to receive second user input defining one or more second graphical requirements of a second custom user interface, retrieve a second semantic building system model comprising second semantic information describing a second building system, retrieve the one or more graphic templates based on the second semantic building system model and the one or more second graphical requirements, and generate the second custom user interface based on the one or more graphic templates and the second semantic building system model.
In some embodiments, the instructions cause the one or more processors to retrieve a second semantic building system model comprising second semantic information describing a second building system different than the building system. In some embodiments, wherein the instructions cause the one or more processors to retrieve the one or more graphic templates further based on the second building system. In some embodiments, the instructions cause the one or more processors to generate the custom user interface further based on the second semantic building system model.
In some embodiments, the custom user interface include interface information for the building system and the second building system.
In some embodiments, the building system and the second building system are at least one of a fire suppression system, a security system, a lighting system, or an environmental control system.
Another implementation of the present disclosure is a method of generating a custom user interface. The method includes receiving, by a processing circuit, user input defining one or more graphical requirements from a user device, retrieving, by the processing circuit, a semantic building system model based on the one or more graphical requirements, wherein the semantic building system model comprises semantic information describing a building system, and retrieving, by the processing circuit, one or more graphic templates based on the semantic building system model and the one or more graphical requirements, the one or more graphic templates providing a generic description of one or more user interface elements. The method includes generating, by the processing circuit, the custom user interface based on the one or more graphic templates and the semantic building system model and causing, by the processing circuit, the user device to display the custom user interface.
In some embodiments, the method includes retrieving, by the processing circuit, the semantic building system model includes determining, by the processing circuit, an identify of the building system based on the one or more graphical requirements of the custom user interface and selecting, by the processing circuit, the semantic building system model from a plurality of other semantic building system models based on the identity of the building system.
In some embodiments, the one or more graphic templates include a first template defining user interface elements for a particular type of building system, wherein the building system is the particular type of building system, wherein the semantic information comprises a node indicating the building system is the particular type of building system.
In some embodiments, the method includes receiving, by the processing circuit, historical user input defining feedback on previous custom user interfaces. In some embodiments, generating, by the processing circuit, the custom user interface is based on the historical user input.
In some embodiments, the semantic information of the semantic building system model describes the building system with a graph comprising a plurality of nodes, each node of the plurality of nodes describing a characteristic of the building system, wherein the graph further comprises a plurality of relationships, the plurality of relationships relating the plurality of nodes to an identifier of the building system.
In some embodiments, generating, by the processing circuit, the custom user interface based on the one or more graphic templates and the semantic building system model is based on a first characteristic of the building system by identifying the first characteristic based on a first relationship between the identifier of the building system and a first node representing the first characteristic of the building system.
Another implementation of the present disclosure is a system for generating a custom user interface. The system includes one or more memory devices configured to store instructions thereon and one or more processors configured to execute the instructions to receive user input defining one or more graphical requirements from a user device. The one or more processors are configured to execute the instructions to retrieve a semantic building system model based on the one or more graphical requirements, wherein the semantic building system model comprises semantic information describing a building system, wherein the semantic information of the semantic building system model describes the building system with a graph comprising a plurality of nodes, each node of the plurality of nodes describing a characteristic of the building system, wherein the graph further comprises a plurality of relationships, the plurality of relationships relating the plurality of nodes to an identifier of the building system. The one or more processors are configured to execute the instructions to retrieve one or more graphic templates based on the semantic building system model and the one or more graphical requirements, the one or more graphic templates providing a generic description of one or more user interface elements, generate the custom user interface based on the one or more graphic templates and the semantic building system model based on a first characteristic of the building system by identifying the first characteristic based on a first relationship between the identifier of the building system and a first node representing the first characteristic of the building system, and cause the user device to display the custom user interface.
In some embodiments, the system is at least one of a local system located within one or more physical building or a remote processing system located outside the one or more physical buildings.
Building Semantic Model SearchingAnother implementation of the present disclosure is a building system for searching a semantic building model. The building system includes one or more memory devices configured to store instructions thereon, wherein the instructions, when executed by one or more processors, cause the one or more processors to cause a user interface of a user device to display a plurality of nodes of the semantic building model and a plurality of relationships between the plurality of nodes of the semantic building model. The instructions cause the one or more processors to receive a search input from the user device, generate a search result based on the search input, wherein the search result comprises an indication of a portion of nodes of the plurality of nodes and a portion of relationships of the plurality of relationships, and cause the user interface to display the portion of nodes of the plurality of nodes and the portion of relationships of the plurality of relationships.
In some embodiments, the instructions cause the one or more processors to receive a selection via the user device, wherein the selection is at least one of a selection of one or more of the portion of nodes, a selection of one or more relationships of the portion of relationships, or a subgraph of a graph defined by the portion of nodes and the portion of relationships and generate and execute an application based on an application definition and the selection.
In some embodiments, the instructions cause the one or more processors to receive historical user input indicating feedback of a user of previous search results at a first point in time, the user input indicating preferred search results and store the historical user input. In some embodiments, the instructions cause the one or more processors to generate the search result further based on a learning model and the historical user input, wherein the search result is generated at a second point in time after the first point in time and is based on preferred search results.
In some embodiments, the search input is a natural language input defined by a user of the user device. In some embodiments, the instructions cause the one or more processors to generate a query based on the natural language input and generate the search result by generating the indication of the portion of nodes of the plurality of nodes by querying the semantic building model with the query.
In some embodiments, the search input includes a first indication of a first node of the plurality of nodes. In some embodiments, the instructions cause the one or more processors to generate the search result by identifying, based on the first node, the portion of nodes by identifying a plurality of first relationships between the first node and the portion of nodes of the plurality of nodes.
In some embodiments, the search input further includes a particular indication of a node type. In some embodiments, the instructions cause the one or more processors to generate the search result by identifying, based on the particular indication of the node type, the portion of nodes by identifying that the portion of nodes are the node type.
In some embodiments, the search input includes a first indication of a first node type, a second indication of a second node type, and a relationship indication of a relationship type relating the first node type and the second node type. In some embodiments, the instructions cause the one or more processors to determine whether the plurality of nodes includes one or more first nodes of the first node type and one or more second nodes of the second node type, determine whether the one or more first nodes are related to the one or more second nodes by one or more relationships of the plurality of relationships of the relationship type, and cause the portion of nodes of the plurality of nodes to include the one or more first nodes and the one or more second nodes and cause the portion of relationships of the plurality of relationships to include the one or more relationships in response to a determination that the plurality of nodes include the one or more first nodes of the first node type and the one or more second nodes of the second node type and the one or more first nodes are related to the one or more second nodes by the one or more relationships of the plurality of relationships of the relationship type.
In some embodiments, the search input is a shape drawn by a user on the user interface, wherein the instructions cause the one or more processors to generate the search result based on the shape.
In some embodiments, the instructions cause the one or more processors to determine whether the portion of nodes of the plurality of nodes displayed by the user interface are graphically within the shape drawn by the user. In some embodiments, the instructions cause the one or more processors to generate the search result to include the portion of nodes in response to a determination that the portion of nodes are graphically within the shape drawn by the user.
In some embodiments, the instructions cause the one or more processors to receive historical user input indicating feedback of a user of previous search results. In some embodiments, the instructions cause the one or more processors to generate the search result further based on a learning model and the historical user input.
In some embodiments, the instructions cause the one or more processors to receive, one or more interactions with the user interface causing the user interface to display one or more other nodes of the plurality of nodes and one or more other relationships of the plurality of relationships and update the historical user input to include the one or more interactions, the one or more other nodes, the one or more other relationships, and the search input.
Another implementation of the present disclosure is a method of searching a semantic building model. The method includes causing, by a processing circuit, a user interface of a user device to display a plurality of nodes of the semantic building model and a plurality of relationships between the plurality of nodes of the semantic building model, receiving, by the processing circuit, a search input from the user device, generating, by the processing circuit, a search result based on the search input, wherein the search result comprises an indication of a portion of nodes of the plurality of nodes and a portion of relationships of the plurality of relationships, and causing, by the processing circuit, the user interface to display the portion of nodes of the plurality of nodes and the portion of relationships of the plurality of relationships.
In some embodiments, the search input is a natural language input defined by a user of the user device. In some embodiments, the method further includes generating, by the processing circuit, a query based on the natural language input and generating, by the processing circuit, the search result by generating the indication of the portion of nodes of the plurality of nodes by querying the semantic building model with the query.
In some embodiments, the search input includes a first indication of a first node of the plurality of nodes. In some embodiments, generating, by the processing circuit, the search result comprises identifying, based on the first node, the portion of nodes by identifying a plurality of first relationships between the first node and the portion of nodes of the plurality of nodes.
In some embodiments, the search input further includes a particular indication of a node type. In some embodiments, generating, by the processing circuit, the search result comprises identifying, based on the particular indication of the node type, the portion of nodes by identifying that the portion of nodes are the node type.
In some embodiments, the search input includes a first indication of a first node type, a second indication of a second node type, and a relationship indication of a relationship type relating the first node type and the second node type. In some embodiments, the method further includes determining, by the processing circuit, whether the plurality of nodes includes one or more first nodes of the first node type and one or more second nodes of the second node type, determining, by the processing circuit, whether the one or more first nodes are related to the one or more second nodes by one or more relationships of the plurality of relationships of the relationship type, and causing, by the processing circuit, the portion of nodes of the plurality of nodes to include the one or more first nodes and the one or more second nodes and cause the portion of relationships of the plurality of relationships to include the one or more relationships in response to a determination that the plurality of nodes include the one or more first nodes of the first node type and the one or more second nodes of the second node type and the one or more first nodes are related to the one or more second nodes by the one or more relationships of the plurality of relationships of the relationship type.
In some embodiments, the search input is a shape drawn by a user on the user interface, wherein the method further comprises generating, by the processing circuit, the search result based on the shape.
In some embodiments, determining, by the processing circuit, whether the portion of nodes of the plurality of nodes displayed by the user interface are graphically within the shape drawn by the user. In some embodiments, generating, by the processing circuit, the search result comprises causing the search result to include the portion of nodes in response to a determination that the portion of nodes are graphically within the shape drawn by the user.
In some embodiments, the method further includes receiving, by the processing circuit, historical user input indicating feedback of a user of previous search results. In some embodiments, generating, by the processing circuit, the search result is based on a learning model and the historical user input.
In some embodiments, the method further includes receiving, by the processing circuit, one or more interactions with the user interface causing the user interface to display one or more other nodes of the plurality of nodes and one or more other relationships of the plurality of relationships and updating, by the processing circuit, the historical user input to include the one or more interactions, the one or more other nodes, the one or more other relationships, and the search input.
Another implementation of the present disclosure is a building system for searching a semantic building model. The building system includes one or more memory devices configured to store instructions and the semantic building model, wherein the semantic building model comprises a plurality of nodes and a plurality of relationships between the plurality of nodes and one or more processors configured to execute the instructions to cause a user interface of a user device to display the plurality of nodes of the semantic building model and the plurality of relationships between the plurality of nodes of the semantic building model. The one or more processors are configured to execute instructions to receive a search input from the user device, wherein the search input is a natural language input defined by a user of the user device, generate a search result based on the search input, wherein the search result comprises an indication of a portion of nodes of the plurality of nodes and a portion of relationships of the plurality of relationships, and cause the user interface to display the portion of nodes of the plurality of nodes and the portion of relationships of the plurality of relationships.
In some embodiments, the search input includes a first indication of a first node type, a second indication of a second node type, and a relationship indication of a relationship type relating the first node type and the second node type. In some embodiments, the one or more processors configured to execute the instructions to determine whether the plurality of nodes includes one or more first nodes of the first node type and one or more second nodes of the second node type, determine whether the one or more first nodes are related to the one or more second nodes by one or more relationships of the plurality of relationships of the relationship type, and cause the portion of nodes of the plurality of nodes to include the one or more first nodes and the one or more second nodes and cause the portion of relationships of the plurality of relationships to include the one or more relationships in response to a determination that the plurality of nodes include the one or more first nodes of the first node type and the one or more second nodes of the second node type and the one or more first nodes are related to the one or more second nodes by the one or more relationships of the plurality of relationships of the relationship type. The building system is at least one of a local system located within a physical building or a remote processing system located outside the physical building.
BRIEF DESCRIPTION OF THE DRAWINGSVarious objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the detailed description taken in conjunction with the accompanying drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.
FIG. 1 is a perspective view schematic drawing of a building with building systems, according to an exemplary embodiment.
FIG. 2 is a block diagram of a BMS which can be used to monitor and control the building ofFIG. 1, according to an exemplary embodiment.
FIG. 3 is a building semantic model system that can be implemented in the building ofFIG. 1, the building semantic model system including a building application manager, a custom logic generator, a user interface generator, and a semantic model searcher, according to an exemplary embodiment.
FIG. 4 is a block diagram of the building application manager configured to specify a building application in a form of semantic model and use the building semantic model to enable plug-and-play of the building application, according to an exemplary embodiment.
FIG. 5 is a block diagram of components of the building application manager ofFIG. 4 implementing a dynamic semantic control application based on a static semantic control application and a semantic building model, according to an exemplary embodiment.
FIG. 6 is a flow diagram of a process of implementing the dynamic semantic control application with the static semantic control application and the semantic building model that can be performed by the building application manager ofFIG. 4, according to an exemplary embodiment.
FIG. 7 is a block diagram of the custom logic generator of the building semantic model system ofFIG. 3 in greater detail configured to receive input from a user device and generate custom building logic based on the input, according to an exemplary embodiment.
FIG. 8 is a flow diagram of a process of receiving input from a user device and generating custom building logic based on the input that can be performed by the custom logic generator ofFIG. 3, according to an exemplary embodiment.
FIG. 9 is a block diagram of the user interface generator ofFIG. 3 in greater detail configured to automatically generate custom graphical user interfaces based on one or more semantic building models, according to an exemplary embodiment.
FIG. 10 is a flow diagram of a process of generating the custom graphical user interfaces based on the one or more semantic building models that can be performed by the user interface generator ofFIG. 9, according to an exemplary embodiment.
FIG. 11 is a user interface including environmental control components that can be generated by the user interface generator ofFIG. 9, according to an exemplary embodiment.
FIG. 12A is a user interface including security video feed components and some of the environmental control components ofFIG. 11 that can be generated by the user interface generator ofFIG. 9, according to an exemplary embodiment.
FIG. 12B is a user interface including graphic visualization of equipment of a building that can be generated by the user interface generator ofFIG. 9 based on a particular semantic building model, according to an exemplary embodiment.
FIG. 12C is a block diagram of the particular semantic building model used to generate the user interface ofFIG. 12B by the user interface generator ofFIG. 9, according to an exemplary embodiment.
FIG. 13 is a user interface for selecting one of multiple generated user interfaces and making modifications to the user interfaces that can be generated by the user interface generator ofFIG. 9, according to an exemplary embodiment.
FIG. 14 is a block diagram of the semantic model searcher of the building semantic model system ofFIG. 3 configured to receive a user search input and query semantic models to generate a search result, according to an exemplary embodiment.
FIG. 15 is a flow diagram of a process of receiving a user search input and querying the semantic models to generate the search result that can be performed by the semantic model searcher ofFIG. 3, according to an exemplary embodiment.
FIG. 16 is a user interface generated by the user interface manager of the building semantic model system ofFIG. 3 allowing a user to search through a semantic building model, according to an exemplary embodiment.
FIG. 17 is the user interface ofFIG. 13 where a user searches for information of a particular building, according to an exemplary embodiment.
FIG. 18 is the user interface ofFIG. 13 where a user searches for information of a particular building component within a particular building, according to an exemplary embodiment.
FIG. 19 is the user interface ofFIG. 13 where a user searches for information of particular building components associated with other building components located within a particular building, according to an exemplary embodiment.
FIG. 20 is the user interface ofFIG. 13 where the user provides a graphical input to filter information of the semantic building model where the results or selection can be dragged and dropped into a graphically defined building application, according to an exemplary embodiment.
FIG. 21 is the user interface ofFIG. 13 where a filtering result of the graphical input ofFIG. 17 is displayed to the user, according to an exemplary embodiment.
FIG. 22 is a semantic model of a building application, according to an exemplary embodiment.
FIG. 23 is a semantic model of a building and building equipment, according to an exemplary embodiment.
FIG. 24 is a block diagram of a system including a building management system (BMS) and a building cloud platform that provides collected building data and ingested building data to an artificial intelligence (AI) platform, according to an exemplary embodiment.
FIG. 25 is a block diagram of the system ofFIG. 24 where the BMS includes smart equipment and an analysis gateway configured to flag collected data, generate reliability timeseries, and publish equipment manufacturer information, according to an exemplary embodiment.
FIG. 26 is a block diagram of the system ofFIG. 24 where the building cloud platform includes a building model and an analysis platform for cleansing building data and providing the cleansed building data to the AI platform, according to an exemplary embodiment.
FIG. 27 is a block diagram of the system ofFIG. 24 where the system includes an input learning system for receiving user input and cleansing collected building data based on the user input, according to an exemplary embodiment.
FIG. 28 is a block diagram illustrating the smart equipment ofFIG. 25 in greater detail, according to an exemplary embodiment.
FIG. 29 is a block diagram of a timeseries generator that can be implemented by the smart equipment ofFIG. 25 or the building cloud platform ofFIG. 24 for generating a reliability timeseries, according to an exemplary embodiment.
FIG. 30 is a block diagram illustrating the building cloud platform ofFIG. 24 in greater detail, according to an exemplary embodiment.
FIG. 31 is a block diagram illustrating the AI platform in greater detail, according to an exemplary embodiment.
DETAILED DESCRIPTIONOverviewReferring generally to the FIGURES, systems and methods for semantic modeling in building systems are shown and described, according to various exemplary embodiments. A semantic model can be a conceptual data model which includes semantic information, e.g., relational logic. In some embodiments, a building system can generate and manage semantic building models which represent building information and utilize the semantic building models to implement control operations in a building, analyze data collected in the building, etc. The semantic building models can define physical building systems, for example, heating, ventilation, and air conditioning (HVAC) systems, security systems, lighting systems, fire suppression systems, etc. Furthermore, the semantic building models can define building applications. For example, control applications configured to operate the building systems, fault analysis applications configured to identify faults in the building systems, analytics applications configured to generate analytics for the building systems, etc.
The semantic building model can be defined by a semantic model framework, e.g., the Resource Description Framework (RDF), the Web Ontology Language (OWL), RDF/OWL, RDF Schema (RDFS), Smart Appliances REFerence (SAREF) ontology, etc. In some embodiments, a semantic building model can include multiple nodes and relationships in a graph format. The nodes can represent physical building components, e.g., buildings, systems, equipment, people, etc. and semantic information defining relationships between the buildings, systems, equipment, and people, e.g., an indication that one building component is located within another component, an indication that a first building component controls a second building component, etc. Furthermore, the nodes can represent building applications, e.g., the input to a building application, an output to a building application, a set of operations to perform on the input to generate the output, fault detection thresholds, etc.
Semantic Building ApplicationsBuildings are a major energy consumer. In some countries, buildings contribute to approximately 40% of energy use. Advanced control applications (e.g., distributed control, optimal control, adaptive control, artificial intelligence (AI) based control) can significantly reduce energy consumption of buildings (e.g., between 10-30% of total energy consumption in buildings). Furthermore, the control applications can improve occupant comfort, improve employee productivity, improve indoor air quality, reduce carbon emissions, etc.
In some cases, implementing energy savings control applications can be difficult in view of the expertise and configuration time required to deploy the control applications. For example, an individual implementing a control application may need to manually look different components in the building systems and/or the interconnections between the systems to understand how to implement the control applications. Furthermore, the individual may need to review control-related requirements of the building system to determine if a particular control application is applicable for the building system.
In order to efficiently implement building applications in a building, in some embodiments, a building system is configured to model pieces of control applications in a semantic framework, i.e., a semantic building control model. Based on inferencing techniques, the building system is configured to relate the control application to semantic building models and/or external ontologies (SSO) so that the control application can fully describe itself (e.g., describe itself in a complete manner providing appropriate equipment targets, operational results, inputs, outputs, etc.), which the building system can be configured to utilize to identify target systems to run the control application on. In this regard, the building system can automatically deploy the control applications on particular systems without requiring substantial manual intervention.
Furthermore, the semantic model, in some embodiments, is used by the building system to describe the expected behavior of the building application e.g., appropriate performance metric values identifying the performance of the building application. The building system is configured to use the semantic model of the building application to verify that that the building application is successfully initiated and behaving as expected. A user can predefine the building application in a semantic manner identify application requirements for the control application. For example, the requirements may indicate what systems an application is applicable for (e.g., applicable for systems with fan-coil units connected to air-cooled chillers for laboratory rooms, applicable for systems with two room temperature sensors with certain precision levels), etc. The control application can also include an indication of the expected performance and performance metrics to be used in identifying whether the application is behaving as expected. For example, the performance metric could be maximum water flow deviation and the expected behavior may be that the maximum water flow deviation within a particular range (e.g., within 30% of a particular value).
This building system is configured to deploy independent, portable building applications, in some embodiments. The building system can be configured to identify dependency between multiple different building applications, identify connections between the building applications, and/or automatically resolve conflicts between multiple building applications. For example, an application to optimize supply-fan operation and an application to optimize the coiling coils could conflict with each other although they control two different components. The building system can be configured to identify the conflict (e.g., a temperature control application may conflict with a supervisory temperature setpoint control application) and modify one or both of the control applications to resolve the conflict, e.g., identify a proper sequence of execution for the control applications that resolves the conflict. In some embodiments, the building system can configure the first running application to take precedence over any other subsequent application (a first come, first operation scheme). In some embodiments, the building system can configure the second application to run if the first application fails to meet a performance goal.
Custom Logic GenerationAs mentioned, buildings are one of the major energy consumers worldwide, contributing around 40% to the energy use in some countries. In some embodiments, rule-based control applications can improve the operation of existing equipment, reduce energy waste, detect and diagnose faults to increase equipment life, and/or improve user comfort. The rule-based control applications may require an expert programmer who understands the logic and the system against which the control algorithms are written. Therefore, an end user (e.g., building operator, facility manager, and occupant) may be hesitant to code and write such applications. If a developer writes the code, there is product development release cycle, which causes a delay in meeting the demand of the end user.
In some embodiments, a building system can be configured to allow a user to write control applications by providing natural language descriptions of the control application (e.g., typed or spoken keywords). The input can be provided in a literal sense, e.g., “create a trigger for all temperatures deviated from its set point by five degrees Fahrenheit in each room of my building.” Based on semantic modeling of a building, the building system can be configured to find all temperature sensors in each room of the building (not hallway or AHU since the request specified room), find set points for each room, create a difference criterion with a five degree Fahrenheit threshold, and/or create a list of binary points indicating the rooms that violate the criteria. This will also allow a user to create control rule-sets on the building system and gradually build upon predefined rule-sets.
Based on semantic models and ontologies for generic rule-based logics, along with inferencing and validation tools, the building system is configured to enable development of custom control applications with no need of proficient programmers or experts to provide explicit code descriptions of the applications. Because of this approach, the control algorithms can be easily ported to different systems or reused in a larger logic application without having multiple instances of code for the logic.
User Interface Generation Based on Semantic ModelsIn some embodiments, graphical user interfaces generated by a building system aid field technicians, building owners, facility managers, and/or occupants in understanding the operation of a building. Availability of intuitive, informative, and automatically generated graphical user interfaces can improve the process to configure a site, reduce equipment installation time, reduce commissioning time, reduce maintenance time, aid in debugging issues, identify opportunities to save energy, and/or improve comfort for occupants (e.g., identifying applicable retrofits). However, it may be a time consuming process to build graphical user interfaces in existing building systems and the flexibility of the graphical interfaces may be limited.
A semantic building model which defines a building and its systems (which can include indications of multiple different of subsystems within the building model), their connections with the other systems, and associations with sensors and/or software entities can be used to implement an automatic generation of graphics by the building system. This can be a modular approach allowing the building system reuse of components and graphics for different purposes.
For example, graphic files for small components such as coils, valves, dampers, empty VAV boxes, etc. can be generated and loaded into the building system. The building system can be configured to adapt the graphics files for different buildings or pieces of equipment. In this regard, as new components or subsystems are manufactured, there is no need to redesign the graphics for all the systems that contain the new components. Moreover, this also enables the building system to generate graphics on the fly and assigning the location of relevant points and data on the graphics.
In the case of maintenance or retrofit graphical user interface, the building system can identify that hardware and/or sensor points may be pertinent and cause the graphical user interface to include the points. In another case, for an occupancy tracking user interface, the hardware and/or sensor points may not be relevant and thus the building system may not include them in the occupancy tracking user interface. As another example, a graphical user interface focused on debugging a fan in an AHU (e.g., to determine why it is not turning on during optimal start and/or stop periods) can be generated by the building system and the building system may not include the same sensor point data in the maintenance user interface and instead include historical fan data of the AHU.
Constraints from the subsystems building semantic models can be automatically utilized by the building system to determine how to modify graphics, e.g., to determine whether or not to connect different substance resources graphics e.g., air, water, steam, etc. In this manner, a user can create custom graphic templates which can be modified to achieve a variety of implemented graphical user interfaces, e.g., faulty sensor graphics page for the entire system consisting of chiller, boiler, AHU, VAV, in a consolidated fashion. Furthermore, the graphical user interfaces can include data of multiple heterogeneous systems (fire systems, security systems, lighting systems, HVAC systems). The building system can be configured to generate a graphical user interface that combines together graphics of the systems to provide a uniform consistent experience to an end user.
Building Semantic Model SearchingIn some embodiments, the building system can be configured to implement a search mechanism to identify and filter a semantic building model such that a subset of the semantic building model is provided to a user for review. In some embodiments, the search mechanism can be configured to filter data of the semantic building model so that the end-user can obtain the desired data for a particular application they are interested in. The user may wish to understand components of a building to implement applications, e.g., supervisory control algorithms, fault detection and diagnostics applications, an application to apply bulk alarms, a data trending application, a data analytics application for monitoring and visualization, etc. The building system can be configured to allow for the domain knowledge (of buildings systems) to be considered when performing searches. Furthermore, because of database implementation constraints, a solution designed for one product targeted toward a specific market may not be economically and technically feasible for another product.
The building system can be configured to utilize domain knowledge, rule-sets, and/or machine learning algorithms to help the user to retrieve the desired end-result in a quick and efficient manner without requiring detailed or extensive inputs from a user. In some embodiments, the machine learning algorithms used by the building system can be total weighted least squares, clustering algorithms, etc. In some embodiments, the building system can include a mechanism to update the weights and/or tuning parameters of the machine learning algorithms (e.g., learning models) based historical selections made by the user.
In this regard, a user can be able to start with viewing an entire graph representation of the semantic model and provide keywords to the building system. For example, a user will be able to specify that the user is interested in “room temperatures of all the clean rooms served by single zone AHUs”. Based on the keywords, the building system can be configured to narrow down the entire graph representation to a subset of the graph representation that the user is interested in viewing. In some embodiments, the building system is configured to receive input from the user in the form of a free drawn line around building systems of the graph representation. Based on the free form line, the building system can be configured to determine subcomponents, points, controllers, etc. in an area defined by the line. The identified information can be presented by the building system to the user. Once the results have been narrowed down, the user may be able to drag either one component alone or a subsystem with constraints on the component. This provides an immediate indication and a visual confirmation of the sub-graph that is being considered based on combined concepts which the building system can be configured to utilize as feedback to update and train the machine learning algorithms.
Building with Building Systems
Referring now toFIG. 1, abuilding100 with asecurity camera102 and aparking lot110 is shown, according to an exemplary embodiment. Thebuilding100 is a multi-story commercial building surrounded by or near theparking lot110 but can be any type of building in some embodiments. Thebuilding100 can be a school, a hospital, a store, a place of business, a residence, an apartment complex, a hotel, an office building, etc. Thebuilding100 may be associated with theparking lot110.
Both thebuilding100 and theparking lot110 are at least partially in the field of view of thesecurity camera102. In some embodiments,multiple security cameras102 may be used to capture theentire building100 andparking lot110 not in (or in to create multiple angles of overlapping or the same field of view) the field of view of asingle security camera102. Theparking lot110 can be used by one ormore vehicles104 where thevehicles104 can be either stationary or moving (e.g. delivery vehicles). Thebuilding100 andparking lot110 can be further used by one ormore pedestrians106 who can traverse theparking lot110 and/or enter and/or exit thebuilding100. Thebuilding100 may be further surrounded or partially surrounded by asidewalk108 to facilitate the foot traffic of one ormore pedestrians106, facilitate deliveries, etc. In other embodiments, thebuilding100 may be one of many buildings belonging to a single industrial park, shopping mall, or commercial park having a common parking lot andsecurity camera102. In another embodiment, thebuilding100 may be a residential building or multiple residential buildings that share a common roadway or parking lot.
Thebuilding100 is shown to include adoor112 andmultiple windows114. An access control system can be implemented within thebuilding100 to secure these potential entrance ways of thebuilding100. For example, badge readers can be positioned outside thedoor112 to restrict access to thebuilding100. Thepedestrians106 can each be associated with access badges that they can utilize with the access control system to gain access to thebuilding100 through thedoor112. Furthermore, other interior doors within thebuilding100 can include access readers. In some embodiments, the doors are secured through biometric information, e.g., facial recognition, fingerprint scanners, etc. The access control system can generate events, e.g., an indication that a particular user or particular badge has interacted with the door. Furthermore, if thedoor112 is forced open, the access control system, via door sensor, can detect the door forced open (DFO) event.
Thewindows114 can be secured by the access control system via burglar alarm sensors. These sensors can be configured to measure vibrations associated with thewindow114. If vibration patterns or levels of vibrations are sensed by the sensors of thewindow114, a burglar alarm can be generated by the access control system for thewindow114.
Thebuilding100 can further include HVAC systems. For example, waterside systems, airside systems, building management systems, and/or various other HVAC systems can be included within thebuilding100. For example, equipment such as chillers, boilers, rooftop units, air handler units, thermostats, sensors, actuators, dampers, valves, and other equipment can be implemented within thebuilding100 to control the environmental conditions of thebuilding100. Examples of building equipment that can be implemented within thebuilding100 can be found in U.S. patent application Ser. No. 16/048,052 filed Jul. 27, 2018, the entirety of which is incorporated by reference herein.
Referring now toFIG. 2, a block diagram of a building management system (BMS)200 is shown, according to some embodiments.BMS200 can be used to monitor and control the devices of an HVAC system, a waterside system, an airside system,building subsystems428, as well as other types of BMS devices (e.g., lighting equipment, security equipment, etc.) and/or HVAC equipment.
BMS200 provides a system architecture that facilitates automatic equipment discovery and equipment model distribution. Equipment discovery can occur on multiple levels ofBMS200 across multiple different communications busses (e.g., a system bus254, zone buses256-260 and264, sensor/actuator bus266, etc.) and across multiple different communications protocols. In some embodiments, equipment discovery is accomplished using active node tables, which provide status information for devices connected to each communications bus. For example, each communications bus can be monitored for new devices by monitoring the corresponding active node table for new nodes. When a new device is detected,BMS200 can begin interacting with the new device (e.g., sending control signals, using data from the device) without user interaction.
Some devices inBMS200 present themselves to the network using equipment models. An equipment model defines equipment object attributes, view definitions, schedules, trends, and the associated BACnet value objects (e.g., analog value, binary value, multistate value, etc.) that are used for integration with other systems. Some devices inBMS200 store their own equipment models. Other devices inBMS200 have equipment models stored externally (e.g., within other devices). For example, azone coordinator208 can store the equipment model for abypass damper228. In some embodiments,zone coordinator208 automatically creates the equipment model forbypass damper228 or other devices onzone bus258. Other zone coordinators can also create equipment models for devices connected to their zone busses. The equipment model for a device can be created automatically based on the types of data points exposed by the device on the zone bus, device type, and/or other device attributes. Several examples of automatic equipment discovery and equipment model distribution are discussed in greater detail below.
Still referring toFIG. 2,BMS200 is shown to include asystem manager202;several zone coordinators206,208,210 and218; andseveral zone controllers224,230,232,236,248, and250.System manager202 can monitor data points inBMS200 and report monitored variables to various monitoring and/or control applications.System manager202 can communicate with client devices204 (e.g., user devices, desktop computers, laptop computers, mobile devices, etc.) via a data communications link274 (e.g., BACnet IP, Ethernet, wired or wireless communications, etc.).System manager202 can provide a user interface toclient devices204 via data communications link274. The user interface may allow users to monitor and/or controlBMS200 viaclient devices204.
In some embodiments,system manager202 is connected with zone coordinators206-210 and218 via a system bus254.System manager202 can be configured to communicate with zone coordinators206-210 and218 via system bus254 using a master-slave token passing (MSTP) protocol or any other communications protocol. System bus254 can also connectsystem manager202 with other devices such as a constant volume (CV) rooftop unit (RTU)212, an input/output module (IOM)214, a thermostat controller216 (e.g., a TEC2000 series thermostat controller), and a network automation engine (NAE) or third-party controller220.RTU212 can be configured to communicate directly withsystem manager202 and can be connected directly to system bus254. Other RTUs can communicate withsystem manager202 via an intermediate device. For example, awired input262 can connect a third-party RTU242 tothermostat controller216, which connects to system bus254.
System manager202 can provide a user interface for any device containing an equipment model. Devices such as zone coordinators206-210 and218 andthermostat controller216 can provide their equipment models tosystem manager202 via system bus254. In some embodiments,system manager202 automatically creates equipment models for connected devices that do not contain an equipment model (e.g.,IOM214,third party controller220, etc.). For example,system manager202 can create an equipment model for any device that responds to a device tree request. The equipment models created bysystem manager202 can be stored withinsystem manager202.System manager202 can then provide a user interface for devices that do not contain their own equipment models using the equipment models created bysystem manager202. In some embodiments,system manager202 stores a view definition for each type of equipment connected via system bus254 and uses the stored view definition to generate a user interface for the equipment.
Each zone coordinator206-210 and218 can be connected with one or more ofzone controllers224,230-232,236, and248-250 viazone buses256,258,260, and264. Zone coordinators206-210 and218 can communicate withzone controllers224,230-232,236, and248-250 via zone busses256-260 and264 using a MSTP protocol or any other communications protocol. Zone busses256-260 and264 can also connect zone coordinators206-210 and218 with other types of devices such as variable air volume (VAV)RTUs222 and240, changeover bypass (COBP) RTUs226 and252,bypass dampers228 and246, andPEAK controllers234 and244.
Zone coordinators206-210 and218 can be configured to monitor and command various zoning systems. In some embodiments, each zone coordinator206-210 and218 monitors and commands a separate zoning system and is connected to the zoning system via a separate zone bus. For example,zone coordinator206 can be connected toVAV RTU222 andzone controller224 viazone bus256.Zone coordinator208 can be connected toCOBP RTU226,bypass damper228,COBP zone controller230, andVAV zone controller232 viazone bus258.Zone coordinator210 can be connected toPEAK controller234 andVAV zone controller236 viazone bus260.Zone coordinator218 can be connected toPEAK controller244,bypass damper246,COBP zone controller248, andVAV zone controller250 viazone bus264.
A single model of zone coordinator206-210 and218 can be configured to handle multiple different types of zoning systems (e.g., a VAV zoning system, a COBP zoning system, etc.). Each zoning system can include a RTU, one or more zone controllers, and/or a bypass damper. For example,zone coordinators206 and210 are shown as Verasys VAV engines (VVEs) connected toVAV RTUs222 and240, respectively.Zone coordinator206 is connected directly toVAV RTU222 viazone bus256, whereaszone coordinator210 is connected to a third-party VAV RTU240 via awired input268 provided toPEAK controller234.Zone coordinators208 and218 are shown as Verasys COBP engines (VCEs) connected toCOBP RTUs226 and252, respectively.Zone coordinator208 is connected directly toCOBP RTU226 viazone bus258, whereaszone coordinator218 is connected to a third-party COBP RTU252 via awired input270 provided toPEAK controller244.
Zone controllers224,230-232,236, and248-250 can communicate with individual BMS devices (e.g., sensors, actuators, etc.) via sensor/actuator (SA) busses. For example,VAV zone controller236 is shown connected tonetworked sensors238 via SA bus266.Zone controller236 can communicate withnetworked sensors238 using a MSTP protocol or any other communications protocol. Although only one SA bus266 is shown inFIG. 2, it should be understood that eachzone controller224,230-232,236, and248-250 can be connected to a different SA bus. Each SA bus can connect a zone controller with various sensors (e.g., temperature sensors, humidity sensors, pressure sensors, light sensors, occupancy sensors, etc.), actuators (e.g., damper actuators, valve actuators, etc.) and/or other types of controllable equipment (e.g., chillers, heaters, fans, pumps, etc.).
Eachzone controller224,230-232,236, and248-250 can be configured to monitor and control a different building zone.Zone controllers224,230-232,236, and248-250 can use the inputs and outputs provided via their SA busses to monitor and control various building zones. For example, azone controller236 can use a temperature input received fromnetworked sensors238 via SA bus266 (e.g., a measured temperature of a building zone) as feedback in a temperature control algorithm.Zone controllers224,230-232,236, and248-250 can use various types of control algorithms (e.g., state-based algorithms, extremum seeking control (ESC) algorithms, proportional-integral (PI) control algorithms, proportional-integral-derivative (PID) control algorithms, model predictive control (MPC) algorithms, feedback control algorithms, etc.) to control a variable state or condition (e.g., temperature, humidity, airflow, lighting, etc.) in or around building10.
Semantic Building ModelingReferring now toFIG. 3, asystem300 is shown includingbuilding systems302, auser device304, and a buildingsemantic model system306, according to an exemplary embodiment. The buildingsemantic model system306 can be a system configured to implement building applications in one or multiple buildings via semantic building and application models, generate custom application logic based on user input and via the semantic building and application models, generate user interfaces via the semantic building and application models, and/or manage searching of the semantic building and application models. The buildingsemantic model system306 can be implemented for a particular building or for multiple buildings (e.g., thebuilding100 as described with reference toFIG. 1. Furthermore, thebuilding systems302 of thesystem300 can be the same as, or similar to the systems described inFIG. 1 andFIG. 2. Theuser device304 may be the same as or similar to theclient devices204 as described with reference toFIG. 2.
The buildingsemantic model system306 includes a processing circuit308 including aprocessor310 and amemory312. Theprocessor310 can be general purpose or specific purpose processors, application specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. Theprocessor310 may be configured to execute computer code and/or instructions stored in thememory312 or received from other computer readable media (e.g., CDROM, network storage, a remote server, etc.).
Thememory312 can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Thememory312 can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Thememory312 can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. Thememory312 can be communicably connected to the processor(s)310 via the processing circuit308 and can include computer code for executing (e.g., by the processor310) one or more processes described herein.
In some embodiments, the buildingsemantic model system306 is implemented on one or multiple servers. In some embodiments, the buildingsemantic model306 is implemented locally within a building or premises and/or is implemented remotely. In some embodiments, the buildingsemantic model system306 is implemented in a cloud computing system e.g., Amazon EC2, Microsoft Azure, and/or any other cloud computing system. In some embodiments, the components (e.g., thebuilding application manager322, thecustom logic generator324, theuser interface generator326, and/or the semantic model searcher328) of the buildingsemantic model system306 are services executed on various computing and/or server devices in a consolidated or distributed manner. The components can be configured to communicate via various networks (e.g., the Internet, Wi-Fi, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), Bluetooth, Zigbee, CAN, Bacnet, etc.). For example, each computing device and/or server can include multiple database storage systems, memory devices, and/or processors (e.g., similar to thememory312 and/or the processor310).
In some embodiments, the buildingsemantic model system306 is located within one or across multiple buildings (e.g., thebuilding100 ofFIG. 1). In this regard, the buildingsemantic model system306 may be configured to serve the one or multiple buildings and the various sub-systems (e.g., the building systems302) of the one or multiple buildings. In some embodiments, the buildingsemantic model system306 is remote from the one or multiple buildings. For example, the buildingsemantic model system306 may be hosted remotely and can be configured to receive data from the sub-systems of the one or multiple buildings via a network and/or communicate information (e.g., building applications, search results, user interfaces) to the one or multiple buildings or theuser device304.
The building semantic model system306 (e.g., the memory312) includes data storage and/or services, e.g., databases314-318,semantic managers320,building controller330, anduser interface manager332. The databases314-318 include asemantic model database318. The databases314-318 can be Oracle, MySQL, Microsoft SQL Server, PostgreSQL, DB2, and/or any other database or storage mechanism for storing data.
Thesemantic model database318 can be configured to store one or more semantic models defining the physical construction of a building and/or systems of the building or buildings and/or control applications for operating the building or buildings. The semantic models can be defined based on the semantic modeling frameworks of the Resource Description Framework (RDF), the Web Ontology Language (OWL), RDF/OWL, RDF Schema (RDFS), Smart Appliances REFerence (SAREF) ontology, etc.
Thesemantic model database318 can include one or more semantic building models defining the equipment, systems, spaces, areas, etc. and their relationships. For example, the semantic model can indicate that a building includes multiple different systems, each of the systems including multiple components located in various spaces of the building. In some embodiments, the semantic models define building applications for the building which indicate how the application should operate, what inputs the application should receive, what outputs the application should generate, the appropriate ranges of values for the output, etc.
In some embodiments, the semantic building models may include information in triples, i.e., semantic relationships between subjects (nodes), predicates (relationships), and objects (other nodes). An exemplary triple may be “Building 1 (the subject) has a (the predicate), air handler unit (the object)”. Other exemplary triples may be “Temperature trend application (the subject) has a (the predicate) temperature input (the object)” and/or “temperature trend application (the subject) generates a (the predicate) temperature trend (the object).” In some embodiments, the semantic information of the semantic building models may be in the form of quadruples or any other semantic logical definition.
An ontology can be used to define the nodes and relationships. The ontology can provide logical statements representing relationships and language for defining various nodes. Based on the definitions of the ontology, particular instances of the logical statements and/or nodes defined by the ontology can be implemented. In some embodiments, the ontology is OWL. In some embodiments, the ontology is the BRICK ontology which is described inBrick: Towards a Unified Metadata Schema For Buildingsby Balaji et al, the entirety of which is incorporated by reference herein. The ontology may define what terms are used to define the nodes and/or relationships. In some example, the ontology may be a building specific ontology. The nodes for the building system can be building equipment names, space, zone, building, floor, equipment, VAV, AHU, security panel, camera, light fixture, etc. Furthermore, the relationships can further be defined in the ontology. The relationships may be building specific relationships, e.g., controls, has, is part of, is located in, etc. The ontology may further define control applications. For example, the nodes of a semantically defined control applications can be, e.g., input, output, expected performance, performance metric, etc. The relationships can be “generates,” “receives,” “is verified with,” etc. In some embodiments, the ontology can be any defined ontology, e.g., Haystack, Ashrae, and/or a proprietary ontology. In some embodiments, the ontology can capture a model, desired behaviors, properties, and/or attributes of various entities.
The databases314-318 can include various interfaces for thesemantic managers320 to interact with the databases314-318. The interfaces can be various application programming interfaces (APIs) configured to facilitate reading from and/or writing to the databases314-318. In this regard, thesemantic managers320 can be configured to query information from the database314-318 by generating queries in a particular query language (e.g., SPARQL, RDQL, XSPARQL, SQL, etc.) which the interfaces of the databases314-318 can interpret.
Thegraphics templates database316 can include various user interface graphics templates defining one or multiple different graphical user interface layouts and/or graphical elements for the graphical user interfaces. In some embodiments, the templates indicate an entire layout for a graphical user interface in a templatized manner. For example, what information, and/or locations for the information within the graphical user interface, can be defined by various templates. For example, for a bank, the user interface template may include prominent display of security data of security systems in a user interface (e.g., in the center of the display) with air quality information displayed in a less prominent location within the building (e.g., on the bottom of the display). However, for a residential home, a template may exist which prioritizes air quality information and lighting information over security information.
In some embodiments, the graphics templates of thegraphics template database316 include graphic displays for particular data points of particular pieces of equipment. For example, a particular trend graph may exist for temperature data points. The template can be applicable for any temperature sensor, thermostat, or controller that collects and aggregates temperature data. Instead of defining a template for each device, a single template may exist that can be applied to each device.
The historicaluser input database314 can include input data received from theuser device304. For example, data collected pertaining to a user interacting with searching through building components of a building semantic model (e.g., as illustrated inFIGS. 13-18), user definitions of graphical interfaces, etc. can be included within the historicaluser input database314. Thesemantic managers320 can be configured to retrieve the historicaluser input database314 to generate new user interfaces and/or update searching mechanisms performed by thesemantic managers320 to adapt and improve the interfaces and/or searching over time.
Thesemantic managers320 include abuilding application manager322, acustom logic generator324, auser interface generator326, and asemantic model searcher328. Thebuilding application manager322 can be configured to utilize the semantic models of thesemantic model database318 to generate dynamic building applications which can be implemented by abuilding controller330. Thebuilding application manager322 can be configured to self-configure and/or self-deploy various semantically defined building applications to lower or eliminate the amount of time required for a user to implement building applications.
For example, based on a semantic building model defining a physical building and a static semantic building application defining a building application, thebuilding application manager322 can be configured to generate a dynamic building application which is a particular implementation of the static semantic building application. Thebuilding application manager322 can be configured to use the information of the semantic building model and the static semantic building application to identify targets (e.g., target equipment and/or target subsystems) for implementing the static semantic building application. Furthermore, various customizations and modifications can be made to the particular instance of the dynamic semantic building application.
Various linkages and/or dependencies between the dynamic building application and other building applications can be identified by thebuilding application manager322 and utilized in implementing the building application. Furthermore, when one building application conflicts with the operation of the dynamic building application, thebuilding application manager322 can make modifications to either building application so that both applications can operate without error.
Thecustom logic generator324 can be configured to generate custom building logic based on input received from theuser device304 which specifies the operation of the building logic but does not provide a concise operational definition of the logic. For example, the input may be spoken or typed words defining an application. Thesemantic model database318 can include various different types of control applications defined in a semantic web. The different control applications can be templates and thus, based on the user input, thecustom logic generator324 can select one of the control applications, and update the control application with the data of the user input.
For example, if a user indicates, “generate an alarm if temperature in the lobby falls below 60 degrees Fahrenheit.” Thecustom logic generator324 can search thesemantic model database318 that generates an alarm based on a variable falling below a threshold. Thecustom logic generator324 can be configured to set input data of the template to temperature data of the lobby (e.g., based on a semantic building model defining the lobby) and set the threshold of the template to be 60 degrees Fahrenheit (e.g., based on the user input). The custom logic can be run by thebuilding controller330 to generate an alarm whenever the temperature of the lobby falls below 60 degrees Fahrenheit.
As another example, if the user indicates, “if the temperature in the lobby of all the buildings in the site falls below 60 degrees Fahrenheit, generate an alarm,” thecustom logic generator324 can generate logic to monitor the appropriate temperatures. For example, thecustom logic generator324 can first identify what buildings are referenced by the user input (e.g., the user may use the name of each building individually, supply the name of the site, the user may be associated with a particular site, etc.). If the user provides the name of the site (e.g., Campus A) thecustom logic generator324 can identify all buildings with lobbies associated with the particular site based on the semantic information of a semantic building model.
The semantic building model may include a node for the site and nodes for each of the buildings of the site which can be related to the site via respective relationships. Some or all of the buildings may also be associated with lobbies which can also be represented by nodes and related to the respective building nodes via relationships. Thecustom logic generator324 can identify buildings associated with the site via the relationships between building nodes and the site node. Thecustom logic generator324 can further identify which of the buildings are associated with a lobby. Each building node can be associated with a space node via a relationship. The space node can be related to a “Lobby” type node via another relationship. Thecustom logic generator324 can identify the buildings associated with lobbies by identifying which building nodes are related to the site nodes via relationships and also which building nodes are related to a space node via another relationship where the space is related to a “Lobby” type node via another relationship.
For each of the identified buildings, thecustom logic generator324 can implement the alarm requested by the user. In some embodiments, the variable supplied in the user request, “lobby temperature,” can be identified for each of the buildings. For example, each lobby can be related to a zone temperature node via a relationship. Thecustom logic generator324 can generate a custom logic application configured to monitor a value of the zone temperature node and generate an alarm if the value falls below 60 degrees Fahrenheit. In some embodiments, thecustom logic generator324 generates a particular query that, when querying the building model, retrieves the value of the zone temperature node. The custom logic application can include the query and can be configured to query the model periodically according to the generated query to retrieve the value and compare the value to the threshold of 60 degrees Fahrenheit.
Theuser interface generator326 can be configured to generate custom graphical user interfaces based on user input, thegraphics templates database316, and the semantic models of thesemantic model database318. Furthermore, theuser interface generator326 can be configured to utilize the historical user input of the historicaluser input database314 to generate the custom graphical user interfaces. For example, theuser interface generator326 can be configured to identify, based on the user input, what type of graphics template is appropriate. For example, the user input may specify that the user would like to view security and lighting data together in a single interface. In this regard, theuser interface generator326 can be configured to select an appropriate interface template. Furthermore, based on the actual construction of the building and equipment of the building defined in a semantic building model of thesemantic model database318, theuser interface generator326 can generate the custom graphical user interface.
For example, a user may define, via their input, that they wish to generate a custom graphical user interface that displays a security feed of every camera in every conference room of a building. Theuser interface generator326 can be configured to select a user interface template from thegraphics templates database316 that defines a user interface with one or multiple video feeds. Theuser interface generator326 can analyze a building semantic model to identify which conference rooms include security cameras and cause the user interface to include the video feeds. However, if the number of security cameras in conference rooms change, as reflected in the semantic building model, theuser interface generator326 can be configured to automatically update the custom graphical user interfaces to reflect new video feeds or less video feeds.
Thesemantic model searcher328 can be configured to perform searching of semantic models of thesemantic model database318 based on search requests received from theuser device304. In some embodiments, the user input can be defined in a natural language. For example, the search request can be typed or alternatively spoken. The search request may be “Please show me security cameras that are not functioning” or “Show me VAV boxes inBuilding 1.” Thesemantic model searcher328 can be configured to generate a query based on the text input and query thesemantic model database318 to identify the information requested by the user. In some embodiments, the generation of the queries is generated based upon and/or machine learning. Based on historical user data, e.g., data of the historicaluser input database1110, thesemantic model searcher328 can learn from user requests and improve the information presented to a user by analyzing how a user interacts with a display screen after viewing search results.
For example, if a user inputs, “Air regulating equipment of building 1,” thesemantic model searcher328 may generate a query that retrieves all information for building 1 including both VAV boxes and AHUs. However, if the user interacts with the screen to view only the VAV boxes instead of the AHUs, or view the VAV boxes more prominently, thesemantic model searcher328 can learn that “air regulating equipment” should be interpreted as VAV boxes and not AHUs. Therefore, future queries can be adjusted.
Thebuilding controller330 can be configured to implement control and/or analysis of thebuilding systems302 with the dynamic building application generated by thebuilding application manager322 and/or thecustom logic generator324. Thebuilding controller330 can be configured to perform setting configuration updates which can be deployed to thebuildings systems302 to update operation of thebuilding systems302. In some embodiments, thebuilding controller330 performs control operates e.g., proportional, integral, derivative (PID) control, model predictive control, etc.
In some embodiments, thebuilding controller330 retrieves any semantic model, preconfigured and stored in thesemantic model database318, generated by thesemantic managers320, and/or updated by thesemantic managers320, and utilizes the semantic models to perform control and/or analysis of thebuilding systems302. In some embodiments, thebuilding controller330 utilizes the semantic models of thesemantic model database318 to understand data relationships, for example, thebuilding controller330 can identify that a particular VAV box manages a zone. A temperature sensor in the zone can measure temperature within the zone. Thebuilding controller330, can identify, based on the semantic models of thesemantic model database318 that the VAV and the sensor are related and that a control application (e.g., which may be defined based on a semantic model) should be used to control the operational parameters for the zone and/or VAV based on temperature measurements of the sensor.
Furthermore, in some embodiments, thebuilding controller330 can receive data from thebuilding systems302 and analyze the building data based on the semantic models. For example, the semantic models may define a fault detection application for parameters of thebuilding systems302. In this regard, based on the collected data and the fault detection application, thebuilding controller330 can determine whether faults have occurred in thebuilding systems302.
Theuser interface manager332 can be configured to manage user interfaces and cause theuser device304 to display the user interfaces. In some embodiments, the user interfaces managed by theuser interface manager332 are the user interfaces ofFIGS. 13-18. In some embodiments, theuser interface manager332 receives inputs from theuser device304 interacting with the user interfaces managed by theuser interface manager332. In this regard, theuser interface manager332 can respond to the interactions by performing page navigations, displaying requested data, etc. In some embodiments, theuser device304 generates search requests via the user interfaces managed by theuser interface manager332 and theuser interface manager332 can display the result of the search performed by thesemantic model searcher328 with the search requests. In some embodiments, the interface displayed by theuser interface manager322 can be generated by theuser interface generator326 such that theuser interface generator326 identifies components and/or connections between the components of a particular building system. Theuser interface generator326 can be configured to use the components and/or connections to generate a visual representation of the system indication where collected data (e.g., ambient condition measurements, control settings, etc.) should be displayed in the interface.
Semantic Building ApplicationsReferring now toFIG. 4, thebuilding application manager332 is shown in greater detail, according to an exemplary embodiment. Thebuilding application manager332 can be configured to implement a mechanism for self-configuring and self-deploying of building applications to implement plug-in-play building applications. Thebuilding application manager332 is configured to receive semantic models from thesemantic model database318, in some embodiments. Thebuilding application manager332 is configured to receive a staticsemantic building application400 from thesemantic model database318. The staticsemantic building application400 can be a control application for controlling a parameter or environmental condition of a building and/or may be an analysis application configured to monitor parameters and/or generate metrics. The staticsemantic building application400 can be static, i.e., it may not change and may be a generic description of a building application, i.e., it may not include specific implementation details.
The staticsemantic building application400 can be defined by a developer and stored within thesemantic model database318. Rather than being specific to particular implemented equipment, the staticsemantic building application400 can be generic, e.g., the staticsemantic building application400 could be a camera control application configured to control pan, tilt, zoom (PTZ) cameras of a building. Rather than being specific to a particular PTZ camera, the application can be generic such that it can be applied to any PTZ camera.
The staticsemantic building application400 includes multiple different nodes and relationship between the nodes. The nodes can include anapplication node406. Theapplication node406 may include a name or a value identifier indicating a particular instantiation of the staticsemantic building application400. Themodel implementer430 can assign theapplication node406 upon implementing the staticsemantic building application400 as the dynamicsemantic building application416. Furthermore, theapplication node406 can define sequences of operations to generate theoutputs402 based on theinputs404. The sequences of operations can be operational code, control models, etc. In some embodiments, the sequences of code are not stored directly within theapplication400 but are linked to theapplication400 and are stored in a code database. Theapplication node406 can be linked to various other nodes defining theapplication400 in greater detail, i.e., the nodes402-404 and408-412.
Thetype403 can be related to theapplication node406 and can define what type of application the staticsemantic building application400 is. For example, the type may indicate “Pressure Reset,” “Future Occupancy Projection,” “Temperature Control,” etc. and can define theapplication400. Theoutputs402 can be the data outputs of theapplication400. For example, for a temperature control application, theoutputs402 could be setpoint, heating stage or cooling stage activations, damper positions, etc. Similarly, theinputs404 can represent the input into theapplication400, for example, measurements (e.g., temperature, pressure, humidity, etc.), static equipment parameters (chiller size, damper range, etc.), etc.
The expectedbehavior408 can indicate the result of operating theapplication400. For example, the expectedbehavior408 may indicate nominal ranges for theoutputs402, nominal ranges of theperformance metrics412, etc. For example, for a building application controlling water flow, the expectedbehavior408 may indicate that the max water flow deviation must be within 30% of a target water flow. Theperformance metrics412 can be values generated by theapplication400 to represent the performance of theapplication400. For example, for an energy savings application, theperformance metrics412 may indicate a percentage of energy saved. For an occupancy prediction application, theperformance metrics412 can indicate how accurate the predictions for theapplication400 are.
Theexternal linkage410 may indicate other applications that theapplication400 is linked to. For example, an energy savings application may be linked to a temperature control application such that the energy savings application feeds the temperature control application a temperature setpoint that the setpoint control application uses to control temperature. Theother node414 indicates any other number of nodes that can be included in theapplication400. For example, thenode414 could indicate requirements for implementing theapplication400, e.g., the application can only be run for a system with fan-coil units connected to air-cooling chillers for a laboratory room. Furthermore, the criteria may be that theapplication400 only runs with sensors of particular precision levels or that a room that theapplication400 is implemented for must have two different room temperature sensors with particular precision levels. Based on such criteria, thesemantic analyzer418 can identify particular target systems for implementing theapplication400 on where the target systems meet the criteria specified by the nodes402-414 of theapplication400.
Thebuilding application manager322 includes asemantic analyzer418 configured to generate animplementation output432. Thesemantic analyzer418 can analyze the staticsemantic building application400, asemantic building model420, and/or other semantic building applications running in a building to generate theimplementation output432. Theimplementation output432 may define a particular implementation of the staticsemantic building application400. Based on theimplementation output432, themodel implementer430 can generate a dynamicsemantic building application416. The dynamicsemantic building application416 can be a particular instantiation of the staticsemantic building application400.
In this regard, one or multiple of the dynamicsemantic building applications416 can be generated based on the staticsemantic building application400. Furthermore, the staticsemantic building application400 could be implemented multiple times within a building or across various different buildings. This can speed up the time to develop building applications for buildings.
Thesemantic analyzer418 includes asemantic building model420. Thesemantic building model420 can define systems of a building in a semantic model. Thesemantic building model420 can provide thesemantic analyzer418 with an understanding of the physical construction of a building and/or the systems that operate the building. Based on thesemantic building model420 and the staticsemantic building application400, thesemantic analyzer418 can identify appropriate target systems and/or devices to run the staticsemantic building application400 on (e.g., generate an instantiation of the static semantic building application400).
Thesemantic analyzer418 can be configured to perform reasoning and/or inference to generate theimplementation output432. In some embodiments, thesemantic analyzer418 includes one ormultiple rule engines422. Therule engines422 can include one or multiple different rules for applying the staticsemantic building application400. For example, the rules may define that pressure resets applications apply to air handler units or that temperature regulation applications pertain to devices that control setpoint temperatures. In this regard, thesemantic analyzer418 can analyze thesemantic building model420 to identify appropriate target systems according to therule engines422 to implement thestatic building application400 on.
Thereasoners424 can be semantic reasons configured to reason an output or consequence of performing a particular action from a set of facts and/or axioms. In some embodiments, thereasoners424 include jcel, Pellet, Prova, RACER, RDF Sharp, and/or any other type of semantic reasoner. The facts can be information stored within theknowledgebase426. The information may be information of a building (e.g., size, type, age, types of systems, etc.) and/or information of systems of the building (e.g., equipment types, equipment points, etc.). In some embodiments, the facts can be the information of thesemantic building model420 and/or the staticsemantic building application400. Furthermore, the axioms utilized by thereasoners424 can be the same as and/or similar to the rules of therule engines422.
Thesemantic analyzer418 includes an integration andconstruction manager428, in some embodiments. The integration andconstruction manager428 can be configured to identify the appropriate method for instantiating an application. For example, the integration andconstruction manager428 can be configured to identify that one or multiple dynamicsemantic building applications416 are related and need to execute in a particular order, otherwise, the applications interfere and conflict with each other.
Theimplementation output432 can define a particular instantiation of the staticsemantic building application400. Theimplementation output432 can include asystem identification434. Thesemantic analyzer418 can identify one or multiple systems that the staticsemantic building application400 should be instantiated for. These targets can be generated as thesystem identification434.
The currently runningapplication identification436 can be an identification of any other application currently running for the identified systems indicated by thesystem identification434. Thesemantic analyzer418 can identify the currently running applications and generate the currently runningapplication identification436. For example, a zone controller may have a control application for controlling temperature. However, if the staticsemantic building application400 is an air quality application, themodel implementer430 may require an understanding of the temperature control application in order to implement the air quality application.
Theapplication connections438 may indicate how applications should be connected for operation. In some embodiments, multiple applications should be connected such that the output of one application feeds an input of another application. In some embodiments, the connections indication particular schedules for the applications to run in. For example, an air quality control application may require an input which indicates projected air quality data. Another application, can be configured to generate the projected air quality data. Theapplication connections438 may indicate that the output of the application generating the projected air quality data should be an input to the air quality control application. As another example, one application may be an energy savings application configured to control temperature of a building in an energy efficient manner. Another application may be a comfort application configured to operate temperature of a building to a comfortable temperature without taking into account energy usage. The applications can be linked such that during occupancy times, the comfort application is used but during non-occupancy times, the energy savings application is run.
Thesystem application availability440 can indicate whether the identified systems for running the staticsemantic building application400 are available to operate based on the staticsemantic building application400. For example, a system may currently be offline or otherwise inoperable. In such a circumstance, thesystem application availability440 may indicate that the system is unavailable to run the staticsemantic building application400.
The performance evaluation andrecommendations442 may indicate how the staticsemantic building application400 should operate. Thesemantic analyzer418 can generate the performance evaluation and recommendations443 based on the expectedbehavior408 of the staticsemantic building application400 and/or knowledge of the target system. For example, the expectedbehavior408 may provide an indication of an average temperate of a temperature control application should reach a setpoint in a particular length of time. However, based on information of the target system, e.g., the type of system, thesemantic analyzer418 can be configured to tune the length of time to be applicable for the target system.
Theimplementation output432 may further define application conflicts444. The application conflicts444 may indicate which applications conflict with each other and are not immediately compatible to be operated on the same equipment. For example, a building application to optimize the operation of a supply fan and a building application configured to optimize cooling coils may conflict with each other although they operate different pieces of equipment. In some embodiments, the application conflicts can further define a particular configuration of the dynamicsemantic building application416 that resolve the conflicts. For example, if thesemantic analyzer418 identifies a conflict of two applications, thesemantic analyzer418 can determine appropriate resolutions to the conflicts, e.g., that the applications run in particular orders and/or at particular times.
For example, a first control application of a first zone may control temperature of a first zone. A second control application of a second zone may control temperature of the second zone. However, when the first and second zones may be neighboring zones such that changes to one zone affect the other zone. In this regard, the two applications may conflict. However, the applications can be linked together by theapplication connections438 such that the applications run together to provide particular amounts of error in the zone such that the average error of both zones is minimized, resolving the control conflict. This resolution can be an extra constraint placed on the dynamicsemantic building application416 and can be represented as another node within the semantic description of the dynamicsemantic building application416.
As another example, a zone temperature control application may conflict with a supervisory temperature control application. Thesemantic analyzer418 can identify such a conflict by analyzing a currently implemented control application (e.g., the application416) to identify that the supervisory control application that controls temperature and may determine that theapplication400 also controls temperature. Themodel implementer430 may resolve the conflict between the two control applications by causing the zone control application to operate to a temperature setpoint set by the supervisory control application in order to resolve the conflict between the two applications.
Another resolution to the application conflicts444 may be to run a first application and determine whether the first application is successful and then subsequently run a second application if the first application is not successful. For example, if the supervisory control application fails to bring a temperature to a setpoint within a predefined amount of time, the zone control application can be configured by themodel implementer430 to only run if the supervisory control application fails to bring the temperature to the setpoint within the predefined amount of time.
Based on theimplementation output432, themodel implementer430 can be configured to generate the dynamicsemantic building application416. Themodel implementer430 can consider each of the outputs of theimplementation output432 and generate the application which they define. Thebuilding controller330 can retrieve the dynamicsemantic building application416 from thesemantic model database318 and cause the application to be run.
In some embodiments, themodel implementer430 determines whether to implement theapplication400 on a first come, first implemented basis. For example, the currently runningapplication identification436 indicates that there already is an application running to control a particular parameter, themodel implementer430 can be configured to determine not to implement theapplication400. However, if the application ceases to run or is deleted, themodel implementer430 can implement theapplication400.
In some embodiments, theapplication416 is similar to theapplication400, i.e., it includes a semantic description in a graph form, but theapplication416 includes specific implementation details, i.e., the nodes of theapplication416 are specific to its implementation while the nodes of theapplication400 are generic. In some embodiments, thebuilding controller330 can utilize the description of theapplication416 to identify whether the application is running properly. For example, expectedbehavior408 and/orperformance metrics412 may be included within theapplication416 and therefore, thebuilding controller330 can determine whether theapplication416 has been initiated properly and/or is behaving as expected. If theapplication416 is not behaving as expected, themanager322 can remove theapplication416 and/or reconfigure theapplication416 with new parameters.
Referring now toFIG. 5, components of thebuilding application manager322 are shown generating dynamic semantic building application from a static model and a building model, according to an exemplary embodiment.FIG. 5 includes thesemantic analyzer418 and themodel implementer430 as discussed in greater detail inFIG. 5. Thesemantic analyzer418 receives a particular semantic model representing a building application, a static semantic model duct pressure reset500. The duct pressure reset500 may define an application for resetting a duct pressure. Thereset500 can include an output, pressure setpoint501, an input,duct pressure input502, a description, resetsduct pressure504,performance metrics506, and a related application,fan speed application510.
Thesemantic building model420 is shown to include nodes indicating abuilding522, afan514, apressure setpoint516, asupply duct518, a return duct520, asupply duct pressure524, and areturn duct pressure524. Thesemantic building model420 can indicate that thefan514 is operated based on apressure setpoint516. Thefan514 can operate asupply duct518 which has a particularsupply duct pressure524.
Based on the static semantic modelduct pressure rest500, thesemantic building model420, and/or the other dynamic semantic control application (reset502), thesemantic analyzer418 can generate theimplementation output432 defining the dynamic semantic model duct pressure reset526 and its linkage to afan control application528. Thesemantic analyzer418 can identify thefan514 and/or thesupply duct518 as a target for thereset500 by identifying that thereset500 includes aninput duct pressure502 and a pressure setpoint501 which correspond to nodes used to control the pressure of themodel420, i.e.,pressure setpoint516 can correspond to pressure setpoint501 and theduct pressure input502 can correspond to thesupply duct pressure524. Similarly, thesemantic analyzer418 could include rules that indicate that any application with a “resets duct pressure” description (description504) is used to control a fan that operates a supply duct (e.g., thefan514 and the supply duct518).
Furthermore, theimplementation output432 may indicate that the dynamic semantic model duct pressure reset526 should be connected to thefan control application528. Theimplementation output432 can identify that an application relationship is required for the dynamic semantic model duct pressure reset526 since thereset500 includes a related application, thefan speed application510. In response to identifying the related application, thesemantic analyzer418 can identify an already existing fan control application for thefan514 and/or generate a new fan control application if one does not already exist. In some embodiments, thereset526 provides the pressure setpoint to thefan control application528 so that thefan control application528 can identify an appropriate fan speed based on the pressure setpoint.
Referring now toFIG. 6, aprocess600 for generating dynamic semantic building applications based on static semantic building applications is shown, according to an exemplary embodiment. In some embodiments, thebuilding application manager322 is configured to perform theprocess600. In some embodiments, thebuilding application manager322 utilizes thesemantic model database318 and the modes stored therein to perform theprocess600. The processing circuit308 and/or any other computing device described herein, can be configured to perform theprocess600.
Instep602, thebuilding application manager322 receives a static semantic building control application including multiple nodes describing the control application and relationships between the nodes. For example, thebuilding application manger322 can retrieve the staticsemantic building application400 from thesemantic model database318. Thebuilding application manager322 can retrieve theapplication400 periodically to determine whether theapplication400 needs to be implemented and/or in response to receiving a user request indicating to implement any application or theapplication400 specifically. In some embodiments, any time a new static model is defined by a user, themanager322 receives or retrieves the model to determine whether or where the application should be implemented.
Instep604, thebuilding application manager322 can perform reasoning on the static semantic building application and building information, e.g., a semantic building model, to determine one or more control application implementation outputs defining a particular implementation of the static semantic building application. For example, various rulesets and/or reasoning algorithms can be configured to identify what systems thatapplication400 could be implemented on, what conflicts theapplication400 would have with other applications and what the appropriate resolution to those conflicts would be, what links to other applications, etc. In some embodiments, thebuilding application manager322 uses thesemantic building model420 as a knowledgebase to perform the reasoning using the nodes of thesemantic building model420 to identify what systems theapplication400 could be implemented on.
Instep606, based the one or more control application implementation outputs, thebuilding application manager322 can generate a dynamic building control application. The dynamic building control application can be an instantiation of the static semantic building application where the dynamic semantic building application is customized according to the control application implementation outputs. The dynamic semantic building control application can be the dynamicsemantic building application416. Based on theapplication416, instep608, thebuilding controller330 can operate thebuilding systems302 and/or analyze data collected from thebuilding systems302.
Custom Logic GenerationReferring now toFIG. 7, thecustom logic generator324 is shown in greater detail, according to an exemplary embodiment. Thecustom logic generator324 can be configured to develop and/or implement rule based logic, e.g., rule-based fault detection, rule-based diagnostic generation, and/or rule-based supervisory control. In some embodiments, thecustom logic generator324 is configured to generate the rule-based logic without requiring programming and/or domain expert knowledge. For example, thecustom logic generator324 can be configured to receive definitions of logic in a natural language instead of in a code description.
Thecustom logic generator324 includes alogic generator708 is configured to receive custombuilding logic inputs700 defined by theuser device304 and generatecustom building logic744 that can be executed by thebuilding controller330. Theuser device304, via input from a user, can provide the custombuilding logic inputs700 to thelogic generator708. The custombuilding logic inputs700 may describe a logic application that the user wishes to operate. However, theinputs700 may be defined in text instead of code, i.e., in keywords and/or phrases in a natural language. Theinputs700 includelogic purpose702,logic conditions704, andlogic action items706.
Thesemantic logic application718 can be defined with a semantic description. Theapplication718 can include multiple nodes and relationships between the nodes. The nodes can be afault detection node736. Thenode736 can identify that the purpose of theapplication718 is to detect a fault. Similarly, thenode736 could be “Point Control” to identify that the purpose of theapplication718 is to control a particular point. The nodefaulty sensor731 may indicate the result of theapplication718, the identification of whether a particular sensor is faulty or not. Thetracking point738 may indicate the point which theapplication718 tracks to determine whether there is a fault. For example, the tracking point could be a temperature measurement, a valve position, etc. Thedeviation734 may indicate a value for a threshold. If thetracking point738 exceeds or falls below the threshold, thefault detection node736 can indicate that a sensor is faulty. Theanalytics740 may indicate the logic to compare thetracking point738 against thedeviation734. For example, theanalytics740 may indicate that thetracking point738 should be within a deviation indicated by thedeviation734 from a setpoint or that the tracking point783 should always be greater than a particular threshold.
In some embodiments, thelogic purpose702, thelogic conditions704, and thelogic action items706 are based on thenatural language input709. For example,custom logic generator324 can include aninput converter710 that can be configured to generate the custombuilding logic inputs700 based on thenatural language input709. In some embodiments, thelogic purpose702, thelogic conditions704, and thelogic action items706 are selected by the user from an available set of logic purposes and operations and action items.
As an example, thenatural language input709 may be “Create an alarm trigger for all temperatures deviating from a respective temperature setpoint by five degrees Fahrenheit in each room of building10.” Theinput converter710 can determine, based on theinput709, that thelogic purpose702 of the logic is fault detection by identifying the words “alarm trigger.” Theinput converter710 can identify thelogic conditions704 by analyzing the rules of thenatural language input709. For example, thelogic conditions704 may be to compare a particular value to a threshold, e.g., comparing temperature error between a measured temperature and a setpoint of each room of a particular building to the threshold identified in thenatural language input709. Thelogic action items706 may be the operations performed in response to thelogic conditions704 occurring. For example, iflogic action items706 may be to generate an alarm trigger in response to thelogic condition704 being true.
Thelogic generator708 includes inferencing andreasoning manager712 andrulesets714. The inferencing andreasoning manager712 can be the same as, or similar to, thereasoners424 as described with reference toFIG. 4 and can be configure to generate thecustom building logic744 based on the custombuilding logic inputs700. The inferencing andreasoning manager712 can be configured to implement jcel, Pellet, Prova, RACER, RDF Sharp, and/or any other type of semantic reasoning. In some embodiments, thelogic generator708 generates thecustom building logic744 according to rules of therulesets714 which may be user specific definitions of rules to apply to generate thecustom building logic744. In some embodiments, the inferencing andreasoning manager712 can include custom rules and/or rulesets. For example, the inferencing andreasoning manager712 can include custom rule templates to which the user can provide implementation details in order to implement custom reasoning and/or inference.
Thelogic generator708 is configured, in some embodiments, to receive and/or retrieve asemantic building model716 and/or asemantic logic application718 from thesemantic model database318. For example, thesemantic building model716 may be the same as or similar to thesemantic building model420 as described with reference toFIGS. 4-5. Thesemantic logic application718 can be the same as, or similar to, the staticsemantic building application400. In some embodiments, thesemantic building model716 provides a semantic description of a particular building or buildings. Thesemantic logic application718 provides a semantic description of a logic application, e.g., a logic application to identify a fault or condition and/or a logic application to control a parameter of a building.
Themodel716 includes multiple nodes720-732 and relationships between the nodes. InFIG. 7, nodes720-730 provide characteristics ofequipment732 in a semantic framework. Theequipment732 may be a node identifying the particular equipment, e.g., a sensor, an actuator, an AHU, etc. Theequipment732 may include a name of the equipment identifying the equipment, e.g., Actuator7, Sensor A, etc. Thenetwork device722 may represent a network device that the equipment utilizes to communicate via. Thedevice720 may represent a device of theequipment732, for an example, thedevice720 could be a damper when theequipment732 is a VAV box.
People724 may indicate users that are associated with the equipment whilepoint726 may represent a particular data point. For example, when the equipment is a humidity sensor, thepoint726 may represent a measured humidity. As another example, when theequipment732 is a VAV box, thepoint726 may represent a control point, e.g., a pressure setpoint and/or a damper position.Location730 may represent the location of the equipment, e.g., what room, building, state, or country theequipment732 is located. There may be any number of nodes related to theequipment732, these nodes are represented by node other 728.
Thelogic generator708 is, in some embodiments, configured to generate thecustom building logic744 based on the custombuilding logic inputs700. Thelogic generator708 can analyze the custombuilding logic inputs700 to identify which of multiple differentsemantic logic applications718 to select a logic application. For example, if thelogic purpose702 is fault detection, thelogic generator708 may select only fromsemantic logic applications718 appropriate for fault detection. Similarly, if thelogic purpose702 is for parameter control, thelogic generator708 may select only fromsemantic logic applications718 that implement parameter control.
Furthermore, based on thelogic conditions704, thelogic generator708 can select from thesemantic logic applications718. For example, if thelogic condition704 is to compare sensor readings to thresholds, thelogic generator708 is configured to select anapplication718 appropriate for comparing sensor measurements to a threshold. Furthermore, thelogic generator708 can be configured to analyze thelogic action items706 to select an application. For example, if thelogic action item706 is to generate an alarm in response to detecting a sensor measurement exceeding a threshold, thelogic generator708 may select a template the generates alarms for sensors where a sensor measurement exceeds the threshold. Similarly, if thelogic action item706 indicates that a particular point is updated according to a control algorithm in response to the sensor measurement exceeding a threshold, thelogic generator708 can select alogic application718 that operates a parameter based on a threshold comparison for a sensor.
Thelogic generator708 can ingest information into the selectedlogic application718 and generate thecustom building logic744 based on theapplication718 ingested with the data. For example, if thelogic conditions704 indicate a specific value for a threshold comparison, theapplication718 can be updated to include the specific threshold. Similarly, if the input to the threshold comparison is a data point of a particular piece of building equipment thelogic generator708 can identify the data point in themodel716 and update the input of theapplication718 to include the data point of themodel716 as an input.
Thecustom building logic744 generated by thelogic generator708 can be code generated according to the analyze of thelogic generator708 of the custombuilding logic inputs700. Thecustom building logic744 is, in some embodiments, theapplication718 in semantic form describing the logic to be performed with implementation data ingested into it by thelogic generator708. Thebuilding controller330 can be configured to implement thecustom building logic744 by using thecustom building logic744 to control thebuilding systems302 and/or perform fault analysis of thebuilding systems302. Furthermore, thelogic generator708 can generate semantic model control logic updates742. The logic updates742 may provide an ingestion of thecustom building logic744 into thesemantic building model716 so that thelogic generator708 can track whatbuilding logic744 is currently running. In some embodiments, thebuilding controller330 runs thecustom building logic744 from thesemantic building model716 where thecustom building logic744 is ingested. In some embodiments, multiple custom building logics can be combined together to create larger and/or more complicated operations. For example, a first logic application could generate an alarm. A second logic application could be connected to the first logic application (e.g., the output of the first logic is an input to the second logic) such that a particular control command is implemented in response to the alarm occurring.
In some embodiments, theupdates742 create new points for themodel716 based on points of thecustom building logic744. For example, an alarm condition may be a new point for a sensor or device in themodel716. Alternatively, a control output of thelogic744 may be added as a new node to themodel716.
In some embodiments, thecustom building logic744 includes one or multiple operations that resolve conflicts with other operating logic and/or building applications. For example, one application may generate an alarm if a monitored equipment setting exceeds a predefined amount. However, another application may perform a system test causing the setting to exceed the predefined amount intentionally. A resolution can be generated indicating an exception where thelogic744 does not generate an alarm when the system test application is executing. The conflicts and resolutions for thelogic744 can be the same and/or similar to the conflicts and resolutions generated by thebuilding application manger322 between building applications.
Furthermore, in some embodiments, theuser interface manager322 can be configured to generate a visual representation of thecustom building logic744. In some embodiments, thelogic744 may the same as and/or similar to the graphical nodes and relationships illustrated in theapplications718 inFIG. 7 but with incorporated implementation details. For example, a user interface could include a name of thelogic744 and an indication of the input nodes, the output nodes, etc. of thelogic744.
Referring now toFIG. 8, aprocess800 for generating building logic based on text input providing by a user, according to an exemplary embodiment. In some embodiments, thecustom logic generator324 is configured to perform theprocess800. In some embodiments, thecustom logic generator324 utilizes thesemantic model database318 and the models stored therein to perform theprocess800. The processing circuit308 and/or any other computing device described herein, can be configured to perform theprocess800.
Instep802, thecustom logic generator324 receives user input defining a building logic application. The input can be thenatural language input709 and can be a text input defining the building logic application in a natural language. In some embodiments, the text input is based on spoken natural language spoken by a user. The input can be literal, e.g., “Turn off lights in Zone A when occupancy has not been detected for thirty minutes.” As another example, the input can be, “Generate a fault if network communication is not received from a sensor for one day.”
Instep804, thecustom logic generator324 generates logic inputs based on the user input. For example, thecustom logic generator324 can use various natural language processing rules to generate a logical description of the building logic application, e.g., the custombuilding logic inputs700. Theinputs700 can describe the purpose of the logic, e.g., to perform control or to perform fault detection (e.g., the logic purpose702), the conditions of the logic (e.g., the logic conditions), and/or the action to take upon the conditions being true (the logic action items706).
Instep806, thecustom logic generator324 retrieves a semantic building model providing a semantic description of a building and a semantic logic application providing a semantic description of logic. Thecustom logic generator324 can retrieve the semantic logic application from a set of other applications based on the logic inputs. For example, thecustom logic generator324 can analyze a semantic description of each of the semantic logic applications to select one logic application, the applications can be analyzed to determine a logic application appropriate for theinputs700. For example, if the logic purpose is fault detection, the logic conditions are point comparison to a threshold, and thelogic action items706 is alarm generation, thecustom logic generator324 can analyze the semantic description of the applications to identify an application with nodes representing fault detection, point comparison to a threshold, and alarm generation respectively.
Instep808, thecustom logic generator324 generates the building logic application based on the retrieved building model and semantic logic application of thestep806. In some embodiments, the building logic application is generated by thecustom logic generator324 by creating a new version of the semantic logic application and causing the version to include ingested data from the building model and/or the logic description. For example, if the logic description identifies particular equipment that require the application, thecustom logic generator324 can identify the points for the particular equipment in the semantic building model and cause the building logic application to operate based on those points. Furthermore, for particular numerical inputs by the user, e.g., setpoint values, threshold values, etc., thecustom logic generator324 can cause the building logic application to include thresholds or operational points based on the logic description.
Instep810, thecustom logic generator324 can generate one or more updates to the semantic building model. The updates may be indications of the logic running on particular pieces of equipment (nodes in the semantic building model). The updates can be stored such that future logic implementations can be built on top of each other, e.g., one logic application generates an alarm point while another subsequent application operates equipment based on the alarm point. Instep812, thecustom logic generator324 causes the building logic application to perform control operations and/or generate analytics data according to the particular implementation of the building logic application, i.e., whether the logic application is an analytics application or a control application.
User Interface Generation Based on Semantic ModelsReferring now toFIG. 9, theuser interface generator326 is shown in greater detail, according to an exemplary embodiment. Theuser interface generator326 is configured to automatically generate high-fidelity graphics based on semantic models of building systems, the semantic models providing a semantic description of building components and the connections (relationships) between the building components. Theuser interface generator326 receive first systemsemantic model900 and secondsemantic model902. Themodels900 and902 can be stored in thesemantic model database318 and retrieved from theuser interface generator326. Themodels900 and/or902 can be the same as, and/or similar to, thesemantic building model716 as described with reference toFIG. 7 and/or thesemantic building model420 as described with reference toFIGS. 4-5.
In some embodiments, themodels900 and/or902 are combined within a single building model. For example, first systemsematic model900 may be a first portion of a semantic building model representing a first system of a building represented by the semantic building model. The second systemsemantic model902 can be a second portion of the semantic building model representing a second system of the building. In some embodiments, themodels900 and902 may represent different systems, e.g., themodel900 may represent a VAV and/or an AHU. Themodel902 may represent a security camera. Furthermore, themodel900 could represent all heating and/or cooling systems of the building while themodel902 could represent all security systems of the building. Themodels900 and/or902 can represent chillers, AHUs, VAVs, security cameras, access control systems, fire sprinkler systems, and/or any other type of building system.
Themodel900 may include nodes902-910. The nodes902-910 can be connected together through relationships semantically defining the relationships between the entities of themodel900. For example,equipment903 may be a node providing an indication of the equipment that themodel900 represents, e.g., “AHU 10,” “Zone 2 Camera,” etc. Thelocation906 may represent the location of theequipment903 and the relationships between theequipment903 and thelocation906 may indicate that theequipment903 is located within thelocation906.
Thepeople908 may represent people associated with theequipment903, the relationship between theequipment903 and thepeople908 may provide an indication of the relationship. Types of relationships could be “owns,” “provides service for,” etc. In this regard, the relationships between theequipment903 and thepeople908 could provide an indication of “Security Camera A is serviced by Security Company Y.” Thenetwork device904 may provide an indication of the networking device of the equipment represented bymodel900, e.g., a router and/or network switch used to provide communication to the equipment.Others910 may provide indications of other information of theequipment903, e.g., parameters of theequipment903, control algorithms of theequipment903, network addresses of theequipment903, etc. The nodes912-920 and the relationships there-between may be the same as, or similar to, the nodes902-910 of themodel900.
Theinterface generator921 is configured, in some embodiments, to generate acustom user interface942 based on themodels900 and/or902 (or any other semantic models). In some embodiments, themodels900 and/or902 may indicate sensors and/or points and/or sensor data that is tied thecustom user interface942, e.g., indications of points in the templates used to generate thecustom user interface942 can be defined according to the points of themodel900 and/or themodel902.
Theinterface generator921 is configured to receive, from theuser device304,graphical requirements936 defining a user preferred graphical requirement of thecustom user interface942. Thegenerator921 includes arequirements manager934 configured to receive thegraphical requirements936 and perform any translation of the graphical requirements936 (e.g., natural language processing) necessary to implement thecustom user interface942 based on thegraphical requirements936. Examples of graphical requirements may be that thecustom user interface942 is an interface for a bank, a hospital, a commercial office building, etc.Such requirements936 may be a non-specific description of thecustom user interface942 but may instead define a purpose of thecustom user interface942. For example, if thegraphical requirements936 could indicate that the purpose of thecustomer user interface942 is for security monitoring, temperature control, tenant temperature control, etc. Thegraphical requirements936 can also be specific requirements, e.g., the requirement may be that thecustom user interface942 include both security camera feeds and zone temperature data, that thecustom user interface942 only provide an indication of indoor security camera feeds, only outdoor security camera feeds, security camera feeds for a user defined set of building zones, etc.
In some embodiments, thegraphical requirements936 provide an indication of the purpose of thecustom user interface942. For example, the purpose may be fault detection diagnostics (FDD), equipment monitoring, and/or graphical visualization of the equipment. In this regard, one or multiple templates of thegraphics templates938 may each be associated with one of the purposes. The input may indicate FDD for a particular AHU, equipment monitoring of the particular AHU, and/or graphical visualization of the AHU. Although the same semantic model for the particular AHU can be used to generate thecustom user interface942, the templates may each provide a unique implementation for a particular type of user interface.
Theinterface generator921 receivesgraphics templates938. Thegraphics templates938 may be equipment specific graphical components defining graphical interface elements describing the operation of particular equipment. For example, one template of thegraphics templates938 may provide an indication of a security camera feed component. Such a component can be applicable for any type of security camera in a building and therefore, the component can be applied to any camera of the building. Likewise, thetemplates938 can define specific layouts of components. For example, a tenant user interface may indicate that zone temperature elements should be included along with a lobby camera feed in particular regions within a user interface. Similar layout constructions may exist for any hospitals, office buildings, etc. Therefore, theinterface generator921 is configured to select layout templates based on the graphical requirements936 (e.g., if thegraphical requirements936 indicate a hospital, theinterface generator921 can retrieve a hospital template layout from the graphics templates938). In some embodiments, thetemplates938 are “master templates” where the templates can be instantiated for one or multiple different buildings and/or subsystems. Such “master templates” can reduce the time required to implement a user interface for a particular building and/or subsystem.
In some embodiments, thegraphical requirements936 may provide a site target indication. For example, the site target could be on the zone, floor, building, and/or city level. In this regard, acustom user interface942 could be generated for different buildings according to the equipment of each specific building as defined by an associated semantic model for each building. The semantic models for the buildings can be stored by thesemantic model database318.
Theuser interface generator326 can receivehistorical user inputs940. Thehistorical user inputs940 can be user inputs defining definitions, modifications, and/or other feedback on thecustom user interface942 and/or any user input. For example, for a particular user interface building fromvarious graphics templates938, the user could provide an indication that the user interface “applies to all AHUs.” In this regard, theinterface generator921 is configured to utilize thehistorical user inputs940 to perform reasoning to generate thecustom user interface942.
Theuser interface generator326 includes system andcomponent identifier922. Theidentifier922 can be configured to identify which devices, equipment, and/or systems need to be used to generate thecustom user interface942. For example, based on thegraphical requirements936, theidentifier922 can be configured to determine what components are referenced. For example, if thegraphical requirements936 indicates that thecustom user interface942 is for a particular business application that requires zone temperature. Theidentifier922 can be configured to searchsemantic model database318 to identify systems and/or equipment that indicate zone temperature.
Interface generator921 includes agraphics library renderer924. Therenderer924 can be configured to select (or can receive an indication of a selection of) anappropriate graphics template938 from thegraphics templates938 and render any necessary graphics library for the retrieved template. The library can include any necessary code and/or graphics data necessary for implementing the particular template or templates. In some embodiments, each template is linked to, or otherwise includes, a graphics library that therenderer924 is configured to render.
Graphics reconstructor926 is configured to generate theuser interface942. In some embodiments, thereconstructor926 is configured to generate theuser interface942 based on themodels900 and/or902. For example, based on a selected template from thegraphics templates938 and/or the associated graphics library rendered by therenderer924, thereconstructor926 is configured to generate thecustom user interface942. In some embodiments, the graphics templates can be predefined and stored in the graphics library. In some embodiments, a user may create one or multiple templates for user in generating theuser interface942. In some embodiments, the graphics reconstructor926 can be configured to operate a software application for generating the user interface942 (e.g., as illustrated byFIG. 13). In some embodiments, the first time the application is run (or the first time a particular user operates the application) the graphics reconstructor926 can prompt the user for the templates. In some embodiments, the user may provide a visual indication of the templates by dragging and dropping elements, may provide a verbal description of the templates, and/or may provide file locations of the templates to be loaded by the graphics reconstructor926. In some embodiment, there are a set of default graphics templates that can be utilized if no input is received from the user.
Graphics rules andconstraints928 may define a set of requirements for generating thecustom user interface942. Theinterface generator921 is configured to generate thecustom user interface942 in compliance with the graphics rules andconstraints928. In some embodiments, the graphics rules andconstraints928 are predefined by a user (e.g., temperature setpoint for a zone should be generated based on temperature measurements of building zone temperature sensors of an environmental control system and not fire sensors in the same zone that may include temperature sensing equipment). Furthermore, thecustom user interface942 may include visual graphics, e.g., an AHU visual graphical representation feeding air into a VAV visual graphical representation. The graphic rules andconstraints928 can indicate that the graphics can only be connected according to like resources (which can be identified from themodels900 and/or902). For example, the AHU and VAV can be connected since the AHU provides the resource air while the VAV receives the resource air, i.e., they both rely on the same resource. The resources can be any kind of resource, e.g., air water, steam, electricity, etc.
Theinterface generator921 can include inference andreasoning manager930 andsemantic rulesets932. The inference andreasoning manager930 can be the same as and/or similar to thereasoners424 as described with reference toFIG. 4 while thesemantic rulesets932 can the same as, or similar to, therule engines422 as described with reference toFIG. 4. The inference andreasoning manger930 can be configured to perform semantic reasoning based on the models of thesemantic model database318 to select themodels900 and/or902 based on thegraphical requirements936. Themanager930 can be configured to implement jcel, Pellet, Prova, RACER, RDF Sharp, and/or any other type of semantic reasoning. Theinterface generator921 can perform semantic reasoning to select appropriategraphical templates938 from thegraphics templates938 based on thegraphical requirements936. In some embodiments, the reasoning performed by theinterface generator921 with the inference andreasoning manager930 and/or thesemantic rulesets932 is adapted overtime based on thehistorical user inputs940. Thesemantic rulesets932 can include one or more rules defining the generation of theinterface942 from themodel900, themodel902, and/or thegraphical requirements936.
Thecustom user interface942 generated by theinterface generator921 can be provided byinterface generator921 to theuser interface manager332. Thecustom user interface942 can be provided by theuser interface manager332 to theuser device304 to be displayed on a display of theuser device304. In some embodiments,user interface manager332 ingests data into thecustom user interface942 collected from thebuilding systems302 by thebuilding controller330. In some embodiments, the data ingested into thecustom user interface942 are the results of applications generated by thebuilding application manager322 and/or thecustom logic generator324. Furthermore, in some embodiments, theinterface generator921 generates multiple user interfaces. The semantic reasoning performed by theinterface generator921 can generate multiple differentcustom user interfaces942. In some embodiments, thegenerator921 selects a predefined number of the user interfaces and provides them to theuser interface manager332 for review and selection by the user of theuser device304. For example, theinterface generator921 can assign a compliance metric indicating how closely thegraphical requirements936 are met by the generated interface. Any interfaces with a compliance metric above a predefined amount, or a predefined number of the interfaces with the highest compliance metric can be provided to the user for selection.
Referring now toFIG. 10, aprocess1000 of generating a custom graphical user interface based on semantic building system model is shown, according to an exemplary embodiment. In some embodiments, theuser interface generator326 is configured to perform theprocess1000. In some embodiments, theuser interface generator326 utilizes thesemantic model database318 and the modes stored therein to perform theprocess1000. The processing circuit308 and/or any other computing device described herein, can be configured to perform theprocess1000.
Instep1002, theuser interface generator326 receives user input defining one or more graphical requirements of the graphical user interface. In some embodiments, theinterface generator921 receives thegraphical requirements936 from theuser device304 in the form of a text input, a set of predefined selectable options, etc. Thegraphical requirements936 may define the purpose of the custom graphical user interface, e.g., whether the interface will be used to perform fault analysis, building control, security monitoring, etc.
Instep1004, theuser interface generator326 retrieves a first semantic building system model of a first building system and a second semantic building system model of a second different building system based on the one or more graphical requirements. The models can be selected to fulfill the graphical requirements. For example, if the graphical requirements indicate that the custom user interface should provide an indication of lighting on particular floor, theuser interface generator326 can select a semantic building model of lighting systems for the particular floor.
In some embodiments, the models are the first systemsemantic model900 and/or the second systemsemantic model902. In some embodiments, any number of different models can be retrieved, e.g., one or multiple. Building the custom user interface based on multiple different building system models allows a custom user interface to be generated to provide a graphical interface for first systems, security systems, lighting systems, and/or HVAC systems integrated into one or multiple different user interfaces.
Instep1006, theuser interface generator326 retrieves one or more graphical templates based on the one or more graphical requirements and the first semantic building system model and the second semantic building system model. For example, theuser interface generator326 can analyze thegraphical requirements936 to identify that the user wishes to view camera feeds of a security system. The first systemsemantic model902 may indicate various cameras of a building. In this regard, theuser interface generator326 can identify, based on the cameras, what camera templates of thegraphics templates938 would be applicable for thecustom user interface942. For example, thegraphics templates938 may include a first video feed template for PTZ cameras where the template includes elements (pan, tilt, and zoom) for controlling the camera and another element for viewing the camera feed of the PTZ cameras. A second template may exist for cameras which are static and do not move, i.e., they may only include the camera feed element and not the control elements.
In step1008, theuser interface generator326 generates the custom graphical user interface based on the one or more graphic templates, the first semantic building system model, and the second semantic building system model. Theuser interface generator326 can compile and instantiate the graphics templates according to the construction of the building systems semantically defined by the first and second semantic building models. Instep1010, the generated custom user interface can be implemented and a user device can display the graphical user interface.
Referring now toFIGS. 11-12A, auser interface1100 includingenvironmental control elements1106 and a security andenvironmental control interface1200 including some of the same components as theinterface110 are shown, according to an exemplary embodiment. Theuser interface1100 and/or theinterface1200 can be generated by theuser interface generator326 ofFIG. 9, in some embodiments. Theinterface1100 can be thecustom user interface942. Theenvironmental control elements1106 provide an indication of zone temperatures for three zones, Zones A, B, and C viaelements1108,1112, and/or1116. Furthermore, setpoints for each of the Zones A, B, and C are provided by theelements1110,1114, and1118. Theinterface1100 can provide the user with the ability to control the zone setpoints of multiple zones via a single user interface. Furthermore, theelement1102 can provide a user with an indication of an average zone temperature while thezone map1104 can provide a user with an indication of a building map indicating where zones for which information is provided by theenvironmental control elements1106 are located within the building.
Theinterface1100 may be defined generically according to one or multiple different templates of thegraphics templates938. For example, in some embodiments, one graphics template of thegraphics templates938 may indicate a particular layout of other graphics templates for use in a control interface. For example, the templates can be hierarchical, i.e., one template relies upon other templates. For example, the control interface template can reference an average zone element template, an environmental control components template, and a zone map template, each defining theelements1102,1106, and1104 respectively. Another template, e.g., a security and environmental control template, may rely on some of the same templates, and therefore, templates can be reused.
For example, security andenvironmental control interface1200 may be defined on a security and environmental control template. The template can reference templates defining theelements1106 and1102 which may be the same as the template used to define theinterface1100. However, the security and environmental control template may further reference a template defining asecurity feed element1202 which can provide a user with an active security feed where activity has been detected.
Referring now toFIG. 12B, an airsystem control interface1202 is shown providing a graphical representation of VAVs, AHUs, and controllers of a building, according to an exemplary embodiment. Theinterface1202 can includegraphical representation1204 and control elements, the updateAHU settings element1220, the update zoneA setpoint element1222, the update zoneB setpoint element1224, and the implementcontrol settings element1226. Theuser interface generator326 can be configured to generate the interface12B based on asemantic building model1228 illustrated inFIG. 12C. In some embodiments, theuser interface manager332 is configured to implement theinterface1202 and cause theuser device304 to display theuser interface1202 in addition to receiving and/or implementing input received from theuser device304 via theuser interface1202.
Thegraphical representation1204 can include multiple graphical elements. The graphical elements can be graphic templates for particular pieces of equipment. These graphic templates can be stored as part of thegraphics templates938. For example, there may be a particular “controller” graphical template used to generate theAHU controller element1218, the zoneA controller element1206, and/or the zoneB controller element1208. Furthermore, an “AHU” graphical template can be used to implement the buildingA AHU element1216. There may be a “VAV” template that can be used to implement the zoneA VAV element1210 and/or the zoneB VAV element1214.
In theinterface1202, theAHU controller element1218 is shown providing control settings to the buildingA AHU element1216 indicating to an end user that theAHU controller1218 element is associated with a physical AHU controller configured to control a physical AHU associated with the buildingA AHU element1216. Furthermore, thebuilding A AHU1216 is shown to provide supply air to the zoneA VAV element1210 and the zoneB VAV element1214 indicating that the physical AHU represented by the buildingA AHU element1216 supplies air to physical VAVs represented by the zoneA VAV element1210 and the zoneB VAV element1214. Furthermore, the zoneA controller element1206 and the zoneB controller element1208 are shown providing settings to each of theVAV elements1210 and1214 to indicate that the physical VAVs represented by theelements1210 and1214 are controlled by physical controllers associated with thecontroller elements1206 and1208.
The elements1220-1224 can be input elements, slider elements, dial elements, and/or any other element allowing a user to input one or more control settings (e.g., setpoint values, configuration values, etc.). Theinterface1202 includes an updateAHU settings element1220. The updateAHU settings element1220 can allow a user to update the control settings that the physical AHU controller represented by theelement1218 uses to control the physical AHU represented by theelement1216. Theelements1222 and1224 can allow a user to input setting values for the physical controllers represented by theelements1206 and1208 to control the physical VAVs represented by theelements1210 and1214. In response to a user interacting with the implementcontrol settings element1226, any inputs received via the elements1220-1224 can be provided by theuser interface manager332 to thebuilding controller330. Interacting with theelement1226 can cause thebuilding controller330 to operate thebuilding systems302 based on the input settings.
Referring now toFIG. 12C, thesemantic building model1228 is shown, according to an exemplary embodiment. The type and number of the graphical elements of theinterface1202 can be defined based on the nodes of themodel1228. Themodel1228 is shown to include abuilding A node1230 which is linked to azone A node1232 and azone B node1234. If thegraphical requirements936 provide an indication to generate a control interface for controlling VAVs of building A, theuser interface generator326 can parse themodel1228 to identify VAVs of the building A based onrelationships hasA1254 andhasA1274 between thebuilding A node1230 and thezone A node1232 and thezone B node1234 and further based on the relationship betweenVAV node1252 and thezone A node1232, i.e., serves1256, and further based on the relationship between theVAV node1236 and thezone B node1234, i.e., serves1270.
Based on the identification of theVAV nodes1236 and1232, theuser interface generator326 can select a graphical template of a VAV for theVAV nodes1236 and1232 (e.g., the template used to generate theelements1210 and1214 of the interface1202). Furthermore, theuser interface generator326 can identify what AHU is controlling theVAV nodes1236 and1252. Theuser interface generator326 can identify the AHU by identify the relationships between theAHU node1242 and theVAV nodes1236 and1252, i.e., serves1268 and serves1264. Theuser interface generator326 can be configured to select an AHU graphical template to represent theAHU1242 i.e., generate theelement1216 of theinterface1202.
Furthermore, theuser interface generator326 can select controller templates for each of the controllers responsible for controlling the physical VAVs represented by theVAV nodes1236 and1252 and the AHU represented by theAHU node1242. Theuser interface generator236 can identify the controllers based on the controller nodes and their respective relationships to the VAV and AHU nodes (nodes1236,1241, and1252). More specifically, theuser interface generator326 can identify the relationship controls1272 between aVAV controller node1238 and theVAV node1236. The user interface generator can identify the relationship controls1266 between theAHU controller node1244 and theAHU1242. Furthermore, theuser interface generator326 can identify the relationship controls1258 betweenVAV controller node1250 andVAV node1252. The identified relationships provides an indication of the controllers that theuser interface generator326 uses to generate thecontroller elements1218,1206, and1208 of theinterface1202.
Furthermore, the control points which theuser interface generator326 provides within theinterface1202 may be settings of the controllers represented by thenodes1240,1246, and/or1250. Theuser interface generator326 can identify the nodes based on relationships between thenodes1238,1244, and/or1250 and control points. For example, a relationship operates On1274 provides an indication to theuser interface generator326 that the VAV controller represented byVAV node1238 operates the VAV represented by theVAV node1238 based on the setpoint defined by the zoneB setpoint node1240.Similar relationships1262 and1260 provide an indication of thesettings nodes1246 and1248 that the controllers represented by theAHU controller node1244 and theVAV controller node1250 operate based on.
Referring now toFIG. 13, agenerator interface1300 for selecting one of multiple user interfaces generated by the user interface generator ofFIG. 9 is shown, according to an exemplary embodiment. In some embodiments, theuser interface manager332 is configured to generate and manage theinterface1300. Theinterface1300 may allow a user to review, accept, and/or otherwise modify thecustom user interfaces942 generated by the user interface generator326 (e.g., by changing adjustable parameters generated by the generator326). Theinterface1300 includes aninput element1302 allowing the user to provide a definition of thegraphical requirements936. A user may type into theelement1302 to define thegraphical requirements936 and/or may be taken to another user interface to define thegraphical requirements936 in response to interacting with the graphicalrequirements input element1302. In response to interacting with the generateinterfaces element1304, theinterface generator921 can generate thecustom user interfaces942 based on thegraphical requirements936. The generated user interfaces can be displayed within user interfaces generatedelement1306 asinterface1308 andinterface1310.
If a user interacts with one of the interfaces (e.g., theinterface1310 inFIG. 13), aninterface preview1322 of the interface can be displayed by thegenerator interface1300 allowing a user to review and modify theinterface1310. Thegenerator interface1300 includes amodification tool box1312 including options for selecting tools to adjust theinterface1310. For example,element location tool1314 may provide the user with the ability to reposition elements of theinterface1310 in response to interacting with theelement location tool1314. Similarly, theelement size tool1316 may provide the user with the ability to change the size of elements in response to an interaction with theelement size tool1316. The addnew equipment element1318 may provide the user with the ability to add graphical elements for new or different elements. Thegraphics template1320 may allow a user to provide a new graphical template to theinterface1322 which can be automatically populated by theinterface generator921. Some or all of the modifications by the user can be fed back into theuser interface generator326 as thehistorical user inputs940. If the user interacts with the acceptbutton1326 theinterface1310 can be generated while if the user interacts with thedelete button1324 theinterface1310 can be deleted and removed from consideration.
Building Semantic Model SearchingReferring now toFIG. 14, thesemantic model searcher328 is shown in greater detail, according to an exemplary embodiment. Thesearcher328 receives auser search input1408 from theuser device304. Theuser search input1408 can be a natural language text description of a system, device, component, control application, etc. that a user may input via theiruser device304. Theinput1408 can identify particular nodes (e.g.,Building 1, VAV 10, etc.) of a semantic building model or can identify node types (e.g., Building, VAV, AHU, etc.). Furthermore, theinput1408 can identify particular relationship types (e.g., controls, is located in, etc.) Theinput1408 can be in a form, or can be interpreted to be in a form, of a semantic triple. For example, “shown me VAVs of building 1” can be translated into the semantic triple “VAVs (subject) is located in (predicate) building 1 (object).” Such a semantic triple can be used to query thesemantic model database318 to identify VAV nodes of type VAV with an association link (is located in) to a particular node, thebuilding 1. In some embodiments, quadruples, hierarchical form, and/or multiple graphs can be utilized in addition or, or instead of, a semantic triple.
Thesearcher328 includes aquery generator1404 which is configured to receive theuser search input1408 and generate a query based on theuser search input1408. Thequery generator1404 is configured to query thesemantic model database318 with the query and receive query results based the query. Based on the query results, the results manager1402 generates search results and provides the search results to theuser interface manager332 for display on theuser device304.
Since theuser search input1408 may be in a natural language, for example, could be “Building 1,” “Building 1 AHU,” “Building 1 AHU Serving VAV,” “Room temperatures of all the clean room served by single zone AHUs,” etc., thesearcher1400 may include a translator. Thesearcher1400 can includeinput interpreter1406 configured to parse theuser search input1408 to generate a representation of theuser search input1408. In some embodiments, the representation is a semantic representation of theinput1408 in the form of one or more triples.
Thesearcher1400 includes aquery generator1404. Thequery generator1404 can be configured to construct a query of theinput1408 and/or based on the analysis of theinput1408 by theinterpreter1406. Thequery generator1404 can be configured to generate a query such as a SPARQL query, a RDF query language based query, or any other query language for querying thesemantic model database318. The query generated by thequery generator1404 can be used by thesearcher1400 to query thesemantic model database318 and retrieve the query results. In some embodiments, rather than, or in addition to, generating the query, thesearcher1400 can be configured to use sample string matching to identify the results.
The results manager1402 can be configured to generate the search results based on the query results. In some embodiments, theuser device304 displays a graph illustrating a particular semantic building model. The search results can cause the graph to zoom in on a portion of the semantic building model based on the query results. For example, if the building illustrates all subsystems of a building, security, fire, AHUs, etc. and theuser search input1408 indicates to display only the security subsystem, the search results can cause the graph to be zoomed into the portion of the graph specified by the user.
Thesearcher1400 receives historical user search input from the historicaluser input database1410. Thesearcher1400 can be configured to utilize the historical search input to generate the query and/or generate the search results. Thesearcher1400 can be configured to implement various models, e.g., total weighted least squares, clustering algorithms, neural networks, and/or any other machine learning algorithm that trains a learning model. Thesearcher1400 can be configured to update weights and/or tuning parameters of the learning model over time based on the historicaluser input database1410. In this regard, the results and/or queries generated by thesearcher1400 can be improved over time as feedback is collected from a user and the preferences of a user are identified via the historical search input.
Referring now toFIG. 15 aprocess1500 of receiving a user search input and querying the semantic models to generate the search result that can be performed by thesemantic model searcher328 is shown, according to an exemplary embodiment. In some embodiments, thesemantic model searcher328 is configured to perform theprocess1500. In some embodiments, thesemantic model searcher328 utilizes thesemantic model database318 and the models stored therein to perform theprocess1500. The processing circuit308 and/or any other computing device described herein, can be configured to perform theprocess1500.
Instep1502, thesemantic model searcher328 can cause a user interface to display a semantic building model including multiple nodes and relationship between the nodes. In some embodiments, thesemantic model searcher328 causes a user interface of theuser device304 to display the semantic model. The model displayed by thesemantic model searcher328 can be themodel900 and/or themodel902 as described with reference toFIG. 9. In some embodiments, the model displayed by thesemantic model searcher328 is themodel716 as discussed with reference toFIG. 7 and/or thesemantic building model420 as described with reference toFIG. 4.
Instep1504, thesemantic model searcher328 can receive search input from a user. The search input may request information of the semantic building model where the information is a subset of nodes o the multiple nodes of the semantic building mode. For example, the input could be received from theuser device304. In some embodiments, the input could be “Show me equipment inBuilding 1.” If the semantic building model displayed in thestep1502 includes indications of equipment for multiple buildings, the search may be for nodes representing equipment of only a particular building.
Instep1506, based on the input of thestep1504, thesemantic model searcher328 generates a query. The query can be a query appropriate for the semantic building model. Instep1508, thesemantic model searcher328 generates the search result by querying the semantic building model. The result of the query can be an indication of the subset of nodes of the semantic building model. Instep1510, based on the result of the query, thesemantic model searcher328 can cause the user interface to display the subset of nodes.
Referring now toFIG. 16, auser interface1600 is shown displaying search results, according to an exemplary embodiment. Theuser interface1600 can be generated by thesematic model searcher328 and/or theuser interface manager332. In some embodiments, theuser device304 causes a user interface to display theuser interface1600 and/or receive input from the user via theuser interface1600. Theinterface1600 can include asearch interface1602. The user can type a search query into thesearch interface1602. The input into thesearch interface1602 can be theuser search input1408 that thesemantic model searcher328 is configured to use to generate search results. In response to interacting withperform search element1604, thesemantic model searcher328 is configured to generate the search results and/or is configured can cause the search result to be displayed ininterface1606, in some embodiments. The results from searching (e.g., an individual node or combinations of nodes) can be easily dragged from theinterface1600 to another interface for defining (generating and/or executing) specific application (e.g., a building control application for controlling building equipment). For example, a user could search from temperature sensors in a room serving “VAV 1.” Based on the temperatures sensors identified in the search, the user could provide the temperature sensors as input to a particular control algorithm for controlling a particular “VAV 1.” In some embodiments, the user may select one or multiple nodes of a search result, one or multiple relationships of the search result, and/or a subgraph of the search result (e.g., a selection of both nodes and relationships that are associated with each other). The selection of the user can be used by an application, e.g., thebuilding controller330 to generate a control or analytics application. For example, the selection may indicate one or more systems to target the deployment an energy optimization algorithm.
Theinterface1606 includes multiple different nodes1608-1636. The nodes can represent particular pieces of equipment (e.g., theequipment node1616, theequipment1634, and/or the equipment1618). The nodes can further represent network devices used for communication by various pieces of equipment (e.g., thenodes1608,1628, and/or1622). The nodes can represent people associated with the equipment (e.g., thenodes1612,1632, and/or1624). The nodes can further represent the location of the equipment (e.g., thenodes1610,1630, and/or1622). Furthermore, the nodes can represent any other characteristic of the equipment, as presented bynodes1614,1636, and/or1626.
The nodes may include relationships between the other nodes to provide an indication of association. For example, the nodes1608-1614 may all be related to theequipment node1616 and thus a relationship between each of the nodes1608-1614 and theequipment node1616 may exist. Similarly, the nodes1628-1632 and1636 can be related to theequipment1634 by a relationship. Similarly, the nodes1620-1626 can be related to thenode1618 by relationships. In some embodiments, the nodes can be related to multiple other nodes. For example,people1612 can have an association with two pieces of equipment, theequipment node1616 and theequipment1618 and thus two separate relationships may exist.
Referring now toFIG. 17 theuser interface1600 is shown where a search has been entered, according to an exemplary embodiment. Thesearch interface1602 includes a user search “Building 1.” The search may indicate that a user wishes to view information of a particular building, i.e., a particular node referenced by “Building 1”. Thesemantic model searcher328 can generate a search result reducing the information ofFIG. 16. The nodes1608-1616 and1628-1636 are either the Building 1 (nodes1610 and1630) or are nodes of a particular node with a direct relationship to theBuilding 1.
Referring now toFIG. 18, theuser interface1600 is shown where another exemplary search has been entered by a user, according to an exemplary embodiment. InFIG. 18, thesearch interface1602 includes input provided by a user indicating “Building 1 AHU.” Thesemantic model searcher328 can identify any AHU (any node of type AHU) that is directly linked to the Building 1 (to a particular node representing the Building 1). For example,AHU node1802 andAHU node1806 have a direct relationship tonode1800 representing theBuilding 1. Furthermore, direct related nodes ofAHU node1802 and1806, i.e.,room node1804 indicating the room which theAHU node1802 serves,temperatures node1808 indicating temperatures related toAHU node1802, and VAVs associated withAHU node1806, i.e.,nodes1810 and1812 are displayed as search results in theinterface1606.
Referring now toFIG. 19, theuser interface1600 is shown where the nodes of theinterface1600 are narrowed based on a user search according to an exemplary embodiment. InFIG. 19, thesearch interface1602 includes a user search, “Building 1 AHU serving VAV.” This may indicate to display any AHU node (any node of type AHU) in the Building 1 (that include a particular location relationship type to the Building 1) that provides air to a VAV (e.g., the node of type AHU has a relationship to a node of type VAV). Thesemantic model searcher328 can identify direct links between AHUs and theBuilding 1 narrowing down the result to theAHU node1806 andAHU node1802. Furthermore, thesemantic model searcher328 can further parse the resultingnodes1806 and1802 to determine which, if any, serve VAVs. Since theAHU node1806 servesVAV nodes1812 and1810, thesemantic model searcher328 can display only theAHU node1806 and any nodes directly linked to theAHU node1806, i.e., thenode1800 and the nodes1808-1812.
Referring now toFIGS. 20-21, agraphical search input200 to theuser interface1600 is shown, according to an exemplary embodiment. Thegraphical search input2000 can be drawn by a user via a touch screen. Theinput2000 can be a freeform drawn forming a shape. In some embodiments, theinput2000 is a circle or oval. Any node of the nodes1608-1636 that are within the input2000 (or are at least a predefined amount of the graphical representation of the nodes1608-1636 are within the input2000) can be selected as a search input. Thesemantic model searcher328 can display only the nodes within theinput2000 and remove any other node falling outside theinput2000 as shown in theFIG. 21. In some embodiments, the selection of the nodes and/or relationships via theinput200 can be used to generate a control application. For example, the another user interface may provide a system to graphically define control algorithms, the control algorithms can be defined by the user selecting (either individually or via an input similar to the input200) to generate the control algorithms. For example, the selected node, relationships, or graph portions of the graph ofinterface1600 and be selected, dragged, and dropped into a control application definition interface allowing for a control application to be graphically defined.
Referring now toFIG. 22, asemantic building application2200 is shown, according to an exemplary embodiment. Thesemantic building application2200 can be the semantic building application discussed with reference toFIGS. 3-21 and thesemantic managers320 can be configured to utilize theapplication2200 to perform each of their respective operations. Theapplication2200 can be defined according to an ontology defining possible node types and/or relationship types. Theapplication2200 includes nodes2202-2214 and relationships2216-2228. Theapplication2200 can define a particular temperature control application, “Zone A Control Application,” represented bynode2214. The type of theapplication2200 can be defined bynode2202, “Temperature Control.” Theapplication2214 can be defined as the type “Temperature Control” viarelationship2216, “isType.”
Theapplication node2214 can be linked to inputs and outputs, i.e.,temperature setpoint node2215 can be an output generated by theapplication node2214. For this reason, arelationship2228 “generates” can link theapplication node2214 to thetemperature setpoint node2215. The input can beoccupancy node2204. Theapplication node2214 can be an application including multiple operations for determine a temperature setpoint (node2215) based on an occupancy level (node2204). Theapplication node2214 can be linked to the input via the “receives”relationship2218.
Therelationship2226, “isLinkedTo” can define a relationship between theapplication node2214 and another application, i.e., the occupancy prediction application indicated bynode2212. This relationship between the applications can indicate that the output of theapplication node2212 is used as an input to the application node2214 (e.g., the occupancy node2204). Theapplication2200 further includes an expectedbehavior node2206 which can define one or more criteria forperformance metrics node2210 to comply with for theapplication node2214 to be operating properly. Theapplication node2214 can be related to thebehavior node2206 via the “shouldPerform”relationship2220. Theapplication node2214 can be related to themetrics node2210 via the “generates”relationship2224 which can indicate that theapplication node2214 operates to generate performance metrics defined by thenode2210.
Referring now toFIG. 23, asemantic model2300 of a building and building equipment, according to an exemplary embodiment. Thesemantic building model2300 can be the semantic building model discussed with reference toFIGS. 3-21 and thesemantic managers320 can be configured to utilize themodel2300 to perform each of their respective operations. Themodel2300 can be defined according to an ontology defining possible node types and/or relationships. Themodel2300 includes nodes2302-2320 and relationships2322-2344. Themodel2300 can define a particular building and air equipment, i.e., AHUs and VAVs that serve the building.
Themodel2300 includes a “Building 1”node2304 defining a particular building. Thenode2304 can be of type “Building” as defined bynode2302 and therelationship2324, “isType” between thenode2304 and thenode2302. Thenode2304 can include a particular space, “Room A”node2306. Thenode2304 can be linked to thenode2306 via therelationship2340, “hasA.” The “Room A”node2306 can be of a particular type as defined by therelationship2342, “isType,” and thenode2320, “zone.”
Node2308 defines an AHU, “AHU A,” which is located in the “Building 1” as defined by therelationship2322, “isLocatedIn,” between thenode2308 and thenode2304. The purpose of the AHU defined by thenode2308 can be to serve a particular area, the “Room A” as defined by therelationship2326, “servers,” between thenode2308 and thenode2306. The type of the “AHU A” can be defined via thenode2310, “AHU,” and therelationship2328, “isType.” Similarly, another AHU, “AHU B,” defined by thenode2312 can be of type AHU based on therelationship2342, “isType.” The “AHU B” can be located within the “Building 1” which can be defined based on therelationship2330, “isLocatedIn,” between thenode2312 and thenode2304.
The “AHU B” can serve (provide air to) to different VAVs, “VAV A” and “VAV B” defined bynode2316 andnode2314 and therelationship2332 and therelationship2334 between thenode2312 and thenode2314 and thenode2316 respectively. Both of the VAVs can be of type “VAV” as defined by the relationship2336, “isType” between thenode2314 and thenode2318 and the relationship “2338, “isType,” between thenode2316 and thenode2318.
Data PreparationReferring generally toFIGS. 24-31, a building system with data preparation for artificial intelligence (AI) is shown, according to various exemplary embodiments. In a building, raw building data is collected by building systems. However, this raw data may be unreliable in training artificial intelligence (AI) learning systems since the raw data may include inaccuracies or may otherwise be corrupt. Inaccurate or corrupt raw data can be the result of faults or issues pertaining to the equipment that collects and/or generates the building data. These faults or issues can be the result of temporal faults, configuration faults, measurement uncertainty, commissioning, and/or frequency domain faults.
If the building data that is corrupt or otherwise unreliable, the building data can be cleansed, flagged, enhanced, and/or otherwise improved by the building system, data from a building management system (BMS) could be provided to (e.g., sold to), and utilized by, an AI platform. Cleansed data and/or flagged data can provide the AI platform a higher number of reliable dimensions for AI models and learning systems to consider, improving the performance of the AI. AI can determine models of greater complexity by analyzing trends in reliable building data.
Cleansed data utilized in an AI platform can allow the AI platform to perform analysis for control and operational applications. For example, applications such as energy management to control the energy usage of a building and/or campus can utilize the determinations of the AI platform. Furthermore, a building system can provide reports and/or predictions for a building in the form of a performance report. A performance reporting application can, in some cases, rely on determinations made by the AI platform. Furthermore, the building system may utilize a fault detection diagnostics (FDD) system. With cleansed and/or flagged building data, the AI platform can be implemented to perform FDD for the building. Some applications can be configured to generate building equipment and/or system alarms, the applications can leverage the learning of the AI platform to generate the alarms. Furthermore, the AI platform can improve maintenance applications for performing and/or scheduling maintenance on equipment and/or employee productivity to save salary on salary budgets and/or maintenance truck rolls.
Temporal Faults
Data collected by building equipment may have temporal faults, specifically when the collected data is in the form of a timeseries (e.g., a data structure including data values and time values for each data value). Temporal faults can be a fault associated with the time values or otherwise the time-based nature of the timeseries. For example, raw building data can include gaps in data timeseries, i.e., data from the timeseries may be missing. Furthermore, raw building data can become stuck, e.g., a single measurement may span multiple points in time over a time period in a data timeseries. Raw building data may have unrealistic values that are not physically possible. Furthermore, raw building data may have unrealistic rates of change that are not physically possible. Raw building data may have excessive quantization, e.g., values of a data timeseries constrained to an unrealistic discrete interval, in some cases. Also, raw building data may have timestamp errors and predicting when a data sample was collected may be difficult.
Configuration Faults
In some cases, the unreliable data is the result of equipment configuration. In this regard, the settings of equipment and/or relationships between equipment may cause the data collected and/or generated by the equipment to be unreliable for the AI platform. In some cases, raw building data can be improperly tagged, e.g., a data point for a temperature sensor may be improperly tagged as a humidity measurement. Raw building data can be associated with building systems or building structures improperly, e.g., temperature measurements of a sensor within a Zone A may mistakenly be associated with a Zone B. Furthermore, Change On Value (COV) measurement schemes may be improperly configured for equipment with inappropriate trigger levels, e.g., important data may not be measured when important changes occur if those changes are below/above the trigger level.
Measurement Uncertainty
In some cases, there may be uncertainty in the measurements of building equipment. This uncertainty may make the data collected by building equipment unusable or otherwise poor, for the AI platform. Measurements of a sensor may have an uncertainty, e.g., a temperature measured in a chiller well may have an inappropriate level due to self-heating of a circuit. In some cases, if multiple data points are utilized to calculate another data point, the uncertainties of the data points in the calculation can be compounded.
CommissioningIn some cases, the unreliability of the data of the equipment is linked to improper commissioning. For example, sensors may be improperly calibrated, leading to poor measurements. In other cases, sensors may be inappropriately located, leading to poor measurements.
Frequency Domain FaultsFurthermore, in some cases, equipment data errors may be the result of transients. For example, data collected by building equipment may only be reliable in a steady state. Transients during a startup or shutdown phase of equipment of an equipment system may result in the equipment being unreliable. The equipment may include hardware circuit filters and/or digital filters. These filters can handling high frequency noise in measurements. However, the filters may be configured with inappropriate parameters and/or filter types. Some equipment may not include filters at all.
In some embodiments, the buildingsemantic model system306 can be configured to prepare data for the AI platforms. For example, the buildingsemantic model system306 can be configured to generate building applications (e.g., the dynamic semantic building application416) and/or custom logic (e.g., the custom building logic744) to perform data preparation (e.g., data flagging, reliability timeseries generation, data cleansing, etc.). For example, theapplication416 and/or thelogic744 can be configured to cleanse data and/or flag data before an AI platform consumes and operates on the data.
For example, thebuilding application manager322 can be configured to generate the dynamicsemantic building application416 based on the staticsemantic building application400, where the staticsemantic building application400 defines a particular data cleansing algorithm (e.g., remove data outliers, correct data timestamp errors, etc.). The dynamicsemantic building application416 can be a particular instance of the data cleansing algorithm (applied for and/or applied by a particular piece of building equipment) and the data which theapplication416 generates can be provided to the AI platform.
For example, the staticsemantic building application400 can define a particular uncertainty calculation for thermostat temperature measurements. In this regard, thebuilding application manager322 can identify thermostat targets via thesemantic building model420 that the uncertainty calculation algorithm can be deployed and generate the dynamicsemantic building application416 to generate the uncertainty for each thermostat temperature measurement. The result of the operation by the dynamic semantic building application416 (e.g., as performed by the building controller330) can be provided to the AI platform.
Furthermore, thelogic744 can further perform data preparation for the AI platform. For example, a user may identify that a particular temperature of a zone causes the AI platform to perform AI learning improperly if the temperature deviates significantly from a particular temperature range (resulting from equipment in the zone operating improperly). The user can generate thenatural language input709 to be, “generate an AI processing flag if the temperature of Zone B goes outside of an operating range of 60 degrees Fahrenheit to 80 degrees Fahrenheit.” Thecustom logic generator324 can generate thecustom building logic744 to generate the flag and data provided to the AI platform can be analyzed by thelogic744 and flagged by thelogic744 as appropriate. The result of the preparation by thecustom logic744, which can be performed by thebuilding controller330, can be provided to the AI platform by thebuilding controller330.
Furthermore, in some embodiments, the semantic models generated, managed, and/or otherwise maintained by the buildingsemantic model system306 can be utilized in the data preparation and/or by the AI platform itself. For example, the semantic building models semantically describing a building that thesystem306 stores can be utilized by the systems described with reference toFIGS. 24-31.
Referring now toFIG. 24, asystem2400 for a building including abuilding platform2402, abuilding management system2404, and an artificial intelligence (AI)platform2406 is shown, according to an exemplary embodiment. Thesystem2400 is shown to communicate collected data and ingested data via anetwork2408. In some embodiments, thenetwork2408 communicatively couples the devices, systems, and servers of thesystem2400. In some embodiments, thenetwork2408 is at least one of and/or a combination of a Wi-Fi network, a wired Ethernet network, a Zigbee network, a Bluetooth network, and/or any other wireless network. Thenetwork2408 may be a local area network and/or a wide area network (e.g., the Internet, a building WAN, etc.) and may use a variety of communications protocols (e.g., BACnet, IP, LON, etc.). Thenetwork2408 may include routers, modems, and/or network switches. Thenetwork2408 may be a combination of wired and wireless networks.
TheBMS2404 can include various controllers and can be configured to operate building subsystems, and/or equipment (e.g., the equipment as described with reference toFIGS. 1-2). TheBMS2404 can collect and/or generate building data. The building data can be measured conditions, e.g., zone temperature, zone humidity, zone air quality, environmental conditions measured for equipment (e.g., equipment circuit board temperature, heating well temperature, valve position sensor data, etc.) and/or can include operational data (e.g., control command logs, setpoints, settings, etc.). The data can, in some embodiments, be timeseries data including both data values (e.g., measurements, recorded values, etc.) and a timestamp (e.g., a date and/or time value, a sequence number, etc.). The BMS is configured to provide the collected building data to thebuilding cloud platform2402 and/or theAI platform2406 via thenetwork2408, in some embodiments.
Thebuilding cloud platform2402 can be configured to collect the building data and generate ingested building data based on the collected data received from theBMS2404 via thenetwork2408. In some embodiments, thebuilding cloud platform2402 can ingest and store the collected building data based on an ontology. For example, various building models and/or ontology structures may define how building equipment is associated with other equipment, zones, buildings, cities, etc. Furthermore, actuators and/or sensors of the equipment can include similar limitations. Various contextual information (e.g., equipment age, equipment type, manufacture, location, calibration date, etc.) and/or the ontology can be applied to the collected building data to generate the ingested building data. Thebuilding cloud platform2402 is configured to communicate the ingested building data to theAI platform2406 via thenetwork2408, in some embodiments.
TheAI platform2406 is configured to receive the ingested building data and/or the collected building data via thenetwork2408 from thebuilding cloud platform2402 and/or theBMS2404, in some embodiments. TheAI platform2406 is configured to generate and/or train various AI models based on the ingested building data and/or the collected building data. The models can be supervised, unsupervised, and/or supervised-unsupervised hybrid models. The AI models can include, Artificial Neural Networks (ANNs) (e.g., Convolutional Neural Networks (CNNs), Recurrent Neural Networks (RNN), CNN-RNN hybrid networks, Feedforward Neural Networks (FNNs), Long Short-Term Memory (LSTM) ANNs etc.).
Furthermore, the AI models can include Multivariate Gaussian Models (MVGs), Decision Trees, Support Vector Machines (SVMs), Logistic Regressions, etc. In some embodiments, a higher number of data points (e.g., dimensions) can lead to more accurate and/or models that can produce higher levels of results. In this regard, the data cleansing and/or enhancing techniques as described with reference toFIGS. 24-31 can be utilized to improve the collected building data and/or the ingested building data used by theAI platform2406.
Referring now toFIG. 25, thesystem2400 is shown with theBMS2404 includingsmart equipment2502 and ananalysis gateway2504, according to an exemplary embodiment. Theanalysis gateway2504 is configured, in some embodiments, to add the published information to collected building equipment data before pushing the data to theAI platform2406. Thesmart equipment2502 and/or theanalysis gateway2504 can be configured to generate and/or published enhanced data and communicate the enhanced data to theAI platform2406 for use in learning and/or generating models.
The enhanced data can be, or can include, flagged data, reliability timeseries, and/or equipment manufacturer information publications. In some embodiments, thesmart equipment2502, which may be thermostats, controllers, actuators, air handler units (AHUs), boilers, or any of the equipment as described with reference toFIGS. 1-4, can be “smart equipment,” equipment that includes processing circuits and/or network connections for processing collected building data collected by thesmart equipment2502, generating the flagged data, the reliability timeseries, and/or publishing (e.g., communicating), the flagged data, the reliability timeseries, and/or the equipment manufacturer information, and communicating the information to theAI platform2406.
In some embodiments, theanalysis gateway2504 adds the flagged data, reliability timeseries, and/or equipment manufacturer publications to collected data received from thesmart equipment2502 and publishes (e.g., communications) the enhanced data to theAI platform2406. For example, if theanalysis gateway2504 provides a virtual timeseries and a first timeseries and a second timeseries to theanalysis gateway2504, theanalysis gateway2504 is configured to generate a reliability timeseries for the first timeseries and/or the second timeseries.
Theanalysis gateway2504 can further determine that the virtual timeseries is a calculation based timeseries determined from both the first time series and/or the second timeseries (e.g., current and voltage measurements used together to determine power measurements). In response to determining that the virtual timeseries is based on the first timeseries and the second timeseries, theanalysis gateway2504 can determine a reliability timeseries from the reliability timeseries of the first timeseries and the second timeseries for the virtual timeseries. Virtual data points and virtual timeseries are described in greater reference in U.S. patent application Ser. No. 15/644,581 field Jul. 7, 2017, the entirety of which is incorporated by reference herein.
In some embodiments, the flagged data, the reliability timeseries, the equipment manufacturer information publications can be generated according to the semantic systems described with reference toFIGS. 3-23. For example, in some embodiments, the buildingsemantic model system306 is included within the BMS2404 (e.g., within thesmart equipment2502 and/or the analysis gateway2504). In this regard, data flagging, data cleansing, timeseries generation with reliability indications, and/or information publication can be performed according to thecustom building logic744 and/or the dynamicsemantic building application416.
In some embodiments, the BMS2404 (e.g., thesmart equipment2502 and/or the analysis gateway2504) itself generate thecustom building logic744 and/or the dynamic semantic building application416). In this regard, theBMS2404 can include all the necessary systems necessary for generating thelogic744 and/or theapplication416. In some embodiments, the buildingsemantic model system306 exists separately from theBMS2404 but includes semantic models of the building and/or equipment associated with theBMS2404. In some embodiments, the buildingsemantic model system306 can generate and deploy thelogic744 and/or theapplication416 to perform data preparation for the AI platform to the BMS2404 (e.g., to thesmart equipment2502 and/or the analysis gateway2504) for theBMS2404 to execute (e.g., executed by thesmart equipment2502 and/or the analysis gateway2504).
Referring now toFIG. 26, thesystem2400 as described with reference toFIG. 24 is shown with thebuilding cloud platform2402 including abuilding model2602 and ananalysis platform2604, according to an exemplary embodiment. Theanalysis platform2604 can be configured to ingest and/or cleanse the collected building data received from theBMS2404 and provide cleansed building data to theAI platform2406. In some embodiments, theanalysis platform2604 can perform various analysis techniques to identify whether data is reliable or unreliable and filter out unreliable data before providing the data to theAI platform2406. Furthermore, in some embodiments, theanalysis platform2604 is configured to perform cleansing operations e.g., monitoring network traffic of theBMS2404 and improving timestamp data based on levels of network traffic in theBMS2404.
Theanalysis platform2604 can be configured to generate and/or maintain abuilding model2602. Thebuilding model2602 may be a “Smart Entity” graph-based building model representing entities and relationships. Furthermore, thebuilding model2602 can be a BRICK building model. Thebuilding model2602 may be the same as and/or like the building models described with reference to U.S. Provisional Application No. 62/751,926, filed Oct. 29, 2018 and U.S. patent application Ser. No. 16/048,052 filed Jul. 27, 2018, the entirety of both of which are incorporated by reference herein. In some embodiments, thebuilding model2602 is a semantic building model, e.g., thesemantic building model420, thesemantic building model716, themodels900 and/or902, themodel1228, themodel2200, themodel2300 and/or any other semantic building described with reference toFIGS. 3-23.
Theanalysis platform2604 can be configured to utilize thebuilding model2602 to ingest the collected building data. However, in some embodiments, the relationships of equipment in the building model2602 (e.g., what thermostat controls what VAV unit), may be incorrect. In this regard, theanalysis platform2604 can analyze thebuilding model2602 and/or the collected building data and update thebuilding model2602. Examples of determining proper relationships based on control decisions and measured conditions is described in greater detail in U.S. patent application Ser. No. 15/400,926 filed Jan. 6, 2017, the entirety of which is incorporated by reference herein. In some embodiments, thecustom building logic744 and/or the dynamicsemantic building application416 can be configured to analyze thebuilding model2602 with collected data to update the building model2602 (e.g., add new equipment nodes, new equipment relationships, etc.) for other logic applications and/or dynamic semantic applications to be deployed. For example, if a new AHU node is identified and a staticsemantic building application400 defines an optimization algorithm for AHUs, thebuilding application manager322 can be configured to generate a dynamicsemantic building application416 according to a new node of thesemantic building model420 to deploy the optimization algorithm on the AHU.
Referring now toFIG. 27, thesystem2400 is shown including aninput learning system2702, according to an exemplary embodiment. Theinput learning system2702 can be configured to utilize user input to improve the data cleansing operations of theBMS2404 and/or thebuilding cloud platform2402. Theinput learning system2702 can be a user interface (UI) based learning system can be utilized to acquire user input to learn whether equipment is performing properly. In some embodiments, the learning system can provide the user input to theAI platform2406. Examples of such a learning system can be the “Ask Metasys Anything” (AMA) system.
In some embodiments, thebuilding cloud platform2402 performs a virtual walkthrough of theBMS2404 to identify faulty equipment. The virtual walkthrough is described in greater detail with reference to U.S. Provisional Patent Application No. 62/769,447 filed Nov. 19, 2018, the entirety of which is incorporated by reference herein. The UI based learning system, e.g., theinput learning system2702, can be utilized to help perform virtual walkthroughs of buildings by providing input and/or output to auser2704. The input to theinput learning system2702 can be used by thebuilding cloud platform2402 is performing the virtual data walkthrough.
In some embodiments, theinput learning system2702 can provide a user with indications of subsystems and/or performance data of each of the subsystems. The user can provide theinput learning system2702 with indications e.g., “subsystem good,” “equipment good,” “setpoint in safe range,” “data point reliable,” etc. Theinput learning system2702 can utilize the user input to perform self-assessment and/or to learn to perform supervised machine learning. In some embodiments, the user input is provided directly to theBMS2404 and/or thesmart equipment2504 which can perform a self-assessment based on the user input.
In some embodiments, theinput learning system2702 is configured to attempt various settings, calibration values, etc. until a user indicates the equipment is performing appropriately. User approval of equipment and/or settings can be used in theAI platform2406 so that theAI platform2406 can place higher or low reliability on the equipment based on the user input. In some embodiments, theinput learning system2702 may be a goal-based learning system, e.g., may have one or more goals and test settings or other configurations to achieve the goals. The goals may be constrained by physical bounds, goal weights, etc. In some embodiments, theinput learning system2702 receives the physical bounds and/or goal weights via a user interface from a user.
In some embodiments, theinput learning system2702 includes thecustom logic generator324. In this regard, theinput learning system2702 can generate thecustom building logic744 to generate updates according to thesemantic building model716 and/or thesemantic logic application718. For example, the user input may define a goal, “Lights in Conference Room A should only be on 40% of the time on a working day.” The input learning system2703 can generate alogic application728 which determines on and off schedules for the particular conference room such with the goal of turning the lights on when occupants are present but keeping the lights on only for approximately 40% of the time on a weekday.
Referring now toFIG. 28, thesmart equipment2502 is shown in greater detail, according to an exemplary embodiment. Thesmart equipment2502 is shown to include aprocessing circuit2804, theprocessing circuit2804 including aprocessor2806 andmemory2808. Theprocessing circuit2804, theprocessor2806, and thememory2808 can be the same as and/or like the processing circuit308, theprocessor310, and/or thememory312 as described with reference toFIG. 3.
Indications such as flags, equipment information, reliability data points, etc. can be generated by the smart equipment2502 (e.g., on an equipment level) and provided to theAI platform2406 by thesmart equipment2502. Flags may identify health information of thesmart equipment2502 so that theAI platform2406 can train models based on a data point indicative of how reliable the data of thesmart equipment2502 is.
The reliability data points may be data points for data timeseries that tracks how reliable certain data is, e.g., temperature of a thermostat may become more unreliable over time due to internal heating of the thermostat, a reliability timeseries may track this trend over time. Thesmart equipment2502 can further be configured to publish equipment manufacturer information. For example, indications such as equipment size, equipment capacity, equipment power consumptions, etc. can be utilized by theAI platform2406 to generate effective machine learning. In some embodiments, the AI platform2406 (or the smart equipment2502) can identify whether a health flag indicates a health level that is above a predefined amount (e.g., above 85%) and only utilize data of the equipment if the health level is above the predefined amount.
Thesmart equipment2502 is further shown to include adata system2802. Thedata system2802 can be a sensor and/or an actuator. The sensor can be a temperature sensor, a humidity sensor, a current sensor, a voltage sensor, etc. The actuator can be a relay, a motor, etc. Thedata system2802 can generate building data (e.g., settings, operational logs, environmental condition measurements, etc.) which can be converted into timeseries data.
Thememory2808 is shown to include atimeseries database2810. Thetimeseries database2810 can be configured to store the building data collected from thedata system2802. Thememory2808 includes atimeseries generator2812. Thetimeseries generator2812 can be configured to convert the building data received from thedata system2802 into data timeseries. In some embodiments, thetimeseries generator2812 can be configured to generate reliability timeseries for each of the data timeseries stored in thetimeseries database2810. Furthermore, for data timeseries that are virtual, i.e., generated based on other timeseries, thetimeseries generator2812 can generate a virtual reliability timeseries for the virtual timeseries, the reliability timeseries taking into account the reliability timeseries of other timeseries. When timeseries are combined to higher and higher levels of virtualization, the uncertainties of the timeseries compound. In this regard, a reliability timeseries can allow theAI platform2406 to identify how reliable a data timeseries is.
Thememory2808 is shown to include adata flagger2820. The data flagger2820 can analyze the building data and/or timeseries data of thetimeseries database2810 and apply flags to the data. These equipment level data flags can be published by publisher2818 to theAI platform2406. The data flags can indicate the performance of thesmart equipment2502 to help theAI platform2406 train AI models accurately, i.e., build accurate models based on the building data of thesmart equipment2702.
The data flagger2820 includes acalibration flagger2822 configured to generate a calibration flag for thesmart equipment2502. The calibration flag can be an indication when the equipment was last calibrated (e.g., date when last calibration, number of days since last calibrated, number of months since last calibrated, etc.) and/or whether thesmart equipment2502 requires calibration. TheAI platform2406 is configured to identify trends in calibration time periods to determine how reliable the data is for theAI platform2406 and/or whether the equipment requires calibration.
The data flagger2820 includes ahealth flagger2824. Thehealth flagger2824 is configured to add a smart equipment health flag (e.g., a reliability metric, a healthy/unhealthy metric, a 0-100 reliability score) to data published by the publisher2818. Thesmart equipment2502 can perform a self-assessment via self-analyzer2814 (e.g., identify how well the equipment is being controlled and/or is performing), identify a score for the equipment, and publish the score for theAI platform2406 to consume and utilize in AI learning. In some embodiments, theAI platform2406 is configured to identify what data should be used or discarded from the AI learning based on the published health flag.
The data flagger2820 includes afilter flagger2826 which can generate a filter flag for thesmart equipment2502. The settingflagger2828 is configured to identify whether filters have been setup in the equipment to handle transient noise (e.g., transients that occur when systems or equipment are starting or shutting down). The publisher2818 can publish the filter flag indicating whether a filter is present in thesmart equipment2502 and/or has been configured. In some embodiments, the filter flag generated by thefilter flagger2826 includes an indication of the parameters used in the filter.
The data flagger2820 includes asetting flagger2828 configured to generate a settings flag, in some embodiments. The settingflagger2828 is configured to determine whether thesmart equipment2502 has an inappropriate setpoints (e.g., an unusually high or low value), in some embodiments. The data flagger2820 can include a flag indicating whether the setpoint for the equipment is normal or abnormal to help theAI platform2406 to identify how a system is being operated and/or whether the data generated by the system is reliable.
In some embodiments, setting flagger2828 is configured with various ranges and can determine the reliability settings within or outside the ranges for determining the settings flag flags. For example, the settingflagger2828 is configured to identify whether a setpoint is within a predefined range, whether a measured temperature is changing at a reliable rate by comparing a temperature change to a temperature change rate, etc. In some embodiments, setting flagger2828 determines how far from a nominal value (or a nominal range) is to determine a value for the setting flag.
Thememory2808 includes the publisher2818. The publisher2818 is configured to publish information (e.g., the flags) received from thedata flagger2820. The publisher2818 can, in some embodiments, make an endpoint available for theAI platform2406 to query. In some embodiments, the publisher2818 transmits the information to theAI platform2406 directly (e.g., pushes the information).
The “data cleansing features” of thesmart equipment2502 can enable thesmart equipment2502 to be AI ready, i.e., the data of thesmart equipment2502 can be provided directly to theAI platform2406 without requiring any external system to analyze the data. Since the data cleansing features are built into thesmart equipment2502, the features can be turned on or off based on whether an equipment owner pays for the cleansing features, e.g., the publisher2818 can activate the cleansing features and publish the information for cleansing or deactivate the features. In some embodiments, thesmart equipment2502 is a chiller ready for optimization and/or AI that publishes information (e.g., flags) that can be utilized for high levels of accuracy in optimization and/or AI decision making.
In some embodiments, the smart equipment2502 (or a subsystem to which thesmart equipment2502 belongs) includes multiple redundant sensors and/or communicates with nearby devices measuring the same conditions. The publisher2818 is configured to, in some embodiments, utilize the measurements of the redundant sensors to drive down uncertainty, e.g., perform averages of sensor measurements of redundant sensors.
Thememory2808 includes self-analyzer2814, the self-analyzer2814 being configured to perform a self-analysis of thesmart equipment2502, in some embodiments. In some embodiments, the self-analyzer2814 performs equipment level fault detection diagnostics (FDD) to determine whether thesmart equipment2502 itself is healthy. The self-analyzer2814 can generate a health metric and provide the metric to thehealth flagger2824 to publishing to theAI platform2406. The self-analyzer2814 is configured to, based on the building data and/or data timeseries of thetimeseries database2810, identify what sensors of thesmart equipment2502 is impacted by particular operations of thesmart equipment2502. This indication of a link (e.g., indication of what sensors measure changes resulting from an operation) can be published by publisher2818 to theAI platform2406. In some embodiments, the self-analyzer2814 can identify whether sensors need to be replaced and/or whether new sensors should be added for thesmart equipment2502.
The equipment manufacturer data2816 can be data describing the characteristics of thesmart equipment2502. For example, physical dimensions, power ratings, time constants, and/or any other information for thesmart equipment2502 that may be defined by a manufacturer of thesmart equipment2502 can be stored as the equipment manufacturer data2816. In some embodiments, the self-analyzer2814 is configured to utilize the equipment manufacturer data2816 to perform a self-analysis. In some embodiments, the equipment manufacturer data2816 stored by the smart equipment2502 (or by another subsystem) is published to theAI platform2406 automatically and/or based on requests received from theAI platform2406 by the publisher2818 for use in AI training by theAI platform2406. In some embodiments, based on the equipment manufacturer data2816, the self-analyzer2814 is configured to perform self-analysis to determine what updates and/or service should be performed for thesmart equipment2502.
In some embodiments, thedata flagger2820 includes one or multiple applications generated by the buildingsemantic model system306, e.g., theapplication416 and/or thecustom building logic744. In this regard, the flaggers of the data flagger2820 (e.g., thecalibration flagger2822, thehealth flagger2824, thefilter flagger2826, and/or thesetting flagger2828 can be defined and/or can be an implementation of theapplication416 and/or thecustom building logic744 generated by thesmart equipment2502 or deployed to thesmart equipment2502 by the buildingsemantic model system306.
Referring now toFIG. 29, thetimeseries generator2812 and thetimeseries database2810 of thesmart equipment2502 as described with reference toFIG. 28 are shown in greater detail, according to an exemplary embodiment. Building systems can collect data of multiple points and utilize the point data to generate virtual points. However, as the points are virtualized to higher and higher levels, the uncertainty of the virtual point data increases i.e., the uncertainty of the timeseries is compounded. To remedy this uncertainty issue, each virtual point can be associated with a virtual “reliability” point. The virtual reliability point can be linked to the virtual point which it describes and provide an indication that AI can utilize to identify how reliable a particular virtual point is. The virtual reliability point can be associated with a virtual timeseries of discrete values of reliability of the virtual point.
While thetimeseries generator2812 and thetimeseries database2810 are described as being integrated within thesmart equipment2502, thetimeseries generator2812 and/or thetimeseries database2810 can be implemented in thebuilding cloud platform2402, theAI platform2406, and/or any other computing device as described herein.
Thetimeseries generator2812 is shown generating a virtual timeseries and a reliability timeseries based on two different timeseries. Thetimeseries generator2812 can, in some embodiments, generate a virtual timeseries based on any number of input timeseries. In some embodiments, the input timeseries are themselves virtual timeseries. In this regard, the virtual timeseries can be virtualized to one or multiple levels of virtualization. For example, current and voltage of multiple devices can be utilized to determine power consumption of multiple devices (a virtual point of a first level of virtualization). The power consumption of the multiple devices can be combined to determine a power consumption for an entire building (a virtual point of a second level of virtualization).
Thetimeseries generator2812 is configured to receive (e.g., retrieve)data timeseries2904 and data timeseries2906 fromtimeseries database2810. In some embodiments, the data timeseries2904 and the data timeseries2906 are associated with (linked to) reliability timeseries. In some embodiments, thetimeseries generator2812 generates thereliability timeseries2902 based on the data timeseries2904 and thereliability timeseries2908 based on thedata timeseries2906.
For example, thetimeseries generator2812 can identify a level of uncertainty or noise in the data timeseries2904 and generate thereliability timeseries2902 based on the levels of uncertainty and/or noise. Furthermore, thetimeseries generator2812 can be configured to store reliability data for the sensors used to collect thedata timeseries2904. For example, a particular temperature sensor may be accurate to one quarter degree Fahrenheit based on a published manufacturer datasheet. Thetimeseries generator2812 can store the manufacturer defined uncertainty and utilize the uncertainty in determining thedata timeseries2904.
Thetimeseries generator2812 includes avirtual timeseries calculator2910. Thevirtual timeseries calculator2910 can be configured to generate a virtual point and/or a virtual timeseries for the virtual point. Thevirtual timeseries calculator2910 can receive the data timeseries2904 and the data timeseries2906 and generate thevirtual timeseries2912. Thetimeseries generator2812 is further shown to include areliability timeseries calculator2916. Thereliability timeseries calculator2916 is configured to generate thereliability timeseries2904 based on the reliability timeseries2902 and/or thereliability timeseries2908. The reliability timeseries2914 can indicate how reliable thevirtual timeseries2912 values are. Since the unreliability of the data timeseries2904 and2908 are compounded when used to generate thevirtual timeseries2912, thereliability timeseries calculator2916 can determine thereliability timeseries2914 based on the reliabilities of the data timeseries2904 and the data timeseries2906 (e.g., the reliability timeseries2902 and the reliability timeseries2914).
The publisher2818 can receive and/or retrieve timeseries data from thetimeseries database2810 and push the timeseries data to theAI platform2406. In some embodiments, the publisher2818 publishes each data timeseries or virtual timeseries with its corresponding reliability timeseries. For example, the publisher can form a data package including both a data timeseries and its reliability timeseries so that theAI platform2406 receiving the package can identify the correspondence between the data timeseries and the reliability timeseries.
In some embodiments, thereliability timeseries2902,2908, and/or9914 are generated by thetimeseries generator2812 according to the semantic algorithms of thesystem306. For example, the dynamicsemantic building application416 and/or thelogic744 can operate to generate a reliability timeseries for a data point. In some embodiments, the model716 (or the model420) can include an indication of nodes for various timeseries data points. In this regard, the staticsemantic building application400 can define an algorithm for calculating a reliability timeseries for particular types of data points. In this regard, thebuilding application manager322 can identify the data point via the corresponding node in themodel716 and determine that the staticsemantic building application400 can generate a reliability timeseries appropriate for the identified data point. Accordingly, thebuilding application manager322 can generate the dynamicsemantic building application416 to generate the reliability timeseries. Similarly, a user definedcustom logic application722 can be deployed to generate the reliability timeseries.
In some embodiments, themanager322 can link multiple applications and/or custom logics together. For example, a first algorithm can generate thereliability timeseries2902 while a second algorithm can generate thereliability timeseries2908. Themanager322 can identify, based on nodes relating thetimeseries2904,2908, and2914 (e.g., timeseries2914 being generated fromtimeseries2904 and2904), that a third algorithm should be deployed to generate thereliability2914. The third algorithm can be generated such that the inputs from the outputs from the first two algorithms (e.g., the data timeseries2904 and the data timeseries2908) are used to generate the output of the third algorithm (the reliability timeseries2914).
Referring now toFIG. 30, thebuilding cloud platform2402 is shown in greater detail, according to an exemplary embodiment. Thebuilding cloud platform2402 can be configured to cleanse and prepare data for theAI platform2406. Furthermore, thebuilding cloud platform2402 can analyze and identify faulty equipment of thebuilding management system2406. In some embodiments, theBMS2404 provides data to theanalysis platform2604 which performs analysis and/or data cleansing before providing the equipment to theAI platform2406. Although the operations of thecloud platform2402 are performed by theanalysis platform2604, in some embodiments, the operations of theanalysis platform2604 are implemented in thesmart equipment2502 and/or in theanalysis gateway2504. In some embodiments, theanalysis platform2604 is configured to digitize job data of buildings to aid in the performance of simulation and/or fault analysis.
Thecloud platform2402 is shown to include aprocessing circuit3000. Theprocessing circuit3000 includes aprocessor3002 and amemory3004. Theprocessing circuit3000, theprocessor3002, and thememory3004 can be the same as and/or similar to, the processing circuit308, theprocessor310, and/or thememory312. Thememory3004 includes theanalysis platform2604. Theanalysis platform2604 includes thetimeseries database2810 and thetimeseries generator2812. In this regard, theanalysis platform2604 can perform the same reliability timeseries operations as described with reference toFIGS. 28-29. In this regard, rather than performing, or in addition to performing, the timeseries operations as described with reference toFIGS. 28-29 in theBMS2404, the timeseries operations can be performed by theanalysis platform2604. Theplatform communicator3016 can provide the data timeseries, the virtual timeseries, and/or the reliability timeseries of thetimeseries database2810 to theAI platform2406.
Theanalysis platform2604 includes anetwork traffic analyzer3010. Thenetwork traffic analyzer3010 can be configured to analyze network traffic data received from theBMS2404. In some embodiments, thenetwork traffic analyzer3010 is configured to utilize network data to determine whether the collected data of the BMS system is reliable. High network traffic may indicate that data of theBMS2404 may be unreliable since the data may become corrupted, delayed, or in part lost in high network traffic situations. Thenetwork traffic analyzer3010 is configured to adjust and/or determine reliability metrics for equipment and/or subsystems based on network traffic levels, in some embodiments. In some embodiments, thenetwork traffic analyzer3010 is an algorithm generated according to the semantic modeling architecture described with reference toFIGS. 1-23) (e.g., thenetwork traffic analyzer3010 is or includes thecustom building logic744 and/or the dynamic semantic building application416).
In some embodiments, thenetwork traffic analyzer3010 can isolate and remove data of poorly performing equipment from being communicated to theAI platform2406. High bursts of data may be indicative of faulty performance. Data collected during a high level of network activity may be discarded. Such trends can be identified and flagged by thenetwork traffic analyzer3010. Data of faulty equipment identified by thenetwork traffic analyzer3010, thenetwork traffic analyzer3010 can prevent the data of the faulty equipment from being communicated to theAI platform2406. In some embodiments, thenetwork traffic analyzer3010 may allow the data to be transmitted by may mark the data as being potentially unreliable, allowing theAI platform2406 to weight the data used to train the models of theAI platform2406 appropriately.
In some embodiments, theanalysis platform2604 is configured to identify whether networking equipment is being properly utilized. High traffic levels, performance data of network engines, etc. can be analyzed by thenetwork traffic analyzer3010 to determine whether the networking equipment is being operated effectively. Thenetwork traffic analyzer3010 is configured to generate a report based on the network data, in some embodiments. The report may indicate whether networking settings should be updated and/or whether additional networking equipment should be added to a system. The report can be provided to an end user (e.g., via a user device) to help the user improve the performance of theBMS2404, resulting in higher quality BMS data for theAI platform2406 to analyze.
In some embodiments, thenetwork traffic analyzer3010 is configured to generate a network report indicating the performance of equipment and/or a building network. The report can include recommendations generated by thenetwork traffic analyzer3010. For example, the recommendations can be to upgrade the network and/or components of the network, add additional network trunks, etc.
Thenetwork traffic analyzer3010 can be configured to determine whether timeseries data of thetimeseries database2810 has timestamp errors based on an analysis of network traffic data of theBMS2404. In some case, if network traffic levels of network of theBMS2404 is higher than a predefined amount during a period of time, the data of the timeseries may be received out of order during that period. During normal network traffic levels, thebuilding cloud platform2402 may store the data timeseries in thetimeseries database2810 in the order that the data is received.
However, in response to determining that there are timestamp errors (e.g., high network traffic levels), thenetwork traffic analyzer3010 can be configured to analyze timestamps of the data of thetimeseries database2810 received during the high network traffic level time periods and reorder the data based on the timeseries. If no timestamps are available, thenetwork traffic analyzer3010 may send a request to theBMS2404 to resend the data and overwrite the stored data of thetimeseries database2810.
Theanalysis platform2604 includes amodel manager3014. Themodel manager3014 is configured to generate and/or update thebuilding model3012. Themodel manager3014 is configured to simulate building structures and/or equipment setups to identify faults and/or errors in building construction and/or equipment setup. Themodel manager3014 is configured to generate results for improving the performance of the equipment based on the simulation and analysis. The results can be presented to a user via a user device.
In some embodiments, based on data collections, themodel manager3014 can generate and/or update equipment relationships of the building model3012 (e.g., what equipment is located in what zone, what equipment controls conditions of what zone, etc.) In some embodiments, themodel manager3014 is configured to correct errors in algorithm setups and/or equipment/space relationships (e.g., BRICK models) by analyzing collected building data. The relationships can be provided by themodel manager3014 to theAI platform2406 for utilizing the correlations in machine learning. In some embodiments, thebuilding model3012 is a semantic building model, e.g., thesemantic building model420, thesemantic building model716, themodels900 and/or902, themodel1228, themodel2200, themodel2300 and/or any other semantic building described with reference toFIGS. 3-23.
In some embodiments, thedata filter manager3008 can be configured to filter data received from theBMS2404 and providing the filtered data to theAI platform2406. Thedata filter manager3008 can be configured to perform machine learning and/or apply analysis rules to separate good data from bad data of theBMS2404 and remove bad data from training data pools before providing the data to theAI platform2406. Thedata filter manager3008 can generate an indication to service equipment associated with the bad data. In some embodiments, the filtering algorithm is defined according to a semantic building application and/or logic application generated by the building semantic model system306 (e.g., thecustom building logic744 and/or the application416). The semantically generated applications and/or logic for data filtering can be generated by thebuilding cloud platform2402 and/or otherwise generated by the buildingsemantic model system306 and deployed to thebuilding cloud platform2402.
In some embodiments, thedata analyzer3018 is configured to collect data of one or multiple building sites to quantify uncertainty levels for equipment, quantify ranges and/or capacities for equipment, identify uncertainty patterns, etc. In some embodiments, different patterns of uncertainties may indicate whether data should be utilized for AI or not. In some embodiments, thedata analyzer3018 is configured to quantify alarm quantities and/or alarm event frequencies to identify predicted equipment faulty performance. In some embodiments, the analysis algorithms performed by thedata analyzer3018 is defined according to a semantic building application and/or logic application generated by the building semantic model system306 (e.g., thecustom building logic744 and/or the application416). The semantically generated applications and/or logic for data analysis can be generated by thebuilding cloud platform2402 and/or otherwise generated by the buildingsemantic model system306 and deployed to thebuilding cloud platform2402.
Theanalysis platform2604 includes avirtual walkthrough manager3006. Thevirtual walkthrough manager3006 can be configured to collect building data for an entire building (or subsystems of a building) and utilize the data to identify whether the building is operating properly. Thevirtual walkthrough manager3006 is configured to identify individual subsystems (e.g., heating subsystem, security subsystem, ventilation system, etc.). Based on data of the individual systems, thevirtual walkthrough manager3006 is configured to identify whether each of the subsystems are operating properly.
In response to determining that one of the subsystems is faulty, the faulty subsystem can be isolated and analyzed. Equipment of the isolated subsystem can be analyzed by thevirtual walkthrough manager3006, based on the data of the equipment, to identify equipment that is broken. Data of the faulty equipment can be excluded by thevirtual walkthrough manager3006 from being provided to theAI platform2406. Furthermore, thevirtual walkthrough manager3006 is configured to generate a report for an end user to review and properly service faulty equipment.
Referring now toFIG. 31, theAI platform2406 is shown for utilizing building data cleansed, flagged, and/or otherwise improved to operate theBMS2404, according to an exemplary embodiment. TheAI platform2406 is shown to include aprocessing circuit3102, aprocessor3104, and amemory3106. Theprocessing circuit3102, theprocessor3104, and thememory3106 can be the same as, or similar to, the processing circuit308, theprocessor310, and thememory312 as described with reference toFIG. 3.
Thememory3106 is shown to include alearning system3108 for training AI models to perform building control operations. Artificial intelligence models that utilize highly reliable data can be used in systems where cascaded models are utilized. Thelearning system3108 includes aprimary model3112. Theprimary model3112 can be user defined. For example, an engineer can define theprimary model3112 based on historical knowledge. Theprimary model3112 can model a piece of building equipment, a subsystem, and/or a building. Theprimary model3112 may be based on known characteristics of the building equipment subsystem, and/or building and can be generated empirically, and/or can be based on theory.
Thelearning system3108 is shown to include atrainer3114. Thetrainer3114 is configured to utilize cleansedbuilding data3110 received from thebuilding cloud platform2402 and/or theBMS2404 to train anAI model3116. In some embodiments, thetrainer3114 utilizes both the cleansedbuilding data3110 and theprimary model3112 together to generate theAI model3116. This combination of a control models (e.g., the primary model3112) combined with artificial intelligence models can be a form of “Gray-box” learning where theAI model3116 is seeded with known information, i.e., aprimary model3112. The learning system. Thememory3106 is shown to include abuilding operator3118. The building operator can be configured to utilize theAI model3116 to perform control, building learning, optimization, generate performance predictions, and/or generate analysis of theBMS2404 based on theAI model3116.
In some embodiments, thebuilding operator3118 performs a graduated controls approach. Thebuilding operator3118 may first being operating based on theprimary model3112 and monitor the performance of theAI model3116 as theAI model3116 is learned. In response to determining that the determinations of theAI model3116 are accurate to a predefined level, thebuilding operator3118 can switch operation of theBMS2404 from being based on theprimary model3112 to theAI model3116. For example, a new building may have a chiller, theprimary model3112 being a model for the chiller. Thebuilding operator3118 can optimize the performance of the chiller with theprimary model3112 and utilize collected data of the chiller to train theAI model3116. Once theAI model3116 is reliable (e.g., is accurate based on the collected training data above a predefined amount), thebuilding operator3118 can begin optimizing the chiller based on theAI model3116.
In some embodiments, the primary model and/or theAI model3116 can be semantically defined building models. For example, can define one or more control operations. In some embodiments, themodels3112 and/or3116 can be the same as, or similar to, theapplications400 and/or416, theapplications500,420, and/or528, theapplication718, and/or any other semantic model described herein.
CONFIGURATION OF EXEMPLARY EMBODIMENTSThe construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.
The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.