📄 printpf.m
字号:
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 + -