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

news2024/9/29 5:24:18
👨‍🎓 个人主页: 研学社的博客
💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


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


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

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果

🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

参考文献:

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

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

几种:

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

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

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

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

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

4)遗传算法[ 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代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/371020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sonarqube 外部扫描器 go vet golangci-lint 无法导入问题

首先,请看[外部分析报告]各种语言的报告生成 go vet 2> govet-report.out#没有golangci-lint,我从网上找到了 golangci-lint run --out-format checkstyle ./... > golangci-lint-report.xml值得注意的是,貌似不支持目录,仅…

6.2 负反馈放大电路的四种基本组态

通常,引入交流负反馈的放大电路称为负反馈放大电路。 一、负反馈放大电路分析要点 如图6.2.1(a)所示电路中引入了交流负反馈,输出电压 uOu_OuO​ 的全部作为反馈电压作用于集成运放的反向输入端。在输入电压 uIu_IuI​ 不变的情况下,若由于…

mysys2+minGW方案编译ffmpeg的最佳实践

一、Win10 64bit编译环境的建立1)从http://www.msys2.org/下载 msys2-x86_64-xxx.exe2) 安装msys2到默认路径 C:\msys64\3) 运行MSYS2 w644)执行 pacman -Syu 更新系统当出现提示时,选择y5) 当窗口关闭时,重…

JavaScript函数

目录 定义函数 调用函数 函数参数 函数返回值 匿名函数 箭头函数 使用JavaScript编程时,函数是一种非常有用的编程结构,用于执行特定的任务并返回结果。函数可以重复使用,因此您只需编写一次代码,即可在需要时多次调用该代码…

深入解析dubbo的延迟暴露

一、引子 最近搭建了一个新的Java工程,主要是提供dubbo服务给其他业务用的。突然想起之前dubbo服务都会配置延迟暴露来解决平滑发布的问题,但是好像现在新的Java项目都没有配置延迟暴露了,觉得很奇怪,所以去研究了一下关于dubbo延…

Delete `␍`eslint(prettier/prettier) in vscode 的解决方案

错误描述从 Github 仓库拉取代码,使用 vscode 打开,页面报错,每一行都爆红 (如下图)问题原因由于历史原因,windows下和linux下的文本文件的换行符不一致。Windows在换行的时候,使用了换行符CRLF…

ROG配置ubuntu20.04.5双系统要点

win11ubuntu20.04.5 1. BIOS设置 开机长按F2进入bios设置,修改advanced参数: boot -> 关闭fast bootsecurity -> 关闭secure boot设置VMD controller为Disabled(其他电脑是修改硬盘的SATA和ACHI模式)。但是改了之后windo…

【大数据离线开发】8.1 Hive介绍和架构

Hive:数据分析引擎 了解 大数据的终极目标: 使用SQL语句来处理大数据 Hadoop的体系架构中: Hive:支持SOLPig:支持PiqLatin Spark的体系架构中: Spark SQL:类似Hive,支持SOL、支持DSL 另一个:Impala 8.1 什么是Hive? 起源自f…

Linux 离线安装Ruby和RubyGems环境

文章目录简介1. 安装GCC环境2. 安装ruby3. 安装 RubyGems4. 安装 redis-xxx.gem提示:以下是本篇文章正文内容,Redis系列学习将会持续更新 简介 在学习 Redis 集群对这几个词的概念和关系感混乱,故在此对其梳理。 Ruby 是什么? 它…

鼠标更换指针图案和更改typora的主题

鼠标更换指针图案 由此偶然看见好几个朋友都使用了新的图案替换掉了原有的鼠标图案,今天寻思自己也换一个图案 主要是觉得鼠标大一点儿会好看一些,所以就找了一些教程 官方教程,小的变动 当然最多的是官方教程,如果你只是想要…

Web Spider Ast-Hook 浏览器内存漫游 - 数据检索

文章目录一、资源下载二、通过npm安装anyproxy模块三、anyproxy的介绍以及基本使用1. anyproxy的功能介绍2. anyproxy的基本使用四、给浏览器挂代理五、实操极验demo案例总结提示:以下是本篇文章正文内容,下面案例可供参考 一、资源下载 Github&#x…

性能优化之node中间件耗时

背景 中间件在node框架中是很基本的套件,使用不当很容易对页面性能造成影响。除了node服务端外,前端做的SSR项目也要特别重视这块 哪些场景会造成中间件耗时特别严重? 罪魁祸首是:await阻塞 举个例子: 1.如何得到 …

稀疏特征和密集特征

在机器学习中,特征是指对象、人或现象的可测量和可量化的属性或特征。特征可以大致分为两类:稀疏特征和密集特征。 稀疏特征 稀疏特征是那些在数据集中不连续出现的特征,并且大多数值为零。稀疏特征的示例包括文本文档中特定单词的存在或不存…

高性能 Message ToJavaBean 工具 【easy.server.mapper】

easy.server.mapper 介绍 后端开发中&#xff0c;消息转换常见问题 Map 中的数据 转换成实体Bean数组 中的数据 转换成实体BeanServet 中的 param 转换成实体Bean 以上的三个问题是最常见的消息转换困扰。 以Map 举例 常见做法是 手动转换 Map<String,Object> da…

stm32f407探索者开发板(二十三)——定时器中断实验

文章目录一、通用定时器知识回顾1.1 时钟的选择1.2 内部时钟的选择1.3 计数器模式二、常用寄存器和库函数配置2.1 计数器当前值寄存器CNT2.2 预分频寄存器TIMx_PSC2.3 自动重装载寄存器&#xff08;TIMx_ARR)2.4 控制寄存器1&#xff08;TIMx_CR1&#xff09;2.5 DMA中断使能寄…

基因净化车间装修设计方案SICOLAB

基因净化车间的设计方案应该根据实际需求进行定制&#xff0c;以下是一些规划建设要点和洁净设计要注意的事项&#xff1a;一、净化车间规划建设要点&#xff1a;&#xff08;1&#xff09;基因车间的面积应该根据实验项目的规模进行规划&#xff0c;包括充足的操作区域和足够的…

华为OD机试题,用 Java 解【DNA 序列】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

自动化测试selenium

目录 一、为什么引入自动化测试&#xff1f; 二、为什么选择selenium作为自动化测试工具&#xff1f; 三、环境部署 四、什么是驱动&#xff1f;驱动的工作原理&#xff1f; 五、selenium的基础语法 元素定位 元素操作 点击元素 模拟键盘输入 清除对象输入的文本…

vue-draggable浏览器拖拽event事件对象拖动时 DragEvent path undefined

场景&#xff1a; 在做组件拖拽过程中&#xff0c;需要获取到触发元素冒泡过程中的所有元素&#xff0c;所以使用了event.path属性。在Chrome下正常运行&#xff0c;但是在FireFox下测试时发现&#xff0c;完犊子&#xff0c;失效了&#xff0c;通过问题排查&#xff0c;发现了…

开源运维监控工具WGCLOUD - 功能概述及架构介绍(理论篇)

一、项目简介 开源运维监控系统WGCLOUD&#xff0c;基于springboot和golang开发&#xff0c;可以监控各种设备&#xff08;物理机&#xff0c;云主机&#xff0c;虚拟机等都可以&#xff0c;安卓也可以&#xff09;。 二、实现功能 支持windows和redHat、centos、ubuntu、deb…