1 内容介绍
负荷预测指通过对历史数据的分析挖掘,对未来负 荷进行推算、预测的过程,是电力系统领域的传统研究 问题[1–2]。为在电力市场环境下,减少化石燃料的消耗, 并同时降低购电成本,需准确了解未来的发电能力及负 荷水平。然而近年来,随着电力系统不断向智能化方向 发展,分布式能源的渗透率逐渐提高、电动汽车等可调 控柔性负荷的不断增多,使得电网负荷的随机性逐步增 强[3],为负荷的准确预测带来更大的挑战。而随着配网 智能化的发展,可获得的数据规模大量增加,从原有的 GB级增长到TB级[4],且仍呈现增长之势[5]。如何在新 背景下,有效利用负荷大数据,以提高负荷预测精度, 具有重要意义。 目前负荷预测的方法主要分为统计方法和人工智 能方法两类[6],其中统计方法包括时间序列和线性回 归[7–8],人工智能方法则包括人工神经网络法[9–11]、支 持向量机法[12]及基于深度学习方法[13]等。基于人工 智能的方法与统计方法相比,可以有效处理数据中存在 的非线性关系。近年来,由于深度学习算法处理非线性 映射的能力突出,其在负荷预测领域也逐渐被使用。 目前,深度学习在负荷预测中的应用多采用深度置 信网络(deep belief network,DBN)和循环神经网络 (recurrent neural networks,RNN)模型。文献[13]通 过将无监督学习和有监督学习相结合,共同实现DBN 的训练,可以实现较高的预测精度;文献[14]通过 将DBN与SVM相结合实现未来1 h的负荷预测,预测精 度较高,但忽略了不同时间负荷数据间的联系;文献 [15]将一种基于深度学习的RNN-LSTM模型应用于单 位住户的用电量预测中,通过训练集训练后,测试集的 预测结果图线可以很好地与实际数据拟合;文献[16] 表明为实现未来1 h负荷值的预测,采用预测点7天前的 负荷数据进行网络训练效果最佳;文献[17]将LSTM 网络应用于短期负荷预测,通过将结果与多层BP网络 进行对比,可以看出LSTM网络的预测效果远优于后者。 然而LSTM网络是将所有输入特征编码成固定长度的向 量表示,忽视了其与待预测负荷之间的关联性大小,因 而无法有侧重地对历史数据加以利用。本文针对LSTM算法存在的不足,提出一种基于 attention机制的LSTM神经网络。利用预测点前168 h的 历史负荷数据作为网络输入,实现未来1 h的超短期负荷 预测。通过计算不同输入量特征的注意力权重,对重要 数据分配更多的注意力,从而提高负荷预测精度。通过 与BP神经网络进行对比,表明所提方法有更高的预测精 度,更适用于超短期负荷预测。在将基于attention机制的LSTM网络应用于超短期负 荷预测时,主要需确定网络的输入输出变量、数据预处 理方法、网络结构、模型训练方法以及网络评价指标。
2 仿真代码
<span style="color:#333333"><span style="background-color:rgba(0, 0, 0, 0.03)"><code><span style="color:#afafaf">%</span> TPA- LSTM</code><code></code><code>function [Lstm_Y,state] = LSTMModel(Train_X,params,state)</code><code><span style="color:#afafaf">%</span>% 输入部分</code><code><span style="color:#afafaf">%</span> Train_X 训练样本输入(CBT)</code><code><span style="color:#afafaf">%</span> params 训练权重参数</code><code><span style="color:#afafaf">%</span> state 状态变量</code><code><span style="color:#afafaf">%</span>% 需要学习的参数</code><code>weight = params.lstm.weights;</code><code>recurrentWeights = params.lstm.recurrentWeights;</code><code>bias = params.lstm.bias;</code><code><span style="color:#afafaf">%</span>% 不同批次间传递的参数(这里假设每一轮epoch中,不同Batch间的state是传递的,但不学习;</code><code><span style="color:#afafaf">%</span> 不同epoch之间的state重置)</code><code></code><code></code><code>h0 = state.lstm.h0;</code><code>c0 = state.lstm.c0;</code><code>[Lstm_Y,h0,c0] = lstm(Train_X,h0,c0,weight,recurrentWeights,bias);</code><code></code><code>state.lstm.h0 = h0;</code><code>state.lstm.c0 = c0;</code><code></code><code>%% 输出</code><code><span style="color:#afafaf">%</span> Lstm_Y</code><code><span style="color:#afafaf">%</span> state</code><code>end</code></span></span>
3 运行结果
4 参考文献
[1]王鑫, 吴际, 刘超,等. 基于LSTM循环神经网络的故障时间序列预测[J]. 北京航空航天大学学报, 2018, 44(4):13.
[2]李昭昱, 艾芊, 张宇帆,等. 基于attention机制的LSTM神经网络超短期负荷预测方法[J]. 供用电, 2019, 036(001):17-22.
[3]王亚萍, 李士松, 崔巍,等. 一种基于Attention-LSTM的滚动轴承性能衰退预测方法:, CN111695521A[P]. 2020.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。