【预测模型】基于量子粒子群算法优化LSTM实现短期电力负荷预测matlab代码

1 简介

电力负荷是电力系统运行、规划的重要组成部分,对其进行准确的分析预测具有重要意义。本文针对目前短期电力负荷预测精度、自动化程度较低等问题,设计实现了基于长短期记忆算法的短期电力负荷预测模型,使用粒子群算法对模型参数进行优化,并设计实现了集数据管理、模型训练、结果展示于一体的智能化电力负荷预测平台,使整个预测过程变的更加精确、智能。本文的主要工作和研究成果如下:(1)探究电力负荷数据的内在变化规律及可能的外在影响因素,分析电力负荷预测的理论依据。(2)统计西班牙2018年整年的真实电力负荷数据及影响因素数据,对电力负荷数据与影响因素数据进行相关性分析,得出相关系数较大的影响因素,与电力负荷数据一同作为模型输入,提高模型准确率。(3)分别基于循环神经网络和长短期记忆神经网络构建电力负荷预测模型,并设计统一的评价标准,使用西班牙2018全年的电力负荷数据与影响因素数据对模型进行训练,用训练后的模型分别预测未来一周的电力负荷数据。预测结果证明长短期记忆神经网络对长周期数据有长期记忆的学习优势,预测结果更为准确。(4)引入参数最优化方法,采用粒子群(PSO)优化算法对基于长短期记忆算法的电力负荷预测模型进行参数优化,将原本根据经验人为设定参数的过程改为粒子群算法自动迭代搜索最优参数,使用经过粒子群算法优化参数后的模型同样预测未来一周的电力负荷数据,结果证明经粒子群算法优化后的模型比未优化前的模型有着更高的预测精度。

具体模型参考底下文献,这里不赘述。​

2 部分代码

<span style="color:#333333"><span style="background-color:#f8f8f8"><span style="color:#000000">clc</span>;<span style="color:#3300aa">clear</span>;<span style="color:#000000">close</span>
<span style="color:#aa5500">%%</span>
<span style="color:#000000">lstm</span>=<span style="color:#000000">load</span>(<span style="color:#aa1111">'result/lstm.mat'</span>);
[<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>]=<span style="color:#000000">result</span>(<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'LSTM'</span>);

<span style="color:#000000">psolstm</span>=<span style="color:#000000">load</span>(<span style="color:#aa1111">'result/pso_lstm.mat'</span>);
[<span style="color:#000000">psolstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">psolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>]=<span style="color:#000000">result</span>(<span style="color:#000000">psolstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">psolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'PSO-LSTM'</span>);

<span style="color:#000000">qpsolstm</span>=<span style="color:#000000">load</span>(<span style="color:#aa1111">'result/qpso_lstm.mat'</span>);
[<span style="color:#000000">qpsolstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">qpsolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>]=<span style="color:#000000">result</span>(<span style="color:#000000">qpsolstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#000000">qpsolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'QPSO-LSTM'</span>);

<span style="color:#000000">figure</span>
<span style="color:#3300aa">plot</span>(<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">true_value</span>,<span style="color:#aa1111">'-rs'</span>,<span style="color:#aa1111">'linewidth'</span>,<span style="color:#116644">2</span>)
<span style="color:#000000">hold</span> <span style="color:#000000">on</span>;<span style="color:#3300aa">grid</span> <span style="color:#000000">on</span>
<span style="color:#3300aa">plot</span>(<span style="color:#000000">lstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'-bo'</span>,<span style="color:#aa1111">'linewidth'</span>,<span style="color:#116644">2</span>)
<span style="color:#3300aa">plot</span>(<span style="color:#000000">psolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'-kp'</span>,<span style="color:#aa1111">'linewidth'</span>,<span style="color:#116644">2</span>)
<span style="color:#3300aa">plot</span>(<span style="color:#000000">qpsolstm</span><span style="color:red">.</span><span style="color:#000000">predict_value</span>,<span style="color:#aa1111">'-m*'</span>,<span style="color:#aa1111">'linewidth'</span>,<span style="color:#116644">2</span>)
<span style="color:#3300aa">legend</span>(<span style="color:#aa1111">'真实值'</span>,<span style="color:#aa1111">'LSTM网络模型'</span>,<span style="color:#aa1111">'PSO-LSTM网络模型'</span>,<span style="color:#aa1111">'QPSO-LSTM网络模型'</span>)
<span style="color:#3300aa">title</span>(<span style="color:#aa1111">'各算法结果'</span>)
<span style="color:#3300aa">xlabel</span>(<span style="color:#aa1111">'测试集样本'</span>)
<span style="color:#3300aa">ylabel</span>(<span style="color:#aa1111">'负荷'</span>)
</span></span>

3 仿真结果

4 参考文献

[1]刘博. 基于PSO-LSTM算法的短期电力负荷预测应用研究. (Doctoral dissertation, 吉林大学).

​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值