You are on page 1of 8

Chapter 7 Optimal Dispatch of Generation Part II 7.

3 Operating Cost of a Thermal Plant


The major cost of plant operation is fuel. Other costs may be added to the fuel-cost and the sum referred to as the fuel cost. Usually the fuel cost is in $/h and is a function of the power generation in MW. The fuel cost curve is usually assumed to be parabolic of the form: Ci = i + i Pi + i P 2 . The incremental fuel-cost curve is slope of the fuel-cost i dCi curve defined by = 2 i Pi + i . The incremental fuel-cost curve indicates how dP i expensive it will be to generate the next increment of power. Units: Ci is in $/h and is in $/MWh. Typical curves are shown below.

dCi dP i

clear P1=0:1:500; C1=500+5.3*P1+0.004*P1.^2; IC1=5.3+2*0.004*P1; subplot(2,1,1),plot(P1,C1),grid title('Plot of fuel-cost'),xlabel('Power, MW'),ylabel('$/h') subplot(2,1,2),plot(P1,IC1),grid title('Plot of incremental fuel-cost'), xlabel('Power, MW'),ylabel('$/MWh')
Plot of fuel-cost 5000 4000 3000 $/h 2000 1000 0 0 100 200 300 Power, MW Plot of incremental fuel-cost 400 500

10 9 8 7 $/MWh 6 5 0 100 200 300 Power, MW 400 500

7.4 Economic Dispatch Neglecting Losses and Generator Limits


The simplest economic allocation is that of power generators on the same bus (or in theory using lossless lines). Suppose we have n generators connected to a bus and supplying a load demand PD . We would like to minimize the total cost of generation C t = Ci = i + i Pi + i Pi2
i =1 i =1 n ng

subject to the constraint


i =1

Pi = PD
C1 C2 C ng

ng

This situation is shown in the figure to the right. It is noted that the number of "dispatchable" generators is ng while the total number of generators is n. This means n ng generators are not subject to economic allocation (they may be on a flat load, such as the case of nuclear generators, or they may have reached a maximum or minimum limit of generation). As usual we now form the function L :

P1

P2 PD

P ng

ng L = Ct + P P D i i =1 The necessary conditions for a minimum are: L =0 Pi

L =0 The first condition results in

Ct + (0 1) = 0 Pi Also we know that Ct = C1 + C2 + L + Cng , therefore Ct dCi = = Pi dP i Thus the condition for optimal dispatch is

dCi = dP i
or

i = 1,K , ng

i + 2 i Pi = And the second condition above simply states


i =1

Pi = PD

ng

which is the same as the

constraint stated earlier. In English: Assuming no limits on generation, and no losses, then the most economical state of operation is when all the plants have the same incremental cost , and their total generation equals the load demand. Based on this we now can find for optimal generation. From the equation above we have i P= i 2 i The relations given by this equation are called the coordination equations. Using this equation in the constraint equation we have i = PD i =1 2 i

and solving for we have

ng

PD + i =1
ng

i 2 i
i

i =1 2
ng

Knowing the value of we can compute the powers using P = i

i . 2 i In the case of lossless power systems (i.e. generators on a common bus) it was easy to analytically solve the optimal dispatch problem. In the general case where losses are significant and the generators are geographically dispersed, the solution cannot be found analytically. In such cases an iterative solution is employed. Such a solution is detailed below for the case of lossless systems (even though this can be performed analytically in this case, we do it in order to gain experience for the next case when iteration is a must).
We employ the gradient method to solve the optimization problem by iteration. The constraint equation is written as follows: f ( ) = i = PD i =1 2 i
ng

Taking the first order terms of the Taylor series expansion about the point ( k ) gives (k ) (k ) df ( ) (k ) f ( ) + = PD d or

(k )

k k PD f ( )( ) P( ) i =1 = = = (k ) (k ) (k ) df ( ) df ( ) df ( ) d d d (k ) P = (k ) dPi d

k PD Pi( )

ng

or

(k )
k P ( ) = 1 2 i

thus the correction is

( k +1)

(k )

+
ng

(k )

where
k P ( k ) = PD Pi( ) i =1

The iteration is continued till P is smaller than a specified accuracy. Of course, as usual, a starting value (1) is used to start the iteration. The steps in this process are outlined below: Step 1. Assume an initial value for lambda, say (1) . 1 ( ) i 1 Step 2. Using the equation P ( ) = compute all the powers for the first iterate. i 2 i Step 3. Check if the sum of powers equals the demand, and find the difference thus:
1 P (1) = PD Pi( ) . If this difference is smaller than the specified accuracy, a solution i =1 ng

(k)

is reached, if not, continue.


P ( ) Step 4. Compute the change in lambda: = and compute the second 1 2 i estimate for lambda, namely: ( 2 ) = (1) + (1) .
(1)
1

The process is repeated till step 3 indicates convergence

Example 7.4 The fuel cost of three thermal plants in $/h are given as: C1 = 500 + 5.3P + 0.004 P 2 1 1 C 2 = 400 + 5.5 P2 + 0.006P22 C 3 = 200 + 5.8 P3 + 0.009 P32 Where the powers are in MW. The total load PD is 800 MW. Neglecting line losses and generator limits, find the optimal dispatch and the total cost in $/h (a) by the analytical method (b) by graphical demonstration (c) by iteration. (a) Lambda is computed directly, thus: ng PD + i =1 i 2 i = 1 ng i=1 2 i 5.3 5.5 5.8 800 + + + 0.008 0.012 0.018 = 8.5 $/MWh = 1 1 1 + + 0.008 0.012 0.018 The powers can be computed directly thus: 8.5 5.3 P= = 400 1 2 ( 0.004 )
P2 = P3 = 8.5 5.5 = 250 2 ( 0.006 )

8.5 5.8 = 150 2 ( 0.009 ) It is easy to verify that the incremental costs at the three plants are equal and the sum of the powers is equal to the power demand.

(b) We can show this graphically using Matlab.


%Graphical Demonstration of Example 7.4 axis([0 450 6.5 10.5]); lambda=8.5; P1=250:10:450; P2 = 150:10:350; P3=100:10:250; IC1= 5.3 + 0.008*P1; IC2= 5.5 + 0.012*P2; IC3= 5.8 + 0.018*P3; Px = 0:100:400; plot(P1, IC1, P2, IC2, P3, IC3, Px, lambda*ones(1, length(Px)),'m'),xlabel('P MW'), ylabel(' $/MWh'), grid

10.5

10

9.5

8.5 $/MWh 8

7.5

50

100

150

200 250 P MW

300

350

400

450

Choosing lambda less than 8.5 would produce less power than the demand, and larger than 8.5 would produce too much power, hence it is seen that lambda = 8.5 is the solution and can be found graphically as shown above. (c) For the iterative solution, we use Matlab thus:
% Iterative solution Using Newton method alpha =[500; 400; 200]; beta = [5.3; 5.5; 5.8]; gama=[.004; .006; .009]; PD=800; DelP = 10; % Error in DelP is set to a high value lambda = 6; % estimated value of Lambda disp([' Lambda P1 P2 P3 DP grad Delambda']) iter = 0; % Iteration counter while abs(DelP) >= 0.001 % Test for convergence iter = iter + 1; % No. of iterations P = (lambda - beta)./(2*gama); DelP =PD - sum(P); % Residual J = sum( ones(length(gama), 1)./(2*gama)); % Gradient sum Delambda = DelP/J; % Change in variable disp([lambda, P(1), P(2), P(3), DelP, J, Delambda])

lambda = lambda + Delambda; % Successive solution end totalcost = sum(alpha + beta.*P + gama.*P.^2) Lambda P1 6.0000 87.5000 8.5000 400.0000 totalcost = 6.6825e+003 P2 41.6667 250.0000 P3 11.1111 150.0000 DP grad Delambda 659.7222 263.8889 2.5000 0 263.8889 0

The Matlab program available to do this is called "dispatch". The program returns the system lambda and optimal generation dispatch. The program requires as input at least two specified reserved variables named "cost" and "Pdt" as shown in the example below. Optionally, the program accepts four other (optional) reserved variables: "mwlimits", "B", "B0", and "B00". If the optional variables are not specified, the program assumes they are zero and solves the problem as a lossless problem with no generator limits. The program called "gencost" will compute the total generation cost. This is shown below: Example 7.5 Neglecting generator limits and system losses, use "dispatch" to obtain the optimal dispatch of generation for the thermal plants in Example 7.4. We use the following Matlab commands:
cost=[500 5.3 0.004 400 5.5 0.006 200 5.8 0.009]; Pdt=800; dispatch gencost Incremental cost of delivered power (system lambda) = Optimal Dispatch of Generation: 400.0000 250.0000 150.0000 Total generation cost = 6682.50 $/h 8.500000 $/MWh

The use of "mwlimits" and "B B0 B00" will be shown later as we study generator limits and lossy systems.

You might also like