基于改进遗传算法的配电网故障定位(matlab代码)

news2024/11/30 11:48:28

主要内容

该程序复现文章《基于改进遗传算法的配电网故障定位》,将改进的遗传算法应用于配电网故障定位中, 并引入分级处理思想, 利用配电网呈辐射状的特点, 首先把整个配电网划分为主干支路和若干独立区域, 再利用该算法分别对各独立区域进行故障定位, 然后进行全局寻优, 这样能大大减少可行解的维数, 提高定位速度。使用该定位方法对一具有 20个节点的配电网系统进行故障定位的仿真实验, 它使可行解个数由 220 个减少到 144 个。结果表明, 该定位方法不仅定位准确, 而且定位速度快, 对复杂配电网的故障定位尤为有效。

  • 模型

该模型采用如下的算例模型进行计算,采用分级处理思想:各独立区域内只有一个电流注入点与区域外的其他节点直接相连, 各独立区域相互独立, 无交叉项。分区时,应首先确定一主干支路,然后把主干支 路的每一分支支路及其末梢部分分别划分为一个独立区域。如果某一独立区域的节点数比较多, 则还可将该独立区域再次划分为几个次级独立区域 , 在进行故障定位时 ,按照各独立区域的级别从低到高 逐次应用遗传算法进行求解。 

部分代码

for i = 1:2:N-1    %这里设置成奇数的递进格式,方便两行互换
    if(rand1)指的是第一行
        POP.NEWchrom1(i,:) = [POP.chrom1(i,1:cpoint),POP.chrom1(i+1,cpoint+1:chromlength)]; 
        POP.NEWchrom1(i+1,:) = [POP.chrom1(i+1,1:cpoint),POP.chrom1(i,cpoint+1:chromlength)];        
    else
        POP.NEWchrom1(i,:) = POP.chrom1(i,:);   %如果rand大于变异概率,基因不变
        POP.NEWchrom1(i+1,:) = POP.chrom1(i+1,:);
        
    end
end
​
%% 根据交叉互换的结果 更新种群的基因
POP.chrom1=POP.NEWchrom1;
​
 %% 基因变异并更新种群
