负荷数据集是2018年江阴市、宜兴市、以及锡澄电网在网供和全社会的负荷值。
文件夹如下:
数据集包含2018年全年的负荷值。每个文件夹包含当月所有的数据集。
每个表格打开后是下面这个样子的:
可以看到,该数据集是每15分钟进行一次采样,每个样本都包含全地区的负荷值和江阴市、宜兴市、以及锡澄电网在网供和全社会的负荷值。
还包含一个天气状况的excel,包含2018年全年每天的最高温和最低温,风向和天气情况。
大家在做负荷预测的时候,没必要把这么多数据全部用上!
以下是一个简单的采用BP神经网络进行负荷预测的例子,附上matlab代码。更多功能 还需要大家自己编辑开发啦!
%微信公众号搜索:淘个代码,获取更多免费代码
%禁止倒卖转售,违者必究!!!!!
%唯一官方店铺:https://mbd.pub/o/author-amqYmHBs/work
%%
clear
clc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 选择12月5号的数据进行训练
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); %第一个如果是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');
view(net)
net.trainParam.epochs = 1000000;%设置最大迭代次数
net.trainParam.goal = 0.001;%设置神经网络的训练的目标误差
net.trainParam.lr = 0.1;%学习率
goal_net = train(net, output, t_d);%训练神经网络,返回训练好的网络和误差记录
Y = sim(goal_net, output);
goal = my_map(0, Y', target_max, target_min, 1, 0); %反归一化
t=1:1:96;
figure
plot(t,target_data,'-o')
hold on
plot(t,goal,'-s')
legend('实际值','预测值')
xlabel('时间')
ylabel('负荷值')
%微信公众号搜索:淘个代码,获取更多免费代码
%禁止倒卖转售,违者必究!!!!!
%唯一官方店铺:https://mbd.pub/o/author-amqYmHBs/work
以上代码实现的功能是:采用12月5日-12月9日的负荷数据去预测12月10日的负荷值。
结果如下:
完整代码获取
付费后会出现网盘链接,感谢支持!