光伏发电预测(二)

赛题的决赛要求:
利用之前若干时段的光伏发电参数,预测未来两个月的每天15分钟一次共96个点的瞬时功率。
先对数据集模糊聚类,再用相似日得出预测日的除了瞬时有功以外的所有参数,最后用神经网络计算预测日的瞬时有功。

一、数据分析

原始数据表“data.csv”,提供了用户A1-A10的2016年7月31日-2018年7月1日的瞬时有功、瞬时无功、A相电流、B相电流、C相电流、A相电压、B相电压、C相电压、正向有功总9个属性的数据表,数据采集间隔为15分钟,其中瞬时有功为预测对象。

二、算法原理

本次预测算法,采用python2.7.12语言编写,包括data.py、similar_day.py和predict.py。

1.data.py

1)data.py程序的主要功能为数据划分和数据预处理,其中主要函数说明如下:
split_data_set():将原始数据划分为A1-A10的10个数据集;
wavelet_denosing():利用小波函数对原始数据集进行降噪处理;
devide_by_month():利用模糊聚类对原始数据进行分类处理;

2.similar_day

2)similar_day.py程序的主要功能为寻找相似日, 其中主要函数说明如下:
day_features():计算预测对象与相应聚类类别中每天的最低温度、最高温度、平均温度、湿度和日照时长等5个特征的欧式距离A;
real_time_tempreture():计算预测对象与相应聚类类别中每半小时的温度特征的欧式距离B;
MFOA():利用果蝇算法优化权重f1和f2,使得上述欧式距离A和B的加权距离值最小,相应日期为预测对象的相似日;

3.predict.py

3)predict.py程序的主要功能为执行预测过程,其中主要函数说明如下:。
nn_model(): 将预测对象对应的聚类类别作为训练数据集,并训练神经网络模型,迭代500次;将相似日的数据作为模型输入,带入预测模型得到预测数据;
concat():将A1-A10的预测结果进行拼接,得到最终预测结果。

三、方案设计

1、数据采集及预处理

步骤1:原始数据划分为A1-A10划分为10个数据集;删除当天无数据的日期数据,并将剩余数据集的缺失数据补全,记为A_1-A_10数据集;
步骤2:从中国气象局网站(杭州观测站)爬取2016年7月31日至2018年11月30日的每日天气数据,包括最高气温、最低气温、平均气温、日照时长和湿度,对数据进行预处理,记为Wed_Day数据集;
步骤3:从weatherspark网站爬取杭州萧山国际机场2016年7月31日至2018年11月30日的天气数据,数据采集时间间隔为30分钟,Wed_Halfhour数据集,包括最高气温、最低气温、风速、能见度和云量。

2、相似日选取

步骤1:数据降噪处理。对A_1-A_10数据集、Wed_Day和Wed_Halfhour天气数据集进行小波降噪处理;
步骤2:确定相似日筛选范围。将预测对象时间段8月-11月按气象温度,日照,季节等因素划分为两个时间段即8月-9月和10-11月分别进行预测。相应地缩小样本数据范围,训练集分别对应2016年8月-10月加2017月7月-10月,以及2016年9月-12月加2017年9月至12月;
步骤3:确定相似日。计算预测对象某一天的Wed_Day和Wed_Halfhour指标与训练集中相应指标的加权欧式距离,权重初始设为0.5和0.5。满足目标条件加权欧式距离最小,采用优化果蝇算法寻优计算,得到最优权重,而最小距离所对应的日期即为该预测对象的相似日。

3、瞬时有功预测

步骤1:选取当日预测时段。由于当天数据存在大量重复0值,且规律变化。为了消除0值影响提升预测精度,需选取当日预测时间段:8月-9月预测时间段为5时-19时,10月-11月预测时段为6时-18时;
步骤2:训练预测模型。分别建立原始数据训练集中瞬时有功与电流、电压、瞬时无功和正向有功之间的神经网络模型,调整参数使得模型达到最优;
步骤3:确定预测模型输入值。根据相似日选取规则确定预测日期的相似日,将相似日的电流、电压、无功和正向有功等指标作为输入值,带入预测模型,得到输出值;
步骤4:输出预测结果。将输出值补缺相应0值后,即为该日预测对象的瞬时有功预测值。

四、模型效果

缺乏数据,无法有效评估。相似日的算法由于是在包含自己的集合里查找,因此也无法有效评估。

五、总结

决赛的难度显而易见,频度太高,外部数据选取也很麻烦。
几个亮点:

  • 在计算相似日时,权值选择上用了果蝇算法去泛化不同模糊聚类。
  • 在外部数据同样很差的情况下,利用小波去噪后的数据,效果较好。

由于开发时间不够,第一次对这个项目还比较生疏,主要问题有几点:

  • 1.每天 96 点的频率太高,而外部数据在这个频度上的精度明显不高,在外部数据差的情况,很难有效进行下去。
  • 2.相似日的算法还不好。对于第三步神经网络的预测部分,完全要依靠第二步相似日选取的准确率。
  • 3.原始数据的特征工程做得不够充分。原数据的缺失值和脏数据太多,经常在做相似日的时候回头去处理没处理的脏数据。

改进策略:

  • 1.想办法提高外部天气数据的精度和可靠性。
  • 2.编程的时候就想到了在一天内分时段去寻找相似时段,可能可以拟合地更好。但是由于外部数据太差,且考虑到编程时间,当即放弃了这个方案
  • 3.多尝试特征工程

链接:https://pan.baidu.com/s/1pHvFtv_2DO4YKDrge5JU2Q 密码:wkat

  • 11
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值