李 文
(安徽機(jī)電職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241000)
基于Elman神經(jīng)網(wǎng)絡(luò)算法的電力負(fù)荷預(yù)測模型研究
李 文
(安徽機(jī)電職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241000)
隨著社會經(jīng)濟(jì)的發(fā)展,也為電力負(fù)荷系統(tǒng)帶來極大的考驗(yàn).如何才能夠讓電力保持平穩(wěn)、高質(zhì)量的輸送,使客戶的用電需求得到用力保證,避免因?yàn)閿嚯娊o客戶造成極大的經(jīng)濟(jì)損失,這我們需要不斷思索的問題.隨著依托于人工神經(jīng)系統(tǒng)的新預(yù)測技術(shù)出現(xiàn),對電力負(fù)荷的預(yù)測越來越準(zhǔn)確,在保障電力順利平穩(wěn)輸送的同時(shí),也減少可人工成本的支出.本文通過Elman型神經(jīng)網(wǎng)絡(luò),對電力負(fù)荷預(yù)測進(jìn)行研究,并通過Matlab進(jìn)行仿真.
神經(jīng)網(wǎng)絡(luò);電力負(fù)荷;仿真
前饋型網(wǎng)絡(luò)是構(gòu)成神經(jīng)網(wǎng)絡(luò)的主要類型之一,另外一種非常重要構(gòu)成類型則是反饋型網(wǎng)絡(luò),這主要是根據(jù)信號在神經(jīng)網(wǎng)絡(luò)中的走向來看區(qū)分的.相比而言,前者是所有神經(jīng)網(wǎng)絡(luò)中最早被提出的,也是公認(rèn)的最簡單的一種神經(jīng)網(wǎng)絡(luò),它的工作原理是神經(jīng)元信號從輸入層開始,只能不停地向前流動,一直到輸出層為止,如同我們交通道路中的不能掉頭的單行道一般.我們通常講的回歸網(wǎng)絡(luò),其實(shí)就是說反饋型神經(jīng)網(wǎng)絡(luò),這種網(wǎng)絡(luò)算法比前饋神經(jīng)網(wǎng)絡(luò)更為繁雜難算,換而言之,發(fā)聵神經(jīng)網(wǎng)絡(luò)型就是指神經(jīng)元信號在從輸入層到輸出層輸送的過程中,可以進(jìn)行反向輸送.因?yàn)榘l(fā)聵型神經(jīng)網(wǎng)絡(luò)具有十分明顯的延遲、發(fā)聵等的特征.
這就相當(dāng)于生活中人們最常用的Elman神經(jīng)網(wǎng)絡(luò),還有Boltzmann神經(jīng)網(wǎng)絡(luò)也都算于反饋型神經(jīng)網(wǎng)絡(luò).其中Elman神經(jīng)網(wǎng)絡(luò)最有代表性,是Elman在1990年時(shí)率先提出的.
首先是輸入這個(gè)層面,其次是隱含,還有承接和輸出,共同組成了Elman型神經(jīng)網(wǎng)絡(luò)的最主要流程.如圖23-1示,如果將其中輸入、隱含以及輸出這三個(gè)層次進(jìn)行相連的話,就會形成一種前饋式網(wǎng)絡(luò).
輸入層的功能就是對信號進(jìn)行輸送,而輸出層的功能就是對信號進(jìn)行線性加權(quán).隱含層的功能就是進(jìn)行線性或者非線性函數(shù)的傳送,可以認(rèn)為是一個(gè)一步延時(shí)算子,起到一個(gè)承上啟下的作用,它主要是對隱含層的傳輸?shù)男盘栠M(jìn)行記錄以后,并將其傳輸給輸入層.
Elman神經(jīng)網(wǎng)絡(luò)有兩大突出優(yōu)勢:第一,利用承接層的延遲以及存儲排除隱匿層,其可以自動連接到隱含層的進(jìn)入.上述自動連接的突進(jìn)能夠?qū)⑦^去狀態(tài)的數(shù)據(jù)非常靈活,再加上融入了內(nèi)部反饋網(wǎng)絡(luò)能夠?qū)⒕W(wǎng)絡(luò)自身處理信息的能力提升,最終建立動態(tài)數(shù)字模型.第二,它可以任何一個(gè)精確度接近任何一個(gè)非線性映射,忽視外部噪聲對系統(tǒng)的影響,進(jìn)而建立數(shù)字模型.
下面就是23_1,Elman網(wǎng)絡(luò)的非線性狀態(tài)空間數(shù)學(xué)計(jì)算方式:
y(k)=g(w3x(k))
x(k)=f(w1xc(k)+w2(u(k-1)))
xc(k)=x(k-1)
式中,y為m維輸結(jié)點(diǎn)向量;x為n維中間層結(jié)點(diǎn)單元向量;u維r維輸入向量;x為n維反饋狀態(tài)向量;w3為中間層到輸出層連接權(quán)值;w2為輸入層到中間層連接權(quán)值;w1為承接層到中間層連接權(quán)值;上式當(dāng)中,g(*)則代表的是排出神經(jīng)元傳導(dǎo)這個(gè)函數(shù),即線性組合用的中間層;f(*)則代表了傳導(dǎo)中間層神經(jīng)元這個(gè)函數(shù),我們還會用S來替代.
與此同時(shí),Elman神線網(wǎng)絡(luò)也使用BP算法.式中,yk(w)為目標(biāo)輸入向量.
發(fā)電系統(tǒng)、電網(wǎng)以及用電客戶三者統(tǒng)一構(gòu)成了整個(gè)電力系統(tǒng),不間斷地滿足廣大客戶的生產(chǎn)、生活用電需求是電力系統(tǒng)的主要職能.由于電是一種無色無形的能量,具有極大的危險(xiǎn)性,再加上存儲技術(shù)上的限制,電在生產(chǎn)過程的中,很難被大量儲存下來.同時(shí),客戶對電能的消耗也不是一成不變的,而是隨機(jī)性發(fā)生變化,忽高忽低,這對電力負(fù)荷系統(tǒng)帶來極大的考驗(yàn).如何才能夠讓電力保持平穩(wěn)、高質(zhì)量的輸送,使客戶的用電需求得到用力保證,避免因?yàn)閿嚯娊o客戶造成極大的經(jīng)濟(jì)損失,這是電力部門正不斷思索的問題.隨著依托于人工神經(jīng)系統(tǒng)的新預(yù)測技術(shù)出現(xiàn),對電力負(fù)荷的預(yù)測越來越準(zhǔn)確,在保障電力順利平穩(wěn)輸送的同時(shí),也減少可人工成本的支出.
與傳統(tǒng)的預(yù)測方法有所不同的是,新的負(fù)荷預(yù)測方法是運(yùn)用人工神經(jīng)網(wǎng)絡(luò)中的一種非數(shù)學(xué)模型預(yù)測法而建立起來的.而傳統(tǒng)的負(fù)荷預(yù)測方法,先將以往的負(fù)荷數(shù)據(jù)進(jìn)行人工統(tǒng)計(jì),然后利用數(shù)學(xué)方程式,建立一個(gè)數(shù)學(xué)模型,其特點(diǎn)就是計(jì)算速度十分快,這種預(yù)測方法十分適用于對小范圍內(nèi)的電力負(fù)荷進(jìn)行預(yù)測.但隨著我國社會日新月異,生產(chǎn)、生活用電量與日俱增,在更多的電力系統(tǒng)建設(shè)的同時(shí),其電力負(fù)荷變化更是越來越復(fù)雜.因?yàn)閭鹘y(tǒng)的預(yù)測方法自身也存在著嚴(yán)重的不足,預(yù)測范圍小,對環(huán)境的變化十分不適應(yīng),已經(jīng)滿足不了電力部門逐漸增加的需求,因此對新的預(yù)測技術(shù)進(jìn)行開發(fā)進(jìn)行改進(jìn),成為一個(gè)擺在電路部門面前,不得不解決的一個(gè)大難題.因?yàn)樨?fù)荷會隨著時(shí)間的變化而不時(shí)發(fā)生變化,很難用數(shù)學(xué)模型來表現(xiàn)清楚,隨著一種建立人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上的非數(shù)學(xué)模型預(yù)測法,推動了新的負(fù)荷預(yù)測方法的出現(xiàn).
與傳統(tǒng)的預(yù)測方法有所不同的是,新的預(yù)測方法是利用人工神經(jīng)網(wǎng)絡(luò)中的一種非數(shù)學(xué)模型預(yù)測法而進(jìn)行建立的.而傳統(tǒng)的負(fù)荷預(yù)測方法,先將以往的負(fù)荷數(shù)據(jù)進(jìn)行人工統(tǒng)計(jì),然后利用數(shù)學(xué)方程式,建立一個(gè)數(shù)學(xué)模型,其特點(diǎn)就是計(jì)算速度十分快,這種預(yù)測方法十分適用于對小范圍內(nèi)的電力負(fù)荷進(jìn)行預(yù)測.但隨著我國社會日新月異,生產(chǎn)因?yàn)閭鹘y(tǒng)的預(yù)測方法自身也存在著嚴(yán)重的不足,預(yù)測范圍小,對環(huán)境的變化十分不適應(yīng),已經(jīng)滿足不了電力部門逐漸增加的需求,因此對新的的預(yù)測技術(shù)進(jìn)行開發(fā)進(jìn)行改進(jìn),成為一個(gè)擺在電路部門面前,不得不解決的一個(gè)大難題.因?yàn)樨?fù)荷會隨著時(shí)間的變化而不時(shí)發(fā)生變化,很難用數(shù)學(xué)模型來表現(xiàn)清楚,隨著一種建立人工神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上的非數(shù)學(xué)模型預(yù)測法的出現(xiàn),推動了新的負(fù)荷預(yù)測方法的出現(xiàn).
隨著社會經(jīng)濟(jì)的發(fā)展,我國的生活、生產(chǎn)用電將人工神經(jīng)網(wǎng)絡(luò)和預(yù)測方法有機(jī)結(jié)合起來,并運(yùn)用二者的突出優(yōu)勢,打造一個(gè)數(shù)據(jù)模型.在所有的人工神經(jīng)網(wǎng)絡(luò)中,只有輸入延遲的反饋式神經(jīng)網(wǎng)絡(luò),非常適用于網(wǎng)絡(luò)模型的建立.在網(wǎng)絡(luò)模型建立后,通過對以往的電力負(fù)荷數(shù)據(jù)和預(yù)測數(shù)據(jù)進(jìn)行全面比較分析,對電力系統(tǒng)負(fù)荷運(yùn)行的規(guī)律進(jìn)行探索,并對未來的某個(gè)時(shí)段的電力負(fù)荷情況進(jìn)行預(yù)測,為該時(shí)段的電力負(fù)荷管控提供依據(jù).
通常來講,每天的9點(diǎn)到19點(diǎn),是電力系統(tǒng)當(dāng)天負(fù)荷高峰時(shí)期.下表是對每天9點(diǎn)到19點(diǎn)電力負(fù)荷數(shù)據(jù)的統(tǒng)計(jì),作者將用這些數(shù)據(jù)進(jìn)行一個(gè)網(wǎng)絡(luò)預(yù)測,看預(yù)測的結(jié)果是否和實(shí)際數(shù)據(jù)相一致.
表1 電力系統(tǒng)負(fù)荷數(shù)據(jù)表
本例中用到的關(guān)鍵函數(shù)為newelm(),其作用為創(chuàng)建一個(gè)Elman網(wǎng)絡(luò),其調(diào)用格式如下:
net=newelm(PR,[S1 S2SN1],{TF1 TF2TFN1},BTF,BLF,PF,IPF,OPF)
在上述公式中,R版塊中要素的具體值是P;T為SN*Q2的具有SN個(gè)元素的輸出矩陣;Si為第i層的長度;Tfi為第i層的傳遞函數(shù),默認(rèn)值:隱藏層為’tansig’,輸出層為’purelin’;BTF具體指神經(jīng)網(wǎng)絡(luò)反向傳達(dá),通常用’trainlm’來表示;BLF具體指神經(jīng)網(wǎng)絡(luò)權(quán)值指反向傳達(dá),一般表示為’learngdm’;PF 為性能函數(shù),默認(rèn)值為’mse’;IPF 為輸入處理函數(shù),默認(rèn)值為:’{’fixunknowns’,’removeconstantrows’,’mapminmax’}’;OPF 為輸出處理函數(shù),默認(rèn)值為’{ ‘removeconstantrows’,’mapminmax’}’
MATLAB實(shí)現(xiàn)代碼如下:
% 建立在,Elman神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上的電力負(fù)荷預(yù)測模型研究
%% 清空環(huán)境變量
clc;
clear all
close all
nntwarn off;
%% 數(shù)據(jù)載入
load data;
a=data;
%% 選取訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)
for i=1:6
p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];
end
% 訓(xùn)練數(shù)據(jù)輸入
p_train=p(1:5,:);
% 訓(xùn)練數(shù)據(jù)輸出
t_train=a(4:8,:);
% 測試數(shù)據(jù)輸入
p_test=p(6,:);
% 測試數(shù)據(jù)輸出
t_test=a(9,:);
% 為適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)做轉(zhuǎn)置
p_train=p_train';
t_train=t_train';
p_test=p_test';
%% 網(wǎng)絡(luò)的建立和訓(xùn)練
% 采用輪回使用,將各個(gè)隱藏層神經(jīng)元的數(shù)量進(jìn)行建立
nn=[7 11 14 18];
for i=1:4
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];% 進(jìn)行Elman神經(jīng)網(wǎng)的構(gòu)建看不到的層是nn(i)個(gè)神經(jīng)元
net=newelm(threshold,[nn(i),3],{'tansig','purelin'});
% 設(shè)置網(wǎng)絡(luò)訓(xùn)練參數(shù)
net.trainparam.epochs=1000;
net.trainparam.show=20;
% 初始化網(wǎng)絡(luò)
net=init(net);
% Elman網(wǎng)絡(luò)訓(xùn)練
net=train(net,p_train,t_train);
% 預(yù)測數(shù)據(jù)
y=sim(net,p_test);
% 計(jì)算誤差
error(i,:)=y'-t_test;
end
%%;利用作圖的方式查看具體隱藏層神經(jīng)元的數(shù)量,得到的網(wǎng)絡(luò)的預(yù)料結(jié)果
plot(1:1:3,error(1,:),'-ro','linewidth',2);
hold on;
plot(1:1:3,error(2,:),'b:x','linewidth',2);
hold on;
plot(1:1:3,error(3,:),'k-.s','linewidth',2);
hold on;
plot(1:1:3,error(4,:),'c--d','linewidth',2);
title('Elman預(yù)測誤差圖')
set(gca,'Xtick',[1:3])
legend('7','11','14','18','location','best')
xlabel('時(shí)間點(diǎn)')
ylabel('誤差')
hold off;
預(yù)測結(jié)果如下圖所示:
我們可以從上圖看出,在這次預(yù)測的誤差是非常小的,簡直可以忽略不計(jì).只有出現(xiàn)7個(gè)神經(jīng)元的時(shí)候,存在著較大的誤差,這可能和操作不當(dāng)有關(guān).在出現(xiàn)18個(gè)神經(jīng)元時(shí),誤差變成了最小,其波動幅度十分的小,可見18個(gè)神經(jīng)元才是本次負(fù)荷預(yù)測中最準(zhǔn)確的.
其實(shí)現(xiàn)在能夠準(zhǔn)確對電力負(fù)荷進(jìn)行預(yù)測的技術(shù)其實(shí)有很多,每一種的正確率都很高.但是隨著電力行業(yè)迅速發(fā)展,其系統(tǒng)更加龐雜,如何讓電力負(fù)荷預(yù)測能夠跟上電力行業(yè)的發(fā)展步伐,仍需要電力部門進(jìn)行探索研究.本案例為時(shí)間序列類型數(shù)據(jù)預(yù)測提供了依據(jù)和思路.但是建立一個(gè)電力負(fù)荷預(yù)測,只有以往的預(yù)測數(shù)據(jù)是遠(yuǎn)遠(yuǎn)不夠的,畢竟歷史不能代表現(xiàn)在,這需要對各個(gè)方面進(jìn)行綜合考慮,如電力基礎(chǔ)數(shù)據(jù)、天氣情況,工作日和節(jié)假日的不同用電量等等.本例由于篇幅有限,對預(yù)測模型做了簡單化處理,但這并不影響Elman預(yù)測功能的演示.
〔1〕邰曉紅,王麗娜.基于模糊控制修正Elman神經(jīng)網(wǎng)絡(luò)的電力負(fù)荷短期動態(tài)預(yù)測[J].世界科技研究與發(fā)展,2016(04).
〔2〕陳冬灃,肖建華,馬留洋,孟安波.基于縱橫交叉算法與Elman神經(jīng)網(wǎng)絡(luò)的短期負(fù)荷預(yù)測研究 [J].貴州電力技術(shù),2016(11).
〔3〕郭姣姣.基于改進(jìn)Elman神經(jīng)網(wǎng)絡(luò)的短期電力負(fù)荷預(yù)測[D].遼寧工業(yè)大學(xué).
〔4〕趙銘揚(yáng),陳亞,李萍.改進(jìn)的Elman神經(jīng)網(wǎng)絡(luò)在短期電力負(fù)荷預(yù)測中的應(yīng)用[J].寧夏工程技術(shù),2016(06).
TP183;TM715
A
1673-260X(2017)11-0038-03
2017-08-07
安徽高校自然科學(xué)研究重點(diǎn)項(xiàng)目(KJ2016A141)
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2017年21期