• 基于粒子群优化算法、鲸鱼算法、改进的淘沙骆驼模型算法(PSO/SSA/tGSSA)的微电网优化调度(Matlab代码实现)


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

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

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

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

    目录

    💥1 概述

    📚2 运行结果

    2.1 PSO运行结果

    2.2 tGSSA运行结果

    2.3  SSA运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现


    💥1 概述

    微电网是由多个不同能源资源和负载组成的小型电力系统,其优化调度是为了实现可靠、高效和经济的能源管理。智能算法如粒子群优化(PSO)、鲸鱼算法(SSA)、改进的淘沙骆驼模型算法(tGSSA)等可以用于微电网的优化调度问题。

    这些智能算法通过模拟自然界的某些行为来求解复杂的优化问题。在微电网优化调度中,可以使用这些算法来定位微网中各个能源资源的最佳配置、优化能源的分配和负载的调度等问题。

    PSO算法基于模拟鸟群觅食行为,通过不断搜索和迭代,寻找最优解。它可以用于微电网中的能源资源配置优化,例如太阳能、风能、蓄电池等的最佳布置和发电计划的优化。

    SSA算法是基于鲸鱼觅食行为而提出的一种优化算法,可以用于微电网优化调度问题。它通过模拟鲸鱼的觅食过程,逐步调整鲸鱼的位置来逼近最佳解决方案。在微电网中,SSA可以用于优化微网中各个能源的发电和负载调度,以实现能源的高效利用和供需的平衡。

    tGSSA算法是对GSSA算法的改进和优化,通过引入时间变换来提高搜索效率。在微电网优化调度中,tGSSA算法可以用于优化微网的能源配置和调度策略,以实现最佳的经济性和可靠性。

    我们基于典型的日负荷参数和自然参数,使用改进的粒子群优化(PSO)算法对建立的数学模型进行求解。通过这个优化过程,我们可以制定出分时段的优化调度方案,并确定微电网在峰、谷、平三个阶段的出力。

    此外,我们也比较了微电网采用常规调度策略和采用优化调度策略的综合效益。通过分析比较,我们能够量化地评估优化调度策略在经济性、可靠性和可持续性方面的改进效果。

    同时,在原有的PSO算法基础上,我们还引入了鲸鱼算法(SSA)和改进的淘沙骆驼模型算法(tGSSA)进行对比研究。通过与PSO算法的比较,我们可以评估SSA和tGSSA算法在微电网优化调度问题上的性能和效果。

    在验证过程中,我们对算法的正确性和优化调度方案的可行性进行了验证。通过对真实数据的处理和模拟实验,我们可以得出准确的结论,证明了优化调度方案的有效性和可行性。

    总的来说,这项研究为微电网的优化调度提供了一个强大的解决方案。通过结合改进的PSO算法、SSA算法和tGSSA算法,并综合分析不同调度策略下微电源的综合效益,我们能够找到最佳的调度方案,以提升微电网的经济性、可靠性和可持续性。这一研究成果有助于推动微电网领域的发展,并为实际应用提供有力的支持。

    综上,基于智能算法(如PSO、SSA和tGSSA)的微电网优化调度可以帮助实现微电网能源的高效利用、优化的能源分配和负载的合理调度,从而提高微电网的可靠性、经济性和可持续性。

    📚2 运行结果

    2.1 PSO运行结果

    2.2 tGSSA运行结果

    2.3  SSA运行结果

    部分代码:

    1. clc;
    2. clear;
    3. close all;
    4. global costp Ppv Pwt
    5. %% 算法参数
    6. parameter;
    7. nVar=4*24; % Number of Decision Variables
    8. VarMin=[ones(1,24)*Pmt_min, ones(1,24)*Pfc_min, ones(1,24)*Px_min, ones(1,24)*Pb_min];
    9. VarMax=[ones(1,24)*Pmt_max, ones(1,24)*Pfc_max, ones(1,24)*Px_max, ones(1,24)*Pb_max];
    10. MaxIt=100; % Maximum Number of Iterations
    11. nPop=500; % Population Size (Swarm Size)
    12. %% 计算
    13. [ bestPosition, fitValue ] = tGSSAFUN(@objective,nVar,VarMin,VarMax,MaxIt,nPop);
    14. x=bestPosition;
    15. Pmt = x(1:24); % 燃气轮机功率
    16. Pfc = x(25:48); % 燃料电池功率
    17. Px = x(49:72); % 可卸负荷
    18. Pb = x(73:96); % 蓄电池功率
    19. t=1:24;
    20. %% 输出光伏出力预测
    21. figure
    22. plot(t,Ppv,'-')
    23. title('光伏发电曲线');
    24. xlabel('时间/小时')
    25. ylabel('功率/kw')
    26. %% 输出风力发电出力预测
    27. figure
    28. plot(t,Pwt,'-')
    29. title('风力发电曲线');
    30. xlabel('时间/小时')
    31. ylabel('功率/kw')
    32. %% 输出电平衡结果
    33. figure
    34. hold on
    35. Pb_po=max(Pb,0);
    36. Pb_ne=min(Pb,0);
    37. positive=[Pmt', Pfc', Pb_po',Px',Ppv',Pwt'];
    38. negative=[ Pb_ne'];
    39. bar(positive,'stack');
    40. bar(negative,'stack');
    41. plot(t, Pl, 'ok-');
    42. title('电平衡');
    43. legend('Pmt燃机','Pfc燃电池','Pbdis电池放电','Px可去负荷','Ppv光伏发电','Pwt风电' ,'Pbch电池充电','Pl总负荷');
    44. grid on
    45. hold off
    46. xlabel('时间/小时')
    47. ylabel('功率/kw')
    48. %% 输出各部分出力结果
    49. figure
    50. plot(t,Pmt,'ok-')
    51. hold on
    52. plot(t,Pfc,'-*')
    53. hold on
    54. plot(t,Px,'-')
    55. hold on
    56. plot(t,Pb,'-.')
    57. legend('Pmt燃机出力','Pfc燃电池出力','Px可去负荷','Pb电池出力');
    58. title('出力图');
    59. xlabel('时间/小时')
    60. ylabel('功率/kw')
    61. %% 计算每小时运行费用
    62. % 预分配
    63. eta_mt = zeros(1,24);
    64. eta_fc = zeros(1,24);
    65. Pmth = zeros(1,24);
    66. Umt = zeros(1,24);
    67. Ufc = zeros(1,24);
    68. %% 运行模型
    69. for t=1:24
    70. % 燃气轮机热功率
    71. %下面这个是微型燃气轮机效率计算公式
    72. eta_mt(t) = 0.0753*(Pmt(t)/65)^3 - 0.3095*(Pmt(t)/65)^2 + 0.4174*(Pmt(t)/65) + 0.1068;
    73. Pmth(t) = ((Pmt(t)*(1-eta_mt(t)-eta_l))/eta_mt(t))*eta_h*Coph;
    74. % 燃料电池功率
    75. eta_fc(t) = -0.0023*Pfc(t) + 0.674;
    76. end
    77. %% 启停
    78. for t=1:24
    79. if Pmt(t)>0
    80. Umt(t) = 1;
    81. end
    82. if Pfc(t)>0
    83. Ufc(t) = 1;
    84. end
    85. end
    86. for t=1:24
    87. if t==1
    88. Cst(t) = Cst_mt*max(0, Umt(t)-Uinit) + Cst_fc*max(0, Ufc(t)-Uinit);
    89. else
    90. Cst(t) = Cst_mt*max(0, Umt(t)-Umt(t-1)) + Cst_fc*max(0, Ufc(t)-Ufc(t-1));
    91. end
    92. end
    93. %% 目标函数每小时运行费用
    94. cost=[];
    95. for t=1:24
    96. cost(t)= Cch4*( (Pmt(t)/(L_gas*eta_mt(t))) + (Pfc(t)/(L_gas*eta_fc(t))) ) ... % 燃料成本
    97. + Cm_mt*Pmt(t) + Cm_fc*Pfc(t) + Cm_pv*Ppv(t)... % 维护成本
    98. + Cm_wt*Pwt(t) + Cst(t)+(Crb(t)+1.5)*Px(t)+Cm_Eb*Pb(t);
    99. end
    100. figure
    101. plot(1:24,cost)
    102. hold on
    103. plot(1:24,costp)
    104. title('每小时运行成本');
    105. legend('本文调度方法','常规调度方法');
    106. xlabel('时间/小时')
    107. ylabel('费用/元')

    clc;
    clear;
    close all;
    global costp Ppv Pwt
    %% 算法参数
    parameter;
    nVar=4*24;                % Number of Decision Variables
    VarMin=[ones(1,24)*Pmt_min, ones(1,24)*Pfc_min, ones(1,24)*Px_min, ones(1,24)*Pb_min];
    VarMax=[ones(1,24)*Pmt_max, ones(1,24)*Pfc_max, ones(1,24)*Px_max, ones(1,24)*Pb_max];
    MaxIt=100;                % Maximum Number of Iterations
    nPop=500;                 % Population Size (Swarm Size)

    %% 计算
    [ bestPosition, fitValue ] = tGSSAFUN(@objective,nVar,VarMin,VarMax,MaxIt,nPop);
    x=bestPosition;
    Pmt = x(1:24);            % 燃气轮机功率
    Pfc = x(25:48);           % 燃料电池功率
    Px = x(49:72);            % 可卸负荷               
    Pb = x(73:96);            % 蓄电池功率
    t=1:24;

    %% 输出光伏出力预测
    figure
    plot(t,Ppv,'-')
    title('光伏发电曲线');
    xlabel('时间/小时')
    ylabel('功率/kw')
    %% 输出风力发电出力预测
    figure
    plot(t,Pwt,'-')
    title('风力发电曲线');
    xlabel('时间/小时')
    ylabel('功率/kw')
    %% 输出电平衡结果
    figure
    hold on 
    Pb_po=max(Pb,0);
    Pb_ne=min(Pb,0);
    positive=[Pmt', Pfc', Pb_po',Px',Ppv',Pwt'];
    negative=[ Pb_ne'];
    bar(positive,'stack');
    bar(negative,'stack');
    plot(t, Pl, 'ok-');
    title('电平衡');
    legend('Pmt燃机','Pfc燃电池','Pbdis电池放电','Px可去负荷','Ppv光伏发电','Pwt风电' ,'Pbch电池充电','Pl总负荷');
    grid on
    hold off
    xlabel('时间/小时')
    ylabel('功率/kw')

    %% 输出各部分出力结果
    figure
    plot(t,Pmt,'ok-')
    hold on
    plot(t,Pfc,'-*')
    hold on
    plot(t,Px,'-')
    hold on
    plot(t,Pb,'-.')
    legend('Pmt燃机出力','Pfc燃电池出力','Px可去负荷','Pb电池出力');
    title('出力图');
    xlabel('时间/小时')
    ylabel('功率/kw')
    %% 计算每小时运行费用
    % 预分配
    eta_mt = zeros(1,24);
    eta_fc = zeros(1,24);
    Pmth = zeros(1,24);
    Umt = zeros(1,24);
    Ufc = zeros(1,24);


    %% 运行模型
    for t=1:24
        % 燃气轮机热功率
        %下面这个是微型燃气轮机效率计算公式
        eta_mt(t) = 0.0753*(Pmt(t)/65)^3 - 0.3095*(Pmt(t)/65)^2 + 0.4174*(Pmt(t)/65) + 0.1068;
        Pmth(t) = ((Pmt(t)*(1-eta_mt(t)-eta_l))/eta_mt(t))*eta_h*Coph;
         % 燃料电池功率
        eta_fc(t) = -0.0023*Pfc(t) + 0.674;
    end

    %% 启停 
    for t=1:24
        if Pmt(t)>0
            Umt(t) = 1;
        end
       
        if Pfc(t)>0
            Ufc(t) = 1;
        end
    end

    for t=1:24 
        if t==1
            Cst(t) = Cst_mt*max(0, Umt(t)-Uinit)  + Cst_fc*max(0, Ufc(t)-Uinit);
        else
            Cst(t) = Cst_mt*max(0, Umt(t)-Umt(t-1))  + Cst_fc*max(0, Ufc(t)-Ufc(t-1));
        end
    end
    %% 目标函数每小时运行费用
    cost=[];
    for t=1:24
        cost(t)=  Cch4*( (Pmt(t)/(L_gas*eta_mt(t))) + (Pfc(t)/(L_gas*eta_fc(t))) ) ...       % 燃料成本
                         +  Cm_mt*Pmt(t) + Cm_fc*Pfc(t)  +  Cm_pv*Ppv(t)...    % 维护成本
                         + Cm_wt*Pwt(t) + Cst(t)+(Crb(t)+1.5)*Px(t)+Cm_Eb*Pb(t);               
    end
    figure
    plot(1:24,cost)
    hold on
    plot(1:24,costp)
    title('每小时运行成本');
    legend('本文调度方法','常规调度方法');
    xlabel('时间/小时')
    ylabel('费用/元')

    🎉3 参考文献

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

    [1]姚景昆. 基于改进粒子群算法的微电网优化调度[D].辽宁工业大学,2016.

    🌈4 Matlab代码实现

  • 相关阅读:
    TiKV 源码分析之 PointGet
    MATLAB计算各种复合干热指数,如SDHI、DHMI等
    Easyrecovery靠谱不收费的数据恢复电脑软件
    ch4-3 音频信号的频域特征
    用于精准治疗和预防细菌感染的生物功能脂质纳米颗粒
    Makefile 详解
    K8s 里多容器 Pod 的健康检查探针工作机制分析
    LINUX -SQL笔记(自学用)
    返乡人员信息登记管理系统,助力精准管控
    操作系统银行家算法
  • 原文地址:https://blog.csdn.net/Ke_Yan_She/article/details/133585113