开源代码分享(5)—配电网重构的启发式算法(附matlab代码)

news2024/11/17 3:39:49

        来源于文献IEEE TRANSACTIONS ON POWER SYSTEMS期刊文献的开源代码。

        摘要:本文提出了一种两阶段的启发式计算方法,可以在最小的计算时间内重新配置一个径向分布网络。所有的网络交换机在操作的初始阶段都是关闭的,并提出了一个顺序的开关开闸策略,以获得一个接近最优的径向配置。在随后的阶段中,从径向网络中选择一对开关来交换其开/关状态。提出了一种利用总线注入分支电流矩阵的数学模型,选择一对交换机,目的是减少每次交换操作后网络的功率损耗。该方法在33总线、69总线、84总线、136总线和417总线的配电网上进行了测试,结果表明,所提的方法有助于在明显较低的运行时间下实现径向配电网的最佳配置。

1.引言

        配电网在向电力系统的终端能源消费者提供电力方面起着至关重要的作用。然而,低电抗和电阻的比值和配网的径向性质导致了热能形式的高有源功率损失。配网重构(DNR)是在保证系统可靠运行的同时,尽量减少网络有功功率损耗的可能解决方案之一。配电网中有两种类型:常闭分段开关和常开连接开关。DNR通过修改网络中交换机的开/关状态,提出了一种新的配电网拓扑结构。

        文献中用于解决DNR问题的方法可以大致分为三种类型:进化算法、数学规划和启发式方法[1]、[2]、[3]。然而,由于进化算法和数学规划的高计算要求,研究人员更倾向于DNR的启发式方法。对于快速重构,启发式算法考虑了两种策略:分支交换策略和顺序开开关策略。[4]首先提出了分支交换策略,通过交换开关对的开/关状态来重新配置最初的径向网络。然而,由于作者在分析中忽略了分支电流的反应性分量,因此所提出的方法的准确性较低。作为一种解决方案,在[5]中引入了初始网格网络的顺序开关打开策略,其中环路中的开关被策略性地打开,直到获得最优的径向配置。但该方法未能达到对大型系统的最优配置。此后,在文献中引入了几种DNR的启发式方法。在[6]中引入了一种最小电流循环更新机制,该机制旨在绕过局部最优点,实现全局最优结果。在[7]中,提出了一种结合分支交换和开开关策略的启发式方法。

        虽然文献中可用的技术是非常精确的,但它需要大量的计算时间来实现最佳配置。本文提出了一种新的两阶段启发式算法,可以在更短的时间内解决一个DNR问题。与其他启发式方法相比,该方法减少了在操作过程中进行负载流分析(LFA)的需要,从而减少了计算时间。

2.配电网重构问题的数学模型

        DNR问题是一个混合整数非线性优化问题,其目标是最小化配电网中的总有源功率损失。假设网络中的所有分支都配备有一个交换机,网络中总有功功率损失(Ploss)的最小化可以用数学表示为:

9baee7483b294a4ca9b6045f8f65f7f6.png

b7e33f68f4b94a2e86f01d4dbfcadff4.png 

790f7d7c5d884394b80eaa8e97bd4c8c.png 

3.提出的方法

a2ae3280e5ba4592bad7a4b9bd16e719.png

        该方法旨在通过确定所有支路的开/关状态,来减少径向连接配电网中的功率损耗。然而,网络中大量的交换机增加了该方法的计算负担。因此,为了减少计算负担,将1型、2型和3型开关[7]排除在操作中涉及的开关列表之外。所提出的DNR方法分两个阶段进行,详见以下两个小节。

3.1.阶段1:

        执行阶段1的执行首先是打开最初配置的网络中的所有交换机,从而形成网络循环。采用传统的牛顿拉夫逊LFA来计算流过每个网络交换机的电流。然后,选择每个网络回路中携带最小电流的交换机,将其状态从ON更改为OFF。在算法1中给出了顺序开关开启策略的分步过程。

