• 【EI复现】基于主从博弈的新型城镇配电系统产消者竞价策略【IEEE33节点】(Matlab代码实现)


     💥💥💞💞欢迎来到本博客❤️❤️💥💥

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

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

    📋📋📋本文目录如下:🎁🎁🎁

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码、数据、文章


    💥1 概述

    新型城镇的发展需要实现能源结构清洁化和能源利用高效化,分布式能源( distributed energy resource,DER)在城镇配电网中的渗透率不断提高l-2]。世界各国已先后开展了能源互联框架下配电网示范工程的技术研究[3]。美国国家科学基金项目“未来可再生电能传输与管理系统”构建了一种适应高渗透率DER发电的能源互联网1。其可以实现DER主动管理和自适应协调,允许DER随时随地并网和即插即用﹐未来城镇配电网内将会出现更多具备供电能力的产消者。产消者可拥有微型燃气轮机等常规发电装置以及光伏、风电等新能源发电设备,在满足自身用电需求基础上将多余电能出售给配电网其他用户[5]。

    本文采用SFE模型对产消者竞价行为建模,确立了含多产消者的新型城镇配电系统日前现货市场交易机制,建立了含竞价博弈和优化调度的双层模型。上层模型追求产消者利润最大化,可确定多个产消者在配电网内的最优报价策略,下层模型考虑运行安全约束以及用户参与DR对系统进行最优经济调度﹐确定市场出清价格。最后﹐采用改进粒子群优化算法与(CPLEX求解器相结合的方法对该多主从博弈模型进行求解。
     

    📚2 运行结果

    改进粒子群算法: 

     

     部分代码:

    function [Gi,F,P_g,P_d,fi] = Up_fitnessfun(pop,index)
    % clc
    % clear
    % pop = [60.03;75.03;69.31];
    % index = 1;
    %% 读取数据
    parameters;                         % 读取相关参数
    [P_d, fi, F, ~, ~, ~] = Down_fitnessfun(pop,index);
    P_d = P_d/SB;                       % 转为标幺值
    if index == 1
        P_g = P_d + P_r(:,8) - P_l8';   % T=8时刻产销者出力
    elseif index == 2
        P_g = P_d + P_r(:,15) - P_l15'; % T=15时刻产销者出力
    end
    P_g = P_g*SB;                       % 转为实际值

    Ci = a_D'.*(P_d.^2) + b_D'.*P_d + c_D';
    Gi = fi.*P_g - s*P_g - Ci;
    end

    %% 1.粒子群算法迭代情况
    disp(['运行时间为:',num2str(time0) , '秒'])
    disp(['最优适应度值=',num2str(fitness_zbest)])

    figure
    plot(history_pso,'linewidth',1)
    ylabel('最优适应度值')
    xlabel('迭代次数')

    %% 2.产销者竞价策略
    [Gi,F,P_g,P_d,fi] = Up_fitnessfun(pop_zbest,index);
    P_d = P_d*SB;
    a_G = pop_zbest;
    disp('********************产销者竞价策略********************')
    for k =1:Nk
        fprintf('产销者%d:\naG = %.2f   Pg = %.2fMW   Gi = %.2f美元   Pd = %.2fMW   fi = %.2f美元\n',k,a_G(k),P_g(k),Gi(k),P_d(k),fi(k))
    end

    %% 3.支路网损
    [~, ~, ~, P_loss, dP_cj, Uj] = Down_fitnessfun(pop_zbest,index);
    P_loss = P_loss(1:32)*SB*1e3;
    figure
    plot(P_loss,'linewidth',1)
    xlabel('支路编号')
    ylabel('线路损耗/kW')

    %% 4.节点电压
    figure
    plot(Uj,'linewidth',1)
    xlabel('节点编号')
    ylabel('节点电压幅值/pu')

    %% 5.负荷曲线
    figure
    if index == 1
        plot(PL8*SB,'linewidth',1)
    elseif index == 2
        plot(PL15*SB,'linewidth',1)
    end
    xlabel('节点编号')
    ylabel('负荷功率/MW')

    %% 6.产销者新能源出力
    for k = 1:Nk
        figure
        plot(Ppv(k,:)*SB,'linewidth',1)
        hold on 
        plot(Pwt(k,:)*SB,'linewidth',1)
        xlabel('时间/h')
        ylabel('功率/MW')
        legend('光伏出力','风电出力')
        title(['产销者',num2str(k),'新能源出力曲线'])
    end
     

    🎉3 参考文献

    文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

    [1]陈修鹏,李庚银,夏勇.基于主从博弈的新型城镇配电系统产消者竞价策略[J].电力系统自动化,2019,43(14):97-104.

    🌈4 Matlab代码、数据、文章

  • 相关阅读:
    正则表达式
    Stanford CS143 速通PA1教程
    Jackson 工具类
    《QT从基础到进阶·二十六》绘制多个图形项(QGraphicsRectItem,QGraphicsLineItem,QGraphicsPolygonItem)
    郑州什么企业会使用灵活用工平台?
    Linux系统中搭建DNS服务器
    OSError: [WinError 1455] 页面文件太小,无法完成操作 报错解决
    bash -s 的作用
    Oracle19c安装报错,如何解决?
    微服务—RabbitMQ高级(业务在各方面的可靠性)
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/139818080