基于蝴蝶优化算法解决最优无功功率分配问题【IEEE30节点】(Matlab代码实现)

本文介绍了一种结合蝴蝶优化算法(BOA)和交易市场算法(EMA)的优化策略,即交易市场蝴蝶优化算法(EBOA),用于解决最优无功功率分配(ORPD)问题。通过在IEEE30母线系统上的实验,EBOA显示出显著的实功损耗降低、电压偏差减小和电压稳定性增强。与其他算法相比,EBOA表现出高效性和稳健性。
摘要由CSDN通过智能技术生成

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据


💥1 概述

蝴蝶优化算法(BOA)是一种基于群体的优化技术,灵感来自蝴蝶的觅食活动。BOA在研究界广受欢迎,现已被用于解决各种优化难题。然而,文献表明其探索和利用并未得到合理平衡。为克服这一问题,将BOA与交易市场算法(EMA)的交叉和非均匀变异相结合。本文中,基于交易市场的蝴蝶优化算法(EBOA)用于解决最优无功功率分配(ORPD)问题。ORPD是传统的电力系统优化工具,调节发电机母线电压、可变变压器的分接设置和补偿设备的无功输出等控制变量,以减少实功损耗、改善电压偏差和增强电压稳定性。建议的技术使用IEEE 30母线标准测试系统、IEEE 118母线标准测试系统和印度62母线系统进行评估。为了确定算法的有效性,将BOA和EBOA的结果与其他研究人员在文献中发布的结果进行了比较。从结果中可以观察到,所提出的算法能够将实功损耗降低到22%,电压偏差降低到91.6%,并将L指数从其相应的初始值降低到42.02%,适用于IEEE 30母线系统。其他测试系统也能看到类似的结果。该算法还在解决基准问题方面进行了测试。模拟结果证实了该算法在解决ORPD问题方面的效率和稳健性。

📚2 运行结果

部分代码:


function [o,V] = Get_Functions_details(X)
  
[N,dim]=size(X);
for m=1:N
    x=X(m,:);
v=x(1:19);
tap=v(7:10);
tapt=tap';
tap_t=mod(100*tapt,1);
tap_f=tapt-tap_t/100;
tap_d=tap_f';
sc=v(11:19);
sct=sc';
sct_t=mod(10*sct,1);
sct_f=sct-sct_t/10;
sct_d=sct_f';
cv=[v(1:6),tap_d,sct_d];
[Pload,Pg,y,fb,tb,V,del,BMva,losses]=nrlfppg(cv);
load_voltage(m,1:30)=V;
f=0;

  mm=0;
   for j=1:30
      if j==1||j==2||j==5||j==8||j==11||j==13;
        f=f*1;
        vio=0;
      else
        f=f+abs(1-V(j));
        
       
        if V(j)>1.05
            mm=mm+1;
            vio(mm)=abs(V(j)-1.05);
        elseif V(j)<0.95
             mm=mm+1;
           vio(mm)= abs(V(j)-0.95);
            
      end
      end
   end
   vio_volt=sum(vio);
  
f;
g=real(y);
x1=length(g);
conduc=zeros(30,30);
for i=1:x1
      a=(fb(i));
      b=(tb(i));
          conduc(a,b)=g(i);
end
conduc;
Ploss=0;
 for i=1:30
     for j=1:30
         Ploss=Ploss+(conduc(i,j)*(V(i)^2+V(j)^2-2*V(i)*V(j)*(cos(del(i)-del(j)))));
     end
 end
 Ploss_actual=Ploss*BMva;
 Ploss_actual;
 Pgf=Pg*BMva;
 slack_g=Pload+Ploss_actual-sum(Pgf);
  if  slack_g>200
       vio=abs(slack_g-200);
       elseif slack_g<50
           vio=abs(50-slack_g);
       else
           vio=0;
  end
   
o(m)=(vio^2*10+vio_volt^2*100000)+f;
end
end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] Lenin K .Solving Optimal Reactive Power Dispatch Problem by Chaotic Based Brain Storm Optimization Algorithm[J].Yayasan Ahmar Cendekia Indonesia, 2021(2).DOI:10.35877/454RI.ASCI113.

[2] Pandya K .Optimal Reactive Power Dispatch(ORPD) using Particle Swarm Optimization(PSO)[J].Loss Minimization[2024-03-08].

[3] Rajan A , Malakar T .Exchange market algorithm based optimum reactive power dispatch[J].Applied Soft Computing, 2016, 43:320-336.DOI:10.1016/j.asoc.2016.02.041.

🌈4 Matlab代码、数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值