3.2.阶段2:

        分支交换策略从阶段1操作中获得的径向网络配置作为阶段2操作的输入配置。分支交换策略旨在通过成对地在交换机之间交换开关状态,从而进一步减少网络中的总损耗。

        在一个径向网络中,拉杆开关的闭合操作导致了一个网络回路的形成。假设从初始网络中选择一个捆绑开关(k1)进行闭合操作,并关闭网络环路中的一个分段开关(k2),以恢复配电网的辐射性。因此,在交换操作后,得到了一个新的径向网络。网络回路中的一组交换机可以用数学方法建模为,

 5efa81722c8c42fba74032a571fc4614.png

式中,BIBC为交换操作前,向径向网络分支电流矩阵的总线注入;m1和n1为连接开关k1连接的母线。设一个集合Ω2被定义为Ω1的子集。Ω2的元素是新网络的分段交换机,它们不出现在连接总线m1和n1与变电站的最短路径上。在数学上,它可以用初始网络的BIBC矩阵表示为,

46f49b70e2164d4e875d2388c3c17e7a.png

        假设每个总线上的电流注入在交换操作后不变,在新径向网络的分支电流上的以下点可以使用基尔霍夫电流定律:

        1.在新网络中流过开关k1的电流将等于在初始网络中流过开关k2的电流,即。

 3d8dfd05f4ad41c9bde83b2d8a1c3c88.png

        2.如果交换机k在网络环路内,则新网络的第k个分支电流可以表示为:

57c648c8fe8146e78f4ed2b6daff273d.png

        3.如果交换机k在网络环路之外,则新网络的第k个分支电流没有变化,即: 

eedcdb5e72934579985058eb39f0c842.png

        由公式(13)-(15)可知,新的径向网络的分支电流可以用一种简单的形式写成, 

f9df08a76d824567a24596375e3be697.png

        在第2阶段的操作中,使用(17)计算网络中每个交换机对的功率损耗的近似变化,并选择导致功率损耗变化最大的一对来交换其开/关状态。 

97a5b840b1924966b473edacf7734b80.png

        在交换所选开关对的开/关状态后,执行LFA,以检查操作约束中的违规情况。该过程继续进行,直到功率损耗减少,并满足所有的操作约束。算法2给出了开关间开关状态交换的详细策略。

4.算例分析

        利用33总线、69总线、84总线、136总线和417总线五种测试系统,验证了所提出的径向配电网的重构方法。所提出的方法的模拟是在MATLAB(版本R2021b)软件上进行的,该软件安装在英特尔酷睿i5-8500、3.0 GHz CPU、8gbRAM和64位系统上。表一显示了根据所提出的方法重新配置测试系统后获得的连接开关列表。

e8a3968e59704cb79d2dd1d161840a6e.png

0722c85268c04592ba076614112452b4.png

        此外,为了对其他启发式方法的工作进行比较分析,我们还在相同的操作环境下模拟了[6]和[7]中提出的DNR方法。比较分析的结果列于表二。最优配置测试系统的损失从文献[1],[2]中获得,并作为分析的基准。表二确认了对于33总线、69总线、84总线和136总线测试系统,所提出的DNR方法实现最小有损网络的精度为100%。此外,该方法在较大的系统中,如417总线测试系统中,提出的精度仅降低了0.29%。

        对比分析也证实了所提出的方法是文献中重构径向分布网络最快的启发式方法。计算时间的改进是通过减少在操作过程中需要执行的LFA的数量来实现的。在提出的顺序开关开启策略中,没有考虑最优电流,因此要求执行LFA,从而减少计算时间。所提出的分支交换策略进一步保证了配电网的最小有损配置。每个测试系统的方法在每个阶段的损失列于表三。

 ed4d6b3357cb4a8eb5924c4f137fde81.png

55b1da79333745239597f97465de1022.png 

4c07c5f253834f1a8011a7e8f8d74e44.png 

82895d259e1c47f1b363406fafda3e9b.png 

ab722a4f255f465aa67f1905ba5c93ae.png 

