【优化规划】基于matlab禁忌搜索算法求解配电网无功补偿优化规划问题【含Matlab源码 1842期】

举报
海神之光 发表于 2022/05/29 00:42:51 2022/05/29
【摘要】 一、基于禁忌搜索算法的无功优化参数选择及流程 禁忌搜索方法是Glover F在1986年首次提出的一种智能启发式算法。鉴于禁忌搜索算法是对局部邻域搜索的一种扩展,通过引入一个灵活的存储结构和相应的禁忌准...

一、基于禁忌搜索算法的无功优化参数选择及流程

禁忌搜索方法是Glover F在1986年首次提出的一种智能启发式算法。鉴于禁忌搜索算法是对局部邻域搜索的一种扩展,通过引入一个灵活的存储结构和相应的禁忌准则来避免迂回搜索,并通过藐视准则来赦免一些被禁忌的优良状态,进而保证有效探索,最终实现全局最优化。由于配电网无功优化问题相当复杂,需要降低算法对初始解向量的依赖程度,增强收敛速度,减少搜索时间,本研究采用自适应长度的集中性和多样性禁忌搜索算法解决含风电机组的配电网无功优化问题。算法改进主要体现在邻域解集和候选解集的控制策略上。

1 算法参数选择
(1)适配值及解空间
最小网络损耗为对应的适配值函数,由牛顿拉夫逊潮流计算得出。
节点和对应节点的补偿容量为所要求的解向量X=[ni,nj,…nt;Qci,Qcj,…Qcm];ni为节点编号,QCi为对应节点的补偿容量。

(2)初始解
初始解对收敛速度和能否跳出全局最优有一定的影响。由于采用的是自适应长度的集中性与多样性搜索策略,降低了其对初始解的敏感性,并且多样性解是随机得到的,所以本研究采用随机产生满足电压约束条件的初始解。

(3)邻域控制策略
邻域搜索由集中性和多样性搜索两部分组成。将邻域分为两部分,前半部分元素称为集中性元素,用于集中性搜索,即搜索相邻的节点元素和补偿电容器的相邻组数。后半部分元素称为多样性元素,用于多样性搜索,即除前部分解向量和禁忌表中的解向量外随机产生满足电压约束条件的解向量。

(4)候选解控制策略
自适应长度的集中性和多样性搜索策略,将候选集中的元素与邻域对应分为两部分,前半部分从邻域的前半部分中选择最佳的解向量组成,称为集中性候选解集。后半部分从邻域的后半部分元素中随机选取组成,称为多样性候选解集。程序运行过程中,集中性元素和多样性元素的个数根据搜索过程中解的质量动态变化。设候选集长度为CL,候选集中集中性元素和多样性元素的分界点长度记为DL,即第1至DL个元素为集中性元素,后DL+1至CL个元素为多样性元素。在迭代之前,前CL/2为集中性元素组成的候选解集。后CL/2为多样性元素组成的候选解集。迭代过程中,如果当前最优解出自集中性元素,则对应的集中性元素个数变为DL+1,多样性元素个数变为CL-DL-1,如果当前解出自多样性元素,则集中性元素个数变为DL-1,多样性元素个数变为CL-DL+1,如此构成了自适应长度的集中性和多样性搜索的候选解集。

DL按上述规则动态地变化使得解的质量有提高时,候选集中的集中性元素增多,即进行集中性搜索的概率增大。相应地,多样性搜索的概率降低。反之,当解的的质量没有提高时候选集中的集中性元素减少,即进行集中性搜索的概率减少,相应地,多样性搜索的概率提高。这样,就能根据搜索进程中解的质量好坏自动地进行集中性搜索或多样性搜索。

(5)禁忌对象
禁忌对象是当前解的各状态量,即补偿节点和对应的补偿容量。

(6)禁忌表及禁忌长度
采用明晰记忆,即将搜索过的当前解的状态量放入禁忌表,把已经搜索过的节点和对应节点的容量放入禁忌表,以免再次搜索访问。
禁忌长度是禁忌对象在禁忌表中的任期,根据计算的规模大小选取。在对应的配电网节点数不多时一般取5。

(7)终止准则
终止准则设定为目前最优值,即“best so far”对应的目标函数值连续不变的迭代的次数。

2 算法流程
算法流程见图3。
在这里插入图片描述
图3 无功优化算法流程图

二、部分源代码

