【DBN預(yù)測】基于EMD與深度置信網(wǎng)絡(luò)DBN軸承實(shí)現(xiàn)負(fù)荷預(yù)測matlab代碼

1 簡介

隨著智能燃?xì)夤芫W(wǎng)建設(shè)工作的飛速發(fā)展,負(fù)荷預(yù)測工作越來越重要。短期負(fù)荷預(yù)測是城市燃?xì)庀到y(tǒng)的一項(xiàng)基礎(chǔ)工作,其數(shù)據(jù)對項(xiàng)目規(guī)劃、運(yùn)行調(diào)度、管網(wǎng)維修以及工程技術(shù)分析都具有根本意義,因此尋求有效的短期負(fù)荷預(yù)測方法以提高預(yù)測精度是非常重要的。本文首先深入分析了經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)方法在正常采樣率條件下分解結(jié)果中可能存在虛假模態(tài)分量,而通過傅立葉插值法、sinc函數(shù)插值法等增加采樣點(diǎn)可以減少虛假分量的產(chǎn)生,但并不能從根本上解決多余模態(tài)的問題,因此提出一種改進(jìn)的模態(tài)分量消除算法,即利用經(jīng)驗(yàn)?zāi)B(tài)分解的完備性、能量原理和虛假模態(tài)分量性質(zhì),在每得到一個(gè)本征模分量時(shí),對這個(gè)分量進(jìn)行檢驗(yàn)是否滿足以上三個(gè)性質(zhì),從而除去虛假模態(tài)分量及消除本征模態(tài)分量中的誤差。接著闡述了一種添加了自適應(yīng)學(xué)習(xí)率的深度信念神經(jīng)網(wǎng)絡(luò)(Deep belief Neural Network,DBN),用以減少深度信念神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練時(shí)的迭代次數(shù),從而加快模型的訓(xùn)練速度。一方面,燃?xì)庳?fù)荷值受多種外界因素影響,選擇DBN可以通過逐層提取這些因素之間的內(nèi)在隱含聯(lián)系,達(dá)到模型預(yù)測目的。另一方面,傳統(tǒng)的DBN在預(yù)訓(xùn)練和調(diào)優(yōu)過程中注重調(diào)節(jié)w,b的值,忽視學(xué)習(xí)率α對預(yù)測結(jié)果的影響,本文在DBN的基礎(chǔ)上對學(xué)習(xí)率做自適應(yīng)研究,以提高模型訓(xùn)練速度,并且在一定程度上提高預(yù)測精度。最后詳細(xì)介紹了基于EMD分解的集成深度信念神經(jīng)網(wǎng)絡(luò)預(yù)測模型的建立,以及仿真實(shí)驗(yàn)分析的過程。由于燃?xì)庳?fù)荷數(shù)據(jù)在日常監(jiān)測過程中有部分?jǐn)?shù)據(jù)缺失和儀器讀數(shù)誤差,因此在預(yù)測前需要對原始數(shù)據(jù)預(yù)處理,解決負(fù)荷數(shù)據(jù)序列存在異常數(shù)據(jù)的問題,同時(shí)將負(fù)荷數(shù)據(jù)歸一化處理、影響因素?cái)?shù)值化處理,構(gòu)成預(yù)測模型的輸入矩陣。針對燃?xì)庳?fù)荷序列非線性非平穩(wěn)的特性,采用優(yōu)化的EMD將負(fù)荷數(shù)據(jù)序列分解成多個(gè)本征模向量,再分別進(jìn)行DBN建模和預(yù)測,得到各個(gè)分量的預(yù)測結(jié)果,最后使用線性神經(jīng)網(wǎng)絡(luò)將各分量的結(jié)果擬合得出最終預(yù)測結(jié)果。結(jié)果表明,集成方法確實(shí)能夠避免單一模型過擬合的問題,提高預(yù)測精度。

2 部分代碼

%腳本名:introduction.m

%功? 能:軟件介紹界面腳本

function varargout = introduction(varargin)

% INTRODUCTION MATLAB code for introduction.fig

%? ? ? INTRODUCTION, by itself, creates a new INTRODUCTION or raises the existing

%? ? ? singleton*.

%

%? ? ? H = INTRODUCTION returns the handle to a new INTRODUCTION or the handle to

%? ? ? the existing singleton*.

%

%? ? ? INTRODUCTION('CALLBACK',hObject,eventData,handles,...) calls the local

%? ? ? function named CALLBACK in INTRODUCTION.M with the given input arguments.

%

%? ? ? INTRODUCTION('Property','Value',...) creates a new INTRODUCTION or raises the

%? ? ? existing singleton*.? Starting from the left, property value pairs are

%? ? ? applied to the GUI before introduction_OpeningFcn gets called.? An

%? ? ? unrecognized property name or invalid value makes property application

%? ? ? stop.? All inputs are passed to introduction_OpeningFcn via varargin.

%

%? ? ? *See GUI Options on GUIDE's Tools menu.? Choose "GUI allows only one

%? ? ? instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help introduction

% Last Modified by GUIDE v2.5 11-Jan-2020 17:06:03

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name',? ? ? ?mfilename, ...

? ? ? ? ? ? ? ? ? ?'gui_Singleton',? gui_Singleton, ...

? ? ? ? ? ? ? ? ? ?'gui_OpeningFcn', @introduction_OpeningFcn, ...

? ? ? ? ? ? ? ? ? ?'gui_OutputFcn',? @introduction_OutputFcn, ...

? ? ? ? ? ? ? ? ? ?'gui_LayoutFcn',? [] , ...

? ? ? ? ? ? ? ? ? ?'gui_Callback',? ?[]);

if nargin && ischar(varargin{1})

? ? gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

? ? [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

? ? gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before introduction is made visible.

function introduction_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject? ? handle to figure

% eventdata? reserved - to be defined in a future version of MATLAB

% handles? ? structure with handles and user data (see GUIDATA)

% varargin? ?command line arguments to introduction (see VARARGIN)

% Choose default command line output for introduction

handles.output = hObject;

movegui(gcf,'center');?

set(gcf,'numbertitle','off','name','歡迎使用“一種基于EMD-DBN的用戶側(cè)負(fù)荷預(yù)測軟件V1.0”');

%窗口位置移到屏幕中央

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes introduction wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = introduction_OutputFcn(hObject, eventdata, handles)?

% varargout? cell array for returning output args (see VARARGOUT);

% hObject? ? handle to figure

% eventdata? reserved - to be defined in a future version of MATLAB

% handles? ? structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject? ? handle to pushbutton1 (see GCBO)

% eventdata? reserved - to be defined in a future version of MATLAB

% handles? ? structure with handles and user data (see GUIDATA)

close(introduction)

run('welcome2.m')

%關(guān)閉本界面,返回至歡迎界面

3 仿真結(jié)果

4 參考文獻(xiàn)

[1]黃維. 基于EMD分解和集成深度信念神經(jīng)網(wǎng)絡(luò)的短期燃?xì)庳?fù)荷預(yù)測[D]. 上海師范大學(xué).

博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。

部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。

**完整代碼獲取關(guān)注微信公眾號(hào)天天matlab**

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容