首页 / 专利库 / 软件 / 建模语言 / 建筑物管理系统开发和控制平台

建筑物管理系统开发和控制平台

阅读:948发布:2020-05-11

专利汇可以提供建筑物管理系统开发和控制平台专利检索,专利查询,专利分析的服务。并且一种用于由 建筑物 的建筑物管理系统并行地执行计算的方法,所述方法包括:接收确定一个或多个特定特性的值的计算作业 请求 ;接收指示多个特性之间的依赖关系的特性模型,所述多个特性包括所述一个或多个特定特性,其中,所述多个特性包括所述建筑物的建筑物数据;以及基于所述特性模型生成一个或多个计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算。所述方法进一步包括并行地执行所述计算线程,以确定所述特定特性的值。,下面是建筑物管理系统开发和控制平台专利的具体信息内容。

1.一种用于由建筑物的建筑物管理系统并行地执行计算的方法,所述方法包括:
经由所述建筑物管理系统的处理电路接收确定一个或多个特定特性的值的计算作业请求
经由所述建筑物管理系统的所述处理电路接收指示多个特性之间的依赖关系的特性模型,所述多个特性包括所述一个或多个特定特性,其中,所述多个特性包括所述建筑物的建筑物数据;
基于所述特性模型,经由所述建筑物管理系统的所述处理电路生成一个或多个计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算;并且经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程,以确定所述特定特性的值。
2.如权利要求1所述的方法,进一步包括:经由所述建筑物管理系统的所述处理电路控制所述建筑物的一个或多个建筑物设备,以基于所述特定特性的所确定值来控制所述建筑物的环境条件。
3.如权利要求1所述的方法,其中,所述多个特性之间的所述依赖关系包括所述多个特性中的一个或多个特性之间的计算关系,其中,所述多个特性中的所述一个或多个特性之间的所述计算关系指示所述多个特性中的第一特性的值依赖于所述多个特性中第二特性的值。
4.如权利要求1所述的方法,其中,经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程包括:执行对所述计算线程的所述特性的值的一个或多个确定;以及响应于确定未满足所述计算线程中的一个计算线程与用于所述一个计算线程的当前计算的所述计算线程中的另一个计算线程之间的全部依赖关系,暂停执行所述计算线程中的所述一个计算线程。
5.如权利要求1所述的方法,其中,所述方法进一步包括:
经由所述建筑物管理系统的所述处理电路标识所述特性模型的所述特性的所述依赖关系中的递归;并且
经由所述建筑物管理系统的所述处理电路生成所述计算线程以包括与在所述计算线程的末尾处的所述递归相关联的一个或多个计算步骤。
6.如权利要求5所述的方法,其中,所述方法进一步包括:
经由所述建筑物管理系统的所述处理电路判定包括所述递归的所述计算线程是否创建了无限递归循环;并且
针对与所述无限递归循环相关联的所述特性,经由所述建筑物管理系统的所述处理电路返回空结果。
7.如权利要求1所述的方法,其中,所述多个特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据。
8.如权利要求7所述的方法,其中,经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程包括:基于所述多个特性之间的所述关系生成所述多个特性的值;
其中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述多个特性的值取决于所述原始特性的值。
9.如权利要求7所述的方法,其中,基于所述特性模型,经由所述建筑物管理系统的所述处理电路生成所述一个或多个计算线程包括:
针对所述多个特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;
并且
基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序。
10.如权利要求9所述的方法,其中,经由所述建筑物管理系统的所述处理电路、针对所述多个特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:
确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;并且通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
11.一种用于建筑物的用于并行地执行计算的建筑物管理系统,其中,所述建筑物管理系统包括处理电路,所述处理电路被配置用于:
接收确定一个或多个特定特性的值的计算作业请求;
接收指示多个特性之间的依赖关系的特性模型,所述多个特性包括所述一个或多个特定特性,其中,所述多个特性包括所述建筑物的建筑物数据;
基于所述特性模型生成一个或多个计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算;并且
并行地执行所述计算线程,以确定所述特定特性的值。
12.如权利要求11所述的系统,其中,所述处理电路被配置用于控制所述建筑物的一个或多个建筑物设备,以基于所述一个或多个特定特性的所确定值来控制所述建筑物的环境条件。
13.如权利要求11所述的系统,其中,所述多个特性之间的所述依赖关系包括所述多个特性中的一个或多个特性之间的计算关系,其中,所述多个特性中的所述一个或多个特性之间的所述计算关系指示所述多个特性中的第一特性的值依赖于所述多个特性中第二特性的值。
14.如权利要求11所述的系统,其中,所述多个特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据。
15.如权利要求14所述的系统,其中,所述处理电路被配置用于通过基于所述多个特性之间的所述关系生成所述多个特性的值来并行地执行所述计算线程;
其中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述多个特性的值取决于所述原始特性的值。
16.如权利要求14所述的系统,其中,所述处理电路被配置用于基于所述特性模型通过以下操作来生成所述一个或多个计算线程:
针对所述多个特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;
并且
基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序。
17.如权利要求16所述的系统,其中,针对所述多个特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:
确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;并且通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
18.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物管理系统的处理器执行以执行包括以下各项的操作:
接收确定一个或多个特定特性的值的计算作业请求;
接收指示多个特性之间的依赖关系的特性模型,所述多个特性包括所述一个或多个特定特性,其中,所述多个特性包括所述建筑物的建筑物数据,其中,所述多个特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据;
基于所述特性模型生成一个或多个计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算,其中,基于所述特性模型,经由所述建筑物管理系统的所述处理电路生成所述一个或多个计算线程包括:
针对所述一个或多个特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;并且
基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序;并且
并行地执行所述计算线程,以确定所述特定特性的值。
19.如权利要求18所述的非暂态计算机可读介质,其中,并行地执行所述计算线程包括:基于所述多个特性之间的所述关系生成所述多个特性的值;
其中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述多个特性的值取决于所述原始特性的值。
20.如权利要求18所述的非暂态计算机可读介质,其中,针对所述多个特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:
确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;并且通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
21.一种用于减少建筑物的建筑物管理系统的存储器装置的存储器使用的方法,所述方法包括:
由所述建筑物管理系统接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据;
由所述建筑物管理系统接收对所述数据模型的特性的请求;并且
由所述建筑物管理系统响应于接收到所述请求,通过基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据并对所检索的串行化数据进行解串行化,来为所请求的特性生成解串行化数据。
22.如权利要求21所述的方法,进一步包括:由所述建筑物管理系统通过利用所述建筑物的建筑物设备基于所述解串行化数据控制所述建筑物的环境条件,来基于所述解串行化数据控制所述建筑物设备。
23.如权利要求21所述的方法,其中,所述数据模型的所述关系包括多个句柄,其中,所述多个句柄中的每个句柄将所述数据模型的所述多个特性中的一个特性链接到包括所述串行化数据的存储对象。
24.如权利要求21所述的方法,进一步包括:基于所述多个句柄通过标识所述多个句柄中与所述请求的所述特性相对应的一个句柄来确定密钥;
其中,基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据包括通过检索由所述密钥引用的所述串行化数据来从所述存储器装置中检索所述串行化数据。
25.如权利要求21所述的方法,其中,生成所述解串行化数据包括基于存储所述串行化数据的存储对象生成包括所述解串行化数据的输送对象,其中,所述存储对象将所述串行化数据存储为字节数组,其中,生成所述解串行化数据包括从所述字节数组生成所述输送对象。
26.如权利要求25所述的方法,进一步包括:
更新所述输送对象的所述解串行化数据的一个或多个值;
通过对所述输送对象进行串行化,基于所述解串行化数据来生成经更新存储对象;并且
使所述存储器装置存储所述经更新存储对象。
27.如权利要求21所述的方法,进一步包括:
接收用于所述数据模型的所述特性的数据;
通过对所接收数据进行串行化来为所述数据模型的所述特性生成所述串行化数据;并且
将所述串行化数据存储在所述存储器装置中,其中,所述多种关系将所述数据模型的所述特性链接到所述串行化数据。
28.如权利要求27所述的方法,进一步包括:对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
29.如权利要求28所述的方法,进一步包括:
通过以下方式为所请求的特性生成所述解串行化数据:
基于所述数据模型的所述多种关系,从所述存储器装置中检索所述串行化且经压缩的数据;并且
通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
30.一种用于建筑物的用于减少存储器装置的存储器使用量的建筑物管理系统,其中,所述建筑物管理系统包括处理电路,所述处理电路被配置用于:
接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据;
接收对所述数据模型的特性的请求;并且
响应于接收到所述请求,通过基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据并对所检索的串行化数据进行解串行化,来为所请求的特性生成解串行化数据。
31.如权利要求30所述的系统,其中,所述处理电路被配置用于通过利用所述建筑物的建筑物设备基于所述解串行化数据控制所述建筑物的环境条件,来基于所述解串行化数据控制所述建筑物设备。
32.如权利要求30所述的系统,其中,所述数据模型的所述关系包括多个句柄,其中,所述多个句柄中的每个句柄将所述数据模型的所述多个特性中的一个特性链接到包括所述串行化数据的存储对象。
33.如权利要求30所述的系统,其中,所述处理电路被配置用于基于所述多个句柄通过标识所述多个句柄中与所述请求的所述特性相对应的一个句柄来确定密钥;
其中,所述处理电路被配置用于通过检索由所述密钥引用的所述串行化数据来从所述存储器装置中检索所述串行化数据,来基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据。
34.如权利要求30所述的系统,其中,所述处理电路被配置用于通过基于存储所述串行化数据的存储对象生成包括所述解串行化数据的输送对象来生成所述解串行化数据,其中,所述存储对象将所述串行化数据存储为字节数组,其中,生成所述解串行化数据包括从所述字节数组生成所述输送对象。
35.如权利要求30所述的系统,其中,所述处理电路被配置用于:
接收用于所述数据模型的所述特性的数据;
通过对所接收数据进行串行化来为所述数据模型的所述特性生成所述串行化数据;并且
将所述串行化数据存储在所述存储器装置中,其中,所述多种关系将所述数据模型的所述特性链接到所述串行化数据。
36.如权利要求35所述的系统,其中,所述处理电路被配置用于对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
37.如权利要求36所述的系统,其中,所述处理电路被配置用于:
通过以下方式为所请求的特性生成所述解串行化数据:
基于所述数据模型的所述多种关系,从所述存储器装置中检索所述串行化且经压缩的数据;并且
通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
38.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行包括以下各项的操作:
接收用于数据模型的特性的数据;
通过对所接收数据进行串行化来为所述数据模型的所述特性生成串行化数据;
将所述串行化数据存储在存储器装置中,其中,所述多种关系将所述数据模型的所述特性链接到所述串行化数据;
接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据;
接收对所述数据模型的特性的请求;并且
响应于接收到所述请求,通过基于所述数据模型的多种关系从所述存储器装置检索串行化数据并对所检索的串行化数据进行解串行化,来生成针对所请求特性的解串行化数据。
39.如权利要求38所述的非暂态计算机可读介质,其中,所述操作进一步包括对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
40.如权利要求39所述的非暂态计算机可读介质,其中,所述操作进一步包括:
通过以下方式为所请求的特性生成所述解串行化数据:
基于所述数据模型的所述多种关系,从所述存储器装置中检索所述串行化且经压缩的数据;并且
通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
41.一种用于管理建筑物的建筑物管理系统的多个节点中的故障的方法,所述方法包括:
由第一建筑物管理系统节点从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;
由所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值;
由所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态;
并且
由所述第一建筑物管理系统节点响应于指示所述第二节点未能确定所述一个或多个值的所述进度消息,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
42.如权利要求41所述的方法,进一步包括:由所述多个建筑物管理系统节点中的一个或多个建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
43.如权利要求41所述的方法,进一步包括:由所述第一建筑物管理系统节点基于自所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障。
44.如权利要求41所述的方法,进一步包括:由所述第一建筑物管理系统节点通过基于所述进度消息判定所述第二建筑物管理系统节点是否将完成所述计算作业来判定所述第二建筑物管理系统节点是否已发生故障,其中,所述进度消息指示所述第二建筑物管理系统无法完成所述计算作业。
45.如权利要求41所述的方法,其中,由所述第一建筑物管理系统节点选择所述第二建筑物管理系统节点包括通过以下操作执行优化以确定所述多个建筑物管理系统节点中的最优建筑物管理系统节点从而执行所述计算作业:
由所述第一建筑物管理系统节点生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;并且
由所述第一建筑物管理系统节点优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
46.如权利要求41所述的方法,其中,由所述第一建筑物管理系统节点从所述多个建筑物管理系统节点中选择所述第三建筑物管理系统节点包括执行第二优化以确定所述多个建筑物管理系统节点中的第二最优建筑物管理系统节点从而执行所述计算作业,其中,所述第二优化不考虑所述第二建筑物管理系统节点。
47.如权利要求41所述的方法,其中,所述第三建筑物管理系统节点包括多个计算装置,其中,所述方法进一步包括由所述第三建筑物管理系统节点的所述多个计算装置确定所述建筑物管理系统的所述一个或多个值。
48.如权利要求47所述的方法,其中,所述方法进一步包括:
由所述第三建筑物管理系统节点判定所述第三建筑物管理系统的所述多个计算装置中的一个或多个计算装置是否遇到故障;
由所述第三节点将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;
由所述第三建筑物管理系统节点接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;
基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的所述一个或多个值;并且
由所述第三建筑物管理系统节点将所述计算作业的所述一个或多个值发送给所述第一建筑物管理系统节点。
49.一种用于建筑物的建筑物管理系统,用于管理包括第一建筑物管理系统节点的所述建筑物管理系统的多个节点中的故障,其中,所述第一建筑物管理系统节点包括处理电路,所述处理电路被配置用于:
从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;
将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值;
从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态;并且
响应于指示所述第二节点未能确定所述一个或多个值的所述进度消息,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
50.如权利要求49所述的系统,其中,所述第一建筑物管理系统节点的所述处理电路被配置用于控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
51.如权利要求49所述的系统,其中,所述第一建筑物管理系统节点的所述处理电路被配置用于基于自将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障。
52.如权利要求49所述的系统,其中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过基于所述进度消息判定所述第二建筑物管理系统节点是否将完成所述计算作业来判定所述第二建筑物管理系统节点是否已发生故障,其中,所述进度消息指示所述第二建筑物管理系统无法完成所述计算作业。
53.如权利要求49所述的系统,其中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过以下操作执行优化以确定所述多个节点中的最优节点从而执行所述计算作业来选择所述第二建筑物管理系统节点:
生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;并且
优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
54.如权利要求49所述的系统,其中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过执行第二优化以确定所述多个节点中的第二最优节点从而执行所述计算作业来从所述多个节点中选择所述第三建筑物管理系统节点,其中,所述第二优化不考虑所述第二建筑物管理系统节点。
55.如权利要求49所述的系统,其中,所述第三建筑物管理系统节点包括多个计算装置,所述多个计算装置被配置用于确定所述建筑物管理系统的所述一个或多个值。
56.如权利要求55所述的系统,其中,所述第三建筑物管理系统节点包括处理电路,所述处理电路被配置用于:
判定所述第三建筑物管理系统节点的所述多个计算装置中的一个或多个计算装置是否遇到故障;
将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;
接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;
基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的所述一个或多个值;并且
将所述计算作业的所述一个或多个值发送给所述第一建筑物管理系统节点。
57.一种用于管理建筑物的建筑物管理系统的多个节点中的故障的计算机实施的方法,所述方法包括:
由第一建筑物管理系统节点的处理电路从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;
由所述第一建筑物管理系统节点的所述处理电路将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值;
由所述第一建筑物管理系统节点的所述处理电路从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态;
由所述第一建筑物管理系统节点的所述处理电路基于自所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障;并且由所述第一建筑物管理系统节点的所述处理电路响应于确定所述第二节点未能确定所述一个或多个值,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
58.如权利要求57所述的方法,所述方法进一步包括由所述多个建筑物管理系统节点中的一个或多个建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
59.如权利要求57所述的方法,其中,由所述第一建筑物管理系统节点的所述处理电路选择所述第二建筑物管理系统节点包括通过以下操作执行优化以确定所述多个节点中的最优节点从而执行所述计算作业:
由所述第一建筑物管理系统节点的所述处理电路生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;并且
由所述第一建筑物管理系统节点的所述处理电路优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
60.如权利要求59所述的方法,其中,所述第三建筑物管理系统节点包括多个计算装置,其中,所述方法进一步包括:
由所述第三建筑物管理系统节点的所述多个计算装置确定所述建筑物管理系统的一个或多个值;
由所述第三建筑物管理系统节点的处理电路判定所述第三建筑物管理系统的所述多个计算装置中的一个或多个计算装置是否遇到故障;
由所述第三节点的所述处理电路将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;
由所述第三建筑物管理系统节点的所述处理电路接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;
所述第三建筑物管理系统节点的所述处理电路基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的所述一个或多个值;并且
由所述第三建筑物管理系统节点将所述计算作业的所述一个或多个值发送给所述第一建筑物管理系统节点。
61.一种用于在建筑物的建筑物管理系统的多个节点之间分配计算作业的方法,所述方法包括:
由第一建筑物管理系统节点接收用于确定所述建筑物管理系统的一个或多个值的计算作业;
由所述第一建筑物管理系统节点生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;
由所述第一建筑物管理系统节点优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点;并且
由所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点。
62.如权利要求61所述的方法,其中,所述多个建筑物管理系统节点中的一个或多个建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
63.如权利要求61所述的方法,进一步包括:由所述第二建筑物管理系统节点响应于由所述第二建筑物管理系统节点生成所述一个或多个值,将所述一个或多个值发送给所述第一建筑物管理系统节点。
64.如权利要求61所述的方法,其中,所述多个建筑物管理系统节点包括:
一个或多个场所内节点,其中,所述一个或多个场所内节点是位于所述建筑物内的计算装置,其中,所述一个或多个场所内节点与所述目标函数指示的第一成本相关联;并且一个或多个场所外节点,其中,所述一个或多个场所外节点是位于所述建筑物外部的作为计算系统的一部分的计算装置,其中,所述一个或多个场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
65.如权利要求61所述的方法,其中,优化所述目标函数包括利用多个约束来优化所述目标函数,其中,所述多个约束包括将所述计算作业的关键度平与所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率进行比较的不等式约束,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成功概率相关联的第二建筑物管理系统节点。
66.如权利要求61所述的方法,其中,优化所述目标函数包括利用多个约束来优化所述目标函数,其中,所述多个约束包括使所述目标函数的所述优化选择所述多个建筑物管理系统节点中的仅一个节点、即所述建筑物管理系统的所述第二节点的等式约束。
67.如权利要求61所述的方法,其中,优化所述目标函数包括利用约束来优化所述目标函数,其中,所述约束包括指示所述多个建筑物管理系统节点中的每个建筑物管理系统节点的计算时间的不等式约束,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优计算时间相关联的所述第二建筑物管理系统节点。
68.如权利要求67所述的方法,其中,所述方法进一步包括:由所述第一建筑物管理系统节点基于所述计算作业以及所述多个节点中的每个节点的可用资源量的指示来确定所述节点中的每个节点的计算时间。
69.如权利要求68所述的方法,其中,所述方法进一步包括:
由所述第一建筑物管理系统节点向所述多个建筑物管理系统节点查询对所述多个节点中每个节点的所述可用资源量的指示;并且
由所述第一建筑物管理系统节点从所述多个建筑物管理系统节点接收对所述多个建筑物管理系统节点中的每个建筑物管理系统节点的所述可用资源量的指示。
70.一种用于建筑物的建筑物管理系统,所述建筑物管理系统包括第一建筑物管理系统节点,其中,所述第一建筑物管理系统节点包括处理电路,所述处理电路被配置用于:
接收用于确定所述建筑物管理系统的一个或多个值的计算作业;
生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;
优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点;并且
将所述计算作业发送给所述第二建筑物管理系统节点。
71.如权利要求70所述的系统,其中,所述处理电路被配置用于基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
72.如权利要求70所述的系统,其中,所述多个建筑物管理系统节点包括:
一个或多个场所内节点,其中,所述一个或多个场所内节点是位于所述建筑物内的计算装置,其中,所述一个或多个场所内节点与所述目标函数指示的第一成本相关联;并且一个或多个场所外节点,其中,所述一个或多个场所外节点是位于所述建筑物外部的作为云计算系统的一部分的计算装置,其中,所述一个或多个场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
73.如权利要求70所述的系统,其中,所述处理电路被配置用于通过利用多个约束优化所述目标函数来优化所述目标函数,其中,所述多个约束包括将所述计算作业的关键度水平与所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率进行比较的不等式约束,其中,所述处理电路被配置用于优化所述目标函数以选择所述多个建筑物管理系统节点中与最优成功概率相关联的所述第二建筑物管理系统节点。
74.如权利要求70所述的系统,其中,所述处理电路被配置用于通过利用多个约束优化所述目标函数来优化所述目标函数,其中,所述多个约束包括使所述目标函数的所述优化选择所述多个建筑物管理系统节点中的仅一个节点、即所述建筑物管理系统的所述第二节点的单个节点选择约束。
75.如权利要求70所述的系统,其中,所述处理电路被配置用于通过利用约束优化所述目标函数来优化所述目标函数,其中,所述约束包括对所述多个建筑物管理系统节点中的每个建筑物管理系统节点的计算时间的指示,其中,所述处理电路被配置用于优化所述目标函数以选择所述多个建筑物管理系统节点中与最优计算时间相关联的所述第二建筑物管理系统节点。
76.如权利要求70所述的系统,其中,所述处理电路被配置用于基于所述计算作业以及所述多个节点中的每个节点的可用资源量的指示来确定所述节点中的每个节点的计算时间。
77.如权利要求76所述的系统,其中,所述处理电路被配置用于:
向所述多个建筑物管理系统节点查询对所述多个节点中每个节点的所述可用资源量的指示;并且
由所述第一建筑物管理系统节点从所述多个建筑物管理系统节点接收对所述多个建筑物管理系统节点中的每个建筑物管理系统节点的所述可用资源量的指示。
78.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物管理系统的多个建筑物管理系统节点中的第一建筑物管理系统节点的处理器执行以执行包括以下各项的操作:
接收用于确定所述建筑物管理系统的一个或多个值的计算作业;
生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;
优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点,其中,优化所述目标函数包括利用多个约束来优化所述目标函数,其中,所述多个约束包括所述计算作业的关键度水平以及所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成功概率相关联的第二建筑物管理系统节点;并且
将所述计算作业发送给所述第二建筑物管理系统节点。
79.如权利要求78所述的非暂态计算机可读介质,其中,所述操作进一步包括控制与所述建筑物相关联的建筑物设备,以基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
80.如权利要求78所述的非暂态计算机可读介质,其中,所述多个建筑物管理系统节点包括:
一个或多个场所内节点,其中,所述一个或多个场所内节点是位于所述建筑物内的计算装置,其中,所述一个或多个场所内节点与所述目标函数指示的第一成本相关联;并且一个或多个场所外节点,其中,所述一个或多个场所外节点是位于所述建筑物外部的作为云计算系统的一部分的计算装置,其中,所述一个或多个场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
81.一种用于生成建筑物的建筑物模型并基于所述建筑物模型来操作所述建筑物的建筑物设备的建筑物管理系统,其中,所述建筑物管理系统包括处理电路,所述处理电路被配置用于:
接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据;
生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素基于所接收的上下文并且表示所述建筑物设备;
经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑;
基于所述用户对所述上下文的编辑生成经更新的上下文;并且
部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件。
82.如权利要求81所述的系统,其中,所述处理电路被配置用于:
在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布以及用于显示所述上下文的潜在建筑物元素的选盘;
从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个;
从所述用户装置接收所述建筑物元素之间的连接;并且
基于所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文。
83.如权利要求82所述的系统,其中,所述潜在建筑物元素基于所述上下文,其中,所述潜在元素是基于由所述上下文指示的可能建筑物元素生成的;
其中,所述建筑物元素之间的所述连接由所述上下文控制,其中,所述建筑物管理系统基于所述上下文允许的连接而允许某些连接、但不允许其他连接。
84.如权利要求82所述的系统,其中,所述处理电路被配置用于:
从所述用户装置接收与所述建筑物元素画布中的一个建筑物元素的交互;
在所述建筑物模型编辑器界面上显示属性界面,其中,所述属性界面包括用于所述一个建筑物元素的属性选项;
从所述用户装置接收对所述属性选项的调整;并且
基于对所述属性选项的所述调整生成所述经更新的上下文。
85.如权利要求84所述的系统,其中,所述属性选项包括停用日期范围,其中,所述日期范围指示所述建筑物元素将不运行的时间段。
86.如权利要求84所述的系统,其中,用于所述一个建筑物元素的所述属性选项是基于由所述上下文定义的相关联元素的被允许属性选项;
其中,所述处理电路被配置用于:
基于所述上下文确定用于所述一个建筑物元素的所述被允许属性选项;并且使所述属性选项成为所述被允许属性选项。
87.如权利要求86所述的系统,其中,所述处理电路被配置用于基于所接收的连接来显示所述建筑物元素之间的连接线,其中,所述连接线指示所述建筑物元素之间的特定资源的流动,其中,所述线包括与所述特定资源的类型相关联的颜色
88.如权利要求86所述的系统,其中,所述处理电路被配置用于:
基于所述用户对所述上下文的编辑生成优化问题;
执行所述优化问题以生成所述建筑物设备的控制设置;并且
基于所生成的控制设置来操作所述建筑物设备。
89.如权利要求88所述的系统,其中,所述处理电路被配置用于通过基于所述用户对所述上下文的编辑生成优化约束来基于所述用户对所述上下文的编辑生成所述优化问题;
其中,所述处理电路被配置用于执行所述优化问题,以通过利用所述优化约束执行所述优化问题来生成所述建筑物设备的所述控制设置。
90.如权利要求89所述的系统,其中,所述处理电路被配置用于通过基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束,来基于所述用户对所述上下文的编辑生成所述优化约束。
91.一种用于通过用于操作建筑物的建筑物设备的建筑物管理系统来生成所述建筑物的建筑物模型的方法,所述方法包括:
经由所述建筑物管理系统接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据;
经由所述建筑物管理系统生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素基于所接收的上下文并且表示所述建筑物设备;
由所述建筑物管理系统经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑;
由所述建筑物管理系统基于所述用户对所述上下文的编辑来生成经更新的上下文;并且
由所述建筑物管理系统部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件。
92.如权利要求91所述的方法,其中,所述方法进一步包括:
由所述建筑物管理系统在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布以及用于显示所述上下文的潜在建筑物元素的选盘;
由所述建筑物管理系统从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个;
由所述建筑物管理系统从所述用户装置接收所述建筑物元素之间的连接;并且由所述建筑物管理系统基于对所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文。
93.如权利要求92所述的方法,其中,所述潜在建筑物元素基于所述上下文,其中,所述潜在元素是基于由所述上下文指示的可能建筑物元素生成的;
其中,所述建筑物元素之间的所述连接由所述上下文控制,其中,所述建筑物管理系统基于所述上下文允许的连接而允许某些连接、但不允许其他连接。
94.如权利要求92所述的方法,所述方法进一步包括:
由所述建筑物管理系统从所述用户装置接收与所述建筑物元素画布中的一个建筑物元素的交互;
由所述建筑物管理系统在所述建筑物模型编辑器界面上显示属性界面,其中,所述属性界面包括用于所述一个建筑物元素的属性选项;
由所述建筑物管理系统从所述用户装置接收对所述属性选项的调整;并且由所述建筑物管理系统基于对所述属性选项的所述调整生成所述经更新的上下文。
95.如权利要求94所述的方法,其中,用于所述一个建筑物元素的所述属性选项是基于由所述上下文定义的相关联元素的被允许属性选项;
其中,所述方法进一步包括:
由所述建筑物管理系统基于所述上下文确定用于所述一个建筑物元素的所述被允许属性选项;并且
由所述建筑物管理系统使所述属性选项成为所述被允许属性选项。
96.如权利要求94所述的方法,其中,所述方法进一步包括:
由所述建筑物管理系统基于所述用户对所述上下文的编辑来生成优化问题;
由所述建筑物管理系统执行所述优化问题以生成所述建筑物设备的控制设置;并且由所述建筑物管理系统基于所生成的控制设置来操作所述建筑物设备。
97.如权利要求96所述的方法,其中,由所述建筑物管理系统基于所述用户对所述上下文的编辑生成所述优化问题包括基于所述用户对所述上下文的编辑生成优化约束;
其中,由所述建筑物管理系统执行所述优化问题以生成所述建筑物设备的所述控制设置包括利用所述优化约束来执行所述优化问题。
98.如权利要求97所述的方法,其中,由所述建筑物管理系统基于所述用户对所述上下文的编辑来生成所述优化约束包括:基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束。
99.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行操作,所述操作包括:
接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据;
生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素基于所接收的上下文并且表示所述建筑物的建筑物设备;
经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑;
基于所述用户对所述上下文的编辑生成经更新的上下文;
部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件;
基于所述用户对所述上下文的编辑生成优化问题;
执行所述优化问题以生成所述建筑物设备的控制设置;并且
基于所生成的控制设置来操作所述建筑物设备。
100.如权利要求99所述的非暂态计算机可读介质,其中,所述操作进一步包括:
在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布以及用于显示所述上下文的潜在建筑物元素的选盘;
从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个;
从所述用户装置接收所述建筑物元素之间的连接;并且
基于所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文;
其中,基于所述用户对所述上下文的编辑来生成所述优化约束包括:基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束。
101.一种用于动态地更新用于建筑物的建筑物管理系统(BMS)控制平台的方法,所述方法包括:
由所述BMS控制平台接收上下文,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型;
由所述BMS控制平台经由所述CML实施所述上下文的所述数据模型,其中,所述BMS控制平台在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台;并且
由所述BMS控制平台基于所实施的数据模型控制所述建筑物的所述设备,以控制所述建筑物的环境条件。
102.如权利要求101所述的方法,所述方法进一步包括:
由所述BMS控制平台接收内核和序列,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据;并且
由所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备,其中,所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台。
103.如权利要求102所述的方法,其中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
104.如权利要求103所述的方法,其中,所述序列的所述元数据包括执行信息,所述执行信息指示所述BMS控制平台应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述BMS控制平台应何时使所述控制过程执行。
105.如权利要求101所述的方法,其中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的。
106.如权利要求105所述的方法,其中,所述CML的所述类结构包括原型类、实体类和属性类,其中:
所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构;
所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备;并且
所述属性类包括用于基于所述实体类定义的实体的数据存储。
107.如权利要求106所述的方法,其中,所述实体类被实施为子实体和组成部分实体,其中,所述组成部分实体表示所述建筑物的所述元素之一,其中,所述子实体是所述组成部分实体的单独实例化、并作为特定组成部分实体的从属绑定到所述特定组成部分实体。
108.如权利要求106所述的方法,其中,基于所述上下文和所述CML实施所述数据模型包括:
基于所述实体类生成建筑物实体;
基于所述实体类生成区域实体;并且
基于所述CML的子类和所生成的区域实体来生成多个区域实体,其中,所述多个区域实体绑定到所述建筑物实体。
109.一种用于建筑物的可动态更新的建筑物管理系统(BMS)控制平台,其中,所述BMS控制平台包括处理电路,所述处理电路被配置用于:
接收上下文,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型;
经由所述CML实施所述上下文的所述数据模型,其中,所述处理电路在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台;并且基于所实施的数据模型控制所述建筑物的所述设备,以控制所述建筑物的环境条件。
110.如权利要求109所述的控制平台,其中,所述处理电路被配置用于:
接收内核和序列,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据;并且
基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备,其中,所述处理电路被配置用于基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台。
111.如权利要求110所述的控制平台,其中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
112.如权利要求111所述的控制平台,其中,所述序列的所述元数据包括执行信息,所述执行信息指示所述处理电路应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述处理电路应何时使所述控制过程执行。
113.如权利要求109所述的控制平台,其中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的。
114.如权利要求113所述的控制平台,其中,所述CML的所述类结构包括原型类、实体类和属性类,其中:
所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构;
所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备;并且
所述属性类包括用于基于所述实体类定义的实体的数据存储。
115.如权利要求114所述的控制平台,其中,所述实体类被实施为子实体和组成部分实体,其中,所述组成部分实体表示所述建筑物的所述元素之一,其中,所述子实体是所述组成部分实体的单独实例化、并作为特定组成部分实体的从属绑定到所述特定组成部分实体。
116.如权利要求115所述的控制平台,其中,基于所述上下文和所述CML实施所述数据模型包括:
基于所述实体类生成建筑物实体;
基于所述实体类生成区域实体;并且
基于所述CML的子类和所生成的区域实体来生成多个区域实体,其中,所述多个区域实体绑定到所述建筑物实体。
117.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的可动态更新的建筑物管理系统(BMS)控制平台的处理器执行以执行操作,所述操作包括:
接收上下文、内核和序列,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据;
经由所述CML实施所述上下文的所述数据模型,其中,所述BMS控制平台在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台;并且基于所实施的数据模型、所述内核和所述序列来控制所述建筑物的所述设备,其中,所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台以控制所述建筑物的环境条件。
118.如权利要求117所述的非暂态计算机可读介质,其中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的,
其中,所述CML的所述类结构包括原型类、实体类和属性类,其中:
所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构;
所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备;并且
所述属性类包括用于基于所述实体类定义的实体的数据存储。
119.如权利要求117所述的非暂态计算机可读介质,其中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
120.如权利要求119所述的非暂态计算机可读介质,其中,所述序列的所述元数据包括执行信息,所述执行信息指示所述BMS控制平台应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述BMS控制平台应何时使所述控制过程执行。
121.一种用于验证和运行用于建筑物的建筑物管理系统的脚本的方法,所述方法包括:
由所述建筑物管理系统接收所述脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作;
由所述建筑物管理系统判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示用所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位;并且由所述建筑物管理系统响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
122.如权利要求121所述的方法,所述方法进一步包括由所述建筑物管理系统使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
123.如权利要求121所述的方法,其中,由所述建筑物管理系统判定是否存在单位换算包括判定所述结果值的结果单位是否不是单位,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果。
124.如权利要求121所述的方法,其中,所述脚本指示要用与所述建筑物的所述数据模型的时间序列数据向量的特定时间相关联的特定数据点执行的操作;
其中,所述方法进一步包括:
由所述建筑物管理系统通过判定所述时间序列数据向量是否包括与所述特定时间相关联的所述特定数据点,来判定所述时间序列数据向量是否需要信号修复;
由所述建筑物管理系统响应于确定所述时间序列数据向量不包括与所述特定时间相关联的所述特定数据点,通过执行对所述时间序列数据向量的内插来确定与所述特定时间相关联的所述特定数据点;并且
由所述建筑物管理系统基于所述内插的特定数据点来确定所述结果值。
125.如权利要求121所述的方法,其中,由所述建筑物管理系统接收所述脚本包括从用户装置的用户界面接收所述脚本;
其中,所述方法进一步包括:由所述建筑物管理系统响应于确定所述脚本中的单位换算存在错误,在所述用户装置的所述用户界面上对所述脚本的一个或多个行加下划线,其中,所述被加下划线的一个或多个行与所述单位换算错误相关联,其中,所述脚本中与所述单位换算错误相关联的所述一个或多个行包括导致所述单位换算错误的一项或多项操作。
126.如权利要求121所述的方法,其中,所述脚本是所述建筑物的所述数据模型的扩展,其中,所述结果值是所述数据模型的虚拟点并且指示所述建筑物管理系统的调试信息;
其中,所述方法进一步包括由所述建筑物管理系统通过在运行时执行所述脚本以及所述建筑物管理系统的所述数据模型来确定所述结果值,以执行对所述建筑物管理系统的调试。
127.如权利要求121所述的方法,其中,所述方法包括:
由所述建筑物管理系统接收与第一单位相关联的用户输入值;并且
由所述建筑物管理系统确定所述用户输入值的派生数据元素,其中,所述派生数据元素包括基于派生单位的转换因子确定的所述用户输入值的经更新值,其中,所述派生单位是采用从所述第一单位确定的基本单位的指数数组。
128.如权利要求121所述的方法,其中,所述方法进一步包括:
由所述建筑物管理系统接收所述数据模型的所述一个或多个数据点的值;并且由所述建筑物管理系统为所接收的值中的每一个确定派生数据元素,其中,所述派生数据元素中的每一个包括派生单位,其中,所述派生单位是指示多个基本单位的指数的指数数组,其中,所述方法进一步包括由建筑物管理系统将所述值中的每一个映射到所述派生数据元素中。
129.如权利要求128所述的方法,其中,由所述建筑物管理系统判定是否存在单位换算包括:
由所述建筑物管理系统基于所接收的值的所述派生数据元素来确定所述结果值的派生单位;并且
判定所述结果值的所述派生单位是否与所述结果值的预定义派生单位相匹配。
130.如权利要求121所述的方法,所述方法进一步包括:
由所述建筑物管理系统从建筑物的数据模型中检索所述一个或多个数据点,其中,所述数据模型指示为建筑物收集的数据;并且
由所述建筑物管理系统基于从所述数据模型检索到的所检索的一个或多个数据点来确定所述结果值。
131.如权利要求130所述的方法,其中,从所述建筑物的所述数据模型中检索所述一个或多个数据点包括基于所述脚本的一个或多个行从所述数据模型中检索所述一个或多个数据点,其中,每个行包括指示所述一个或多个点在所述数据模型中的位置的标识符;
其中,所述方法进一步包括由所述建筑物管理系统使执行所述脚本的所述一个或多个结果存储在所述数据模型中。
132.一种用于建筑物的用于验证和运行脚本的建筑物管理系统,其中,所述建筑物管理系统包括处理电路,所述处理电路被配置用于:
接收所述脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作;
判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示用所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位;并且
响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
133.如权利要求132所述的系统,其中,所述处理电路被配置用于使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
134.如权利要求132所述的系统,其中,所述处理电路被配置用于判定所述结果值的结果单位是否不是单位来判定是否存在单位换算,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果。
135.如权利要求132所述的系统,其中,所述脚本指示要用与所述建筑物的所述数据模型的时间序列数据向量的特定时间相关联的特定数据点执行的操作;
其中,所述处理电路被配置用于:
通过判定所述时间序列数据向量是否包括与所述特定时间相关联的所述特定数据点,来判定所述时间序列数据向量是否需要信号修复;
响应于确定所述时间序列数据向量不包括与所述特定时间相关联的所述特定数据点,通过执行对所述时间序列数据向量的内插来确定与所述特定时间相关联的所述特定数据点;并且
基于所述内插的特定数据点来确定所述结果值。
136.如权利要求132所述的系统,其中,所述处理电路被配置用于通过从用户装置的用户界面接收所述脚本来接收所述脚本;
其中,所述处理电路被配置用于:响应于确定所述脚本中的单位换算存在错误,在所述用户装置的所述用户界面上对所述脚本的一个或多个行加下划线,其中,所述被加下划线的一个或多个行与所述单位换算错误相关联,其中,所述脚本中与所述单位换算错误相关联的所述一个或多个行包括导致所述单位换算错误的一项或多项操作。
137.如权利要求132所述的系统,其中,所述处理电路被配置用于:
接收与第一单位相关联的用户输入值;并且
确定所述用户输入值的派生数据元素,其中,所述派生数据元素包括基于派生单位的转换因子确定的所述用户输入值的经更新值,其中,所述派生单位是采用从所述第一单位确定的基本单位的指数数组。
138.如权利要求132所述的系统,其中,所述处理电路被配置用于:
接收所述数据模型的所述一个或多个数据点的值;并且
为所接收的值中的每一个确定派生数据元素,其中,所述派生数据元素包括派生单位,其中,所述派生单位包括指示多个基本单位的指数的指数数组,其中,所述处理电路被配置用于将所述值中的每一个映射到所述派生数据元素中;
其中,所述处理电路被配置用于通过以下操作来判定是否存在单位换算:
基于所接收的值的所述派生单位来确定所述结果值的派生单位;并且
判定所述结果值的所述派生单位是否与所述结果值的预定义派生单位相匹配。
139.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的可动态更新的建筑物管理系统的处理器执行以执行操作,所述操作包括:
接收脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作;
判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示用所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位,其中,由所述建筑物管理系统判定是否存在单位换算包括判定所述结果值的结果单位是否不是单位,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果;并且
响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
140.如权利要求139所述的非暂态计算机可读介质,其中,所述操作进一步包括使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
141.一种用于经由基于云的建筑物管理系统对建筑现场的建筑物设备进行基于云的动态控制的方法,所述方法包括:
由所述基于云的建筑物管理系统响应于接收到启动请求对定序器进行实例化;
经由所述基于云的建筑物管理系统接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;
基于所述序列包,经由通过基于云的建筑物管理系统实例化的所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据;
基于所收集的数据,经由通过所述基于云的建筑物管理系统实例化的所述定序器使控制过程执行;并且
基于所述控制过程的执行结果,经由通过所述基于云的建筑物管理系统实例化的所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备以控制所述建筑现场的环境条件的命令。
142.如权利要求141所述的方法,进一步包括:
由所述基于云的建筑物管理系统判定所述定序器是否遇到故障;并且
由所述基于云的建筑物管理系统响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
143.如权利要求141所述的方法,其中,所述定序器可在多个不同的计算系统中的一个或多个计算系统上执行;
其中,对所述定序器进行实例化包括:
判定是在位于所述建筑现场外的计算系统还是在位于所述建筑现场内的场所内计算系统上对所述定序器进行实例化;并且
基于所述判定的结果,在位于所述建筑现场外的所述计算系统和位于所述建筑物内的所述场所内计算系统上对所述定序器进行实例化。
144.如权利要求141所述的方法,所述方法进一步包括:
基于所述建筑物设备的所收集数据,经由所述定序器来更新由所述基于云的建筑物管理系统存储的数据模型,其中,所述数据模型包括所述建筑现场和所述建筑现场的所述建筑物设备的信息;并且
基于所述模型生成用于用户的用户界面,其中,所述用户界面基于所述模型指示与所述建筑物和所述建筑物设备有关的信息。
145.如权利要求141所述的方法,其中,所述序列包包括数据链接信息,其中,所述数据链接信息包括元组对,所述元组对指示所述建筑现场的物理数据点与所述数据模型的数字数据点之间的链接;
其中,经由通过基于云的建筑物管理系统实例化的所述定序器从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:基于所述链接信息通过检索所述物理数据点的数据值来检索所述数字数据点的数据值。
146.如权利要求141所述的方法,其中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
147.如权利要求146所述的方法,其中,所述执行信息包括:
在特定时间段内从特定建筑物数据点递归地收集或向特定建筑物数据点递归地分派的指示;并且
响应于所述建筑现场的特定值改变了预定义量而从所述特定建筑物数据点收集或向所述特定建筑物数据点分派的指示;
其中,所述执行信息进一步包括:
在所述特定时间段执行所述控制过程的指示;并且
响应于所述建筑现场的所述特定值改变了所述预定义量而执行所述控制过程的指示。
148.如权利要求141所述的方法,其中,经由通过所述基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:与位于所述建筑现场内的收集器-分派器系统通信。
149.如权利要求148所述的方法,其中,经由通过基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:
向所述收集器-分派器系统发送对所述物理数据点的输入数据的请求;
经由所述收集器-分配器接收所述物理数据点的所述输入数据;并且
将针对所述物理数据点所接收的输入数据存储在所述数据模型中作为所述数字数据点。
150.一种用于动态地控制建筑现场的建筑物设备的基于云的建筑物管理系统,其中,所述基于云的建筑物管理系统包括处理电路,所述处理电路被配置用于:
响应于接收到启动请求而对定序器进行实例化;
经由所述定序器接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;
基于所述序列包,经由所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据;
基于所收集的数据,经由所述定序器使控制过程执行;并且
基于所述控制过程的执行结果,经由所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备以控制所述建筑现场的环境条件的命令。
151.如权利要求150所述的系统,其中,所述处理电路被配置用于:
判定所述定序器是否遇到故障;并且
响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
152.如权利要求150所述的系统,其中,所述定序器可在多个不同的计算系统中的一个或多个计算系统上执行;
其中,对所述定序器进行实例化包括:
判定是在位于所述建筑现场外的计算系统还是在位于所述建筑现场内的场所内计算系统上对所述定序器进行实例化;并且
基于所述判定的结果,在位于所述建筑现场外的所述计算系统和位于所述建筑物内的所述场所内计算系统上对所述定序器进行实例化。
153.如权利要求150所述的系统,其中,所述处理电路被配置用于:
基于所述建筑物设备的所收集的数据来更新由所述基于云的建筑物管理系统存储的数据模型,其中,所述数据模型包括所述建筑现场和所述建筑现场的所述建筑物设备的信息;并且
基于所述模型生成用于用户的用户界面,其中,所述用户界面基于所述模型指示与所述建筑物和所述建筑物设备有关的信息。
154.如权利要求150所述的系统,其中,所述序列包包括数据链接信息,其中,所述数据链接信息包括元组对,所述元组对指示所述建筑现场的物理数据点与所述数据模型的数字数据点之间的链接;
其中,所述处理电路被配置用于:通过基于所述链接信息通过检索所述物理数据点的数据值来检索所述数字数据点的数据值,经由所述定序器从所述建筑现场的所述建筑物设备收集所述建筑物数据。
155.如权利要求150所述的系统,其中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
156.如权利要求155所述的系统,其中,所述执行信息包括:
在特定时间段内从特定建筑物数据点收集或向特定建筑物数据点分派的指示;并且响应于所述建筑现场的特定值改变了预定义量而从所述特定建筑物数据点收集或向所述特定建筑物数据点分派的指示;
其中,所述执行信息进一步包括:
在所述特定时间段执行所述控制过程的指示;并且
响应于所述建筑现场的所述特定值改变了所述预定义量而执行所述控制过程的指示。
157.如权利要求150所述的系统,其中,所述处理电路被配置用于:通过与位于所述建筑现场内的收集器-分派器系统通信,经由所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据。
158.如权利要求157所述的系统,其中,所述处理电路被配置用于通过以下操作经由通过基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据:
向所述收集器-分派器系统发送对所述物理数据点的输入数据的请求;
经由所述收集器-分配器接收所述物理数据点的所述输入数据;并且
将针对所述物理数据点所接收的输入数据存储在所述数据模型中作为所述数字数据点。
159.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由基于云的建筑物管理系统的处理器执行以执行包括以下各项的操作:
响应于接收到启动请求而对定序器进行实例化;
接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;
基于所述序列包,经由通过基于云的建筑物管理系统实例化的所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据;
基于所收集的数据,经由通过所述基于云的建筑物管理系统实例化的所述定序器使控制过程执行;
基于所述控制过程的执行结果,经由通过所述基于云的建筑物管理系统实例化的所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备以控制所述建筑现场的环境条件的命令;
判定所述定序器是否遇到故障;并且
响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
160.如权利要求159所述的非暂态计算机可读介质,其中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
161.一种用于生成和更新建筑物的建筑物管理系统的实时仪表板的方法,所述方法包括:
由所述建筑物管理系统生成仪表板设计器界面,并使所述仪表板设计器界面显示在用户的用户装置上;
由所述建筑物管理系统经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互;
由所述建筑物管理系统通过将从所述用户接收的所述图形元素绑定到所述实时仪表板的小插件来生成小插件;
由所述建筑物管理系统基于经由所述仪表板设计器界面的用户选择来将数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;
由所述建筑物管理系统从所述建筑物设备接收所述数据点的值;并且
由所述建筑物管理系统在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
162.如权利要求161所述的方法,进一步包括:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。
163.如权利要求161所述的方法,其中,绑定到所述小插件的所述数据点未绑定到所述实时仪表板的任何其他小插件,其中,所述实时仪表板包括多个页面,每个页面包括特定小插件。
164.如权利要求161所述的方法,其中,所述图形元素是可缩放矢量图形(SVG)文件,其中,所述仪表板设计器界面允许用户将所述SVG上传到所述建筑物管理系统。
165.如权利要求161所述的方法,其中,所述方法进一步包括:
由所述建筑物管理系统基于所述数据点的所述值以及所述数据点的多个阈值来调整所述小插件的不透明度值,其中,所述不透明度值是所述数据点的所述值与所述多个阈值的函数;并且
由所述建筑物管理系统基于调整后的不透明度值在所述实时仪表板中显示所述小插件。
166.如权利要求161所述的方法,其中,所述方法进一步包括基于所接收的所述数据点的值和颜色映射来改变所述小插件的颜色,其中,所述颜色映射包括所述数据点的潜在值与所述小插件的相应颜色之间的关系。
167.如权利要求161所述的方法,其中,所述方法进一步包括:
由所述建筑物管理系统响应于确定所述数据点的所述值大于预定义量,使所述小插件显示在所述实时仪表板的页面上;并且
由所述建筑物管理系统响应于确定所述数据点的所述值小于所述预定义量,使所述小插件不显示在所述实时仪表板的所述页面上。
168.如权利要求161所述的方法,其中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点;
其中,所述方法进一步包括通过接收从所述可选点列表的所述多个数据点中对所述数据点的选择来接收所述用户选择。
169.如权利要求161所述的方法,其中,所述方法进一步包括由所述建筑物管理系统使所述用户装置显示所述实时仪表板,其中,所述实时仪表板包括在所述实时仪表板内同时显示的第一窗格和第二窗格;
其中,所述第一窗格包括包含多个页面的可选页面列表,其中,每个页面与多个小插件中的一个小插件相关联,其中,所述多个页面中的第一页面与所述小插件相关联;
其中,所述第二窗格包括对所述多个小插件中的经由所述可选页面列表选择的所选小插件的显示。
170.如权利要求161所述的方法,其中,所述应用设计器界面显示包括多个图形元素的可选图形元素列表,其中,所述多个图形元素包括所述图形元素;
其中,所述方法进一步包括:
从所述可选图形元素列表的所述多个图形元素中接收用户对所述图形元素的选择;并且
经由所述应用设计器界面以可编辑模式向所述用户显示所述图形元素。
171.如权利要求170所述的方法,其中,所述应用设计器界面包括第一界面窗格、第二界面窗格和第三界面窗格,其中,所述应用设计器界面在所述应用设计器界面中同时显示所述第一界面窗格、所述第二界面窗格和所述第三界面窗格;
其中,所述第一界面窗格包括包含多个数据点的可选点列表,其中,所述多个数据点包括所述数据点;
其中,所述第二界面窗格包括所述可选图形元素列表;
其中,所述第三界面窗格包括对可编辑模式的所述图形元素的显示。
172.一种用于建筑物的用于生成和更新实时仪表板的建筑物管理系统,其中,所述建筑物管理系统包括处理电路,所述处理电路被配置用于:
生成仪表板设计器界面,并使所述仪表板设计器界面显示在用户的用户装置上;
经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互;
通过将从所述用户接收的所述图形元素绑定到所述实时仪表板的小插件来生成小插件;
基于经由所述仪表板设计器界面的用户选择来将数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;
从所述建筑物设备接收所述数据点的值;并且
在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
173.如权利要求172所述的系统,其中,所述处理电路被配置用于:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。
174.如权利要求172所述的系统,其中,绑定到所述小插件的所述数据点未绑定到所述实时仪表板的任何其他小插件,其中,所述实时仪表板包括多个页面,每个页面包括特定小插件。
175.如权利要求172所述的系统,其中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点;
其中,所述处理电路被配置用于通过接收从所述可选点列表的所述多个数据点中对所述数据点的选择来接收所述用户选择。
176.如权利要求172所述的系统,其中,所述处理电路被配置用于使所述用户装置显示所述实时仪表板,其中,所述实时仪表板包括在所述实时仪表板内同时显示的第一窗格和第二窗格;
其中,所述第一窗格包括包含多个页面的可选页面列表,其中,每个页面与多个小插件中的一个小插件相关联,其中,所述多个页面中的第一页面与所述小插件相关联;
其中,所述第二窗格包括对所述多个小插件中的经由所述可选页面列表选择的所选小插件的显示。
177.如权利要求172所述的系统,其中,所述应用设计器界面显示包括多个图形元素的可选图形元素列表,其中,所述多个图形元素包括所述图形元素;
其中,所述处理电路被配置用于:
从所述可选图形元素列表的所述多个图形元素中接收用户对所述图形元素的选择;并且
经由所述应用设计器界面以可编辑模式向所述用户显示所述图形元素。
178.如权利要求177所述的系统,其中,所述应用设计器界面包括第一界面窗格、第二界面窗格和第三界面窗格,其中,所述应用设计器界面在所述应用设计器界面中同时显示所述第一界面窗格、所述第二界面窗格和所述第三界面窗格;
其中,所述第一界面窗格包括包含多个数据点的可选点列表,其中,所述多个数据点包括所述数据点;
其中,所述第二界面窗格包括所述可选图形元素列表;
其中,所述第三界面窗格包括对可编辑模式的所述图形元素的显示。
179.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行包括以下各项的操作:
生成仪表板设计器界面并使所述仪表板设计器界面显示在用户的用户装置上,其中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点;
经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互;
通过将从所述用户接收的所述图形元素绑定到实时仪表板的小插件来生成小插件;
通过接收从所述可选点列表的所述多个数据点中对数据点的选择来接收用户点选择;
基于经由所述仪表板设计器界面的所述用户选择来将所述数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;
从所述建筑物设备接收所述数据点的值;并且
在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
180.如权利要求179所述的非暂态存储介质,其中,所述操作进一步包括:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。

