Advertisement

基于遗传算法的配电网故障定位(Matlab代码实现)

阅读量:

本文讨论了配电网故障定位的四种算法:矩阵算法、专家系统、蚁群算法和遗传算法。配电网设备快速故障定位是电力系统发展的关键,而故障定位的准确性直接影响系统稳定性和安全性。矩阵算法计算速度快但精度不足,专家系统依赖知识库且存在知识获取问题,蚁群算法易陷入停滞但适应性强,遗传算法鲁棒性好但收敛速度慢。通过运行结果分析,蚁群算法和遗传算法在配电网故障定位中均表现出一定优势,但存在改进空间。研究结果表明,遗传算法在配电网故障定位中的应用前景值得进一步探索。

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

参考文献:

随着经济的持续进步和居民生活水平的不断提升,对供电可靠性提出了更为严格的要求,当配电网出现故障时。

对故障设备进行快速、准确的定位显得愈发重要且迫切。目前,解决故障定位的方法主要包括:

几种:

矩阵算法[1-3],其计算效率高,但对上传故障信息的准确度要求较高,容错能力较弱。

专家系统模型 [4],通过将获取的故障信息与知识库中的记录进行对比分析,从而确定故障位置,具有较高的故障定位精度。

尽管工作量较大,但搭建和维护专家知识库是一项复杂而繁重的任务,主要源于知识库维护的诸多挑战。

不到位使得专家系统在适应网络结构变化方面不尽人意。

蚁群算法[6,7]是一种新型通用的启发式算法,特别适用于求解组合最优化问题。该算法具有正向反馈机制、分布式计算能力和贪心启发式搜索等特性。在配电网故障定位问题中,通常会将其转化为类似于巡回旅行问题(TSP)的模式,并利用蚁群算法进行求解。然而,蚁群算法存在容易陷入停滞现象,即当搜索到一定程度后,所有个体所发现的最优解完全一致,这不利于进一步探索更优的解。此外,蚁群算法中各个个体的运动轨迹呈现随机性,在群体规模较大或网络结构较为复杂的情况下,寻找一条较优路径需要较长的时间。因此,蚁群算法在配电网故障定位中的应用技术仍需进一步完善和优化。

遗传算法[4,8-11]因其展现出较强的稳定性以及可并行性特点,在电力系统领域得到了广泛应用。当用于配电网故障定位时,该算法通过接收故障信息,利用适应度函数进行评估,通过遗传运算对种群进行操作,并结合适应度计算实现全局最优解的求解,从而实现对故障设备的准确定位。然而,尽管遗传算法在早期应用中存在收敛速度较慢等问题,但这些问题并未根本解决。此外,由于配电网络结构通常较为复杂,这导致计算量显著增加,进而影响了故障定位的效率。

📚****2 运行结果

复制代码
 bestindividual =

    
  
    
      0     0     1     1     1     0     0     0     0     0     0     1     0     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     4.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     1     0     0     0     1     0     0     1     1     0     0     0     0     1     0     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
     10
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     1     0     1     1     1     0     0     0     0     1     0     0     0     1     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     8.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     1     0     1     0     0     0     0     0     1     1     0     0     0     1     0     0     0     1
    
  
    
  
    
 bestfit =
    
  
    
      7
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     0     0     0     0     0     0     1     0     1     0     0     0     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
     6.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     0     1     1     0     0     0     0     0     0     1     1     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     5.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     0     0     0     0     0     0     0     0     1     0     1     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      6
    
  
    
  
    
 bestindividual =
    
  
    
      1     1     1     1     0     0     0     0     0     0     0     0     0     0     0     1     1     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     5.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     0     0     1     0     0     0     0     0     0     1     1     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      5
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     1     0     1     0     0     0     0     0     0     0     0     1     1     0     0     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
      7
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     0     0     0     0     0     0     1     0     0     0     1     0     1     1     0
    
  
    
  
    
 bestfit =
    
  
    
     6.5000
    
  
    
  
    
 bestindividual =
    
  
    
      1     0     1     0     0     1     0     0     0     0     0     0     0     0     0     1     1     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      6
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     0     0     1     0     0     0     0     0     0     1     1     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      5
    
  
    
  
    
 bestindividual =
    
  
    
      1     0     1     0     1     0     0     0     0     1     0     0     0     0     0     1     0     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
     8.5000
    
  
    
  
    
 bestindividual =
    
  
    
      1     1     0     1     1     1     1     0     0     1     0     0     0     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      8
    
  
    
  
    
 bestindividual =
    
  
    
      1     0     1     0     0     1     0     0     0     0     0     0     0     0     0     1     1     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
      6
    
  
    
  
    
 bestindividual =
    
  
    
      1     0     1     1     0     0     0     0     0     0     0     0     0     0     0     1     0     1     1     0
    
  
    
  
    
 bestfit =
    
  
    
      5
    
  
    
  
    
 bestindividual =
    
  
    
      1     1     0     0     0     0     0     0     0     0     0     0     0     0     0     1     1     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     4.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     0     0     0     0     0     0     0     1     0     0     0     1     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
     7.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0     1
    
  
    
  
    
 bestfit =
    
  
    
     4.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     0     0     0     1     0     0     0     0     0     0     0     0     0     0     1     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
     5.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     1     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0     1
    
  
    
  
    
 bestfit =
    
  
    
      5
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     1     0     0     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
    
  
    
  
    
 bestfit =
    
  
    
     3.5000
    
  
    
  
    
 bestindividual =
    
  
    
      1     1     1     1     0     1     0     0     0     0     0     0     0     0     0     0     1     0     0     1
    
  
    
  
    
 bestfit =
    
  
    
     7.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     1     1     0     1     0     0     0     0     0     0     0     0     0     0     0     1     0     0     1
    
  
    
  
    
 bestfit =
    
  
    
     5.5000
    
  
    
  
    
 bestindividual =
    
  
    
      0     0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     1     0     0     0
    
  
    
  
    
 bestfit =
    
  
    
      5
    
  
    
  
    
 all_best =
    
  
    
      1
    
  
    
  
    
 all_x =
    
  
    
      0     0     0     0     1     0     0     0     0     0     0     0     0     0     0     0     0     1     0     0
    
  
    
 时间已过 1.744887 秒

