💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
💥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
🎉3 参考文献
[1]Razman Ayop (2022). PV-Battery-DG Sizing using Particle Swarm Optimization (PSO)