基于BP神经网络/GRNN神经网络的电力预测matlab仿真

article/2025/9/29 0:53:00

目录

一、理论基础

二、案例背景

三、MATLAB程序

四、仿真结论分析


一、理论基础

       BP神经网络,即Back Propagation神经网络,其本质是一种基于误差反馈传播的神经网络算法。从结构上讲,BP神经网络是由一个信息的正向传播网络和一个误差的反向传播网络两个模块构成。BP神经网络的基本结构如下图所示:

         从图2的结构可知,BP神经网络主要由输入层,隐含层以及输出层构成。来自外界的信息通过输入层传输进入到隐含层进行处理,并由输出层输出处理结果。当BP神经网络的输出结果和其期望结果之间的误差较大的时候,则进入反向传播阶段,并进行进行审计网络权值的修正,直到输出结果和期望结果误差满足一定条件为止。

        GRNN,即General Regression Neural Network,中文全称为广义回归神经网络,是由The Lockheed Palo Alto研究实验室在1991年提出的。GRNN是一种新型的基于非线性回归理论的神经网络模型。GRNN是建立在非参数核回归基础之上的,该神经网络是以测试样本为后验条件,并从观测样本中计算得到自变量和因变量之间的概率密度函数,然后在计算出

        因变量关于自变量的回归值。由于GRNN不需要规定模型的类型,只需要设置神经网络的光滑因子参数,GRNN神经网络的光滑因子参数的取值对神经网络的输出影响较大,当光滑因子参数较大的时候,其对应的神经元所覆盖的输入区域就越大;当光滑因子参数较小的时候,神经网络对应的径向基函数曲线较陡,因此神经网络输出结果更接近期望值,但此时光滑度越差。GRNN神经网络的基本结构如下图所示:

       从图的结构图可知,GRNN神经网络的输入层神经元数目和输入样本的维度是相同的,即每一个神经元将输入信号直接传递给GRNN神经网络的隐含层中。 

二、案例背景

       电力预测可以单独进行;也可以根据电量预测的结果,再利用预测的负荷系数(即在规定周期内平均负荷与最大负荷之比)求出电力预测值。这两种电力预测方法都得到广泛的应用。前一种预测方法的好处是以最直接的方法获得大部分对系统来说最重要的预测结果,并且较容易地使负荷数据同气温等因素直接关联起来,但负荷系数本身是不太有规则的。后一种预测方法的好处是在一段时间内电量数据不像最大负荷那样不规则,能较好地显示增长的趋势;负荷系数也不像最大负荷那样不规则,在年与年之间虽有变化,多数情况下趋于相对稳定。
       单独进行电力预测可以采用按时间序列方法进行估算,估算方法与电量预测的方法基本相同;也可以按各个地区、各种用途、各类用户的典型负荷曲线进行叠加得到预测值。

三、MATLAB程序

clc;
clear;
close all;
warning off;data = csvread('dat.csv');
[R,C]= size(data);data2 = [];
for i = 1:R/4data2 = [data2,data(4*(i-1)+1:4*i,:)];
endTned = data2(1,1:24*48);
Tweb = data2(2,1:24*48);
P    = data2(3:4,1:24*48);%异常数据处理
[M,N]= size(Tned);
for i = 2:N-1if Tned(i) > 1.5*Tned(i-1)  &  Tned(i) > 1.5*Tned(i+1)  |   Tned(i) < 0.5*Tned(i-1)  &  Tned(i) < 0.5*Tned(i+1)Tned(i) = (Tned(i-1) + Tned(i+1))/2;  end
end%数据归一化
Max1 = max(Tned);
Min1 = min(Tned);Max2 = max(Tweb);
Min2 = min(Tweb);%归一化
Tned2 = (Tned-Min1)/(Max1-Min1);
Tweb2 = (Tweb-Min2)/(Max2-Min2);%训练长度和测试长度划分
LL         = 30;
LLe        = 40;
%将数据划分为训练数据和测试数据两个部分
P_train    = P(:,1:LL*24);
P_test     = P(:,LL*24+1:LLe*24);Tned_train = Tned2(1:LL*24);
Tned_test  = Tned2(LL*24+1:LLe*24);Tweb_train = Tweb2(1:LL*24);
Tweb_test  = Tweb2(LL*24+1:LLe*24);%神经网络训练
net = newgrnn(P_train,Tned_train,0.005);%测试部分数据测试
Ty  = (Max1-Min1)*net(P_test)+Min1;figure;
plot([Tned(LL*24+1:LLe*24)],'r','linewidth',2);
hold on
plot([Ty],'b','linewidth',2);
hold on
plot([Tweb(LL*24+1:LLe*24)],'g--','linewidth',2);
grid on
legend('real demand','network prediction','website prediction');
axis([0,LLe*24-LL*24,0,8000]);figure;
plot([Ty-Tned(LL*24+1:LLe*24)],'r','linewidth',2);
hold on
plot([Ty-Tweb(LL*24+1:LLe*24)],'b','linewidth',2);
hold on
plot([Tned(LL*24+1:LLe*24)-Tweb(LL*24+1:LLe*24)],'g--','linewidth',2);grid on
legend('error between network prediction and real demand','error between network prediction and website demand','error between real demand and website demand');axis([0,LLe*24-LL*24,-2000,2000]);