说明书全文

建筑物管理系统开发和控制平台

[0001] 相关申请的交叉引用
[0002] 本申请要求2017年3月9日提交的美国临时专利申请号62/469,246、2018年2月14日提交的美国专利申请号15/896,413、2018年2月14日提交的美国专利申请号15/896,430、2018年2月14日提交的美国专利申请号15/896,465、2018年2月14日提交的美国专利申请号
15/896,483、2018年2月14日提交的美国专利申请号15/896,745、2018年2月14日提交的美国专利申请号15/896,633、2018年2月14日提交的美国专利申请号15/896,675、2018年2月
14日提交的美国专利申请号15/896,694和2018年2月14日提交的美国专利申请号15/896,
726的权益和优先权。这些专利申请中的每一个的全部披露通过引用并入本文。

背景技术

[0003] 本披露总体上涉及暖通空调(HVAC)系统。本披露更具体地涉及用于建模和控制建筑物设备的系统和方法。
[0004] 在建筑物中,各种HVAC系统引起对建筑物的加热或制冷。在一些建筑物中,建筑物控制器可以操作以使HVAC系统对建筑物进行加热和/或制冷。建筑物控制器在控制HVAC系统时可以利用各种控制算法。开发人员可以创建控制算法。但是,每当开发人员希望更改算法或生成新算法时,都可能需要对算法进行整个重建。部署和测试算法可能需要迭代地完成,即构建算法、部署算法、对算法进行修改、并且然后重复所述过程。这样的重建或迭代算法测试和部署可能是低效的。因此,可能需要一种用于开发算法的稳健且高效的方法。发明内容
[0005] 并行计算引擎
[0006] 本披露的一种实施方式是一种用于由建筑物的建筑物管理系统并行地执行计算的方法。所述方法包括:经由所述建筑物管理系统的处理电路接收确定一个或多个特定特性的值的计算作业请求;以及经由所述建筑物管理系统的所述处理电路接收指示多个特性之间的依赖关系的特性模型,所述特性包括所述特定特性。所述特性包括所述建筑物的建筑物数据。所述方法进一步包括:经由所述建筑物管理系统的所述处理电路基于所述特性模型生成计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算;以及经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程,以确定所述特定特性的值。
[0007] 在一些实施例中,所述方法包括经由所述建筑物管理系统的所述处理电路控制所述建筑物的建筑物设备,以基于所述特定特性的所确定值来控制所述建筑物的环境条件。
[0008] 在一些实施例中,所述特性之间的所述依赖关系包括所述多个特性之间的计算关系,其中,所述特性之间的所述计算关系指示所述特性中的第一特性的值依赖于所述特性中第二特性的值。
[0009] 在一些实施例中,经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程包括:执行对所述计算线程的所述特性的值的一个或多个确定;以及响应于确定未满足所述计算线程中的一个计算线程与用于所述一个计算线程的当前计算的所述计算线程中的另一个计算线程之间的全部依赖关系,暂停执行所述计算线程中的所述一个计算线程。
[0010] 在一些实施例中,所述方法进一步包括:经由所述建筑物管理系统的所述处理电路标识所述特性模型的所述特性的所述依赖关系中的递归;以及经由所述建筑物管理系统的所述处理电路生成所述计算线程以包括与在所述计算线程的末尾处的所述递归相关联的一个或多个计算步骤。
[0011] 在一些实施例中,所述方法包括:经由所述建筑物管理系统的所述处理电路判定包括所述递归的所述计算线程是否创建了无限递归循环;以及针对与所述无限递归循环相关联的所述特性,经由所述建筑物管理系统的所述处理电路返回空结果。
[0012] 在一些实施例中,所述特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据。
[0013] 在一些实施例中,经由所述建筑物管理系统的所述处理电路并行地执行所述计算线程包括:基于所述多个特性之间的所述关系生成所述特性的值。在一些实施例中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述多个特性的值取决于所述原始特性的值。
[0014] 在一些实施例中,基于所述特性模型经由所述建筑物管理系统的所述处理电路生成所述一个或多个计算线程包括:针对所述一个或多个特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;以及基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序。
[0015] 在一些实施例中,经由所述建筑物管理系统的所述处理电路、针对所述一个或多个特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;以及通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
[0016] 本披露的另一种实施方式是一种用于建筑物的用于并行地执行计算的建筑物管理系统。所述建筑物管理系统包括处理电路,所述处理电路被配置用于:接收确定一个或多个特定特性的值的计算作业请求;以及接收指示多个特性之间的依赖关系的特性模型,所述特性包括所述一个或多个特定特性,其中,所述特性包括所述建筑物的建筑物数据。所述处理电路被配置用于基于所述特性模型生成计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算。所述处理电路被配置用于并行地执行所述计算线程,以确定所述特定特性的值。
[0017] 在一些实施例中,所述处理电路被配置用于控制所述建筑物的一件或多件建筑物设备,以基于所述特性的所确定值来控制所述建筑物的环境条件。
[0018] 在一些实施例中,所述特性之间的所述依赖关系包括所述特性中的一个或多个特性之间的计算关系,其中,所述多个特性中的所述一个或多个特性之间的所述计算关系指示所述特性中的第一特性的值依赖于所述特性中第二特性的值。
[0019] 在一些实施例中,所述特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据。
[0020] 在一些实施例中,所述处理电路被配置用于通过基于所述特性之间的所述关系生成所述多个特性的值来并行地执行所述计算线程,其中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述多个特性的值取决于所述原始特性的值。
[0021] 在一些实施例中,所述处理电路被配置用于通过以下方式来基于所述特性模型生成所述一个或多个计算线程:针对所述特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;以及基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序。
[0022] 在一些实施例中,针对所述一个或多个特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;以及通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
[0023] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物管理系统的处理器执行以执行操作,所述操作包括接收确定一个或多个特定特性的值的计算作业请求。所述操作包括接收指示多个特性之间的依赖关系的特性模型,所述多个特性包括所述一个或多个特定特性,所述特性包括所述建筑物的建筑物数据;所述多个特性包括原始特性,其中,所述原始特性包括未处理的数据,其中,所述原始特性包括由所述建筑物的建筑物设备收集的环境数据。所述操作进一步包括基于所述特性模型生成计算线程,其中,每个计算线程包括用于确定所述多个特性的值的一系列计算;其中,基于所述特性模型经由所述建筑物管理系统的所述处理电路生成所述一个或多个计算线程包括:针对所述一个或多个特性中的每一个特性确定从所述特性到所述原始特性的最大依赖距离;基于所述多个特性中的每一个特性的所述最大依赖距离,对所述计算线程中的所述特性的计算进行排序;以及并行地执行所述计算线程以确定所述特定特性的值。
[0024] 在一些实施例中,并行地执行所述计算线程包括基于所述特性之间的所述关系生成所述特性的值。在一些实施例中,所述原始特性是在所述计算线程的所述一系列计算的第一确定中使用的第一特性,其中,所述特性的值取决于所述原始特性的值。
[0025] 在一些实施例中,针对所述特性中的每一个特性确定从所述特性到所述原始特性的所述最大依赖距离包括:确定所述特性与所述原始特性中的每一个原始特性之间的多种依赖关系;以及通过比较所述特性与所述原始特性中的每一个原始特性之间的所述多种依赖关系中的每一种依赖关系来确定从所述特性到所述原始特性的所述最大依赖距离,其中,所述最大依赖距离是所述多种依赖关系中依赖关系数最大的依赖关系。
[0026] 在一些实施例中,本披露的方法包括通过以下方式来找到具有随机放置的原始数据的关系数据图的最短计算时间:将关系分解成到原始数据位置的距离图,扫描所述图以得到依赖关系从而定位关键路径,以及创建在每个关键路径上执行的线程池。
[0027] 混合集群优化
[0028] 本披露的另一种实施方式是一种用于在建筑物的建筑物管理系统的多个节点之间分配计算作业的方法。所述方法包括:由第一建筑物管理系统节点接收用于确定所述建筑物管理系统的值的计算作业;以及由所述第一建筑物管理系统节点生成用于所述建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述值的成本。所述方法包括:由所述第一建筑物管理系统节点优化所述目标函数以选择所述建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点;以及由所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点。
[0029] 在一些实施例中,所述建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
[0030] 在一些实施例中,所述方法包括由所述第二建筑物管理系统节点响应于由所述第二建筑物管理系统节点生成所述一个或多个值,将所述一个或多个值发送给所述第一建筑物管理系统节点。
[0031] 在一些实施例中,建筑物管理系统节点包括:场所内(on-premises)节点,其中,所述场所内节点是位于所述建筑物内的计算装置,其中,所述场所内节点与所述目标函数指示的第一成本相关联;以及场所外(off-premises)节点,其中,所述场所外节点是位于所述建筑物外部的作为计算系统的一部分的计算装置,其中,所述场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
[0032] 在一些实施例中,优化所述目标函数包括利用多个约束来优化所述目标函数,其中,所述约束包括将所述计算作业的关键度平与所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率进行比较的不等式约束,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成功概率相关联的第二建筑物管理系统节点。
[0033] 在一些实施例中,优化所述目标函数包括利用多个约束来优化所述目标函数,其中,所述约束包括使所述目标函数的所述优化选择所述多个建筑物管理系统节点中的仅一个节点、即所述建筑物管理系统的所述第二节点的等式约束。
[0034] 在一些实施例中,其中,优化所述目标函数包括利用约束来优化所述目标函数,其中,所述约束包括指示所述多个建筑物管理系统节点中的每个建筑物管理系统节点的计算时间的不等式约束,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优计算时间相关联的所述第二建筑物管理系统节点。
[0035] 在一些实施例中,所述方法进一步包括:由所述第一建筑物管理系统节点基于所述计算作业以及所述多个节点中的每个节点的可用资源量的指示来确定所述节点中的每个节点的计算时间。
[0036] 在一些实施例中,所述方法进一步包括:由所述第一建筑物管理系统节点向所述建筑物管理系统节点查询对所述多个节点中每个节点的所述可用资源量的指示;以及由所述第一建筑物管理系统节点从所述建筑物管理系统节点接收对所述建筑物管理系统节点中的每个建筑物管理系统节点的所述可用资源量的指示。
[0037] 本披露的另一种实施方式是一种用于建筑物的建筑物管理系统,所述建筑物管理系统包括第一建筑物管理系统节点。所述第一建筑物管理系统节点包括处理电路,所述处理电路被配置用于:接收用于确定所述建筑物管理系统的一个或多个值的计算作业;以及生成用于所述建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本。所述处理电路被配置用于:优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点;以及将所述计算作业发送给所述第二建筑物管理系统节点。
[0038] 在一些实施例中,所述处理电路被配置用于基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
[0039] 在一些实施例中,所述多个建筑物管理系统节点包括:场所内节点,其中,所述一个或多个场所内节点是位于所述建筑物内的计算装置,其中,所述一个或多个场所内节点与所述目标函数指示的第一成本相关联;以及场所外节点,其中,所述一个或多个场所外节点是位于所述建筑物外部的作为云计算系统的一部分的计算装置,其中,所述一个或多个场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
[0040] 在一些实施例中,所述处理电路被配置用于通过利用多个约束优化所述目标函数来优化所述目标函数,其中,所述多个约束包括将所述计算作业的关键度水平与所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率进行比较的不等式约束,其中,所述处理电路被配置用于优化所述目标函数以选择所述建筑物管理系统节点中与最优成功概率相关联的所述第二建筑物管理系统节点。
[0041] 在一些实施例中,所述处理电路被配置用于通过利用约束优化所述目标函数来优化所述目标函数,其中,所述约束包括使所述目标函数的所述优化选择所述多个建筑物管理系统节点中的仅一个节点、即所述建筑物管理系统的所述第二节点的单个节点选择约束。
[0042] 在一些实施例中,所述处理电路被配置用于通过利用约束优化所述目标函数来优化所述目标函数,其中,所述约束包括对所述多个建筑物管理系统节点中的每个建筑物管理系统节点的计算时间的指示,其中,所述处理电路被配置用于优化所述目标函数以选择所述多个建筑物管理系统节点中与最优计算时间相关联的所述第二建筑物管理系统节点。
[0043] 在一些实施例中,所述处理电路被配置用于基于所述计算作业以及所述多个节点中的每个节点的可用资源量的指示来确定所述节点中的每个节点的计算时间。
[0044] 在一些实施例中,其中,所述处理电路被配置用于:向所述多个建筑物管理系统节点查询对所述多个节点中每个节点的所述可用资源量的指示;以及由所述第一建筑物管理系统节点从所述多个建筑物管理系统节点接收对所述多个建筑物管理系统节点中的每个建筑物管理系统节点的所述可用资源量的指示。
[0045] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物管理系统的多个建筑物管理系统节点中的第一建筑物管理系统节点的处理器执行以执行操作,所述操作包括:接收用于确定所述建筑物管理系统的一个或多个值的计算作业;以及生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本。所述操作包括:优化所述目标函数以选择所述建筑物管理系统节点中的第二建筑物管理系统节点以确定所述值,其中,优化所述目标函数选择所述建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点,其中,优化所述目标函数包括利用约束来优化所述目标函数,其中,所述约束包括所述计算作业的关键度水平以及所述多个建筑物管理系统节点中的每个建筑物管理系统节点的成功概率,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成功概率相关联的所述第二建筑物管理系统节点。所述操作进一步包括将所述计算作业发送给所述第二建筑物管理系统节点。
[0046] 在一些实施例中,其中,所述操作进一步包括控制与所述建筑物相关联的建筑物设备,以基于由所述第二建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
[0047] 在一些实施例中,所述建筑物管理系统节点包括:场所内节点,其中,所述场所内节点是位于所述建筑物内的计算装置,其中,所述场所内节点与所述目标函数指示的第一成本相关联;以及场所外节点,其中,所述场所外节点是位于所述建筑物外部的作为云计算系统的一部分的计算装置,其中,所述一个或多个场所外节点与所述目标函数指示的第二成本相关联,其中,所述第二成本大于所述第一成本。
[0048] 在一些实施例中,本披露的另一种实施方式是一种用于优化对在计算用计算机集群之内和之间执行的多个算法的并行执行的成本险概况、同时保持那些算法的交互能的方法,所述方法包括:确定所述集群之中的可用资源,收集有关每个资源的成本信息,生成成本函数,求解优化函数以在各种计算资源之间分配所需的算法,其中,所述成本函数取决于计算的价格和预期的计算时间花费,其中,所述成本函数取决于在所需的时间量内获得成功运行的概率,其中,所述算法具有必须按之进行求解的特定顺序并且可能会相互暂停以完成执行。
[0049] 混合集群灾难恢复
[0050] 本披露的另一种实施方式是一种用于管理建筑物的建筑物管理系统的节点中的故障的方法,所述方法包括:由第一建筑物管理系统节点从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;以及由所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值。所述方法包括:由所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态;以及由所述第一建筑物管理系统节点响应于指示所述第二节点未能确定所述一个或多个值的所述进度消息,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
[0051] 在一些实施例中,所述方法包括由所述建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
[0052] 在一些实施例中,所述方法进一步包括:由所述第一建筑物管理系统节点基于自所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障。
[0053] 在一些实施例中,所述方法进一步包括:由所述第一建筑物管理系统节点通过基于所述进度消息判定所述第二建筑物管理系统节点是否将完成所述计算作业来判定所述第二建筑物管理系统节点是否已发生故障,其中,所述进度消息指示所述第二建筑物管理系统无法完成所述计算作业。
[0054] 在一些实施例中,由所述第一建筑物管理系统节点选择所述第二建筑物管理系统节点包括通过以下操作执行优化以确定所述多个建筑物管理系统节点中的最优建筑物管理系统节点从而执行所述计算作业:由所述第一建筑物管理系统节点生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;以及由所述第一建筑物管理系统节点优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
[0055] 在一些实施例中,由所述第一建筑物管理系统节点从所述多个建筑物管理系统节点中选择所述第三建筑物管理系统节点包括执行第二优化以确定所述多个建筑物管理系统节点中的第二最优建筑物管理系统节点从而执行所述计算作业,其中,所述第二优化不考虑所述第二建筑物管理系统节点。
[0056] 在一些实施例中,所述第三建筑物管理系统节点包括计算装置,其中,所述方法包括由所述第三建筑物管理系统节点的所述计算装置确定所述建筑物管理系统的所述一个或多个值。
[0057] 在一些实施例中,所述方法进一步包括:由所述第三建筑物管理系统节点判定所述第三建筑物管理系统的所述多个计算装置中的一个或多个计算装置是否遇到故障;由所述第三节点将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;由所述第三建筑物管理系统节点接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的所述一个或多个值;以及由所述第三建筑物管理系统节点将所述计算作业的所述值发送给所述第一建筑物管理系统节点。
[0058] 本披露的另一种实施方式是一种用于建筑物的建筑物管理系统,用于管理包括第一建筑物管理系统节点的所述建筑物管理系统的节点中的故障。所述第一建筑物管理系统节点包括处理电路,所述处理电路被配置用于:从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;以及将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值。所述处理电路被配置用于:从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态;以及响应于指示所述第二节点未能确定所述一个或多个值的所述进度消息,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
[0059] 在一些实施例中,所述第一建筑物管理系统节点的所述处理电路被配置用于控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述值来控制所述建筑物的环境条件。
[0060] 在一些实施例中,所述第一建筑物管理系统节点的所述处理电路被配置用于基于自将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障。
[0061] 在一些实施例中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过基于所述进度消息判定所述第二建筑物管理系统节点是否将完成所述计算作业来判定所述第二建筑物管理系统节点是否已发生故障,其中,所述进度消息指示所述第二建筑物管理系统无法完成所述计算作业。
[0062] 在一些实施例中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过以下操作执行优化以确定所述多个节点中的最优节点从而执行所述计算作业来选择所述第二建筑物管理系统节点:生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;以及优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
[0063] 在一些实施例中,所述第一建筑物管理系统节点的所述处理电路被配置用于通过执行第二优化以确定所述多个节点中的第二最优节点从而执行所述计算作业来从所述多个节点中选择所述第三建筑物管理系统节点,其中,所述第二优化不考虑所述第二建筑物管理系统节点。
[0064] 在一些实施例中,其中,所述第三建筑物管理系统节点包括多个计算装置,所述多个计算装置被配置用于确定所述建筑物管理系统的所述一个或多个值。
[0065] 在一些实施例中,其中,所述第三建筑物管理系统节点包括处理电路,所述处理电路被配置用于:判定所述第三建筑物管理系统的所述多个计算装置中的一个或多个计算装置是否遇到故障;将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的所述一个或多个值;以及将所述计算作业的所述一个或多个值发送给所述第一建筑物管理系统节点。
[0066] 本披露的另一种实施方式是一种用于管理建筑物的建筑物管理系统的多个节点中的故障的计算机实施的方法。所述方法包括:由第一建筑物管理系统节点的处理电路从所述多个建筑物管理系统节点中选择第二建筑物管理系统节点以执行计算作业从而确定所述建筑物管理系统的一个或多个值;以及由所述第一建筑物管理系统节点的所述处理电路将所述计算作业发送给所述第二建筑物管理系统节点,以便所述第二建筑物管理系统节点确定所述建筑物管理系统的所述一个或多个值。所述方法进一步包括由所述第一建筑物管理系统节点的所述处理电路从所述第二建筑物管理系统节点接收进度消息,其中,所述进度消息指示所述第二建筑物管理系统节点用于确定所述一个或多个值的状态。所述方法进一步包括:由所述第一建筑物管理系统节点的所述处理电路基于自所述第一建筑物管理系统节点将所述计算作业发送给所述第二建筑物管理系统节点以来的时间长度、以及自所述第一建筑物管理系统节点从所述第二建筑物管理系统节点接收到最新进度消息以来的时间长度中的至少一个时间长度来判定所述第二建筑物管理系统节点是否已发生故障;以及由所述第一建筑物管理系统节点的所述处理电路响应于确定所述第二节点未能确定所述一个或多个值,从所述多个建筑物管理系统节点中选择第三建筑物管理系统节点以执行所述计算作业。
[0067] 在一些实施例中,所述方法进一步包括由所述建筑物管理系统节点中的一个或多个建筑物管理系统节点控制与所述建筑物相关联的建筑物设备,以基于由所述第三建筑物管理系统节点确定的所述一个或多个值来控制所述建筑物的环境条件。
[0068] 在一些实施例中,由所述第一建筑物管理系统节点的所述处理电路选择所述第二建筑物管理系统节点包括通过以下操作执行优化以确定所述多个节点中的最优节点从而执行所述计算作业:由所述第一建筑物管理系统节点的所述处理电路生成用于所述多个建筑物管理系统节点的目标函数,其中,所述目标函数指示用于由所述多个建筑物管理系统节点中的每个建筑物管理系统节点确定所述一个或多个值的成本;以及由所述第一建筑物管理系统节点的所述处理电路优化所述目标函数以选择所述多个建筑物管理系统节点中的第二建筑物管理系统节点以确定所述一个或多个值,其中,优化所述目标函数选择所述多个建筑物管理系统节点中与最优成本相关联的所述第二建筑物管理系统节点。
[0069] 在一些实施例中,所述第三建筑物管理系统节点包括多个计算装置。在一些实施例中,所述方法进一步包括:由所述第三建筑物管理系统节点的所述计算装置确定所述建筑物管理系统的一个或多个值;由所述第三建筑物管理系统节点的处理电路判定所述第三建筑物管理系统的所述多个计算装置中的一个或多个计算装置是否遇到故障;由所述第三节点的所述处理电路将所述计算作业的一个或多个作业组成部分发送给第四建筑物管理系统节点;由所述第三建筑物管理系统节点的所述处理电路接收由所述第四节点执行的所述计算作业的所述一个或多个作业组成部分的结果;由所述第三建筑物管理系统节点的所述处理电路基于从所述第四建筑物管理系统节点接收到的所述一个或多个作业组成部分的所述结果,生成所述计算作业的值;以及由所述第三建筑物管理系统节点将所述计算作业的所述一个或多个值发送给所述第一建筑物管理系统节点。
[0070] 在一些实施例中,本披露涉及一种用于将冗余结合到用于在并行地执行可以交互的多个算法的许多计算用计算机集群之间以最佳方式分配计算机资源的系统中的方法。在一些实施例中,所述方法包括执行优化例程以在许多计算资源之间分配算法执行,其中在注意到算法意外失败时,所述优化会降低节点的可靠性并将所述算法重定向到另一个源。
[0071] 基于云的动态控制框架
[0072] 本披露的另一种实施方式是一种用于经由基于云的建筑物管理系统对建筑现场的建筑物设备进行基于云的动态控制的方法。所述方法包括:由所述基于云的建筑物管理系统响应于接收到启动请求对定序器进行实例化;经由所述基于云的建筑物管理系统接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;以及基于所述序列包经由通过基于云的建筑物管理系统实例化的所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据。所述方法进一步包括:基于所收集的数据,经由通过所述基于云的建筑物管理系统实例化的所述定序器使控制过程执行;以及基于所述控制过程的执行结果,经由通过所述基于云的建筑物管理系统实例化的所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备以控制所述建筑物的环境条件的命令。
[0073] 在一些实施例中,所述方法进一步包括:由所述基于云的建筑物管理系统判定所述定序器是否遇到故障;以及由所述基于云的建筑物管理系统响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
[0074] 在一些实施例中,所述定序器可在多个不同的计算系统中的一个或多个计算系统上执行。在一些实施例中,对所述定序器进行实例化包括:判定是在位于所述建筑现场外的计算系统还是在位于所述建筑现场内的场所内计算系统上对所述定序器进行实例化;以及基于所述判定的结果,在位于所述建筑现场外的所述计算系统和位于所述建筑物内的所述场所内计算系统上对所述定序器进行实例化。
[0075] 在一些实施例中,所述方法进一步包括:基于所述建筑物设备的所收集数据,经由所述定序器来更新由所述基于云的建筑物管理系统存储的数据模型,其中,所述数据模型包括所述建筑现场和所述建筑现场的所述建筑物设备的信息。在一些实施例中,所述方法包括:基于所述模型生成用于用户的用户界面,其中,所述用户界面基于所述模型指示与所述建筑物和所述建筑物设备有关的信息。
[0076] 在一些实施例中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
[0077] 在一些实施例中,所述执行信息包括在特定时间段内从特定建筑物数据点递归地收集或向特定建筑物数据点递归地分派的指示。在一些实施例中,所述指示是响应于所述建筑现场的特定值改变了预定义量而从所述特定建筑物数据点收集或向所述特定建筑物数据点分派的指示。在一些实施例中,所述执行信息进一步包括:在所述特定时间段执行所述控制过程的指示;以及响应于所述建筑现场的所述特定值改变了所述预定义量而执行所述控制过程的指示。
[0078] 在一些实施例中,所述序列包包括数据链接信息,其中,所述数据链接信息包括元组对,所述元组对指示所述建筑现场的物理数据点与所述数据模型的数字数据点之间的链接。在一些实施例中,经由通过基于云的建筑物管理系统实例化的定序器从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:基于所述链接信息通过检索所述物理数据点的数据值来检索所述数字数据点的数据值。
[0079] 在一些实施例中,经由通过所述基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:与位于所述建筑现场内的收集器-分派器系统通信。
[0080] 在一些实施例中,经由通过基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据包括:向所述收集器-分派器系统发送对所述物理数据点的输入数据的请求;经由所述收集器-分配器接收所述物理数据点的所述输入数据;以及将针对所述物理数据点所接收的输入数据存储在所述数据模型中作为所述数字数据点。
[0081] 本披露的另一种实施方式是一种用于对建筑现场的建筑物设备进行动态控制的基于云的建筑物管理系统。所述基于云的建筑物管理系统包括处理电路,所述处理电路被配置用于:响应于接收到启动请求对定序器进行实例化;经由所述定序器接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;基于所述序列包,经由所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据;基于所收集的数据,经由所述定序器使控制过程执行;以及基于所述控制过程的执行结果,经由所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备以控制所述建筑现场的环境条件的命令。
[0082] 在一些实施例中,所述处理电路被配置用于:判定所述定序器是否遇到故障;以及响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
[0083] 在一些实施例中,所述定序器可在多个不同的计算系统中的一个或多个计算系统上执行。在一些实施例中,对所述定序器进行实例化包括:判定是在位于所述建筑现场外的计算系统还是在位于所述建筑现场内的场所内计算系统上对所述定序器进行实例化;以及基于所述判定的结果,在位于所述建筑现场外的所述计算系统和位于所述建筑物内的所述场所内计算系统上对所述定序器进行实例化。
[0084] 在一些实施例中,所述处理电路被配置用于:基于所述建筑物设备的所收集的数据来更新由所述基于云的建筑物管理系统存储的数据模型,其中,所述数据模型包括所述建筑现场和所述建筑现场的所述建筑物设备的信息;以及基于所述模型生成用于用户的用户界面,其中,所述用户界面基于所述模型指示与所述建筑物和所述建筑物设备有关的信息。
[0085] 在一些实施例中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
[0086] 在一些实施例中,所述执行信息包括:在特定时间段内从特定建筑物数据点收集或向特定建筑物数据点分派的指示;以及响应于所述建筑现场的特定值改变了预定义量而从所述特定建筑物数据点收集或向所述特定建筑物数据点分派的指示。在一些实施例中,所述执行信息进一步包括:在所述特定时间段执行所述控制过程的指示;以及响应于所述建筑现场的所述特定值改变了所述预定义量而执行所述控制过程的指示。
[0087] 在一些实施例中,所述序列包包括数据链接信息,其中,所述数据链接信息包括元组对,所述元组对指示所述建筑现场的物理数据点与所述数据模型的数字数据点之间的链接。在一些实施例中,所述处理电路被配置用于:通过基于所述链接信息通过检索所述物理数据点的数据值来检索所述数字数据点的数据值,经由所述定序器从所述建筑现场的所述建筑物设备收集所述建筑物数据。
[0088] 在一些实施例中,所述处理电路被配置用于:通过与位于所述建筑现场内的收集器-分派器系统通信,经由所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据。
[0089] 在一些实施例中,所述处理电路被配置用于通过以下方式经由通过基于云的建筑物管理系统实例化的所述定序器来从所述建筑现场的所述建筑物设备收集所述建筑物数据:向所述收集器-分派器系统发送对所述物理数据点的输入数据的请求;经由所述收集器-分配器接收所述物理数据点的所述输入数据;以及将针对所述物理数据点所接收的输入数据存储在所述数据模型中作为所述数字数据点。
[0090] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由基于云的建筑物管理系统的处理器执行,所述操作包括:响应于接收到启动请求对定序器进行实例化;接收序列包,其中,所述序列包包括用于将所述基于云的建筑物管理系统与所述建筑现场进行接口连接的配置信息;基于所述序列包,经由通过基于云的建筑物管理系统实例化的所述定序器从所述建筑现场的所述建筑物设备收集建筑物数据;基于所收集的数据,经由通过所述基于云的建筑物管理系统实例化的所述定序器使控制过程执行;以及基于所述控制过程的执行结果,经由通过所述基于云的建筑物管理系统实例化的所述定序器向所述建筑物设备分派命令,其中,所述命令包括控制所述建筑物设备的命令;判定所述定序器是否遇到故障;以及响应于确定所述定序器遇到故障,对第二定序器进行实例化以继续所述故障的定序器的操作。
[0091] 在一些实施例中,所述序列包包括执行信息,所述执行信息指示所述定序器应何时从所述建筑物设备收集所述建筑物数据、以及所述定序器应何时使所述控制过程执行。
[0092] 在一些实施例中,本披露的另一种实施方式是一种用于将远程系统的控制策略上载到云部署解决方案并执行所述控制策略的方法,所述云部署解决方案允许对底层远程系统的基于云的控制,所述基于云的控制包括序列图、连接细节以及所述远程系统与所述云解决方案之间的映射细节,所述方法包括:允许在操作期间更新所述序列图而不影响所述远程系统;以及允许底层控制算法在操作期间进行更改而不影响所述远程系统。
[0093] 在一些实施例中,所述远程系统是包括冷却器、锅炉电池中的至少一者的HVAC设施;其中,所述云部署解决方案是在场所内部署的。
[0094] 算法接口应用设计器
[0095] 本披露的另一种实施方式是一种用于生成和更新建筑物的建筑物管理系统的实时仪表板的方法。所述方法包括:由所述建筑物管理系统生成仪表板设计器界面,并使所述仪表板设计器界面显示在用户的用户装置上;由所述建筑物管理系统经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互。所述方法进一步包括:由所述建筑物管理系统通过将从所述用户接收的所述图形元素绑定到所述实时仪表板的小插件来生成小插件;由所述建筑物管理系统基于经由所述仪表板设计器界面的用户选择来将数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;由所述建筑物管理系统从所述建筑物设备接收所述数据点的值;以及由所述建筑物管理系统在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
[0096] 在一些实施例中,所述方法进一步包括:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。
[0097] 在一些实施例中,绑定到所述小插件的所述数据点未绑定到所述实时仪表板的任何其他小插件,其中,所述实时仪表板包括多个页面,每个页面包括特定小插件。
[0098] 在一些实施例中,所述图形元素是可缩放矢量图形(SVG)文件,其中,所述仪表板设计器界面允许用户将所述SVG上传到所述建筑物管理系统。
[0099] 在一些实施例中,所述方法进一步包括由所述建筑物管理系统基于所述数据点的所述值以及所述数据点的多个阈值来调整所述小插件的不透明度值,其中,所述不透明度值是所述数据点的所述值与所述多个阈值的函数。在一些实施例中,所述方法进一步包括由所述建筑物管理系统基于调整后的不透明度值在所述实时仪表板中显示所述小插件。
[0100] 在一些实施例中,所述方法进一步包括基于所接收的所述数据点的值和颜色映射来改变所述小插件的颜色,其中,所述颜色映射包括所述数据点的潜在值与所述小插件的相应颜色之间的关系。
[0101] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统响应于确定所述数据点的所述值大于预定义量,使所述小插件显示在所述实时仪表板的页面上;以及由所述建筑物管理系统响应于确定所述数据点的所述值小于所述预定义量,使所述小插件不显示在所述实时仪表板的所述页面上。
[0102] 在一些实施例中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点。在一些实施例中,所述方法进一步包括通过接收从所述可选点列表的所述多个数据点中对所述数据点的选择来接收所述用户选择。
[0103] 在一些实施例中,所述方法进一步包括由所述建筑物管理系统使所述用户装置显示所述实时仪表板,其中,所述实时仪表板包括在所述实时仪表板内同时显示的第一窗格和第二窗格。在一些实施例中,所述第一窗格包括包含多个页面的可选页面列表,其中,每个页面与多个小插件中的一个小插件相关联,其中,所述多个页面中的第一页面与所述小插件相关联。在一些实施例中,所述第二窗格包括对所述多个小插件中的经由所述可选页面列表选择的所选小插件的显示。
[0104] 在一些实施例中,所述应用设计器界面显示包括多个图形元素的可选图形元素列表,其中,所述图形元素包括所述图形元素。在一些实施例中,所述方法进一步包括:从所述可选图形元素列表的所述多个图形元素中接收用户对所述图形元素的选择;以及经由所述应用设计器界面以可编辑模式向所述用户显示所述图形元素。
[0105] 在一些实施例中,所述应用设计器界面包括第一界面窗格、第二界面窗格和第三界面窗格,其中,所述应用设计器界面在所述应用设计器界面中同时显示所述第一界面窗格、所述第二界面窗格和所述第三界面窗格。在一些实施例中,所述第一界面窗格包括包含多个数据点的可选点列表,其中,所述多个数据点包括所述数据点。在一些实施例中,所述第二界面窗格包括所述可选图形元素列表。在一些实施例中,所述第三界面窗格包括对可编辑模式的所述图形元素的显示。
[0106] 本披露的另一种实施方式是一种用于建筑物的用于生成和更新实时仪表板的建筑物管理系统。所述建筑物管理系统包括处理电路,所述处理电路被配置用于:生成仪表板设计器界面并使所述仪表板设计器界面显示在用户的用户装置上;经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互;通过将从所述用户接收的所述图形元素绑定到所述实时仪表板的小插件来生成小插件;基于经由所述仪表板设计器界面的用户选择来将数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;由所述建筑物管理系统从所述建筑物设备接收所述数据点的值;以及由所述建筑物管理系统在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
[0107] 在一些实施例中,所述处理电路被配置用于:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。
[0108] 在一些实施例中,绑定到所述小插件的所述数据点未绑定到所述实时仪表板的任何其他小插件,其中,所述实时仪表板包括多个页面,每个页面包括特定小插件。
[0109] 在一些实施例中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点。在一些实施例中,所述处理电路被配置用于通过接收从所述可选点列表的所述多个数据点中对所述数据点的选择来接收所述用户选择。
[0110] 在一些实施例中,所述方法进一步包括由所述建筑物管理系统使所述用户装置显示所述实时仪表板,其中,所述实时仪表板包括在所述实时仪表板内同时显示的第一窗格和第二窗格。在一些实施例中,所述第一窗格包括包含多个页面的可选页面列表,其中,每个页面与多个小插件中的一个小插件相关联,其中,所述页面中的第一页面与所述小插件相关联。在一些实施例中,所述第二窗格包括对所述多个小插件中的经由所述可选页面列表选择的所选小插件的显示。
[0111] 在一些实施例中,所述应用设计器界面显示包括多个图形元素的可选图形元素列表,其中,所述图形元素包括所述图形元素。在一些实施例中,所述处理电路被配置用于:从所述可选图形元素列表的所述多个图形元素中接收用户对所述图形元素的选择;以及经由所述应用设计器界面以可编辑模式向所述用户显示所述图形元素。
[0112] 在一些实施例中,所述应用设计器界面包括第一界面窗格、第二界面窗格和第三界面窗格。在一些实施例中,所述应用设计器界面在所述应用设计器界面中同时显示所述第一界面窗格、所述第二界面窗格和所述第三界面窗格。在一些实施例中,所述第一界面窗格包括包含多个数据点的可选点列表,其中,所述多个数据点包括所述数据点。在一些实施例中,所述第二界面窗格包括所述可选图形元素列表。在一些实施例中,所述第三界面窗格包括对可编辑模式的所述图形元素的显示。
[0113] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行操作。所述操作包括生成仪表板设计器界面并使所述仪表板设计器界面显示在用户的用户装置上,其中,所述应用设计器界面显示包括多个数据点的可选点列表,其中,所述多个数据点包括所述数据点。所述操作进一步包括:经由所述仪表板设计器界面从所述用户接收图形元素,其中,所述图形文件支持动画和用户交互;以及通过将从所述用户接收的所述图形元素绑定到实时仪表板的小插件来生成小插件。所述操作进一步包括:通过接收从所述可选点列表的所述多个数据点中对数据点的选择来接收用户点选择;基于经由所述仪表板设计器界面的所述用户选择来将所述数据点绑定到所述小插件,其中,所述数据点是所述建筑物的建筑物设备的数据点;由所述建筑物管理系统从所述建筑物设备接收所述数据点的值;以及由所述建筑物管理系统在所述实时仪表板中显示所述小插件,所述小插件包括对所述数据点的所述值的指示。
[0114] 在一些实施例中,所述操作进一步包括:经由所述小插件接收用户输入的数据,以及由所述建筑物管理系统控制所述建筑物设备以基于所述用户输入的数据来控制所述建筑物的环境条件。
[0115] 在一些实施例中,本披露的另一种实施方式是一种允许对HTML5内的可缩放矢量图形(SVG)的客户端定义的渲染和动画以提供可自定义仪表板的方法,所述可自定义仪表板包括:由客户端绘制的上载到客户端应用的任何SVG;浏览器内SVG编辑器,所述浏览器内SVG编辑器允许所述客户端选择根级SVG元素以将它们转换为所述客户端应用可以随后渲染的小插件;小插件,所述小插件依赖于客户端定义的与所述底层系统相关的点,并且允许HTML5浏览器或其第三方库可以使用任何类型的动画或渲染;以及客户端利用在所述自定义仪表板的小插件中使用的ID定义的点,所述ID具有到所述系统中的底层点的链接或者提供将多个点绑定在一起的数学表达式(例如A+B+C)。
[0116] 在一些实施例中,所述小插件可以是其大小和小数精度用于示出所述底层系统内点的当前值的单个文本框;其中,所述小插件可以是基于所述底层系统内的点的阈值的不透明度改变器;其中,所述小插件可以是基于所述底层系统内的点的阈值的运动补间激活器(motion tween activator);其中,所述小插件可以是基于所述底层系统内的点的阈值的可见性控制器;其中,所述小插件可以是允许覆写(overriding)所述底层系统内存在的输入数据的表;其中,所述小插件可以是允许所述客户端在上载的SVG之间切换的导航工具。
[0117] 能源优化构建器和类属数据模型设计器
[0118] 本披露的另一种实施方式是一种用于生成建筑物的建筑物模型并基于所述建筑物模型来操作所述建筑物的建筑物设备的建筑物管理系统。所述建筑物管理系统包括处理电路,所述处理电路被配置用于:接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据;生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素基于所接收的上下文并且表示所述建筑物设备;经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑。所述处理电路被配置用于:基于所述用户对所述上下文的编辑生成经更新的上下文;以及部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件。
[0119] 在一些实施例中,所述处理电路被配置用于在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布(canvas)以及用于显示所述上下文的潜在建筑物元素的选盘(palette)。在一些实施例中,所述处理电路被配置用于从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个。在一些实施例中,所述处理电路被配置用于:从所述用户装置接收所述建筑物元素之间的连接;以及基于对所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文。
[0120] 在一些实施例中,所述潜在建筑物元素基于所述上下文,其中,所述潜在元素是基于由所述上下文指示的可能建筑物元素生成的。在一些实施例中,所述建筑物元素之间的所述连接由所述上下文控制,其中,所述建筑物管理系统基于所述上下文允许的连接而允许某些连接、但不允许其他连接。
[0121] 在一些实施例中,所述处理电路被配置用于:从所述用户装置接收与所述建筑物元素画布中的一个建筑物元素的交互;在所述建筑物模型编辑器界面上显示属性界面,其中,所述属性界面包括用于所述一个建筑物元素的属性选项;从所述用户装置接收对所述属性选项的调整;以及基于对所述属性选项的所述调整生成所述经更新的上下文。
[0122] 在一些实施例中,所述属性选项包括停用日期范围,其中,所述日期范围指示所述建筑物元素将不运行的时间段。
[0123] 在一些实施例中,用于所述一个建筑物元素的所述属性选项是基于由所述上下文定义的相关联元素的被允许属性选项。在一些实施例中,所述处理电路被配置用于:基于所述上下文确定用于所述一个建筑物元素的所述被允许属性选项;以及使所述属性选项成为所述被允许属性选项。
[0124] 在一些实施例中,所述处理电路被配置用于基于所接收的连接来显示所述建筑物元素之间的连接线,其中,所述连接线指示所述建筑物元素之间的特定资源的流动,其中,所述线包括与所述特定资源的类型相关联的颜色。
[0125] 在一些实施例中,所述处理电路被配置用于:基于所述用户对所述上下文的编辑生成优化问题;执行所述优化问题以生成所述建筑物设备的控制设置;以及基于所生成的控制设置来操作所述建筑物设备。
[0126] 在一些实施例中,所述处理电路被配置用于通过基于所述用户对所述上下文的编辑生成优化约束来基于所述用户对所述上下文的编辑生成所述优化问题。在一些实施例中,所述处理电路被配置用于执行所述优化问题,以通过利用所述优化约束执行所述优化问题来生成所述建筑物设备的所述控制设置。
[0127] 在一些实施例中,所述处理电路被配置用于通过基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束,来基于所述用户对所述上下文的编辑生成所述优化约束。
[0128] 本披露的另一种实施方式是一种用于通过用于操作建筑物的建筑物设备的建筑物管理系统来生成所述建筑物的建筑物模型的方法。所述方法包括经由所述建筑物管理系统接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据。所述方法进一步包括经由所述建筑物管理系统生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素基于所接收的上下文并且表示所述建筑物设备。所述方法进一步包括:由所述建筑物管理系统经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑;由所述建筑物管理系统基于所述用户对所述上下文的编辑来生成经更新的上下文;以及由所述建筑物管理系统部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件。
[0129] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布以及用于显示所述上下文的潜在建筑物元素的选盘;以及由所述建筑物管理系统从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个。在一些实施例中,所述方法进一步包括:由所述建筑物管理系统从所述用户装置接收所述建筑物元素之间的连接;以及由所述建筑物管理系统基于对所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文。
[0130] 在一些实施例中,所述潜在建筑物元素基于所述上下文,其中,所述潜在元素是基于由所述上下文指示的可能建筑物元素生成的。在一些实施例中,所述建筑物元素之间的所述连接由所述上下文控制,其中,所述建筑物管理系统基于所述上下文允许的连接而允许某些连接、但不允许其他连接。
[0131] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统从所述用户装置接收与所述建筑物元素画布中的一个建筑物元素的交互;由所述建筑物管理系统在所述建筑物模型编辑器界面上显示属性界面,其中,所述属性界面包括用于所述一个建筑物元素的属性选项;由所述建筑物管理系统从所述用户装置接收对所述属性选项的调整;以及由所述建筑物管理系统基于对所述属性选项的所述调整生成所述经更新的上下文。
[0132] 在一些实施例中,用于所述一个建筑物元素的所述属性选项是基于由所述上下文定义的相关联元素的被允许属性选项。在一些实施例中,所述方法进一步包括:由所述建筑物管理系统基于所述上下文确定用于所述一个建筑物元素的所述被允许属性选项;以及由所述建筑物管理系统使所述属性选项成为所述被允许属性选项。
[0133] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统基于所述用户对所述上下文的编辑生成优化问题;由所述建筑物管理系统执行所述优化问题以生成所述建筑物设备的控制设置;以及由所述建筑物管理系统基于所生成的控制设置来操作所述建筑物设备。
[0134] 在一些实施例中,由所述建筑物管理系统基于所述用户对所述上下文的编辑生成所述优化问题包括基于所述用户对所述上下文的编辑来生成优化约束。在一些实施例中,由所述建筑物管理系统执行所述优化问题以生成所述建筑物设备的所述控制设置包括利用所述优化约束来执行所述优化问题。
[0135] 在一些实施例中,由所述建筑物管理系统基于所述用户对所述上下文的编辑来生成所述优化约束包括:基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束。
[0136] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行操作。所述操作包括接收上下文,其中,所述上下文包括定义所述建筑物的所述建筑物模型的元数据。在一些实施例中,所述操作进一步包括生成用于查看和编辑所接收的上下文的建筑物模型编辑器界面,其中,所述建筑物模型界面包括用于所述建筑物模型的建筑物元素,其中,所述建筑物元素是基于所接收的上下文并且表示所述建筑物的建筑物设备。在一些实施例中,所述操作进一步包括:经由所述建筑物模型界面接收用户对所述上下文的编辑,其中,所述用户编辑包括对所述建筑物元素的编辑;基于所述用户对所述上下文的编辑生成经更新的上下文;部署所述经更新的上下文,以基于所述经更新的上下文利用所述建筑物设备来控制所述建筑物的环境条件;以及基于所述用户对所述上下文的编辑生成优化问题。在一些实施例中,所述方法进一步包括:执行所述优化问题以生成所述建筑物设备的控制设置;以及基于所生成的控制设置来操作所述建筑物设备。
[0137] 在一些实施例中,所述操作进一步包括:在用户装置的显示器上显示所述建筑物模型界面,其中,所述建筑物模型界面包括用于显示所述上下文的所述建筑物元素的画布以及用于显示所述上下文的潜在建筑物元素的选盘;以及从所述用户装置接收将所述选盘的所述潜在建筑物元素之一放置在所述画布上的命令,其中,所述潜在建筑物元素和所述建筑物元素分别指示生成资源的公用设施、所述资源以及消耗所述资源并生成另一资源的子设施中的至少一个;从所述用户装置接收所述建筑物元素之间的连接;以及基于所述建筑物元素的放置以及所述建筑物元素之间的所述连接来生成所述经更新的上下文。在一些实施例中,基于所述用户对所述上下文的编辑来生成所述优化约束包括:基于将所述选盘的所述建筑物元素放置在所述画布上的命令、所述建筑物元素之间的所述连接以及对所述属性选项的所述调整生成所述优化约束。
[0138] 在一些实施例中,本披露的另一种实施方式是一种用于以图形方式描述和模拟优化问题的方法,所述方法包括:布置表示将一个或多个资源转换为不同组的一个或多个资源的能力的设施;布置表示必须满足的资源需求的负载;将所述设施连接到资源以描述所述设施可以如何满足所述负载;将供应商或公共设施连接到所述资源以指示采购所述资源的能力;将对设施负载供应商的所述布置和连接转换为能够解决的优化描述。
[0139] 在一些实施例中,所述方法进一步包括修改任何设施、供应商或资源的特性。
[0140] 在一些实施例中,本披露的另一种实施方式是一种用于以图形方式描述和模拟任何算法和数据模型的方法,所述方法包括:接收呈现在可以拖动到画布上的选盘上的图案;将图案放置在其他图案内以描述层次结构关系;将图案连接到其他图案以描述其他关联;
提供用于通过由实体定义的掩码的用户来类属地编辑那些实体的特性的能力。
[0141] 实时存储器技术
[0142] 本披露的另一种实施方式是一种用于减少建筑物的建筑物管理系统的存储器装置的存储器使用的方法。所述方法包括由所述建筑物管理系统接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据。所述方法进一步包括:由所述建筑物管理系统接收对所述数据模型的特性的请求;以及由所述建筑物管理系统响应于接收到所述请求,通过基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据并对所检索的串行化数据进行解串行化,从而为所请求的特性生成解串行化数据。
[0143] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统基于所述解串行化数据、通过利用所述建筑物的建筑物设备控制所述建筑物的环境条件来基于所述解串行化数据控制所述建筑物设备。
[0144] 在一些实施例中,所述数据模型的所述关系包括多个句柄,其中,所述句柄中的每个句柄将所述数据模型的所述多个特性中的一个特性链接到包括所述串行化数据的存储对象。
[0145] 在一些实施例中,所述方法进一步包括基于所述多个句柄通过标识所述多个句柄中与所述请求的所述特性相对应的一个句柄来确定密钥。在一些实施例中,基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据包括通过检索由所述密钥引用的所述串行化数据来从所述存储器装置中检索所述串行化数据。
[0146] 在一些实施例中,所述方法进一步包括:接收用于所述数据模型的所述特性的数据;通过对所接收数据进行串行化来为所述数据模型的所述特性生成所述串行化数据;以及将所述串行化数据存储在所述存储器装置中,其中,所述关系将所述数据模型的所述特性链接到所述串行化数据。
[0147] 在一些实施例中,所述方法进一步包括对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
[0148] 在一些实施例中,所述方法进一步包括:通过基于所述数据模型的多种关系从所述存储器装置检索串行化且经压缩数据来生成针对所请求特性的解串行化数据;以及通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
[0149] 在一些实施例中,生成所述解串行化数据包括基于存储所述串行化数据的存储对象生成包括所述解串行化数据的输送对象,其中,所述存储对象将所述串行化数据存储为字节数组,其中,生成所述解串行化数据包括从所述字节数组生成所述输送对象。
[0150] 在一些实施例中,所述方法进一步包括:更新所述输送对象的所述解串行化数据的一个或多个值;基于所述解串行化数据通过对所述输送对象进行串行化来生成经更新存储对象;以及使所述存储器装置存储所述经更新存储对象。
[0151] 本披露的另一种实施方式是一种用于建筑物的用于减少存储器装置的存储器使用量的建筑物管理系统。所述建筑物管理系统包括处理电路,所述处理电路被配置用于接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据。所述处理电路可以被配置用于:接收对所述数据模型的特性的请求;以及响应于接收到所述请求,通过基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据并对所检索的串行化数据进行解串行化,来为所请求的特性生成解串行化数据。
[0152] 在一些实施例中,所述处理电路被配置用于基于所述解串行化数据、通过利用所述建筑物的建筑物设备控制所述建筑物的环境条件,来基于所述解串行化数据控制所述建筑物设备。
[0153] 在一些实施例中,所述数据模型的所述关系包括多个句柄,其中,所述句柄中的每个句柄将所述数据模型的所述多个特性中的一个特性链接到包括所述串行化数据的存储对象。
[0154] 在一些实施例中,所述处理电路被配置用于基于所述句柄通过标识所述多个句柄中与所述请求的所述特性相对应的一个句柄来确定密钥。在一些实施例中,所述处理电路被配置用于通过检索由所述密钥引用的所述串行化数据来从所述存储器装置中检索所述串行化数据,而基于所述数据模型的所述关系从所述存储器装置中检索所述串行化数据。
[0155] 在一些实施例中,所述处理电路被配置用于:接收用于所述数据模型的所述特性的数据;通过对所接收数据进行串行化来为所述数据模型的所述特性生成所述串行化数据;以及将所述串行化数据存储在所述存储器装置中,其中,所述关系将所述数据模型的所述特性链接到所述串行化数据。
[0156] 在一些实施例中,所述处理电路被配置用于对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
[0157] 在一些实施例中,所述处理电路被配置用于:通过基于所述数据模型的多种关系从所述存储器装置检索串行化且经压缩数据来生成针对所请求特性的解串行化数据;以及通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
[0158] 在一些实施例中,所述处理电路被配置用于通过基于存储所述串行化数据的存储对象生成包括所述解串行化数据的输送对象来生成所述解串行化数据,其中,所述存储对象将所述串行化数据存储为字节数组,其中,生成所述解串行化数据包括从所述字节数组生成所述输送对象。
[0159] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的建筑物管理系统的处理器执行以执行操作,所述操作包括:接收用于数据模型的特性的数据;通过对所接收数据进行串行化来为所述数据模型的所述特性生成串行化数据;将所述串行化数据存储在存储器装置中,其中,所述多种关系将所述数据模型的所述特性链接到所述串行化数据;接收对存储在所述存储器装置中的数据模型的特性的请求,其中,所述数据模型包括多种关系,其中,每种关系将多个特性中的一个特性链接到存储在所述存储器装置内的串行化建筑物数据;接收对所述数据模型的特性的请求;以及响应于接收到所述请求,通过基于所述数据模型的所述多种关系从所述存储器装置中检索所述串行化数据并对所检索的串行化数据进行解串行化,来为所请求的特性生成解串行化数据。
[0160] 在一些实施例中,所述操作进一步包括对所述特性的所述串行化数据进行压缩,并使所述存储器装置存储所述经压缩且串行化的数据。
[0161] 在一些实施例中,所述操作进一步包括:通过基于所述数据模型的多种关系从所述存储器装置检索串行化且经压缩数据来生成针对所请求特性的解串行化数据;以及通过对所述串行化且经压缩的数据进行解压缩来生成所述串行化数据以及对所生成的串行化数据进行解串行化。
[0162] 在一些实施例中,本披露的另一种实施方式是一种用于通过将大的关系模型存储到RAM中并且将特性数据压缩和串行化为绑定到所述关系模型中且按需访问(chunk)来为传统关系数据模型提供高吞吐量和低存储器占用面积的方法。在一些实施例中,所述方法包括将句柄的层次结构存储到RAM中,并且在请求时访问那些句柄以获得被解串行化并由算法使用的串行化数据的密钥。
[0163] 在一些实施例中,所述方法进一步包括通过存储特性之间的关系而不是那些特性的值来减少存储器占用面积。
[0164] 上下文驱动开发
[0165] 本披露的另一种实施方式是一种用于动态地更新用于建筑物的建筑物管理系统(BMS)控制平台的方法。所述方法包括由所述BMS控制平台接收上下文,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型。所述方法进一步包括由所述BMS控制平台经由所述CML实施所述上下文的所述数据模型,其中,所述BMS控制平台在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台。所述方法进一步包括由所述BMS控制平台基于所实施的数据模型控制所述建筑物的所述设备,以控制所述建筑物的环境条件。
[0166] 在一些实施例中,所述方法进一步包括由所述BMS控制平台接收内核和序列,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据。在一些实施例中,所述方法进一步包括由所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备,其中,所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台。
[0167] 在一些实施例中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
[0168] 在一些实施例中,所述序列的所述元数据包括执行信息,所述执行信息指示所述BMS控制平台应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述BMS控制平台应何时使所述控制过程执行。
[0169] 在一些实施例中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的。
[0170] 在一些实施例中,所述CML的所述类结构包括原型类、实体类和属性类。在一些实施例中,所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构。在一些实施例中,所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备。在一些实施例中,所述属性类包括用于基于所述实体类定义的实体的数据存储。
[0171] 在一些实施例中,所述实体类被实施为子实体和组成部分实体,其中,所述组成部分实体表示所述建筑物的所述元素之一,其中,所述子实体是所述组成部分实体的单独实例化、并作为特定组成部分实体的从属绑定到所述特定组成部分实体。
[0172] 在一些实施例中,基于所述上下文和所述CML来实施所述数据模型包括:基于所述实体类生成建筑物实体;基于所述实体类生成区域实体;以及基于所述CML的子类和所生成的区域实体来生成多个区域实体,其中,所述区域实体绑定到所述建筑物实体。
[0173] 本披露的另一种实施方式是一种用于建筑物的可动态更新的建筑物管理系统(BMS)控制平台。所述BMS控制平台包括处理电路,所述处理电路被配置用于接收上下文,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型。所述处理电路被配置用于经由所述CML实施所述上下文的所述数据模型,其中,所述处理电路在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台。所述处理电路被配置用于基于所实施的数据模型控制所述建筑物的所述设备,以控制所述建筑物的环境条件。
[0174] 在一些实施例中,所述处理电路被配置用于接收内核和序列,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据。在一些实施例中,所述处理电路被配置用于基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备,其中,所述处理电路被配置用于基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台。
[0175] 在一些实施例中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
[0176] 在一些实施例中,所述序列的所述元数据包括执行信息,所述执行信息指示所述处理电路应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述处理电路应何时使所述控制过程执行。
[0177] 在一些实施例中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的。
[0178] 在一些实施例中,所述CML的所述类结构包括原型类、实体类和属性类。在一些实施例中,所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构,所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备,并且所述属性类包括用于基于所述实体类定义的实体的数据存储。
[0179] 在一些实施例中,所述实体类被实施为子实体和组成部分实体,其中,所述组成部分实体表示所述建筑物的所述元素之一,其中,所述子实体是所述组成部分实体的单独实例化、并作为特定组成部分实体的从属绑定到所述特定组成部分实体。
[0180] 在一些实施例中,基于所述上下文和所述CML来实施所述数据模型包括:基于所述实体类生成建筑物实体;基于所述实体类生成区域实体;以及基于所述CML的子类和所生成的区域实体来生成多个区域实体,其中,所述区域实体绑定到所述建筑物实体。
[0181] 本披露的另一种实施方式是一种具有存储在其中的机器指令的非暂态计算机可读介质。所述指令可由建筑物的可动态更新的建筑物管理系统(BMS)控制平台的处理器执行以执行操作。所述操作接收上下文、内核和序列,其中,所述上下文包括为所述建筑物和所述建筑物的设备定义数据模型的元数据,其中,所述元数据利用通用建模语言(CML)来描述所述数据模型,其中,所述内核包括定义用于控制所述建筑物的所述设备的控制过程的元数据,并且所述序列包括定义用于执行由所述内核的所述元数据定义的所述控制过程的操作要求的元数据。所述操作进一步包括:经由所述CML实施所述上下文的所述数据模型,其中,所述BMS控制平台在所述BMS控制平台的运行时期间实施所述数据模型并且无需重新部署所述BMS控制平台;以及基于所实施的数据模型、所述内核和所述序列来控制所述建筑物的所述设备,其中,所述BMS控制平台基于所实施的数据模型、所述内核和所述序列来控制所述建筑物设备而无需重新部署所述BMS控制平台以控制所述建筑物的环境条件。
[0182] 在一些实施例中,所述内核的所述元数据指示控制过程、用于所述控制过程的所实施的数据模型的输入数据、以及用于所述控制过程的所实施的数据模型的输出数据。
[0183] 在一些实施例中,所述序列的所述元数据包括执行信息,所述执行信息指示所述BMS控制平台应何时从所述建筑物设备收集数据以用于所述控制过程、以及所述BMS控制平台应何时使所述控制过程执行。
[0184] 在一些实施例中,由所述BMS控制平台实施所述数据模型是基于所述上下文和所述CML的所述元数据,其中,所述上下文的所述元数据是利用所述CML的类结构实施的,其中,所述CML的所述类结构包括原型类、实体类和属性类。在一些实施例中,所述原型类经由引用标签跟踪基于所述实体类定义的实体的层次结构。在一些实施例中,所述实体类表示所述建筑物的元素,其中,所述元素包括天气、区域、所述建筑物以及所述建筑物的所述设备。在一些实施例中,所述属性类包括用于基于所述实体类定义的实体的数据存储。
[0185] 在一些实施例中,本披露的另一种实施方式是一种用于向提供闭环控制的现有建筑物自动化系统部署新特征和功能的方法。在一些实施例中,所述系统包括具有注册端点的REST API,用于在运行时对包含DLL的外部包进行绑定,所述DLL描述了所述部署在不中断现有闭环控制的情况下可以完成的新特征或功能的数据模型、算法和控制策略。
[0186] 在一些实施例中,本披露的另一种实施方式是一种允许用户扩展建筑物自动化系统的所提供的关系数据模型的系统。在一些实施例中,所述系统可以被配置用于:从所述用户获得脚本;验证用于单位换算(unit cohesion)和语言特征的脚本;以及将所述脚本作为原始数据模型的一部分来执行。
[0187] 可验证关系构建语言
[0188] 一种用于验证和运行用于建筑物的建筑物管理系统的脚本的方法,所述方法包括由所述建筑物管理系统接收所述脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作。所述方法进一步包括:由所述建筑物管理系统判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示用所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位;以及由所述建筑物管理系统响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
[0189] 在一些实施例中,所述方法进一步包括由所述建筑物管理系统使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
[0190] 在一些实施例中,所述方法包括由所述建筑物管理系统判定是否存在单位换算包括判定所述结果值的结果单位是否不是单位,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果。
[0191] 在一些实施例中,其中,所述脚本指示要用与所述建筑物的所述数据模型的时间序列数据向量的特定时间相关联的特定数据点执行的操作。在一些实施例中,所述方法进一步包括:由所述建筑物管理系统通过判定所述时间序列数据向量是否包括与所述特定时间相关联的所述特定数据点,来判定所述时间序列数据向量是否需要信号修复;由所述建筑物管理系统响应于确定所述时间序列数据向量不包括与所述特定时间相关联的所述特定数据点,通过执行对所述时间序列数据向量的内插来确定与所述特定时间相关联的所述特定数据点;以及由所述建筑物管理系统基于所述内插的特定数据点来确定所述结果值。
[0192] 在一些实施例中,所述方法包括由所述建筑物管理系统接收所述脚本包括从用户装置的用户界面接收所述脚本,其中,所述方法进一步包括:由所述建筑物管理系统响应于确定所述脚本中的单位换算存在错误,在所述用户装置的所述用户界面上对所述脚本的一个或多个行加下划线,其中,所述被加下划线的一个或多个行与所述单位换算错误相关联,其中,所述脚本中与所述单位换算错误相关联的所述一个或多个行包括导致所述单位换算错误的一项或多项操作。
[0193] 在一些实施例中,所述脚本是所述建筑物的所述数据模型的扩展,其中,所述结果值是所述数据模型的虚拟点并且指示所述建筑物管理系统的调试信息。在一些实施例中,所述方法进一步包括由所述建筑物管理系统通过在运行时执行所述脚本以及所述建筑物管理系统的所述数据模型来确定所述结果值,以执行对所述建筑物管理系统的调试。
[0194] 在一些实施例中,所述方法包括:由所述建筑物管理系统接收与第一单位相关联的用户输入值;以及由所述建筑物管理系统为所述用户输入值确定一对一单位,其中,所述一对一单位包括基于转换因子确定的所述用户输入值的经更新值以及采用从所述第一单位确定的基本单位的指数数组。
[0195] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统接收所述数据模型的所述一个或多个数据点的值;以及由所述建筑物管理系统为所接收的值中的每一个确定一对一单位,其中,所述一对一单位包括指示多个基本单位的指数的指数数组,其中,所述建筑物管理系统将所述值中的每一个映射到所述一对一单位中。
[0196] 在一些实施例中,由所述建筑物管理系统判定是否存在单位换算包括:由所述建筑物管理系统基于所接收的值的所述一对一单位来确定所述结果值的一对一单位;以及判定所述结果值的所述一对一单位是否与所述结果值的预定义一对一单位相匹配。
[0197] 在一些实施例中,所述方法包括:由所述建筑物管理系统从建筑物的数据模型中检索所述一个或多个数据点,其中,所述数据模型指示为建筑物收集的数据;以及由所述建筑物管理系统基于从所述数据模型检索到的所检索的一个或多个数据点来确定所述结果值。
[0198] 在一些实施例中,所述方法包括从所述建筑物的所述数据模型中检索所述一个或多个数据点包括基于所述脚本的一个或多个行从所述数据模型中检索所述一个或多个数据点,每个行包括指示所述一个或多个点在所述数据模型中的位置的标识符。在一些实施例中,所述方法进一步包括由所述建筑物管理系统使执行所述脚本的所述一个或多个结果存储在所述数据模型中。
[0199] 本披露的另一种实施方式是一种用于建筑物的用于验证和运行脚本的建筑物管理系统。所述建筑物管理系统包括处理电路,所述处理电路被配置用于:接收所述脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作;判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示对所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位;以及响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
[0200] 在一些实施例中,所述处理电路被配置用于使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
[0201] 在一些实施例中,所述处理电路被配置用于判定所述结果值的结果单位是否不是单位来判定是否存在单位换算,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果。
[0202] 在一些实施例中,所述脚本指示要用与所述建筑物的所述数据模型的时间序列数据向量的特定时间相关联的特定数据点执行的操作。在一些实施例中,所述处理电路被配置用于:通过判定所述时间序列数据向量是否包括与所述特定时间相关联的所述特定数据点,来判定所述时间序列数据向量是否需要信号修复;响应于确定所述时间序列数据向量不包括与所述特定时间相关联的所述特定数据点,通过执行对所述时间序列数据向量的内插来确定与所述特定时间相关联的所述特定数据点;以及基于所述内插的特定数据点来确定所述结果值。
[0203] 在一些实施例中,所述处理电路被配置用于通过从用户装置的用户界面接收所述脚本来接收所述脚本。在一些实施例中,所述处理电路被配置用于:响应于确定所述脚本中的单位换算存在错误,在所述用户装置的所述用户界面上对所述脚本的一个或多个行加下划线,其中,所述被加下划线的一个或多个行与所述单位换算错误相关联,其中,所述脚本中与所述单位换算错误相关联的所述一个或多个行包括导致所述单位换算错误的一项或多项操作。
[0204] 在一些实施例中,所述处理电路被配置用于:接收与第一单位相关联的用户输入值;以及为所述用户输入值确定一对一单位,其中,所述一对一单位包括基于转换因子确定的所述用户输入值的经更新值以及采用从所述第一单位确定的基本单位的指数数组。
[0205] 在一些实施例中,所述方法进一步包括:由所述建筑物管理系统接收所述数据模型的所述一个或多个数据点的值;以及由所述建筑物管理系统为所接收的值中的每一个确定一对一单位,其中,所述一对一单位包括指示多个基本单位的指数的指数数组,其中,所述建筑物管理系统将所述值中的每一个映射到所述一对一单位中。在一些实施例中,由所述建筑物管理系统判定是否存在单位换算包括:由所述建筑物管理系统基于所接收的值的所述一对一单位来确定所述结果值的一对一单位;以及判定所述结果值的所述一对一单位是否与所述结果值的预定义一对一单位相匹配。
[0206] 本披露的另一种实施方式是一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其中的机器指令,所述机器指令可由建筑物的可动态更新的建筑物管理系统的处理器执行以执行操作,所述操作包括接收脚本,其中,所述脚本指示要用所述建筑物的数据模型的一个或多个数据点执行的一项或多项操作。所述操作进一步包括判定所接收的脚本内是否存在单位换算,其中,所述单位换算指示用所述一个或多个数据点执行所述脚本的结果值包括与期望单位相匹配的单位,其中,由所述建筑物管理系统判定是否存在单位换算包括判定所述结果值的结果单位是否不是单位,其中,不是单位是在所述脚本中添加或减去不同单位的一个或多个特定值的结果。所述操作进一步包括响应于确定存在单位换算,通过用所述一个或多个数据点执行所述脚本来确定所述结果值。
[0207] 在一些实施例中,所述操作进一步包括使所述建筑物的建筑物设备基于所确定的结果值来控制所述建筑物的环境条件。
[0208] 在一些实施例中,本披露的另一种实施方式是一种允许用户在建筑物自动化系统的调试期间构建虚拟点的方法,所述方法包括:从所述用户获得脚本;验证用于单位换算和语言特征的脚本;以及将所述脚本作为原始数据模型的一部分来执行,其中,所述脚本的包含系统可以提供可以结合到所述脚本中并在所述脚本的运行时执行的可能的动作。
[0209] 本披露的另一种实施方式是一种用于从许多随机采样的时变信号中创建无限时间分辨率信号的方法,包括针对在给定所提供的抽头的情况下执行内插的每个输入信号的一组内核,仅依赖于原始信号中存在的记忆来填充这些抽头的索引搜索方法。
[0210] 在一些实施例中,所述方法包括找出保持所述输入信号中存在的所有信息的功能的最少执行次数。
[0211] 一类多用
[0212] 一种用于在建筑物自动化系统内运行共享同一数据模型的多个算法的方法,所述数据模型包括算法可以以之为目标的接口层次结构,其中,在运行时可以添加新接口而不中断主动控制,并且其中,在运行算法时仅请求必要的接口以便进行运行,以允许系统仅发送必要的数据,从而允许系统在输送单个实体的变体时存储所述实体。在一些实施例中,所述数据模型在接口改变时动态地更新。附图说明
[0213] 图1是根据示例性实施例的配备有HVAC系统的建筑物的图示。
[0214] 图2是根据示例性实施例的可以结合图1的建筑物使用的水侧系统的框图
[0215] 图3是根据示例性实施例的可以结合图1的建筑物使用的空气侧系统的框图。
[0216] 图4是根据示例性实施例的可以用于监测和/或控制图1的建筑物的建筑物自动化系统(BAS)的框图。
[0217] 图5是根据示例性实施例的模型视图控制器的框图。
[0218] 图6是根据示例性实施例的基于元数据来执行的控制执行系统的框图。
[0219] 图7A是根据示例性实施例的包括通用建模语言(CML)、快速部署套件(RDS)和算法即服务(A3S)平台的模型控制器平台的框图。
[0220] 图7B是根据示例性实施例的图7A的A3S平台和RDS的更详细描述的框图。
[0221] 图8是根据示例性实施例的图7A的CML的类结构的框图。
[0222] 图9A是根据示例性实施例的图7A和图7B的RDS的单位分析引擎的框图。
[0223] 图9B是根据示例性实施例的可以配置图7A和图7B的RDS的信号引擎以用于信号修复的两个时间序列的图表。
[0224] 图9C是根据示例性实施例的用于接收和执行可以通过对图7A和图7B的RDS的分析来执行的脚本的过程的流程图
[0225] 图10是根据示例性实施例的图7A和图7B的RDS的模型设计器的用于生成和更新上下文的主屏幕界面。
[0226] 图11是根据示例性实施例的用于经由图7A和图7B的RDS的模型设计器创建或编辑上下文的拖放界面。
[0227] 图12A是根据示例性实施例的图11的包括用于对图11的界面的设备参数进行编辑的编辑窗口的拖放界面。
[0228] 图12B是根据示例性实施例的用于使用图11的界面来编辑上下文的过程的流程图。
[0229] 图13是根据示例性实施例的展示了由图7A和图7B的RDS的模拟器执行的模拟的结果的界面。
[0230] 图14A是根据示例性实施例的经由图7A和图7B的RDS的应用设计器生成具有基于可缩放矢量图形(SVG)而生成的小插件的界面页面的框图。
[0231] 图14B是根据示例性实施例的可以利用图7A和图7B的RDS的应用设计器生成的界面。
[0232] 图15是根据示例性实施例的可以用来实施图7A和图7B的A3S平台和RDS的微服务系统的框图。
[0233] 图16是根据示例性实施例的被配置用于管理和运行算法的图7A和图7B的A3S平台的部件的框图。
[0234] 图17A是根据示例性实施例的展示了将包上载到图7A和图7B的A3S平台以用于运行算法并控制远程站点的设备的框图。
[0235] 图17B是根据示例性实施例的更详细地展示了将包上载到图7A和图7B的A3S平台以用于运行算法并控制远程站点的设备的框图。
[0236] 图17C是根据示例性实施例的用于利用图7A和图7B的A3S平台来运行算法并控制远程站点的设备的过程的流程图。
[0237] 图18是根据示例性实施例的用于展示图7A和图7B的A3S平台的内核作业的图7A和图7B的RDS的界面。
[0238] 图19是根据示例性实施例的各种A3S平台节点的框图。
[0239] 图20是根据示例性实施例的图19的A3S平台节点对作业分配进行优化的框图。
[0240] 图21是根据示例性实施例的用于利用图20的A3S平台节点对作业分配进行优化的过程的流程图。
[0241] 图22是根据示例性实施例的图19的A3S平台节点从崩溃且未能完成计算作业的A3S平台节点之一中恢复的框图。
[0242] 图23是根据示例性实施例的用于从崩溃且未能完成计算作业的图22的一个或多个A3S平台节点中恢复的过程的流程图。
[0243] 图24是根据示例性实施例的可以被配置用于对确定特性的执行进行优化的并行关系引擎的框图。
[0244] 图25是根据示例性实施例的可以利用图24的并行关系引擎执行的用于对确定特性的执行进行优化的过程。
[0245] 图26A是根据示例性实施例的数据模型以及最小化了数据模型的大小的存储对象和输送对象的框图。
[0246] 图26B是根据示例性实施例的可以被配置用于最小化图26A的数据模型的大小的实时存储器控制器的框图。
[0247] 图26C是根据示例性实施例的用于利用图26A的实时存储器控制器来最小化数据模型的大小的过程的流程图。

