【预测模型】BP神经网络的电力负荷预测模型【Matlab 213期】

一、简介

BP网络(Back Propagation),是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。

BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。

BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
在这里插入图片描述
在这里插入图片描述
2 BP神经网络模型及其基本原理
在这里插入图片描述
3 BP_PID算法流程
在这里插入图片描述

二、源代码

function main()

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    month = 12;  %训练月份
    day_start = 5; %开始日期
    day_len = 5;  %训练天数
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    file_path = '2018负荷预测数据';
    map_maxmin = [];
    output = [];

    for day = day_start:1:(day_start + day_len - 1)
        [raw_data, raw_max ,raw_min] = read_load_data_from_excel(file_path, month ,day);
        data_temp =  my_map(1, raw_data, raw_max, raw_min, 1, 0);
        map_maxmin = cat(1, map_maxmin, [0 1]);
        output = cat(1, output, data_temp);
        target_day = day + 1;
    end

    [target_data, target_max, target_min] = read_load_data_from_excel(file_path, month ,target_day);
    t_d =  my_map(1, target_data, target_max, target_min, 1, 0);

    net = newff(map_maxmin, [6,40,1], {
    
    'tansig','logsig','purelin'}, 'traincgf');

    net.trainParam.epochs = 1000000;%设置最大迭代次数
    net.trainParam.goal = 0.001;%设置神经网络的训练的目标误差
    net.trainParam.lr = 0.1;%学习率

    goal_net = train(net, output, t_d);%训练神经网络,返回训练好的网络和误差记录
    function [output] = my_map(type, raw_data, raw_data_max, raw_data_min, max, min)

if type ~= 0
    output = my_pos_map(raw_data, raw_data_max, raw_data_min, max, min);
end

if type ~= 1 
    output = my_rev_map(raw_data, raw_data_max, raw_data_min, max, min);
end

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 912100926
往期回顾>>>>>>
【预测模型】粒子群之lssvm预测模型【Matlab 005期】
【lssvm预测】鲸鱼优化算法之lssvm预测【Matlab 006期】
【SVM预测】蝙蝠算法之SVM预测模型【Matlab 007期】
【SVM预测】灰狼算法优化之SVM支持向量机预测模型【Matlab 008期】
【预测模型】基于BP神经网络的预测模型【Matlab 009期】
【lssvm预测】蝙蝠算法之改进的最小二乘支持向量机lssvm预测【Matlab 010期】
【ISTM预测】鲸鱼优化算法之改进的lSTM预测【Matlab 045期】
【SVM预测】蝙蝠算法之改进SVM预测模型【Matlab 046期】
【lSSVM预测】鲸鱼优化算法之lSSVM数据预测【Matlab 140期】
【ANN预测模型】差分算法之改进ANN网络预测【Matlab 141期】
【预测模型】RBF神经网络预测模型【Matlab 142期】
【预测模型】SVM回归预测算法之预测股票趋势【Matlab 143期】
【预测模型】BP神经网络之模型优化预测【Matlab 176期】
【预测模型】RLS算法之数据预测【Matlab 177期】
【预测模型】碳排放约束下之煤炭消费量优化预测【Matlab 178期】
【预测模型】神经网络的电力负荷预测模型【Matlab 211期】
【预测模型】SVM电力系统短期负荷预测【Matlab 212期】

猜你喜欢

转载自blog.csdn.net/m0_54742769/article/details/113801128