基于二进制粒子群算法的配电网故障诊断- 附代码

基于二进制粒子群算法的配电网故障诊断- 附代码


摘要:基于二进制粒子群算法的配电网故障诊断相关知识。

1.二进制粒子群算法

具体原理参考我的博客:(https://blog.csdn.net/u011835903/article/details/119840815)

2.配电网故障区段定位原理分析

2.1.1 区段状态编码

在配电网中安装有断路器、分段开关、联络开关等设备,这些设备在区段定位中称之为节点。配电线路被这些开关设备分成多个小段,称之为区段。当配电网故障发生后,采集这些设备的故障信息就能判定出故障发生在哪个区段 。假设配电网线路的区段的状态用 s i s_i si​来表示,其编码规则如下:
{ s i = 1 , 区 间 存 在 故 障 s i = 0 , 区 间 不 存 在 故 障 (1) \begin{cases} s_i=1,区间存在故障\\ s_i=0,区间不存在故障\end{cases}\tag{1} {si=1,si=0,(1)

2.1.2 节点状态编码

假设配电网开关即节点的状态用 I j I_j Ij​表示,针对传统的辐射型配电网,其编码规则如下:
I j = { 1 , 有 故 障 电 流 流 过 0 , 无 故 障 电 流 流 过 (2) I_j=\begin{cases}1,有故障电流流过\\ 0,无故障电流流过\end{cases}\tag{2} Ij={1,0,(2)

2.1.3 开关函数构建(辐射型电网)

对辐射型配电网,当某个区段发生故障时,只有靠近主电源上游的节点产生故障电流,而远离电源的下游的节点不产生故障电流。于是辐射型配电网的开关函数其构建方式如下:
I i ∗ = s 1 ⋃ s 2 ⋃ . . . ⋃ s i (3) I_i^*=s_1\bigcup s_2\bigcup...\bigcup s_i \tag{3} Ii=s1s2...si(3)
式中, I i ∗ I^*_i Ii代表节点 i i i状态的期望值, s i ∼ s i + m s_i\sim s_{i+m} sisi+m代表处于相关节点 i i i下游的区段状态的假设值, ⋃ \bigcup ​代表逻辑或运算。以 1 图为例对该公式进行说明。

请添加图片描述

图1.辐射型电网模型

其中 S S S​ 代表电源, k 1 ∼ k 14 k_1\sim k_{14} k1k14​代表节点, s 1 ∼ s 14 s_1\sim s_{14} s1s14​​代表区段;现假设区段 s 10 s_{10} s10​​发生故障,其他代表区段正常,则区段状态假说为:
[ s 1 ∼ s 14 ] = [ 00000000010000 ] (4) [s_1\sim s_{14}]=[00000000010000]\tag{4} [s1s14]=[00000000010000](4)
根据式(5),计算出非故障支路上所有节点状态的期望值为:
{ I 1 ∗ = s 1 ⋃ s 2 ⋃ s 3 ⋃ s 4 ⋃ s 5 ⋃ s 6 = 0 I 2 ∗ = s 2 ⋃ s 3 ⋃ s 4 ⋃ s 5 ⋃ s 6 = 0 I 3 ∗ = s 3 ⋃ s 4 ⋃ s 5 ⋃ s 6 = 0 I 4 ∗ = s 4 ⋃ s 5 ⋃ s 6 = 0 I 5 ∗ = s 5 ⋃ s 6 = 0 I 6 ∗ = s 6 = 0 I 7 ∗ = s 7 ⋃ s 8 ⋃ s 9 ⋃ s 10 ⋃ s 11 ⋃ s 12 ⋃ s 13 ⋃ s 14 = 1 I 8 ∗ = s 8 ⋃ s 9 ⋃ s 10 ⋃ s 11 ⋃ s 12 ⋃ s 13 ⋃ s 14 = 1 I 9 ∗ = s 9 ⋃ s 10 ⋃ s 11 ⋃ s 12 ⋃ s 13 ⋃ s 14 = 1 I 1 0 ∗ = s 10 ⋃ s 11 ⋃ s 12 ⋃ s 13 ⋃ s 14 = 1 I 1 1 ∗ = s 11 ⋃ s 12 ⋃ s 13 ⋃ s 14 = 0 I 1 2 ∗ = s 12 ⋃ s 13 ⋃ s 14 = 0 I 1 3 ∗ = s 13 ⋃ s 14 = 0 I 1 4 ∗ = s 14 = 0 (5) \begin{cases} I_1^*=s_1\bigcup s_2\bigcup s_3\bigcup s_4\bigcup s_5\bigcup s_6=0\\ I_2^*=s_2\bigcup s_3\bigcup s_4\bigcup s_5\bigcup s_6=0\\ I_3^* = s_3\bigcup s_4\bigcup s_5\bigcup s_6=0\\ I_4^* = s_4\bigcup s_5\bigcup s_6=0\\ I_5^* =s_5\bigcup s_6=0\\ I_6^* = s_6=0\\ I_7^* = s_7\bigcup s_8\bigcup s_9\bigcup s_{10}\bigcup s_{11}\bigcup s_{12}\bigcup s_{13}\bigcup s_{14}=1\\ I_8^* = s_8\bigcup s_9\bigcup s_{10}\bigcup s_{11}\bigcup s_{12}\bigcup s_{13}\bigcup s_{14}=1\\ I_9^* = s_9\bigcup s_{10}\bigcup s_{11}\bigcup s_{12}\bigcup s_{13}\bigcup s_{14}=1\\ I_10^* = s_{10}\bigcup s_{11}\bigcup s_{12}\bigcup s_{13}\bigcup s_{14}=1\\ I_11^* = s_{11}\bigcup s_{12}\bigcup s_{13}\bigcup s_{14}=0\\ I_12^* = s_{12}\bigcup s_{13}\bigcup s_{14}=0\\ I_13^* = s_{13}\bigcup s_{14}=0\\ I_14^* = s_{14}=0 \end{cases}\tag{5} I1=s1s2s3s4s5s6=0I2=s2s3s4s5s6=0I3=s3s4s5s6=0I4=s4s5s6=0I5=s5s6=0I6=s6=0I7=s7s8s9s10s11s12s13s14=1I8=s8s9s10s11s12s13s14=1I9=s9s10s11s12s13s14=1I10=s10s11s12s13s14=1I11=s11s12s13s14=0I12=s12s13s14=0I13=s13s14=0I14=s14=0(5)
结合以上两式可以得出所有节点的期望值:
[ I 1 ∗ ∼ I 14 ∗ ] = [ 00000011110000 ] (6) [I_1^*\sim I_{14}^*]=[00000011110000] \tag{6} [I1I14]=[00000011110000](6)
若真实故障发生在区段 10,则节点状态的实际值为:
[ I 1 ∼ I 14 ] = [ 00000011110000 ] (7) [I_1\sim I_{14}]=[00000011110000] \tag{7} [I1I14]=[00000011110000](7)
对比两种可以发现,期望值与实际值相同,因此开关函数式(3)很好得描绘了辐射型配电网电流流向。

3.适应度函数选择

适应度函数按照节点状态采集值和期望值的最佳匹配原则进行:
m i n F i t ( s ) = ∑ j D ∣ I j − I j ∗ ∣ (8) min Fit(s) = \sum_j^D|I_j-I_j^*|\tag{8} minFit(s)=jDIjIj(8)
式中, I j I_j Ij​表示 F T U FTU FTU采集的节点状态的实际值, I j ∗ I_j^* Ij表示根据区段状态假说变量计算出来的节点状态的期望值, D D D​表示配电网的节点总数。在某些情况下,存在多解的可能,对此,对上述适应度函数进行了相关改进:
m i n F i t ( s ) = ∑ j D ∣ I j − I j ∗ ∣ + w ∑ i D ∣ s i ∣ (9) min Fit(s) = \sum_j^D|I_j-I_j^*| + w\sum_i^D|s_i|\tag{9} minFit(s)=jDIjIj+wiDsi(9)
w w w​为权系数,一般设为 0.5。

4.算法流程

整个算法的流程图如下图所示:

请添加图片描述

5.实验结果

设置二进制粒子群参数如下:

%实际最优解为:00000000010000
Iexp = [0,0,0,0,0,0,1,1,1,1,0,0,0,0];%故障节点状态编码
%% 二进制粒子群求解
dim = 14;%维度
pop = 20;%种群数量
MaxIter = 50;%迭代次数
Vmax = 4;%速度范围
Vmin = -4;%速度范围
fobj = @(x) fun(x,Iexp);%适应度函数

算法结果为:

请添加图片描述

得到的最优解为:[0 0 0 0 0 0 0 0 0 1 0 0 0 0]

可以看到二进制粒子群算法经过5次迭代就找到了最优解,最优解与实际故障信息是吻合的。表面了二进制粒子群算法的在该应用上具有较大的优势。

6.参考文献

[1]蔡华洵. 基于免疫算法的配电网故障定位研究[D].湖北工业大学,2020.

7.Matlab代码

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值