測模型-ELAMN預(yù)測】基于哈里斯鷹算法優(yōu)化ELMAN神經(jīng)網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)回歸預(yù)測matlab代碼)
1 簡介風(fēng)能,作為一種重要,有潛力,無污染,可再生、可持續(xù)的能源,已經(jīng)成為全球發(fā)電最為迅速的能源之一,越來越受到世界各國的青睞。近年來,為緩解能源短缺問題,改善環(huán)境,實現(xiàn)經(jīng)濟(jì)乃至人類的可持續(xù)發(fā)展,世界各國紛紛大力發(fā)展風(fēng)能資源。然而,在實際操作中,風(fēng)能固有的波動性和間歇性通常會增加風(fēng)能入網(wǎng)的難度,致使風(fēng)電場輸出功率不穩(wěn)定,嚴(yán)重影響輸出的電能質(zhì)量,大大增加了電網(wǎng)安全性和穩(wěn)定性運行風(fēng)險,因此,風(fēng)速預(yù)測在風(fēng)電相關(guān)工作中至關(guān)重要,準(zhǔn)確、可靠的預(yù)測結(jié)果不僅有利于調(diào)度人員事先掌握風(fēng)電場的功率變化情況,及時制定調(diào)度運行計劃,提高能量轉(zhuǎn)換效率、降低風(fēng)險,增加發(fā)電量等,同時也有利于風(fēng)電并網(wǎng)穩(wěn)定運行和有效消納,對可能存在影響電網(wǎng)安全穩(wěn)定運行的風(fēng)險及時預(yù)警,從而避免風(fēng)電功率隨機波動造成電能損耗甚至電網(wǎng)崩潰。近年來,國內(nèi)外學(xué)者進(jìn)行了大量風(fēng)速預(yù)測相關(guān)研究,風(fēng)速預(yù)測水平得到一定程度的提升。單一預(yù)測模型雖簡單容易實施,但其預(yù)測精度往往較低,難以滿足風(fēng)電場發(fā)電的需求。相比之下,基于優(yōu)化算法和數(shù)據(jù)分解法的混合預(yù)測模型對風(fēng)速預(yù)測性能有很大的提升。因此,這些模型往往會降低預(yù)測結(jié)果的穩(wěn)定性,對風(fēng)電場發(fā)電以及風(fēng)電并網(wǎng)的安全性和穩(wěn)定性帶來巨大的挑戰(zhàn)。針對如上問題,本文構(gòu)建出一個基于哈里斯鷹算法和Elman神經(jīng)網(wǎng)絡(luò)的混合預(yù)測模型本文所提出的混合預(yù)測模型不僅可以降低預(yù)測誤差,提高風(fēng)速預(yù)測精度,增強預(yù)測結(jié)果的穩(wěn)定性,同時對風(fēng)電場發(fā)電的完善,發(fā)展以及風(fēng)電并網(wǎng)安全管理也大有裨益。Elman 神經(jīng)網(wǎng)絡(luò)是一種局部反饋遞歸神經(jīng)網(wǎng)絡(luò)包括輸入層、隱藏層、承接層和輸出層由于其良好的動態(tài)記憶和時變能力自1990年Elman首次提出以來Elman神經(jīng)網(wǎng)絡(luò)在時間序列預(yù)測中得到了廣泛的應(yīng)用但由于隨機選擇初始值和閾值且采用梯度下降法尋優(yōu)其網(wǎng)絡(luò)學(xué)習(xí)速度較慢且預(yù)測的精度比較低。本文利用 HHO優(yōu)化 Elman神經(jīng)網(wǎng)絡(luò)的初始權(quán)值及閾值提高了 Elman 神經(jīng)網(wǎng)絡(luò)的預(yù)測精度。第一步 初始化 Elman 網(wǎng)絡(luò)所需參數(shù)并新建 Elman 網(wǎng) 絡(luò)netnewelmminmaxinput111tansigpurelintraingdx其中 input 是訓(xùn)練集數(shù)據(jù)tansig 是隱藏層的激活函數(shù)purelin是輸出層激活函數(shù)traingdx是梯度下降函數(shù)第二步 初始化HHO各參數(shù)包括鷹的數(shù)量m 、最大迭代次數(shù)Maxiter參數(shù)的上界ub及下界lb第三步 不斷迭代哈里斯鷹位置優(yōu)化網(wǎng)絡(luò)直到迭代結(jié)束形成最優(yōu)個體其中最優(yōu)個體包括權(quán)值w1、w2及w3閾值b1和b2第四步 Elman 神經(jīng)網(wǎng)絡(luò)解析最優(yōu)個體利用解析后的權(quán)值及閾值訓(xùn)練Elman神經(jīng)網(wǎng)絡(luò)并預(yù)測風(fēng)速數(shù)據(jù)。2 部分代碼function [sFeat,Sf,Nf,curve] jBHHO(feat,label,N,max_Iter,HO)beta 1.5;ub 1;lb 0;fun jFitnessFunction;dim size(feat,2);X zeros(N,dim);for i 1:Nfor d 1:dimif rand() 0.5X(i,d) 1;endendendfitR inf;fit zeros(1,N);Y zeros(1,dim);Z zeros(1,dim);curve inf;t 1;%---Iteration start-------------------------------------------------while t max_Iterfor i 1:Nfit(i) fun(feat,label,X(i,:),HO);if fit(i) fitRfitR fit(i);Xrb X(i,:);endendX_mu mean(X,1);for i 1:NE0 -1 2 * rand();E 2 * E0 * (1 - (t / max_Iter));if abs(E) 1q rand();if q 0.5k randi([1,N]);r1 rand();r2 rand();for d 1:dimXn X(k,d) - r1 * abs(X(k,d) - 2 * r2 * X(i,d));S 1 / (1 exp(-Xn));if rand() SX(i,d) 1;elseX(i,d) 0;endendelseif q 0.5r3 rand();r4 rand();for d 1:dimXn (Xrb(d) - X_mu(d)) - r3 * (lb r4 * (ub - lb));S 1 / (1 exp(-Xn));if rand() SX(i,d) 1;elseX(i,d) 0;endendendelseif abs(E) 1J 2 * (1 - rand());r rand();if r 0.5 abs(E) 0.5for d 1:dimDX Xrb(d) - X(i,d);Xn DX - E * abs(J * Xrb(d) - X(i,d));S 1 / (1 exp(-Xn));if rand() SX(i,d) 1;elseX(i,d) 0;endendelseif r 0.5 abs(E) 0.5for d 1:dimDX Xrb(d) - X(i,d);Xn Xrb(d) - E * abs(DX);S 1 / (1 exp(-Xn));if rand() SX(i,d) 1;elseX(i,d) 0;endendelseif r 0.5 abs(E) 0.5LF jLevyDistribution(beta,dim);for d 1:dimYn Xrb(d) - E * abs(J * Xrb(d) - X(i,d));S 1 / (1 exp(-Yn));if rand() SY(d) 1;elseY(d) 0;endZn Y(d) rand() * LF(d);S 1 / (1 exp(-Zn));if rand() SZ(d) 1;elseZ(d) 0;endendfitY fun(feat,label,Y,HO);fitZ fun(feat,label,Z,HO);if fitY fit(i)fit(i) fitY;X(i,:) Y;endif fitZ fit(i)fit(i) fitZ;X(i,:) Z;endelseif r 0.5 abs(E) 0.5LF jLevyDistribution(beta,dim);for d 1:dimYn Xrb(d) - E * abs(J * Xrb(d) - X_mu(d));S 1 / (1 exp(-Yn));if rand() SY(d) 1;elseY(d) 0;endZn Y(d) rand() * LF(d);S 1 / (1 exp(-Zn));if rand() SZ(d) 1;elseZ(d) 0;endendfitY fun(feat,label,Y,HO);fitZ fun(feat,label,Z,HO);if fitY fit(i)fit(i) fitY;X(i,:) Y;endif fitZ fit(i)fit(i) fitZ;X(i,:) Z;endendendendcurve(t) fitR;fprintf(\nIteration %d Best (BHHO) %f,t,curve(t))t t 1;endPos 1:dim;Sf Pos(Xrb 1);Nf length(Sf);sFeat feat(:,Sf);endfunction LF jLevyDistribution(beta,dim)nume gamma(1 beta) * sin(pi * beta / 2);deno gamma((1 beta) / 2) * beta * 2 ^ ((beta - 1) / 2);sigma (nume / deno) ^ (1 / beta);u randn(1,dim) * sigma;v randn(1,dim);step u ./ abs(v) .^ (1 / beta);LF 0.01 * step;end3 仿真結(jié)果4 參考文獻(xiàn)[1]朱昶勝, 康亮河, and 馮文芳. 基于自適應(yīng)鯨魚優(yōu)化算法結(jié)合Elman神經(jīng)網(wǎng)絡(luò)的股市收盤價預(yù)測算法. 計算機應(yīng)用 40.5(2020):9.[2]郭劍鷹, 夏李瑋, and 劉華軍. 基于Elman神經(jīng)網(wǎng)絡(luò)預(yù)測的機動目標(biāo)跟蹤濾波算法. 航天電子對抗 34.3(2018):6.[3]郭雨鑫, 劉升, 高文欣, 張磊. (2021). 多策略改進(jìn)哈里斯鷹優(yōu)化算法. 微電子學(xué)與計算機, 38(7), 7.?