📄 printpf.asv
字号:
fprintf(fd, '\n| Generation Constraints |'); fprintf(fd, '\n================================================================================'); end if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ... (any(gen(ong, PG) < gen(ong, PMIN) + ctol) | ... any(gen(ong, PG) > gen(ong, PMAX) - ctol))) fprintf(fd, '\n Gen Bus Active Power Limits'); fprintf(fd, '\n # # Pmin mu Pmin Pg Pmax Pmax mu'); fprintf(fd, '\n---- ----- ------- -------- -------- -------- -------'); for k = 1:length(ong) i = ong(k); if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ... (gen(i, PG) < gen(i, PMIN) + ctol | ... gen(i, PG) > gen(i, PMAX) - ctol)) fprintf(fd, '\n%4d%6d ', i, gen(i, GEN_BUS)); if gen(i, PG) < gen(i, PMIN) + ctol 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, PG) > gen(i, PMAX) - ctol 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(ong, QG) < gen(ong, QMIN) + ctol) | ... any(gen(ong, QG) > gen(ong, QMAX) - ctol))) fprintf(fd, '\nGen Bus Reactive Power Limits'); fprintf(fd, '\n # # Qmin mu Qmin Qg Qmax Qmax mu'); fprintf(fd, '\n--- --- ------- -------- -------- -------- -------'); for k = 1:length(ong) i = ong(k); if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & ... (gen(i, QG) < gen(i, QMIN) + ctol | ... gen(i, QG) > gen(i, QMAX) - ctol)) fprintf(fd, '\n%3d%5d', i, gen(i, GEN_BUS)); if gen(i, QG) < gen(i, QMIN) + ctol 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, QG) > gen(i, QMAX) - ctol fprintf(fd, '%9.3f', gen(i, MU_QMAX)); else fprintf(fd, ' - '); end end end fprintf(fd, '\n'); end %% dispatchable load P constraints if OUT_PG_LIM == 2 | OUT_QG_LIM == 2 | ... (OUT_PG_LIM == 1 & (any(gen(onld, PG) < gen(onld, PMIN) + ctol) | ... any(gen(onld, PG) > gen(onld, PMAX) - ctol))) | ... (OUT_QG_LIM == 1 & (any(gen(onld, QG) < gen(onld, QMIN) + ctol) | ... any(gen(onld, QG) > gen(onld, QMAX) - ctol))) fprintf(fd, '\n================================================================================'); fprintf(fd, '\n| Dispatchable Load Constraints |'); fprintf(fd, '\n================================================================================'); end if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ... (any(gen(onld, PG) < gen(onld, PMIN) + ctol) | ... any(gen(onld, PG) > gen(onld, PMAX) - ctol))) fprintf(fd, '\nGen Bus Active Power Limits'); fprintf(fd, '\n # # Pmin mu Pmin Pg Pmax Pmax mu'); fprintf(fd, '\n--- --- ------- -------- -------- -------- -------'); for k = 1:length(onld) i = onld(k); if OUT_PG_LIM == 2 | (OUT_PG_LIM == 1 & ... (gen(i, PG) < gen(i, PMIN) + ctol | ... gen(i, PG) > gen(i, PMAX) - ctol)) fprintf(fd, '\n%3d%5d', i, gen(i, GEN_BUS)); if gen(i, PG) < gen(i, PMIN) + ctol 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, PG) > gen(i, PMAX) - ctol fprintf(fd, '%9.3f', gen(i, MU_PMAX)); else fprintf(fd, ' - '); end end end fprintf(fd, '\n'); end %% dispatchable load Q constraints if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & ... (any(gen(onld, QG) < gen(onld, QMIN) + ctol) | ... any(gen(onld, QG) > gen(onld, QMAX) - ctol))) fprintf(fd, '\nGen Bus Reactive Power Limits'); fprintf(fd, '\n # # Qmin mu Qmin Qg Qmax Qmax mu'); fprintf(fd, '\n--- --- ------- -------- -------- -------- -------'); for k = 1:length(onld) i = onld(k); if OUT_QG_LIM == 2 | (OUT_QG_LIM == 1 & ... (gen(i, QG) < gen(i, QMIN) + ctol | ... gen(i, QG) > gen(i, QMAX) - ctol)) fprintf(fd, '\n%3d%5d', i, gen(i, GEN_BUS)); if gen(i, QG) < gen(i, QMIN) + ctol 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, QG) > gen(i, QMAX) - ctol fprintf(fd, '%9.3f', gen(i, MU_QMAX)); else fprintf(fd, ' - '); end end end fprintf(fd, '\n'); end %% line flow constraints if mpopt(24) == 1 %% P limit Sf = branch(:, PF); St = branch(:, PT); str = '\n # Bus Pf mu Pf |Pmax| Pt Pt mu Bus'; else %% |S| limit Sf = abs(branch(:, PF) + j * branch(:, QF)); St = abs(branch(:, PT) + j * branch(:, QT)); str = '\n # Bus |Sf| mu |Sf| |Smax| |St| |St| mu Bus'; end if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ... (any(abs(Sf) > branch(:, RATE_A) - ctol) | ... any(abs(St) > branch(:, RATE_A) - ctol))) fprintf(fd, '\n================================================================================'); fprintf(fd, '\n| Branch Flow Constraints |'); fprintf(fd, '\n================================================================================'); fprintf(fd, '\nBrnch From "From" End Limit "To" End To'); fprintf(fd, str); fprintf(fd, '\n----- ----- ------- -------- -------- -------- ------- -----'); for i = 1:nl if OUT_LINE_LIM == 2 | (OUT_LINE_LIM == 1 & ... (Sf(i) > branch(i, RATE_A) - ctol | ... St(i) > branch(i, RATE_A) - ctol)) fprintf(fd, '\n%4d%7d', i, branch(i, F_BUS)); if Sf(i) > branch(i, RATE_A) - ctol fprintf(fd, '%10.3f', branch(i, MU_SF)); else fprintf(fd, ' - '); end fprintf(fd, '%9.2f%10.2f%10.2f', ... [Sf(i), branch(i, RATE_A), St(i)]); if St(i) > branch(i, RATE_A) - ctol 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 + -