• 基于粒子群优化算法的最优潮流(IEEE30节点(Matlab代码实现)


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

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

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

    目录

    💥1 概述

    📚2 运行结果

    🎉3 参考文献

    🌈4 Matlab代码实现

    💥1 概述

    最优潮流(OPF)问题在电力系统运行中很重要。OPF 问题的目标是通过在满足某些操作约束的同时优化特定目标来确定电力系统的最佳运行状态。
    本文说明了如何使用元启发式方法解决 OPF 问题。

    📚2 运行结果

    30节点数据:

    function Data=IEEE_30_bus_Data


    basemva = 100;
    accuracy = 0.001;
    maxiter = 50;

    %        IEEE 30-BUS TEST SYSTEM (American Electric Power)
    %        Bus Bus  Voltage Angle   ---Load---- -------Generator----- Injected
    %        No  code Mag.    Degree  MW    Mvar  MW  Mvar Qmin Qmax     Mvar
    busdata=[1    1    1.06    0.0     0.0   0.0    0.0  0.0   0   0       0
             2    2    1.043   0.0   21.70  12.7   40.0  0.0 -40  50       0
             3    3    1.0     0.0     2.4   1.2    0.0  0.0   0   0       0
             4    3    1.06    0.0     7.6   1.6    0.0  0.0   0   0       0
             5    2    1.01    0.0    94.2  19.0    0.0  0.0 -40  40       0
             6    3    1.0     0.0     0.0   0.0    0.0  0.0   0   0       0
             7    3    1.0     0.0    22.8  10.9    0.0  0.0   0   0       0
             8    2    1.01    0.0    30.0  30.0    0.0  0.0 -10  40       0
             9    3    1.0     0.0     0.0   0.0    0.0  0.0   0   0       0
             10   3    1.0     0.0     5.8   2.0    0.0  0.0  -6  24      19
             11   2    1.082   0.0     0.0   0.0    0.0  0.0   0   0       0
             12   3    1.0     0       11.2  7.5    0    0     0   0       0
             13   2    1.071   0        0    0.0    0    0    -6  24       0
             14   3    1       0       6.2   1.6    0    0     0   0       0
             15   3    1       0       8.2   2.5    0    0     0   0       0
             16   3    1       0       3.5   1.8    0    0     0   0       0
             17   3    1       0       9.0   5.8    0    0     0   0       0
             18   3    1       0       3.2   0.9    0    0     0   0       0
             19   3    1       0       9.5   3.4    0    0     0   0       0
             20   3    1       0       2.2   0.7    0    0     0   0       0
             21   3    1       0      17.5  11.2    0    0     0   0       0
             22   3    1       0       0     0.0    0    0     0   0       0
             23   3    1       0       3.2   1.6    0    0     0   0       0
             24   3    1       0       8.7   6.7    0    0     0   0      4.3
             25   3    1       0       0     0.0    0    0     0   0       0
             26   3    1       0       3.5   2.3    0    0     0   0       0
             27   3    1       0       0     0.0    0    0     0   0       0
             28   3    1       0       0     0.0    0    0     0   0       0
             29   3    1       0       2.4   0.9    0    0     0   0       0
             30   3    1       0      10.6   1.9    0    0     0   0       0];
    % busdata=[1    1    1.06    0    0    0
    % 2    2    1.043    0    21.7    12.7
    % 3    3    1    0    2.4    1.2
    % 4    3    1.06    0    7.6    1.6
    % 5    2    1.01    0    94.2    19
    % 6    3    1    0    0    0
    % 7    3    1    0    22.8    10.9
    % 8    2    1.01    0    30    30
    % 9    3    1    0    0    0
    % 10    3    1    0    5.8    2
    % 11    2    1.082    0    0    0
    % 12    3    1    0    11.2    7.5
    % 13    2    1.071    0    0    0
    % 14    3    1    0    6.2    1.6
    % 15    3    1    0    8.2    2.5
    % 16    3    1    0    3.5    1.8
    % 17    3    1    0    9    5.8
    % 18    3    1    0    3.2    0.9
    % 19    3    1    0    9.5    3.4
    % 20    3    1    0    2.2    0.7
    % 21    3    1    0    17.5    11.2
    % 22    3    1    0    0    0
    % 23    3    1    0    3.2    1.6
    % 24    3    1    0    8.7    6.7
    % 25    3    1    0    0    0
    % 26    3    1    0    3.5    2.3
    % 27    3    1    0    0    0
    % 28    3    1    0    0    0
    % 29    3    1    0    2.4    0.9
    % 30    3    1    0    10.6    1.9    ];
    %                                        Line code
    %           Bus bus   R      X        1/2 B    = 1 for lines
    %           nl  nr  p.u.   p.u.       p.u.     > 1 or < 1 tr. tap at bus nl
    % linedata=[  1   2   0.0192   0.0575   0.02640    1
    %             1   3   0.0452   0.1852   0.02040    1
    %             2   4   0.0570   0.1737   0.01840    1
    %             3   4   0.0132   0.0379   0.00420    1
    %             2   5   0.0472   0.1983   0.02090    1
    %             2   6   0.0581   0.1763   0.01870    1
    %             4   6   0.0119   0.0414   0.00450    1
    %             5   7   0.0460   0.1160   0.01020    1
    %             6   7   0.0267   0.0820   0.00850    1
    %             6   8   0.0120   0.0420   0.00450    1
    %             6   9   0.0      0.2080   0.0    1.078
    %             6  10   0         .5560   0      1.069
    %             9  11   0         .2080   0          1
    %             9  10   0         .1100   0          1
    %             4  12   0         .2560   0      1.032
    %             12  13   0         .1400   0          1
    %             12  14    .1231    .2559   0          1
    %             12  15    .0662    .1304   0          1
    %             12  16    .0945    .1987   0          1
    %             14  15    .2210    .1997   0          1
    %             16  17    .0824    .1932   0          1
    %             15  18    .1070    .2185   0          1
    %             18  19    .0639    .1292   0          1
    %             19  20    .0340    .0680   0          1
    %             10  20    .0936    .2090   0          1
    %             10  17    .0324    .0845   0          1
    %             10  21    .0348    .0749   0          1
    %             10  22    .0727    .1499   0          1
    %             21  22    .0116    .0236   0          1
    %             15  23    .1000    .2020   0          1
    %             22  24    .1150    .1790   0          1
    %             23  24    .1320    .2700   0          1
    %             24  25    .1885    .3292   0          1
    %             25  26    .2544    .3800   0          1
    %             25  27    .1093    .2087   0          1
    %             28  27     0       .3960   0      1.068
    %             27  29    .2198    .4153   0          1
    %             27  30    .3202    .6027   0          1
    %             29  30    .2399    .4533   0          1
    %             8   28    .0636    .2000   0.0214     1
    %             6   28    .0169    .0599   0.0065      1];
    linedata=[ 1    2    0.0192    0.0575    0.0264    1
    1    3    0.0452    0.1852    0.0204    1
    2    4    0.057    0.1737    0.0184    1
    3    4    0.0132    0.0379    0.0042    1
    2    5    0.0472    0.1983    0.0209    1
    2    6    0.0581    0.1763    0.0187    1
    4    6    0.0119    0.0414    0.0045    1
    5    7    0.046    0.116    0.0102    1
    6    7    0.0267    0.082    0.0085    1
    6    8    0.012    0.042    0.0045    1
    6    9    0    0.208    0    1.078
    6    10    0    0.556    0    1.069
    9    11    0    0.208    0    1
    9    10    0    0.11    0    1
    4    12    0    0.256    0    1.032
    12    13    0    0.14    0    1
    12    14    0.1231    0.2559    0    1
    12    15    0.0662    0.1304    0    1
    12    16    0.0945    0.1987    0    1
    14    15    0.221    0.1997    0    1
    16    17    0.0824    0.1923    0    1
    15    18    0.107    0.2185    0    1
    18    19    0.0639    0.1292    0    1
    19    20    0.034    0.068    0    1
    10    20    0.0936    0.209    0    1
    10    17    0.0324    0.0845    0    1
    10    21    0.0348    0.0749    0    1
    10    22    0.0727    0.1499    0    1
    21    22    0.0116    0.0236    0    1
    15    23    0.1    0.202    0    1
    22    24    0.115    0.179    0    1
    23    24    0.132    0.27    0    1
    24    25    0.1885    0.3292    0    1
    25    26    0.2544    0.38    0    1
    25    27    0.1093    0.2087    0    1
    28    27    0    0.396    0    1.068
    27    29    0.2198    0.4153    0    1
    27    30    0.3202    0.6027    0    1
    29    30    0.2399    0.4533    0    1
    8    28    0.0636    0.2    0.0214    1
    6    28    0.0169    0.0599    0.0065    1];

    %            Cost
    %            Coefficients
    CostCoeff = [0 2.00 .00375;
                 0 1.75 .01750;
                 0 1.00 .06250;
                 0 3.25 .00834;
                 0 3.00 .02500;
                 0 3.00 .02500];
             
    GeneratorInd=[1; find(busdata(:,2)==2)];
    LoadInd=find(busdata(:,2)==3);
    % NG: the number of generators.
    NG=length(GeneratorInd);
    % NL: the number of load buses.
    NL=length(LoadInd);
    % nbus The number of buses
    nbus = max(max(linedata(:,1)), max( linedata(:,2)));
    % nbr: the number of transmission lines.
    nbr=length(linedata(:,1));
    BusTypes=busdata(:,2);
    NodeList=busdata(:,1);
    QCInd=[ 10 12 15 17 20 21 23 24 29]; % Shunt VAR compensation N掳 of lines.
    TInd=[11 12 15 36]; % Transformer tap settings T N掳 of lines.
    NQC=length(QCInd);
    NT=length(TInd);
    Data.NQC=NQC;
    Data.NT=NT;

    VmLim=ones(30,1)*[.95 1.1];
    VmLim([GeneratorInd],2)=1.1;
    VmMin=VmLim(:,1);
    VmMax=VmLim(:,2);
    Data.VmMin=VmMin;
    Data.VmMax=VmMax;

    PLim=zeros(30,2);
    PLim(GeneratorInd,:) = [50 200; 20 80; 15 50; 10 35; 10 30; 12 40];

    PGMin=PLim(GeneratorInd,1);
    PGMax=PLim(GeneratorInd,2);
    Data.PGMin=PGMin;
    Data.PGMax=PGMax;

    PG1Min=PLim(1,1);
    PG1Max=PLim(1,2);
    Data.PG1Min=PG1Min;
    Data.PG1Max=PG1Max;

    QLim=zeros(30,2);
    QLim(GeneratorInd,:) = [-20 200; -20 100; -15 80; -15 60; -10 50; -15 60];
    % QLim= [busdata(:,9) busdata(:,10)];
    QLimMin=QLim(:,1);
    QLimMax=QLim(:,2);
    Data.QLimMin=QLimMin;
    Data.QLimMax=QLimMax;

    QCLim = ones(length(QCInd),1)*[0 5];
    QCMin=QCLim(:,1);
    QCMax=QCLim(:,2);
    Data.QCMin=QCMin;
    Data.QCMax=QCMax;

    TLim = ones(length(TInd),1)*[.9 1.1];
    TMin=TLim(:,1);
    TMax=TLim(:,2);
    Data.TMin=TMin;
    Data.TMax=TMax;


    Data.QCInd=QCInd;
    Data.TInd=TInd;
    Data.busdata=busdata;
    Data.linedata=linedata;
    Data.Ybus0=[];
    Data.GeneratorInd=GeneratorInd;
    Data.LoadInd=LoadInd;
    Data.CostCoeff=CostCoeff;
    Data.basemva=basemva;
    Data.nbus=nbus;
    Data.nbr=nbr;
    Data.NG=NG;
    Data.NL=NL;
    Data.NodeList=NodeList;
    Data.BusTypes=BusTypes;


    LineMVA=[...
        0.000    1.300    1.300    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        1.300    0.000    0.000    0.650    1.300    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        1.300    0.000    0.000    1.300    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.650    1.300    0.000    0.000    0.900    0.000    0.000    0.000    0.000    0.000    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    1.300    0.000    0.000    0.000    0.000    0.700    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.650    0.000    0.900    0.000    0.000    1.300    0.320    0.650    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000;
        0.000    0.000    0.000    0.000    0.700    1.300    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.650    0.000    0.000    0.000    0.650    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.320    0.320    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.650    0.320    0.320    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.650    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.160    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.160    0.000    0.160    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.160    0.160    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.650    0.160    0.160;
        0.000    0.000    0.000    0.000    0.000    0.320    0.000    0.320    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.650    0.000    0.000    0.000;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.000    0.160;
        0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.000    0.160    0.000    0.160    0.000];
    LineMVA = LineMVA + diag(inf*ones(length(NodeList),1)); % Don't limit shunt power at buses
    Data.LineMVA=LineMVA;

    🎉3 参考文献

    [1]Bouchekara, H. R. E. H. “Optimal Power Flow Using Black-Hole-Based Optimization Approach.” Applied Soft Computing, vol. 24, Elsevier BV, Nov. 2014, pp. 879–88, doi:10.1016/j.asoc.2014.08.056.

    [2]Bouchekara, H. R. E. H., et al. “Optimal Power Flow Using Teaching-Learning-Based Optimization Technique.” Electric Power Systems Research, vol. 114, Elsevier BV, Sept. 2014, pp. 49–59, doi:10.1016/j.epsr.2014.03.032.

    🌈4 Matlab代码实现

  • 相关阅读:
    关闭文件流
    基于白鲸优化的BP神经网络(分类应用) - 附代码
    【C++】gnustl_static 与 c++_shared 的区别
    java计算机毕业设计扶贫信息管理系统源码+系统+lw文档+mysql数据库+部署
    死锁详细解读
    数据导入与预处理-拓展-pandas时间数据处理01
    Python + Django4 搭建个人博客(八):实现博文列表页面的视图函数和模板
    前端对用户名密码加密处理,后端解密
    odoo Web Controllers 学习总结
    百度收录量查询易语言代码
  • 原文地址:https://blog.csdn.net/weixin_46039719/article/details/127777209