文章解读与完整程序——《考虑“源-荷-储”协同互动的主动配电网优化调度研究》

发布时间:2023年12月27日

摘要:伴随智能电网的建设和清洁能源的开发利用,配电网中的负荷类型呈现多元化发展,分布式电源、可控负荷、储能等资源的增加让单向潮流的传统配电网逐渐向双向潮流的主动配电网结构转变。在能源结构转变的同时,清洁能源自身的随机性和波动性给配电网带来了更大的调峰压力,电力系统的安全稳定运行面临巨大的挑战。综合利用配电网内部的主动负荷资源参与优化调度,对提高电力系统供电可靠性和推进清洁能源发展有重要意义。本文旨在建立一种综合考虑主动配电网内部“源”、“荷”、“储”各类发用电资源的优化调度模型,降低配电网调度压力,提高能源利用率,增加清洁能源的消纳水平,并通过典型算例验证其可行性。首先,对主动配电网的架构和关键技术进行了介绍,并对主动配电网内部的分布式电源、需求侧负荷资源以及储能设备的发用电结构和特性进行研究分析。结合可控负荷与储能资源的响应策略、约束、成本等分别建立响应模型,提出了“源-荷-储”协同互动的两阶段优化调度策略。其次,建立了主动配电网优化调度模型,以配电网运行可靠性和经济性最优为目标函数,考虑了网络平衡约束、分布式电源功率约束、用户用电满意度约束以及储能系统的充放电功率约束等作为约束条件。在粒子群算法基础上采用理想点法求解多目标优化问题。最后,用IEEE-33节点系统作为算例,验证了优化调度模型与算法的可行性和正确性。通过与单一控制策略:“源-荷”协同响应、“源-储”协同响应优化结果进行对比分析,综合考虑“源-荷-储”协同响应的控制策略能更充分的利用配电网中各类资源,优化效果最好。参与优化调度的储能系统充放电切换频繁,增加了储能资源调用成本,提出了双储能运行策略,在原储能系统的出力计划不变的前提下,可大幅减少储能系统充放循环次数,延长系统使用寿命,并有效提高配电网优化调度的经济性。?

这篇摘要讨论了伴随着智能电网建设和清洁能源利用的发展,配电网中负荷类型的多元化趋势,以及分布式电源、可控负荷、储能等资源的增加,导致传统的单向潮流配电网逐渐演变为双向潮流的主动配电网结构。随着能源结构的变化,清洁能源本身的随机性和波动性给配电网带来了更大的调峰压力,使电力系统的安全稳定运行面临巨大挑战。

为了应对这些挑战,作者提出了综合利用主动配电网内部各类发用电资源的优化调度模型。这个模型旨在降低配电网调度的压力,提高能源利用率,增加清洁能源的消纳水平,并通过典型算例验证了其可行性。

摘要中的主要内容和步骤包括:

  1. 系统介绍与问题陈述: 介绍了智能电网和清洁能源发展的背景,指出了配电网中负荷类型多元化和能源结构转变的问题。

  2. 建模与分析: 对主动配电网的架构和关键技术进行了介绍,并深入研究了分布式电源、需求侧负荷资源以及储能设备的发用电结构和特性。

  3. 响应模型建立: 结合可控负荷与储能资源的响应策略、约束、成本等,建立了“源-荷-储”协同互动的两阶段优化调度策略。

  4. 优化调度模型: 建立了主动配电网的优化调度模型,以提高运行可靠性和经济性为目标函数,考虑了网络平衡约束、分布式电源功率约束、用户用电满意度约束以及储能系统的充放电功率约束等作为约束条件。

  5. 算法和验证: 在粒子群算法基础上采用理想点法求解多目标优化问题,并通过使用IEEE-33节点系统作为算例验证了优化调度模型与算法的可行性和正确性。

  6. 结果与讨论: 通过与单一控制策略的对比分析,强调了“源-荷-储”协同响应的控制策略更充分地利用了配电网中各类资源,优化效果最好。此外,对储能系统的充放电切换频繁问题提出了双储能运行策略,以提高系统经济性。

总体来说,该研究旨在在配电网中通过协同管理各种资源,特别是清洁能源,以提高系统的可靠性、经济性和清洁能源利用效率。

部分仿真代码:

日内调度部分:

