陈晨 李琦 谢颖翀
中央民族大学 北京市海淀区 100081
摘要:我国国家机关办公建筑和大型公共建筑总面积不足城镇建筑总面积的 4%,但年耗电量约占全国城镇总耗电量的 22%,每平方米年耗电量是普通居民住宅的 10^20 倍。因此对于大型公共建筑的能耗研究工作刻不容缓。针对大型公共建筑物异常能耗监测问题,本文构建了基于 LSTM 算法的大型公共建筑物的异常能耗监测模型,在给定一组特征的前提下,监测出建筑物的异常能源消耗。本文通过 LSTM 算法预测目标时间点的能源消耗量,将预测值与真实的能源消耗量进行比较,计算出预测结果的熵,即衡量二者之间的差距。由于想要进一步改进模型以更准确地监测出异常能耗值,我们使用基于规则的分类器,并根据时间、外部特征和时间类型(工作日与节假日)这三种特征,来确定异常能耗点。并进一步对确定的异常能耗结果进行检查,以筛除一些非正常态的异常能耗值。最终得到了大型公共建筑物异常能耗监测模型。
关键词:异常能耗监测 LSTM 算法
一、研究意义
随着大型公共建筑物的能源消耗逐步增长。人们越来越认识到许多建筑物的性能不符合其设计师的预期。并且由于建筑物故障,设备故障,控制系统配置不正确以及操作程序不当,大型公共建筑消耗的能量比必要能耗要多消耗 20%左右。由于各种故障,建筑系统可能无法达到性能预期。维护不善,性能下降和控制不当的设备估计会浪费大型公共建筑中所用能源的 15%至 30%。
因此,开发具有自动化,快速响应,准确可靠的故障检测和提供诊断方案以确保系统最佳运行在大型公共建筑物节能方面具有巨大潜力。
二、研究内容
(一)基于LSTM算法的预测模型的建立
①准备步骤
本文构建了generate_df函数,该函数构建一个用于导入LSTM算法的数据集。主要思想是用模型创建一个当天模式(基于前两周数据)和一个当前周模式,以便模型只能预测该模式的最后值。
②拆分出测试集与测试集
分别对两部分数据集按时间点进行拆分,分为训练集与测试集,训练集用于对模型进行训练得出模型需要的参数,测试集用于与算法预测结果对比,并在之后基于规则的分类器中得出异常能耗。
③用代码构建LSTM算法
为构建LSTM算法,本文用python代码搭建RNN神经元以及对应的神经结构,为此模型的基本架构。
LSTM有四层结构:
.png)
理解LSTMs的关键是如下图所示,被称为memory block(记忆块)的矩方框,主要包含了三个门(forget gate、input gate、output gate)与一个记忆单元(cell)。方框内上方的那条水平线,被称为cell state(单元状态),它就像一个传送带,可以控制信息传递给下一时刻。
.png)
第二步是产生需要更新的新信息。这一步包含两部分,第一个是一个“input gate”层通过sigmoid来决定哪些值用来更新,第二个是一个tanh层用来生成新的候选值C~tC~t,它作为当前层产生的候选值可能会添加到cell state中。本文会把这两部分产生的值结合来进行更新。
最后一步是决定模型的输出,首先是通过sigmoid层来得到一个初始输出,然后使用tanh将CtCt值缩放到-1到1间,再与sigmoid得到的输出逐对相乘,从而得到模型的输出。
④模型训练
利用LSTM算法对数据进行预测,首先利用数据的训练集对模型进行训练。在训练的过程中,模型的精度不断提高,但到达一定训练次数之后,模型的精度不再提高,但是模型的损失会增加。
其中,损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。
⑤评估预测值的熵
利用熵值对预测的结果进行评估,熵值越低则代表了预测结果的拟合度较好,因此置信度较高;熵值月高则代表了预测结果的拟合较差。
本文采用如下公式计算出预测结果的熵值:
⑥确定异常能耗分数
本文确定以异常能耗分数为标准,评估预测值与真实能耗值间的差距。构建异常能耗分数这个指标的主要目的是为了了解两种情况:
1)低熵和低预测差距。该模型所预测的结果仍然是存在着某些偏差的。这种效果增加了当前测量实际上是异常的风险。
2)熵值中等,预测差距大:如果这个间隙比熵的测量值要大,那么这种能量测量就是一种潜在的异常。
由于有9个能量消耗等级,本文能得到的最大熵是ln(9)大约是2.2。对任意一个预测值,假设它的熵是0.69,那么概率的质量很可能只分布在2个位置(因为ln(2)大约是0.69)。假设预测值与目标值的差为3个分段,则本文有一个可疑的能量测量:只有两个分段的概率非常高(很可能是一个挨着另一个),而目标值仍然离预测有3个分段。同样的逻辑可以用于所有间隙。
.png)
⑦确定监测异常能耗值的规则
在已经计算出预测结果与真实能耗值的异常能耗分数的基础上,本文使用基于规则的分类器,来计算出在小时、外部特征和时间类型(工作日与节假日)这三个规则筛选下的能量消耗量的百分比。
接着本文构建了check_context函数来对之前计算出的异常能耗结果进行改进和检查,该函数的主要思想是检测和消除非正常态的异常能耗值。例如,如果一个会议在大楼里举行了整整一周,能耗水平会比“正常”日子高,但并不一定会被归为异常能耗。所以本文的想法是检测这类数据,避免预测模型在这段时间内发出警报。
这个函数检查某个电表的邻域值在整个星期内是否较高。它比较了前两周和前一周的能量消耗量百分位数,并返回电量升高的天数。
(二)实例应用
本文对上述北京市三环内某大型酒店展开进一步的调研,希望通过LSTM算法预测出该酒店一年中某时间段是否有频繁的异常能耗现象。我们得到了部分异常能耗数据如下:
.png)
三、总结
通过将本团队所设计的算法应用于大型公共建筑物正式运行阶段的异常能耗监测问题,可以帮助该建筑物运营方可以及时发现该建筑物的异常能耗,并根据异常能耗所发生的时间点、外部特征(气温等)判断该建筑物内耗能设备是否发生故障,使得运营方可以及时的对于设备异常进行修理,最终消除设备或其他因素所造成的建筑物异常能耗所带来的能源浪费。
参考文献:
[1]李舟平,姚伟,曾令康,马士聪,文劲宇.基于长短期记忆网络的电网故障区域定位与故障传播路径推理[J/OL].电力自动化设备:1-8[2021-03-08].https://doi.org/10.16081/j.epae.202102016.
[2]程占伟. 基于机器学习的电力能耗异常检测与预测研究[D].重庆邮电大学,2020.