当前位置: 首页 > news >正文

改进二进制粒子群算法在配电网重构中的应用(Matlab实现)【论文复现】

 

目录

 ​

0 概述

1 配电网重构的目标函数

2 算例

3 matlab代码实现


0 概述

配电系统中存在大量的分段开关和联络开关,配电网重构正是通过调整分段开关和联络升大的组合状态来变换网络结构,用于优化配电网某些指标,使其达到最优状态。正常运行时,则通过两类开关的不同组合状态来提高系统的可靠性、稳定性或减小网损等。故障时﹐部分分段开关将打开以隔离故障支路,同时一些联络开关闭合将故障支路转移到其他馈线上或同一馈线的其余分支上,以满足供电需求。

1 配电网重构的目标函数

配电网结构是闭环设计,开环运行。配电网重构则是在保证网络拓扑结构成辐射状,满足电压约

束、支路容量约束、变压器容量约束等要求的前提下,确定使配电网某一指标或多个指标最佳的配电网运行方式。本文以配电网线路损耗最小为目标函数,即:

       

式中f为所有支路总有功损耗;i表示支路编号;N表示配电网支路总数;Ki表示开关状态变量,即О表示打开状态,1表示闭合状态;Ri表示支路i上的电阻值;Pi、Qi、Ui分别表示支路的有功功率、无功功率以及支路i前端节点的电压幅值。
配电网重构约束条件包括潮流约束、电压约束、电流约束、线路容量约束和网络拓扑结构辐射状运行约束等,如下式所示:
 

                  

2 算例

仿真算例采用 IEEE33 节点配电网络,拓扑结构如图 。该配电网包含 33 个节点和 37 条支路,

5 个常开联络开关分别位于支路33、34、35、36、37上,基准 电压为 12. 66 kV。

3 matlab代码实现

部分代码: 

部分代码:
r2=rand(n,dim);% 创建随机矩阵,大小( 20x3 )
iter=0;
maxiter=60;% 最大迭代次数
tap=[8 9 10 11 21 33 35 0 02 3 4 5 6 7 18 19 2012 13 14 34 0 0 0 0 015 16 17 29 30 31 36 32 022 23 24 25 26 27 28 37 0];
ta=tap';
%%  建立关联矩阵
data=loadcase(case33);
doc=data.branch;
nhanh=37;
nut=33;
matrix=zeros(nhanh,nut);nutdau=doc(:,1);nutcuoi=doc(:,2);
for i=1:nhanh
matrix(i,nutdau(i))=1;
matrix(i,nutcuoi(i))=1;
end%% 计算个体最优的适应度函数fpbest=zeros(1,n);for i=1:nfpbest(i)=50000;end
%% 主循环
while iter<maxiteriter=iter+1;w=wmax-(wmax-wmin)*iter/maxiter;% 指定权重系数c1=2*rand(1);c2=2*rand(1);%% 更新速度vold=vnew;for i=1:nfor j=1:dimvnew(i,j)=w*vnew(i,j)+c1*r1(i,j)*(pbest(i,j)-x(i,j))+c2*r2(i,j)*(gbest(j)-x(i,j));if abs(vnew(i,j))==abs(vold(i,j))vnew(i,j)=rand(1,1).*vnew(i,j);endendend-------
plot(dienap,'-sr')
hold on
plot(gbestvolt,'-^b')
ylabel('电压(p.u)')
xlabel('Node')
title('电压分布')
legend('配电网重组前','配电网重组后')
hold off
disp('      ')
disp('      ')
disp('      ')
disp('      ')
disp('==========================================================================================')
disp('***************************** 33节点配电网仿真结果 ***************************')
disp('==========================================================================================')
disp('                               重构前                          重构后 '          )
disp('------------------------------------------------------------------------------------------')
disp(['联络开关:              ', num2str(o), '                  ',num2str(a)])
disp('------------------------------------------------------------------------------------------')
disp(['功率损耗:                ',num2str(tonthat),' kW','                         ',num2str(fgbest),' kW'])
disp('------------------------------------------------------------------------------------------')
disp(['减少的功率损耗:      ', '_______','                             ',num2str(ploss), ' %'])
disp('------------------------------------------------------------------------------------------')
disp(['最小电压:           ',num2str(dienapmin),' pu','                          ',num2str(minvolt),' pu'])
disp('------------------------------------------------------------------------------------------')
toc

