资源简介
提出了一种基于改进离散粒子群优化算法求解机组组合问题的新方法.首先采用新的策略生成粒子,以保证所有生成的粒子均为满足基本约束条件的可行解,使整个算法只在可行解区域进行优化搜索;然后引入优化窗口的概念和启发式的规则以缩短计算时间和提高优化精度.仿真结果表明所提出的算法具有解的质量高、收敛速度快的特点,充分证明了它能很好地解决机组组合问题。
代码片段和文件信息
% 问题模型
% (1)数学模型:
% 以IEEE 3机6节点为工况模型 ,Load=850MW
% (2)目标函数:
% minF=∑(i=1,Ng)Fi(PGi),Fi(PGi) =aiPi2+biPi+ci+Ei,考虑阀点(Valve-Point)效应
% (3)约束条件:
% a.发电机组输出功率上下限约束,即PGi min<=PGi<= PGimax;
% b.电力负荷平衡约束;
% c.忽略网损,即∑(i=1,Ng)(PGi)= PGD;
function pso
%主程序
clear;
clc;
format long;
xGbest=0;
yPbest=[];
bound=[100 600;100 400;50 200;50 200]; %上下限
a=[0.00156;0.00194;0.00482;0.00482] ;
b=[7.92;7.85;7.97;7.97];
c=[561;310;78;78];
g=[300;200;150;150];
h=[0.0315;0.042;0.063;0.063];
load=500; %负荷
popsize=20 ; %粒子数
MaxDD=100; %迭代次数
c1=1.4962; %学习因子
c2=1.4962; %学习因子
w=0.729; %惯性权重
dimsize=length(bound);
vmax=vmaxinitial(dimsizebound); %vmax产生过程
pop=initial(dimsizepopsizeboundload); %初始种群
cost=obj(popdimsizepopsizeabcghbound) ; %初始种群目标函数值
Pbest=pop(:1:dimsize); %初始Pbest 和 Gbest
[ggBestxindex]=min(cost);
xtemp=pop(xindex1:dimsize);
Gbest=xtemp;
v=vinitial(popsizedimsizevmax); %初始速度种群
for m=1:MaxDD
for t=1:popsize
while(1)
vv=vrenew(vmaxdimsizePbestpopGbesttwvc1c2); %进化速度
ppop=poprenew(vvdimsizetpopboundload) ; %进化位置
if(ppop(t1)bound(11)) break;
end
end
ccost=hobjrenew(tdimsizeappopbcghbound) ; %进化目标函数值
pcost=hPestobj(tdimsizeaPbestbcghbound) ; %Pbest的目标函数值
Gcost=hGbestobj(dimsizeaGbestbcghbound) ; %Gbest的目标函数值
if ccost Pbest(t1:dimsize)=ppop(t1:dimsize);
end
if ccost Gbest=ppop(t1:dimsize);
GGcost=ccost;
end
pop(t:)=ppop(t:);
v(tdimsize:2)=vv(tdimsize:2);
end
ggBest(m:)=Gcost;
xtemp(m:)=Gbest;
end
yPbest=xtemp(MaxDD:);
xGbest=ggBest(MaxDD);
yPbestxGbestpop
plot(1:MaxDDggBest)
function vmax=vmaxinitial(dimsizebound) %子程序
for i=1:dimsize %vmax产生过程
vmax(i)=(bound(i2)-bound(i1))/20;
end
end
function pop=initial(dimsizepopsizeboundload)
while (1) %初始种群
for i=dimsize:-1:2
pop(:i)=rand(popsize1)*(bound(i2)-bound(i1))+bound(i1);
end
i=dimsize;s=zeros(popsize1);
while i>=2
s=s+pop(:i);
i=i-1;
end
pop(:1)=load*ones(popsize1)-s;
if(pop(:1)ones(popsize1)*bound(11)) break;
end
end
end
end
function cost=obj(popdimsizepopsizeabcghbound)
t=1;cost=zeros(popsize1); %初始种群目标函数值
while t<=dimsize
cost=cost+a(t)*pop(:t).^2+b(t)*pop(:t)+c(t)+abs(g(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5640 2012-02-24 08:23 pso.m
----------- --------- ---------- ----- ----
5640 1
- 上一篇:erlang聊天室源码
- 下一篇:过流过压保护.doc
评论
共有 条评论