【优化调度】基于粒子群算法求解燃机冷热电优化联供问题matlab代码

180 阅读3分钟

​1 简介

在研究冷热电联供系统优化运行的过程中,为了更好地优化调度冷热电联供系统中各设备的出力,提出了基于粒子群算法优化算法建立了一个包含风机,光伏,微燃机和燃气锅炉等主要设备的冷热电联供系统模型.以联供系统的运行成本,污染物排放量和能源利用率为目标,建立了优化模型.在满足设备出力,功率平衡等约束条件下,利用Matlab进行了优化求解.仿真结果表明,所提出的冷热电联供系统优化方法,可以有效地提高经济效益,减少污染排放,提高能源利用率.

2 部分代码

pop=initpop(80,2,24,66,33);

objvalue=calobjvalue(pop);

PL=[63 57 44 43 43 40 56 66 78 75 89 105 125 121 116 104 101 103 104 121 116 121 106 89];

QL=[139 136 122 128 128 128 131 142 138 138 150 169 183 187 189 183 171 161 154 165 156 148 141 132];

popsize=80;

scope=24;

PMTmax=66;

PMTmin=33;

MaxIt=60;

c1=2;

c2=2;

w=0.6;

v=zeros(2,24,80);

pbest=pop;

objvaluepbest=calobjvalue(pbest);

gbest=pop(:,:,1);

objvaluegbest=objvalue(1);

 for i=1:(popsize-1)

        if objvalue(i+1)<objvalue(i) 

            gbest=pop(:,:,i+1); %比较每个粒子的适应度,将适应度最小的粒子位置取做gbest

             objvaluegbest=objvalue(i+1);

        end     

 end

 iter=0;%迭代次数

while iter<MaxIt

    iter=iter+1;

    for i=1:popsize

        if objvalue(i)<objvaluepbest(i)

           objvaluepbest(i)=objvalue(i);

            pbest(:,:,i)=pop(:,:,i);%当粒子的适应度小于其最佳适应度时,用其替代原来粒子的最佳适应度,并记下此解

        end

    end

     for i=1:popsize

    if objvalue(i)<objvaluegbest

        objvaluegbest=objvalue(i);

        gbest=pop(:,:,i);%当存在粒子的适应度小于种群的最佳适应度时,用其替代原来种群的最佳适应度,并记下此解

    end

     end

     for i=1:popsize

     gbestpop(:,:,i)=gbest;%将二维gbest拓展为三维gbestpop

     end

     R1=rand(2,24,80);

    R2=rand(2,24,80);  

    v=v*w+c1*R1.*(pbest-pop)+c2*R2.*(gbestpop-pop);

    pop=pop+v;

    for j=1:popsize

    for i=1:scope

        if  pop(1,i,j)>PMTmax/2.91   

            pop(1,i,j)=PMTmax/2.91;

        end

         if  pop(1,i,j)<PMTmin/2.91   

            pop(1,i,j)=PMTmin/2.91;

         end

         %为满足功率平衡,电网购电由燃气轮机出力求得

        pop(2,i,j)=(QL(1,i)-pop(1,i,j)*2*2.91)/2.3+PL(1,i)-2.91*pop(1,i,j);

    end

    end

    objvalue=calobjvalue(pop)

end

gbest

%画图程序

x=[1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18   19  20  21  22  23  24];

y1=PL;

y2=2.91*gbest(1,:);

y3=gbest(2,:);

y7=y2+y3-y1;

scatter(x,y1,'k')

hold on

scatter(x,y2,'r*')

hold on

scatter(x,y3,'b^')

hold on

scatter(x,y7,'kx')

plot(x,y1);

hold on 

plot(x,y2);

hold on

plot(x,y3);

hold on

plot(x,y7);

 xlabel('时刻(h)');

ylabel('输出功率(KW)');

axis([0,24,0,180]);

legend('电负荷','燃机出力','系统与大电网交换功率','电空调功率');

title('夏季各设备电功率曲线图');

y4=QL;

y5=2*2.91*gbest(1,:);

y6=2.3*y7;

figure(2);

scatter(x,y4,'k')

hold on

scatter(x,y5,'r*')

hold on

scatter(x,y6,'b^')

plot(x,y4);

hold on 

plot(x,y5);

hold on

plot(x,y6);

 xlabel('时刻(h)');

ylabel('制冷功率(KW)');

title('夏季各设备冷功率曲线图');

axis([0,24,0,200]);

legend('冷负荷','烟气余热制冷功率','电空调制冷量');

3 仿真结果

4 参考文献

[1]贠保记, 白森珂, 张国. 基于混沌自适应粒子群算法的冷热电联供系统优化[J]. 电力系统保护与控制, 2020, 48(10):8.

5 MATLAB代码与数据下载地址

见博客主页