for i=1:N              %i指的是行数,j1和j2指的是列数
    for j1=1:chromlength    %染色体1的变异设置
        if(randend
    end   
end
    %% 性状的表达与选择
    % 将基因(二进制编码)转化为自变量的取值(10进制的数)
     
% for i=1:N                 %limit矩阵在之前的定义当中,全都是1的话,分子之和为2^chromlength(1),所以在乘法之前在1左右
%     POP.x1(i)=(binary2decimal(POP.chrom1(i,:)))/(2^chromlength(1)-1)*(limit(1,2)-limit(1,1));
% end
​
%% 根据自变量的取值代入得到函数的输出
for i=1:N
    POP.y(i)=f1(POP.chrom1(i,:));  %代入函数计算  
end
​
%% 将输出的结果单位化,转化为0-1之间的数值长度(相当于轮盘赌的各个区域的面积)
a=max(POP.y);          %找出函数值里面的最小值,其实后续会直接淘汰的
b=N*a-sum(POP.y);         
for i=1:N                    %给一个圆盘分N块区域,累加的和为1
    POP.adapt(i)=(a-POP.y(i))/b; 
end
​
%% 数值长度转换为0-1之间的区间的节点(相当于把面积转化为了轮盘赌上各个区域的边界线)
POP.NWEadapt(1)=POP.adapt(1);   %第一个点
​

部分程序结果

4 下载链接

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

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

相关文章

node.js服务器动态资源处理

一、node.js服务器动态资源处理与静态资源处理的区别? 静态与动态服务器主要区别于是否读取数据库,若然在数据库中的资料处理中将数据转换成可取用格式的结构,也就是说把对象转化为可传输的字节序列过程称为序列化,反之则为反序列…

她在《繁花》大放异彩,“浪姐”暴瘦15斤,打脸了不看好她的观众

不知不觉,《浪姐》已经迎来第5季了。播到第4季的时候,改名成《乘风破浪2023》,这一季叫《乘风2024》,和前几季相比,热度依然不减。 都说3个女人一台戏,更何况这个节目,每次能请到30位姐姐&…

再生龙(Clonezilla)网络克隆linux系统实现迁移——筑梦之路

官方网站:Clonezilla - 簡介 环境说明 源端:CentOS 7 操作系统的虚拟机,硬盘大小为 40GiB,分为 1GiB 的 /boot(启动)分区、4GiB 的 swap(交换)分区和 35GiB 的 /(根&…

LeetCode236:二叉树的最近公共祖先

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是…

二分查找的时间复杂度的讲解

二分查找的代码: 二分查找的时间复杂度: 最坏的情况: 就是找不到和查找区间只剩一个值的时候,这两种都是最坏的结果,假设查找了x次,达到了最坏的结果: N代表每一次折半区间数据的个数&#xf…

【C语言】——字符串函数的使用与模拟实现(下)

【C语言】——字符串函数的使用与模拟实现(下) 前言五、长度受限类字符串函数5.1、 s t r n c p y strncpy strncpy 函数5.2、 s t r n c a t strncat strncat 函数5.3、 s t r n c m p strncmp strncmp 函数 六、 s t r s t r strstr strstr 函数6.1、函…

20240329-1-SVM面试题

SVM面试题 1. SVM直观解释 SVM,Support Vector Machine,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;其还包括核技巧,这使它成为实质上的非线性分类…

使用SpringBoot将中国地震台网数据保存PostGIS数据库实践

目录 前言 一、数据转换 1、Json转JavaBean 2、JavaBean与数据库字段映射 二、空间数据表设计 1、表结构设计 三、PostGIS数据保存 1、Mapper接口定义 2、Service逻辑层实现 3、数据入库 4、运行实例及结果 总结 前言 在上一篇博客中基于Java的XxlCrawler网络信息爬…

解决yarn第一次使用无法运行的问题

报错: yarn : 无法加载文件 D:\program software\NVM\nvm\v16.20.0\yarn.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 …

鲲鹏920RDMA应用示例代码

当前针对鲲鹏920服务器,编写了RDMA通信传输代码,首先采用TCP socket进行管理信息获取,然后调用verbs函数接口进行数据传输。需要安装rdma-core-devel库才可以编译 代码如下: /** rdma_lib.h** Created on: 2021年1月1日* A…

java激活

此破解码适合2023所有版本 找到idea64.exe.vmoption添加下面三行 链接:破解包下载 提取码:jqw1

软件工程 考研复试常考知识点总结

软件工程 什么是软件工程,这门课讲的什么? 软件工程就是把软件的开发、运行、维护的各个阶段进行系统化和规范化的过程,也就是把工程化的方法运用在软件技术之中,以构建和维护高质量的软件。 进一步,什么是工程化思想…

0基础学习SQL注入之万能账号密码(BUUctf例题-[极客大挑战 2019]EasySQL1)

做题 借助例题[极客大挑战 2019]EasySQL1来理解SQL注入中的万能账号密码。 我们现解题,解题过程中的知识点在后面都会说到。 打开网址,我们看到的是这个界面。根据题目提示应该是属于SQL注入类型的 1.寻找注入点,很明显,输入用…

JDK17的Mybatis-Plus报错问题

添加 --add-opens java.base/java.langALL-UNNAMED

物理机安装centos7并配置基本环境,网络配置,docker配置

1.首先下载镜像Download 2.下载UltraISO 安装docker 第1步:卸载当前版本docker yum erase docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \do…

unity制作拼接地图

前段时间有个朋友问我想要制作一款地图编辑器,最开始我还想着在一个平面用节点切割制作地图编辑器这倒是也行,但不太好控制每一个点,如果未来项目大了,更加不好维护。 偶然间翻到一篇文章:unity地图边缘检测 或许我们…

升级啦!探索全新 StarRocks 中文社区与高效使用秘籍!

眼尖的朋友可能已经注意到,StarRocks 中文社区最近换上了全新的皮肤。是的,我们 StarRocks 的聚集地升级了!🎉 自成立两年半以来,StarRocks 中文社区不断壮大,现已发展成为一个拥有数万名成员的活跃社区。…

2024年团队程序设计天梯赛模拟赛 L1 + L2

目录 L1 - 6 剪切复制 L1 - 8 小偷踩点 L2 - 1 推宝塔 L2 - 2 含茶量 L2 - 3 到底爱不爱我 L2 - 4 寻宝图 L1 - 6 剪切复制 使用计算机进行文本编辑时常见的功能是剪切功能(快捷键:Ctrl X)。请实现一个简单的具有剪切和粘贴功能的文本…

MSSQL 命令行操作说明 sql server 2022 命令行下进行配置管理

说明:本文的内容是因为我在导入Access2019的 *.accdb 格式的数据时,总是出错的背景下,不得已搜索和整理了一下,如何用命令行进行sql server 数据库和用户管理的方法,作为从Access2019 直接导出数据到sql server 数据库…

低噪声放大器是如何实现低噪声放大的功能的

灵敏度作为接收机最重要的指标之一,直接决定了接收机能分辨的最小信号。接收机的灵敏度计算公式如下所示。 Psensitivity=-174dBm+NF+10*lg(BW)+SNR 由接收机灵敏度的计算公式可知,影响接收机灵敏度的指标有噪声系数、带宽和信噪比,因此一旦带宽和信噪比确定了,那么能决…