bestindividual =

0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0

bestfit =

4.5000

bestindividual =

0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0

bestfit =

10

bestindividual =

0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 0 0

bestfit =

8.5000

bestindividual =

0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1

bestfit =

7

bestindividual =

0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0

bestfit =

6.5000

bestindividual =

0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0

bestfit =

5.5000

bestindividual =

0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0

bestfit =

6

bestindividual =

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0

bestfit =

5.5000

bestindividual =

0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0

bestfit =

5

bestindividual =

0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0

bestfit =

7

bestindividual =

0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0

bestfit =

6.5000

bestindividual =

1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0

bestfit =

6

bestindividual =

0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0

bestfit =

5

bestindividual =

1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0

bestfit =

8.5000

bestindividual =

1 1 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0

bestfit =

8

bestindividual =

1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 0 0

bestfit =

6

bestindividual =

1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0

bestfit =

5

bestindividual =

1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0

bestfit =

4.5000

bestindividual =

0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0

bestfit =

7.5000

bestindividual =

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1

bestfit =

4.5000

bestindividual =

0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0

bestfit =

5.5000

bestindividual =

0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1

bestfit =

5

bestindividual =

0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

bestfit =

3.5000

bestindividual =

1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1

bestfit =

7.5000

bestindividual =

0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1

bestfit =

5.5000

bestindividual =

0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0

bestfit =

5

all_best =

1

all_x =

0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0

时间已过 1.744887 秒

部分代码:

function fitness=f1(SB)

% Ij=[1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];%位置8故障
% Ij=[1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0];%位置16故障
% Ij=[1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0];%位置8,16故障
Ij=[1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0];%位置5,18故障

IE=zeros(1,length(Ij));

IE(1)=SB(1)|SB(2)|SB(3)|SB(4)|SB(5)|SB(6)|SB(7)|SB(8)|SB(9)|SB(10)|SB(11)|SB(12)|SB(13)|SB(14)|SB(15)|SB(16)|SB(17)|SB(18)|SB(19)|SB(20);

IE(2)=SB(2)|SB(3)|SB(4)|SB(5)|SB(6)|SB(7)|SB(8)|SB(9)|SB(10)|SB(11)|SB(12)|SB(13)|SB(14)|SB(15)|SB(16)|SB(17)|SB(18)|SB(19)|SB(20);

IE(3)=SB(3)|SB(4)|SB(5)|SB(11)|SB(12)|SB(13)|SB(14)|SB(15)|SB(16)|SB(17)|SB(18)|SB(19)|SB(20);

IE(4)=SB(4)|SB(5)|SB(11)|SB(12)|SB(13)|SB(14)|SB(15)|SB(16)|SB(17);

IE(5)=SB(5)|SB(16)|SB(17);

IE(6)=SB(6)|SB(7)|SB(8)|SB(9)|SB(10);

IE(7)=SB(7)|SB(8)|SB(9)|SB(10);

🎉3********参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]严太山,崔杜武,陶永芹.基于改进遗传算法的配电网故障定位[J].高电压技术,2009,35(02):255-259.DOI:10.13336/j.1003-6520.hve.2009.02.032.

🌈4 Matlab代码实现

全部评论 (0)

还没有任何评论哟~