www.gusucode.com > matpower工具箱源码程序 > matpower工具箱源码程序/MP2_0/totcost.m

    function totalcost = totcost(gencost, Pg)
%TOTCOST    Computes total cost for generators at given output level.
%   totalcost = totcost(gencost, Pg) computes total cost for generators given
%   a matrix in gencost format and a column vector or matrix of generation
%   levels. The the return value has the same dimensions as Pg. Each row
%   of gencost is used to evaluate the cost at the points specified in the
%   corresponding row of Pg.

%   MATPOWER Version 2.0
%   by Ray Zimmerman, PSERC Cornell    9/19/97
%   Copyright (c) 1997 by Power System Engineering Research Center (PSERC)
%   See http://www.pserc.cornell.edu/ for more info.

[PW_LINEAR, POLYNOMIAL, MODEL, STARTUP, SHUTDOWN, N, COST] = idx_cost;

[ng, m] = size(gencost);
totalcost = zeros(ng, size(Pg, 2));

if ~isempty(gencost)
	if gencost(1, MODEL) == PW_LINEAR
		x = gencost(:, COST:2:(m-1));
		y = gencost(:, (COST+1):2:m);
		for i = 1:ng
			if gencost(i, N) > 0
				j1 = 1:(gencost(i, N) - 1);		j2 = 2:gencost(i, N);
				pp = mkpp(x(i, 1:gencost(i, N))', [(y(i,j2) - y(i,j1)) ./ (x(i,j2) - x(i,j1));  y(i,j1)]');
				totalcost(i,:) = ppval(pp, Pg(i,:));
			end
		end
	elseif gencost(1, MODEL) == POLYNOMIAL
		for i = 1:ng
			totalcost(i,:) = polyval( gencost( i, COST:(COST+gencost(i, N)-1) ) , Pg(i,:) );
		end
	end
end

return;