【配电网故障重构SOP】基于二阶锥松弛的加光伏风机储能进行的配电网故障处理和重构【考虑最优潮流】(Matlab代码实现)

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现


1 概述

电力系统最优潮流(Optimalpowerflow,OPF)综合考虑电网安全性和经济性,已成为电网运行及规划不可缺少的分析工具。该问题的数学模型属于非凸非线性规划问题,精确求解困难。内点算法在最优潮流问题求解的收敛性和效率方面的应用研究取得了较大进展,受到广泛关注。多种组合算法及新型改进算法也相继被提出,比如内点割平面法、半光滑牛顿法、奔德斯分解算法、交替方向乘子法等,以应对最优潮流问题的各 种目标和约束。但如何精确求取最优潮流问题的全局最优解,避免陷入局部最优,仍是困扰学术界的一大难题。

二阶锥规划转化求解

上述故障重构模型中,式( 9) 潮流约束具有非线性、非凸性,其强非凸性使得该故障重构问题变为一个NP 难题,最优解难以求得,且求解效率较低。在此引入中间变量,通过二阶锥松弛技术将其转化成二阶锥形式,由凸规划的理论求得全局最优解。

2 运行结果

 

 

 

 

 部分代码:

%% 光伏接入位置 7、13、27, 容量分别为 500kW , 300kW , 400kW
Solar_origin_data=[87.6667, 87.6667, 87.6667, 87.6667, 87.6667, 87.6667, ...
                   102.667, 125.333, 132,     163.889, 178.111, 216.778, ...
                   237,     240,     230.444, 224.556, 209.778, 171, ...
                   133.556, 103.111, 87.6667, 87.6667, 87.6667, 87.6667];
Solar_radio=zeros(33,1);
Solar_radio(7)=500/(500+300+400);
Solar_radio(13)=300/(500+300+400);
Solar_radio(27)=400/(500+300+400);
%% 风机接入位置 10、16、 30, 容量分别为 500kW , 400kW , 400kW
Wind_origin_data=[259.333, 221.667, 278.889, 192.222, 240.556, 211.333, ...
                  164.222, 106.222, 172.889, 126,     240.111, 278.556, ... 
                  278.222, 269.333, 125.222, 154.667, 124.667, 183.222, ...
                  125.444, 117.778, 191.667, 221.556, 127.222, 250.222];
Wind_radio=zeros(33,1);
Wind_radio(10)=500/(500+400+400);
% Wind_radio(16)=300/(500+300+200+200+300);
Wind_radio(16)=400/(500+400+400);
Wind_radio(30)=450/(500+400+400);
% Wind_radio(33)=300/(500+300+200+200+300);
%% 负荷数据
Load_origin_data=[180,     109.778, 134.111, 158.444, 197,     277.222, ...
                  325.778, 442.889, 537.444, 560.778, 465.889, 348.778, ...
                  396.889, 466.889, 514.111, 561.889, 584.222, 490.222, ...
                  442.444, 372.222, 324.889, 277.444, 229.778, 181.889];
%data/64*500表示此时刻系统总的负荷、PV、WT,单位KW,不知道这样的理解对不对,但这么算的话负荷、PV/WT大概都在500KW以内
%除以1000表示单位由KW变为MW,接下来的一切计算功率均默认为多少MW,包括ESS功率0.1MW=100KW
Solar_data=(Solar_origin_data-87.6667)/64*500/1000; 
Wind_data=(Wind_origin_data-87.6667)/64*500/1000;
Load_data=(Load_origin_data-87.6667)/64*500/1000;

p_load=Bus(:,2)/1000; %表示各个节点负荷占的标幺值?为什么要除以一千
q_load=Bus(:,3)/1000;
for a=2:33
    Load_radio(a)=p_load(a)/sum(p_load); %表示各个负荷占总负荷的比值
    q_Load_radio(a)=q_load(a)/sum(q_load);
end
q_Load_data=Load_data*tan(acos(0.85));
theta=atan(q_load./p_load);
for a=1:24
    p_Solar(:,a)=Solar_radio*Solar_data(a);
    p_Wind(:,a)=Wind_radio*Wind_data(a);
    p_Load(:,a)=Load_radio*Load_data(a); %每个节点在每一时刻的负荷值
    q_Load(:,a)=q_Load_radio*q_Load_data(a);
end

3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]柳影,田君杨,李佩杰等.求解最优潮流全局最优解的二阶半定规划方法[J].重庆师范大学学报(自然科学版),2022,39(02):22-30.

[2]陈攀峰,程浩忠,吕佳炜,张宏伟.基于二阶锥规划考虑主动管理的主动配电网故障恢复[J].电测与仪表,2019,56(21):46-51.DOI:10.19753/j.issn1001-1390.2019.021.008.

4 Matlab代码实现

你可能感兴趣的:(电力系统,matlab,重构,算法)