57ba9862a898446e9d1192508f0b36be.png 

899e7dd13065467bb13a96ae1b50040c.png 

请选择测试系统:1-33节点 2-69节点 3-84节点 4-136节点 5-417节点:  5

初始断开的支路为: 415  416  417  418  419  420  421  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469  470  471  472  473

415节点节点系统重构后的有功网损为 708.941430 kW.

 

重构后断开的支路: 1   11   25   34   35   44   50   64   95   99  123  131  136  141  153  162  165  179  197  220  234  277  281  284  342  345  354  381  383  407  415  417  418  420  424  425  426  427  428  432  435  436  437  438  440  442  446  449  451  458  460  462  464  466  467  468  470  472  473

415节点系统重构后的有功网损为 583.244228 kW.

 

计算时间为 7.574773 秒

 0d51d4956fd1443bb2b0eca36558fa50.png

5.结论

        在过去50年的文献中,已经提出了几种DNR方法。大多数方法都能获得最优的结果,但计算时间非常大。在这项工作中,提出了一种两阶段的重构方法,以在明显更短的时间内找到配电网络的最小损耗配置。由于其速度和准确性,所提出的方法是配电系统操作员在在线模式下可以使用的理想的重构技术。

6.完整代码获取方式

 【免费】配电网重构的启发式算法(matlab代码)

 

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

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

相关文章

基于SSM+jsp的教学质量评价系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Origin如何绘制三维离散点并拟合曲面?

文章目录 0.引言1.准备数据2.三维离散点参数设置并绘图3.拟合曲面参数设置并绘图 0.引言 在数据统计分析中,有时希望知道一个因变量在两个自变量变化情况下的变化情况,这时可以绘制散点图,观察基础情况,进一步可以拟合散点&#x…

腾讯安全吴石:基于威胁情报构建免疫体系,助力企业稳步迈向智能安全新阶段

6月13日,腾讯安全、腾讯研究院联合IDC、《中国信息安全》杂志社、CIO时代、新基建创新研究院等多家权威机构、媒体共同发起“数字安全免疫力研讨论坛”,聚合产学研各界专家学者探讨数字安全建设新范式。论坛上,腾讯安全联合IDC发布“数字安全…

【物联网】使用RabbitMQ作为MQTT服务端并自定义设备连接权限

文章目录 项目背景一、部署RabbiqMQ二、设备连接鉴权1.开启插件2.修改配置3.连接鉴权4.消息鉴权 总结 项目背景 最近公司启动了一个新的物联网项目,使用MQTT协议与设备通信,在比较了各大MQTT服务后,决定选用开源的RabbitMQ搭建我们的服务端。…

最专业的敏捷需求管理工具推荐

为了协助大家找到合适的需求管理工具,我们选择了国内外几款款工具作比对: Leangoo领歌敏捷工具 Jama Software Visure Requirements IBM DOORS Next ReqSuite RM ReQtest Xebrio Orcanos Helix RM SpiraTeam Accompa Innoslate Leangoo领歌…

Python学习——元组

一、元组的定义 这部分就没有增、删、改操作了,是因为元组是一个不可变序列,元组也是Python内置的数据结构之一。 补充:关于可变序列与不可变序列 可变序列是指可以对序列进行增、删、改的操作,对象地址不发生变化。常见的可变序列…

【Jvm】Java类加载机制是什么?

文章目录 一、目标:二、原理 (类的加载过程及其最终产品)三、过程(类的生命周期)3.1、加载3.2、校验3.3、准备3.4、解析3.5、初始化 四、类加载器五、双亲委派机制 一、目标: 什么是类的加载?类…

vue3.x+elementPlus+swiper+vuedraggable实现页面装修

前言 该实现代码依赖框架:vue3.xelementPlusswipervuedraggable,做好前期工作,可直接在下面的附件处点击下载链接来下载相关文件;文件中包括搜索/图文广告/滚动消息三个模块代码示例,其他组件实现思路相同&#xff0c…

