个人主页:研学社的博客
欢迎来到本博客❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
本文目录如下:
目录
1 概述
1.1 微网内分布式电源、储能发电特性
1.2 微电网多目标优化模型
2 运行结果
3 Matlab代码实现
4 参考文献
参考文献:
微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要意义。微电网的发展目标既要满足电力供应的基本需求,又要提高经济效益和环境保护。对此, 提出了一种综合考虑微电网系统运行成本和环境保护成本的并网模式下微电网多目标优化调 度模型。同时采用改进的粒子群算法对优化模型进行求解。仿真结果表明,该模型可以有效降低用户的用电成本和环境污染,促进微电网的优化运行,并验证了改进的粒子群算法的优越性能。
本文考虑了惯性因子和粒子自适应变异的改进粒子群算法解决之
部分代码:
%% 初始化参数
global PV;
global WT;
%蓄电池最大放电功率(正表示为电负荷供电,即放电)
BESSMax_dischar=30;
%蓄电池最大充电功率
BESSMax_char=-30;
%柴油机最大发电功率
DEMax=30;
%柴油机最小发电功率
DEMin=6;
%燃气轮机最大发电功率
MTMax=30;
%燃气轮机最小发电功率
MTMin=3;
%主网交互最大功率(正表示为电负荷供电)
GridMax=30;
%主网交互最小功率
GridMin=-30;
%% 种群初始化
if nargin==0 %nargin是判断输入变量个数的函数
c = [0.1,0.2]; % 加速因子
iw = [0.5 0.001]; % 惯性因子
max_iter =100; % 最大迭代次数
%各设备出力约束
for n=1:144 %粒子长度为144(光伏,风电,储能,柴油,燃气轮机,主网的6*24个小时出力)
if n<25
lower_bound(n)=0;
upper_bound(n) =PV(n);
end
if n>24&&n<49
lower_bound(n)=0;
upper_bound(n) =WT(n-24);
end
if n>48&&n<73
lower_bound(n)=BESSMax_char;
upper_bound(n) =BESSMax_dischar;
end
if n>72&&n<97
lower_bound(n)=DEMin;
upper_bound(n) =DEMax;
end
if n>96&&n<121
lower_bound(n)=MTMin;
upper_bound(n) =MTMax;
end
if n>120
lower_bound(n)=GridMin;
upper_bound(n) =GridMax;
end
end
swarm_size=100; % 种群个数
rep_size=100; % 存档库大小
grid_size=7; % 每个维度的网格数
alpha=0.1; % 通货膨胀率
beta=2; % 领导人选择压力
gamma=2; % 删除选择压力
mu=0.1; % 变异速率
problem=@prob; % 创建函数句柄为problem,函数为pro,可以简单理解为调用
end
%% 初始化粒子
fprintf('初始化种群中\n')
w = @(it) ((max_iter - it) - (iw(1) - iw(2)))/max_iter + iw(2); %更新惯性因子--改进粒子群算法
pm = @(it) (1-(it-1)/(max_iter-1))^(1/mu); %类比遗传算法引入变异操作,更新变异速率,在particle函数的78-84行
swarm(1,swarm_size) = Particle(); %调用Particle函数,从obj中得到swarm_size
for i = 1:swarm_size
swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
retry = 0;
while swarm(i).infeasablity > 0 && retry < 100 %循环条件为:无不可行解且次数低于100
swarm(i)=Particle(lower_bound,upper_bound,problem);%调用Particle函数
retry = retry + 1;
end
end
REP = Repository(swarm,rep_size,grid_size,alpha,beta,gamma); %调用Repository函数
%% 算法循环
fprintf('优化算法开始循环中\n')
for it=1:max_iter
leader = REP.SelectLeader(); %选择领导者
wc = w(it); %目前的惯性因子
pc=pm(it); %目前的变异因子
for i =1:swarm_size %更新种群
swarm(i)=swarm(i).update(wc,c,pc,leader,problem);
end
REP = REP.update(swarm);
Title = sprintf('迭代第 %d 次 , 存档库内非支配解个数 = %d',it,length(REP.swarm));
PlotCosts(swarm,REP.swarm,Title) %调用下面的PlotCosts函数
disp(Title);
end
部分理论来源于网络,如有侵权请联系删除。
[1]李兴莘,张靖,何宇,张英,刘影,晏开封.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程,2021,37(03):1-7.
[2]胡志强. 基于改进粒子群算法的微电网多目标优化调度研究[D].南昌大学,2020.DOI:10.27232/d.cnki.gnchu.2020.002673.