基于粒子群算法的配电网重构研究matlab程序

基于粒子群算法的配电网重构研究matlab程序
参考文献:基于改进灰狼算法的含分布式电源配电网重构研究

(本文未考虑分布式电源)
摘要:使用基本环矩阵编码的智能优化算法在处理配电网重构问题中,通常使用无序的解空间,解空间中局部峰值较多,使得智能优化算法难以发挥自身优势,耗时严重且难以寻找到最优解。针对以上问题,提出一种有序环网编码方式,并基于粒子群算法求解配电网的重构。用粒子群算法求解 IEEE 33 配电网,有效地降低系统网损并且提高了系统内的最低电压。经验证,该方法有效可行、算法简单、快速性高,得到的结果更优。
关键词:配电网重构;粒子群算法;有序环网

1 配电网重构模型
本文使用配电网有功功率损耗最小作为目标函数:
在这里插入图片描述

式中:i 表示支路的编号;T 则为该配电网中闭合支路的集合;ri 为第 i 条支路的电阻;Ui 为第 i条支路末端节点的电压有效值;Pi 和 Qi 分别为第 i 条支路末端流过的有功和无功功率。
约束条件如下。
1)节点电压约束:
在这里插入图片描述

2)支路容量约束:
在这里插入图片描述

3)连通辐射状结构约束:
在这里插入图片描述

式中:Ui、 Uimin 、Uimax 分别为第 i 支路末端节点实际电压及其电压的上下限;S i 、S imax 分别为第 i 支路实际流过的功率及其允许流过的最大功率;g 为配电网重构后的网络拓扑结构;G 为连通辐射状拓扑结构的集合。

2 有序环网矩阵编码
智能优化算法在寻优过程中,均是以当前最优个体为基础产生新的个体,进而搜索到更优质个体。然而在求解多峰值函数问题时,由于峰值 (或谷值) 较多。寻优时,有可能搜寻到一个峰值 (或谷值),并以此为基础产生新解,或影响其他个体的寻优,进而使得算法陷入局部最优,需要寻找到优于该峰值 (或谷值) 的解,才可以跳出局部最优。然而在单峰值函数中,则不存在这种陷入局部最优的状况。且多峰值函数的峰值越多,则智能优化算法对其寻优就越容易陷入局部最优。因此,智能优化算法在处理多峰值问题时,若可以对其解空间进行重新排序,使其变为单峰值或减少其峰值时,则可以大大降低搜索难度, 既可以提升解的质量,又可以降低迭代次数。
1)将系统中的各个支路进行标号,0代表支路上的开关是断开的,1代表支 路上的开关是闭合的。
2)利用图论决定基本的环路,环路的个数与联络开关的个数是一样的,对33 节点系统而言即5个。
3)根据基本的环路列出环网矩阵。环网矩阵的行数即基本环的个数, 列数为支路数最多的那个环的支路数,其他小一些的环中没有这么多支路的空余 的地方值都填充为0。

3 IEEE33节点系统算例
系统结构
在这里插入图片描述

环网矩阵
在这里插入图片描述

程序运行结果
1)电压结果
在这里插入图片描述

2)潮流与重构结果
在这里插入图片描述

4 matlab程序

clc
clear
tic
close all
%% (INITIALIZING SWARM PARAMETER)初始化群参数)
n=20;%粒子数
%利用图论决定基本的环路,环路的个数与联络开关的个数是一样的,对33 节点系统而言即5个
dim=5;% Dimmension of searching space搜索空间维度(5个联络开关),变量
x=load('swarm33.m');% Creating a swarm创建一个群体
vnew=rand(n,dim);% Creating a randomized initial velocity创建随机初始速度
sig=zeros(n,dim);
vold=vnew;
fitness=zeros(1,n);
pbest=load('swarm33.m');% Creating pbest matrice创建 pbest 矩阵,个体最优
gbest=[4 10 24 30 12];% Introducing a randomized gbest,种群蕞有
wmax=0.9;
wmin=0.4;
r1=rand(n,dim);% Creating a randomized matrice, size (20x5)创建一个随机矩阵
r2=rand(n,dim);% Creating a randomized matrice, size (20x5)创建一个随机矩阵
iter=0;
maxiter=60;% Maximum iteration最大迭代
%根据基本的环路列出基本环矩阵ssm。 ssm的行数即基本环的个数, 列数为支路数最多的那个环的支路数,
%其他小一些的环中没有这么多支路的空余 的地方值都填充为0。为了更简便,每条支路,包括环共有的支路,
% 都只会包含在一个支路环里,这样就省略了节点分类以及还需创建其他支路的麻烦
% 从矩阵ssm的每一行中选取一个非零元素,在每一次的网络重构中,每个环路中的都有且只有一条支路(非零元素)能被选为断开,
% 每个环中被选中的断开的支路开关状态改为0,其余支路的开关状态都保持为1
ssm=[8  9   10  11  21  33  35  0   0
    22  23  24  25  26  27  28  37  0
    15  16  17  29  30  31  32  36  0
    12  13  14  34  0   0   0   0   0
    2   3   4   5   6   7   18  19  20];
sm=ssm';
%%  Establish the incidence matrix-p建立关联矩阵-p
data=loadcase('case33');
doc=data.branch;
nbr=37;%branches-p
nbus=33;%load busses -p
matrix=zeros(nbr,nbus);
    frbus=doc(:,1);%from branch
    tbus=doc(:,2);%to branch
for i=1:nbr%nhanh=37
matrix(i,frbus(i))=1;
matrix(i,tbus(i))=1;
end
matrix;
 %%  Calculating fitness function for pbest初始化 fpbest 的适应度函数
 fpbest=zeros(1,n);
 for i=1:n
     fpbest(i)=50000;
 end
 。。。。。。。略
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电磁MATLAB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值