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

个人主页: 研学社的博客
欢迎来到本博客 ❤️ ❤️


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


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

本文目录如下:
目录
1 概述
2 运行结果

3 参考文献
4 Matlab代码实现

1 概述

参考文献:

基于遗传算法的配电网故障定位(Matlab代码实现)_第1张图片
基于遗传算法的配电网故障定位(Matlab代码实现)_第2张图片

随着经济的发展和人们生活水平的提高, 对供 电可靠性也提出了更高的要求 , 在配电网发生故障

后,对故障设备进行快速 、准确的定位显得越来越重要和迫切了。目前解决故障定位的方法主要有以下:

几种:

1)矩阵算法[ 1-3] ,其计算速度快 ,但对上传故障信息的准确度要求比较高, 容错性较差。

2)专家系统 [ 4] ,通过将获取的故障信息与知识库中的记录进行比较来确定故障位置, 定位准确率

较高,但是专家系统中的专家知识库的建立与维护是一件烦琐和艰巨的工作 ,往往由于知识库的维护

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

3)蚁群算法[ 6 , 7] 是一种求解组合最优化问题的新型通用启发式方法 ,该方法具有正反馈、分布式计算和贪婪启发式搜索的特点。将蚁群算法用于配电网故障定位时, 一般是把配电网故障定位问题转化为类似于巡回旅行问题(TSP)的模式, 利用蚁群算法进行求解。由于蚁群算法容易出现停滞现象 , 即搜索进行到一定程度后, 所有个体所发现的解完全一致 ,不能对解空间进一步进行搜索,不利于发现更好的解,而且蚁群中多个个体的运动是随机的 ,当群体规模较大或网络结构较为复杂时 ,要找出一条较好的路径需要较长的搜索时间。所以, 蚁群算法在配电网故障定位中的应用技术还有待成熟。

4)遗传算法[ 4 , 8-11] 因其具有良好的鲁棒性、可并行性与全局优化性而在电力系统中获得了广泛的应用,在进行配电网故障定位时, 它利用上传故障信息,依赖适应度函数, 通过对种群的遗传操作, 根据适应度的计算来进行全局最优化求解, 从而实现对故障设备的定位 。但是, 在实际应用中 ,遗传算法早熟收敛等缺陷没有从根本上消除 ,而且由于配电网络结构一般比较复杂 ,因此,通常存在计算量大的问题,从而导致定位速度慢 。

2 运行结果

基于遗传算法的配电网故障定位(Matlab代码实现)_第3张图片
基于遗传算法的配电网故障定位(Matlab代码实现)_第4张图片
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 秒
基于遗传算法的配电网故障定位(Matlab代码实现)_第5张图片

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代码实现

你可能感兴趣的:(电气期刊论文,matlab,算法,开发语言)