clear all;
NIND=100;n=14;nl=20;NVAR=2;Kn=3;Qn=1;PRECI=11;MB=[0.97 0.97;1.1 1.1];
Vmin=[0.97 0.97 0.97 0.97 0.97 0.97 0.97 0.97 0.97 0.97 0.97];
Vmax=[1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1 1.1];
Qgcmin=[-0.4 -0.4 ];
Qgcmax=[ 0.5 0.5 ];
MAXGEN=100;
%%%%%%%IEEE14节点初始潮流计算
%%IEEE14;
%%chushichaoliu14;
trace=zeros(MAXGEN,1+NVAR+Kn+Qn);%寻优结果的初始值
gen=0;
Yobj=zeros(1,8.5*NIND);Yvar=zeros(8.5*NIND,NVAR+Kn+Qn);
while gen<MAXGEN
FieldD=[rep([PRECI],[1,NVAR]);MB;rep([1;0;1;1],[1,NVAR])];%区域描述
%%%初始种群的父代
[Chrom1,Chrom2,Chrom3]=csqunx14(NIND,NVAR,Kn,Qn,PRECI);%编0,1和整数代码
Chrom=zongx(NIND,NVAR,PRECI,Kn,Qn,Chrom1,Chrom2,Chrom3);%总0,1和整数代码
variuo=bs2rv(Chrom1,FieldD);%控制变量电压实数代码,改变步长‘0.0125’
varikk=varkk14(NIND,Kn,Chrom2);
variqb=varqbx14(NIND,Qn,Chrom3);%控制变量变比和无功补偿实数代码
var=zongbx(NIND,NVAR,Kn,Qn,variuo,varikk,variqb);%%总控制变量的实数代码
for i=1:NIND
SH1(i)=ljymb14(NVAR,Kn,Qn,variuo(i,:),varikk(i,:),variqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax);%%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj1=sydhs(NIND,SH1);%父代适应度函数
%%%初始种群的母代(NIND/2个个体)
[Selch1,Selch2,Selch3]=csqunx14(NIND/2,NVAR,Kn,Qn,PRECI);%新的0,1和整数代码
Selch=zongx(NIND/2,NVAR,PRECI,Kn,Qn,Selch1,Selch2,Selch3);
%[Selch1,Selch2,Selch3]=zfenx(NIND/2,NVAR,PRECI,Kn,Qn,Selch);%分开的0,1和整数代码
juo=bs2rv(Selch1,FieldD);%控制变量电压实数代码
jkk=varkk14(NIND/2,Kn,Selch2);
jqb=varqbx14(NIND/2,Qn,Selch3);%控制变量变比和无功补偿实数代码
varrj=zongbx(NIND/2,NVAR,Kn,Qn,juo,jkk,jqb);%总控制变量的实数代码
%[vgj,kkj,qbj]=fenx(NIND/2,NVAR,Kn,Qn,varrj);%[uo,kk,qb]=fen(NIND,NVAR,NL,var);%控制变量的实数分代码
for i=1:NIND./2
SH2(i)=ljymb14(NVAR,Kn,Qn,juo(i,:),jkk(i,:),jqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj2=sydhs(NIND/2,SH2);
for i=NIND+1:1.5*NIND
Yobj(1,i)=obj2(i-NIND);
Yvar(i,:)=varrj(i-NIND,:);
end
%%%选择得到子代(NIND/2个个体)
CShrom=reins(Chrom,Selch);%选择得到新的个体
[CShrom1,CShrom2,CShrom3]=zfenx(NIND,NVAR,PRECI,Kn,Qn,CShrom);
%%%交叉变异得到子代(NIND*3.5个个体)
CShrom1=jcbyxgtttuo(NIND,NVAR,PRECI,CShrom1);
CShrom2=jcbyxgtttkk(NIND,Kn,CShrom2);
CShrom3=jcbyxgtttqb(NIND,Qn,CShrom3);
ijuo=bs2rv(CShrom1,FieldD);%控制变量电压实数代码
ijkk=varkk14(NIND,Kn,CShrom2);
ijqb=varqbx14(NIND,Qn,CShrom3);%控制变量变比和无功补偿实数代码
varrij=zongbx(NIND,NVAR,Kn,Qn,ijuo,ijkk,ijqb);%总控制变量的实数代码
for i=1:NIND
SH3(i)=ljymb14(NVAR,Kn,Qn,ijuo(i,:),ijkk(i,:),ijqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj3=sydhs(NIND,SH3);
for i=1+1.5*NIND:2.5*NIND
Yobj(1,i)=obj3(i-1.5*NIND);
Yvar(i,:)=varrij(i-1.5*NIND,:);
end
varrjj=zongbx(NIND,NVAR,Kn,Qn,variuo,ijkk,ijqb);%总控制变量的实数代码
for i=1:NIND
SH4(i)=ljymb14(NVAR,Kn,Qn,variuo(i,:),ijkk(i,:),ijqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj4=sydhs(NIND,SH4);
for i=1+2.5*NIND:3.5*NIND
Yobj(1,i)=obj4(i-2.5*NIND);
Yvar(i,:)=varrjj(i-2.5*NIND,:);
end
varrji=zongbx(NIND,NVAR,Kn,Qn,ijuo,varikk,variqb);%总控制变量的实数代码
for i=1:NIND
SH5(i)=ljymb14(NVAR,Kn,Qn,ijuo(i,:),varikk(i,:),variqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj5=sydhs(NIND,SH5);
for i=1+3.5*NIND:4.5*NIND
Yobj(1,i)=obj5(i-3.5*NIND);
Yvar(i,:)=varrji(i-3.5*NIND,:);
end
varrjii=zongbx(NIND,NVAR,Kn,Qn,ijuo,varikk,ijqb);%总控制变量的实数代码
for i=1:NIND
SH6(i)=ljymb14(NVAR,Kn,Qn,ijuo(i,:),varikk(i,:),ijqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj6=sydhs(NIND,SH6);
for i=1+4.5*NIND:5.5*NIND
Yobj(1,i)=obj6(i-4.5*NIND);
Yvar(i,:)=varrjii(i-4.5*NIND,:);
end
varrjij=zongbx(NIND,NVAR,Kn,Qn,variuo,ijkk,variqb);%总控制变量的实数代码
for i=1:NIND
SH7(i)=ljymb14(NVAR,Kn,Qn,variuo(i,:),ijkk(i,:),variqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj7=sydhs(NIND,SH7);
for i=1+5.5*NIND:6.5*NIND
Yobj(1,i)=obj7(i-5.5*NIND);
Yvar(i,:)=varrjij(i-5.5*NIND,:);
end
varrjiij=zongbx(NIND,NVAR,Kn,Qn,variuo,varikk,ijqb);%总控制变量的实数代码
for i=1:NIND
SH8(i)=ljymb14(NVAR,Kn,Qn,variuo(i,:),varikk(i,:),ijqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj8=sydhs(NIND,SH8);
for i=1+6.5*NIND:7.5*NIND
Yobj(1,i)=obj8(i-6.5*NIND);
Yvar(i,:)=varrjiij(i-6.5*NIND,:);
end
varrjiiji=zongbx(NIND,NVAR,Kn,Qn,ijuo,ijkk,variqb);%总控制变量的实数代码
for i=1:NIND
SH9(i)=ljymb14(NVAR,Kn,Qn,ijuo(i,:),ijkk(i,:),variqb(i,:),Vmin,Vmax,Qgcmin,Qgcmax); %%SH(i)=mbsh5(uo(i,:),kk(i,:),qb(i,:),Vmin,Vmax,Qcmin,Qcmax);%计算目标函数
end
obj9=sydhs(NIND,SH9);
for i=1+7.5*NIND:8.5*NIND
Yobj(1,i)=obj9(i-7.5*NIND);
Yvar(i,:)=varrjiiji(i-7.5*NIND,:);
end
%[vgij,kkij,qbij]=fenx(NIND,NVAR,Kn,Qn,varrij);%[uo,kk,qb]=fen(NIND,NVAR,NL,var);%控制变量的实数分代码
%%%寻优得到每代的最优解(适应度高)并保留
[u,w,Newobj,Newvar]=tfzeros(NVAR,Kn,Qn,Yobj,Yvar);
[MaxObj,Maxvar]=genxy(w,NVAR,Kn,Qn,Newobj,Newvar);
gen=gen+1;
trace(gen,1)=MaxObj;
trace(gen,2:1+NVAR+Kn+Qn)=Maxvar;
end
%disp(gen)
%disp(trace)
plot(trace(:,1)',':.');
[Y,m]=max(trace(:,1));X=trace(m,2:1+NVAR+Kn+Qn);
hold on;
plot(m,Y,'ro');
disp(Y);
disp(X);
disp(m);
minSH=blxlgthy(Y);
disp(minSH)
grid on;
title('经过MAXGEN次遗传后最优解的变化曲线')
xlabel('遗传代数')
ylabel('系统网络有功网损适应度值')