0001 function t_margcost(quiet)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 if nargin < 1
0013 quiet = 0;
0014 end
0015
0016 n_tests = 22;
0017
0018 t_begin(n_tests, quiet);
0019
0020
0021 [GEN_BUS, PG, QG, QMAX, QMIN, VG, MBASE, GEN_STATUS, PMAX, PMIN, ...
0022 MU_PMAX, MU_PMIN, MU_QMAX, MU_QMIN, PC1, PC2, QC1MIN, QC1MAX, ...
0023 QC2MIN, QC2MAX, RAMP_AGC, RAMP_10, RAMP_30, RAMP_Q, APF] = idx_gen;
0024 [PW_LINEAR, POLYNOMIAL, MODEL, STARTUP, SHUTDOWN, NCOST, COST] = idx_cost;
0025
0026
0027
0028
0029 gencost = [
0030 2 0 0 3 0.01 0.1 1 0 0 0 0 0;
0031 2 0 0 5 0.0006 0.005 0.04 0.3 2 0 0 0;
0032 1 0 0 4 0 0 10 200 20 600 30 1200;
0033 1 0 0 4 -30 -2400 -20 -1800 -10 -1000 0 0;
0034 ];
0035
0036 t = 'margcost - quadratic';
0037 t_is(margcost(gencost, [0;0;0;0]), [0.1;0.3;20;100], 8, t);
0038 t_is(margcost(gencost, [1;0;0;0]), [0.12;0.3;20;100], 8, t);
0039 t_is(margcost(gencost, [2;0;0;0]), [0.14;0.3;20;100], 8, t);
0040
0041 t = 'margcost - 4th order polynomial';
0042 t_is(margcost(gencost, [0;0;0;0]), [0.1;0.3;20;100], 8, t);
0043 t_is(margcost(gencost, [0;1;0;0]), [0.1;0.3974;20;100], 8, t);
0044 t_is(margcost(gencost, [0;2;0;0]), [0.1;0.5392;20;100], 8, t);
0045
0046 t = 'margcost - pwl (gen)';
0047 t_is(margcost(gencost, [0;0;-10;0 ]), [0.1;0.3;20;100], 8, t);
0048 t_is(margcost(gencost, [0;0;5;0 ]), [0.1;0.3;20;100], 8, t);
0049 t_is(margcost(gencost, [0;0;10;0]), [0.1;0.3;20;100], 8, t);
0050 t_is(margcost(gencost, [0;0;15;0]), [0.1;0.3;40;100], 8, t);
0051 t_is(margcost(gencost, [0;0;20;0]), [0.1;0.3;40;100], 8, t);
0052 t_is(margcost(gencost, [0;0;25;0]), [0.1;0.3;60;100], 8, t);
0053 t_is(margcost(gencost, [0;0;30;0]), [0.1;0.3;60;100], 8, t);
0054 t_is(margcost(gencost, [0;0;35;0]), [0.1;0.3;60;100], 8, t);
0055
0056 t = 'margcost - pwl (load)';
0057 t_is(margcost(gencost, [0;0;0;10 ]), [0.1;0.3;20;100], 8, t);
0058 t_is(margcost(gencost, [0;0;0;-5 ]), [0.1;0.3;20;100], 8, t);
0059 t_is(margcost(gencost, [0;0;0;-10]), [0.1;0.3;20;80], 8, t);
0060 t_is(margcost(gencost, [0;0;0;-15]), [0.1;0.3;20;80], 8, t);
0061 t_is(margcost(gencost, [0;0;0;-20]), [0.1;0.3;20;60], 8, t);
0062 t_is(margcost(gencost, [0;0;0;-25]), [0.1;0.3;20;60], 8, t);
0063 t_is(margcost(gencost, [0;0;0;-30]), [0.1;0.3;20;60], 8, t);
0064 t_is(margcost(gencost, [0;0;0;-35]), [0.1;0.3;20;60], 8, t);
0065
0066 t_end;