【ELM預(yù)測】基于灰狼算法優(yōu)化極限學(xué)習(xí)機(jī)預(yù)測附matlab代碼
【ELM預(yù)測】基于灰狼算法優(yōu)化極限學(xué)習(xí)機(jī)預(yù)測附matlab代碼
TT_Matlab
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 簡介
準(zhǔn)確的電池荷電狀態(tài)(SOC)估計是電動車輛正常工作的基本前提.針對目前電池荷電狀態(tài)估計時存在的非線性,不平穩(wěn)等干擾因素的影響,本工作提出了基于灰狼優(yōu)化算法的極限學(xué)習(xí)機(jī)的鋰離子電池SOC估計方法,以提高估計精度并縮短估計時長.傳統(tǒng)的極限學(xué)習(xí)機(jī)(ELM)直接隨機(jī)生成模型參數(shù),并對SOC進(jìn)行估計,該方法運(yùn)行速度快且泛化性能好.但極限學(xué)習(xí)機(jī)需要找出最優(yōu)的隱含層神經(jīng)元參數(shù)才能達(dá)到較高的精度.因此,通過灰狼優(yōu)化算法(GWO)進(jìn)一步優(yōu)化模型參數(shù),并通過選擇合適的激活函數(shù),彌補(bǔ)了傳統(tǒng)極限學(xué)習(xí)機(jī)的不足.
2 部分代碼
%___________________________________________________________________%
%
%___________________________________________________________________%
%
Grey Wolf Optimizer
function
[Alpha_score,Alpha_pos,Convergence_curve]=GWO(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
%
initialize alpha, beta, and delta_pos
Alpha_pos
=
zeros(1,dim);
Alpha_score
=
inf; %change this to -inf for maximization problems
Beta_pos
=
zeros(1,dim);
Beta_score
=
inf; %change this to -inf for maximization problems
Delta_pos
=
zeros(1,dim);
Delta_score
=
inf; %change this to -inf for maximization problems
%Initialize
the positions of search agents
Positions
=
initialization(SearchAgents_no,dim,ub,lb);
Convergence_curve
=
zeros(1,Max_iter);
l
=
0;% Loop counter
%
Main loop
while
l<Max_iter
for
i=1:size(Positions,1)
%
Return back the search agents that go beyond the boundaries of the search space
Flag4ub
=
Positions(i,:)>ub;
Flag4lb
=
Positions(i,:)<lb;
Positions(i,
:
)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
%
Calculate objective function for each search agent
fitness
=
fobj(Positions(i,:));
%
Update Alpha, Beta, and Delta
if
fitness<Alpha_score
Alpha_score
=
fitness; % Update alpha
Alpha_pos
=
Positions(i,:);
end
if
fitness>Alpha_score && fitness<Beta_score
Beta_score
=
fitness; % Update beta
Beta_pos
=
Positions(i,:);
end
if
fitness>Alpha_score && fitness>Beta_score && fitness<Delta_score
Delta_score
=
fitness; % Update delta
Delta_pos
=
Positions(i,:);
end
end
a
=
2-l*((2)/Max_iter); % a decreases linearly fron 2 to 0
%
Update the Position of search agents including omegas
for
i=1:size(Positions,1)
for
j=1:size(Positions,2)
r1
=
rand(); % r1 is a random number in [0,1]
r2
=
rand(); % r2 is a random number in [0,1]
A1
=
2*a*r1-a; % Equation (3.3)
C1
=
2*r2; % Equation (3.4)
D_alpha
=
abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1
X1
=
Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1
r1
=
rand();
r2
=
rand();
A2
=
2*a*r1-a; % Equation (3.3)
C2
=
2*r2; % Equation (3.4)
D_beta
=
abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2
X2
=
Beta_pos(j)-A2*D_beta; % Equation (3.6)-part 2
r1
=
rand();
r2
=
rand();
A3
=
2*a*r1-a; % Equation (3.3)
C3
=
2*r2; % Equation (3.4)
D_delta
=
abs(C3*Delta_pos(j)-Positions(i,j)); % Equation (3.5)-part 3
X3
=
Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3
Positions(i,j)
=
(X1+X2+X3)/3;% Equation (3.7)
end
end
l
=
l+1;
Convergence_curve(l)
=
Alpha_score;
end
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]王橋, 魏孟, 葉敏,等. 基于灰狼算法優(yōu)化極限學(xué)習(xí)機(jī)的鋰離子電池SOC估計[J]. 儲能科學(xué)與技術(shù), 2021.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價一覽!8省中午執(zhí)行谷段電價! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
全國消防救援總隊主官及簡歷(2023.2) 2023-02-10
-
盤點(diǎn) l 中國石油大慶油田現(xiàn)任領(lǐng)導(dǎo)班子 2023-02-28
-
我們的前輩!歷屆全國工程勘察設(shè)計大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報 2022-04-26
