⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printpf.m

📁 电力系统最优潮流程序
💻 M
📖 第 1 页 / 共 2 页
字号:
    if isOPF, fprintf(fd, '  --------  --------'); end    for i = 1:ng        if gen(i, PG) | gen(i, QG)            fprintf(fd, '\n%3d%5d%9.2f%10.2f%10.2f%10.2f', i, gen(i, GEN_BUS), gen(i, PG), gen(i, QG));        else            fprintf(fd, '\n%3d%5d      -         -  ', i, gen(i, GEN_BUS));        end        if isOPF, fprintf(fd, '%10.2f%10.2f', genlamP(i), genlamQ(i)); end    end    fprintf(fd, '\n          --------  --------');    fprintf(fd, '\n  Total:%9.2f%10.2f', sum(gen(:, PG)), sum(gen(:, QG)));    fprintf(fd, '\n');end        %% bus dataif OUT_BUS    fprintf(fd, '\n================================================================================');    fprintf(fd, '\n|     Bus Data                                                                 |');    fprintf(fd, '\n================================================================================');    fprintf(fd, '\nBus      Voltage           Generation             Load        ');    if isOPF, fprintf(fd, '  Lambda($/MVA-hr)'); end    fprintf(fd, '\n #   Mag(pu)  Ang(deg)   P (MW)   Q (MVAr)   P (MW)   Q (MVAr)');    if isOPF, fprintf(fd, '     P        Q   '); end    fprintf(fd, '\n---  -------  --------  --------  --------  --------  --------');    if isOPF, fprintf(fd, '  -------  -------'); end    for i = 1:nb        fprintf(fd, '\n%3d%8.3f%10.3f', bus(i, [BUS_I, VM, VA]));        g = find(gen(:, GEN_BUS) == bus(i, BUS_I));        if any(gen(g, GEN_STATUS) > 0)            fprintf(fd, '%10.2f%10.2f', sum(gen(g, PG)), sum(gen(g, QG)));        else            fprintf(fd, '       -         -  ');        end        if bus(i, PD) | bus(i, QD)            fprintf(fd, '%10.2f%10.2f', bus(i, [PD, QD]));        else            fprintf(fd, '       -         -  ');        end        if isOPF            fprintf(fd, '%10.3f', bus(i, LAM_P));            if abs(bus(i, LAM_Q)) > 1e-6                fprintf(fd, '%8.3f', bus(i, LAM_Q));            else                fprintf(fd, '     -   ');            end        end    end    fprintf(fd, '\n                        --------  --------  --------  --------');    fprintf(fd, '\n               Total: %9.2f %9.2f %9.2f %9.2f', ...        sum(gen(:, PG)), sum(gen(:, QG)), sum(bus(nzld, PD)), sum(bus(nzld, QD)));    fprintf(fd, '\n');end%% branch dataif OUT_BRANCH    fprintf(fd, '\n================================================================================');    fprintf(fd, '\n|     Branch Data                                                              |');    fprintf(fd, '\n================================================================================');    fprintf(fd, '\nBrnch   From   To    From Bus Injection   To Bus Injection     Loss (I^2 * Z)  ');    fprintf(fd, '\n  #     Bus    Bus    P (MW)   Q (MVAr)   P (MW)   Q (MVAr)   P (MW)   Q (MVAr)');    fprintf(fd, '\n-----  -----  -----  --------  --------  --------  --------  --------  --------');    fprintf(fd, '\n%4d%7d%7d%10.2f%10.2f%10.2f%10.2f%10.3f%10.2f', ...            [   [1:nl]', branch(:, [F_BUS, T_BUS]), ...                branch(:, [PF, QF]), branch(:, [PT, QT]), ...                real(loss), imag(loss) ...            ]');    fprintf(fd, '\n                                                             --------  --------');    fprintf(fd, '\n                                                    Total:%10.3f%10.2f', ...            sum(real(loss)), sum(imag(loss)));    fprintf(fd, '\n');end    %%-----  constraint data  -----if isOPF    %% voltage constraints    if OUT_V_LIM == 2 | (OUT_V_LIM == 1 & ...                         (any(bus(:, MU_VMIN) > 1e-6) | any(bus(:, MU_VMAX) > 1e-6)))        fprintf(fd, '\n================================================================================');        fprintf(fd, '\n|     Voltage Constraints                                                      |');        fprintf(fd, '\n================================================================================');        fprintf(fd, '\nBus');        fprintf(fd, '\n  #   Vmin mu    Vmin    |V|   Vmax    Vmax mu');        fprintf(fd, '\n----  --------   -----  -----  -----   --------');                for i = 1:nb            if OUT_V_LIM == 2 | (OUT_V_LIM == 1 & ...                         (bus(i, MU_VMIN) > 1e-6 | bus(i, MU_VMAX) > 1e-6))                fprintf(fd, '\n%4d', bus(i, BUS_I));                if bus(i, MU_VMIN) > 1e-6                    fprintf(fd, '%10.3f', bus(i, MU_VMIN));                                    else                    fprintf(fd, '      -   ');                end                fprintf(fd, '%8.3f%7.3f%7.3f', bus(i, [VMIN, VM, VMAX]));                if bus(i, MU_VMAX) > 1e-6                    fprintf(fd, '%10.3f', bus(i, MU_VMAX));                else                    fprintf(fd, '      -    ');                end            end        end        fprintf(fd, '\n');    end            %% generator P constraints    if OUT_PG_LIM == 2 | OUT_QG_LIM == 2 | ...            (OUT_PG_LIM == 1 & (any(gen(:, MU_PMIN) > 1e-6) | any(gen(:, MU_PMAX) > 1e-6))) | ...            (OUT_QG_LIM == 1 & (any(gen(:, MU_QMIN) > 1e-6) | any(gen(:, MU_QMAX) > 1e-6)))        fprintf(fd, '\n================================================================================');        fprintf(fd, '\n|     Generation Constraints                                                   |');        fprintf(fd, '\n================================================================================');    end    if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ...                         (any(gen(:, MU_PMIN) > 1e-6) | any(gen(:, MU_PMAX) > 1e-6)))        fprintf(fd, '\nGen  Bus               Active Power Limits');        fprintf(fd, '\n #    #   Pmin mu    Pmin       P        Pmax    Pmax mu');        fprintf(fd, '\n---  ---  -------  --------  --------  --------  -------');        for i = 1:ng            if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & (gen(i, MU_PMIN) > 1e-6 | gen(i, MU_PMAX) > 1e-6))                fprintf(fd, '\n%3d%5d', i, gen(i, GEN_BUS));                if gen(i, MU_PMIN) > 1e-6                    fprintf(fd, '%8.3f', gen(i, MU_PMIN));                else                    fprintf(fd, '     -  ');                end                if gen(i, PG)                    fprintf(fd, '%10.2f%10.2f%10.2f', gen(i, [PMIN, PG, PMAX]));                else                    fprintf(fd, '%10.2f       -  %10.2f', gen(i, [PMIN, PMAX]));                end                if gen(i, MU_PMAX) > 1e-6                    fprintf(fd, '%9.3f', gen(i, MU_PMAX));                else                    fprintf(fd, '      -  ');                end            end        end        fprintf(fd, '\n');    end            %% generator Q constraints    if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & ...                         (any(gen(:, MU_QMIN) > 1e-6) | any(gen(:, MU_QMAX) > 1e-6)))        fprintf(fd, '\nGen  Bus              Reactive Power Limits');        fprintf(fd, '\n #    #   Qmin mu    Qmin       Q        Qmax    Qmax mu');        fprintf(fd, '\n---  ---  -------  --------  --------  --------  -------');        for i = 1:ng            if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & (gen(i, MU_QMIN) > 1e-6 | gen(i, MU_QMAX) > 1e-6))                fprintf(fd, '\n%3d%5d', i, gen(i, GEN_BUS));                if gen(i, MU_QMIN) > 1e-6                    fprintf(fd, '%8.3f', gen(i, MU_QMIN));                else                    fprintf(fd, '     -  ');                end                if gen(i, QG)                    fprintf(fd, '%10.2f%10.2f%10.2f', gen(i, [QMIN, QG, QMAX]));                else                    fprintf(fd, '%10.2f       -  %10.2f', gen(i, [QMIN, QMAX]));                end                if gen(i, MU_QMAX) > 1e-6                    fprintf(fd, '%9.3f', gen(i, MU_QMAX));                else                    fprintf(fd, '      -  ');                end            end        end        fprintf(fd, '\n');    end            %% line flow constraints    if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ...                         (any(branch(:, MU_SF) > 1e-6) | any(branch(:, MU_ST) > 1e-6)))        fprintf(fd, '\n================================================================================');        fprintf(fd, '\n|     Branch Flow Constraints                                                  |');        fprintf(fd, '\n================================================================================');        fprintf(fd, '\nBrnch   From     "From" End        Limit       "To" End        To');        if mpopt(24) == 1   %% P limit            fprintf(fd, '\n  #     Bus    Pf  mu     Pf      |Pmax|      Pt      Pt  mu   Bus');    % Pan Wei        else                %% |S| limit            fprintf(fd, '\n  #     Bus   |Sf| mu    |Sf|     |Smax|     |St|    |St| mu   Bus');        end        fprintf(fd, '\n-----  -----  -------  --------  --------  --------  -------  -----');        for i = 1:nl            if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ...                         (branch(i, MU_SF) > 1e-6 | branch(i, MU_ST) > 1e-6))                fprintf(fd, '\n%4d%7d', i, branch(i, F_BUS));                if branch(i, MU_SF) > 1e-6                    fprintf(fd, '%10.3f', branch(i, MU_SF));                else                    fprintf(fd, '      -   ');                end                if mpopt(24) == 1   %% P limit    % Pan Wei                    fprintf(fd, '%9.2f%10.2f%10.2f', ...                        [branch(i, PF), branch(i, RATE_A), branch(i, PT)]);                else                %% |S| limit                    fprintf(fd, '%9.2f%10.2f%10.2f', ...                        [abs(branch(i, PF) + j * branch(i, QF)), ...                        branch(i, RATE_A), abs(branch(i, PT) + j * branch(i, QT))]);                end                if branch(i, MU_ST) > 1e-6                    fprintf(fd, '%10.3f', branch(i, MU_ST));                else                    fprintf(fd, '      -   ');                end                fprintf(fd, '%6d', branch(i, T_BUS));            end        end        fprintf(fd, '\n');    endend%% print raw data for Perl database interfaceif OUT_RAW    fprintf(fd, '----------  raw PB::Soln data below  ----------\n');    fprintf(fd, 'bus\n');    if isOPF        fprintf(fd, '%d\t%d\t%g\t%g\t%g\t%g\t%g\t%g\n', ...                    bus(:, [BUS_I, BUS_TYPE, VM, VA, LAM_P, LAM_Q, MU_VMAX, MU_VMIN])');            fprintf(fd, 'branch\n');        fprintf(fd, '%d\t%g\t%g\t%g\t%g\t%g\t%g\n', ...                    [[1:nl]' branch(:, [PF, QF, PT, QT, MU_SF, MU_ST])]');            fprintf(fd, 'gen\n');        fprintf(fd, '%d\t%g\t%g\t%g\t%d\t%g\t%g\t%g\t%g\n', ...                    [[1:ng]' gen(:, [PG, QG, VG, GEN_STATUS, MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN])]');    else        fprintf(fd, '%d\t%d\t%f\t%f\t%d\t%d\t%d\t%d\n', ...                    [bus(:, [BUS_I, BUS_TYPE, VM, VA]) zeros(nb, 4)]');            fprintf(fd, 'branch\n');        fprintf(fd, '%d\t%f\t%f\t%f\t%f\t%d\t%d\n', ...                    [[1:nl]' branch(:, [PF, QF, PT, QT]) zeros(nl, 2)]');            fprintf(fd, 'gen\n');        fprintf(fd, '%d\t%f\t%f\t%f\t%d\t%d\t%d\t%d\t%d\n', ...                    [[1:ng]' gen(:, [PG, QG, VG, GEN_STATUS]) zeros(ng, 4)]');    end    fprintf(fd, 'end\n');    fprintf(fd, '----------  raw PB::Soln data above  ----------\n');endreturn;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -