综合能源系统多目标粒子群优化是一种应用于能源系统优化的进化算法方法,旨在解决多个相互竞争的优化目标。这种方法结合了综合能源系统的多个性能指标,以寻找一组最佳解决方案,这些解决方案在多个目标下都具有较好的性能。这些目标可以包括能源系统的效率、经济性、环境友好性等。
以下是综合能源系统多目标粒子群优化的基本步骤:
问题定义:首先,明确定义综合能源系统的多个目标。这可以包括能源系统的能源效率、成本、二氧化碳排放等方面的指标。还需要考虑每个目标的权重和约束条件。
粒子编码:将每个可能的解决方案表示为一个粒子,需要为每个粒子定义一个编码,以便算法能够操作它们。这可以是一组参数的向量,每个参数代表综合能源系统的某个决策变量。
目标函数:为每个目标定义一个适应度函数。这些函数用于评估每个粒子的性能。通常,对于最小化的目标,适应度函数可以是目标函数的负值。
初始化群体:随机生成一组粒子,作为初始解的群体。
迭代优化:通过不断迭代来逐步改进粒子的位置。在每一代,粒子根据其适应度值以及邻居粒子的信息来更新其位置。多目标粒子群算法会维护一个种群,其中每个粒子都有多个适应度值,代表其在不同目标下的性能。
非支配排序:在每一代中,进行非支配排序,将粒子分为不同的前沿(Pareto前沿),其中每个前沿包含一组不相互支配的解。这些解代表了在不同目标下的最佳权衡。
选择和更新:从前沿中选择粒子,以构建下一代的种群。常见的选择策略包括锦标赛选择、拥挤度距离等。
终止条件:设定终止算法的条件,例如达到最大迭代次数或达到一定的收敛标准。
结果分析:最后,从 Pareto 前沿中选择适合特定需求的解决方案,这通常需要进一步的决策分析。
综合能源系统多目标粒子群优化是一种有效的方法,可用于处理多目标性能优化的能源系统问题,它可以帮助决策者在不同的目标之间找到最佳的权衡。
代码组成:
代码结果:
部分代码:
for i=1:nn
xx(i)= mm.swarm(1,i).cost(1);
yy(i)= mm.swarm(1,i).cost(2);
zz(i)=mm.swarm(1,i).cost(3);
end
m1=max( xx);
m2=max( yy);
m3=max( zz);
for i=1:nn
object(i)= mm.swarm(1,i).cost(1)./m1+ mm.swarm(1,i).cost(2)./m2+ mm.swarm(1,i).cost(3)./m3;
end
[m,p]=min(object);
pg=mm.swarm(1,p).x;
P_gas_G=pg(1:24)*ngas_G;
P_gas_H=pg(1:24)*ngas_h;
P_gas_C=pg(1:24)*ngas_c;
P_gas=pg(1:24); %天然气出力
P_mh=pg(25:48); %电热锅炉出力
P_mc=pg(49:72); %电制冷机出力
P_GBh=pg(25:48)*nGB_h;
P_EC=pg(49:72)*COP_EC;
G_PV=pg(97:120); %光伏
G_WT=pg(121:144); %风电
G_grid=pg(73:96); %电网
response_L=pg(145:168); %冷热电负荷的变化量
response_R=pg(169:192);
response_P=pg(193:216);
dload_L=(L_load+response_L)-(P_EC+P_gas_C); %冷负荷的功率不平衡量 可以看做储能的出力
dload_R=(R_load+response_R)-(P_GBh+P_gas_H); %热负荷的功率不平衡量
dload_P=(P_load+response_P)-(G_PV+G_WT+P_gas_G+G_grid-P_mh-P_mc); %电负荷的功率不平衡量 认为G_grid 正为买电 负为卖电
for i=1:24
profit(i)=(0.86-0.23)*1000*G_PV(i)+(0.53-0.16)*1000*G_WT(i); %光伏收益 卖价-成本
end
cost_buy=0;
cost_sell=0;
for i=1:24
CCHP_benefit(i)=price_G(i)*1000*P_gas_G(i)+price_H(i)*1000*P_gas_H(i)+price_C(i)*1000*P_gas_C(i); %CCHP 供冷热电收益
if G_grid(i)>0
cost_buy= cost_buy+G_grid(i)* G_price_buy(i);
else
cost_sell=cost_sell+G_grid(i)* G_price_sell(i);
end
cost_device(i)=0.02*P_mh(i)+0.023*P_mc(i)+0.075*P_gas(i); %设备成本
benefit_grid(i)=G_price_sell(i)*(P_mc(i)+P_mh(i));
end
for i=1:24
uesrs_buy(i)=price_G(i)*1000*(P_load(i)+response_P(i))+price_H(i)*1000*(R_load(i)+response_R(i))+price_C(i)*1000*(L_load(i)+response_L(i)); %CCHP 供冷热电收益
end
y(1) =sum( profit);
y(2) = sum(CCHP_benefit)+cost_sell+sum( benefit_grid)-cost_buy-sum(cost_device); %CCHP 收益+卖电收益-各种成本
y(3)=sum( uesrs_buy); %用户购电热冷的成本
欢迎感兴趣的小伙伴关注并获得完整版代码哦!