• 大小: 9KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-23
  • 语言: Matlab
  • 标签:

资源简介

运用改进的粒子群算法求解风电调度问题,目标函数为火电机组成本,约束条件包括功率平衡约束、机组爬坡约束、旋转备用约束等

资源截图

代码片段和文件信息

% NP---?????????
% G----?????
%ITERmax--??????
% Zmax---???????
% Zmin---???????
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%???????????%%%%%%%%%%%%%%%%%%%%%%%
function syst
clear all;
clc;
%format long;
NP=40;
G=10;
InitialTON=[8800000000];
%InitialTON=[8855555555];
%InitialTOFF=[0055633111];
InitialTOFF=[0000000000];
MDT=[8855633111];%min down time
MUT=[8855633111];%min up time
x0=[1100000000];%初始机组方案
%%pwind=[42 37 60 19 20 26 40 37 21 16 23 24 41 46 80 99 72 50 38 59 66 86 71 61];
pwind=[32.29 30.87 37.94 34.37 36.09 41.64 50.15 44.28 38.46 33.38 25.87 25.01 22.67 54.13 54.00 59.29 53.84 45.48 47.61 47.71 59.43 41.16 46.22 59.12];
T=24;
PMAX=[4554551301301628085555555];
PMIN=[1501502020252025101010];
PD=[700750850950100011001150120013001400145015001400130012001050100011001200140013001100900800];
SR=0.1*PD;


a=[1000970700680450370480660665670];
b=[16.1917.2616.616.519.722.2627.7425.9227.2727.79];
c=[0.000480.000310.0020.002110.003980.007120.000790.004130.002220.00173];
SUH=[45005000550560900170260303030];%hot start cost
SUC=[900010000110011201800340520606060];% cold start cost
Tcold=[5544422000];%cold start hours

ITERmax=10;
Zmax=0.05*pi;
Zmin=0.01*pi;
[Yh]=sort(PMAX‘descend‘);%降序排序,Y是排序后的向量,h是排序的顺序

swarm=zeros(NPG*T);
ab=1/sqrt(2)*ones(2G*T);
%***************???NP??????**********************
for n=1:NP
    %--??
    swarml=initial(GT);
    %??????????????
    [swarm(n:)swarmTOFF(::n)]=Verify(swarmlGTx0MUTMDTInitialTONInitialTOFFPMAXPDSRh);
    %*****************?????????***********************
    [fitness(n)]=objectFitness(swarm(n:)GTx0MDTPMAXPMINPDabcSUHSUCTcoldswarmTOFF(::n));
end
%*************?????????????????*********************
Gmbest=swarm(1:);%将swarm矩阵中的第一行附给Gmbest
Gfitness=fitness(1);%Gfitness=fitness矩阵中的第一个元素
for n=1:NP
    Pmbest(n:)=swarm(n:);
    Pfitness(n)=fitness(n);
    if Gfitness>Pfitness(n)
        Gmbest=Pmbest(n:);
        Gfitness=Pfitness(n);
    end
end

%**************?????? Updata********************
for n=1:NP
    ab1(::n)=ab;
end
for k=1:ITERmax
    for n=1:NP
        %??????
        [swarm(n:)ab1(::n)]=Update(swarm(n:)GTPmbest(n:)Gmbestfitness(n)Pfitness(n)GfitnessZmaxZminkITERmaxab1(::n));
       %?????
        [swarm(n:)swarmTOFF(::n)]=Verify(swarm(n:)GTx0MUTMDTInitialTONInitialTOFFPMAXPDSRh);
        %??????
        [fitness(n)]=objectFitness(swarm(n:)GTx0MDTPMAXPMINPDabcSUHSUCTcoldswarmTOFF(::n));
   % end
   % for n=1:NP
        if Pfitness(n)>=fitness(n)
            Pmbest(n:)=swarm(n:);
           % Ptmbest(::n)=Mp(::n);
            Pfitness(n)=fitness(n);
        end
        if Gfitness>Pfitness(n)
        Gmbest=Pmbest(n:);
       % Gptbest=Ptmbest(::n);
        Gfitne

评论

共有 条评论