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

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

         来源于文献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)的最小化可以用数学表示为:

image.gif

image.gif

image.gif

3.提出的方法

image.gif

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

3.1.阶段1:

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

3.2.阶段2:

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

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

image.gif

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

image.gif

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

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

image.gif

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

image.gif

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

image.gif

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

image.gif

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

image.gif

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

4.算例分析

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

image.gif

image.gif

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

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

image.gif

image.gif

image.gif

image.gif

image.gif

image.gif

image.gif

请选择测试系统: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 秒

image.gif

5.结论

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

6.完整代码获取方式

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


相关文章
|
27天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
12天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
12天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
15 3
|
12天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
32 1
|
12天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
22 1
|
22天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
23天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
28天前
|
算法 调度 C++
[数据结构与算法]贪心算法(原理+代码)
[数据结构与算法]贪心算法(原理+代码)
|
28天前
|
存储
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
|
10天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。