clear 
clc 
tic 
warning off
%% 1.设参
mpc = IEEE33BW;
pload = mpc.Pload*100;%节点有功负荷,原数据100MVA,改为1MVA
PPload=[1.77184023	1.760691425	1.985343246	2.164759614	2.525216573	2.836282757	2.717289933	2.912703959	2.938170633	3.200578131	3.93626314	3.680872774	3.53168293	3.215685929	2.903666471	2.626416093	2.33835944	2.582209352	3.063339069	3.465731913	3.01938202	2.591419695	2.254491338	1.784180138];
qload = mpc.Qload*100;%节点无功负荷
branch = mpc.branch;
branch(:,3) = branch(:,3)*1/(10^2);%求阻抗标幺值
R = real(branch(:,3));
X = imag(branch(:,3));
T = 24;%时段数为24小时
nb = 33;%节点数
nl = 32;%支路数
nwt = 2;%风机
npv = 1;%光伏
S_pv=1.5;
RR=xlsread('光照强度数据.xlsx','B2:B25');
pp_pv=xlsread('光照强度数据.xlsx','D3:AA3');
C_e=xlsread('电价.xlsx','A1:X1');
C_ae=xlsread('激励电价.xlsx','A1:X1');
C_de=xlsread('需求响应激励价格.xlsx','A1:X1');
R_STD=1000;%标准太阳辐射
R_C=150;%辐射点
PP_pv=zeros(npv,T);
% %%%%光伏出力模型
for i=1:1:npv 
    for t=1:1:T
        if(0<=RR(t))&(RR(t)<=R_C)
            PP_pv(i,t)=S_pv*((RR(t))^2)/(R_STD*R_C);
        else if(R_C<=RR(t))&(RR(t)<=R_STD)
                PP_pv(i,t)=S_pv*RR(t)/R_STD;
            else if(R_STD<=RR(t))
                    PP_pv(i,t)=S_pv;
                end
            end
        end
    end
end
v=xlsread('风速数据.xlsx','B2:B25');
pp_wt=xlsread('风速数据.xlsx','G2:AD2');
v_in=3;%切入风速
v_r=11.3;%额定风速
v_out=25;%切出风速
S_wt=[1;1.5];
PP_wt=zeros(nwt,T);
%%%风电出力模型
for i=1:1:nwt 
    for t=1:1:T
      if (0<=v(t)) &(v(t)<=v_in)|(v_out<=v(t))
          PP_wt(i,t)=0;
      else if(v_in<=v(t))&(v(t)<v_r)
              PP_wt(i,t)=[(v(t)-v_in)/(v_r-v_in)]*S_wt(i);
          else if(v_r<=v(t))&(v(t)<v_out)
                  PP_wt(i,t)=S_wt(i);
              end
          end
      end
    end
end

日前部分代码:

%% 需求响应约束
%可平移负荷1约束,9-14为可平移负荷区间
 C = [C,sum(Temp_shift(1,1:8))==0,sum(Temp_shift(1,9:14))==1,sum(Temp_shift(1,15:24))==0];
 %可平移负荷2约束,19-22为可平移负荷区间
 C = [C,sum(Temp_shift(2,1:18))==0,sum(Temp_shift(2,19:22))==1,sum(Temp_shift(2,23:24))==0];
  %可平移负荷3约束,8-21为可平移负荷区间
 C = [C,sum(Temp_shift(3,1:7))==0,sum(Temp_shift(3,8:21))==1,sum(Temp_shift(3,22:24))==0];
 %可平移负荷1&可平移负荷2&可平移负荷3平移
 for k = 1:24
  C = [C, implies(Temp_shift(1,k),Lshift(1,:)==circshift(Lshift_old(1,:),[0,k-17]))];
%   C = [C, implies(Temp_shift(1,k)==0,Lshift(1,k)==0)];
%   C = [C, implies(Temp_shift(1,k),Lshift(1,k)==-Lshift_old(1,k))]; 
%  Lshift(1,17)=-Lshift_old(1,17);
  C = [C, implies(Temp_shift(2,k),Lshift(2,:)==circshift(Lshift_old(2,:),[0,k-3]))];
%   C = [C, implies(Temp_shift(2,k)==0,Lshift(2,k)==0)];
%   C = [C, implies(Temp_shift(2,k),Lshift(2,k)==-Lshift_old(2,k))];
% Lshift(2,3)=-Lshift_old(2,3); 
  C = [C, implies(Temp_shift(3,k),Lshift(3,:)==circshift(Lshift_old(3,:),[0,k-23]))];
%   C = [C, implies(Temp_shift(3,k)==0,Lshift(3,k)==0)];
%   C = [C, implies(Temp_shift(3,k),Lshift(3,k)==-Lshift_old(3,k))];
% Lshift(3,23)=-Lshift_old(3,23); 
 end
 TL1=[zeros(3,T);Lshift_old(1,:)-Lshift(1,:);zeros(29,T)];    
 TL2=[zeros(14,T);Lshift_old(2,:)-Lshift(2,:);zeros(18,T)];
 TL3=[zeros(29,T);Lshift_old(3,:)-Lshift(3,:);zeros(3,T)];

部分代码展示:

文章来源:https://blog.csdn.net/LIANG674027206/article/details/135252167
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。