四、仿真结论分析

BP仿真结果如下所示:

 

GRNN仿真结果如下所示: 

 

 GRNN神经网络,其误差基本在500以内。BP神经网络的预测误差较大

A05-49


http://chatgpt.dhexx.cn/article/HcHOTSvI.shtml

相关文章

RNN CNN GCN

RNN CNN GCN 属于深度学习领域——图像识别 主要用于识别提取图像的特征 CNN:对象是图片&#xff0c;一个二维结构&#xff0c;其主要核心是有一个kernel小窗口&#xff0c;用于图片的平移&#xff0c;然后再利用卷积来提取图片的特征。 RNN:针对一维结构&#xff0c;主要利用…

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 -附代码

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 文章目录 基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测1.GRNN 神经网络概述2.GRNN 的网络结构3.GRNN的理论基础4.运输系统货运量预测相关背景5.模型建立6.麻雀搜索算法优化GRNN7.实验结果8.参考文献9.Matlab代码 摘要&…

广义回归神经网络(GRNN)的数据预测

广义回归神经网络是径向基神经网络的一种&#xff0c;GRNN具有很强的非线性映射能力和学习速度&#xff0c;比RBF具有更强的优势&#xff0c;网络最后普收敛于样本量集聚较多的优化回归&#xff0c;样本数据少时&#xff0c;预测效果很好&#xff0c; 网络还可以处理不稳定数…

神经网络(一):GRNN广义回归神经网络理论概念笔记

GRNN广义回归神经网络以及相关概念 https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://blog.csdn.net/guoyunlei/article/details/76101899参考博客 小小白入坑系列&#xff0c;欢迎大佬的指教! 算法网上铺天盖地的&#xff0c;我只是把自己对算法的理…

【GRNN回归预测】基于matlab有限增量进化广义回归神经网络LIEV-GRNN数据回归预测【含Matlab源码 2132期】

⛄一、GRNN模型 GRNN是一种非线性回归的前馈式神经网络。通常是由输入层、模式层、求和层和输出层构成。GRNN算法在运算速度与学习能力上比径向基函数神经网络(radial basis function, RBF)、反向传播神经网络(back propagation, BP)更强&#xff0c;广泛应用于系统辨识、预测…

神经网络学习笔记(二)GRNN广义回归神经网络

广义回归神经网络&#xff08;GRNN&#xff09; 广义回归神经网络是径向基神经网络的一种&#xff0c;GRNN具有很强的非线性映射能力和学习速度&#xff0c;比RBF具有更强的优势&#xff0c;网络最后普收敛于样本量集聚较多的优化回归&#xff0c;样本数据少时&#xff0c;预测…

GRNN神经网络概述

GRNN&#xff0c;General Regression Neural Network&#xff0c;即广义回归神经网络&#xff0c;最早是由美国的Donald F.Specht教授于1991年提出的基于非线性的回归理论的人工神经网络模型[47,48]。GRNN广义回归神经网络具有较好的网络适应能力&#xff0c;从而使得神经网络能…

广义回归神经网络GRNN回归预测-MATLAB代码实现

一、GRNN简介 广义回归神经网络&#xff08;General Regression Neural Network, GRNN&#xff09;是1991年提出的基于径向基函数&#xff08;Radial Basis Fuction&#xff0c;RBF&#xff09;网络的一种改进形式&#xff0c;与径向基函数网络相比&#xff0c;其训练更为方便…

