当前位置: 首页 > article >正文

【负荷预测】基于VMD-SSA-LSTM光伏功率预测【可以换数据变为其他负荷等预测】(Matlab代码实现)

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

1.1 变分模态分解(VMD)

1.2 麻雀搜索算法(SSA) 

 1.3 长短期记忆神经网络(LSTM)

1.4 VMD-SSA-LSTM 模型预测流程

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章讲解


💥1 概述

参考文献:

 知识回顾:基于EMD-PCA-LSTM的光伏功率预测模型

摘要: 提出了变分模态分解(VMD)和麻雀搜索算法(SSA)与长短期记忆神经网络(LSTM)相耦合,建立了光伏预测模型(VMD-SSA-LSTM)。首先利用VMD对历史负荷数据进行分解,然后依据SSA对LSTM的参数进行寻优,并将分解出的负荷分量输入到LSTM神经网络,最后将每个分量的预测值相加,得到光伏负荷预测值,结果表明,与LSTM、VMD-LSTM模型相比,VMD-SSA-LSTM模型的预测精度更高,为开展月径流预测工作提供了一种新的选择。【换上其他数据,可以预测其他负荷预测等】重点学习方法。

1.1 变分模态分解(VMD)

变分模态分解(VMD)是一个完全非递归分解模型[4],该模型采用一种自适应的变分方法,可自适应确定相关频带,并同时估计相应模态,从而适当平衡它们之间的误差。VMD 的目标是将实值输入信号f(t)分解为离散的子信号(模态)μk ,假设每个模态uk 在频率中心wk 附近大部分均为紧凑的。

VMD将f(t) 分解为k 个子序列具体步骤如下。

步骤1 对于每个模态μk ,通过希尔伯特变换计算相关的解析信号并构造出频谱。

步骤2 通过各自估计的中心频率,将模态的频谱移至到基带。

步骤3 通过解调信号的高斯平滑度,即梯度的L 2 范数来估计带宽。产生的约束变分问题为:

1.2 麻雀搜索算法(SSA) 

麻雀搜索算法(SSA)是一种新型的智能优化算法,其思路源于麻雀的觅食行为和反捕行为。

SSA 优化过程具体描述为:① 发现者位置 X t+1 i,j 更新公式为:

SSA 算法步骤如下。

步骤1 初始化种群、捕食者和加入者的比例、迭代次数。

步骤2计算出适应度值﹐再从大到小排序。
步骤3更新发现者位置。
步骤4更新加人者位置。
步骤5更新警戒者位置(意识到危险的麻雀)。

步骤6计算适应度值并更新麻雀位置。

步骤7若满足要求,输出结果;否则,重复步骤2~6。
 

 1.3 长短期记忆神经网络(LSTM)

LSTM内部包括输入层、隐含层、循环层、输出层。为解决循环神经网络(RNN)的梯度消失和梯度爆炸问题,在隐含层中增加记忆单元状态。隐含层中建立了控制单元分别为输入门、遗忘门和输出门。输入门的作用是将新的信息选择性的记录到细胞状态中,遗忘门是将细胞中的信息选择性遗忘,输出门是将储存的信息带到下一个神经元中。

式(5)~(11)即为LSTM向前传播的过程,再由预测值与实际值之间的误差进行反向计算,更新权值和阈值,直到满足最大迭代次数。

1.4 VMD-SSA-LSTM 模型预测流程

 VMD、SSA和 LSTM相耦合成VMD-SSA-LSTM月径流预测模型,具体预测步骤如下。
步骤1选定前n个负荷信息作为模型输入。

步骤2利用VMD 方法对原始的负荷序列进行分解,得到k个分量。

步骤3首先设置麻雀种群规模N、最大迭代次数M、参数范围(隐含层神经元数H、训练次数E和学习率z)的搜索范围,然后选用均方误差(M Msz)作为优化算法中的目标函数,最后建立起麻雀搜索算法与长短期神经网络相耦合模型(SSA-LSTM)。
步骤4对每个分量分别输入SSA-LSTM预测模型,得到k个预测模型。
步骤5最后将k个预测模型的预测值对应的相加,得到负荷的预测值。
 

📚2 运行结果

 

 

 

 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]孙国梁,李保健,徐冬梅等.基于VMD-SSA-LSTM的月径流预测模型及应用[J].水电能源科学,2022,40(05):18-21.

[2]张雲钦,程起泽,蒋文杰,刘晓峰,沈亮,陈泽华.基于EMD-PCA-LSTM的光伏功率预测模型[J].太阳能学报,2021,42(09):62-69.DOI:10.19912/j.0254-0096.tynxb.2019-0817.

🌈4 Matlab代码、数据、文章讲解


http://www.kler.cn/a/11909.html

相关文章:

  • go T 泛型
  • 【C++ 算法进阶】算法提升十三
  • 【Python特征工程系列】利用SHAP进行特征重要性分析-XGB模型为例(案例+源码)
  • 「IDE」集成开发环境专栏目录大纲
  • 关于Oracle数据库密码复杂度检查的一些概念
  • 三周精通FastAPI:40 部署应用程序或任何类型的 Web API 概念
  • 优橙内推河南专场——5G网络优化(中高级)工程师
  • mycat读写分离
  • C结构体中末尾的data[0]
  • Java-类的知识进阶
  • yocto 任务
  • 如何构建敏捷项目管理团队?
  • XML与JSON知识学习
  • 防火墙iptables
  • JavaSE学习进阶day03_01 多态
  • MATLAB算法实战应用案例精讲-【深度学习】多尺度特征融合-图像识别(论文篇三)
  • Linux-重启相关日志
  • ChatGPT 被大面积封号,到底发生什么了?
  • 每周一算法:高精度乘法(二)大整数乘大整数
  • UWB成为智慧工厂时代的代表技术
  • 【Linux进阶篇】系统监控命令
  • 什么是Android FrameWork,请你介绍一下?
  • ChatGPT研究报告:AIGC带来新一轮范式转移
  • STM32 库函数 GPIO_SetBits、GPIO_ResetBits、GPIO_WriteBit、GPIO_Write 区别
  • Kettle(9.3.0)连接ClickHouse
  • Android有官方的GPS定位API,为什么还要使用百度/高德定位SDK ?