💥💥💞💞歡迎來到本部落格❤️❤️💥💥
🏆部落客優勢:🌞🌞🌞部落格内容盡量做到思維缜密,邏輯清晰,為了友善讀者。
⛳️座右銘:行百裡者,半于九十。
目錄
💥1 概述
📚2 運作結果
🎉3 參考文獻
🌈4 Matlab代碼實作
💥1 概述
本文基于能源成本(COE)和供電機率損失(LPSP)的粒子群優化(PSO)對獨立光伏-電池-柴油發電機進行選型,并用Matlab代碼實作。
📚2 運作結果
%% Main PSO
for n_ite=1:set.Niteration
for n_par=1:set.Nparticle
[LPSP,COE]=EMS(particle(n_par).position(1),...
particle(n_par).position(2),...
particle(n_par).position(3));
%% Calculate Mark
Mark=set.weight_LPSP*abs(LPSP-set.desired_LPSP)+...
set.weight_COE*COE/set.Normal_COE;
%% Best Particle
if isempty(particle(n_par).best_Mark) || particle(n_par).best_Mark>Mark
particle(n_par).best_position=particle(n_par).position;
particle(n_par).best_LPSP=LPSP;
particle(n_par).best_COE=COE;
particle(n_par).best_Mark=Mark;
end
%% Best Global
if (n_ite==1 && n_par==1) || best_global.Mark>Mark
best_global.position=particle(n_par).position;
best_global.LPSP=LPSP;
best_global.COE=COE;
best_global.Mark=Mark;
end
log_global(n_ite)=best_global;
%% Velocity and New Position
particle(n_par).velocity=set.w*particle(n_par).velocity...
+set.c1*(particle(n_par).best_position-particle(n_par).position)...
+set.c2*(best_global.position-particle(n_par).position);
particle(n_par).position=particle(n_par).position...
+particle(n_par).velocity;
%% Round Position
particle(n_par).position(1)=round(particle(n_par).position(1));
particle(n_par).position(2)=round(particle(n_par).position(2));
particle(n_par).position(3)=round(particle(n_par).position(3));
%% Limit Position
if particle(n_par).position(1)<set.Npv_min
particle(n_par).position(1)=set.Npv_min;
end
if particle(n_par).position(2)<set.Nbat_min
particle(n_par).position(2)=set.Nbat_min;
end
if particle(n_par).position(3)<set.Ndg_min
particle(n_par).position(3)=set.Ndg_min;
end
if particle(n_par).position(1)>set.Npv_max
particle(n_par).position(1)=set.Npv_max;
end
if particle(n_par).position(2)>set.Nbat_max
particle(n_par).position(2)=set.Nbat_max;
end