具体实施方式

[0248] 概述
[0249] 总体上参照附图,根据各示例性实施例示出并描述了一种算法即服务(A3S)平台。A3S平台可以是用于执行对建筑物系统的建筑物管理的平台,所述平台可以实现对用于控制建筑物系统的算法的高效且稳健的开发。如本文中更详细描述的,A3S平台可以基于元数据包、上下文、序列和内核进行操作。
[0250] 上下文可以是描述特定建筑物以及建筑物的建筑物设备的元数据。内核可以是描述控制过程的元数据,所述控制过程可以根据上下文进行操作以控制建筑物设备。最后,序列可以是指示数字数据点与物理数据点之间的链接信息的元数据,以及指示内核应何时运行、A3S平台应何时收集数据等的定时信息。基于上下文、内核和序列包,可以实施对建筑物管理系统的高效且稳健的开发,其中,开发人员可以生成和部署元数据包以避免重新部署或重新开发建筑物管理系统的软件,从而可以在运行时注入元数据包。
[0251] A3S平台可以使用特定服务、定序器来实施运行内核、上下文和序列。A3S平台可以基于所接收的序列来实施定序器。定序器可以使用序列在特定时间从建筑物收集数据点、使内核在特定时间运行、并将信息存储到由上下文定义的数据模型中。定序器可以是灵活的部件,使得如果定序器发生故障或崩溃,A3S平台可以生成新的定序器以继续所述故障的定序器的操作。
[0252] 用户可能希望查看建筑物的所收集或所确定的数据。在这方面,A3S平台可以包括带有各种小插件、对建筑物数据的基于动画的显示的界面。然而,用户可能希望能够在A3S系统中实施他们自己的小插件,以便可以利用自定义显示。A3S平台可以包括允许自定义小插件以显示信息的仪表板设计器界面。仪表板设计器界面可以允许用户上载他们自己的图形动画文件,将图形动画文件链接到建筑物数据模型的特定数据点,以及基于所收集的建筑物数据查看动画文件的动画。
[0253] 此外,用户可能希望能够类属地编辑建筑物的上下文。为此,A3S平台可以包括数据模型构建服务。这个服务可以允许A3S平台基于特定开发人员生成的上下文来生成界面,并且允许用户更新、调整或以其他方式更改上下文以适用于特定建筑物。数据建模器服务可以以类属方式生成界面,因为数据模型的特定信息和开发规则可以由上下文控制。一旦用户对经更新的上下文感到满意,用户就可以将上下文部署到实际系统中,以操作和控制系统的建筑物设备。
[0254] 此外,A3S平台可以分解为位于场所内或场所外的各种A3S节点。在这方面,可以通过位于建筑物内的A3S节点或位于云服务器内的A3S节点在建筑物内本地完成对计算作业的执行。A3S平台或特定A3S节点可以通过考虑各种因素(诸如每个A3S节点的价格)来优化对计算作业的分配。在云中执行计算作业可能比通过场所内节点执行计算作业成本更高。此外,A3S节点可以基于计算作业的重要性和每个A3S节点的可靠性来优化对计算作业的分配。例如,即使基于云的A3S节点比场所内A3S节点更昂贵,也可以由基于云的A3S节点执行关键计算作业。在这方面,可以以最优方式分配计算作业。
[0255] 在一些情况下,A3S节点可能会崩溃或出于其他原因无法完成可能分配给它们的计算作业。因此,本文所描述的系统和方法可以通过以下方式来实施灾难恢复:首先选择第一A3S节点来执行计算作业,监测第一A3S节点的状态,并且如果第一A3S节点无法完成计算作业则执行第二优化以选择第二A3S节点。在这个方面,高效的计算系统可以进行操作,以使A3S节点的任何类型的故障都不会阻止A3S平台作为一个整体执行计算作业和操作建筑物。
[0256] A3S平台可以基于指示特性之间各种依赖关系的特性模型来实施计算的并行执行。A3S平台可以包括可以是(或者可以基于)上下文的特性模型。特性模型可以指示各种特性之间的依赖关系,其中,特性是建筑物设备的特定数据点或从建筑物设备收集的数据所确定的特定值。在这个方面,A3S平台可以基于特性模型的依赖关系生成计算线程,从而减少了用于确定各种特性的值的计算时间。
[0257] 此外,A3S平台可以使用数据模型来减少数据模型的所存储数据的大小。这可以通过以下方式执行:对数据模型的信息进行串行化和/或进行压缩,将串行化和/或经压缩的信息存储到存储器中,并且然后使用数据模型从存储器中检索串行化和/或经压缩的信息,并且然后对数据进行解压缩和/或解串行化以供A3S平台使用。这种数据大小的减小可以实现信息的快速输送并减少A3S平台的存储器使用量。最小化数据大小可以通过减少在各种A3S平台节点之间传送的数据量来帮助在云中实施A3S平台。
[0258] A3S平台可以实施扩展上下文的数据模型的脚本。A3S平台可以处理脚本,从而可以标记单位不一致(例如,添加了两个不同的单位或者生成了其单位与期望单位不匹配的结果值),以引起开发人员的注意。在这个方面,由于可以在运行脚本之前发现单位数学中的错误,因此可以改进A3S平台。脚本本身可以用于生成数据模型中可能通常不存在的虚拟数据点。在这个方面,用户可以在实时系统上利用数据模型运行脚本以生成调试信息。此外,在一些情况下,脚本的结果可以用于控制多件建筑物设备。
[0259] 建筑物自动化系统和HVAC系统
[0260] 现在参照图1至图4,根据示例性实施例,示出了可以实施本发明的系统和方法的示例性建筑物自动化系统(BAS)和HVAC系统。具体参照图1,示出了建筑物10的透视图。建筑物10由BAS服务。BAS通常是被配置用于对建筑物或建筑物区之中或周围的设备进行控制、监测和管理的装置系统。例如,BAS可以包括HVAC系统、安全系统、照明系统、火灾报警系统、能够管理建筑物功能或装置的任何其他系统、或其任何组合。
[0261] 服务于建筑物10的BAS包括HVAC系统100。HVAC系统100可以包括被配置用于向建筑物10提供加热、冷却、通风或其他服务的多个HVAC装置(例如,加热器、冷却器、空气处理单元、、风扇、热能储存装置等)。例如,HVAC系统100被示出为包括水侧系统120和空气侧系统130。水侧系统120可以向空气侧系统130的空气处理单元提供加热或冷却流体。空气侧系统130可以使用加热或冷却流体来加热或冷却提供至建筑物10的气流。参照图2和图3对可以在HVAC系统100中使用的示例性水侧系统和空气侧系统进行更加详细的描述。
[0262] HVAC系统100被示出为包括冷却器102、锅炉104、以及屋顶空气处理单元(AHU)106。水侧系统120可以使用锅炉104和冷却器102来加热或冷却工作流体(例如,水、乙二醇等)并且可以使工作流体循环至AHU 106。在各实施例中,水侧系统120的HVAC装置可以定位在建筑物10之中或周围(如图1所示)或在如中央设施(例如,冷却器设施、蒸气设施、热力设施等)等非现场位置处。可以在锅炉104中加热或在冷却器102中冷却工作流体,这取决于建筑物10中需要加热还是冷却。锅炉104可以例如通过燃烧易燃材料(例如,天然气)或使用电加热元件来向循环流体添加热量。冷却器102可以使循环流体与热交换器(例如,蒸发器)中的另一种流体(例如,制冷剂)成热交换关系以从循环流体中吸收热量。可以经由管路108将来自冷却器102和/或锅炉104的工作流体输送至AHU 106。
[0263] AHU 106可以使工作流体与穿过AHU 106(例如,经由一级或多级冷却盘管和/或加热盘管)的气流成热交换关系。气流可以是例如室外空气、来自建筑物10内的回流空气、或两者的组合。AHU 106可以在气流与工作流体之间传递热量,从而为气流提供加热或冷却。例如,AHU 106可以包括被配置用于使气流越过或穿过包含工作流体的热交换器的一个或多个风扇或鼓风机。工作流体然后可以经由管路110回流至冷却器102或锅炉104。
[0264] 空气侧系统130可以经由空气供应管道112将AHU 106供应的气流(即,供应气流)递送至建筑物10并且可以经由空气流管道114向AHU 106提供来自建筑物10的回流空气。在一些实施例中,空气侧系统130包括多个可变空气量(VAV)单元116。例如,空气侧系统130被示出为包括建筑物10的每一个楼层或区域上的独立VAV单元116。VAV单元116可以包括气闸或可以被操作成控制提供至建筑物10的单独区域的供应气流的量的其他流量控制元件。
在其他实施例中,空气侧系统130将供应气流递送至建筑物10的一个或多个区域中(例如,经由供应管道112),而不使用中间VAV单元116或其他流量控制元件。AHU 106可以包括被配置用于测量供应气流的属性的各种传感器(例如,温度传感器、压力传感器等)。AHU 106可以从定位在AHU 106内和/或建筑物区域内的传感器接收输入并且可以调节穿过AHU 106的供应气流的流速、温度或其他属性以实现建筑物区域的设定值条件。
[0265] 现在参照图2,根据示例性实施例,示出了水侧系统200的框图。在各实施例中,水侧系统200可以补充或替代HVAC系统100中的水侧系统120或者可以与HVAC系统100分开来实施。当在HVAC系统100中实施时,水侧系统200可以包括HVAC系统100中的HVAC装置的子集(例如,锅炉104、冷却器102、泵、等)并且可以操作用于向AHU 106提供加热或冷却流体。水侧系统200的HVAC装置可以位于建筑物10内(例如,作为水侧系统120的部件)或位于诸如中央设施等非现场位置。
[0266] 在图2中,水侧系统200被示出为具有多个子设施202至212的中央设施。子设施202至212被示出为包括:加热器子设施202、热回收冷却器子设施204、冷却器子设施206、冷却塔子设施208、高温热能储存(TES)子设施210、以及低温热能储存(TES)子设施212。子设施202至212消耗来自公共设施的资源(例如,水、天然气、电等)来服务于建筑物或校园的热能负载(例如,热水、冷水、加热、冷却等)。例如,加热器子设施202可以被配置用于在热水环路
214中加热水,所述热水环路使热水在加热器子设施202与建筑物10之间循环。冷却器子设施206可以被配置用于在冷水环路216中冷却水,所述冷水环路使冷水在冷却器子设施206与建筑物10之间循环。热回收冷却器子设施204可以被配置用于将热量从冷水环路216传递至热水环路214以便提供对热水的附加加热和对冷水的附加冷却。冷凝水环路218可以从冷却器子设施206中的冷水中吸收热量并且在冷却塔子设施208中放出所述吸收的热量或将吸收到的热量传递至热水环路214。高温TES子设施210和低温TES子设施212可以分别储存高温热能和低温热能以供后续使用。
[0267] 热水环路214和冷水环路216可以将加热和/或冷却水递送至定位在建筑物10的屋顶上的空气处理机(例如,AHU 106)或建筑物10的单独楼层或区域(例如,VAV单元116)。空气处理机推送空气经过热交换器(例如,加热盘管或冷却盘管),水流过所述热交换器以提供对空气的加热或冷却。可以将加热或冷却的空气递送至建筑物10的单独区域以服务于建筑物10的热能负载。水然后回流至子设施202至212以接收进一步加热或冷却。
[0268] 尽管子设施202至212被示出且被描述为加热或冷却水以便循环至建筑物,但是应当理解的是,替代或除了水之外可以使用任何其他类型的工作流体(例如,乙二醇、CO2等)来服务热能负载。在其他实施例中,子设施202至212可以直接向建筑物或校园提供加热和/或冷却,而不需要中间热传递流体。对水侧系统200的这些和其他变体在本发明的教导内。
[0269] 子设施202至212中的每个子设施可以包括被配置用于促进子设施的功能的各种设备。例如,加热器子设施202被示出为包括被配置用于为热水环路214中的热水添加热量的多个加热元件220(例如,锅炉、电加热器等)。加热器子设施202还被示出为包括若干泵222和224,所述泵被配置用于使热水环路214中的热水循环并控制通过单独加热元件220的热水的流速。冷却器子设施206被示出为包括被配置用于除去来自冷水环路216中的冷水的热量的多个冷却器232。冷却器子设施206还被示出为包括若干泵234和236,所述泵被配置用于使冷水环路216中的冷水循环并控制通过单独冷却器232的冷水的流速。
[0270] 热回收冷却器子设施204被示出为包括被配置用于将热量从冷水环路216传递至热水环路214的多个热回收热交换器226(例如,制冷回路)。热回收冷却器子设施204还被示出为包括若干泵228和230,所述泵被配置用于使通过热回收热交换器226的热水和/或冷水循环并控制通过单独热回收热交换器226的水的流速。冷却塔子设施208被示出为包括被配置用于除去来自冷凝水环路218中的冷凝水的热量的多个冷却塔238。冷却塔子设施208还被示出为包括若干泵240,所述泵被配置用于使冷凝水环路218中的冷凝水循环并控制通过单独冷却塔238的冷凝水的流速。
[0271] 高温TES子设施210被示出为包括被配置用于储存热水以供稍后使用的高温TES罐242。高温TES子设施210还可以包括被配置用于控制流入或流出高温TES罐242的热水的流速的一个或多个泵或阀。低温TES子设施212被示出为包括被配置用于储存冷水以供稍后使用的低温TES罐244。低温TES子设施212还可以包括被配置用于控制流入或流出低温TES罐
244的冷水的流速的一个或多个泵或阀。
[0272] 在一些实施例中,水侧系统200中的泵(例如,泵222、224、228、230、234、236和/或240)中的一个或多个泵或水侧系统200中的管线包括与其相关联的隔离阀。隔离阀可以与泵集成或定位在泵的上游或下游,以控制水侧系统200中的流体流动。在各实施例中,水侧系统200可以基于水侧系统200的特定配置以及水侧系统200所服务的负载的类型而包括更多、更少或不同类型的装置和/或子设施。
[0273] 现在参照图3,根据示例性实施例,示出了空气侧系统300的框图。在各实施例中,空气侧系统300可以补充或替代HVAC系统100中的空气侧系统130或者可以与HVAC系统100分开来实施。当在HVAC系统100中实施时,空气侧系统300可以包括HVAC系统100中的HVAC装置的子集(例如,AHU 106、VAV单元116、管道112至114、风扇、气闸等)并且可以定位在建筑物10之中或周围。空气侧系统300可以操作用于使用由水侧系统200提供的加热或冷却流体来加热或冷却提供给建筑物10的气流。
[0274] 在图3中,空气侧系统300被示出为包括节能器型空气处理单元(AHU)302。节能器型AHU改变空气处理单元用于加热或冷却的外部空气和回流空气的量。例如,AHU 302可以经由回流空气管道308从建筑物区域306接收回流空气304并且可以经由供应空气管道312将供应空气310递送至建筑物区域306。在一些实施例中,AHU 302是定位在建筑物10的屋顶上(例如,如图1所示的AHU 106)或者以其他方式被定位成接收回流空气304和外部空气314两者的屋顶单元。AHU 302可以被配置用于操作排气闸316、混合气闸318、以及外部空气闸320,以控制组合形成供应空气310的外部空气314和回流空气304的量。未通过混合气闸318的任何回流空气304可以作为废气322通过排气闸316从AHU 302排出。
[0275] 气闸316至320中的每一个可以由致动器操作。例如,排气闸316可以由致动器324操作,混合气闸318可以由致动器326操作,并且外部空气闸320可以由致动器328操作。致动器324至328可以经由通信链路332与AHU控制器330通信。致动器324至328可以从AHU控制器330接收控制信号并且可以向AHU控制器330提供反馈信号。反馈信号可以包括例如对当前致动器或气闸位置的指示、由致动器施加的转矩或力的量、诊断信息(例如,由致动器324至
328执行的诊断测试的结果)、状态信息、调试信息、配置设置、校准数据、和/或可以由致动器324至328收集、存储或使用的其他类型的信息或数据。AHU控制器330可以是被配置用于使用一个或多个控制算法(例如,基于状态的算法、极值搜索控制(ESC)算法、比例-积分(PI)控制算法、比例-积分-微分(PID)控制算法、模型预测控制(MPC)算法、反馈控制算法等)来控制致动器324至328的节能器控制器。
[0276] 仍然参照图3,AHU 302被示出为包括定位在供应空气管道312内的冷却盘管334、加热盘管336和风扇338。风扇338可以被配置用于迫使供应空气310通过冷却盘管334和/或加热盘管336并且向建筑物区域306提供供应空气310。AHU控制器330可以经由通信链路340与风扇338通信以便控制供应空气310的流速。在一些实施例中,AHU控制器330通过调节风扇338的速度来控制施加到供应空气310的加热量或冷却量。
[0277] 冷却盘管334可以经由管路342从水侧系统200(例如,从冷水环路216)接收冷却流体并且可以经由管路344将冷却流体回流至水侧系统200。可以沿着管路342或管路344来定位阀346以便控制通过冷却盘管334的冷却流体的流速。在一些实施例中,冷却盘管334包括可以被独立地激活和去激活(例如,由AHU控制器330、由BAS控制器366等)以调节施加到供应空气310的冷却量的多级冷却盘管。
[0278] 加热盘管336可以经由管路348从水侧系统200(例如,从热水环路214)接收加热流体并且可以经由管路350将加热流体回流至水侧系统200。可以沿着管路348或管路350来定位阀352以便控制通过加热盘管336的加热流体的流速。在一些实施例中,加热盘管336包括可以被独立地激活和去激活(例如,由AHU控制器330、由BAS控制器366等)以调节施加到供应空气310的加热量的多级加热盘管。
[0279] 阀346和352中的每一个可以由致动器控制。例如,阀346可以由致动器354控制,并且阀352可以由致动器356控制。致动器354至356可以经由通信链路358至360与AHU控制器330通信。致动器354至356可以从AHU控制器330接收控制信号并且可以向控制器330提供反馈信号。在一些实施例中,AHU控制器330从定位在供应空气管道312中(例如,冷却盘管334和/或加热盘管336的下游)的温度传感器362接收供应空气温度的测量结果。AHU控制器330还可以从定位于建筑物区域306中的温度传感器364接收建筑物区域306的温度测量结果。
[0280] 在一些实施例中,AHU控制器330经由致动器354至356操作阀346和352以调节提供至供应空气310的加热量或冷却量(例如,从而达到供应空气310的设定值温度或者将供应空气310的温度维持在设定值温度范围内)。阀346和352的位置影响由冷却盘管334或加热盘管336提供至供应空气310的加热量或冷却量,并且可以与被消耗以达到期望供应空气温度的能源量相关。AHU控制器330可以通过对盘管334至336进行激活或去激活、调整风扇338的速度或两者的组合来控制供应空气310和/或建筑物区域306的温度。
[0281] 仍然参照图3,空气侧系统300被示出为包括建筑物自动化系统(BAS)控制器366和客户端装置368。BAS控制器366可以包括一个或多个计算机系统(例如,服务器、监控控制器、子系统控制器等),所述计算机系统充当空气侧系统300、水侧系统200、HVAC系统100和/或服务于建筑物10的其他可控系统的系统级控制器、应用或数据服务器、头节点或主控制器。BAS控制器366可以根据相似或不同协议(例如,LON、BACnet等)经由通信链路370与多个下游建筑物系统或子系统(例如,HVAC系统100、安全系统、照明系统、水侧系统200等)通信。在各实施例中,AHU控制器330和BAS控制器366可以是分开的(如图3中所示出的)或集成的。
在集成的实施方式中,AHU控制器330可以是被配置用于由BAS控制器366的处理器执行的软件模块
[0282] 在一些实施例中,AHU控制器330从BAS控制器366接收信息(例如,命令、设定值、操作界限等)并且向BAS控制器366提供信息(例如,温度测量结果、阀或致动器位置、操作状态、诊断等)。例如,AHU控制器330可以向BAS控制器366提供来自温度传感器362至364的温度测量结果、设备开/关状态、设备操作能力和/或可以由BAS控制器366用来监测和控制建筑物区域306内的可变状态或情况的任何其他信息。
[0283] 客户端装置368可以包括用于对HVAC系统100、其子系统和/或装置进行控制、查看或以其他方式与其交互的一个或多个人机接口或客户端接口(例如,图形用户界面、报告接口、基于文本的计算机接口、面向客户端的web服务、向web客户端提供页面的web服务器等)。客户端装置368可以是计算机工作站、客户端终端、远程或本地接口或任何其他类型的用户接口装置。客户端装置368可以是固定终端或移动装置。例如,客户端装置368可以是台式计算机、具有用户接口的计算机服务器、膝上型计算机、平板计算机、智能电话、PDA、或任何其他类型的移动或非移动装置。客户端装置368可以经由通信链路372与BAS控制器366和/或AHU控制器330进行通信。
[0284] 现在参照图4,根据示例性实施例,示出了建筑物自动化系统(BAS)400的框图。可以在建筑物10中实施BAS 400以自动地监测和控制各种建筑物功能。BAS 400被示出为包括BAS控制器366和多个建筑物子系统428。建筑物子系统428被示出为包括建筑物电气子系统434、信息通信技术(ICT)子系统436、安全子系统438、HVAC子系统440、照明子系统442、电梯/自动扶梯子系统432和防火安全子系统430。在各实施例中,建筑物子系统428可以包括更少的、附加的、或替代的子系统。例如,建筑物子系统428还可以包括或可替代地包括制冷子系统、广告或引导标示子系统、烹饪子系统、售货子系统、打印机或拷贝服务子系统或者使用可控的设备和/或传感器来监测或控制建筑物10的任何其他类型的建筑物子系统。在一些实施例中,如参照图2和图3所描述的,建筑物子系统428包括水侧系统200和/或空气侧系统300。
[0285] 建筑物子系统428中的每一个可以包括用于完成其单独功能和控制活动的任意数量的装置、控制器和连接。如参照图1至图3描述的,HVAC子系统440可以包括许多与HVAC系统100相同的部件。例如,HVAC子系统440可以包括冷却器、锅炉、任意数量的空气处理单元、节能器、现场控制器、监督控制器、致动器、温度传感器、以及用于控制建筑物10内的温度、湿度、气流或其他可变条件的其他装置。照明子系统442可以包括任意数量的灯具镇流器、照明传感器、调光器、或被配置用于可控制地调整提供给建筑物空间的光量的其他装置。安全子系统438可以包括占用传感器、视频监控摄像机、数字视频录像机、视频处理服务器、入侵检测装置、访问控制装置和服务器、或其他与安全相关的装置。
[0286] 仍然参照图4,BAS控制器366被示出为包括通信接口407和BAS接口409。接口407可以促进BAS控制器366与外部应用(例如,监测与报告应用422、企业控制应用426、远程系统及应用444、驻留在用客户端装置448上的应用等)之间的通信,以允许用户对BAS控制器366和/或子系统428进行控制、监测和调节。接口407还可以促进BAS控制器366与客户端装置448之间的通信。BAS接口409可以促进BAS控制器366与建筑物子系统428之间的通信(例如,HVAC、照明安全、电梯、配电、业务等)。
[0287] 接口407、409可以是或包括用于与建筑物子系统428或其他外部系统或装置进行数据通信的有线或无线通信接口(例如,插座、天线、发射器、接收器、收发器、电线端子等)。在各实施例中,经由接口407、409进行的通信可以是直接的(例如,本地有线或无线通信)或经由通信网络446(例如,WAN、互联网、蜂窝网等)。例如,接口407、409可以包括用于经由基于以太网的通信链路或网络发送和接收数据的以太网卡和端口。在另一个示例中,接口
407、409可以包括用于经由无线通信网络进行通信的Wi-Fi收发器。在另一个示例中,接口
407、409中的一个或两个接口可以包括蜂窝或移动电话通信收发器。在一个实施例中,通信接口407为电力线通信接口并且BAS接口409为以太网接口。在其他实施例中,通信接口407和BAS接口409都为以太网接口或为同一个以太网接口。
[0288] 仍然参照图4,BAS控制器366被示出为包括处理电路404,所述处理电路包括处理器406和存储器408。处理电路404可以可通信地连接至BAS接口409和/或通信接口407,从而使得处理电路404及其各个部件可以经由接口407、409发送和接收数据。处理器406可以被实施为通用处理器、专用集成电路(ASIC)、一个或多个现场可编程阵列(FPGA)、一组处理部件、或其他合适的电子处理部件。
[0289] 存储器408(例如,存储器、存储器单元、存储装置等)可以包括用于存储数据和/或计算机代码的一个或多个装置(例如,RAM、ROM、闪存、硬盘存储装置等),所述数据和/或计算机代码用于完成或促进本申请中所描述的各种过程、层和模块。存储器408可以是或包括易失性存储器或非易失性存储器。存储器408可以包括数据库组件、目标代码组件、脚本组件、或用于支持本申请中所描述的各种活动和信息结构的任何其他类型的信息结构。根据示例性实施例,存储器408经由处理电路404可通信地连接至处理器406并且包括用于(例如,由处理电路404和/或处理器406)执行本文中所描述的一个或多个过程的计算机代码。
[0290] 在一些实施例中,在单个计算机(例如,一个服务器、一个外壳等)内实施BAS控制器366。在各个其他实施例中,BAS控制器366可以跨多个服务器或计算机(例如,其可以存在于分布式位置中)分布。进一步地,虽然图4示出了如存在于BAS控制器366外的应用422和426,但在一些实施例中,应用422和426可以托管在BAS控制器366内(例如,在存储器408内)。
[0291] 仍然参照图4,存储器408被示出为包括企业集成层410、自动测量与验证(AM&V)层412、需求响应(DR)层414、故障检测与诊断(FDD)层416、集成控制层418、以及建筑物子系统集成层420。层410至420可以被配置用于从建筑物子系统428和其他数据源接收输入、基于所述输入确定建筑物子系统428的最佳控制动作、基于所述最佳控制动作生成控制信号、并且将所生成的控制信号提供给建筑物子系统428。以下段落描述了由BAS 400中的层410至
420中的每个层执行的通用功能中的一些通用功能。
[0292] 企业集成层410可以被配置用于向客户端或本地应用提供信息和服务以支持各种企业级应用。例如,企业控制应用426可以被配置用于向图形用户接口(GUI)或向任意数量的企业级业务应用(例如,会计系统、用户识别系统等)提供跨子系统控制。企业控制应用426还可以或可替代地被配置用于提供用于配置BAS控制器366的配置GUI。在又其他实施例中,企业控制应用426可以与层410至420一起工作以基于在接口407和/或BAS接口409接收到的输入来优化建筑物性能(例如,效率、能量使用、舒适度或安全性)。
[0293] 建筑物子系统集成层420可以被配置用于管理BAS控制器366与建筑物子系统428之间的通信。例如,建筑物子系统集成层420可以从建筑物子系统428接收传感器数据和输入信号并且向建筑物子系统428提供输出数据和控制信号。建筑物子系统集成层420还可以被配置用于管理建筑物子系统428之间的通信。建筑物子系统集成层420跨多个多供应商/多协议系统转译通信(例如,传感器数据、输入信号、输出信号等)。
[0294] 需求响应层414可以被配置用于响应于满足建筑物10的需求而优化资源使用(例如,电的使用、天然气的使用、水的使用等)和/或这种资源使用的货币成本。优化可以基于分时电价、缩减信号、能量可用性或者从公共设施提供商、分布式能量生成系统424、能量储存装置427(例如,高温TES 242、低温TES 244等)或其他来源接收到的其他数据。需求响应层414可以接收来自BAS控制器366的其他层(例如,建筑物子系统集成层420、集成控制层418等)的输入。从其他层接收到的输入可以包括环境或传感器输入(诸如温度、二水平、相对湿度水平、空气品质传感器输出、占用传感器输出、房间安排等)。输入还可以包括诸如来自公共设施的电气使用(例如,以千瓦每小时(kWh)表示)、热负载测量结果、定价信息、预计的定价、平滑定价、缩减信号等输入。
[0295] 根据示例性实施例,需求响应层414包括用于响应于其接收的数据和信号的控制逻辑。这些响应可以包括与集成控制层418中的控制算法进行通信、更改控制策略、更改设定值或者以受控方式激活/去激活建筑物设备或子系统。需求响应层414还可以包括被配置用于确定何时利用所储存的能量的控制逻辑。例如,需求响应层414可以确定刚好在高峰使用时间开始之前开始使用来自能量储存装置427的能量。
[0296] 在一些实施例中,需求响应层414包括控制模块,所述控制模块被配置用于主动发起控制动作(例如,自动更改设定值),所述控制动作基于表示或基于需求(例如,价格、缩减信号、需求等级等)的一个或多个输入来使能量成本最小化。在一些实施例中,需求响应层414使用设备模型来确定最佳控制动作集合。设备模型可以包括例如描述输入、输出和/或由各种建筑物设备组执行的功能的热力学模型。设备模型可以表示建筑物设备集合(例如,子设施、冷却器阵列等)或单独的装置(例如,单独的冷却器、加热器、泵等)。
[0297] 需求响应层414可以进一步包括或利用一个或多个需求响应政策定义(例如,数据库、可扩展标记语言(XML)文件等)。政策定义可以由用户(例如,经由图形用户接口)编辑或调整,从而使得可以针对用户的应用、期望的舒适度、具体建筑物设备或者基于其他关注点来定制响应于需求输入而发起的控制动作。例如,需求响应政策定义可以响应于特定需求输入而指定可以开启或关掉哪些设备、系统或一件设备应当关掉多久、可以更改什么设定值、可允许的设定值调整范围是什么、在返回到正常安排的设定值之前保持高需求设定值多久、接近容量限制有多近、要利用哪种设备模式、进入和离开能量储存装置(例如,热存储罐、电池组等)的能量传递速率(例如,最大速率、报警率、其他速率边界信息等)以及何时分派现场能量生成(例如,经由燃料电池、电动发电机组等)。
[0298] 集成控制层418可以被配置用于使用建筑物子系统集成层420和/或需求响应层414的数据输入或输出来作出控制决策。由于子系统集成由建筑物子系统集成层420提供,集成控制层418可以集成子系统428的控制活动,使得子系统428表现为单个集成式超系统。
在示例性实施例中,集成控制层418包括控制逻辑,所述控制逻辑使用来自多个建筑物子系统的输入和输出以相对于单独的子系统可以单独提供的舒适度和节能而提供更大的舒适度和节能。例如,集成控制层418可以被配置用于使用来自第一子系统的输入来为第二子系统作出节能控制决策。这些决策的结果可以被传送回建筑物子系统集成层420。
[0299] 集成控制层418被示出为在逻辑上低于需求响应层414。集成控制层418可以被配置用于通过配合需求响应层414而使建筑物子系统428和其对应控制环路能够被控制来增强需求响应层414的有效性。这种配置可以减少相对于常规系统的破坏性需求响应行为。例如,集成控制层418可以被配置用于确保对冷水温度的设定值(或者直接或间接影响温度的另一个部件)进行需求响应驱动的向上调整不会导致风扇能量(或用于冷却空间的其他能量)的增加,所述风扇能量增加将导致建筑物能量使用总量比在冷却器处节省得更多。
[0300] 集成控制层418可以被配置用于向需求响应层414提供反馈,从而使得需求响应层414检查即使正在进行所要求的减载时也适当地维持约束(例如,温度、照明水平等)。约束还可以包括与安全性、设备操作极限和性能、舒适度、防火规范、电气规范、能量规范等相关的设定值或感测边界。集成控制层418还在逻辑上低于故障检测与诊断层416以及自动测量与验证层412。集成控制层418可以被配置用于基于来自多于一个建筑物子系统的输出而向这些更高层提供所计算的输入(例如,汇总)。
[0301] 自动测量与验证(AM&V)层412可以被配置用于验证由集成控制层418或需求响应层414命令的控制策略正适当地工作(例如,使用由AM&V层412、集成控制层418、建筑物子系统集成层420、FDD层416或其他方式汇总的数据)。由AM&V层412进行的计算可以基于用于单独的BAS装置或子系统的建筑物系统能量模型和/或设备模型。例如,AM&V层412可以将模型预测的输出与来自建筑物子系统428的实际输出进行比较以确定模型的准确度。
[0302] 故障检测与诊断(FDD)层416可以被配置用于为建筑物子系统428、建筑物子系统装置(即,建筑物设备)以及由需求响应层414和集成控制层418使用的控制算法提供持续故障检测。FDD层416可以从集成控制层418、直接从一个或多个建筑物子系统或装置或者从另一个数据源接收数据输入。FDD层416可以自动地诊断并响应检测到的故障。对检测到的或诊断到的故障的响应可以包括向用户、检修调度系统或被配置用于试图修复故障或解决故障的控制算法提供警报消息。
[0303] FDD层416可以被配置用于使用在建筑物子系统集成层420处可用的详细子系统输入来输出故障部件的特定标识或故障原因(例如,松动的气闸联接)。在其他示例性实施例中,FDD层416被配置用于向集成控制层418提供“故障”事件,所述集成控制层响应于接收到的故障事件而执行控制策略和政策。根据示例性实施例,FDD层416(或由集成控制引擎或业务规则引擎执行的政策)可以在故障装置或系统周围关闭系统或直接控制活动,以减少能量浪费、延长设备寿命或确保适当的控制响应。
[0304] FDD层416可以被配置用于存储或访问各种不同的系统数据存储装置(或实时数据的数据点)。FDD层416可以使用数据存储装置的一些内容来标识设备级(例如,特定冷却器、特定AHU、特定终端单元等)故障并使用其他内容来标识部件或子系统级故障。例如,建筑物子系统428可以生成指示BAS 400及其各个部件的性能的时间(即,时间序列)数据。由建筑物子系统428生成的数据可以包括测得或计算出的值,所述测得或计算出的值展现统计特性并且提供关于相应的系统或过程(例如,温度控制过程、流量控制过程等)是如何在来自其设定值的误差方面执行的信息。FDD层416可以检查这些过程,以暴露系统何时开始性能降低并警告用户在故障变得更严重之前修复故障。
[0305] 包括通用建模语言(CML)、快速部署套件(RDS)和算法即服务(A3S)的开发平台[0306] 本文描述了在高级开发环境中概括任何算法的设计、开发和部署的开发平台。此开发平台避免了所使用的每种新算法的昂贵的“一次性”解决方案。所提出的开发平台通过实施高度灵活的设计模式来捕获执行和管理算法的本质。这种模式允许以最小的成本开发算法。
[0307] 概括算法驱动系统的关键在于将需求分成两个类别(算法特定需求和系统特定需求)的能力。所有算法均由输入数据、输出数据以及它们之间的程序组成。为了实现目标,算法平台必须收集、存储、操纵、分派并促进用户与数据的交互。这个概念要求将专业知识从算法创建器传递至平台。许多方法通过会议、论文和其他各种形式的通信实现这一点。这产生了很大的成本并且效率低下。
[0308] 所传递信息的开发人员可能不具备创建除了必须反复抓取和重建的“一次性”解决方案之外的任何解决方案所需的领域知识。这些解决方案无法管理算法开发的迭代性质,从而在理论上使无害迭代传播到系统中。针对这个问题存在两种解决方案:迫使算法开发人员致力于其接口;进行创新或创建能够管理迭代本身的开发平台。本文描述的开发平台使用了后者,并且是一种在创建时对算法开发人员提供的元数据进行操作的系统。这允许系统甚至在其服务的算法不断变化的情况下也保持稳定。
[0309] 现在参照图5,示出了模型视图控制器(MVC)软件架构的框图500。框图500的模式示出了开发人员、用户502如何将应用正确地拆分到控制器504、模型506和视图508中,以实现好的品质(诸如置换出不同视图的能力)。模型506可以是管理应用的数据、逻辑和/或规则的中央组件。视图508可以是表示信息的任何输出(例如,图表或图)。控制器504可以接受来自用户502的命令视图508或模型506的输入。像这样的设计模式允许在开发人员之间进行强通信以实现单个良好描述的目标。
[0310] 然而,在算法开发内,不存在这样的设计模式。本文讨论的系统和方法的一个目标是创建将允许所提出架构背后的推理完全可见的这种模式。本文讨论的系统和方法有助于算法开发并对用于用户交互的MVC风格方法进行改进。
[0311] 现在参照图6,根据示例性实施例,示出了用于算法执行系统的设计过程的框图600。为了类属地解决所提出的设计模式,图6中的矩形框(即,收集器-分派器619、操作定序器607、视图609、控制器611、模型603和算法613)均不具体地引用算法开发人员605提供的任何元数据,而是仅依赖于由控制器611提供的方法。关于图6,可以将问题分解成三个不同的子系统,即模型-控制器组合库、视图系统和算法系统。在图7A和图7B中将这三个组成部分描述为通用建模语言(CML)710、RDS应用712和A3S平台714。
[0312] 现在参照图7A,根据示例性实施例,示出了包括通用建模语言(CML)710、快速部署套件(RDS)712和算法即服务(A3S)平台714的开发平台700。图7A中示出的系统具有以下三部分:设置为本文称为CML 710的物理库的模型控制器、视图系统(例如,RDS应用712)和本文称为A3S平台714的算法系统。RDS应用712和A3S平台714都可以唯一地依赖于CML 710,而不依赖于从CML 710继承获得的库,使得基于CML 710实施的对模型的任何新添加都自动地出现在RDS应用712和A3S平台714中。
[0313] 图7A展示了通过创建上下文驱动系统来进行设计过程的工作解决方案。图7A中示出的每个框都演示了使算法开发人员702能够创建三个组成部分(上下文704、内核706和序列708)的开发平台700的目标。上下文704包括针对算法建模数据的所有必要元数据,并以熟悉的类形式构建。内核706包含指定输入和输出以及算法本身的数据需求所需的元数据。最后,序列708包含用于在站点进行算法实时执行(诸如,计时)的必要元数据。通过这三部分,平台700通过使用通过CML 710可获得的元数据来实现算法系统的所有必要需求。
[0314] RDS应用712和A3S平台714供应由设计模式提及的必要系统功能。RDS应用712向用户提供视图,而A3S平台714通过管理离线运行和实时操作运行来为RDS应用712服务。另外,A3S平台714管理也使用CML 710的外部系统以进行算法执行。这两个系统子组成部分都依赖于CML控制器,然而并且,可以由他们选择的外部系统来实施,从而提供了一种不依赖于RDS应用712和A3S平台714的高级开发版本的方式。
[0315] 现在参照图7B,根据示例性实施例,更详细地示出了A3S平台714和RDS应用712。A3S平台714可以是可动态更新的平台,所述可动态更新的平台可以从所接收的包中接收基于元数据的更新,所述包包括上下文704。所述一个和/或多个数据包还可以包括内核706和序列708。图7B中示出的以及本文所描述的A3S平台714以及A3S平台714的各个组成部分可以在各种计算装置(例如,云服务器、台式计算机,数据中心等)上被实施为微服务。可以用服务结构来实施A3S平台714。进一步参照图15并且在本文中的其他地方描
述了 服务结构。A3S平台714可以在诸如BAS控制器366的处理电路404等一
个或多个处理电路(例如,处理器和存储器装置)上实施。然而,A3S平台714可以在任何云计算系统、数据中心、一个或多个台式计算机、建筑物服务器、私有云、公共云等中实施。
[0316] A3S平台714被示出为包括集群管理应用760、RDS应用712、内核引擎应用762、操作引擎应用764和核心库798。集群管理应用760可以被配置用于为包括用户账户和网关服务的A3S集群提供外部交互性。集群可以是A3S平台714和/或A3S平台714的特定服务的具体实施方式。可以将多个A3S平台714和/或A3S平台714的服务作为集群部署在私有云、台式计算机、公共云等中,所有这些可以一起工作以提供对建筑物和/或设施的控制。
[0317] 集群管理应用760被示为包括用户服务794和网关796。用户服务794可以是微服务,所述微服务被配置用于提供由A3S平台714来标识用户(所述用户不管是通过网关796还是通过内置用户界面(UI)被标识)的能力。用户服务794可以被配置用于向用户提供登录令牌、验证密码和/或以其他方式管理用户账户并允许用户访问A3S平台714。网关796可以被配置用于将A3S平台714之间的数据路由至外部用户装置。网关796可以提供API(例如,外部接口766)以供外部系统连入。开发人员可以使用外部接口766通过网关796连接到A3S平台714。
[0318] 内核引擎应用762可以被配置用于跨各个可用集群来管理部署到A3S平台714中的算法的分布式执行。进一步参照图16、图17A、图17B、图17C和图18描述了内核引擎应用762。内核引擎应用762可以被配置用于在各个集群中分配计算作业以优化算法的执行,并且可以进一步被配置用于响应于计算集群崩溃而恢复计算算法。进一步参照图20至图23描述了这些技术(混合集群优化和混合灾难恢复)。混合集群优化可以优化外部可用资源的使用,以降低算法的部署成本和执行成本。
[0319] 内核平衡器788可以被配置用于平衡A3S平台714的内核执行。内核平衡器788可以被配置用于将作业上传到可靠存储、队列作业、以及在各个A3S平台714集群中运行的各种内核服务790中的平衡作业中。内核服务790可以被配置用于执行内核,并且可以是部署在云中、数据中心中、一个或多个台式计算机等上的微服务。参照图16至图18描述了关于内核平衡的进一步细节。在一些实施例中,内核平衡器788可以被配置用于使用成本函数来管理内核执行。参照图18至图23描述了使用内核平衡器788来管理内核的执行。
[0320] 内核服务790可以被配置用于管理内核执行过程(例如,内核工作器792)。响应于从内核平衡器788接收到作业,内核服务790可以被配置用于扫描其活跃的内核工作器792以获得任何空闲的内核工作器并且使用命名数据通道将所述作业传送至内核工作器792。如果活动作业存在于所有活动内核工作器792上,则内核服务790可以被配置用于创建新过程(即,创建新内核工作器792)。在内核工作器792上执行作业期间,内核工作器792可以被配置用于通过命名数据通道返回进度更新和错误。一旦接收到所述进度更新和错误,内核服务790可以被配置用于将通知转发回至内核平衡器788。
[0321] 操作引擎应用764可以被配置用于提供对序列引擎、提供高速缓存的系统、和闭环控制的算法执行的A3S实施。操作引擎应用764可以维持在目标平台上流动的原始数据的快照,以确保实现算法性能需求。操作引擎应用764被示出为包括操作服务615和收集器-分派器619。操作服务615可以被配置用于从内核工作器792收集数据,并将所收集的数据提供给收集器-分派器619以执行对建筑物设备的控制。类似地,可以经由操作服务615将收集器-分派器619从建筑物设备收集的数据提供给内核工作器792。
[0322] RDS应用712可以被配置用于提供用户对A3S的以下各种目标用途的用户体验:部署配置、调试、创建类属实时仪表板、编辑部署的上下文模型、维持和诊断实时执行、模拟、监测等。RDS应用712被示出为包括web门户776、模型服务778、模拟器754、分析756、应用设计器750、仪表板服务780、诊断服务782、上线服务772、文档服务774和模型设计器752。
[0323] Web门户776可以被配置用于向用户提供一个或多个Web界面,以访问A3S平台714。Web门户776可以被配置用于允许用户将数据输入A3S平台714(例如,添加上下文704、内核
706和/或序列708)、查看系统信息和针对RDS应用712的基于其他接口的特征。
[0324] 模型服务778可以被配置用于接收上下文包704并生成数据模型799。在一些实施例中,数据模型799是对上下文包704的元数据的实施。具体地,数据模型799可以是基于CML 710实施的建筑物和/或建筑物的设备的数据模型。具体地,上下文包704可以引用CML 710的各种类和类结构。因此,模型服务778可以被配置用于使用上下文704以及CML 710的原型、实体和属性类结构来实施数据模型799。参照图8并且在本文中的其他地方描述了这种类结构。
[0325] 模拟器754可以被配置用于运行活动数据模型(例如,数据模型799),以提供用于针对数据模型799测试算法的实验比较。在某些情况下,开发人员构建模型、编辑模型数据、针对某些设置求解模型、分析结果、并且继续编辑模型、求解模型并分析结果,直到对模型满意为止。然而,模拟器754使得开发人员能够针对A3S平台714的当前数据模型799测试其算法。参照图13以及本文中的其他地方更加详细地描述了模拟器754。
[0326] 分析756可以是实施脚本语言的引擎,所述脚本语言将方程与由调用者实施的动作结合起来。分析756可以包括其用于操作的各种引擎。这些引擎可以是单位分析引擎758、信号修复引擎759、运算引擎761和方程引擎763。
[0327] 单位分析引擎758可以被配置用于向用户提供数学单位验证。在一些实施例中,单位分析引擎758可以通过将用户定义的单位映射到标准单位并验证运算的单位结果与预期单位相匹配来跟踪A3S平台的脚本或另外的代码中的单位。信号修复引擎759可以被配置用于对各种数据序列(例如,时间序列数据)执行信号修复。信号修复引擎759可以被配置用于基于数据序列执行内插和/或生成无限分辨率信号。
[0328] 运算引擎761可以包括用于执行分析756的各种运算。由运算引擎761执行的运算可以是时间序列执行、离散数据点执行等。这些运算可以是常规运算或可以是自定义的运算。所述操作可以是诸如在于2017年1月18日提交的美国专利号15/409,489的图9A和图9B中找到的操作等操作,所述美国专利的全部内容通过引用并入本文。方程引擎763可以被配置用于基于对用户定义的脚本的运算来执行各种运算。方程引擎763可以被配置用于将一系列脚本运算分解成单独的运算,并生成用于执行这些运算的适当顺序。
[0329] 应用设计器750可以被配置用于生成用于向用户显示数据模型799的信息的界面。应用设计器750可以被配置用于接收用户可以经由插图平台(例如,ADOBE
Gimp等)生成的用户上传的可缩放矢量图形(SVG)。SVG
可以是用于支持用户交互和动画的二维图形的基于XML的矢量图像格式。基于用户上传的SVG,用户可以将SVG绑定到小插件、包括这些小插件中的数据点、并在各种界面页面中显示这些小插件。小插件可以基于用户在数据模型799与小插件之间生成的链接来更新其数据点。图14A和图14B提供了创建小插件并且在应用设计器750可以被配置用于生成的页面上显示小插件的示例。
[0330] 仪表板服务780可以被配置用于向用户提供其建筑物或设施的仪表板。例如,可以由仪表板服务780托管的仪表板是如参照图14B描述的界面1400B。仪表板服务780可以被配置用于托管的界面可以是包括由应用设计器750生成的小插件的界面。
[0331] 诊断服务782可以被配置用于使得A3S平台714的管理员具有其模型的完整视图以进行编辑和覆写。这个视图本质上是不具有对连接或层次结构的配置进行编辑的能力的所有版本的模型设计器的示出。经由诊断服务782,管理员可以将数据调试到系统而不是以其他方式从自定义应用中获得。无论何时请求,其都示出实时系统内的数据模型799的当前数据。
[0332] 上线服务772(在本文中也称为配置工具)使得用户能够将其已经创建的模型带到实时系统。上线服务772通过减少使系统“上线”(即开始操作)的步骤数量来减少上线所需的所要求的用户努力。使系统上线可以包括定义输入定义、输入分析、输出定义、输出分析、序列设置和系统设置。
[0333] 前四个步骤围绕输入和输出定义。用户在进行实时设计时必须为其选择运行的算法指定站点内的点与数据模型内的点之间的交叉。如果点不存在或不一对一映射,则用户可以使用分析756桥接间隙。在一些实施例中,基于江森自控(JCI)逻辑连接器工具(LCT)的逻辑涵盖了站点上的这种用例。在RDS应用712中,分析756可以不使用图形方法,而是使用脚本语言来涵盖这种用例。在分析756中,用户可以将经滤波的点或平均值映射到数据模型799中的单个点。
[0334] 此外,在输出上,用户可以使用数据模型799内的许多点来推断站点中的点。一旦存在输入和输出,那么用户就仅需为由CML 710提供的序列指定网络设置和自定义选项。一旦完成所述指定,系统将链接到A3S平台714并开始执行。
[0335] 文档服务774可以被配置用于生成用于数据模型799的文档。由文档服务744生成的文档可以展示各种数据点、对数据点的描述、数据点的单位和/或数据模型799的任何其他信息。用户可以查看由文档服务774生成的文档作为用于更新和/或生成新上下文704的参照。
[0336] 模型设计器752可以被配置用于向用户提供用于生成和/或更新上下文704的界面。模型设计器752可以被配置用于允许用户在各种模型(例如,数据模型799)之间进行选择并且编辑模型以改变或添加建筑物中的各种设备或与所述建筑物有关的其他信息。进一步参照图10至图13,描述了模型设计器752。
[0337] 如进一步参照图7A所描述的,上下文包704可以是包含依赖于可以由A3S平台714渲染的CML 710实施的类的数据包。上下文包704可以是可以与CML 710一起使用以实施数据模型(例如,数据模型799)的元数据。然后,数据模型799可以用于控制各种设施(例如,建筑物设备)。进一步参照图8,描述了可以用于将上下文704实施为数据模型的CML 710和CML 710的类结构。
[0338] A3S平台714可以包括各种客户端集成点。这些集成点可以包括外部接口766、序列接口768和元数据进入点770。外部接口766可以被配置用于提供REST/WCF风格的通信,A3S平台714外部的服务利用所述REST/WCF风格的通信进行交互。这包括目标平台用于与A3S平台714进行交互的任何写入“端口”。
[0339] 序列接口768可以被配置用于将网关796实施到A3S平台714中,定序器可以使用所述A3S平台来驱动闭环控制计算。元数据进入点770可以是开发人员后门。可以从分类的CML库中找到元数据进入点770,从而向用户提供从所供应的上下文中提取元数据以将其重新格式化为用户选择架构的能力。
[0340] 核心库798可以是被配置用于实现对A3S平台714的执行的各种代码库。核心库798被示出为包括全局服务结构库784、CML 710和数据分析786库。全局服务结构库784可以是允许A3S平台714将A3S平台714和/或A3S平台714的各个组成部分和服务实施为微服务的库。将A3S平台714和其各个组成部分和服务实施为微服务可以包括经由全局服务结构库784可以启用的 服务结构来部署A3S平台714。全局服务结构库784可以包括
使得A3S平台714能够被实施为微服务的一个或多个库。进一步参照图15,描述了服务结构。
[0341] 现在参照图8,根据示例性实施例,示出了CML 710的类结构的框图800。CML 710努力解决多维问题,因为算法执行不仅需要数据和移动所述数据的系统,还需要数据分析和标准。这个概念展示了CML 710的若干个目标:为算法及其系统需求提供通用模型和控制器;简化、标准化和改进数据分析,以便利用所有算法;创建算法开发人员专注于算法而不是系统的上下文驱动的环境;以及维持低存储器占用面积、高吞吐量、稳健性和可升级性。
[0342] CML 710表示算法可能需要的任何形式的数据,并使得系统的其余部分能够类属地利用所述数据。另外,CML 710可以帮助标准化算法之间的数据类型,以确保一致的用户界面。
[0343] 原型802通过跟踪存在于实体804内的层次结构并提供标识符来提供对CML 710对象的标识。实体804本身提供两种形式的分层设计(组件和子组件)。组件影响层次结构并在构造时存在,而子组件是对在构造后由用户界定的其他实体804的简单引用。最终,属性806表示实体的实际特性。这些特性可以是针对CML 710的时间序列、数量、字符串数据和/或任何其他数据。
[0344] 原型802提供实体层次结构内任何事物的标识和位置。理解CML 710的类结构的一种方法是经由对建筑物(例如,站点616)中的区域进行建模的示例。层次结构是:
[0345] ●建筑物
[0346] ○组件
[0347] ■天气[天气]
[0348] ■总功耗[时间序列]
[0349] ○子组件
[0350] ■区域1[区域]
[0351] ■区域2[区域]
[0352] ■区域3[区域]
[0353] ●区域
[0354] ○组件
[0355] ■温度设定值[时间序列]
[0356] ■温度[时间序列]
[0357] ■气流[时间序列]
[0358] ■最大气流[数量]
[0359] ●天气
[0360] ○组件
[0361] ■湿球温度[时间序列]
[0362] ■干球温度[时间序列]
[0363] ■湿度[时间序列]
[0364] 原型802通过使用完全限定的引用(FQR)来跟踪此组件层次结构。由于子路径仅创建关系,因此FQR仅跟踪组件层次结构。FQR采用以下简单形式:实体用户Id:模式名称.路径1/路径2…/路径N。因此,湿球温度的FQR为建筑物1:建筑物.天气/湿球温度,并且区域1的温度设定值的FQR为:区域1.温度设定值。
[0365] 使用此机构的原型802由于其平坦化结构的能力而允许针对各个点快速搜索结果模型。如果用户想要收集所有区域设定值,则其可以经由其以下通用参考符号(URN)进行搜索:区域.温度设定值。然而,如果用户只想要区域1的设定值,则其可以使用其以下FQR:区域1:区域.温度设定值。
[0366] 如以天气所示出的,实体804还可以创建简单特性的分组。开发人员可以使用这些构造时间分组来利用标准面向对象的设计实践,并利用类之间的常用方法。这个概念允许开发人员创建对于其算法而言所需的简单或复杂的模型。原型802在整个CML710中启用标识技术。然而,模型的实际工作器来自实体804和属性类型806。创建这两个概念,其方式为允许开发人员简化标准类设计,并使元数据驱动对象通用且灵活。
[0367] CML 710不仅旨在为任何算法创建可用模型,而且还旨在标准化并允许在算法之间共享组件。为了实现这一点,实体对象804具有一种类型的模式。与工厂(所有模式的简单存储设备)相结合的这些模式允许系统快速且稳健地扩展。开发人员可以简单地创建装置并针对每种类型具有不同的模式,而不是针对每种类型的装置(例如冷却器、锅炉或热回收冷却器)创建真实的具体对象。这就创建了可以快速扩展到不同类型的设备的系统,而不会增加附加设计和测试的负担(并且甚至可以在运行时扩展)。这些模式用于在创建高度可扩展的数据模型时辅助开发人员。实体804必须具有用于输送和其他内置程序的模式;然而,开发人员可以选择将其留空。
[0368] 除了工厂模式设置之外,实体804必须允许配置特性、关系以及对宽模型数据进行更复杂的检索。首先,考虑如何实际地创建实体804的示例。实体804可以是实施实体类的C#类。在实施所述类时,开发人员可能需要供应基本实体类将期望的模式类型以及期望的根实体类型。在库中,可能会找到以下代码片段,所述代码片段定义了在前面提到的建筑模型示例中使用的天气实体。
[0369]
[0370] 示例代码1
[0371] 链接属性功能允许开发人员将任何属性直接连接到对象的特性中,以创建更具可读性的代码。在一些实施例中,可以将任何C#类实施为CML 710。考虑到天气模式,在创建的工厂将所选模式注入到天气对象中。开发人员可以使用这种模式来确定如何对各种时间序列设置公式,或者启用或禁用某些属性等。
[0372] 实体804旨在将具体对象连接到系统可以针对其进行操作的元数据驱动对象。当针对天气对象进行操作时,CML 710将永远不会引用湿球特性。相反,所述CML只会在基本类的组件列表下找到湿球作为组件。这允许系统在不具有关于所述数据表示什么的专业知识的情况下类属地操纵数据。
[0373] 实体804还必须满足两个其他目的:复杂的关系,诸如在运行时查找模型中的点,以及在不同算法之间启用可共享的类属类。后者是通过使用模式来完成的。两种算法可以选择都使用天气;然而,可能需要附加信息。在这种情境下,开发人员可以创建实体视图,模式将使用所述实体视图将其他特性注入到所创建的实体中。在由此开发人员访问时,天气实体可能不立即包含视图的任何附加特性。相反,开发人员可能需要要求实体804将本身视为视图(例如,多态性),以将附加特性暴露在具体类上。以此方式,开发人员已经利用了天气对象的方法和特性,从而为天气创建了标准,同时仍然实现了他或她自己对此天气对象的看法。
[0374] 启用复杂关系的第二目的围绕根实体。所有实体804必须指定根实体(即,开发人员保证包含用于重构模型的所有必要信息的场所)。对于HVAC站点,开发人员可以将设施视为根实体。实体允许重载传入根实体的刷新功能。在此刷新功能内,开发人员可以选择查找并使用根实体处或其下方的任何点。这允许在CML 710内创建和支持任何不可预见的复杂关系。依赖于CML 710的所有系统必须在对象被系统修改的任何时间调用对对象的刷新功能,以确保无法预见的关系保持最新。
[0375] 属性806定义可用作任何实体804中的组件的特性。属性806可能需要自定义视图以及控制器内的特殊代码。因此,开发人员可以在创建新属性之前重用现有属性,以减少部署时间。
[0376] 如图8中所示出的,属性806仅包含字节数组。CML 710将此特性称为“盒(box)”,因为其存储任何自定义对象。此自定义对象可以使用 协议缓冲器技术进行串行化和解串行化。考虑到将完整模型存储在存储器中的挑战——这种技术可以将超过1GB的存储器负荷降低到只有10MB,这种串行化形成了维持轻量级存储器占用面积的基础
[0377] 开发人员可以选择通过创建附加属性806来扩展CML 710。创建属性806要求两件事:定义表示数据的对象;以及定义使得能够高效输送前一对象的对象。存储和输送可以采用两种形式,这允许开发人员优化以其他格式存储数据时输送数据的方式。示例属性定义可以帮助理解这种用例。
[0378]
[0379] 示例代码2,属性
[0380] 在此代码片段中,属性806示出了为什么存储对象可以不同于输送对象。对于双数组,常量类表示数据分析概念,所述数据分析概念在输送期间附带有其不必要的信息,诸如导出单位和结构集合而不是对齐列表。因此,为了确保高效输送,属性806将常数降低为双数组。
[0381] 在示例代码2中,可测量属性基本类(CML 710中的属性)采用三种基本形式:属性、可测量属性和可导出属性。所述属性启用特性的基本用例,而无需附加单位或公式,基于字符串的属性在以下的示例代码3中示出。
[0382]
[0383] 示例代码3
[0384] 像所示出的双数组一样,可测量属性(示例代码2)将单位功能添加到属性(示例代码3)。最后,可导出属性在可测量属性的基础上进行应用,从而为正在实施的类提供数据分析套件的全部功能。
[0385] CML 710包括通过利用单独的定义良好的库来执行标准化、稳健且可扩展数据分析的功能——这允许其他系统仅利用CML 710的数据分析方面。使用这种数据分析库为CML 710提供了其对可导出属性关系执行即时计算的能力,从而避免了将数据过多存储到磁盘或存储器中。另外,结合绑定到装盒(boxing)技术的智能高速缓存机构,CML 710从不浪费时间来重新计算同一执行。
[0386] 可导出属性专注于在多组属性之间创建关系,这允许开发人员对关系进行映射而无需将其手动编码到他们的算法中。另外,此概念去除了进入磁盘的不必要的存储(与存储所有计算值相比,此概念仅可节省大约80%的存储大小),并允许所有内核706利用所述关系——从而有助于标准化。
[0387] 作为可导出属性的最常见形式,时间序列由离散信号、单位类别和信号类型组成。其离散信号由样本集合组成,每个样本都有具有样本时间、采样值以及指示状态(诸如,不可靠或超出范围)的标志。使用时间序列,CML 710可以形成各种关系,诸如将许多时间序列信号求和成单个时间序列。在引擎盖(hood)下,这些关系由单位引擎验证,以确保单位类别与来自关系的结果相匹配。
[0388] ●区域组
[0389] ○组件
[0390] ■总气流[时间序列]=Sum(来自子部件内的区域的气流)
[0391] ○子组件
[0392] ■区域1:区域
[0393] ■区域2:区域
[0394] ■区域3:区域
[0395] ●区域
[0396] ○组件
[0397] ■气流[时间序列]
[0398] 在示例中,区域组在刷新功能期间构建了将每个子区域的气流连接到其总气流的求和关系。然后,当用户访问总气流时,其将使用所述关系为用户计算值和单位两者。CML提供了实施此想法的清晰方法:
[0399] TotalAirFlow.DeriveFrom(Formula.SumAll(ChildrenOf().Select(z=>z.AirFlow)));
[0400] 示例代码4
[0401] 示例代码4呈现了如何使用CML 710导出点。此时,如果对各种气流的信号进行随机采样,则人们可能疑问结果会怎样。数据分析使用内置修复算法来管理这种情况,所述内置修复算法基于其信号类型(值离散或连续)来为时间序列创建无限分辨率。使用这种算法,时间序列可以轻松地对信号进行对齐并创建结果信号。
[0402] 此外,人们还可能疑问在启用求和关系的公式类中发生了什么。公式类也利用数据分析模块中的内置方程和运算引擎。使用此引擎,开发人员702可以选择使用特定的运算(诸如,求和),或以字符串格式指定其自己的利用以下各种内置运算的方程:
[0403] {FormulaName.QofWater,″Flow*watershov(TemperatureOut)*(TemperatureOut-TemperatureIn)″},
[0404] 示例代码5
[0405] 示例代码5给出了定义水的Q的方程的词典条目的示例。可导出属性启用可以用于在进入算法之前计算数据的CML 710内的数据分析或者通过计算附加特性来补充算法。此属性利用了数据分析(诸如,单位分析、方程解析、操作和信号修复)可能实现的关键组成部分。
[0406] 上下文驱动开发
[0407] CML 710将算法开发的架构问题简化为上下文驱动格式。实际上,上下文驱动意味着所述架构依赖于开发人员提供作为其算法的接口的类属元数据驱动数据模型。这允许架构保持不变。开发人员在其用例中创建模型,并在类特性上提供属性以表示如何将模型存储到数据库中。
[0408] CML 710主要使用上下文驱动开发来引用算法或算法集所需的实际数据模型799。被称为上下文的此数据模型依赖于实施在CML 710中所提供的类。将CML 710的内置类实施为外部库迫使剩余架构具有执行任何运算的所有必要信息。为了防止持续部署,所述架构提供了一种在运行时注入此上下文及其内核的方法。
[0409] 一旦开发人员针对其算法定义了上下文(例如,其算法将针对其进行运行的数据模型),他们还实施来自引用其开发的上下文并运行其程序的CML 710的基本内核。他们创建的内核706还必须从其上下文704提供输入和输出特性用途。这允许单个上下文704驱动许多不同的内核706,其中每个内核706仅需要完整数据的子集。利用这个内核706,系统然后可以提供免费的离线风格执行方式。
[0410] 如果开发人员希望在在线环境(诸如,中央能源设施)中运行其内核706,则他们可以指定序列708。此序列708可以提供所有必要配置细节,以针对实时系统运行内核706,所有必要配置细节诸如用于收集和分派的数据点、用于通信的端点以及内核706的执行顺序。序列708还可以驱动测试环境配置,以允许开发人员在离线和在线两种动作中快速看到其内核706。
[0411] 最后,依赖于元数据驱动模型的上下文驱动开发可以实现自动文档编制。这些文档可以随着每个新版本自动更新,以确保用户具有可靠的参考信息。
[0412] 如果开发人员决定改变上下文704、内核706和/或序列708,则利用上下文704、内核706和序列708的基础平台(A3S平台714)不需要重新部署。上下文可以是基于特殊动态链接库(DLL)的包,所述基于特殊动态链接库的包可以将A3S平台714配置用于投入使用,以便启用用户界面和/或算法执行。这允许外部开发人员以这种方式使用平台或实际扩展主要开发人员已经配置平台的功能。
[0413] 耦合示例
[0414] 外部系统当与CML 710接口连接时具有两种选择:耦合和去耦合。本节中引用的耦合情况仅指直接使用具体类。一旦创建,开发人员可以更新特性,并最终将模型和某些选项移交给内核以进行执行。
[0415] 以中央设施优化(CPO)作为示例,CPO的上下文(称为分配器上下文)以及高级分配器内核可以解决中央能源设施的能源分配。考虑以下代码示例,以创建可解决的设施,[0416] var startTime=new DateTime(2016,5,1);
[0417] //创建设施及其高级项目,因为CML是驱动模式,因此开发人员必须使用工厂从其基本类中创建模式。
[0418] var plant=TheFactory.Assemble(″Plant″,″Plant″);
[0419] var chillerTowerSubplant=TheFactory.Assemble(″ChillerTowerSubplant″,″Chilller And Tower Subplant″);
[0420] var chilledWaterResourcePool=TheFactory.Assemble(″ChilledWaterResourcePool″,″Chilled Water″);
[0421] var electricityResourcePool=TheFactory.Assemble(″ElectricityResourcePool″,″Electricity″);
[0422] var waterResourcePool=TheFactory.Assemble(″WaterResourcePool″,″Water″);
[0423] var  electricitySupplier=TheFactory.Assemble(″ElectricitySupplier″,″Electricity Supplier″);
[0424] var waterSupplier=TheFactory.Assemble(″WaterSupplier″,″water Supplier″);
[0425] var chiller=TheFactory.Assemble(″Chiller″,″Chiller 1″);
[0426] var tower=TheFactory.Assemble(″Tower″,″Tower 1″);
[0427] var chilledWaterLoadCoil=
[0428] TheFactory.Assemble(″ChilledWaterLoadCoil″,″Chilled Water Load Coil″);
[0429] var electrcityLoadCoil=
[0430] TheFactory.Assemble(″ElectricityLoadCoil″,″Electricity Load Coil″);
[0431] var linearPeformancModel=
[0432] T h eF a c t o ry .A s s em b l e < Pe r f o r ma n c e M od e l > (″ChillerTowerSubplantLinearModel″,″Linear Performance Model″);
[0433] //添加子组件
[0434] chillerTowerSubplant.AddChild(chiller,tower,linearPeformancModel);
[0435] chilledWaterResourcePool.AddChild(chilledWaterLoadCoil);
[0436] electricityResourcePool.AddChild(electrcityLoadCoil);
[0437] plant.AssetLayer .AddChild(chillerTowerSubplant,chilledWaterResourcePool,electricityResourcePool,waterResourcePool,electricityResourcePool,electricitySupplier,waterSupplier);
[0438] //连接资产层
[0439] plant.AssetLayer.AddChild(Node.CreateNode(1,Domain.Asset,″ChilledWater″,chillerTowerSubplant,chilledWaterResourcePool));
[0440] plant.AssetLayer.AddChild(Node.CreateNode(2,Domain.Asset,″Electricity″,electricitySupplier,electricityResourcePool));
[0441] plant.AssetLayer.AddChild(Node.CreateNode(3,Domain.Asset,″Electricity″,electricityResourcePool,chillerTowerSubplant));
[0442] plant.AssetLayer.AddChild(Node.CreateNode(4,Domain.Asset,″Water″,waterSupplier,waterResourcePool));
[0443] plant.AssetLayer.AddChild(Node.CreateNode(5,Domain.Asset,″Water″,waterResourcePool,chillerTowerSubplant));
[0444] //添加时间序列数据,单个点就够了
[0445] plant.Weather.Drybulb.Default.AddValue(new Value(startTime,70),new CompositeUnit(Unit.DegreesFahrenheit));
[0446] plant.Weather.Wetbulb.Default.AddValue(new Value(startTime,60),new CompositeUnit(Unit.DegreesFahrenheit));
[0447] electricitySupplier.Rate.Default.AddValue(new Value(startTime,0.01),new CompositeUnit(Unit.Monies)/new CompositeUnit(Unit.KiloWattHour));
[0448] waterSupplier.Rate.Default.AddValue(new Value(startTime,0.01),new CompositeUnit(Unit.Monies)/new CompositeUnit(Unit.Gallon));
[0449] chilledWaterLoadCoil.LoadConsumed.Default.AddValue(new Value(startTime,2500),new CompositeUnit(Unit.TonsRefrigeration));
[0450] electrcityLoadCoil.LoadConsumed.Default.AddValue(new Value(startTime,5000),new CompositeUnit(Unit.KiloWatt));
[0451] //更新数量
[0452] chiller.GetResourceByName(″ChilledWater″).IndependentData.Capacity.Update(3000,new CompositeUnit(Unit.TonsRefrigeration));
[0453] chiller.GetResourceByName(″ChilledWater″).IndependentData.MinimumTurndown.Update(1000,new CompositeUnit(Unit.TonsRefrigeration));
[0454] tower.GetResourceByName(″CondenserWater″).IndependentData.Capacity.Update(5000,new CompositeUnit(Unit.TonsRefrigeration));
[0455] tower.GetResourceByName(″CondenserWater″).IndependentData.MinimumTurndown.Update(500,new CompositeUnit(Unit.TonsRefrigeration));
[0456] linearPeformancModel.GetAttribute(″DrybulbMin″).Update(-100,new CompositeUnit(Unit.DegreesFahrenheit));
[0457] linearPeformancModel.GetAttribute(″DrybulbMax″).Update(200,new CompositeUnit(Unit.DegreesFahrenheit));
[0458] linearPeformancModel.GetAttribute(″RelativeHumidityMin″).Update(0,new CompositeUnit(Unit.Percent));
[0459] linearPeformancModel.GetAttribute(″RelativeHumidityMax″).Update(100,new CompositeUnit(Unit.Percent));
[0460] linearPeformancModel .GetAttribute(″ChilledWaterToElectricityFactor″).Update(0.16,new CompositeUnit(Unit.None));
[0461] linearPeformancModel .GetAttribute(″DrybulbToElectricityFactor″).Update(0,new CompositeUnit(Unit.KiloWatt)/new[0462] CompositeUnit(Unit.DegreesKelvin));
[0463] linearPeformancModel.GetAttribute(″RelativeHumidityToElectricityFactor″).Update(0,new CompositeUnit(Unit.KiloWatt));
[0464] linearPeformancModel .GetAttribute(″ChilledWaterToWaterFactor″).Update(0.001,(new CompositeUnit(Unit.Gallon)/new[0465] CompositeUnit(Unit.Hour))/new
[0466] CompositeUnit(Unit.TonsRefrigeration));
[0467] linearPeformancModel.GetAttribute(″DrybulbToWaterFactor″)[0468] .Update(0,(new CompositeUnit(Unit.Gallon)/new
[0469] CompositeUnit(Unit.Hour))/new CompositeUnit(Unit.DegreesKelvin));
[0470] linearPeformancModel .GetAttribute(″RelativeHumidityToWaterFactor″).Update(0,(new CompositeUnit(Unit.Gallon)/new[0471] CompositeUnit(Unit.Hour)));
[0472] plant.Refresh();
[0473] 示例代码7,CML的示例用例
[0474] 一旦设施被创建,计划资产分配器内核可以对其进行求解并提出如何对其进行最佳地控制,
[0475] var solverOptions=new PlanningAssetAllocatorOptions();
[0476] solverOptions.PlanStart.Update(startTime);
[0477] solverOptions.PlanEnd.Update(startTime+new TimeSpan(7,0,0,0));
[0478] var result=solverOptions.Solve(plant,null);
[0479] Assert.AreEqual(SolverStatus.Success,result.StatusInfo.Status);
[0480] 示例代码8,在CML中求解示例模型
[0481] 去耦合示例
[0482] 去耦合示例假设外部系统716拥有其自己的具体类。在这种情境下,CML 710提供各种视图,这些视图将来自上下文704的所有元数据提供给外部系统716。外部系统716然后可以使用此信息来创建XML输入,然后CML 710将所述XML输入解析成其自己的具体形式以及运行内核的数据。
[0483] CML 710可以将由开发人员提供的元数据以XML格式导出到外部系统。此XML包含用于围绕算法的元数据创建自定义设置的所有相关信息。例如,对于任何实体,所有属性和实体信息都被导出为以下这种XML格式:
[0484]
[0485]
[0486] Identifier=″ProcessVariable″Category=″DeltaTemperature″UnitGroup=″Default″ValueType=″ContinuouslnValue″BoundAction=″FlagOnly″Formula=″Difference:TemperatureOut=,Temperatureln=″/>
[0487] 示例代码9,XML导出元数据的示例
[0488] 以上示例仅呈现了具有用于演示的其时间序列点之一的HRC。
[0489] 根据CPO耦合示例考虑设施,存在指定XML的允许格式的XML模式定义(XSD),该XML的允许格式提供重构设施所需的所有配置信息:
[0490]
[0491]
[0492]
[0493] 示例代码10,示例XME示出了如何创建CPO设施
[0494] 使用来自上一节中的作为输入的具有由FQR和数据类型(来自导出的元数据)对组成的一组数据的XML,外部系统可以以简单的方式调用解:
[0495] var solverOptions=new PlanningAssetAllocatorOptions();
[0496] solverOptions.PlanStart.Update(startTime);
[0497] solverOptions.PlanEnd.Update(startTime+new TimeSpan(7,0,0,0));
[0498] var result=solverOptions.Solve(plantXml,dataPairs,null);
[0499] Assert.AreEqual(SolverStatus.Success,result.StatusInfo.Status);
[0500] 示例代码11,求解去耦合模型的示例
[0501] 当今行业的一个主要思想领域围绕自动从一个数据模型映射到另一个数据模型的能力。尽管当今CML 710无法解决此问题,但已将其设置为将其实现。CML 710中的每个点都必须指定一个定义。这服务于两个目的。一个是其允许文档生成存在,以及第二个是其允许为诸如预测算法等的系统提供与名称相匹配的充分证据。
[0502] 利用算法工程师选择的名称及其定义,可以创建可以建议现场站点上的任何映射到内核本身之间的映射的算法。这允许极端的即插即用环境,其中算法开发人员可以简单地创建内核并且该算法将使得所述内核能够简单地位于行业中的任何其他模型之上。
[0503] 除此之外,自然语言处理变成免费的。使用此算法的系统用户可以简单地询问系统中的某些数据值,并且系统可以快速对其进行显示或描述。
[0504] 如所呈现的,开发人员可以使用CML 710来建模他们将以其他方式在C#中创建或使用其他基于元数据的模型创建的任何类。通过使用CML 710,开发人员获得执行各种内置控制器动作的能力,诸如,轻量级存储、高速输送、自我修复数据模型。因为所述模型存在于上下文中、稳健数据分析、上下文驱动开发中,因此不需要数据库管理。这消除了算法的不断变化、自动文档生成的影响。开发人员利用CML 710带来的通用性和标准越多,其就会变得越精细和有用。
[0505] 可验证关系构建器语言
[0506] 单位分析引擎
[0507] 现在参照图9A,根据示例性实施例,示出了单位分析引擎920,所述单位分析引擎向开发人员提供用于验证他们已经执行的数学运算以及执行面向客户的单位数学以进行显示的系统和方法。考虑到在CML 710中将两个可导出属性A和B相乘的情况。如果属性A为吨,并且属性B为小时,则相乘将生成以吨-小时为单位的结果。如果添加了这两个属性,则结果将具有为“不是一个单位”或字符串“NaU”的结果单位。单位分析引擎758可以通过创建依赖于使用SI基本单位自身定义的导出单位的分层系统来执行类似这些的操作。
[0508] 分层系统开始于由导出单位类924定义的导出单位。当进行乘法、除法、加法、减法和/或使用幂运算时,导出单位类924可以执行所有基础单位数学。导出单位类924通过跟踪以下基础的基本单位(例如,米、千克、秒、安培、开尔文、摩尔和美元)的指数来工作。注意,除了美元之外,这些基础单位中的所有都存在于公共SI基本单位定义中。跟踪这些指数为单位数学创建机构。加上或减去两个导出单位(例如,导出单位A和导出单位B)意味着这两个单位指数必须相匹配或者没有单位将产生。然而,乘以或除以值分别与加上和减去指数数组有关。
[0509] 可以由导出单位类924的导出单位来跟踪基础的基本单位。基本单位可以是任何一组定义的单位。在一些实施例中,定义的一组单位为米、千克、秒、安培、开尔文、摩尔和美元。数组或其他数据对象可以指示每个单位的幂。指数数组可以指示每个基本单位的幂,例如[米幂、千克幂、秒幂、安培幂、开尔文幂、摩尔幂和美元幂]。作为示例, 可以使用指数数组[0,1,0,0,0,0,-表示。
[0510] 让开发人员在基本单位中指定其单位中的每一个对于可用性而言不太好。例如,用户可能希望以对于他们而言为最方便的单位输入数据。因此,下一层,复合单位(例如,复合单位A和复合单位B)可以将现实世界单位映射到导出单位中。这允许导出单位保持为内部概念,开发人员可以安全地忽略所述内部概念而不必担心混淆单位。
[0511] 单位分析引擎758使用复合单位类922来管理将公知的单位映射成通用类别(诸如吨(例如,多吨制冷剂)和kW被映射成功率)的系统。在这些类别中的每个类别内,单个成员与导出单位维持一对一关系,而所述组中的所有其他成员指定来自一对一单位的转换比率。如本文所使用的,导出单位可以是从输入单位导出的一对一单位。例如,米可以是输入单位,英寸是输入单位的导出单位。
[0512] 例如,瓦特(针对幂组选择的一对一单位)的SI基本单位为与[2,1,-3,0,0,0,的指数数组有关的 作为一对一单位,瓦特字面上到基本单位的转换因子为一。使用瓦特的一对一单位,吨(即一吨制冷剂)表示其本身为3516.85(即1瓦功率等于0.00284345吨制冷剂)的转换因子。以此方式,复合单位可以通过忽略公知的单位并仅使用导出单位工作来对复杂的单位聚集体执行单位数学。
[0513] 导出单位可以存在于A3S平台714的类中(具体地,在分析756中)。一种数据类(值类934)可以表示时间序列数据。在处理值时,开发人员可以输入具有复合单位的数据。然后,值类经由复合单位自动将数据转换为一对一的单位,并且然后选择适当的导出单位以进行内部表示。转换后,引擎可以在任何数量的计算中使用数据,而无需任何附加单位转换。这个概念创建了一种节省CPU计算周期的高效设计。
[0514] 一旦开发人员基于值类934创建对象(例如,值对象936或值对象368)并且系统对所述对象进行转换,则他们可以选择将两个值类一起相乘。在这种情境下,单位分析引擎758将自动地根据操作中涉及的两个导出单位的乘积来计算结果值类单位。一旦计算出结果值类单位,开发人员就可以选择通过使用需要复合单位作为输入的访问器930从值类中访问结果的数据和/或单位(例如,访问结果单位932)。使用复合单位,值类在传递出值后将内部数据转换为所请求的单位。如果所供应的复合单位不具有与结果相同的一对一单位并且将导致错误,则向开发人员指示他们在工作中犯了单位错误。
[0515] 图9A提供了复合单位类922、导出单位类924和值类934的说明性示例。如图9A中所示出的,两个单独的属性(属性A和属性B)以及其单位(即,单位A和单位B)被输入到单位分析引擎758。属性A和B可以是如由CML 710在图8中数据模型799中定义的属性。在一些实施例中,属性A和B是由用户经由脚本语言经由计算装置(例如,蜂窝电话、膝上型计算机、终端等)输入的,或者是数据模型的属性(例如,数据模型799)。
[0516] 单位分析引擎758可以针对每个属性实例化对象,所述对象基于复合单位类922。复合单位类922可以使属性A的单位A映射到标准基本单位。在这一方面,复合单位类922可以被配置用于基于转换因子、输入单位A、和属性A的输入值来确定基本单位中的值A以及相应的导出单位A。
[0517] 单位A和B可以是安培。在这一方面,复合单位A和B可以包括标准化单位与安培之间的一对一转换因子。在这个示例中,标准化单位可以是安培,即,标准化单位可以是[米幂、千克幂、秒幂、安培幂、开尔文幂、摩尔幂和美元幂]。在这一方面,导出单位A和导出单位B两者都可以是和/或包括数组[0、0、0、1、0、0、,而为一的转换因子可以将属性A和B的值映射为值A和B。
[0518] 在图9A中,属性A和B在单位分析引擎758中被表示为基于值类别934定义的值对象。如果将这两个值对象相加在一起,则所得值对象的结果可以是值A与值B之和,而结果单位可能是[0,0,0,1,0,0,。然而,如果将这两个值相乘,则结果可以是值A和值B的乘积(例如,值对象938和值对象938),而结果单位可能是[0,0,0,2,0,0,。
[0519] 信号修复引擎
[0520] 如参照图9A所描述的,值类934可以用作信号修复引擎759如何被配置用于执行数据分析的一个示例。值类934可以表示可以是随机采样的离散或连续信号。考虑参照图9B描述的示例性示例,此值类934可以具有对其应用的多种运算(相乘)。
[0521] 参照图9B,根据示例性实施例,图表900B展示了由标记902和904表示的两个时间序列信号(时间序列1和时间序列2)。当将这些信号相乘时,信号修复引擎759可以被配置用于将可注入的滤波器内核应用到每个信号中,并且串联地移动它们以创建其顺序取决于所注入的内核的函数。使用此概念,信号修复算法可以创建一组无限分辨率信号。然后,针对信号修复引擎759运行的操作可以在任何时间请求,并且修复算法可以在请求时间返回表示每个信号的值的集合。所述实施依赖于低级索引管理,以确保不使用超出原始信号的附加存储器,并且寻求索引为N阶。过滤器内核的示例可以是用于兰索斯(Lanczos)重采样的兰索斯内核、用于双三次插值的内核、或用于任何插值过程的任何其他内核。
[0522] 在图9B中,时间序列每一个具有10个样本。考虑所提供的信号是否每一个都具有类似于图9B中的10个随机放置的样本。信号修复算法为每个序列构建内核,并将适当数量的点加载到抽头位置。然后,修复算法将占用所有20个时间位置,并且以第一时间位置从每个内核请求值开始。一旦请求的时间移动通过前向抽头中的最后一个样本,内核就会通过加载另外样本引用并将其丢弃过去的这些样本引用而前进。对于线性插值内核,边缘行为被设置为保持最近的点。因此,当将图9B的两个信号相乘时,每个信号具有10个数据点,如果没有数据点在x轴上对齐,则来自乘积的结果信号将包括20个数据点。在视觉上,如果要在图9B中在两个信号的20个点中的每一个点处笔直向上和向下绘制线,这可以将那些线与内插信号相交的点相乘,从而产生20个新点。
[0523] 运算引擎
[0524] 利用单位分析引擎758和信号修复引擎759,运算引擎761形成能够针对数据类(例如,值类934)的集合进行工作的机构。在运算引擎761内,可能有三十个或更多个当前可用的内置运算。这些运算中的每一个运算都可以以直接、时间和/或空间形式而存在。直接运算器不对输入值类执行默认信号重构技术,并允许对如何将数据分析应用于传入数据进行完全控制。这样的示例可以是运算引擎761可以执行的合并运算。在此运算中,系统使用基于时间的窗口来扫描多个信号。按照一定顺序遍历值类别934的集合,运算引擎761可以被配置用于扫描大于窗口的间隙存在的上部信号中的数据,并且然后扫描在窗口内的下部信号数据,以搜索数据来填充间隙。因此,用例需要对完全适合直接运算器的信号修复算法进行自定义管理。
[0525] 而其他两种类型依赖于信号修复算法完成的准备工作来对数据进行对齐,就像信号修复示例中的那样。空间运算器在每个样本时间跨信号应用,而时间将数据作为整体应用于每个设置。求和用作空间运算器的很好示例,其中在每个样本时间,所述空间运算器对这些值进行求和以形成新信号。连续求和可以用作时间运算器的很好示例,其中所述时间运算器对从开始到结束的信号进行求和,从而随着时间的推移将其当前值保存到每个样本时间中。
[0526] 这些操作还维持调用者可能需要遵循的输入特征定义,以实现计算。这可以鉴于C中的函数原型来理解。方程引擎763可以被配置用于将这些原型直接实施为正则表达以允许对方程进行运行时解析。
[0527] 方程引擎
[0528] 方程引擎763可以被配置用于将所有先前的引擎(即,单位分析引擎758、信号修复引擎759和运算引擎761)最终合并在一起,以形成可以使用值类的值对象作为输入的高度灵活的方程求解器。利用运算引擎761的方程引擎763可以被配置用于使用由运算引擎761提供的原型将字符串解析为运算顺序。然后可以顺序地执行此运算顺序,以达到方程预期的结果。这样的概念需要大量的精密工程,以确保其可以处理任何事情并稳健地进行处理。
[0529] 考虑示例,(a+b)/(平均值(c)-d)。在此示例中,方程引擎763可以被配置用于将字符串解析为单个运算:
[0530] 1.r1=a+b
[0531] 2.r2=mean(c)
[0532] 3.r3=r2-d
[0533] 4.r4=r1/r3
[0534] 可以执行此运算顺序,并且可以返回最终结果。
[0535] 分析
[0536] 分析756可以是实施脚本语言的引擎,所述脚本语言将方程与由调用者实施的动作结合起来。在由分析756生成和/或管理的用户界面内使用的此语言可以使得用户能够执行自定义数据分析,所述自定义数据分析扩展了CML 710本身的基本形式,然后使用所述数据运行各种动作。这允许开发人员专注于其数据模型(例如,数据模型799)的核心方面,并依赖于分析756来抽象出任何自定义请求。此概念可以提供对特殊的面向用户的需求与开发人员的算法需求的不可替代分离。以下示例分析提供了对其功能的宝贵见解。
[0537] ch1Eff=
[0538] ch2Eff=
[0539] ch1Cop=3.516/ch1Eff
[0540] ch2Cop=3.516/ch2Eff
[0541] meanChCop=mean(ch1Cop,ch2Cop)
[0542] plantEff=
[0543] plantCop=3.516/plantEff
[0544] plot(plantCop[none],meanChCop[none])
[0545] 示例代码6
[0546] 前两行提供了将变量设置为等于数据模型799中的点的示例。在设置之后,然后用户可以使用这些变量(如以下几行所示出的)正常运算器(如,乘法或除法、加法或减法等)。完成后,最后一行呈现动作的使用。本质上,动作提供了分析的出路,在这种情况下,以无单位绘制两个数据集。像这样的行也可能在形式plot1:plot(…)的前面之外包含标识符。这使得动作能够扩展到多行。
[0547] 现在参照图9C,根据示例性实施例,示出了用于接收和执行脚本的过程900C。分析756可以被配置用于执行过程900C。进一步地,本文描述的任何计算装置可以被配置用于执行过程900C。
[0548] 在步骤950中,分析756可以接收由用户输入的脚本。所述脚本可以标识数据模型799的数据点,并且可以包括对所标识的数据点执行的操作。可以经由允许用户键入和/或以其他方式输入数据点的身份以及对数据点执行的操作的界面来从用户接收脚本。用户可以经由用户装置(例如,膝上型计算机、移动装置等)输入脚本。可以由用户输入的脚本的示例是示例代码6。
[0549] 在步骤952中,分析756可以基于数据点的身份从数据模型799中检索数据点的值。数据点的身份可以是例如“ch1Eff=”,如示例代码6所示出的。示例代码6的脚本的这一行可以使分析基于标识符“Chiller1:Chiller.Efficiency”来检索数据点。
[0550] 在步骤954中,分析756可以判定所接收的脚本中是否存在单位换算。分析756可以使用单位分析引擎758对脚本执行单位数学,以验证由脚本确定的值均未导致“非数字”(例如, )。此外,单位分析引擎758可以将结果单位与预期单位进行比较。例如,如果对脚本的结果确定是数据模型799中区域的以华氏温度的温度点,则分析756可以判定结果的单位是否采用华氏温度。
[0551] 如果不存在单位换算,则过程900C可以前进到步骤958。如果存在单位换算,则过程900C可以前进到步骤960。在步骤958中,分析756可以通知用户在所接收的脚本中的单位换算中存在错误。在一些实施例中,分析756可以在界面上提供指示单位数学中存在错误的弹出通知。所述通知可以标识哪个结果和/或用于确定所述结果的哪些点已经导致了单位换算中的错误。在一些实施例中,分析756对确定或相关联的数学运算中涉及的输入值加下划线,以向用户标识脚本中的单位换算中的错误存在的地方。
[0552] 在步骤960中,分析756可以对所检索的数据点中的任一个执行数据修复。在一些实施例中,信号修复引擎759可以执行步骤960。基于脚本,信号修复引擎759可以判定是否需要步骤960。例如,时间序列在特定时间可能不具有数据点,在特定时间内脚本中需要所述数据点。分析756可以被配置用于标识时间序列的数据点是否不可用,并且响应于确定值不可用(但可以通过执行信号修复来确定),可以确定执行信号修复。此外,脚本可以包括用户输入运算,以执行用于在特定时间标识数据序列的特定数据点信号修复算法。
[0553] 在一些实施例中,所检索的数据点可以是建筑物的两个不同区域的温度值的两个不同向量。所述脚本可能正在实施两个温度向量之间的乘积。这两个向量可能不包括时间上对齐的温度点,在这一方面,可以对时间序列中的一个或两个执行内插。作为另一个示例,脚本可能正在请求在上午10点的温度时间序列的乘积。然而,一个或两个时间序列可能在特定日期而不是在特定时间(上午10点左右)的点进行温度测量。在这一方面,可以执行内插以确定对于一个或多个两个时间序列的上午10点的数据点,并且结果可以是所得内插数据点的乘积。
[0554] 在步骤962中,分析756可以将脚本的运算解析为一个或多个单独的运算,并且可以生成用于执行隔离运算的适当顺序。在一些实施例中,可以执行运算引擎761以执行运算隔离和排序。这些运算可以被隔离成单个运算,例如, 可以被隔离成第一个运算和以下运算
[0555] 在步骤964中,分析756可以运行在步骤950中接收的脚本并生成单个结果或多个结果。执行脚本可以涉及执行用于生成结果的各种计算和/或执行各种信号分析和/或修复操作。在一些实施例中,分析756可以生成一个或多个标识脚本的结果的图形(例如,线形图表、条形图表,表格等)。分析756可以使结果存储在数据模型799中。例如,分析756可以被配置用于基于脚本(例如,脚本包括将结果保存到数据模型799的行)来确定结果是否应该存储在数据模型799的一个或多个点处。
[0556] 在一些实施例中,脚本的结果可以是可以用于通过控制建筑物的建筑物设备来控制建筑物的环境条件的值。例如,脚本的结果可以是一种建筑物设备的操作设定值,所述操作设定值可以存储在数据模型799中,并且然后用于操作建筑物设备。在一些实施例中,脚本创建调试信息,例如,数据模型799的虚拟点。在一些实施例中,脚本在系统运行时与数据模型799一起执行。所述脚本可以生成可以在各种用户界面中查看的结果以进行调试。例如,用户可以针对由数据模型799存储的两个不同区域生成两个不同温度值之间的差异。所述脚本可以对这个虚拟点(两个温度值之间的差异)进行趋势分析,使得可以标识异常行为。如果差异增加了预定义量,则用户或A3S平台714可以标识为区域之一服务的设备已经经历故障。
[0557] 快速部署套件(RDS)
[0558] 快速部署套件(RDS)712旨在向利用CML 710的开发人员提供通用服务。针对开发人员可以使用CML 710创建的任何模型,所述快速部署套件使得类属用户界面(设计模式中的视图)能够对实时系统进行编辑、模拟、分析、调试、检测和配置。此工具可以显示任何数据模型的这些视图。因此,一旦用户界面(UI)存在,上下文驱动开发就允许开发人员专注于创建精心设计的算法。
[0559] 类属UI的最常见缺陷围绕将其与算法的工程视图高度耦合。为了纠正这一点,RDS应用712使得应用设计器能够应付允许自定义视图抽象出工程视图的挑战。以下节将深入讨论这些组件中每一个。
[0560] 模型设计器
[0561] 现在参照图10,根据示例性实施例,示出了用于RDS应用712的主页1000。RDS应用712依赖于贯穿整个应用的单个活动模型(例如,数据模型799)。主页1000的模型选择1014使得用户能够在模型之间切换。活动模型(例如,所选模型)驱动RDS应用712中的所有应用。
使用活动模型,每个工具仅使用由所选模型的基础上下文指定的点。主页1000提供了六个内置工具之间的轻松导航。如本文中进一步详细描述的,模型编辑器选项1002使得用户能够导航到模型编辑器。
[0562] 模拟器选项1004使得用户能够导航到模拟器(例如,模拟器754)。分析选项1006允许用户导航到所选模型的分析页面。仪表板选项1008使得用户可以导航到所选模型的仪表板。诊断选项1010使得用户能够导航到包括所选模型的诊断信息的一组页面。上线选项1012使得用户能够导航到上线服务772的一个页面或一组页面。上线服务772使得用户能够将他们创建的模型带入上线系统。具体参照图7B在本文中进一步详细地描述了上线服务
772。仪表板的示例是如参照图14B描述的仪表板1400B。所述仪表板还允许在右上方访问活动模型(或创建新模型)以及各种用户设置和通知。
[0563] 现在参照图11至12,根据示例性实施例,示出了RDS应用712的模型设计器752的线路界面1100。RDS平台712的围绕算法为中心的核心在于为这些算法创建、编辑和部署数据模型的能力。CML 710提供创建各种上下文和内核并获得工作系统所需的主要功能。
[0564] RDS应用712(具体是模型设计器752)向用户提供了查看和编辑这些模型的能力。然而,为了保持类属性,一定不存在来自每个上下文704的特定功能。用户或开发人员期望存在于RDS应用712中的任何视觉概念可能需要首先存在于CML 710中,因此上下文开发人员可以实施这些特征。一个这种示例围绕将实体连接在一起的能力。
[0565] 模型设计器752提供允许创建和编辑实体的标准视图(例如,界面1100)。CML 710提供了如参照图8描述的两个主要类:实体804和属性806。开发人员应尽可能使用现有属性806来利用实体804,以提供对RDS应用712中的视图的立即拉入。如果开发人员选择扩展属性列表,则RDS应用712也必须扩展以描述如何通过创建新的子视图从用户获得数据。
[0566] 模型设计器752可以包括两个主要部分:实体建模系统和属性编辑系统。考虑为CPO耦合示例提供的代码片段,存在三个主要部分:创建实体、连接实体以及更新这些实体的属性。模型设计器752提供了简单的选盘,以将框放到屏幕上、使用节点驱动的方法将这些框连接起来、并跟踪位置和缩放。
[0567] 一旦用户放下、组织并连接其实体,他们就可以在任何时间通过其增长的工作流程来编辑其特性。双击实体将拉出开发人员定义的可用于该实体属性。此视图包含实体对在模型创建时选择的目标内核有要求的所有属性。这些属性中的每一个属性可以与CML 710或上下文一起使用不同的属性类型,并且必须维持在RDS应用712内的自定义视图或重用其他类型的视图。RDS应用712期望新属性。因此,其需要很少的工作来将更多视图扩展到其框架中。
[0568] 更具体地参照图11,示出了用于连接所选模型的元素的模型设计器752的界面1100。用户可以经由膝上型计算机、台式计算机、平板计算机和/或任何其他计算装置或终端与模型设计器752的界面1100进行交互。界面1100可以是基于网络浏览器的界面或独立程序。
[0569] 用户可以将各种组件元素从元素托盘1118拖放到网格1120上。如所示出的,界面1100展示了水侧系统模型。公共设施元素1102和1108表示水公共设施和电气公共设施。元素1104表示可以在整个建筑物内分配水的水平衡器。元素1110表示建筑物和/或界面1100的模型的组件可以消耗的电力。元素1106可以表示设施,例如,冷却塔节能器、蒸汽冷却塔、地面回路子设施、蒸汽冷却器子设施和/或任何其他设施或设施的组合。设施元素1106被示出为消耗来自元素1104的水、电力(元素1110)以产生冷却水(元素1112。界面1100的元素可以由用户编辑和配置。图12A的界面1100包括编辑元素的属性的示例。经由线连接图互连的子设施和资源的各种示例包括在于2017年3月29日提交的美国专利申请号15/473,496中,所述美国专利申请的全部披露内容通过引用并入本文。
[0570] 如可以看出,用户可以将来自选盘1118的元素和子设施拖放到网格1120上。用户可以定位、旋转和以其他方式操纵元素在网格1120上的位置和取向。用户可以经由图形线连接各种元素。这些线可以指示哪些资源流动以及子设施的输入和输出。这些线可以为基于元素编码的颜色。例如,线可以是指示电力的黄色。以类似的方式,线可以被染成蓝色以表示水。蓝色线可以表示冷水,而红色线可以表示热水。进一步地,线可以被染成灰色,以表示蒸汽等。
[0571] 子设施选盘1114中的每个子设施可以指示设施的各种输入和输出。例如,到冷却塔节能器的输入可以是水和电,而输出可以是冷却水。资源选盘1116中的每种资源可以指示可以由设施消耗或产生的特定元素。例如,资源可以是冷却水、热水、蒸汽、电力等。
[0572] 更具体地参照图12A中,示出了用于编辑网格1120上的元素之一的属性的界面1100。响应于用户与网格1120上的元素之一交互(例如,点击、轻击等),窗口1202可以出现在界面1100中。窗口1202可以允许用户输入、调整、选择或更新所选元素的各种属性。在图
12A中,所选元素是冷却器子设施(例如,子设施元素1106)。用户可以选择或调整子设施元素1106的总储存损耗、总储存水平估计、总储存损耗、总储存水平、分配使用情况和/或其他属性。进一步地,可以经由窗口1202为子设施元素1106设置超出服务范围的日期。
[0573] 由界面1100定义的模型可以用于执行各种优化。例如,可以基于用户经由界面1100输入的模型来使用各种负载平衡和负载减少技术。例如,可以基于所定义的模型来执行诸如经济负载需求响应(ELDR)、频率调节(FR)和/或各种其他优化等优化。这些优化可以利用基于建筑物的设备的成本函数。可以在于2017年6月7日提交的美国专利申请号15/
616,616中找到这种优化的示例并且在其中提供了成本函数,所述美国专利申请的全部内容通过引用并入本文。
[0574] 现在参照图12B,根据示例性实施例,示出了用于允许用户经由图11和图12A的界面来编辑上下文704的过程1200的流程图。过程1200可以由A3S平台714执行,具体是由模型设计器752执行。在这一方面,模型设计器751和/或A3S平台714可以被配置用于执行过程1200。此外,本文描述的任何计算装置(例如,BAS控制器366)可以被配置用于执行过程
1200。
[0575] 过程1200可以允许用户经由用户装置(例如,移动电话、智能电话、膝上型计算机、台式计算机、平板电脑等)视觉地查看和/或编辑上下文704。在这一方面,模型设计器752可以生成用于编辑和显示上下文704的界面。上下文704可以基于图8中进一步详细描述的类层次结构。具体地,上下文704可以包括实体804和属性806。实体804可以是具有特定属性806的特定建筑元素(例如,资源(例如,热水、冷水、电力等)、子设施(例如,冷却器)、公共设施(例如,电气公共设施、水公共设施)等)。例如,子设施可以具有定义子设施的大小(例如,冷却器的大小)的属性。电气公共设施可以具有定义可以以其从公共设施消耗电力的最大速率的属性。对于特定的建筑物资源,所述建筑物资源可以被定义有实体804和属性806。
[0576] 特定上下文704可以标识哪些实体804可用(例如,开发人员已经定义了哪些实体804)以及所述实体804的属性806。在这一方面,由模型设计器751加载以供编辑的任何上下文704可以特定于由开发人员开发的上下文704。模型设计器751的界面(界面1100)可以是类属的,并且可以基于上下文704中定义的内容显示信息。这允许界面1100编辑任何类型的建筑物数据模型,从而提高界面1100的可靠性和界面1100的可重用性,因为界面1100的编辑规则并未完全被硬编码,而是他们基于上下文704进行定义。
[0577] 在步骤1210中,模型设计器751可以接收用户对上下文704的选择,并且经由界面1100加载所选上下文704以进行视觉编辑。在这一方面,模型设计器751可以经由用户装置向用户提供界面1000和/或界面1100,并允许用户选择特定模型(例如,特定上下文704)。可以经由选择界面1000的模型选项1014来选择上下文704。在一些实施例中,在下拉列表中显示上下文704和其他上下文,并且可以提示用户从下拉列表中选择上下文之一。
[0578] 在步骤1212中,模型设计器751可以生成建筑物模型编辑器(界面1100),所述建筑物模型编辑器包括包含多个建筑物元素的建筑元素选盘和用于将建筑元素选盘的建筑元素连接在一起的画布。在一些实施例中,建筑物元素选盘基于上下文704。在这一方面,建筑物元素选盘可以填充有特定建筑物元素(例如,资源、子设施、公共设施等)。建筑物元素选盘可以包括由上下文704经由实体804定义的建筑物元素。在这一方面,模型设计器751可以标识上下文704包括哪些建筑物元素,并且基于由上下文704定义的建筑物元素生成建筑物元素选盘。
[0579] 在步骤1214中,模型设计器751可以接收用户在画布上放置的建筑物元素选盘中的建筑物元素。在这一方面,用户可以与显示屏幕或用户装置的输入装置进行交互,以选择建筑物元素选盘的建筑物元素并将建筑元素放置在画布上。建筑物元素选盘的建筑物元素可以标识可能的并由上下文704定义的建筑物元素,放置在画布上的建筑物元素可以是实际建筑物实体,所述实际建筑物实体是由上下文704定义的建筑物模型的一部分。
[0580] 在步骤1216中,仅当上下文704允许连接时,模型设计器751才可以接收第一建筑物元素的输出与第二建筑物元素的输入之间的连接。在这一方面,模型设计器751可以基于上下文704标识是否允许特定连接。一旦确定,模型设计器751就可以仅允许上下文704标识为允许的那些连接。这种连接的示例可以是将连接到电气公共设施的电气资源连接到子设施。如果子设施是电池,则可以将电池子设施的输入连接到电气公共设施资源输出。然而,如果子设施是冷却器,则冷却器的水输入不能连接到公共设施的电气资源。不是将这些规则硬编码到模型设计器751中,而是允许模型设计器751从允许对模型设计器751的进行类属开发的上下文704中检索这些连接规则,因为在开发上下文704时可以开发特定规则。
[0581] 在步骤1218中,模型设计器751可以生成用于所选建筑物元素的属性选项。用户可以与建筑物元素进行交互(例如,点击建筑元素),并使另一窗口(例如,如进一步参照图12A所描述的窗口1202)显示。窗口1202可以显示各种属性选项,以供用户经由用户装置进行调整。属性选项可以由上下文704定义。例如,上下文704可以指示哪些属性806与哪些实体804相关联,即,哪些选项可用于建筑元素。在这一方面,窗口1202可以是模型设计器751的类属界面,模型设计器751可以基于上下文751来确定所述类属界面的特定信息。用户可以调整、更新或更改窗口1202的当前设置。
[0582] 在步骤1220中,模型设计器751可以基于用户对步骤1214、1216和1218的调整(即,放置和连接建筑实体并选择建筑实体的属性值)来生成更新的上下文704。可以将更新的上下文1220推送到现场站点,以基于更新的上下文1220来控制所述现场站点(例如,建筑物)的环境条件。例如,上线服务772可以使用更新的上下文704来操作建筑物。
[0583] 步骤1222和1224可以是可选步骤,或者可以特定于特定上下文704,为此,它们以虚线框示出。步骤1222和1224可以特定于使用模型设计器751来在视觉上生成优化问题并使用所述优化问题来选择用于建筑物设备的最佳设备设置。可以在于2017年6月7日提交的美国专利申请号15/616,616中找到执行优化的示例,所述美国专利申请的全部内容通过引用并入本文。
[0584] 在步骤1222中,模型设计器751可以基于先前步骤的用户输入,具体地是基于建筑物元素的放置、建筑物元素之间的连接以及用户对属性选项的编辑来产生优化问题。在一些实施例中,此信息用于针对优化问题生成优化约束。这种优化约束可以是等式约束或不等式约束,并且可以基于建筑物元素的放置和/或属性设置。
[0585] 不等式约束的示例可以是将在任何时间步长k处从能量网接收的电量P电网,k限制成小于或等于能量网能够提供的最大电量的示例。通过以下方程示出了这种不等式约束:
[0586] P电网,k≤P电网,最大
[0587] 其中,P电网,k是在时间步长k处从能量网接收的电量,并且P电网,最大是能量网在任何给定时间步长能够提供的最大功率。能量网能够提供的最大功率可以是经由窗口1202设置的用户定义的属性。以上不等式约束可以是由模型设计器751响应于确定能量网建筑物元素连接到能量消耗设备并且用户设置最大电网功率量而生成的约束的示例。
[0588] 优化约束的另一个示例可以是能量平衡约束。例如,等式能量平衡约束可以指定:
[0589] P电网,k-P设备,k-P电池,k=0
[0590] 其中,P电网,k是在时间步长k处从能量网接收的电量,P设备,k是在所述时间步长k处由建筑物设备消耗的电量,并且P电池,k是在所述时间步长k处释放的电量(注意,当电池放电时,P电网,k可能是负数,并且当对所述电池进行充电时,P电网,k是正数)。如果用户将三个特定建筑物元素(建筑物设备(例如,冷却器子设施)、能量网和电池)连接在一起,则模型设计器751可以生成这种平衡约束,使得建筑物设备可以消耗由电网或电池生成的功率和/或电网可以向建筑物设备提供功率或从电池接收功率。
[0591] 在步骤1224中,基于在步骤1222中生成的约束,模型设计器752或其他方式的A3S平台714可以利用步骤1222的约束来执行优化,以确定一个或多个时间步长的最佳操作点。此外,A3S平台714可以基于确定最佳操作设置来操作建筑物设备。在于2017年6月7日提交的美国专利申请号15/616,616中提供了使用优化约束进行优化的示例,所述美国专利申请的全部内容通过引用并入本文。优化的示例可以是最小化成本或最大化由目标函数(例如,以下提供的目标函数)定义的收入。
[0592]
[0593] 其中,J(x)被定义为如下:
[0594]
[0595] 前一方程中的第一项表示在优化范围上采购的所有资源的总成本。资源可以包括例如水、电力、天然气或从公共设施或其他外部实体采购的其他类型的资源。方程中的第二项表示通过在优化范围上参与激励项目(例如,IBDR项目)生成的总收入。收入可以基于储备用于参与激励项目的电量。因此,总成本函数表示所采购资源的总成本减去由参与激励项目生成的任何收入。
[0596] 模拟器工具
[0597] 现在参照图13,根据示例性实施例,示出了用于RDS应用712的模拟器754的界面。模拟器754专注于向用户提供单一服务。模拟器可以运行以活动模型为目标并允许在各种实验之间进行比较的任何内核706。RDS应用712旨在提供反映算法开发人员如何利用其算法的模拟器服务。在许多情况下,这些开发人员都有自己的实验方法。他们通常构建模型、编辑模型数据、针对某些设置求解模型、分析结果并且继续编辑模型、求解模型并分析结果,直到对模型满意为止。
[0598] 用户首先创建新模型,并且选择以之为目标的内核。这种设置允许RDS应用712过滤掉运行目标内核所需的不必要点。一旦创建,用户就可以创建模型并编辑模型的数据(步骤一和步骤二)。然后,他们可以通过供应内核设置并施加求解来求解模型。为了求解模型,RDS应用712连接到A3S平台714集群并运行作业。在此过程期间,将跟踪实时作业进度并将其与估计的完成时间一起示出到底部处的模拟器应用中。完成后,模拟器的主要比较视图更新。
[0599] 根据示例性实施例,图13中示出的接口1300显示用于运行之间的比较的相关数据。从运行到运行,各种设计参数可能会变化,并将示出在表格视图中。此表格视图将每个试验呈现为行,并且列表示模型中要比较的各个点。用户可以在任何时间选择从视图中添加或去除列,以扩展其值集以在其实验期间进行监测。
[0600] 用户还可以在任何时间将实验输入数据恢复到活动模型中,从而允许其根据过去的实验创建新的实验。创建后,实验阻止用户编辑所述模型的物理结构,直到用户删除所有实验或将模型克隆到干净状态为止。这允许RDS应用712在存储实验数据时利用性能增强策略。
[0601] 分析工具
[0602] 在实验过程期间,用户可能会遇到算法开发人员未提供在模拟器中显示的数据公式。分析工具通过利用CML 710中提供的分析工作直接以这种情境为目标。考虑在分析本身的描述内提供的示例分析脚本,RDS应用712提供能够编辑像这样的分析脚本的浏览器内IDE。
[0603] 使用以活动模型的FQR或活动模型基于上下文的URN为目标的这些脚本,分析工具将针对所选实验执行,并将所有绘图显示为UI右侧上的选项卡。这允许用户对算法开发人员提供的基本模型进行扩展,以发现以其他方式无法获取的新信息。
[0604] 应用设计器
[0605] 现在参照图14A,根据示例性实施例,示出了展示应用设计器750的框图。数据模型(例如,数据模型799)可以包括专业知识,然而,应用设计器750可以被配置用于通过经由绑定到自定义仪表板中的小插件的SVG原始的动画呈现数据模型的数据来允许这些专业细节的类属抽象呈现给最终用户。应用设计器750可以由用户可以经由用户界面(例如,基于HTML5的界面)来访问。应用设计器750可以由用户经由智能电话、经由平板计算机、经由终端、经由台式计算机或可以被配置有显示界面和用户输入界面的任何其他计算装置来访问。
[0606] 应用设计器750可以是独立程序,或者可以与如参照图10至图13描述的模型设计器集成。应用设计器750可以被实施为微服务(例如,经由服务结构来实施)。将应用设计器750实施为独立程序可以减轻用户处理模型设计器与应用设计器之间的紧密耦合带来的困难。在RDS应用712内,用户包含允许他们访问RDS应用712套件内的各种工具的色。在某些情况下,管理员可以选择去除对各种工具的访问以给出用户与算法模型分离的无缝体验,并且替代地提供他们已经设计的应用。应用设计器750当前旨在概括对具有覆盖能力的模型设计向导和实时仪表板(例如,图14B的仪表板1400B)的创建。
[0607] 应用设计器750可以被配置用于接收用户可以经由插图平台1452生成的用户上传的可缩放矢量图形(SVG)。SVG可以是用于支持用户交互和动画的二维图形的基于XML的矢量图像格式。插图平台1452可以是被配置用于生成SVG文件的任何程序和/或计算系统。例如,插图平台1452可以是ADOBE Gimp等之一或其组合。
[0608] 更具体地参照图14A中,上传的SVG是被示出为被上传到应用设计器750的SVG1、SVG2、和SVG3。用户可以将任何数量的SVG上传到应用设计器750。在一些实施例中,应用设计器750支持图形元素的任何文件类型,所述图形元素的任何文件类型支持用户交互和动画。使用上传的SVG,应用设计器750实现生成小插件的能力,从而将所提供的SVG元素绑定到所述小插件。通过点击SVG元素,用户可以选择某个小插件以绑定到SVG元素。在一些实施例中,应用设计器750包括点值绘图小插件,该点值绘图小插件使用SVG字符串的格式来设置如精度、大小等特性,并且指向活动模型内的完全限定的参考(FQR)并以所请求的单位(例如,摄氏、华氏度、秒、小时、CFM等)显示其数据。
[0609] 在点击时,某些SVG小插件可能会绘制模型中用户最后定义的数据量。例如,基于SVG的小插件可以由用户配置用于响应于用户与SVG小插件的交互来绘制建筑物一周的温度数据点。在一些实施例中,RDS包括“补间小插件(tween widget)”。补间小插件可以跨一系列值(例如,在一系列值之间)进行插值以创建自然流畅的动画(例如,音高、图形动画、音量等自然变化)。例如,补间小插件可以在两种状态之间转换,但可以使用多于两个来制作动画,从而产生平滑的动画。在给定对FQR进行条件检查的情况下,这种类型的小插件可以在两个端点之间制作动画目标元素(例如,温度数据点)。例如,补间小插件可以是带有标记的线性标度,所述标记基于目标元素的值变化线性标度的端点之间的位置。
[0610] 在一些实施例中,RDS应用712可以包括颜色变化小插件,所述颜色变化小插件基于用于提供的FQR值的映射来变化SVG元素的颜色。颜色映射可以是小插件或小插件的特定元素的颜色值之间的关系。例如,如果小插件是太阳和云,则太阳可以是变化颜色的元素,而云可以保持相同的颜色。颜色映射可以是查找表、数学函数或可以获得数据点的值并且确定小插件的适当颜色的任何其他关系。
[0611] 在一些实施例中,RDS应用712包括将SVG变成导航到另一页面的按钮的导航小插件。在一些实施例中,与SVG小插件进行交互可以将用户带到显示由小插件显示的数据的附加信息的页面。例如,如果小插件展示了设施的当前功耗,则与小插件进行交互可以将用户带到展示上个月内的功耗使用情况的页面。
[0612] 在一些实施例中,用户可以仅将一个小插件链接到每个元素以实施某种程度的标准化。例如,如果一个小插件显示建筑物的特定区域的温度,则应用设计器750可以禁止用户将另一小插件配置成显示另一小插件中的相同温度。同样,每种设计模式都可以提供不同的小插件。一旦用户完全配置了他们想要的所有SVG,他们就可以保存应用并且所述应用将填充在主页和滑出菜单中。在任何时间处,用户可以将应用带回到编辑模式或去除所述应用,假设他们具有这样的权限。
[0613] 在图14A中,应用设计器750可以向用户提供各种页面1456,每个页面包括基于特定SVG(即,SVG1、SVG2和SVGN)生成的小插件。页面1456可以是用户可以选择其中的一个或多个的SVG的可选列表。用户可以从点列1458中选择各种点以与小插件连接。点列1458还可以是由应用设计器750显示的可选列表。在图14A中,用户已经选择了SVG1。SVG1可以在应用设计器750中被显示为所选的SVG。所选SVG的小插件网页包括文本字段和特定数据显示1459。如果用户与数据显示1459的点进行交互,则可以在应用设计器750中打开配置小插件窗口1460。响应于与配置小插件窗口1460中的类型按钮进行交互,配置小插件窗口1460可以指示哪些点已经绑定到所选SVG的小插件。在图14A中,点A已绑定到SVG1。
[0614] 可以由应用设计器750同时显示页面列1456、点列1458和当前所选SVG的显示。在这一方面,用户可以在一个显示窗格中查看所选小插件、在另一显示窗格中显示与所选小插件相关联的页面、并且在又另一窗格中显示与所选小插件相关联的点。由于用户可以同时显示多种形式的开发信息,因此在单个显示器中一起显示多个窗格可以通过加速开发来改进用户对仪表板的开发。
[0615] 一旦经由应用设计器750进行编辑和更新,则用户可以部署仪表板(例如,仪表板1400a)。仪表板1400A可以显示SVG并收集要在SVG绑定到其的小插件中显示的数据点的值。
在图14A中,选择并显示具有SVG1绑定到其的小插件。经由页面列1462,用户可以选择并显示与不同SVG相关联的不同小插件。页面列1462可以是显示用户可以选择的所有SVG的可选列表。基于用户对页面列1462中的页面之一的选择,可以在显示窗格1463中显示所选小插件。显示窗格1463可以向最终用户显示所选小插件和数据(例如,数据显示1459)。可以在仪表板1400A内同时显示包括页面列1462的窗格和显示窗格1463。
[0616] 可以使用针对系统1466(例如,针对站点部署的A3S系统)的点A收集的数据来更新数据显示1459。在一些实施例中,系统1466的点(即点1468)是存储在系统1466的数据模型(例如,数据模型779)内的值。
[0617] 实时仪表板应用
[0618] 现在参照图14B,根据示例性实施例,示出了用于RDS应用712的实时仪表板(界面1400B)。界面1400B可以经由如参照图14A描述的应用设计器750来设计或更新。实时仪表板应用可以使用小插件将SVG元素(例如,SVG1、SVG2、SVG3等)连接到实时系统(例如,系统
1466)。在图14B中,小插件更新所有示出的经由信号R链接在一起的字符串值,以维持实时流。另外,线上的诱导(carrot)制成动画,并且线的颜色基于实时系统中平台之间流动的电量而变化。在这个示例中,甚至太阳变化颜色,并且云也基于云覆盖量来变化不透明度。开发人员可以快速扩展小插件,因为所述架构将其创建向下简化为插件。
[0619] 应用设计器750不将小插件限制为仅显示数据,这些小插件也可以改变数据。存在将立即修改实时系统中呈现的值的切换小插件和值改变小插件。这允许用户实时与其系统进行交互。可能性是没有限制的,应用设计器750为任何未来实时系统启用一步到位的解决方案,以保持架构不变。用户仅在其视野超出了此架构以之为目标的原始范围时才需要请求新的小插件。
[0620] 在图14B中,界面1400B标识各种建筑物、设备,资源和度量。具体地,界面1400B指示总收入1412。这可以是来自参与各种项目(例如,频率调节(FR)、经济负载需求响应(ELDR)、经由光伏阵列储存和释放能量等)的收入。界面1400B可以进一步指示小时收入(即,指示器1416)和界面1400B表示的设施故障(即,违规扫描指示器1414)。
[0621] 界面1400B标识设备和设备的当前性能(例如,光伏阵列1406、电池容器1408和交叉点1404)。设备的标识符可以是数据模型799内的点,并且可以是电池储存的功率、电池充电的百分比、光伏阵列生成的功率和/或云覆盖的百分比。校园1410可以指示校园正在消耗的功率。此外,交叉点可以指示功耗和缓变率百分比。由1402指示的电网功率可以指示电网功率的当前频率。
[0622] 模型设计向导应用
[0623] 考虑用户使用模型设计器从头开始创建模型。此用户必须了解首先进行如何操作。然而,如果需求表明用户仍为外行,则算法开发人员可以选择使用应用设计器来创建模型设计向导应用。此应用实现了对模型的创建,这些模型提供了逐步运行算法的方法。
[0624] 这些模型在应用设计器中使用SVG和特殊模型编辑小插件起作用,所述SVG和特殊模型编辑小插件使得能够自动在模型中添加和去除各种实体。添加后,可以使用属性显示小插件来编辑其数据,所述属性显示小插件可以利用来自模型设计器本身的属性编辑器。模型设计向导应用的目标是减少算法开发和销售团队中呈现的各种变化需求所需的自定义部署数量。
[0625] 算法即服务(A3S)和微服务系统
[0626] 本披露内容专注于不管在高级开发内还是在外部系统内都启用算法即服务。算法开发人员所掌握的太多专业知识必须透露给组织,然后他们才能创建工作架构。A3S平台714为算法开发人员提供了一种将其专业知识投入其中的机构,并且因此,所述机构向组织的其余部分提供了标准API。要启用算法即服务,需要解决以下若干个常见问题:负载平衡、多机器集群、复制、滚动更新、超缩放、成本效益等。
[0627] 如由图7A和图7B示出的,算法即服务框架必须实现对数千、数十万或数百万个算法执行的管理,而不会中断并且在线和离线两者情况下都不会有性能缺陷。为了实现这一目标,此工作必须利用在此领域中工作的其他人的专业知识。出于所述原因,A3S平台714可以在 服务结构、涵盖所提出的架构上的所有系统级需求的平台构建器的顶部构造。
[0628] 服务结构
[0629] 现在参照图15,根据示例性实施例,示出了可以与A3S 712一起使用的分布式微服务系统1500的。所述微服务系统1500的微服务可以在主要云(例如,AZURE)、私有托管的云中或场所内托管的云中运行。这些云可以在各种系统、控制器、基于
WINDOWS的服务器等上实施。在一些实施例中,分布式微服务系统1500可
以是为Azure的内部基础结构的 服务结构。微服务系统1500可以使得开发
人员能够构建和管理由在共享的机器池(称为集群)上以非常高的密度运行的微服务组成的可缩放且可靠的应用。微服务系统1500可以提供复杂的运行时,以用于构建分布式可扩展的无状态和有状态微服务。微服务系统1500还可以提供用于预配、部署、监测、升级/修补和删除部署应用的综合应用管理能力。
[0630] 微服务系统1500可以使得开发人员能够根据你的应用的需求来缩放所述应用的不同部分。其次,开发团队能够更加敏捷地推出更改,并且因此,更快更频繁地为你的客户提供特征。所述微服务系统1500可以与 AZURE SQL  DATABASE、AZURE DOCUMENTDB、 CORTANA、 POWER 
BI、 INTUNE、 AZURE EVENT HUBS、 AZURE 
IOT、SKYPE FOR 和许多其他 AZURE一起使用。
[0631] 微服务系统1500可以创建“生于云中”的服务,这些服务可以根据需要从小规模开始,并增长成具有数百或数千台机器的大规模。互联网规模服务可以由微服务构建。微服务的示例包括协议网关、用户配置文件、购物车、库存处理、队列和高速缓存。服务结构是一个微服务平台,所述微服务平台给每个微服务可以是无状态或有状态的名称。
[0632] 微服务系统1500可以向由这些微服务组成的应用提供综合运行时间和生命周期管理能力。微服务系统1500可以将微服务托管在跨集群部署和激活的容器内。从虚拟机(VM)移动到容器使得密度提高一个数量级成为可能。类似地,通过从容器移动到微服务,密度的另一个数量级成为可能。例如,单个Azure SQL数据库集群包括运行数以万计个容器的数百台机器,这些容器托管数十万个数据库。每个数据库是服务结构有状态微服务。使用容器可以给出较高密度,而使用微服务可以提供超大规模。
[0633] A3S算法执行
[0634] 现在参照图16,根据示例性实施例,示出了A3S集群的框图1600。根据一些实施例,A3S平台714必须启用稳健地提供并行执行无数算法的系统。为实现这一点,所述架构必须消除算法调用与执行之间的任何等待时间。A3S平台714采用以下高级形式,A3S平台714的高级设计示出了若干个微服务,所有微服务都负责服务结构内良好定义的小角色。高级设计可以轻松地拆分成三个主要目的:内核的离线执行、在线运行时管理和Web界面。
[0635] 离线执行的工作流程涉及让服务结构尽其所能、管理其许多节点之间的传入请求。离线执行的架构涉及以下各项中的若干种:外部接口766、网关796、内核平衡器788、内核服务790和内核工作器792。
[0636] 外部接口766允许外部系统轻松访问A3S集群(A3S平台714的实例)。外部接口766旨在提供对网关服务796暴露的各种功能的访问。不管所述外部接口766涉及将新的定序器1612引入定序服务还是开始内核工作器792的新的内核作业,所述外部接口都会暴露有用的端点。当处理离线内核作业执行时,A3S平台714依赖于通知系统来驱动与作业所有者的信息交换。外部接口766依赖于此通知服务来通知外部系统对状态更新进行触发。
[0637] 考虑到在CML 710节中运行的示例求解器,
[0638] var solverOptions=new PlanningAssetAllocatorOptions();
[0639] solverOptions.CurrentTime.Update(new DateTime(2015,1,1));
[0640] solverOptions.PlanStart.Update(new DateTime(2015,1,20));
[0641] solverOptions.PlanEnd.Update(new DateTime(2015,1,25));
[0642] solverOptions.Solve(model,null);
[0643] var results=solverOptions.Solve(model,null);
[0644] 示例代码12,正在运行的内核
[0645] 不是在本地过程运行内求解此模块并且将其下架(off-shell)到A3S平台714,而是考虑以下代码片段,
[0646] RemoteApi.Initialize(Guid.Empty,new TimeSpan(0,0,5),″http://a3s0″);
[0647] var id=RemoteApi.BeginSolve(solverOptions,model,$″Test{i}″);
[0648] RemoteApi.StartListener();
[0649] RemoteApi.Updated+=args=>{//on complete action...}
[0650] //等待完成通知
[0651] var result=RemoteApi.GetResult(id);
[0652] RemoteApi.Deinitialize();
[0653] 示例代码13,使用远程界面对A3S进行下架内核执行
[0654] 此代码片段使得当前过程能够使用外部接口766将模型和求解器选项发送到A3S平台714。然后,远程API使用开始监听器命令开始监听A3S通知。在获取完成通知之后,获取结果将返回并从A3S平台714排出结果。关于通常在大约15秒执行一次运行的此过程仅使解决时间增加一秒。
[0655] 网关796将外部接口766可以以之为目标的端点桥接到服务结构的代理。这允许外部接口766伸向内核平衡器788以运行离线内核作业命令本身。
[0656] 内核平衡器788可以管理执行离线内核作业的整体平衡问题。所述内核平衡器管理将作业上传到可靠的存储设备中、使作业排队并且平衡集群中运行的所有内核服务790中的作业。内核平衡器788可以在定时器上激活,并分析集群中作业的当前分布。内核平衡器788可以使用简单的成本函数来管理队列,所述成本函数涉及低、中、高和关键的优先级。对于标记为关键的作业,内核平衡器788可以允许重载内核服务790,并将所述作业发送到最低利用的内核服务790。否则,其他优先级具有针对队列中的总时间的修改器,并且作业将按照从最高到最低的顺序使用此值执行。作业执行可以仅将服务加载到最高100%的利用率——正在运行的作业与总计算机CPU的比率。一旦服务790完成,其就将其结果返回给内核平衡器788,所述内核平衡器然后将结果放回到可靠存储设备中,直到所有者排出结果为止。内核平衡器788可以在将微乎其微的滞后引入系统时执行其任务,因此缩放到极限大小仍然可行。
[0657] Mathworks编译器运行时(MCR)无法在同一过程中执行并行执行。这在围绕运行Matlab内核的任何基于代理的架构设计中都会产生若干个问题。出于这个原因,内核服务790将新概念引入到 本身不支持操作者服务框架的服务结构,其中操作者
在不同的过程上运行,而不是在同一过程的不同的线程上运行。内核服务790不能以类属性质实施这一点,而是专注于仅良好地进行内核执行以避免昂贵的性能退化。
[0658] 内核服务790管理这些过程,并使其保持尽可能长的活跃状态,以避免来自MCR的初始化延迟。当平衡器788将作业推送到服务790时,服务790扫描其活跃的内核工作器792以获得空闲的内核工作器,并使用命名管道将作业传递给所述内核工作器。如果活动作业存在于所有活动内核工作器792上,则服务790将创建新过程。在内核工作器792上执行作业期间,工作器792通过命名管道返回进度更新和错误。一旦接收到所述进度更新和错误,服务790就将通知转发回内核平衡器788,因此所述通知可以到达远程端点。
[0659] 一旦在工作器792上完成作业,然后服务790就将结果也转发回平衡器788。在工作器1610执行的过程中,所有者可以调用作业标识符(ID)上的中止。此中止向下传播到拥有作业ID的内核服务790,并且其将终止内核工作器792的所有者过程以实施立即释放资源。
[0660] 如先前由内核服务790所描述的,内核工作器792为内核执行的角色的服务。内核工作器792维持在命名管道上监听工作的始终运行过程。以此方式,内核服务790可以在任何时间将工作发送给内核工作器792或简单地将其终止。内核运行时内的所有错误都将报告回包含错误的作业结果。最后,内核不维持到内核工作器792中的直接引用,而是在启动时动态地加载到过程中。这允许从外部接口766对内核进行运行时更新,而无需更改或更新部署。
[0661] 操作定序(例如,定序器1612)具有与离线执行不同的焦点。定序器可以是服务(例如,微服务)和/或可以是操作者/代理。主要地,围绕这种执行形式的目标围绕着以算法为中心的操作系统(例如,建筑物设备)的目标。存在利用这种执行形式的应用,例如,优化中央能源设施、分布式电池存储问题或具有需求响应的空气侧优化。进一步参照图17A至图17B描述了定序器1612。
[0662] 基于云的动态控制框架-定序器
[0663] 现在参照图17A,根据示例性实施例,示出了基于云的动态控制框架的高级系统1700A。根据一些实施例,动态控制框架是解决现场站点算法的在线控制方面的系统。根据一些实施例,所述系统不受故障影响并且执行具有实时滚动更新的算法。经由序列,所述系统被配置成动态地更新和编辑。基于云的动态控制框架提供一种解决方案,所述解决方案不必针对执行远程站点(或本地站点,如果部署场所内)的控制算法遇到的每种用例进行具体编程。所述方法包括捕获了解如何控制远程站点所需的所有数据。可以经由包1703将这些数据部署到解决方案中,然后所述解决方案自动地配置到站点的连接(假如所述站点首先为了安全而连接到我们,则所述解决方案会将所述站点链接到其控制策略)。一旦包1703被上传,就可以在任何时间更改包1703,以允许控制策略非常基于远程站点1794的需求。包
1703被示出为包括序列708。序列708可以与如参照图7A至图7B所描述的序列708相同和/或类似。
[0664] 假设算法开发人员调试任何新的缺失数据或与其在一起链接的站点(例如,通过数据库1703),算法开发人员可以将新算法(例如,内核706)和新数据模型(例如,基于上下文704实施的数据模型799)安全地部署到所述站点。
[0665] 对为站点616设计的序列708进行连接扫描。序列708可以提供所有必要配置细节,以针对实时系统运行内核706,所有必要配置细节诸如,用于收集和分派数据点的指示、用于通信的端点的指示以及内核706的执行顺序的指示。每个内核706可以指定输入速率需求,并且输入输出链接指定来自站点616的要收集的输入。可以将所有收集的数据高速缓存在站点数据高速缓存1792中。内核706可以由定时器执行或者由针对收集的输入数据编写的分析触发。在执行之后,A3S平台714存放数据并将其分派到站点616。
[0666] 更具体地参照图17A中,示出了接收包括序列708的包1703并且基于所述包1703控制远程站点616的A3S平台714。序列708可以包括指示何时以及如何针对如上下文704所实施的数据模型751运行内核706的信息。序列708被示出为包括输入输出链接1797和序列元素1799。输入输出链接1797可以在序列708中指示用于远程站点616的设备的物理点。输入输出链接1797物理点可以链接到数据模型751的点。序列元素1799可以是特定内核以及所标识的内核的执行规则的指示。
[0667] 例如,一个内核可以是一种用于确定远程站点616特定区域的温度设定值的算法。序列元素1799可以指示执行内核的定时器(例如,每10分钟、每小时等),并且可以指示数据模型751的数据点,所述数据点在发生变化(例如,阈值变化、状态改变等)时使内核执行。例如,温度确定算法可以被配置用于判定远程站点616的特定区域的占用是否变化。
[0668] 输入输出链接1797被示出为包括“源目标对:Tup”。此信息可以是标识远程站点616中的数据点与数据模型751的数据点之间的链接的两个数据元素(例如,字符串)的元组。例如,远程站点616中的建筑物控制器可以具有“温度1-ID 50001”的数据点,而数据模型715可以具有“建筑物A,区域B,环境温度”的相应点。数据点“温度1-ID 50001”可以是远程站点616的物理数据点,而相应的数字点“温度1-ID 50001”可以是数据模型751的数字点。一旦可能,“源目标对”可能是Tup<“温度1-ID 50001”、“建筑物A,区域B,环境温度”。在这一方面,当从远程站点616的物理数据点检索数据时,序列708可以指示数据模型751的哪个数据点存储有所检索的值。此外,当确定用于数据模型751的数据点的值(例如,区域设定值)时,序列708可以指示哪个物理点发送该值从而将其发送到远程站点616。在一些实施例中,在必要的情况下,输入输出链接1797包括多个源目标对并指示多个不同的虚拟链接。
[0669] “虚拟:分析”可以指示需要经由内核706和序列708确定的信息的虚拟服务或软件程序。例如,用于显示由序列708确定的信息的特定系统可以将所述信息显示给最终用户。例如,特定软件系统可以显示远程站点616区域的趋势温度数据。在这一方面,输入输出链接1797可以标识负责将数据记录、趋势化并呈现给最终用户的软件服务,并且可以允许A3S平台714向软件数据趋势化服务提供必要的温度数据。
[0670] 序列元素1799可以指示序列708中的内核执行信息。序列元素1799被示出为包括“内核类型”、“定时器执行选项”和“触发开启”。“内核类型”可以指示特定内核706。例如,“内核类型”可以标识特定的单个内核706或多个不同的类似内核706。例如,序列元素1799可以是用于特定内核或用于特定内核组的相应序列元素1799。例如,一种类型的内核706“温度设定值调整”可以是负责确定远程站点616的设定值调整的内核706。对于所有“温度设定值调整”内核,序列元素1799的定时器执行选项和/或对设定值触发可以是相同的。此序列708可以包括对应于适当的源目标对和/或与“温度设定值调整”内核类型相关联的虚拟的输入输出链接1797。定时器执行选项可以指示何时经由输入输出链接1797的源目标对1797收集数据模型751的数据。定时器执行选项可以是在由序列元素1799指示的预定义定时器执行时周期性地收集和/或分派数据的指示。触发开启设置可以指示响应于数据模型
751和/或远程站点616的特定值变化(变化预定义量)和/或响应于用户交互或命令(例如,经由web界面的用户交互,例如对数据的请求)向最终服务收集、分派信息和/或提供信息。
[0671] 序列708可以包括定时器执行选项和触发开启选项。例如,序列708可以收集温度数据,并将所述温度数据提供给显示温度数据趋势的温度趋势服务。定时器执行选项可以指示在其处针对序列708收集温度值的一段时间,而触发设置可以指示用户是否经由界面发起A3S平台714立即从远程站点616收集温度值的请求。
[0672] 在一些实施例中,定时器执行选项和/或触发开启选项指示何时执行内核706。例如,内核706可以是用于基于远程站点616的多个区域的环境温度来确定适当的温度设定值的内核。A3S平台714可以基于定时器执行选项,经由序列元素1799每小时执行一次温度设定值确定内核。然而,如果远程站点616的区域之一的温度升高或降低预定义量,则触发开启选项可以指示内核应立即运行。
[0673] 基于由A3S平台714基于接收到的上下文704实施的数据模型751,A3S平台714可以被配置用于基于序列708针对数据模型751来运行各种内核。基于序列708,A3S平台714可以被配置用于从远程站点616收集输入数据、将控制数据(例如,内核执行的结果)分派到远程站点616、并且以其他方式与远程站点616进行连接。基于序列708,A3S平台714可以被配置用于将输入数据存储在数据模型751中、检测触发数据(例如,定时器、数据点状态变化等)、并基于触发数据执行内核。内核执行的结果可以存储在数据模型751中和/或分派到远程站点616,以控制远程站点616的建筑物设备。
[0674] 现在参照图17B,根据示例性实施例,示出了来自图16的A3S平台714框图的定序器1612的框图。图17B提供了关于图17A的系统1700A的更多细节。操作定序器1612可以被配置用于执行过程(如参照图17B和图17C描述的过程1700C)。过程1700C可以包括诸如配置、执行、存储、点收集、点分派以及用户交互等步骤。图17B是展示了系统1700B的组件可以被配置用于执行定序器1754以及高级操作过程的过程1700C的框图。网关1604可以被配置用于在任何时间停止所述过程。如果所述过程崩溃,则A3S平台714可以复制(例如,服务结构可以复制)另一定序器1612。
[0675] 具体参照图17C,过程1700C以配置步骤1702开始,外部系统基于CML 710以及包含站点映射、分析和/或系统/网络配置细节(例如,序列708)的配置对象来供应数据模型(例如,上下文704)。然后,使用此信息,A3S平台714初始化负责管理由唯一ID指定的设计序列708的新代理(即,定序器1612)。
[0676] 在步骤1704中,执行线程1756然后拾取包1703(包括序列708的包1703),并根据指示运转,即在指定时间运行作业并与其可靠存储设备接口连接。当内核执行时,所述过程遵循设定程序。序列708可以确定何时应该收集数据以及何时应该运行内核706。序列708可以基于包1703。序列708可以是指示内核的执行顺序的CML序列图对象。
[0677] 在步骤1706中,执行线程1756调用指定的收集器-分派器619(例如,与已经为其实例化序列708的站点相关联的收集器-分派器)以收集数据。收集器-分派器619可以是在站点处本地运行的服务,所述服务可以从站点的设备接收输入数据并且可以向设备提供输出。响应于接收到收集数据的命令,收集器-分派器619然后通过在站点处实施的本地协议连接到站点并收集必要的输入数据。一旦收集到所述必要的输入数据,收集器-分派器619将所述数据返回到执行线程1756。
[0678] 在步骤1708中,一旦接收到所述数据,执行线程1756就更新可靠存储(即,数据模型799)。可以将可靠存储自动地复制到许多节点。进一步地,响应于接收到所述数据,执行线程1756可以触发网关向可以监测存储的外部系统发送更新通知。
[0679] 在步骤1710中,一旦所述数据被更新,执行线程1756使用由内核平衡器(例如,内核平衡器788)管理的基础结构来执行所请求的内核。如果内核执行进行实时控制,则所述执行线程接收内核执行的优先级。一旦作业完成,数据模型799就基于作业的结果获取另一更新(步骤1712),并且然后将相应的分派发送给收集器-分派器619和数据端点1766(步骤1714)。
[0680] 然后,过程1700C以其被配置用于重复的频率进行重复(例如,如序列708所指定的)。除了在时钟上运行内核之外,收集器-分派器619可以触发内核或者内核可以通过外部系统的请求进行运行。例如,序列708可以使执行线程1756基于数据端点1766的状态变化来触发内核执行,从而使执行线程1756在内核工作器1610上执行一个或多个控制算法(例如,内核706)。在本文所描述的各种实施例中,执行线程1756可以遵循与过程1700C相同和/或类似的过程。
[0681] 诸如RDS应用712等外部系统可以直接互链到定序器1754,并使用信号R保持与站点相关的客户端最新的信息。例如,RDS应用712可以访问数据模型799的数据并且经由用户界面将数据模型799的数据提供给用户。RDS应用712可以被配置用于访问数据模型的存储(数据模型799),并修改数据模型799的任何实时运行配置参数。
[0682] 服务结构向定序器1612提供获取站点工程师信任所需的可靠性。如果定序器1612由于任何原因无法执行或者其运行的服务器失去连接或功率,则使用服务结构的A3S平台714将其执行重新路由到新节点并完成作业而不会中断。
[0683] web界面
[0684] 现在参照图18,根据示例性实施例,示出了用于A3S平台714平台的Web界面1800。A3S平台714可以包括仪表板,所述仪表板允许用户管理所述仪表板如何执行其工作并允许对A3S平台714的状态进行监测。图18所示出的Web界面包括内核作业管理器,所述内核作业管理器指示跨多个集群的各种作业的状态。除了对集群的资源利用之外,集群的计算细节还包括在界面1800中。在一些实施例中,RDS应用712可以被配置用于管理A3S平台714的序列功能。在一些实施例中,RDS应用712和A3S平台714两者在服务结构之外被服务。
[0685] 概念和范围的证明
[0686] 在概念和范围的证明中,与CML结合的服务结构的卓越性能给出了有希望的结果。与执行时间相比,远程发送本地请求的时间可能非常小。与算法本身的15秒执行相比,所述时间处于高毫秒范围内。在此范围证明中,并行测试案例注册了500个内核作业。A3S平台
714在预期内做出响应,并在具有超过130多个内核和数百GB的RAM的9个台式计算机集群上执行500次运行。根据此证据,A3S平台714有助于高度并行化应用,因为其将1000个引擎(或者甚至100万个引擎)的问题转换为具有足够硬件能力的问题。万一某个节点发生故障,如果故障自身呈现,则Web服务可以进行复制。
[0687] 建议的部署方案
[0688] 服务结构可以部署在场所内、云中或托管云中。在许多公司内,存在关于在云中部署算法执行的成本的担忧。A3S平台714通过稳健且创新的技术为此问题提供了解决方案。
[0689] 现在参照图19,根据示例性实施例,示出了在多个机器之间拆分A3S节点的框图1900。图19中捕获的思想示出了A3S平台714可以在甚至较远的机器之间进行拆分。利用这一点,允许分布式处理技术,所述分布式处理技术可以节省数千美元的云成本,同时保持对错误的完美稳健性。云中到服务结构的A3S节点被标记为高成本,本地的场所内节点被标记为低成本。服务结构可以将请求向下转发到场所内集群以进行执行。如果这些执行暂停或变得不可靠,则A3S云实例可以拾取请求并且针对溢价本身完成。
[0690] 这意味着建筑物中的任何机器可以补充云操作并显著地降低成本,并且几乎不需要维护(如果它们破坏了服务结构,则将忽略它们)。这些机器可以扩展A3S集群,并且可以在建筑物内(或任何期望的地方)运行,并且可以由通过服务结构应用管理Azure的同一组来管理。
[0691] 本文所描述的系统和方法提供了一种通用平台,所述通用平台可以通过创建几乎不需要注意的架构来显著缩短上市时间、提高质量并使算法标准化。此外,本文所描述的系统和方法使得能够将概念从算法开发人员快速部署到协作团队。这些系统和方法还通过提供A3S平台714内托管的自动化测试环境简化了在线和离线测试算法的能力。总体而言,在高级开发内,此架构完全解决了在任何环境下使用任何数据执行任何算法并以可运行数十万次并行执行的规模进行其的问题。
[0692] 如果主集群(例如,Azure中的集群)确定所请求的运行为较低优先级,并且执行花费较长时间,则所述集群将决定将其发送到数据中心集群进行计算,即使此集群可能会可能更不可靠。之所以做出此决定,是因为每个集群都有一个价格标签,主集群可能希望节省自己的空间来进行高优先级的工作,以防止主集群在数据中心集群理想情况下空闲或接近空闲时必须扩展并收取溢价,因为作业的请求者可能拥有数据中心的硬件。总体而言,这种将集群接合在一起并最佳地决定将作业发送到何处以降低成本的能力是可取得专利的内容。
[0693] 混合集群优化
[0694] 总体上参照图19,根据示例性实施例,示出了包括在云计算系统与场所内集群之间拆分的各个节点的系统1900。在一些实施例中,本文所描述的A3S平台714可以执行作业优化以通过使用各个节点执行作业优化来最小化计算成本。节点可以是服务结构集群。这些服务结构集群可以是计算资源池,例如一个或多个数据中心、多个台式计算机等。可以在云(例如,Microsoft Azure)中、建筑物内部(例如,场所内)或任何其他数据中心、托管云或云计算服务器中创建服务结构集群。
[0695] 在一些实施例中,A3S节点可以在建筑物内的本地系统(即,场所内系统)上或在云服务器(例如,经由Microsoft Azure的云计算)上运行。由于使用基于云的A3S节点执行计算作业可能会花费特定的金额,因此作业优化可以利用本地场所内A3S节点和基于云的A3S节点来最小化计算成本并维持计算可靠性。通过经由基于云的A3S节点以及低成本场所内A3S节点来补充基于云的计算,可以降低计算成本。
[0696] 混合集群优化的思想依赖于相互连结的集群的可靠性和可用性的基础。考虑到使A3S集群部署在Azure中,并且在数据中心中部署一个集群。在这种情境下,Azure部署对于已经直接给出的任何通信量是“主”。
[0697] 现在参照图20,根据示例性实施例,示出了可以利用混合集群优化的系统600A。系统600A被示为包括云服务器602和建筑物10。云服务器602可以是诸如Microsoft Azure的云服务器。云服务器602和建筑物10两者被示出为包括一个或多个A3S节点604和606。云服务器602和建筑物10中可能有多个A3S节点,为便于说明,以单数形式引用了A3S节点604和A3S节点606。
[0698] A3S节点604和A3S节点606可以是Microsoft服务结构集群(即Microsoft服务结构利用的池化计算资源)。A3S节点604可以是部署在云服务器(例如Microsoft Azure)中的A3S节点,而A3S节点606可以是部署在建筑物10中的台式计算机或本地建筑物服务器中的A3S节点。A3S节点604和A3S节点606两者虽然被部署在不同的位置,但这些节点可以被配置用于执行相同或类似的功能。A3S节点604和A3S节点606可以在一个或多个处理电路、服务器或其他计算装置上执行。可以被配置用于实施A3S节点604和A3S节点606的处理电路、处理器、存储器和数据存储设备的示例包括在图4中(例如,处理电路404、处理器406和存储器408)。
[0699] A3S节点604被示出为经由网络601与A3S节点606进行通信。在各个实施例中,A3S节点604和A3S节点606可以传送计算作业、计算作业的结果、计算作业进度、状态信息和/或任何其他数据或指示。网络601可以是任何类型的网络,诸如互联网(例如,TCP/IP)、以太网、LAN、WAN、Wi-Fi、Zigbee、BACnet、3G、LTE、Li-Fi和/或其任何组合。网络601可以包括一个或多个路由器、调制解调器、网络交换机、蜂窝塔、蜂窝中继器和/或实施通信网络所需的任何其他硬件。
[0700] A3S节点604被示出为包括优化器608和故障管理器610。优化器608可以被配置用于接收计算作业并执行优化以判定A3S节点604是否应执行计算作业本身或将计算作业发送至A3S节点606。当由优化器608分配的作业没有被A3S节点604和A3S节点606中的任何一个完成时,故障管理器610可以被配置用于处理在A3S节点604和A3S节点606上发生的任何故障。A3S节点606的优化器612和故障管理器614可以与优化器608和故障管理器610相同和/或类似。
[0701] 优化器608可以被配置用于接收计算作业。在一些实施例中,计算作业是从外部用户接收的(例如,生成结果的请求),或者是A3S节点604正在执行的过程(例如,基于所收集的数据自动生成数据分析)的结果。在一些实施例中,A3S节点604从规划工具618接收计算作业。规划工具618可以是云服务器602的允许用户经由用户装置(例如,用户装置617)与系统600A进行接口连接的组件。规划工具618可以是用户可以经由web地址导航至的web应用。在各种实施例中,规划工具618与在用户装置617上运行的应用进行通信。
[0702] 用户装置617可以是用户可以操作的任何计算装置。在一些实施例中,用户装置617是膝上型计算机、台式计算机、智能电话、平板电脑和/或任何其他计算装置。用户装置
617可以被配置用于经由网络601与规划工具618进行通信。在一些实施例中,用户可以经由用户装置617和规划工具618来请求计算作业。在一些实施例中,经由规划工具618将计算作业提供给A3S节点604。在一些实施例中,用户装置617请求的作业可以是对与建筑物10和/或建筑物10的HVAC设备相关联的数据执行计算的请求。例如,用户可以请求数月或数年内的建筑物10的日均电费。在一些实施例中,所述请求可以是确定建筑物10的特定区域在特定日期的平均温度的请求。
[0703] 优化器608可以被配置用于生成成本函数。在于2017年6月7日提交的美国专利申请号15/616,616中提供了成本函数的示例,所述美国专利申请的全部内容通过引用并入本文。在一些实施例中,优化器608基于生成取决于系统600A的每个A3S节点的预测计算时间、计算作业的优先级以及完成系统600A的A3S节点中的每一个的计算作业的成功概率来执行计算作业的价格的成本函数。在一些实施例中,A3S节点604存储系统600A的每个A3S节点的处理度量。在这一方面,优化器608可以确定系统600A的每个A3S节点执行计算作业所花费的时间长度。在各种实施例中,优化器608可以记录其已经分配了作业的A3S节点的处理时间,以便执行未来优化。在各种实施例中,优化器608可以在用于特定作业的预测计算时间内从系统600A的每个A3S节点请求信息。在执行其工作时,所述信息具有外部可用集群的列表,并且可以查询考虑在成本函数中的其当前负载。
[0704] 由优化器608生成的成本函数可以指示由云服务器602中的A3S节点执行的计算作业比在场所内(即,建筑物10中)的A3S节点中执行计算作业的成本更高。在一些实施例中,优化器608经由成本函数确定执行计算作业本身。在这一方面,如果优化器608在优化器608确定其需要来自另一个计算作业(例如,由A3S节点604和/或A3S节点606执行的作业)的数据结果的任何时间确定其正在执行计算作业,则608可以被配置用于暂停计算作业并等待。算法可能具有必须以其解决的特定顺序,并且可以相互暂停以完成执行。
[0705] 故障管理器610可以被配置用于判定优化器608已经发送给A3S节点606的作业是否已经完成,并且可以检索和/或接收关于计算作业的进度。优化器608可以监测A3S节点606的进度,以判定所述A3S节点是否正在执行计算作业并且是否没有崩溃、变成挂断和/或变得不可靠。响应于确定A3S节点606已崩溃,优化器608可以完成计算作业本身。
[0706] 由优化器608生成的成本函数可以是一种目标函数,所述目标函数可以被最小化或被最大化以选择A3S节点之一(例如,A3S节点604和/或A3S节点606)来执行计算作业。所述目标函数可以由优化器608基于控制优化的各种约束来优化。以下示出了可以由优化器608实施的示例性目标函数:
[0707]
[0708] 其中,J(x)被定义为如下:
[0709]
[0710] 其中,节点i是指示是否已选择特定节点来执行计算作业的二进制值(例如,一或零),并且节点成本i指示用于由每个节点执行计算作业的成本。参数节点成本i可以是使用节点i以及将使用该节点的时间长度的函数。然而,在一些实施例中,节点成本i可以是固定值或者可以与执行计算作业所需的多个处理器周期相关。一个示例可以是:
[0711] 节点成本i=作业时间i×节点速率i
[0712] 如所示出的,可以基于指示用于由节点i执行计算作业的所需时间(例如,10秒、40ms等)的参数作业时间i和节点i的速率节点速率i(例如,$/min)来确定节点成本i。参数作业时间i可以是可由节点i获得的计算资源和计算作业的大小的函数。
[0713] 在默认情况下,目标函数当被最小化时确定执行所述计算作业的最大成本效益。然而,这种优化可以利用约束进行优化,所述约束不是严格选择最便宜的节点,而是选择最佳节点(计算作业的最佳价格节点)。
[0714] 优化约束可以是等式约束或不等式约束。例如,等式约束可以是:
[0715] 节点i+节点i-1+节点i-2…+节点0=1
[0716] 由于节点i中的每一个可以是二进制值,因此此约束可以确保通过优化仅选择节点中的一个。例如,当优化目标函数时,以上示出的约束必须保持为真,即,为使优化有效,可能只选择节点中的一个来执行优化。
[0717] 此外,约束可以是不等式约束。例如,不等式约束可以是:
[0718]
[0719] 在以上不等式约束中,所述约束指示特定节点i的可用资源必须大于或等于特定需求。例如,所需的可用资源可以指示特定数量的资源必须由节点i获得,以便选择此节点来执行计算作业。参数所需的可用资源可以指示节点对执行计算作业的质量的需求。参数所需的可用资源和 的值可以以总可用存储器(MB、GB、TB)、总未用存储器、处理速度单位(MHz、GHz、THz)、每秒十亿个浮点运算(gigaflop)等为单位或以其他方式为函数。
[0720] 进一步的不等式约束可以是允许优化目标函数以选择最适合计算作业的优先级的节点的约束。这种不等式约束可以是:
[0721]
[0722] 节点i的特定成功概率可以指示节点i将完成计算作业并且没有崩溃或故障的概率有多大。例如,可以基于节点i的过去性能来确定成功概率,即,优化器608可以记录发送到特定节点i的作业总数以及故障和完成的作业的数量,并使用记录的信息来确定概率和/或概率分布。该作业关键度水平可以是计算作业有多关键的水平指示。所述水平可以是关于离散标度、低优先级、中优先级、高优先级(例如1、2或3)。为了与概率进行比较,可以将作业关键度水平经由函数或其他映射机构映射到可与成功概率比较的概率值上。例如,f(作业关键度水平)可以将作业关键度水平映射到可与成功概率比较的值上。函数f(·)可以是函数、查找表或其他映射机构。作为示例,如果作业关键度水平为“高”,则f1(·)可以将指示“高”映射到第一预定义概率值(例如90%)上。
[0723] 另一个不等式约束可能指示每个节点i将花费多长时间来执行计算作业和计算作业的关键度水平。可能需要快速执行“高”关键度作业,而可能不需要快速执行“低”关键度作业。用于执行计算作业的时间长度的不等式约束可以是:
[0724]
[0725] 所需时间可以是指示执行计算作业所需时间长度的值。不等式约束包括参数和先前描述的作业关键度水平。参数 可以指示其将采用节点i来执行计算作业的时间长度。在一些实施例中, 是节点i的多个参数的函数。
的示例计算可以是:
[0726]
[0727] 其中,作业大小指示计算作业的大小。计算作业的大小作业大小可以取决于计算数量、计算复杂度等。
[0728] 现在参照图21,根据示例性实施例,示出了被示出为对计算作业的分布进行优化的过程600B。A3S节点604、A3S节点606和/或本文中描述的任何其他计算装置可以被配置用于执行过程600B。在过程600B中,将A3S节点604描述为第一节点,而将A3S节点606描述为第二节点。然而,应当理解,A3S节点604和A3S节点606的角色可以互换。进一步地,为基于云和/或场所内的任何数量的A3S节点可以被配置用于执行过程600A。
[0729] 在步骤620中,第一节点(A3S节点604)可以接收计算作业。在一些实施例中,A3S节点604可以经由当前在A3S节点604上运行的计算过程、经由规划工具618和/或用户502、和/或用于接收计算机作业的任何其他方法来接收计算作业。在步骤622中,第一节点(A3S节点604)的优化器608可以被配置用于生成用于所接收的计算作业的成本函数。在一些实施例中,由优化器608生成的成本函数基于针对计算作业指定的优先级、系统600A的每个A3S节点的计算时间以及系统600A的每个A3S节点的成功概率。
[0730] 在步骤624中,第一节点(A3S节点604)可以经由优化器608选择第二节点以通过优化成本函数来执行计算作业。在一些实施例中,优化器608可以标识对于执行计算作业而言可能是最佳的节点。在一些实施例中,最佳A3S节点是第一A3S节点(A3S节点604)。在各种实施例中,第二A3S节点是A3S节点604(场所内A3S节点)。在步骤626中,基于所选节点,A3S节点604可以将计算作业发送到第二节点(A3S节点606)。
[0731] 在步骤628中,故障管理器610可以确定计算作业的状态。故障管理器610可以周期性地从A3S节点606接收标识计算作业的状态的状态更新。在一些实施例中,故障管理器610周期性地向A3S节点606发送用于进度更新的请求。在一些实施例中,进度更新指示A3S节点606已崩溃、是不可靠的或以其他方式将不能完成计算作业。进一步地,如果预定义量的时间过去而没有接收到计算作业的结果,或者否则自从接收到进度更新以来,则故障管理器
610可以确定A3S节点606已经崩溃、离线或以其他方式无法完成计算作业。
[0732] 在步骤628中,响应于确定A3S节点606将不执行计算作业,故障管理器610可以从A3S节点606去除计算作业(步骤630)。在一些实施例中,去除计算作业包括经由A3S节点604执行计算作业。图21展示了返回到步骤622并生成第二成本函数。在一些实施例中,第二成本函数可能不考虑A3S节点606,因为A3S节点606无法完成计算作业。
[0733] 响应于确定A3S节点604没有发生故障、崩溃或否则不会完成计算作业,过程600B可以前进到步骤632。在步骤632中,A3S节点606可以生成一个或多个计算作业的结果。在步骤634中,A3S节点604可以从A3S节点606接收一个或多个结果。基于所述结果,A3S节点606可以控制各种建筑物设备以控制建筑的环境条件。例如,如果由A3S节点604完成的确定结果是温度设定值,则A3S节点606(或另一A3S节点)可以控制建筑物设备以将建筑物温度控制到设定值。
[0734] 混合集群灾难恢复
[0735] 如参照图20至图21所描述的混合集群优化负责节省集群的资金并在许多不同集群中的节点之间执行负载平衡。如参照图22至图23所描述的混合集群灾难恢复专注于介绍如何可以防止影响客户的各种集群内的灾难。
[0736] 考虑到基于Azure的集群和两个不同的数据中心的情境,客户可以请求用于执行算法的基于Azure的集群,然后所述集群可以最佳地被分派到第一数据中心。在算法执行期间,第一数据中心可以将有关执行的进度更新发送到Azure集群。无论出于何种原因,如果这些消息的中断超出预期(例如,由算法本身和预测算法行为的模型定义的)。Azure中的主要集群可以重新确定执行所述算法的最佳位置。所述主要集群可以在其自己的集群中或第二个数据中心中最佳地重新定位算法执行。进一步地,如果Azure数据中心已经受损(例如,太多节点已经离线),则负载平衡器(或其后备副本之一)将向邻近集群分派运行,以确保仍能完成工作。
[0737] 混合集群灾难恢复可以包括用于从A3S节点崩溃中进行恢复的系统和方法。混合集群灾难恢复可以与参照图21至图22描述的混合集群优化技术一起使用。通过将优化技术与灾难恢复技术相结合,不仅可以实现优化和成本节省,而且可以实施冗余以防止计算作业永不结束(即,如果执行计算作业的A3S节点崩溃)。
[0738] 现在参照图22,根据示例性实施例,示出了用于执行灾难恢复的系统600B。系统600B的各种组件与如参照图20描述的系统600A的组件相同和/或类似。在图22中,建筑物11被示出为包括A3S节点640。建筑物11可以与建筑物10类似。在各种实施例中,A3S节点640位于建筑物10中而不是建筑物11中。A3S节点640可以是与A3S节点606相同和/或类似的场所内A3S节点。A3S节点640被示出为包括优化器642和故障管理器644。优化器642可以与优化器608和优化器612相同和/或类似。进一步地,故障管理器644可以与故障管理器610和故障管理器614相同和/或类似。A3S节点604被示为经由网络601与A3S节点606和A3S节点640进行通信。
[0739] 在一些实施例中,A3S节点604(例如,经由用户装置617)接收计算作业,并确定将计算作业发送给A3S节点606或A3S节点640。故障管理器610可以被配置用于从优化器608将计算作业发送至其的A3S节点接收关于计算作业的性能的进度更新。在一些实施例中,故障管理器610可以判定其接收的进度消息是否正在被中断(例如,是否正在以较低频率(低于预定义量的频率)发送给故障管理器610)和/或是否根本没有被发送到故障管理器610。
[0740] 作为示例,A3S节点604可以经由优化器608确定将计算作业发送到A3S节点606。A3S节点606可以被配置用于执行计算作业。在A3S节点606执行计算作业时,故障管理器614可以被配置用于将进度更新发送到A3S节点604。进度更新可以是指示计算作业的状态(例如,已完成50%、已完成90%、有待、已完成、未开始等)的消息。在一些实施例中,故障管理器614发送A3S节点606的状态指示,所述状态指示指示A3S节点606是在线、离线、无响应、不能正常运行等。故障管理器610可以接收故障消息。
[0741] 在一些实施例中,如果故障管理器610确定A3S节点606不执行计算作业或花费太长时间来执行计算作业,则故障管理器610可以通过向A3S节点606发送指示作业正在被重新调节的消息来从A3S节点606去除计算作业。故障管理器610可以使优化器608对计算作业执行第二优化。在一些实施例中,基于优化,优化器608可以使A3S节点604执行计算作业或将计算作业发送到A3S节点640以由A3S节点640执行。
[0742] 进一步地,如果A3S节点606正在执行其从A3S节点604接收的计算作业,并且故障管理器614确定构成A3S节点606的各种计算装置已经离线,则故障管理器614可以将计算作业的一部分推送到另一A3S节点。这可以验证计算作业快速完成,而无需经由优化器608重新优化计算作业的分配。例如,故障管理器614可以将计算作业的各个部分(例如,各种计算)推送到A3S节点640、从A3S节点640接收计算作业部分的结果、并且将总完成结果报告给A3S节点604。
[0743] 现在参照图23,根据示例性实施例,示出了使用A3S节点执行灾难恢复的过程600D。A3S节点604、A3S节点606、A3S节点640和本文描述的任何其他计算装置可以被配置用于执行过程600D。在过程600B中,将A3S节点604描述为第一节点,将A3S节点606描述为第二节点,而将A3S节点640描述为第三节点。然而,应当理解,A3S节点604、A3S节点606和A3S节点640的角色是可互换的。进一步地,为基于云和/或场所内的任何数量的A3S节点可以被配置用于执行过程600D。
[0744] 在步骤670中,第一节点A3S(节点604)可以经由用户装置617和/或规划工具618接收计算作业(例如,作业)。在步骤672中,优化器608可以从多个其他A3S节点(例如,A3S节点606和/或A3S节点640)中选择第二节点来执行计算作业。在一些实施例中,优化器608执行图20至图21中描述的优化。在过程600D中,所选节点是A3S节点606,然而,其可以是任何其他A3S节点。在步骤674中,A3S节点604可以将计算作业发送到第二节点(A3S节点606)。
[0745] 基于A3S节点606接收的计算作业,其可以执行所述计算作业。在执行计算作业时,A3S节点606可以将关于计算作业的执行的进度更新发送到A3S节点604,具体是A3S节点604的故障管理器610。在步骤678中,基于从A3S节点606接收到的进度更新,故障管理器610可以判定A3S节点606是否发生故障或是否仍在可接受地执行计算作业。如果A3S节点606没有发生故障,则过程600D可以返回到步骤676。如果A3S节点606已经发生故障,则过程600D可以移动到步骤680。
[0746] 在步骤680中,优化器608可以从故障管理器610接收A3S节点604在步骤674中先前发送到A3S节点606的计算作业将不会由A3S节点606完成的指示。在步骤680,优化器608可以选择第二A3S节点来执行计算作业。在一些实施例中,优化器608执行与步骤672中执行的优化类似的优化。然而,所述优化可能不考虑A3S节点606。在步骤680,第三节点被选择用于执行计算作业。在过程600D中,第三A3S节点是A3S节点640。然而,优化可以选择任何其他A3S节点。
[0747] 在步骤682中,A3S节点604可以将计算作业发送到所选的第三节点(A3S节点640)。A3S节点640可以执行计算作业并且将进度更新发送到故障管理器610可以监测的A3S节点
640(例如,步骤676至步骤682)。
[0748] 在步骤684中,故障管理器644可以监测构成A3S节点640并且正在执行计算作业的计算装置的状态。响应于确定预定义数量的计算装置已经离线(例如,多于预定义量),在过程600D中,故障管理器644可以将计算作业的特定运行(例如,特定计算)发送到其他A3S节点(A3S节点604)。A3S节点640可以接收计算作业的运行,并且将所述运行的完成结果发送到A3S节点640(步骤686)。一旦A3S节点640完成作业(所述作业可以基于A3S节点640已经完成本身的或A3S节点604已经帮助完成的计算作业),则A3S节点640可以将计算作业的结果发送到A3S节点604(最初接收优于计算作业的请求的A3S节点)(步骤688)。
[0749] 并行关系引擎
[0750] 给定关系数据模型(例如,数据模型799),计算引擎可以将相关数据模型的特性之间的分析关系分解成距原始数据的距离。引擎可以进一步管理关系数据模型中的递归。计算引擎可以使用负载平衡器来计算距原始数据的给定距离处的所有关系,并且通过桶进行顺序地处理,直到已计算出所有请求的所述关系为止。引擎可以通过解决CML 710的层次结构内的关系来显著增大处理器的吞吐量。这可以使得采用CML和并行执行引擎(例如,包括在A3S平台714中的执行引擎)的系统能够在无法获得测量的情况下为报告和输入数据提供自定义分析。此解决方案基于请求什么数据在最高水平下查看问题,并尽可能快地通过关系运行。
[0751] 并行关系引擎可以接受模型,所述模型由特性之间的图形关系组成,并将所述图形分解为可并行执行的顺序。然后,并行关系引擎可以按照特性到原始根特性的距离的顺序并行地对图的执行进行负载平衡。如果前进步骤已经满足了其所有的依赖关系,则并行线程可以按照执行顺序向前移动。执行映射将基于原始数据特性存在的位置而有显著变化。同样,并行关系引擎可能遇到递归。在递归的情况下,可以在执行周期结束时执行基于递归特性的计算,以确保存在完整的数据以供使用。如果检测到循环(例如,无限循环),则递归可能使计算引擎返回空结果。
[0752] 现在参照图24,根据示例性实施例,示出了用于并行地执行计算的并行关系引擎2402的框图。并行关系引擎2402被示出在图24中。换言之,图24示出了并行关系引擎2402。
这从图24明显看出,其中描述了并行关系引擎2402。在查看图24时,本领域普通技术人员将看到并行关系引擎2402以及其他组件。如本文所使用的,参考符号2402指定图24中示出的并行关系引擎。并行关系引擎2402可以是A3S平台714的可以被部署在例如参照图20描述的A3S节点604上的组件。并行关系引擎2402可以在一个或多个处理电路、一个或多个处理器上运行,和/或存储在一个或多个存储器装置(例如,如参照图4描述的处理电路404、处理器
406和/或存储器408中)中。
[0753] 并行关系引擎2402被示为接收计算作业2404。计算作业2404可以是执行计算的请求。在一些实施例中,并行关系引擎2402从并行关系引擎2402在其上实施的平台的另一组件中接收请求。在各种实施例中,可以从用户(例如,从如参照图20描述的规划工具618和/或用户装置617)接收计算作业。计算作业2404可以包括计算特定特性(例如,数据点、变量值等)的请求。在图24中,计算作业2404被示出为包括计算特性0、1、6和7的请求。然而,计算作业2404可以包括计算任何特性或任何数量的特性的请求。
[0754] 在图24中示出了特性模型2408。特性模型2408包括各种特性之间的关系映射,所述各种特性包括请求通过计算作业2404进行计算的特性。在各种实施例中,特性模型2408是基于参照图8描述的CML类结构的类结构的一部分和/或其他部分。特性模型2408可以是和/或可以类似于参照图7A、图7B和图8描述的数据模型799。特性模型2408可以由包括并行关系引擎2402的平台存储、可以由并行关系引擎2402存储、和/或可以以他方式由运行并行关系引擎2402的平台从存储位置中检索、接收或提取。
[0755] 特性模型2408被示出为包括特性0至13。特性模型2408可以包括任何数量的特性。图24的特性模型2408展示了特性之间的各种依赖关系。例如,特性4被示出为依赖于特性6和7,而特性3被示出为依赖于特性4。特性中的一些(即,特性5、特性7、特性9和特性10)被加粗。这些加粗的特性表示原始特性。原始特性可以是尚未被处理以供使用的数据退出到何处的特性。在一些实施例中,原始数据是用户手动输入的数据,传感器或致动器已收集的数据或未处理的任何其他数据。
[0756] 并行关系引擎2402被示出为接收计算作业2404和特性模型2408。执行映射生成器2406可以基于特性模型2408生成执行映射2410。执行映射生成器2406可以是存储和/或加载特性模型2408,以在生成计算作业2404的结果时使用。在一些实施例中,执行映射生成器
2406生成每个特性到原始特性的总距离。例如,考虑到特性1,特性1在特性3与原始特性(即,原始特性9)之间具有四个特性的最大依赖关系。出于此原因,将特性1放置在执行映射
2410的槽六中。考虑到特性6,在特性6与原始特性9之间存在一个特性(特性8)。出于此原因,特性6放置在执行映射2410的第三槽中。由于原始特性5、9、7和10包括数据,因此将这些原始特性放置在执行映射2410的槽一中。执行映射生成器2406可以将执行映射2410提供给映射执行器2412。
[0757] 映射执行器2412可以接收执行映射2410,并基于执行映射2410生成计算作业2404的结果。映射执行器2412可以并行地对执行映射2410的每个槽执行计算。例如,在槽1中,存在原始数据点5、10、9和7。此步骤可以是简单地检索和/或加载原始数据点5、10、9和7。然而,由于原始特性5、19、9和7之间没有依赖关系,因此映射执行器2412可以并行地检索数据。此原始数据可以被存储在原始特性数据2414中。在槽2中,由于特性2、特性13和特性8不依赖于彼此,因此映射执行器2412可以并行地确定特性2、特性13和特性8。特性2可以由映射执行器2412基于特性5确定,特性13可以基于特性10确定,并且特性8可以基于原始特性9确定。映射执行器2412可以继续此执行,直到确定了执行映射2410的所有特性为止,或者直到确定了计算作业2404中请求的特性为止。映射执行器2412可以将执行执行映射2410的结果提供给请求计算作业2404的任何组件或装置。
[0758] 只要不存在交叉依赖关系,就可以同时进行包括在执行映射2410的各种“线程”(例如,从特性5到2的线程、从特性10到特性11的线程等)。如果一个线程依赖于第二线程,则每当需要第二线程中确定的特性来执行第一线程时,第一线程的执行可能就会暂停。
[0759] 特性模型2408中的递归可能在特性模型2408的特性之一直接或间接依赖于其本身时或者在重复执行特定确定时发生。响应于确定特性模型2408包括递归,执行映射生成器2406可以将涉及递归的特性放置在执行映射2410的末尾,使得映射执行器2412在确定不涉及递归的所有特性之后尝试确定递归特性。在一些实施例中,映射执行器2412可以不为涉及递归的任何特性返回任何值(例如,空值)。
[0760] 现在参照图25,根据示例性实施例,示出了用于确定计算作业(例如,计算作业2404)的结果的过程2500。在步骤2502中,执行映射生成器2406可以接收特性模型2408,而映射执行器2412可以接收计算作业2404。在一些实施例中,计算作业2404包括计算某些特性的请求。在这一方面,执行映射生成器2406可以检索、接收、生成和/或使用包括在计算作业2404中指示的特性的特性模型。
[0761] 在步骤2504和2508中,执行映射生成器2406可以被配置用于基于特性模型2408生成执行映射2410。在一些实施例中,执行映射生成器2406可以确定从每个特性到特性模型2408中的最高原始特性的距离,并使用从每个特性到特性模型2408中的最高原始特性的距离来组织执行映射2410中的特性。“最高”原始特性是指在特性模型2408中所展示的特性依赖关系的层次结构中的最高原始特性。例如,在图24中,特性4依赖于两个原始特性。特性4依赖于原始特性7。此外,特性4依赖于特性6,而特性6依赖于特性8。特性8进而依赖于原始特性9。对于原始特性7,总的“距离”为二。对于原始特性9,总“距离”为四。由于原始特性9是相对于特性4的“最远”或“最高”原始特性,因此执行映射生成器2406将确定特性4与原始特性9之间的依赖关系数量(即四个),以确定要将特性4的执行放置在执行映射2410中的位置。
[0762] 在步骤2512中,映射执行器2412可以确定请求在计算作业2404中确定的特性。在一些实施例中,基于执行映射2410和执行应映射2410中的映射执行器2412可以从原始特性数据2414中检索的任何原始特性,可以确定所请求的特性。映射执行器2412可以基于每个特性所位于的槽来并行地确定特性。例如,可以同时确定特性12和6,而可以同时确定特性11和4。只要在线程之间不存在交叉依赖关系,就可以同时进行包括在执行映射2410的各种“线程”(例如,从特性5到2的线程、从特性10到特性11的线程等)。如果一个线程依赖于第二线程,则每当需要第二线程中确定的特性来执行对第一线程中的特性的确定时,第一线程的执行可能就会暂停。
[0763] 在一些实施例中,针对特性确定的值用于控制建筑物的建筑物设备。例如,一个特性可以是温度设定值,然后所述温度设定值可以用于使建筑物设备将建筑物的温度控制到特定温度。另一个特性可以是冷却器的运行时设置,所述运行时设置使冷却器在特定时间段期间运行。
[0764] 步骤2506、2510和2514处理特性模型2408中的递归。这些步骤在图25中经由虚线框指示。仅当特性模型2408中存在递归时,这些步骤才可以由并行关系引擎2402执行。在步骤2506中,执行映射生成器2406可以判定特性模型2408中是否存在任何递归。在步骤2510中,可以将所标识的递归点中的任一个放置在执行映射2410的末尾处(即,最后一个执行槽中)。在步骤2514中,在映射执行器2412确定了所有其他特性之后,映射执行器2412可以确定涉及递归的特性。在一些实施例中,如果递归是无限的,则映射执行器2412可以返回空值或无值。如果递归是有限的(例如,少于预定义数量的递归),则映射执行器2412可以基于有限数量的迭代来确定涉及递归的特性。
[0765] 实时存储器技术
[0766] 现在参照图26A,根据示例性实施例,示出了框图2600A,所述框图展示了可以由本文讨论的系统和方法实施的实时存储器技术。实时存储器技术可以包括以非串行化和开放类形式存储关系,但是将数据保留在经压缩和经串行化的框中。这进一步参照通过参照图8描述的CML 710的类结构进行描述。
[0767] C#语言可以作为展示实时存储器技术的示例。例如,称为“Foo”的类可以具有十个特性。可以基于Foo类创建Foo对象,并且可以访问Foo对象的特性之一。正常行为可能是所述特性将放置在Foo特性以之为目标的指针位置处的任何对象。在数据模型(例如,数据模型799)中,类的特性都指向字节数组,在调用该属性时,将字节数组解压缩并解串行化为该属性真正指向的对象,并让用户与其进行交互。当用户完成对象的处理后,所有更新都将返回框装形式,并且对象将被串行化和压缩。当Foo类进行输送时,所需要做的是串行化关系数据,因此输送转换几乎是即时发生的。
[0768] 在图26A中,示出了数据模型2616。数据模型2616可以是用于建筑物的数据模型,并且可以经由CML 710(例如,数据模型799)来实施。在一些实施例中,数据模型2616指示建筑物、校园、设施、学校的所有环境和设备信息。例如,数据模型可以指示针对建筑物的各个区域记录的各个温度点。数据模型可以进一步指示位于建筑物和/或为建筑物服务的设备的类型。数据模型可以标识数据(例如,所记录的温度数据、所记录的气流值等)以及各种实体与数据之间的关系。例如,数据模型可以指示温度值的特定序列与建筑物的特定区域相关联。
[0769] 数据模型2616被示出为包括特性2618。根据一些实施例,数据模型2616包括多个特性2618。特性2618可以是温度数据、气流数据、占用数据、天气条件等。数据模型2616的特性2618可以“指向”经串行化和/或经压缩的数据。例如,一条数据(例如,指针、句柄等)2620可以指示经串行化的数据存储在存储器中的位置。数据模型2616可以包括指示数据模型2616的存储对象2626或其他存储对象的各种指针或句柄。
[0770] 经串行化/经压缩的数据2628可以被串行化和/或在被串行化之后被压缩。串行化数据可以生成去除元数据的值的“盒”。例如,三个温度读数可以分别具有指示温度读数的值、与温度读数相关联的区域、获取读数的温度传感器的类型等信息。仅读数的值可以是相关的,其他元数据可能是多余的。因此,可以在串行化数据时剥离此元数据。各种技术可以用于串行化数据,所述各种技术包括 协议缓冲器技术。然后可以经由任何已知的数据压缩算法来压缩经串行化的数据。压缩经串行化数据可以进一步减少数据的存储器占用面积。
[0771] 存储对象2626可以是包括经串行化/经压缩的数据2628和/或经串行化/经压缩的数据2628所需的任何其他元数据的数据对象。存储对象2626可以用于生成输送对象2622。输送对象2622可以包括可访问数据2624。可访问数据2624可以是经串行化/经压缩的数据
2628的解压缩和/或解串行化版本。在一些实施例中,经串行化/经压缩数据2686是可以用于生成可访问数据2624的字节数组。用于可访问数据2624的适当的元数据可以包括在输送对象2622中。
[0772] 在一些实施例中,响应于对特性2618的请求,可以对经串行化/经压缩的数据2628进行解串行化和/或解压缩以生成可访问数据2624。此可访问数据2624可以在生成建筑物设备的控制命令、向用户显示和/或任何其他计算和/或确定的算法中使用。如果对可访问数据2624进行变化,则可访问数据可被串行化和/或被压缩为经串行化/经压缩的数据2628。
[0773] 现在参照图26B,根据示例性实施例,示出了可以被配置用于对数据模型(例如,数据模型799)的特性数据进行串行化和压缩的实时存储器控制器2602的框图。实时存储器控制器2602可以是A3S平台714的组件,并且可以经由处理电路(处理电路404)、处理器(例如,处理器406)和/或存储器(例如,存储器408)来实施。
[0774] 在图26B中,示出了属性数据2606。属性数据2606可以是作为经由属性类(图8中所示出的属性类)定义的对象的一部分的数据。可以经由串行器/压缩器2608对属性数据2606进行串行化和/或压缩。在一些实施例中,串行化和/或压缩数据可以被串行化为字节数组,并且然后可以被压缩。此经串行化和/或经压缩的数据可以是存储在“盒”(图8中的属性类中所示出的字节数组)中的数据。串行器/压缩机2608可以经由属性数据2606经由协议缓冲(例如, 协议缓冲器技术)进行串行化。在属性数据2606被串行化之后,可以由串行器/压缩器2608对属性数据2606执行任何类型的有损或无损压缩
[0775] 在各种实施例中,实时存储器控制器2602可以将经串行化和/或经压缩形式的属性数据2606加载到存储器装置中,而不是属性数据2606本身。这可以最小化对存储器装置的需求(例如,允许具有较低存储器的存储器装置),并且进一步允许属性数据2606较大。存储器2610可以是计算装置(例如,云计算服务器、台式计算机、数据中心计算机等)的一个或多个存储器装置(例如,RAM、ROM等)。
[0776] 响应于确定用户需要计算、确定或查看属性数据2606,访问器2614可以被配置用于从存储器2610检索所访问的属性数据2606。访问器2614可以被配置用于标识基于数据模型2616请求的所访问的属性数据2606。进一步参照图26A描述了数据模型2616。访问器2614可以导出“键”,所述“键”可以指示需要检索存储在存储器2610中的哪些经串行化的数据以生成属性数据2606。例如,所述键可以指示多个句柄中的哪个句柄查找到所需的经串行化的数据的位置。例如,数据模型2616可以包括各种指针或句柄,所述各种指针或句柄可以用于标识需要检索、解压缩和解串行化的经串行化和/或经压缩的数据。
[0777] 现在参照图26C,根据示例性实施例,示出了用于串行化、压缩、解串行化和解压缩属性数据的过程2600C。A3S平台714和/或本文中描述的任何其他计算装置可以被配置用于实施过程2600C。参照图26A和图26B的组件描述了过程2600C。
[0778] 在步骤2630中,串行器/压缩器2608可以串行化和/或压缩属性数据2606。例如,串行器/压缩器2608可以使用一个或多个串行化协议(例如, 协议缓冲器技术或如由许多编程语言支持的另一对象串行化)来进行串行化。
[0779] 在步骤2632中,访问器2614可以接收对经串行化/经压缩属性数据2612的请求。访问器2614可以基于数据模型2616来标识经串行化/经压缩的属性数据2612。数据模型2616可以包括多个句柄或指针,所述多个句柄和指针标识经串行化的经压缩的属性数据2612的位置(步骤2634)。在步骤2636中,访问器2614可以通过对经串行化/经压缩的属性数据2612进行解压缩和/或解串行化来生成属性数据2606。在一些实施例中,属性数据2606用于控制各种建筑物设备。例如,建筑物管理系统或控制器可以被配置用于使建筑物的建筑物设备基于属性数据2606来控制建筑物的环境特征。属性数据2606可以是用于确立设定值的环境温度数据。在这一方面,可以使用设定值来控制建筑物设备。
[0780] 示例性实施例的配置
[0781] 如各示例性实施例中所示出的系统和方法的构造和安排仅是说明性的。尽管本披露内容中仅详细描述了几个实施例,但是许多修改是可能的(例如,各种元件的大小、尺寸、结构、形状和比例、参数的值、安装安排、材料的使用、颜色、取向等变化)。例如,可以颠倒或以其他方式改变元件的位置,并且可以更改或改变分立元件或位置的性质或数量。因此,所有这类修改旨在被包括在本披露内容的范围之内。可以根据替代实施例对任何过程或方法步骤的顺序或序列进行改变或重新排序。在不脱离本披露内容的范围的情况下,可以在示例性实施例的设计、操作条件和安排方面作出其他替代、修改、改变和省略。
[0782] 本披露设想了用于完成各种操作的方法、系统和任何机器可读介质上的程序产品。可以使用现有计算机处理器或由结合用于此目的或另一目的的适当系统的专用计算机处理器或由硬接线系统来实施本披露的实施例。本披露的范围内的实施例包括程序产品,所述程序产品包括用于承载或具有存储在其上的机器可执行指令或数据结构的机器可读介质。这种机器可读介质可以是可以由通用或专用计算机或具有处理器的其他机器访问的任何可用介质。举例来讲,这类机器可读介质可以包括RAM、ROM、EPROM、EEPROM、CD-ROM或其他光盘存储设备、磁盘存储设备或其他磁存储装置等,或者可以用来以机器可执行指令或数据结构的形式承载或存储期望程序代码并且可以由通用或专用计算机或具有处理器的其他机器访问的任何其他介质。当在网络或另一通信连接(硬接线、无线或者硬接线或无线的组合)上将信息传递或提供至机器时,所述机器适当地将所述连接视为机器可读介质。因此,任何这种连接都被适当地称为机器可读介质。上述内容的组合也包括在机器可读介质的范围内。机器可执行指令包括例如使通用计算机、专用计算机或专用处理机器执行某一功能或一组功能的指令和数据。
[0783] 尽管附图示出了方法步骤的具体顺序,但是步骤的顺序可以不同于所描绘的顺序。还可以同时或部分同时地执行两个或更多个步骤。这种变型将取决于所选软件和硬件系统以及设计者的选择。所有这种变型都处于本披露的范围内。同样,可以用具有基于规则的逻辑和用于实现各个连接步骤、处理步骤、比较步骤和判定步骤的其他逻辑的标准编程技术来实现软件实施方式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