clc
%%%%%%禁忌搜索算法%%%%%%%%%%%%%%%
%%%%%%%%只考虑节点和容量分别单独变化的邻域搜索%%%%%%%%%%%
%function []=TS
Vb=11;                 %Vb=11kV
Sb=100000;             %Sb=100MVA=100000kVA
Zb=(Vb^2/Sb)*1000;     %Zb单位为Ω    电流单位为A
Z=[1  0  1  3  0.195/Zb+j*0.080/Zb 0.60 230/Sb 142.5/Sb;
   2  1  2  2  0.195/Zb+j*0.080/Zb 0.55 0.00 0.00; 
   3  2  3  3  0.299/Zb+j*0.083/Zb 0.55 230/Sb 142.5/Sb;
   4  3  4  3  0.299/Zb+j*0.083/Zb 0.50 230/Sb 142.5/Sb;
   5  4  5  2  0.299/Zb+j*0.083/Zb 0.50 0.00 0.00;
   6  5  6  2  0.524/Zb+j*0.090/Zb 0.60 0.00 0.00;
   7  6  7  3  0.524/Zb+j*0.090/Zb 0.40 230/Sb 142.5/Sb;
   8  7  8  3  0.524/Zb+j*0.090/Zb 0.60 230/Sb 142.5/Sb;
   9  8  9  2  0.524/Zb+j*0.090/Zb 0.40 0.00 0.00; 
   10 9 10  3 0.524/Zb+j*0.090/Zb 0.25 230/Sb 142.5/Sb;
   11 10 11 1 0.524/Zb+j*0.090/Zb 0.20 137/Sb 84/Sb;
   12 2 12	3 0.524/Zb+j*0.090/Zb 0.30 72/Sb 45/Sb;
   13 12 13 3 0.524/Zb+j*0.090/Zb 0.40 72/Sb 45/Sb;
   14 13 14 3 0.524/Zb+j*0.090/Zb 0.20 72/Sb 45/Sb;
   15 14 15 1 0.524/Zb+j*0.090/Zb 0.10 13.5/Sb 7.5/Sb;
   16 5  16 3 0.299/Zb+j*0.083/Zb 0.60 230/Sb 142.5/Sb;
   17 16 17 3 0.299/Zb+j*0.083/Zb 0.55 230/Sb 142.5/Sb;
   18 17 18 3 0.378/Zb+j*0.086/Zb 0.55 230/Sb 142.5/Sb;
   19 18 19 3 0.378/Zb+j*0.086/Zb 0.50 230/Sb 142.5/Sb;
   20 19 20 3 0.378/Zb+j*0.086/Zb 0.50 230/Sb 142.5/Sb;
   21 20 21 3 0.524/Zb+j*0.090/Zb 0.50 230/Sb 142.5/Sb; 
   22 21 22 3 0.524/Zb+j*0.090/Zb 0.50 230/Sb 142.5/Sb;
   23 22 23 3 0.524/Zb+j*0.090/Zb 0.60 230/Sb 142.5/Sb;
   24 23 24 3 0.524/Zb+j*0.090/Zb 0.40 230/Sb 142.5/Sb;
   25 24 25 3 0.524/Zb+j*0.090/Zb 0.25 230/Sb 142.5/Sb;
   26 25 26 1 0.524/Zb+j*0.090/Zb 0.20 137/Sb 85/Sb;
   27 6  27 3 0.524/Zb+j*0.090/Zb 0.30 75/Sb 48/Sb;
   28 27 28 3 0.524/Zb+j*0.090/Zb 0.30 75/Sb 48/Sb;
   29 28 29 1 0.524/Zb+j*0.090/Zb 0.30 75/Sb 48/Sb;
   30 9  30 3 0.524/Zb+j*0.090/Zb 0.30 57/Sb 34.5/Sb;
   31 30 31 3 0.524/Zb+j*0.090/Zb 0.40 57/Sb 34.5/Sb;
   32 31 32 3 0.524/Zb+j*0.090/Zb 0.30 57/Sb 34.5/Sb;
   33 32 33 1 0.524/Zb+j*0.090/Zb 0.20 57/Sb 34.5/Sb];      
%Z=[支路数 首节点 尾节点 尾节点类型 支路阻抗 支路长度 尾节点的有功功率 尾节点的无功功率]   电源点:0  末梢点:1  T接点:2   负荷点:3
[h,l]=size(Z);
b=h;                      %支路数 
n=h+1;                    %节点数
Vb=11;                   %Vb=11kV
Sb=100000;               %Sb=100MVA=100000kVA
Zb=(Vb^2/Sb)*1000;       %Zb单位为Ω    电流单位为A
[PlossTotal0,Vm]=TideCal(Z);  %初始潮流计算得到初始系统有功损耗为202.292471kW
Vm;                      %补偿前各节点电压
Ptotal=0;
for i=1:b
    Ptotal=Ptotal+Z(i,7)*Sb;    %系统总有功功率
end


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]余健明,刘飞.基于禁忌搜索算法的含风电机组的配电网无功优化研究[J].西安理工大学学报. 2013,29(01)

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/124068572

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。