部分代码:
iter=0;
maxiter=60;% 最大迭代次数
tap=[8 9 10 11 21 33 35 0 0
    2 3 4 5 6 7 18 19 20
    12 13 14 34 0 0 0 0 0
    15 16 17 29 30 31 36 32 0
    22 23 24 25 26 27 28 37 0];
ta=tap';
%%  建立关联矩阵
data=loadcase(case33);
doc=data.branch;
nhanh=37;
nut=33;
matrix=zeros(nhanh,nut);
    nutdau=doc(:,1);
    nutcuoi=doc(:,2);
for i=1:nhanh
matrix(i,nutdau(i))=1;
matrix(i,nutcuoi(i))=1;
end

%% 计算个体最优的适应度函数
 fpbest=zeros(1,n);
 for i=1:n
     fpbest(i)=50000;
 end
%% 主循环
while iter<maxiter
    iter=iter+1;
    w=wmax-(wmax-wmin)*iter/maxiter;% 指定权重系数
    c1=2*rand(1);
    c2=2*rand(1);
    %% 更新速度
    vold=vnew;
    for i=1:n
        for j=1:dim
        vnew(i,j)=w*vnew(i,j)+c1*r1(i,j)*(pbest(i,j)-x(i,j))+c2*r2(i,j)*(gbest(j)-x(i,j));
       if abs(vnew(i,j))==abs(vold(i,j))
           vnew(i,j)=rand(1,1).*vnew(i,j);
       end
        end
    end


-------
plot(dienap,'-sr')
hold on
plot(gbestvolt,'-^b')
ylabel('电压(p.u)')
xlabel('Node')
title('电压分布')
legend('配电网重组前','配电网重组后')
hold off
disp('      ')
disp('      ')
disp('      ')
disp('      ')
disp('==========================================================================================')
disp('***************************** 33节点配电网仿真结果 ***************************')
disp('==========================================================================================')
disp('                               重构前                          重构后 '          )
disp('------------------------------------------------------------------------------------------')
disp(['联络开关:              ', num2str(o), '                  ',num2str(a)])
disp('------------------------------------------------------------------------------------------')
disp(['功率损耗:                ',num2str(tonthat),' kW','                         ',num2str(fgbest),' kW'])
disp('------------------------------------------------------------------------------------------')
disp(['减少的功率损耗:      ', '_______','                             ',num2str(ploss), ' %'])
disp('------------------------------------------------------------------------------------------')
disp(['最小电压:           ',num2str(dienapmin),' pu','                          ',num2str(minvolt),' pu'])
disp('------------------------------------------------------------------------------------------')
toc

http://www.lryc.cn/news/94903.html

相关文章:

  • 【文章系列解读】Nerf
  • 基于springboot,vue网上订餐系统
  • Nautilus Chain 更换全新测试网,主网即将在不久上线
  • 攻防世界web:Web_php_wrong_nginx_config,python3后门
  • 【VUE】解决图片视频加载缓慢/首屏加载白屏的问题
  • spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?
  • Jenkins全栈体系(二)
  • c++11 标准模板(STL)(std::basic_istream)(九)
  • OpenSource - Spring Startup Ananlyzer
  • ES6迭代器、Set、Map集合和async异步函数
  • mac android studio设置跟mac系统一样的快捷键
  • Java-通过IP获取真实地址
  • Java代码实现word转PDF
  • Java设计模式-简单工厂(Simple Factory)模式
  • 微软所有业务线梳理
  • SDN系统方法 | 1. 概述
  • 【数据分享】1929-2022年全球站点的逐日平均压力数据(Shp\Excel\12000个站点)
  • Profibus DP主站转Modbus TCP网关profibus从站地址范围
  • MySQL子查询
  • 学IT上培训班有用吗?
  • BI如何对接金蝶云星空数据源?奥威BI SaaS平台有绝招
  • 鼎镁科技冲刺A股上市失败,董事长涂季冰三年薪水超过6000万元
  • PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享
  • day37-框架
  • 基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现
  • jenkins 采用ssh方式连接gitlab连接不上
  • 前缀和模板算法
  • SpringBoot 启动输出 Git 版本信息(2023/07/11)
  • SSH客户端连接远程服务器
  • “深入理解Redis:高性能缓存与数据存储的秘密“