0001 function printmkt(r, t, dispatch, success, fd, mpopt)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024 if nargin < 6
0025 mpopt = mpoption;
0026 if nargin < 5
0027 fd = 1;
0028 end
0029 end
0030 gen = r.gen;
0031
0032
0033 OUT_RAW = 0;
0034
0035
0036 [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ...
0037 MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ...
0038 QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen;
0039 [QUANTITY, PRICE, FCOST, VCOST, SCOST, PENALTY] = idx_disp;
0040
0041
0042 ng = size(gen, 1);
0043
0044
0045 pay = dispatch(:, PRICE) .* dispatch(:, QUANTITY) * t;
0046 cost = dispatch(:, FCOST) + dispatch(:, VCOST) + dispatch(:, SCOST) + dispatch(:, PENALTY);
0047 if mpopt.out.all
0048
0049 fprintf(fd, '\n================================================================================');
0050 fprintf(fd, '\n| Market Summary |');
0051 fprintf(fd, '\n================================================================================');
0052 fprintf(fd, '\nDispatch period duration: %.2f hours', t);
0053 fprintf(fd, '\nGen Bus Pg Price Revenue Fix+Var Strt/Stp Total Earnings');
0054 fprintf(fd, '\n # # (MW) ($/MWh) ($) Cost ($) Cost ($) Cost ($) ($) ');
0055 fprintf(fd, '\n--- --- -------- -------- -------- -------- -------- -------- --------');
0056 for i = 1:size(gen, 1)
0057 if gen(i, PG)
0058 fprintf(fd, '\n%3d%5d%9.2f%10.3f%10.2f%10.2f%10.2f%10.2f%10.2f', ...
0059 i, gen(i, GEN_BUS), dispatch(i, QUANTITY), dispatch(i, PRICE), pay(i), ...
0060 dispatch(i, FCOST) + dispatch(i, VCOST), ...
0061 dispatch(i, SCOST), cost(i), pay(i) - cost(i));
0062 else
0063 if dispatch(i, SCOST) || dispatch(i, PENALTY)
0064 fprintf(fd, '\n%3d%5d - %10.3f - - %10.2f%10.2f%10.2f', ...
0065 i, gen(i, GEN_BUS), dispatch(i, PRICE), dispatch(i, SCOST), ...
0066 cost(i), pay(i) - cost(i));
0067 else
0068 fprintf(fd, '\n%3d%5d - %10.3f - - - - -', ...
0069 i, gen(i, GEN_BUS), dispatch(i, PRICE));
0070 end
0071 end
0072 if dispatch(i, PENALTY)
0073 fprintf(fd, '%10.2f penalty (included in total cost)', dispatch(i, PENALTY));
0074 end
0075 end
0076 fprintf(fd, '\n -------- -------- -------- -------- -------- --------');
0077 fprintf(fd, '\nTotal: %9.2f %10.2f%10.2f%10.2f%10.2f%10.2f', ...
0078 sum(dispatch(:, QUANTITY)), sum(pay), sum(dispatch(:, FCOST)) + sum(dispatch(:, VCOST)), ...
0079 sum(dispatch(:, SCOST)), sum(cost), sum(pay-cost));
0080 if sum(dispatch(:, PENALTY))
0081 fprintf(fd, '%10.2f penalty (included in total cost)', sum(dispatch(:, PENALTY)));
0082 end
0083 fprintf(fd, '\n');
0084 end
0085
0086
0087 if OUT_RAW
0088 fprintf(fd, '---------- raw PW::Dispatch data below ----------\n');
0089 fprintf(fd, 'dispatch\n');
0090 fprintf(fd, '%d\t%.8g\t%.8g\t%.8g\t%.8g\t%.8g\t%.8g\t%.8g\n', ...
0091 [(1:ng)' dispatch(:, [QUANTITY, PRICE, FCOST, VCOST, SCOST, PENALTY]) pay-cost]');
0092 fprintf(fd, '---------- raw PW::Dispatch data above ----------\n');
0093 end
0094
0095
0096 printpf(r, fd, mpopt);