基于遗传算法的无功优化与控制
LD=fscanf(fid,'%g',[4,NLD]); %离散电抗补偿装置位置、上下限档数、单档容量 rmin=fscanf(fid,'%d',[1,1]); %惩罚因子的最小取值 fclose(fid);%关闭数据文件 Gnumber=Gnumber'; LC=LC'; T=T'; CD=CD'; LD=LD'; initial子程序: function
[x,fitness,n,n1,isb,pr,iternu,X,B1,B2]=initial(popsize,NV,Gnumber,NLC,NT,NCD,NLD,node,VGmax,VGmin,Vjmax,Vjmin,LC,T,CD,LD,rmin)
x=zeros(popsize,NV+NLC+NT+NCD+NLD); DV=zeros(1,NV); DLC=zeros(1,NLC); DNT=zeros(1,NT); DCD=zeros(1,NCD); DLD=zeros(1,NLD); fitness=zeros(1,popsize);
[B1,B2,n,n1,isb,pr,iternu,X]=readnet(node);%读取网络参数 k=1;%disp(LC) while k<=popsize for i=1:NV
DV(i)=rand*(VGmax-VGmin)+VGmin; end for i=1:NLC
DLC(i)=rand*(LC(i,2)-LC(i,3))+LC(i,3); end for i=1:NT
DNT(i)=round(rand*(T(i,3)-T(i,4))+T(i,4)); end for i=1:NCD
DCD(i)=round(rand*(CD(i,2)-CD(i,3))+CD(i,3));
第 42 页, 共 47页
基于遗传算法的无功优化与控制
end for i=1:NLD
DLD(i)=round(rand*(LD(i,2)-LD(i,3))+LD(i,3)); end
[BB1,BB2]=renewb(NV,Gnumber,NLC,NT,NCD,NLD,DV,DLC,DNT,DCD,DLD,LC,T,CD,LD,B1,B2,n,n1);%更新控制变量数据
[PL,Vf,Vq,overflag,V,Gnum,GS]=flow(BB1,BB2,n,n1,isb,pr,iternu,X,NV,Gnumber,Vjmax,Vj min);%计算潮流
if overflag==0%潮流收敛输出
x(k,:)=[DV,DLC,DNT,DCD,DLD]; sumLCD=0; for i=1:NCD
sumLCD=sumLCD+DCD(i)*CD(i,4);%离散电容补偿装置 end for i=1:NLD
sumLCD=sumLCD+DLD(i)*LD(i,4);%离散电抗补偿装置 end sumLC=0; for i=1:NLC
sumLC=sumLC+DLC(i);%连续型无功补偿装置(静止补偿器) end
fitness(k)=1e6-(sumLCD*5*1e4+PL*1e3*2000*0.5+rmin*(Vf+Vq)); k=k+1; end end selection子程序:
function
[x,fitness,fitness_avg,fitness_max,fitness_newavg,fitness_newmax]=selection(x,fitness,popsize)
[x,fitness,fitness_avg,fitness_max]=GAsort(x,fitness,popsize); X_new=x;
fitness_new=fitness; sel=popsize/4;
第 43 页, 共 47页
基于遗传算法的无功优化与控制
for i=1:sel
X_new(i,:)=x(i,:); X_new(i+sel,:)=x(i,:); fitness_new(i)=fitness(i); fitness_new(i+sel)=fitness(i); end
for i=sel+1:popsize-sel X_new((i+sel),:)=x(i,:); fitness_new(i+sel)=fitness(i); end
fitness_newsum=0;
fitness_newmax=fitness_new(1); for i=1:popsize
fitness_newsum=fitness_newsum+fitness_new(i); if fitness_new(i)>fitness_newmax fitness_newmax=fitness_new(i); end end
fitness_newavg=fitness_newsum/popsize; x=X_new;
fitness=fitness_new; crossover子程序: function
[x,fitness]=crossover(x,fitness,popsize,Fitness_newavg,Fitness_newmax,NV,NLC,NT,NCD,NLD)
pc1=0.99; pc2=0.7; for i=2:popsize/2
if fitness(i)>fitness(popsize/2+i) f=fitness(i); else
f=fitness(popsize/2+i); end if f>Fitness_newavg
第 44 页, 共 47页
基于遗传算法的无功优化与控制
pc=pc1-(pc1-pc2)*(f-Fitness_newavg)/(Fitness_newmax-Fitness_newavg); else pc=pc1; end crossr=rand; if crossr crossp=round(rand(1,NV+NLC+NT+NCD+NLD)); for m=1:NV+NLC+NT+NCD+NLD a=rand; temp=x(i,m); if crossp(1,m)==1 if m>NV+NLC x(i,m)=round(a*x(i,m)+(1-a)*x(popsize/2+i,m)); x(popsize/2+i,m)=round(a*x(popsize/2+i,m)+(1-a)*temp); else x(i,m)=a*x(i,m)+(1-a)*x(popsize/2+i,m); x(popsize/2+i,m)=a*x(popsize/2+i,m)+(1-a)*temp; end end end end end mutition子程序: function [x,fitness]=mutation(x,fitness,popsize,fitness_newavg,fitness_newmax,NV,NLC,NT,NCD,NLD,VGmax,VGmin,LC,T,CD,LD) pm1=0.1; pm2=0.001; for i=2:popsize if fitness(i)>fitness_newavg pm=pm1-(pm1-pm2)*(fitness(i)-fitness_newavg)/(fitness_newmax-fitness_newavg); else pm=pm1; end 第 45 页, 共 47页 基于遗传算法的无功优化与控制 mutationr=rand; if mutationr mutationp=round(rand(1,NV+NLC+NT+NCD+NLD)); for m=1:NV+NLC+NT+NCD+NLD if mutationp(1,m)==0 if m>NV+NLC+NT+NCD x(i,m)=round(x(i,m)-(x(i,m)-LD(m-(NV+NLC+NT+NCD),3))*rand); elseif m>NV+NLC+NT elseif m>NV+NLC x(i,m)=round(x(i,m)-(x(i,m)-T(m-(NV+NLC),4))*rand); elseif m>NV x(i,m)=x(i,m)-(x(i,m)-LC(m-NV,3))*rand; else x(i,m)=x(i,m)-(x(i,m)-VGmin)*rand; end else if m>NV+NLC+NT+NCD x(i,m)=round(x(i,m)+(LD(m-(NV+NLC+NT+NCD),2)-x(i,m))*rand); elseif m>NV+NLC+NT x(i,m)=round(x(i,m)+(CD(m-(NV+NLC+NT),2)-x(i,m))*rand); elseif m>NV+NLC x(i,m)=round(x(i,m)+(T(m-(NV+NLC),3)-x(i,m))*rand); elseif m>NV x(i,m)=x(i,m)+(LC(m-NV,2)-x(i,m))*rand; else x(i,m)=x(i,m)+(VGmax-x(i,m))*rand; end end end end end adapting子程序: function 第 46 页, 共 47页 x(i,m)=round(x(i,m)-(x(i,m)-CD(m-(NV+NLC+NT),3))*rand); 百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库基于遗传算法的无功优化与控制 毕业设计在线全文阅读。
相关推荐: