【預(yù)測(cè)模型-ELAMN預(yù)測(cè)】基于蟻群算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)回歸預(yù)測(cè)matlab代碼
【預(yù)測(cè)模型-ELAMN預(yù)測(cè)】基于蟻群算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)回歸預(yù)測(cè)matlab代碼
TT_Matlab
每天分享一點(diǎn)Matlab資料,一起成長(zhǎng)進(jìn)步。需要定制程序添加qq1575304183
1 簡(jiǎn)介
風(fēng)能,作為一種重要,有潛力,無(wú)污染,可再生、可持續(xù)的能源,已經(jīng)成為全球發(fā)電最為迅速的能源之一,越來(lái)越受到世界各國(guó)的青睞。近年來(lái),為緩解能源短缺問(wèn)題,改善環(huán)境,實(shí)現(xiàn)經(jīng)濟(jì)乃至人類的可持續(xù)發(fā)展,世界各國(guó)紛紛大力發(fā)展風(fēng)能資源。然而,在實(shí)際操作中,風(fēng)能固有的波動(dòng)性和間歇性通常會(huì)增加風(fēng)能入網(wǎng)的難度,致使風(fēng)電場(chǎng)輸出功率不穩(wěn)定,嚴(yán)重影響輸出的電能質(zhì)量,大大增加了電網(wǎng)安全性和穩(wěn)定性運(yùn)行風(fēng)險(xiǎn),因此,風(fēng)速預(yù)測(cè)在風(fēng)電相關(guān)工作中至關(guān)重要,準(zhǔn)確、可靠的預(yù)測(cè)結(jié)果不僅有利于調(diào)度人員事先掌握風(fēng)電場(chǎng)的功率變化情況,及時(shí)制定調(diào)度運(yùn)行計(jì)劃,提高能量轉(zhuǎn)換效率、降低風(fēng)險(xiǎn),增加發(fā)電量等,同時(shí)也有利于風(fēng)電并網(wǎng)穩(wěn)定運(yùn)行和有效消納,對(duì)可能存在影響電網(wǎng)安全穩(wěn)定運(yùn)行的風(fēng)險(xiǎn)及時(shí)預(yù)警,從而避免風(fēng)電功率隨機(jī)波動(dòng)造成電能損耗甚至電網(wǎng)崩潰。近年來(lái),國(guó)內(nèi)外學(xué)者進(jìn)行了大量風(fēng)速預(yù)測(cè)相關(guān)研究,風(fēng)速預(yù)測(cè)水平得到一定程度的提升。單一預(yù)測(cè)模型雖簡(jiǎn)單容易實(shí)施,但其預(yù)測(cè)精度往往較低,難以滿足風(fēng)電場(chǎng)發(fā)電的需求。相比之下,基于優(yōu)化算法和數(shù)據(jù)分解法的混合預(yù)測(cè)模型對(duì)風(fēng)速預(yù)測(cè)性能有很大的提升。因此,這些模型往往會(huì)降低預(yù)測(cè)結(jié)果的穩(wěn)定性,對(duì)風(fēng)電場(chǎng)發(fā)電以及風(fēng)電并網(wǎng)的安全性和穩(wěn)定性帶來(lái)巨大的挑戰(zhàn)。針對(duì)如上問(wèn)題,本文構(gòu)建出一個(gè)基于蟻群算法和Elman神經(jīng)網(wǎng)絡(luò)的混合預(yù)測(cè)模型,本文所提出的混合預(yù)測(cè)模型不僅可以降低預(yù)測(cè)誤差,提高風(fēng)速預(yù)測(cè)精度,增強(qiáng)預(yù)測(cè)結(jié)果的穩(wěn)定性,同時(shí)對(duì)風(fēng)電場(chǎng)發(fā)電的完善,發(fā)展以及風(fēng)電并網(wǎng)安全管理也大有裨益。
Elman 神經(jīng)網(wǎng)絡(luò)是一種局部反饋遞歸神經(jīng)網(wǎng)絡(luò),包括輸入層、隱藏層、承接層和輸出層,由于其良好的動(dòng)態(tài)記憶和時(shí)變能力,自1990年Elman首次提出以來(lái),Elman神經(jīng)網(wǎng)絡(luò)在時(shí)間序列預(yù)測(cè)中得到了廣泛的應(yīng)用,但由于隨機(jī)選擇初始值和閾值,且采用梯度下降法尋優(yōu),其網(wǎng)絡(luò)學(xué)習(xí)速度較慢且預(yù)測(cè)的精度比較低。本文利用 WOA 優(yōu)化 Elman神經(jīng)網(wǎng)絡(luò)的初始權(quán)值及閾值,提高了 Elman 神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度。
第一步 初始化 Elman 網(wǎng)絡(luò)所需參數(shù),并新建 Elman 網(wǎng) 絡(luò),net=newelm(minmax(input),[11,1],{’tansig’,’purelin’},’traingdx’),其中 input 是訓(xùn)練集數(shù)據(jù),tansig 是隱藏層的激活函數(shù),purelin是輸出層激活函數(shù),traingdx是梯度下降函數(shù);
第二步 初始化ACO各參數(shù),包括螞蟻的數(shù)量m 、最大迭代次數(shù)Maxiter,參數(shù)的上界ub及下界lb;
第三步 不斷迭代蟻群優(yōu)化網(wǎng)絡(luò),直到迭代結(jié)束形成最優(yōu)個(gè)體,其中最優(yōu)個(gè)體包括權(quán)值w1、w2及w3,閾值b1和b2;
第四步 Elman 神經(jīng)網(wǎng)絡(luò)解析最優(yōu)個(gè)體,利用解析后的權(quán)值及閾值訓(xùn)練Elman神經(jīng)網(wǎng)絡(luò)并預(yù)測(cè)風(fēng)速數(shù)據(jù)。
2 部分代碼
while NC<=NC_max %停止條件之一:達(dá)到最大迭代次數(shù),停止
%%第二步:將m只螞蟻放到n個(gè)城市上
Randpos=[]; %隨即存取
for i=1:(ceil(m/n))
Randpos=[Randpos,randperm(n)];
end
Tabu(:,1)=(Randpos(1,1:m))’;
%%第三步:m只螞蟻按概率函數(shù)選擇下一座城市,完成各自的周游
for j=2:n %所在城市不計(jì)算
for i=1:m
visited=Tabu(i,1:(j-1)); %記錄已訪問(wèn)的城市,避免重復(fù)訪問(wèn)
J=zeros(1,(n-j+1)); %待訪問(wèn)的城市
P=J; %待訪問(wèn)城市的選擇概率分布
Jc=1;
for k=1:n
if length(find(visited==k))==0 %開(kāi)始時(shí)置0
J(Jc)=k;
Jc=Jc+1; %訪問(wèn)的城市個(gè)數(shù)自加1
end
end
%下面計(jì)算待選城市的概率分布
for k=1:length(J)
P(k)=(Tau(visited(end),J(k))^Alpha)*(Eta(visited(end),J(k))^Beta);
end
P=P/(sum(P));
%按概率原則選取下一個(gè)城市
Pcum=cumsum(P); %cumsum,元素累加即求和
Select=find(Pcum>=rand); %若計(jì)算的概率大于原來(lái)的就選擇這條路線
to_visit=J(Select(1));
Tabu(i,j)=to_visit;
end
end
if NC>=2
Tabu(1,:)=R_best(NC-1,:);
end
%%第四步:記錄本次迭代最佳路線
L=zeros(m,1); %開(kāi)始距離為0,m*1的列向量
for i=1:m
R=Tabu(i,:);
for j=1:(n-1)
L(i)=L(i)+D(R(j),R(j+1)); %原距離加上第j個(gè)城市到第j+1個(gè)城市的距離
end
L(i)=L(i)+D(R(1),R(n)); %一輪下來(lái)后走過(guò)的距離
end
L_best(NC)=min(L); %最佳距離取最小
pos=find(L==L_best(NC));
R_best(NC,:)=Tabu(pos(1),:); %此輪迭代后的最佳路線
L_ave(NC)=mean(L); %此輪迭代后的平均距離
NC=NC+1 %迭代繼續(xù)
%%第五步:更新信息素
Delta_Tau=zeros(n,n); %開(kāi)始時(shí)信息素為n*n的0矩陣
for i=1:m
for j=1:(n-1)
Delta_Tau(Tabu(i,j),Tabu(i,j+1))=Delta_Tau(Tabu(i,j),Tabu(i,j+1))+Q/L(i);
%此次循環(huán)在路徑(i,j)上的信息素增量
end
Delta_Tau(Tabu(i,n),Tabu(i,1))=Delta_Tau(Tabu(i,n),Tabu(i,1))+Q/L(i);
%此次循環(huán)在整個(gè)路徑上的信息素增量
end
Tau=(1-Rho).*Tau+Delta_Tau; %考慮信息素?fù)]發(fā),更新后的信息素
%%第六步:禁忌表清零
Tabu=zeros(m,n); %%直到最大迭代次數(shù)
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]朱昶勝, 康亮河, and 馮文芳. "基于自適應(yīng)鯨魚(yú)優(yōu)化算法結(jié)合Elman神經(jīng)網(wǎng)絡(luò)的股市收盤價(jià)預(yù)測(cè)算法." 計(jì)算機(jī)應(yīng)用 40.5(2020):9.
[2]郝晶. 基于蟻群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的包頭地區(qū)中長(zhǎng)期電力負(fù)荷預(yù)測(cè). Diss. 華北電力大學(xué).
微信掃一掃贊賞作者
贊賞
發(fā)送給作者
人贊賞
長(zhǎng)按二維碼向我轉(zhuǎn)賬
受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過(guò)二維碼轉(zhuǎn)賬支持公眾號(hào)。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
