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