✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
冷热电联产系统作为一种新型的多目标能源供应形式,符合能的梯级利用原则,具有很高的能源利用率.由于所具有的诸多优势,目前在国内外引起了广泛的注意,得到了很大的发展.电力系统无功优化是保证系统安全,经济运行的有效手段,是提高电力系统电压质量的重要措施之一。无功优化的目的在于确定系统中无功设备的合理配置,以保证电网在满足一定的安全约束条件下,使系统的技术经济性能指标最好,即无功补偿设备的安装投资及电网的运行费用最小。 电力系统无功优化是一个多变量、多约束的混合非线性规划问题,其操作变量既有连续变量又有离散变量,其优化过程比较复杂。本文采用粒子群优化算法求解无功优化问题,给出了运用粒子群优化算法的相应求解步骡,并对部分参数的取值进行了讨论和调整。计算表明,该算法能够同时处理问题中的连续变量和离散变量,能够较好地协调全局搜索和局部搜索,并具有并行计算的特性以及较强的鲁棒性,可以取得令人满意的结果。
⛄ 部分代码
global gbestcost maxit
%npop=10; maxit=2;
nvar=nvars; % or nvar=5
was=1;%wdamp=0.99; c1=2; c2=2;
maxit=options(1);npop=options(2);c1=options(3);
c2=options(4);wdamp=options(5);
xmin=lb';
xmax=ub';
dx=xmax-xmin;
vmax=0.1*dx;
empty_particle.position=[];
empty_particle.velocity=[];
empty_particle.cost=[];
empty_particle.pbest=[];
empty_particle.pbestcost=[];
particle=repmat(empty_particle,npop,1);
gbest=zeros(maxit,nvar);
gbestcost=zeros(maxit,1);
P_select=zeros(maxit,npop);
%xx=zeros(npop,nvar);
%y=zeros(npop,1);
%bb=zeros(maxit,1);
for it=1:maxit
if it==1
gbestcost(1)=inf;
for i=1:npop
particle(i).velocity=zeros(1,nvar);
%particle(i).position(1+nvar/2:nvar)=floor(xmin(1+nvar/2:nvar)+(xmax(1+nvar/2:nvar)-xmin(1+nvar/2:nvar)).*rand(1,nvar/2));
particle(i).position=rand(1,nvar);
particle(i).cost=fun(particle(i).position);
particle(i).pbest=particle(i).position;
particle(i).pbestcost=particle(i).cost;
if particle(i).pbestcost<gbestcost(it)
gbest(it,:)=particle(i).pbest;
gbestcost(it)=particle(i).pbestcost;
end
end
else
gbest(it,:)=gbest(it-1,:);
gbestcost(it)=gbestcost(it-1);
for i=1:npop
particle(i).velocity=was*particle(i).velocity...
+c1*rand*(particle(i).pbest-particle(i).position)...
+c2*rand*(gbest(it,:)-particle(i).position);
particle(i).velocity=min(max(particle(i).velocity,-vmax),vmax);
%R=rand(1,nvar/2)< 1./(1+exp(particle(i).velocity(1:nvar/2)));
%particle(i).position(1:nvar/2)=R;
particle(i).position=particle(i).position+particle(i).velocity;
particle(i).position=min(max(particle(i).position,xmin),xmax);
%particle(i).position(nvar-nvar_EV+1:nvar)=min(max(particle(i).position(nvar-nvar_EV+1:nvar),Xmin'),Xmax');
particle(i).cost=fun(particle(i).position);
if particle(i).cost<particle(i).pbestcost
particle(i).pbest=particle(i).position;
particle(i).pbestcost=particle(i).cost;
if particle(i).pbestcost<gbestcost(it)
gbest(it,:)=particle(i).pbest;
gbestcost(it)=particle(i).pbestcost;
end
end
end
end
disp([ 'Iteration ' num2str(it) ': Best Cost = ' num2str(gbestcost(it))]);
was=was*wdamp;
end
x=gbest(maxit,:);
fval=gbestcost(maxit);
end
⛄ 运行结果
⛄ 参考文献
[1]赵波. 应用粒子群优化算法求解市场环境下的电力系统动态经济调度问题[J]. 电力系统保护与控制, 2004, 032(021):1-5,66.
[2]赵迪迪王梦迪. 粒子群算法在电力系统无功优化的应用[J]. 信息技术与信息化, 2021, 000(009):246-248.
⛄ 完整代码
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料