广义回归神经网络(GRNN)的实现(Python,附源码及数据集)

文章目录 一、理论基础1、广义回归神经网络结构2、输入层3、模式层4、求和层5、输出层6、优化思路 二、广义回归神经网络的实现1、实现过程&#xff08;GRNN.py&#xff09;2、预测结果3、参考源码及实验数据集 一、理论基础 广义回归神经网络&#xff08;Generalized Regress…

【机器学习】广义回归神经网络(GRNN)的python实现

【机器学习】广义回归神经网络(GRNN)的python实现 一、广义回归神经网络原理1.1、GRNN与PNN的关系2.2、GRNN的网络结构二、广义回归神经网络的优点与不足2.1、优点2.2、不足三、GRNN的python实现参考资料一、广义回归神经网络原理 1.1、GRNN与PNN的关系 广义回归神经网络(…

C++ Unique函数 详细

unique函数是STL中比较实用的函数之一 包含该函数的函数头文件为 #include <algorithm>2 unique函数可以删除有序数组中的重复元素。 注意&#xff1a; a 这里的删除不是真的delete&#xff0c;而是将重复的元素放到容器末尾 b unique函数的返回值是去重之后的尾地址 c…

c++的unique函数

unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要 #include <algorithm> 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素&#xff0c;注意 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容器的末尾&…

SQL查询JSON格式的字段值 JSON_UNQUOTE与JSON_EXTRACT 去除SQL中双引号

一、最常用的就是 JSON_EXTRACT()函数&#xff0c;用于提取字段值 selectJSON_EXTRACT(a.info,"$.Score")fromjsontest awhereJSON_EXTRACT(a.info,"$.name") "Bob" 二、JSON_UNQUOTE 去除 SQL 中 " " ? MySQL自5.7之后开始支持js…

unique函数的用法

unique函数是用于将矩阵数据中的相同元素删除&#xff0c;只留下不相同的唯一元素。 1.例如: 得到的B矩阵为&#xff1a; 这个相对简单&#xff0c;但是有时需要将矩阵中的元素相同行的删除&#xff0c;也可以用到unique 2.当需要删除矩阵中的出现多次的行数组时 例如&#x…

c++ unique函数详解

unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要#include <algorithm>头文件 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容器的末尾&#xff0c;返回值…

unique函数用法

unique函数用法 unique包含在头文件 #include <algorithm>函数作用&#xff1a;“去除”容器或数组中相邻元素之间重复出现的元素 unique函数的三个参数&#xff1a; 1、想要去重的数据集的起始地址 2、想要去重的最后一个元素的下一个元素的地址 3、比较函数(可以省…

MySQL JSON_EXTRACT()、JSON_UNQUOTE() 函数获取JSON串的值

JSON_EXTRACT()函数作用是读取数据库储存的json值&#xff0c;已key、value的形式获取某个键值 如果json字符串是对象{Object} 1&#xff1a;第一个参数为需要查询的json字段 2&#xff1a;第二个参数为json里需要获取的键名 $.key 如果json字符串是数组[Array] 1&#xff1a;…

c++ unique函数

unique函数属于STL中比较常用函数&#xff0c;它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除&#xff0c;并不是真的删除&#xff0c;而是指重复元素的位置被不重复的元素给占领了(详细情况&#xff0c;下面会讲)。由于它”删除”的是相邻的…

ubuntu启动后一直黑屏

好奇怪的一件事&#xff0c;昨晚使用完ubuntu后&#xff0c;和往常一样拍了快照&#xff0c;但今天打开后就一直黑屏&#xff0c;就突然的有了自己的思想&#xff0c;任我重启电脑都没有任何用处 我采用的方法 徽标cmd回车&#xff0c;输入如下命令,然后重启电脑 netsh winsoc…

ubuntu虚拟机开机黑屏系列解决办法

ubuntu虚拟机开机黑屏系列解决办法 前记解决方法方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;方法四&#xff1a;方法五&#xff1a;方法六&#xff1a; 后记 前记 ubuntu虚拟机玩的好好的&#xff0c;突然不知怎么着图形界面就卡住了&#xff0c;等待了好一会也不…