APT 系列 (一):APT 筑基之反射

什么是反射? 简单来讲,反射就是:已知一个类,可以获取这个类的所有信息 一般情况下,根据面向对象封装原则,Java实体类的属性都是私有的,我们不能获取类中的属性。但我们可以根据反射&#xff0…

问题解决 |关于CUDA的代码错误总结以及解决方法

本博客主要关于常见的CUDA的代码错误总结以及解决方法~ 1.RuntimeError运行错误 1.1.RuntimeError: CUDA error: out of memory CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect. For debugging cons…

Day09 Python面向对象和异常详解

文章目录 第六章 Python面向对象6.1. 面向对象基础6.1.1. 面向对象与面向过程6.1.2. 类与对象6.1.3. 类的设计与对象的实例化6.1.4. 构造方法6.1.5. 魔术方法6.1.6. 类与类的关系使用到另一个类的对象完成需求使用到另一个类的对象作为属性 6.2. 面向对象进阶6.2.1. 封装6.2.1.…

开启AI原型设计新时代:数字创意的崭新前景

随着人工智能生成内容(AIGC)相关研究的突破,人类社会正面临一个全新的转折点。诸如多模态、可控扩散模型和大型语言模型等技术正在直接改变创意设计领域的生产过程。 在AIGC领域中,根据输入内容和输出形式的差异,我们…

【MySQl】索引及其B+树

目录 一、索引初识和测试数据的构建 二、磁盘 三、MySQL、OS、磁盘的交互方式(InnoDB 存储引擎) 四、MySQL中索引和page的理解 1、为什么MySQL和磁盘进行IO交互的时候,要采用page的方案进行交互,而不是采用用多少&#xff0c…

O2O跑腿快递可以解决哪些问题?

各大电商巨头都已经布局了O2O快递,就目前国内的快递环境而言,基本已经形成了四通一达局面,那么O2O同城配送目前有何痛点呢?下面小编就来为大家分析分析,感兴趣的朋友快来一起了解了解吧! 一、O2O快递目前存在哪些痛点? 我们国…

力扣题库刷题笔记14--最长公共前缀

1、题目如下: 2、个人Python代码实现 首先讲一下思路,通俗的来讲,就是依次比较字符串里面所有的字符,如果相同就是公共前缀,如果不同,后面就不用比较了,所以主要就是以下几点: 1、外…

[Leetcode] 0026. 删除有序数组中的重复项

26. 删除有序数组中的重复项 点击上方,跳转至Leetcode 题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语…

好用到爆的数据库软件,还能兼容Excel,可以抛弃“VF”和Access

现在大部人已经不再用VF “VF”这个缩写,也只是停留在那个时代里,很多人已经不知道原来的样子,但有的人却还感慨万千。 懂得人自然都懂! 微软的两款数据库软件:一个是office的Access,另一个就是“VF” VF…

自定义数据类型:结构体,枚举,联合

之前我们已经了解过结构体,这篇文章再来深入学习的一下,然后再学习其他自定义数据类型,枚举和联合 目录 1.结构体 1.1 结构体类型的声明 1.2 结构体的自引用 1.3 结构体变量的定义和初始化 1.4 结构体内存对齐 1.5 结构体传参 1.6 结…

【Shermo学习】使用shermo批量读入ORCA频率计算结果文件,并批量输出热力学校正数据

使用shermo批量读入ORCA频率计算结果文件,并批量输出热力学校正数据 安装与运行简单任务示例批量输出热力学校正数据 Shermo是北京科音自然科学研究中心卢天老师开发的一个程序,可以用来处理量子化学计算过程中的热力学数据。本文基于Shermo程序&#xf…

数据库设计篇-范式与反范式

概述 一般地,在进行数据库设计时,应遵循三大原则,也就是我们通常说的三大范式,即第一范式要求确保表中每列的原子性,也就是不可拆分;第二范式要求确保表中每列与主键相关,而不能只与主键的某部…