参考文献:
[1]郝文斌,孟志高,张勇,等.新型电力系统下多分布式电源接入配电网承载力评估方法研究[J].电力系统保护与控制,2023,51(14):23-33.
1. 摘要
随着光伏和风电等多种分布式电源的接入,使得传统配电网的结构及其运行状态发生了较大改变。因此,通过建立直观的分布式电源接入评价体系,对新型电力系统背景下的配电网接入分布式电源的承载力进行合理评估成为重要的研究内容。以可再生能源及无功补偿装置接入的新型配电网中风电和光伏发电的最大容量为目标函数,建立分布式电源接入配电网的承载能力模型,通过二阶锥松弛将该模型转化为二阶锥规划模型进行求解。然后考虑到配电网运行的优质性、经济性以及灵活性,建立多层次承载能力评估体系,根据模型求解结果计算承载能力评价指标,再通过组合赋权法将评价指标计算结果转化为综合评分。最后通过对 IEEE33 节点系统配电网模型进行算例分析,结果表明所提评估方法更为全面、有效。
2.原理介绍
2.1 新型配电网分布式电源承载能力模型
为了对配电网中接入分布式电源的承载能力进行准确的评估,对接入的分布式电源进行充分的分配和使用,本文以一个完整的调度周期内分布式新能源承载能力最大化为优化目标函数,对配电网潮流、分布式电源和无功补偿装置等可控单元出力等方面建立模型约束。
1) 目标函数
2) 约束条件
(1) 支路潮流约束
本文以辐射型配电网为研究对象,选取其中一条支路在t 时刻下的运行状态建立支路潮流模型,如图 1 所示。
(2) 离散无功补偿约束
静止无功补偿器可以实现无级连续可调,实现静止、快速、连续无级地向电网提供容性或感性无功,达到全面提高电压的质量、满足供电要求的目的。其应该满足的运行约束如式(8)所示。
(3) 连续无功补偿约束
在电网中接入分组投切电容器组,其满足的运行约束为
(4) 分布式新能源运行约束
在节点i 接入分布式电源,则其在t 时刻的出力 应该满足式(11)。
(5) 节点电压约束
由于负荷具有时变性,且加入的分布式能源与无功补偿装置也具有同样的特性,使得系统的实时运行状况会更加复杂,因此为了系统运行安全,加入节点电压约束保证各节点电压能够运行在合理安全的范围内,节点电压约束如式(12)。
2.2多层次评估体系建立
承载能力评价指标体系需遵循构建评价指标的制定原则,即基于科学性、系统性、层次性、时效性等确定影响承载能力的关键指标[23]。本文以配网新能源承载力评价为目标层,参照国内外评价指标构建情况,考虑到大量分布式能源接入的影响,建立如图 2 所示的配电网接入分布式电源承载能力评估体系。
根据图 2 所示,评价指标体系共三层,第一层为目标层,第二层为性能层,第三层为指标层。目标层为评价体系的目的。性能层是能够评价配电网总体性能的指数,主要有安全性、经济性及灵活性。指标层是将性能层转化为具体的数值指标,方便观测。其中,安全性包括电压偏移指数和电压合格率两项指标,经济性包括无功补偿合格率和平均线损率两项指标,灵活性包括净负荷波动率和新能源发电占比两项指标。
2.3 指标计算模型
1) 安全性指标
2) 经济性指标
3) 灵活性指标
2.4 指标体系统一化
以上指标是从某一方面来评估分布式电源接入对配网的影响,为了综合评估分布式能源接入的影响,本文采用层次分析法和熵权法主客观相结合的组合赋权法对上述指标进一步进行量化,形成全面的承载能力评价分数,其流程图如图 3 所示,并在此基础上针对配电网系统提出承载能力改善方案。其具体实现流程如下所述。
1) 指标正向化
指标分为正向指标和负向指标。正向指标是指指标越大,则指标越优;负向指标是指指标越小,则指标越优。因此为了方便计算,需要把所有指标转化为正向指标。
设有 m 个待评对象,n 个评价指标,可以构成数据矩阵 X,如式(29)所示。
2) min-max 标准化
由于每个指标的数量级和量纲可能有差别,因此采用 min-max 标准化对正向化处理后的矩阵进行标准化处理,设标准化后的数据矩阵元素为rij ,由上可得指标正向化后数据矩阵元素为 xij'*,则标准化处理公式如式(32)。
3) 层次分析法
层次分析法是一种主观赋权的方法,将决策问题按照目标、准则及具体评价方案分解为不同的层次,然后用求解判断矩阵特征向量的办法,进行定性和定量结合的决策分析,最后得到主观权重[24]。其具体实现流程如下。
(1) 针对研究的问题建立分层级的指标体系。本文的评价指标体系即分层级指标体系,便于后续进行计算。
(2) 通过标度系统表建立判断矩阵,标度系统表如表1所示,判断矩阵表明指标两两相较的重要程度。
(5) 若判断矩阵通过校验,则将特征向量W 归 一化得到所求主观权重向量。若未通过校验,则修 改判断矩阵中的元素值,再次进行计算。
4) 熵权法
熵权法是一种常用的客观赋权法,与层次分析法需要评判者写出判断矩阵进行权重计算不同,其赋值指标权重仅依靠指标数据本身的信息熵进行计算。当指标的信息熵值越大,其权重就越小;当指标的信息熵值越小,其权重就越大[25]。利用熵权法计算客观权重的计算步骤如下。
5) 计算组合权重
最后计算组合权重Wj ,得出可观测的分数,如 式(39)所示。
3 . 编程思路
3.1 参数和变量定义
3.2编程思路
根据对文献内容的解读,可以设计下面的编程思路:
步骤1: 输入所需数据
这一步比较简单,所需数据文中基本都已给出,按照表1的格式输入matlab中即可。IEEE33节点系统直接使用Matpower工具箱的数据。
步骤2 : 定义决策变量
这一步也比较简单,按照表2,初始化决策变量即可,仔细检查变量的维度和类型,不要出错。
步骤3:写目标函数和约束条件
这一步比较容易出错,按照给定的数据和定义的变量,仔细写出优化问题的目标函数和约束条件。写约束条件时尤其要注意电压、功率、电流等参数和变量最好都使用标幺值,避免单位不统一导致优化问题无解。
步骤4:使用yalmip工具箱对优化问题进行求解
文中构建的优化问题是混合整数二阶锥规划形式,代码中是采用yalmip+gurobi进行求解,也可以改成cplex求解器或mosek求解器。
3.3文献中存在的问题分析
1)一些细节问题
连续无功补偿和离散无功补偿约束写反了,电容器组的容量设定为500Mvar,太大了,应该是500kvar,也就是0.5Mvar;还有像电容器最大组数、电压上下限等参数没有给定。
2)优化模型的问题
文中给出的优化模型存在一定问题。
①.IEEE33节点配电网应有上级电源出力,文中并未体现仅靠分布式电源和无功补偿装置无法实现功率平衡;
②.文中缺少支路电流、支路有功功率、无功功率、网络损耗的约束,所得分布式电源承载力计算结果不准确。
③.优化模型中已经给定了电压上下限约束,那么所有节点电压都会是合格的。文中所提的电压合格率指标不知是什么含义?优化模型中将节点电压标幺值约束为0.95以上,计算电压合格率指标时要求0.96以上才合格,不然所有场景都会是100%。
④.按照文中表A5的结果,RPG指标最大为1,应该是约束了DG出力小于等于总负荷需求,按图5给出的负荷曲线,结合33节点基本的负荷需求,得到24小时总负荷需求为50MWh左右,但表3的结果中,DG最大承载力超过了50MW,说明某些时刻RPG指标会大于1。从这一点看,论文的数据存在被"优化"过的嫌疑。
4.代码运行结果
场景1求解成功
通过一致性校验
场景1下指标VEI的权重为:0.096939
场景1下指标VQR的权重为:0.14476
场景1下指标RPQ的权重为:0.23727
场景1下指标ALR的权重为:0.11273
场景1下指标FRL的权重为:0.39869
场景1下指标RPG的权重为:0.0096119
场景1下最大接入容量为:50.7297MW
场景1下组合赋权最终评分为:68.921
场景2求解成功
通过一致性校验
场景2下指标VEI的权重为:0.1031
场景2下指标VQR的权重为:0.19119
场景2下指标RPQ的权重为:0.1638
场景2下指标ALR的权重为:0.10701
场景2下指标FRL的权重为:0.34779
场景2下指标RPG的权重为:0.087104
场景2下最大接入容量为:50.7297MW
场景2下组合赋权最终评分为:71.3996
场景3求解成功
通过一致性校验
场景3下指标VEI的权重为:0.10884
场景3下指标VQR的权重为:0.20094
场景3下指标RPQ的权重为:0.12603
场景3下指标ALR的权重为:0.11802
场景3下指标FRL的权重为:0.36992
场景3下指标RPG的权重为:0.076246
场景3下最大接入容量为:50.7297MW
场景3下组合赋权最终评分为:59.2832
场景4求解成功
通过一致性校验
场景4下指标VEI的权重为:0.13066
场景4下指标VQR的权重为:0.14261
场景4下指标RPQ的权重为:0.079379
场景4下指标ALR的权重为:0.17224
场景4下指标FRL的权重为:0.40254
场景4下指标RPG的权重为:0.072572
场景4下最大接入容量为:50.7297MW
场景4下组合赋权最终评分为:65.2187
场景5求解成功
通过一致性校验
场景5下指标VEI的权重为:0.091708
场景5下指标VQR的权重为:0.13409
场景5下指标RPQ的权重为:0.089711
场景5下指标ALR的权重为:0.16251
场景5下指标FRL的权重为:0.42322
场景5下指标RPG的权重为:0.098762
场景5下最大接入容量为:50.7297MW
场景5下组合赋权最终评分为:61.0308
5.matlab代码
% 作者:CSDN博主---配电网与matlab,
% 面包多账号---配电网精品代码,其他渠道均为倒卖的代码,欢迎联系我举报代码贩子,成功可得红包!!!
clc
clear
close all
warning off
%% 绘制风光负荷曲线
data = xlsread('风光负荷曲线.xlsx'); % 风光负荷数据
Ppv0 = data(:,1)'; % 光伏出力曲线
Pwt0 = data(:,2)'; % 风电出力曲线
Pload0 = data(:,3)'; % 负荷曲线
figure
hold on
bar(Pload0,'y')
plot(Ppv0,'.-b','linewidth',1)
plot(Pwt0,'.-r','linewidth',1)
xlabel('时间')
ylabel('时序值')
legend('负荷','光伏','风电')
%% 计算每个场景的指标
case_num = 5; % 场景总数
NT = 24; % 时段数
PV_node = [6,6,13,13,23]; % 各个场景光伏接入位置
WT_node = [9,19,19,29,29]; % 各个场景风电接入位置
% 电压偏移指数
c_VEI = zeros(case_num, NT);
VEI = zeros(case_num, 1);
% 电压合格率
c_VQR = zeros(case_num, NT);
VQR = zeros(case_num, 1);
% 无功补偿合格率
c_RPQ = zeros(case_num, NT);
RPQ = zeros(case_num, 1);
% 平均线损率
c_ALR = zeros(case_num, NT);
ALR = zeros(case_num, 1);
% 净负荷波动率
c_FRL = zeros(case_num, NT);
FRL = zeros(case_num, 1);
% 新能源发电占比
c_RPG = zeros(case_num, NT);
RPG = zeros(case_num, 1);
% 节点电压
Uit = zeros(33,NT,case_num);
% 光伏最大接入容量
Smax = zeros(case_num, 1);
% 最终评分
Score0 = zeros(case_num, 1);
Scoret = zeros(case_num, NT);
for s = 1:case_num
%% 计算各个场景的优化结果
[c_VEI(s,:), c_VQR(s,:), c_RPQ(s,:), c_ALR(s,:), c_FRL(s,:), c_RPG(s,:), ~, ~, ~, ~, ~, ~, Smax(s), Uit(:,:,s)] = cal_index(PV_node(s), WT_node(s), s);
%% 1.指标正向化,VEI,ALR,FRL为负向指标,需要正向化
c_VEI(s,:) = normalization(c_VEI(s,:));
c_ALR(s,:) = normalization(c_ALR(s,:));
c_FRL(s,:) = normalization(c_FRL(s,:));
xij = [c_VEI(s,:);c_VQR(s,:);c_RPQ(s,:);c_ALR(s,:);c_FRL(s,:);c_RPG(s,:)]';
%% 2.min-max 标准化
rij = min_max(xij);
%% 3.层次分析法求主观权重
aj = AHP(rij);
%% 4.熵权法求客观权重
bj = entropy_weight(rij);
%% 5.计算组合权重
Wj = sqrt(aj.*bj)/sum(sqrt(aj.*bj));
%% 输出结果
Score0(s) = mean(rij)*Wj*100;
Scoret(s,:) = rij*Wj*100;
disp(['场景',num2str(s),'下指标VEI的权重为:',num2str(Wj(1))])
disp(['场景',num2str(s),'下指标VQR的权重为:',num2str(Wj(2))])
disp(['场景',num2str(s),'下指标RPQ的权重为:',num2str(Wj(3))])
disp(['场景',num2str(s),'下指标ALR的权重为:',num2str(Wj(4))])
disp(['场景',num2str(s),'下指标FRL的权重为:',num2str(Wj(5))])
disp(['场景',num2str(s),'下指标RPG的权重为:',num2str(Wj(6))])
disp(['场景',num2str(s),'下最大接入容量为:',num2str(Smax(s)),'MW'])
disp(['场景',num2str(s),'下组合赋权最终评分为:',num2str(Score0(s))])
[X1,Y1] = meshgrid(1:24,1:33);
figure
Fig1 = surf(X1,Y1,Uit(:,:,s));
colorbar;
ylabel('节点编号')
xlabel('时间')
zlabel('电压幅值/pu')
title(['场景',num2str(s),'的节点电压分布'])
end
figure
hold on
plot(c_VEI'*100,'linewidth',1)
xlabel('时间')
ylabel('电压偏移指数/%')
legend('场景1','场景2','场景3','场景4','场景5')
figure
for s = 1:case_num
subplot(case_num,1,s);
plot(Scoret(s,:),'.-','linewidth',1)
legend(['场景',num2str(s)])
axis([1,24,0,100])
end
xlabel('时间')
ylabel('综合评分')
以上仅为程序主函数代码,完整代码获取方式如下: