荆 心,李世豪,成 静,张晓棠
(1.西安工业大学 计算机科学与工程学院,西安 710021;2.西安工业大学 经济管理学院,西安 710021)
随着国家对教育的日益重视,高校的招生规模也随之增长,学生对电、水、气等资源的使用也逐渐增加,资源浪费现象开始不断显现出来。近年来,信息化技术得到飞速发展,很多高校开始使用物联网、智能感知、信息融合等新型技术来全面感知校园的物理环境,并使学校的数字信息与物理信息有机衔接起来,让师生体验舒适、便利、节能的智慧校园服务,推动校园向绿色、健康方向发展[1]。由于智慧校园需要部署大量底层传感器,这些传感器按一定周期以事件形式发送,从而造成了海量数据。因此,数据的高并发性是当前数据处理的严峻问题。同时,这些数据之间的异构及异常,也导致了智慧校园应用在信息处理上面临着诸多难题。另一方面,在面对海量多源数据时,如何从中快速挖掘出有用信息并对这些信息进行融合,实时将来源异构的信息转变成决策或服务需要利用的知识,更成为当今智慧校园面临的一个突出问题[2]。
目前,处理智慧校园海量数据的主要方法包括:物联网[3-4]、大数据[5-6]、情境计算[7-9]和复杂事件处理(Complex Event Processing,CEP)[10-13]等。例如,文献[3]提出了一种基于未来天气条件的多目标快速优化算法,用于校园建筑的改造与规划,该算法在复杂天气事件的处理过程中表现出稳健性和有效性。文献[4]开发了一种能源管理系统(Energy Management System,EMS),并使用光传感器来感知校园亮度,用于台湾大学的照明控制。文献[6]采用卡尔曼滤波法对位于科克理工学院校园内的一台风力机进行了一种简单风速预报,准确预测出校园风力机1 h前的转速。文献[9]提出了一种基于阈值比较的分析方法,以对校园情境信息进行分析与处理,同时对会议室、实验室和教室的用能设备(空调、灯和摄像头等)进行节能控制。此外,有限状态自动机(Finite State Machine,FSM)[14-15]逐渐与CEP结合,并应用于物联网的数据处理方面。例如:文献[14]提出了自适应有限状态机(Self-adaption Finite State Machine,SA-FSM)和抽象有限状态机(Abstract Finite State Machine,A-FSM),实现了基于CEP和MAPE(监视 Monitor、分析 Analysis、规划 Plan和执行 execute)循环的自适应过程,并在六个物联网场景中得到验证。由于目前关于校园信息融合的研究主要针对三种或三种以下影响因素(如:温度、亮度和天气等)进行简单分析,未能充分融合与利用更多的相关信息。因此,本文拟提出一种多维情境信息融合方法以解决智慧校园的数据处理问题,并把FSM作为CEP引擎的核心运行机制,结合情境计算、物联网和大数据技术对校园环境信息进行预处理、分析与融合。
由于物联网数据的异构性、大规模性、多源性、不可靠性和不一致性给智慧校园的情境信息处理带来了巨大难题,情境计算和大数据融合技术的兴起正好为解决此问题提供了有效方法[5,7]。基于此,本文提出了智慧校园多维信息融合总体框架,如图1所示。
图1多维情境信息融合总体框架
Fig.1 The overall framework of multi-dimensional contextual information fusion
系统以资源数据处理层对物联网数据进行分类、排序、清洗和重组,为上层提供准确信息来源;在多维数据融合分析层建立CEP模型,利用FSM进行情境推理与融合,产生设备控制方案(推荐设备状态);由设备控制服务层根据自动控制方案向校园应用提供主动情境服务[8]。
本层在与底层数据进行交互的过程中,需要对数据的异构及异常问题进行预处理,以起到为上层提供准确数据来源的基础性作用。为获取到图书馆等大型空间真实情境中的动态数据,本文采用了在同一空间中部署多个同类型传感器的方法。智慧校园内所需采集的多源数据主要包括:温度、亮度、流速和土壤湿度等。
由于物联网数据缺乏统一的全局性数据模式,并存在异构性问题,因此,这些问题很容易导致数据处理出现异常[14]。为此,在预处理前,本文规定各类情境信息均以事件形式发送,并定义事件的基本表示形式为:<事件ID,设备编号,事件类型,情境数据值,事件发生时间,事件发生空间>。其中,事件发生空间由两个子属性构成,一个是位置名称,即此空间的真实名称,例如:教1-203;另一个是位置编号,即通过数字编号来定义空间位置,例如:J1-02-03,由此可通过字符串比较判断两个位置的距离关系。
对于不同的事件类型,它们情境数据值、发生的时间(空间)均有所不同[10-11],且物联网事件具有海量性质,系统如果直接提取某类型事件进行处理,就需要检索大量信息,从而导致整体处理速度过慢。由此,必须首先对不同类型的事件进行一系列的事件预处理操作,以提高数据处理效率。
按类型属性对事件流进行分类的处理过程,如图2所示。
图2 原始数据流分类处理模式
原始事件以流的方式被汇集入串行时间队列,遵循先进先出的原则;事件类型分类器按类型属性对串行时间队列里的每个事件进行分类,并将结果存入相应的并行类型队列中。为确保不造成处理数据丢失,事件类型分类器通过动态滑动窗口从时间队列中提取事件。根据类型属性对事件进行划分为预处理机制中的第一个步骤,形成的并行类型队列中的数据,将向后转发继续进行处理。
由于校园传感器具有广域的分布式特征,事件源的空间属性将有助于本层对不同区域的情境信息进行区分[4],同时,位置离得越近,它们所处的情境就越相似。因此,在数据高并发环境下,将位于同一或相近空间的事件放在相同或相近的位置,能够进一步加快事件的检索速度。为此,根据空间属性对事件进行排序,其处理模式如图3所示。以并行类型队列1的处理过程为例,事件空间分类器将从该队列中取出固定滑动窗口内(例如:5分钟为一个窗口)的事件进行空间分类,将同区域/楼层事件放入同一空间队列中并按位置编号进行排序,最后再将空间队列中的事件以一个滑动窗口为单元,输送至后续模块进行处理。根据空间属性对事件进行排序后,将进一步提升事件计算处理的速度。
受外界条件、仪器条件和测量方法等因素的影响,测量数据往往存在异常,若不排除这些异常,将影响后续的数据处理。为此,本文将对底层事件进行清洗,进而为信息融合提供准确数据来源。
图3 事件空间属性处理模式
由于多传感器测量方法在处理大量测量数据和提升数据可靠性方面效果不佳[4],所以本文采用卡尔曼滤波法[6]来解决此问题,具体如图4所示。系统将固定窗口内经过类型与空间分类的事件输送至卡尔曼滤波器中进行清洗,并输出特定阀值内无异常的事件。设由卡尔曼滤波器输出的最优滤波值为m,判断事件的情境数据值为n,阀值为ε。判断事件是否异常及异常解决方法为:计算差值δ=|m-n|,若δ-ε>0,则认为事件异常并使用m代替n,反之认为正常。通过卡尔曼滤波法对一维数据处理,去除环境噪声干扰后的数据将被组装成一条输入流,输送至CEP引擎。
图4 卡尔曼滤波法的处理模式
本层接收经过分类和清洗后的多维情境信息,并将其进行融合,最终产生设备控制方案,为数据服务层提供决策指导。
CEP能够为多维信息融合处理提供良好的支持,它通过利用一定规则和复杂事件处理引擎来分析、推理和融合实时信息,最终输出含有高层语义的数据结果[12]。CEP引擎对底层情境事件进行解析并产生语义,使用FSM融合语义信息,最终输出设备控制方案(推荐设备状态)。
3.1.1 情境信息的语义化处理
数据只有转化成语义才能被理解并加以利用,CEP引擎允许用户编写特定的规则,将连续的数值型数据抽象成具有一定语义的离散型信息[13]。为此,本文通过定义如下语义化规则通式(1),以对事件的情境数据值进行语义化处理。
if
(1)
该规则的含义为:若情境数据值
if temperature∈[10℃,30℃] then temperature Semanics=“温度感知:合适”
if temperature∈[-∞,10℃] then temperature Semanics=“温度感知:冷”
if temperature∈[30℃,+∞] then temperature Semanics=“温度感知:热”
以上规则将没有含义的数值转化为有含义的信息,为情境融合提供了直接的语义信息来源。语义化规则根据实际情境被定义后,将被存入规则库(知识库),为后续FSM推理提供语义基础。
3.1.2 FSM状态转换规则
状态是环境或物体所处的具体形式。本文将状态定义为主动可控制的情境变量,例如:温度感知、亮度感知、土壤湿度感知以及它们的组合形式等。特别地,本文将设备的开闭情况也列为状态;将被动不可控制的情境变量和设备开闭动作作为状态转换条件,状态本身也可以作为该条件的一部分。其中,被动不可控制的情境变量包括:时间、空间、天气以及它们的组合形式等,设备开闭动作包括:开风扇和关灯等。由于FSM需要对状态进行变换控制,因此,本文定义了状态转换规则模型(2)来描述两种不同状态间的转换关系。
(2)
该模型的主要含义为:状态
<温度感知:冷>BeActedOn<关风扇 and 风扇已开 and!晴天>⟹<温度感知:合适>
<温度感知:冷>BeActedOn<关风扇 and 风扇已开 and晴天>⟹<温度感知:热>
<温度感知:热>BeActedOn<开风扇 and 风扇已关 and!雨天>⟹<温度感知:合适>
<温度感知:热>BeActedOn<开风扇 and 风扇已关 and雨天>⟹<温度感知:冷>
<温度感知:合适>BeActedOn<(开风扇 and 风扇已关) or 雨天>⟹<温度感知:冷>
<温度感知:合适>BeActedOn<关风扇 and 风扇已开>⟹<温度感知:热>
3.1.3 FSM运行优化
FSM是一种用于表示有限状态和这些状态之间跳转情况的模型,其支持各类复杂行为的建模,并拥有有限个状态,状态间可相互迁移,状态跳转条件决定了状态迁移的方向[15]。由于情境由多种不同类型的状态组成,因此,FSM适合于处理多维情境信息的融合。本文将FSM作为CEP引擎的核心运行机制,并设计了FSM七维通用模型:(FSMType,ForwardCondition,Output,State,S0,α,β)。在此模型中,FSMType为FSM类型,即情境类型;Forward Condition为状态转换条件; Output为输出结果;State为状态的非空有限集合;S0为初始状态;α为状态转移函数:State1×Forward Condition → State2(State1,State2属于State);β为输出函数:State×ForwardCondition→Output。
传统FSM存在固有的状态空间爆炸问题,由以下表1、表2可进行说明。
表1 二维状态空间矩阵
表2 三维状态空间矩阵
在表1的二维状态空间矩阵中,A代表一个状态类,它能够衍生出m个状态对象,例如:温度状态类能够衍生出“温度感知:合适”、“温度感知:热”和“温度感知:冷”三个状态对象。类似地,B代表另一个状态类,它衍生出了n个状态对象。由此,A状态类和B状态类将复合出n×m个复合状态对象Cnm。由表2的三维状态空间矩阵可以看出,如果C状态类继续与D状态类进行复合,将产生出s×n×m个复合状态对象。综上所述,每当系统给FSM增加一个状态类,状态空间将以指数级别增长,由此将导致存储量过大及状态检索过慢的问题,若不做优化将严重影响系统的正常运行。为解决此问题,在同一情境下,允许CEP引擎设置嵌套FSM进行父子调用。
本文定义需调用在其它状态机中保存的状态值,作为自身状态跳转条件的FSM称为父状态机,而仅记录单一类型状态且将被调用状态值的FSM称为子状态机。当父FSM规模可能较大时,其将主动剥离转移条件中出现频率最高的对象,并创建子FSM,从而进行复合降维处理。具体示例可参考3.2节的情景(在转移条件1-6中,风扇开关状态出现频率最高,由此被提取为子FSM。同样根据转移条件7-12,灯状态作为一个子状态类型被提取出去)。父FSM可获取其创建的子FSM的状态,作为其状态跳转条件的一部分。若父FSM发生状态跳转,其还需要回调相关子FSM,让子FSM发生同步状态跳转。此外,FSM可设置一个目标状态(如图5灰色底纹椭圆),所有其他状态均优先向该目标状态跳转。最终输出结果为该情境下设备FSM输出状态的并集,从而产生数据服务层的设备控制命令。
以上课教室情境S0=(S01=“教室状态:上课”,S02=“温度感知:热”,S03=“亮度感知:亮”,S04=“风扇状态:关”,S05=“灯状态:开”)为例进行说明。其中,对S0情境进行完全描述的原FSM需要包含:温度感知状态、亮度感知状态、教室状态、风扇状态和灯状态五个基本状态类别,另外如果再包含天气状态等外部状态类型,则可预知将产生状态空间爆炸问题,而难于构造出合理的FSM。
图5为经过优化后的FSM模型。其中,白色底纹椭圆表示普通状态,灰色底纹椭圆表示目标状态,虚线椭圆表示初始状态。CEP引擎先构建一级父状态机FSM(1)。由于当前教室状态为上课,因此需要构建FSM(2)和(3)来作为FSM(1)的子状态机。因为FSM(2)和(3)分别需要获取风扇和灯状态,所以将FSM(2)和(3)设为二级父状态机,以构建出FSM(4)和(5)并分别将其作为FSM(2)和(3)的子状态机。由于温度感知和亮度感知的初始状态分别为热和亮,设当前天气为晴天,因此,需要通过开风扇和开灯来向目标状态进行转换,FSM(2)和(3)将这两个状态控制分别发送给FSM(4)和(5),并使风扇状态由原来的关变成开、灯状态由原来的开变成关。最后输出结果为:<①风扇状态:开,②灯状态:关>,风扇和灯状态将根据情境的实时变化(闭环检测结果)而动态调整。
图5 上课教室情境的CEP模型
在智慧校园中,每个情境信息对师生来说都是有价值的,信息在为他人服务的过程中将产生更多潜力[2]。本文将利用下层的最后输出结果来生成服务。例如:在上述情境实例中,最终输出结果为:<①风扇状态:开,②灯状态:关>,则生成的服务为:<①开风扇,②关灯>。情境服务会根据实际情况被调用,同时,服务调用信息被解析成设备控制指令,以对设备进行实时控制。
实验提取了智慧校园内教室、校道、图书馆和草坪四种较为常见的情境,并选取了某高校进行模拟仿真实验。在每个被测试教室和图书馆区域的不同位置分别布设了多个温度传感器和亮度传感器(每个教室二个温度传感器,而图书馆每区域则在三个或以上),同样在被测试草坪区域内的不同位置放置了多个土壤湿度传感器(每区域四个或以上)。所有传感器的事件发送频率均为30秒/次;图书馆会根据时间(图书馆每层的开放时间)决定其馆内设备的开闭;路灯会根据天气预报信息和时间(白天或晚上)决定其开闭。
实验使用卡尔曼滤波法清洗同类型底层事件。下面以实验过程中一个温度测量场景为例进行说明。场景数据设定为某时间段在图书馆某开放区域测量的50个温度事件。下面需要通过卡尔曼滤波法清洗这些事件,为了验证卡尔曼滤波法的准确性,本实验使用了精密温度测量仪来精确测量该开放区域的平均温度,以对比卡尔曼滤波法的预测值与实际值的差距。实验结果如图6所示,红色曲线为通过卡尔曼滤波法计算的后验温度估计值,直线为通过精密温度测量仪测出的平均温度值,离散点“+”为50个温度数据值,单位均为℃。从图6可知,随着迭代次数的增加,曲线和直线的拟合程度越来越好,卡尔曼滤波法的预测值是有效的。本文取卡尔曼滤波法的最后一次迭代结果21.10 ℃作为最优滤波值,该最优滤波值与精密温度测量仪测出的平均温度值21.17 ℃相比,误差为0.07 ℃,属于可接受范围。最终通过2.4节方法即可完成温度事件的清洗。由此,本实验验证了卡尔曼滤波法能够解决大量一维情境事件的清洗问题。
图6 测量温度、后验估计温度和真实温度值的比较情况
由于本系统需要实时处理校园情境信息,并进行及时地反馈,为此,实验主要验证信息处理的实时性,文中对定量情境信息的预处理与融合耗时进行了分析与统计,并设计了2组实验,利用windows7的pycharm+anaconda+eclipse作为编译与运行环境;Python和Java为主要开发工具,并用于构建规则库、FSM和CEP;时长为1星期。数据集主要包括:在实验区域内采集的传感器数据(温度、亮度、土壤湿度和流速)和天气预报信息(天气、室外温度、室外湿度、风向和风速等)。
图7为使用本文提出的数据预处理方法(处理1)与未使用预处理方法(直接进行清洗,处理2)间的耗时比较。
图7 底层事件处理耗时曲线Fig.7 Time-consuming curves of bottom events processing
随着事件个数的增加,两种方法的处理时间也随之增长,但文中方法耗时更少、增长速率更小,运行效率提升约66.28%,对100,000个事件进行处理,耗时约2 s。
图8为优化FSM和传统FSM的平均耗时及占用内存情况,随着状态类别数(每种状态类别均有3个或以上状态对象)的增加,两种FSM的处理时间和占用内存也随之增长,且优化FSM的平均处理耗时和占用内存较传统FSM少。结果表明,优化FSM能够对清洗后的情境信息进行高效处理与融合,返回高层服务,实现了根据当前情境实时调节设备状态的目的。
图9为实验结果界面,由六部分构成,分别为空间情境类型、空间位置、上一时刻情境、CEP+FSM处理后所调用的服务、当前情境和设备人工管理,管理人员可实时查看情境详情和设备运行情况,并根据实际需求对设备进行手动调节,实现人性化管理。
图8 FSM耗时及占用内存曲线
图9 实验结果界面
1) 本文以智慧校园节能为目标,提出了一种面向校园用能管理的多维信息融合方法,与传统校园信息化处理相比,该方法采用了时空队列预处理和卡尔曼滤波器对物联网海量实时数据进行分类、排序、清洗与重组,采用CEP及优化的FSM对多维情境信息进行推理与融合,从而产生设备控制方案,最终达到了自动化节能管理的目的。
2) 以某高校实际情境为例,本文对一维数据清洗与多维数据融合进行了运行时间与空间的性能测试,实验数据表明,所提出的方法具有更高效的处理速度,且占用更少的内存空间。
3) 可以预见本文智慧化方法将对校园内水、电、气的利用效率产生明显提升作用,但目前研究对象仅关注于校园本身,还没有对具有个性化的师生活动进行分析,后续将以此方向进行完善,以进一步推进校园的节能应用。