天天看點

Matlab|基于BP神經網絡進行電力系統短期負荷預測

Matlab|基于BP神經網絡進行電力系統短期負荷預測

目錄

​​摘要​​

​​一、電力負荷資料導入​​

​​二、輸入輸出資料歸一化​​

​​三、建立和訓練BP神經網絡​​

​​四、 使用測試資料進行負荷預測​​

​​五、Matlab代碼展示​​

摘要

使用BP神經網絡實作簡單的電力負荷回歸預測任務。主要的步驟為:導入資料、資料歸一化、建立BP神經網絡、訓練BP神經網絡、使用測試資料預測負荷情況、誤差分析以及繪圖。

一、電力負荷資料導入

使用Matlab中的xlsread函數從指定的excel檔案中提取電力負荷資料,可以自己制定需要導入的天數,這裡設定導入5天的資料,如下圖所示:

Matlab|基于BP神經網絡進行電力系統短期負荷預測

其他全部資料:

Matlab|基于BP神經網絡進行電力系統短期負荷預測

二、輸入輸出資料歸一化

雖然神經⽹絡的各層的輸⼊信号分布不同,但最終“指向“的樣本标記是不變的,即邊緣機率不同⽽條件機率⼀緻。 為了降低分布變化的影響,可使⽤歸⼀化政策Normalization,把資料分布映射到⼀個确定的區間。神經⽹絡中,常⽤的歸⼀化政策有BN(Batch Normalization), WN(Weight Normalization), LN(Layer Normalization),IN(Instance Normalization)。

這裡使用max-min歸一化方法将資料全部歸一化到0-1之間,歸一化後的資料如下:

Matlab|基于BP神經網絡進行電力系統短期負荷預測

三、建立和訓練BP神經網絡

BP神經網絡是一種多層前饋神經網絡,在多層感覺器的基礎上增加誤差逆向傳播信号,用以處理非線性連續函數,該網絡由輸入層、隐含層、輸出層構成,其主要特點是信号前向傳遞,誤差反向傳播,可以用在系統模型辨識、預測或控制中。在前向傳遞中,輸入信号從輸入層經隐含層逐層處理,直至輸出層。每一層的神經元狀态隻影響下一層神經元狀态。如果輸出層得不到期望輸出﹐則轉入反向傳播,根據預測誤差調整網絡權值和門檻值﹐進而使BP神經網絡預測輸出不斷逼近期望輸出﹐其拓撲結構圖如圖1所示:

Matlab|基于BP神經網絡進行電力系統短期負荷預測

 本文指定輸入特征個數為1,輸出特征個數為1,設定神經元個數為100,設定學習率為0.001,使用Matlab中的newff函數建構BP神經網絡,使用train函數訓練BP神經網絡:

Matlab|基于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);
%% 建立網絡      

繼續閱讀