当前位置:网站首页>Matlab|基于BP神经网络进行电力系统短期负荷预测
Matlab|基于BP神经网络进行电力系统短期负荷预测
2022-06-26 01:18:00 【电力系统代码】
目录
摘要
使用BP神经网络实现简单的电力负荷回归预测任务。主要的步骤为:导入数据、数据归一化、建立BP神经网络、训练BP神经网络、使用测试数据预测负荷情况、误差分析以及绘图。
一、电力负荷数据导入
使用Matlab中的xlsread函数从指定的excel文件中提取电力负荷数据,可以自己制定需要导入的天数,这里设置导入5天的数据,如下图所示:
其他全部数据:
二、输入输出数据归一化
虽然神经⽹络的各层的输⼊信号分布不同,但最终“指向“的样本标记是不变的,即边缘概率不同⽽条件概率⼀致。 为了降低分布变化的影响,可使⽤归⼀化策略Normalization,把数据分布映射到⼀个确定的区间。神经⽹络中,常⽤的归⼀化策略有BN(Batch Normalization), WN(Weight Normalization), LN(Layer Normalization),IN(Instance Normalization)。
这里使用max-min归一化方法将数据全部归一化到0-1之间,归一化后的数据如下:
三、建立和训练BP神经网络
BP神经网络是一种多层前馈神经网络,在多层感知器的基础上增加误差逆向传播信号,用以处理非线性连续函数,该网络由输入层、隐含层、输出层构成,其主要特点是信号前向传递,误差反向传播,可以用在系统模型辨识、预测或控制中。在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出﹐则转入反向传播,根据预测误差调整网络权值和阈值﹐从而使BP神经网络预测输出不断逼近期望输出﹐其拓扑结构图如图1所示:
本文指定输入特征个数为1,输出特征个数为1,设置神经元个数为100,设置学习率为0.001,使用Matlab中的newff函数建构BP神经网络,使用train函数训练BP神经网络:
四、 使用测试数据进行负荷预测
测试结果:
五、Matlab代码展示
本文仅展示部分代码,完整代码点这里:正在为您运送作品详情
clc;
clear;
close all;
%% 导入数据
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);
%% 创建网络
边栏推荐
猜你喜欢
基于邻接表的深度优先遍历
High availability in Internet three highs (high concurrency, high performance and high availability)
Implementation of depth first traversal based on adjacency matrix
官方零基础入门 Jetpack Compose 的中文课程来啦!
饼图变形记,肝了3000字,收藏就是学会!
vs2015+PCL1.8.1+qt5.12-----(1)
Ardiuno smart mosquito racket
Shell learning record (IV)
Consumer of microservices
Agent challenge - "Olympic running"
随机推荐
OpenAPI 3.0 规范-食用指南
购买了fastadmin小程序助手但是问题工单中无法发布工单
OpenAPI 3.0 specification - Food Guide
win32
Redis Lua沙盒绕过命令执行(CVE-2022-0543)
音视频与CPU架构
In depth good article: what is supernetting?
表达式的动态解析和计算,Flee用起来真香
Snake game
V4l2+qt video optimization strategy
Thirty ninth step
Introduction to bloc: detailed explanation of cube
What is the sudden power failure of iPhone and how to solve it?
Graphics rendering pipeline
请指教同花顺软件究竟是什么?在线开户安全么?
Which SMS plug-in is easy to use? The universal form needs to be tested by sending SMS
Scala 基础 (二):变量和数据类型
SDRAM controller -- implementation of arbitration module
基于邻接矩阵的广度优先遍历
@Query 疑难杂症