神经网络预测模型算法_MATLAB Elman神经网络的数据预测—电力负荷预测模型研究...

点击上方蓝字关注“公众号”

afb6571a204fcff99ad199d98f906c82.gif

MATLAB  Elman神经网络的数据预测—电力负荷预测模型研究

负荷预测的核心问题是预测的技术问题,或者说是预测的数学模型。

传统的数学模型是用显示的数学表达式加以描述,具有计算量小、速度快的优点,但同时也存在很多的缺陷和局限性,比如不具备自学习、自适应能力、预测系统的鲁棒性没有保障等。

特别是随着我国经济的发展,电力系统的结构日趋复杂,电力负荷变化的非线性、时变性和不确定性的特点更加明显,很难建立一个合适的数学模型来清晰地表达负荷和影响负荷的变量之间的关系。

而基于神经网络的非数学模型预测法,为解决数学模型法的不足提供了新的思路。

1e314a93f82d6918d9b128dde8a5dd50.gif

根据神经网络运行过程中的信息流向,可分为前馈式和反馈式两种基本类型。

前馈网络通过引入隐层以及非线性转移函数,网络具有复杂的非线性映射能力。

但前馈网络的输出仅由当前输入和权矩阵决定,而与网络先前的输出状态无关。

反馈型神经网络也称递归网络或回归网络。

反馈网络的输入包括有延迟的输入或者输出数据的反馈。

由于有反馈的输入,所以它是一种反馈动力学系统。

这种系统的学习过程就是它的神经元状态的变化过程,这个过程最终会达到一个神经元状态不变的稳定态,也标志着学习过程的结束。

Elman神经网络是Elman于1990年提出的,该模型在前馈网络的隐含层中增加了一个承接层,作为一步延时的算子,以达到记忆的目的,从而使系统具有适应时变特性的能力,能直接动态反映动态过程系统的特性。

Elman型回归神经网络一般分为四层:输入层,中间层(隐含层),承接层和输出层。

起输入层,隐含层和输出成的连接类似于前馈网络,输入层的单元仅起信号传输作用,输出层单元起线性加权作用。

隐含层单元的传递函数可采用线性或非线性函数,承接层又称为上下文层或者状态层,它用来记忆隐含层单元前一时刻的输出值并返回给输入,可以认为是一个一步延时算子。

a7dae643cd8b36699b560a34089b7123.gif 309682a3f2f157b2d2d83899f84645fd.png 4d74e53f5071193866b54d3ed99f8233.png

01

Elman神经网络算法程序

%%  基于Elman神经网络的电力负荷预测模型研究%% 清空环境变量clc;clear allclose allnntwarn off;%% 数据载入load data;a=data;

0707e8b6e36b170e956cf4d593581e41.gif

01

训练

%% 选取训练数据和测试数据for i=1:6    p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];end% 训练数据输入p_train=p(1:5,:);% 训练数据输出t_train=a(4:8,:);% 测试数据输入p_test=p(6,:);% 测试数据输出t_test=a(9,:);% 为适应网络结构 做转置p_train=p_train';t_train=t_train';p_test=p_test';

02

%% 网络的建立和训练
% 利用循环,设置不同的隐藏层神经元个数
nn=[7 11 14 18];
for i=1:4
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
% 建立Elman神经网络 隐藏层为nn(i)个神经元
net=newelm(threshold,[nn(i),3],{'tansig','purelin'});
% 设置网络训练参数
net.trainparam.epochs=1000;
net.trainparam.show=20;
% 初始化网络
net=init(net);
% Elman网络训练
net=train(net,p_train,t_train);
% 预测数据
y=sim(net,p_test);
% 计算误差
error(i,:)=y'-t_test;
end

03

%% 通过作图 观察不同隐藏层神经元个数时,网络的预测效果
plot(1:1:3,error(1,:),'-ro','linewidth',2);
hold on;
plot(1:1:3,error(2,:),'b:x','linewidth',2);
hold on;
plot(1:1:3,error(3,:),'k-.s','linewidth',2);
hold on;
plot(1:1:3,error(4,:),'c--d','linewidth',2);
title('Elman预测误差图')
set(gca,'Xtick',[1:3])
legend('7','11','14','18','location','best')
xlabel('时间点')
ylabel('误差')
hold off;

04

仿真结果图

a9261cf09aea467f1c1b7a944c2d3c38.png

3692138329c0c9da3cb9cbc5f0ffb7c6.png

cb92bd37a2b55ae2104db5f13b974b03.gif

具体仿真程序链接,微信公众号回复【神经网络】即可获得链接。

未完待续

扫码关注

不迷路

f7d8761be97da7966936ef0f3ea017c7.gif

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值