基于主从博弈的主动配电网阻塞管理程序代码!

本文介绍了一种通过主从博弈模型解决配电网阻塞问题的方法,通过KKT转换将双层优化问题转为单层规划。程序具有高可扩展性,展示了在考虑风电场出力、概率及电网安全的背景下,如何实现用户成本最小化和社会福利最大化。仿真结果验证了模型的有效性。
摘要由CSDN通过智能技术生成

本程序参考论文《基于主从博弈的主动配电网阻塞管理》,文章共设置了3种场景,含有主从博弈模型,风电场出力及概率,利用KKT方法将双层优化问题转化为单层混合整数线性规划问题,程序的可扩展性强,注释清晰,下面对文章和程序做简要介绍。

随着需求侧灵活性资源在配电网中的渗透率不断提高,其不协调的运行方式可能会导致配电网中线路阻塞和节点电压越限。为解决这些问题,提出了一种配电网节点边际电价统一出清的主从博弈双层调度框架。上层框架解决用户在负荷聚合商引导下的用电成本最小化问题,负荷聚合商为主从博弈的领导者;下层框架解决配电网系统运营商在考虑网络潮流安全和电压越限前提下的社会福利最大化问题,配电网系统运营商为主从博弈的追随者。利用Karush-Kuhn-Tucker最优性条件和对偶定理,将非线性双层问题转化为单层混合整数线性规划问题求解。仿真算例验证分析了所提出的模型对缓解网络阻塞的有效性,以及灵活性资源在配电网阻塞管理当中的作用。

主从博弈框架:

文章结果:

程序结果:

部分程序:

function C=mubiao(x,C_da,s)
global Pload;
p_MT=zeros(2,24);
p_ess=zeros(2,24);
p_wt=zeros(3,24);
q_svc=zeros(2,24);
p_ev=zeros(1,24);
C_G=zeros(1,24);
s_IL=zeros(1,24);
s_TL=zeros(1,24);
V=zeros(33,24);
loss=zeros(1,24);
S=zeros(33,24);
    p_MT(1,:)=x(1:24);
    p_MT(2,:)=x(25:48);
    p_ess(1,:)=x(49:72);
    p_ess(2,:)=x(73:96);
    p_wt(1,:)=x(97:120);
    p_wt(2,:)=x(121:144);
    p_wt(3,:)=x(145:168);
    q_svc(1,:)=x(169:192);
    q_svc(2,:)=x(193:216);
    p_ev(1,:)=x(217:240);
    C_G(1,:)=x(241:264);
    s_IL=x(265:288);
    s_TL=x(289:312);
    for t=1:1:24
        [V_bus,Ploss,Sij,result]=fitness11(Pload(t),p_MT(:,t),p_ess(:,t),p_wt(:,t),q_svc(:,t),p_ev(t),C_G(t),s_IL(t),s_TL(t));
        V(:,t)=V_bus;
        loss(t)=Ploss;
        S(:,t)=Sij;
        C=0;
        C=C+result;
    end
 P_BA_sum1=0;
  P_BA_sum2=0;
P_BA_sum_delt=0;
%储能荷电状态%
BAsocMax=500;
BAsocMin=0;   

for t=1:1:24 %储能SOC约束
      P_BA_sum1=P_BA_sum1+p_ess(1,t);
      if  P_BA_sum1>BAsocMax
    P_BA_sum_delt= P_BA_sum_delt+max(0,P_BA_sum1-BAsocMax); 
      end
      if   P_BA_sum1<BAsocMin
    P_BA_sum_delt= P_BA_sum_delt+abs(P_BA_sum1-BAsocMin); 
      end
    P_BA_sum2=P_BA_sum2+p_ess(2,t);
      if  P_BA_sum2>BAsocMax
    P_BA_sum_delt= P_BA_sum_delt+max(0,P_BA_sum2-BAsocMax); 
      end
      if   P_BA_sum1<BAsocMin
    P_BA_sum_delt= P_BA_sum_delt+abs(P_BA_sum2-BAsocMin); 
      end
end 

TL_delta=0;

if sum(s_TL)==0
    TL_delta=0;
else
    TL_delta=100000000;
end

C=C+P_BA_sum_delt+TL_delta-sum(C_da.*(sum(p_ess)+p_ev*2+s_IL*5-s_TL*5));
end

您看出该程序代码的精美之处了吗,模型的可扩展性,稍加改动就可出新的文章。欢迎感兴趣的小伙伴关注并后台留言获取完整版代码,小编会继续推送更有质量的学习资料、文章和程序代码,为您的科研加油助力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值