当前位置:网站首页>文献调研(四):基于case-based reasoning、ANN、PCA的建筑小时用电量预测
文献调研(四):基于case-based reasoning、ANN、PCA的建筑小时用电量预测
2022-06-25 22:11:00 【爱学习的包青蛙】
Hourly prediction of a building’s electricity consumption using case-based reasoning, artificial neural networks and principal component analysis.
Energy and Buildings(2015)
摘要
本文基于案例推理(case-based reasoning,CBR)和ANN开发预测模型,并使用PCA减少输入特征数量。
简介
提前估计用电量可以优化建筑系统的控制顺序和运行,以减少用电高峰需求,它可以帮助确定过度耗电的时期,以提出改进的运营策略。建筑能量负荷预测对于优化热能储存系统的管理也至关重要,热能储存系统越来越多的出现在建筑中,旨在储存能量以供后续适当使用,规划与电动暖通空调系统相连的热能储存装置的运行,可以优化其使用,并降低峰值负荷和成本。
本文的目标旨在开发简单高效且泛化能力强的建筑用电量预测模型。
方法
1、数据收集和分析
(1)数据收集
本文数据是从位于阿尔伯塔省卡尔加里的加拿大机构收集的,时间跨度为2013年3月到2014年5月,涉及的相关参数如表1:
(2)数据分析
针对本文研究,作者仅采用目测检查变量图的方法来识别并异常值,只有0.9%的数据被认为是异常值,同时去除了特征缺失的数据,最终建模数据集包含11,844个观测值。
此外,作者认为,在夜晚和白天、工作日和周末,即工作时间和非工作时间,建筑耗电量差异是很大的。
如图3所示,在非工作时间,建筑物消耗的电量明显少于工作时间,并且耗电曲线的可变性也小于工作时间。鉴于大部分电力是在工作时间消耗的,因此本文开发基于这些测量的模型,这也将更好地代表建筑用电概况。
(3)天气预测
在预测建筑物电力消耗的模型的在线实现中,诸如空气温度和相对湿度的天气预报信息将被用作输入。天气预报可从加拿大某环境网站在线获得。2013年3月至2014年5月的历史预测数据不可用,但可以获得过去的实际测量值。为了克服这个问题,室外空气温度和相对湿度的实际测量值在时间上向前移动,并用作预测值。可以认为,一个完美的天气预报——预报值与测量值相同——被用来开发本研究中提出的模型。
2、模型输入的选择
对于输入的处理,本文主要采用PCA方法。
3、Case-based reasoning
本文提出的基于案例的推理遵循一个规律:当前建筑电力使用的趋势可以通过过去相似情况下的趋势来预测。
对于相关趋势的案例,作者选择具有时间戳且外部空气温度与当前条件相似的过去度量,即与当前测量值在同一天的同一时间进行的过去测量值,还选择了在1小时前和1小时后进行的测量。例如,如果预测将在今天下午4点进行,则选择过去在下午3、4和5点进行的测量值。在这些测量中,只有那些对应于相对于当前温度在2℃区间内的外部空气温度的测量被认为与当前条件相似。然后通过过去的电力消耗值来预测当前情况下的电力消耗。
接下来,为案例的每个输入变量计算当前案例与其来自过去案例的相应测量值之间的变量相似性。w是一个随着测量时间远离当前小时而线性减小的因子,以便更加重视最近的测量,n表示测量值的数量,计算公式如下:
使用上述计算的距离和一个最小和最大阈值,可获得可变相似性:
式中,1表示完美相似,0表示很不相似,变量相似性VS在最小阈值和最大阈值之间线性变化。
使用变量相似性和与每个输入变量相关联的权重来计算过去和现在案例之间的相似性;这个权重代表每个变量对被预测变量的影响——在我们的例子中是建筑用电。权重值通常是基于建筑操作的知识来选择的,有M个输入变量时,案例相似度计算为输入变量相似度的加权平均值:
这里也应该设定一个阈值,只有过去和现在案例相似度高于该阈值的过去案例才能用于预测当前的电耗量。当选定一组过去案例后,计算其加权平均值作为预测的当前电耗量:
y为t时刻第k个案例的电耗量。
本文后面,作者还提到了一些相关的参数设置问题,这里不再赘述。
边栏推荐
- 数组常用的一些操作方法
- Understanding of pseudo classes
- 实例:用C#.NET手把手教你做微信公众号开发(21)--使用微信支付线上收款:H5方式
- 寻找翻转数组的最小值[抽象二分]
- 用frp搭建云电脑
- MySQL version upgrade + data migration
- STL教程5-STL基本概念及String和vector使用
- Apache Doris1.0版本集群搭建、负载均衡与参数调优
- Record a simple question with ideas at the moment of brushing leetcode - Sword finger offer 09 Implementing queues with two stacks
- Static keyword explanation
猜你喜欢

Alipay payment interface sandbox environment test and integration into an SSM e-commerce project

达梦数据库修改字段信息采坑记

iomanip头文件在实战中的作用

数组常用的一些操作方法

Leetcode 513. 找树左下角的值

The role of iomanip header file in actual combat

Linking MySQL database with visual studio2015 under win10
![Bit Compressor [蓝桥杯题目训练]](/img/d5/231d20bf4104cc2619b2a4f19b605c.png)
Bit Compressor [蓝桥杯题目训练]

产品经理如何把控产品开发的进度

js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来
随机推荐
One article explains R & D efficiency! Your concerns are
关于Swoole协程容器
STL教程5-STL基本概念及String和vector使用
Blob
IDEA中如何生成get/set方法
权限设计=功能权限+数据权限
Simulation connection between WinCC and STEP7_ Old bear passing by_ Sina blog
发送邮件工具类
Apache doris1.0 cluster setup, load balancing and parameter tuning
流数据
记录一下刷LeetCode瞬间有思路的一道简单题——剑指 Offer 09. 用两个栈实现队列
mongodb
一文讲透研发效能!您关心的问题都在
Studio5k v28安装及破解_过路老熊_新浪博客
在win10下使用visual studio2015链接mysql数据库
js实现输入开始时间和结束时间,输出其中包含多少个季,并且把对应年月打印出来
懒人教你用猕猴桃一月饱减16斤_过路老熊_新浪博客
Leetcode 513. 找树左下角的值
4个要点,助力产品管好项目
7.常用指令(下)v-on,v-bind,v-model的常见操作