Professional Documents
Culture Documents
1.0 Introduction
1
of interest. Each constraint may be either an
equality or an inequality.
2
The objective function is the function to be
minimized or maximized. It is also
sometimes known as the cost function.
3
of the same terminology for a piece of
source code (a program) or what you do
when you write source code (programming).
Use of the terminology here refers to an
analytical statement of a decision problem.
In fact, optimization problems are often
referred to as mathematical programs and
their solution procedures as mathematical
programming. Such use of this terminology
is indicated when one uses the term linear
programming (LP), nonlinear programming
(NLP), or integer programming (IP).
4
The LaGrangian function of (1) is:
F (x, , ) f (x ) [h(x )c] [g (x )b]
T T
(2)
where individual elements of =(1 ,2 , J )
and =(1 , 2 , ) are called LaGrange
K
h j ( x) = c j j = 1,, J (3)
g k ( x) bk k = 1, , K (4)
F
=0 i = 1,, n (5)
xi
k [ gk ( x) bk ] = 0 k = 1, , K (6)
k 0 k = 1, , K (7)
Equations (5)-(7) are known as the Karush
Kuhn-Tucker (KKT) conditions or, more
simply, as the Kuhn-Tucker (KT)
conditions.
5
Equation (6) is called the complementary
slackness condition. This condition is
important to understand. It says that if x
occurs on the boundary of the kth inequality
constraint, then gk(x) = bk. In this case eq.
(6) allows k to be >0. On the other hand, if
the solution x does not occur on the
boundary of the kth inequality constraint,
then (assuming x is an attainable point) gk(x)
- bk > 0, in this case, eq. (6) requires that k
= 0 and the kth constraint makes no
contribution to the LaGrangian.
6
3.0 EDC Problem Formulation
7
1.Power balance
2.Generation limits
P
i =1
Gi = PD + PL
(11a)
The demand PD is assumed to be a fixed
value. However, the losses PL depend on the
solution (given by PGi) which we do not
know until we solve the problem. This
dependency is due to the fact that the losses
depend on the flows in the circuits, and the
flows in the circuits depend on the
generation dispatch. Therefore we represent
this dependency according to eq. (11b).
m
P = PD + PL ( PG1 , PG 2 ,, PGm )
i =1
Gi (11b)
Note that only m-1 of the PGi are
independent variables. Given demand and
8
losses, one of the generation values is
determined once the other m-1 are set. In the
power flow problem, this generator is
referred to as the swing or slack bus. We
will assume this generator is unit 1.
P = PD + PL ( PG 2 ,, PGm )
i =1
Gi (11c)
We rearrange eq. (11c) so that all terms
dependent on the decision variables are on
the left-hand-side, according to:
m
P PL ( PG 2 ,, PGm ) = PD
i =1
Gi (11d)
9
operating as a motor, attempting to drive the
turbine not a good operational state!).
Most units actually cannot operate at 0; as a
min
P
result, we will denote the minimum as Gi .
Therefore, the generation limits are
represented by
PGimin PGi PGimax (12)
Min CT = i =1
Ci ( PGi )
Subject to
m
P Gi PL ( PG 2 ,, PGm ) = PD
i =1
min
P Gi PGi PGimax i = 1,..., m
10
4.0 Application of KKT conditions
P Gi PL ( PG 2 ,, PGm ) = PD (11)
i =1
P PGi PGimax
min
Gi i = 1,, m (12)
F dCi ( PGi ) PL
= 1 + i i = 0
PGi dPGi PGi
i = 1,, m (13)
11
i( PGimax PGi ) = 0 i = 1,, m (14)
i( PGi PGimin ) = 0 i = 1,, m (15)
i 0 i = 1,, m (16)
i 0 i = 1,, m (17)
12
dCi ( PGi ) PL
1 (13b)
dPGi PGi
P Gi PL ( PG 2 ,, PGm ) = PD (11)
i =1
P PGi PGimax
min
Gi i = 1,, m (12)
dCi ( PGi ) PL min max
= 1 for P Gi < PGi < PGi
dPGi PGi
13
- (13a)
dCi ( PGi ) PL min
1 for PGi = PGi (13b)
dPGi PGi
dCi ( PGi ) P
1 L for PGi = PGimax (13c)
dPGi PGi
constraint
Check solution against inequality
constraints. For those that are violated,
bring them in as equality constraints and
re-solve the problem. Repeat this step until
you obtain a solution for which no
inequality constraints are violated and the
KKT conditions given by (13a)-(13c) are
satisfied.
14
dC i
The term dPGi
is called the incremental cost
of unit i and is denoted by ICi.
15
Example:
Consider the cost-rate functions:
C1 ( PG1 ) = 900 + 45 PG1 + 0.01PG21 (8)
C1 ( PG 2 ) = 2500 + 43 PG 2 + 0.003 PG22 (9)
The load is specified as PD=600 MW.
Generator limits are given as
50 MW PG1 200MW
50MW PG 2 600MW
In this example, we assume that there are no
losses. This means that all penalty factors
are 1.0. Assuming there are no binding
inequality constraints, eq. (20) is
dC1 ( PG1 ) dC 2 ( PG 2 )
= =
dPG1 dPG 2
Writing out these equations, we have:
= 45 + 0.02 PG1
= 43 + 0.006 PG 2
We also have our equality constraint eq. (11)
PG1 + PG 2 = 600
16
We can solve these equations in matrix
representation, as a set of linear equations,
as given below.
0.02 0 1 PG1 45
0 0.006 1 P = 43
G 2
1 1 0 600
Solution to this equation yields:
PG1 61.5385
P = 538.4615
G 2
46.2308
Checking the inequality limits, we see that
we have found the solution.
17
IC1 = 45 + 0.02 PG1
IC 2 = 43 + 0.006 PG 2
The incremental cost curves are just the
derivatives of the cost-rate curves. They
express the derivatives under any condition,
not necessarily at the optimum. The
expressions derived for under the KKT
conditions specify a certain relation among
the incremental cost curves.
49
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 1
18
The lambda iteration method begins with a
guess in regards to a value of which
satisfies equations (11)-(13).
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 2
19
The corresponding generation values are the
dark vertical dashed lines, so we can see that
PG1=50 and PG2=500, for a total generation
of 550 MW. This is less than the desired 600
MW so lets increase our guess. Lets try
about 46.4, as shown in Fig. 3.
49
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 3
The corresponding generation levels are
about PG1=70 MW and PG2=567 MW, for a
total of 637 MW, and so this is a little too
high. Lets try =46.2 as shown in Fig. 4.
20
49
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 4
The corresponding generation levels are
about PG1=60 MW and PG2=533 MW for a
total of 593 MW, so this is just a small bit
too low. It is probably not possible to do
better than this unless we use a more
granular axis in our plots.
21
Well, the plots are really analytical relations
between and the generation levels, and we
can easily manipulate them so that they give
the generation levels as a function of , as
shown below.
0.02 PG1 = 45 PG1 = ( 45) / 0.02
0.006 PG 2 = 43 PG 2 = ( 43) / 0.006
Now we can proceed analytically.
22
46.4 46 46
= = 46.2308
636.6667 550.0000 600 550.0000
Because our equations for PG1 and PG2 are
linear with , the linear interpolation will
provide an exact answer. We can check to
see:
PG1 = (46.2308 45) / 0.02 = 61.5385
PG 2 = (46.2308 43) / 0.006 = 538 .4615
And the sum is 600.0000 MW as desired.
23
Fig. 5
Example (extended):
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 6
It appears that is 46.6, and PG1 = 80MW,
PG2 = 600 MW, for a total of 680 MW. So
this is not enough, and we must therefore
raise . However, we cannot raise on unit 2
because it is already at its upper limit. So we
have to clamp PG2 at 600 MW. In other
words, we will no longer use PG2 in our -
iteration, although we will need to account
for its generation of 600 MW.
25
So we will perform -iteration on only the
remaining units. In this case, the remaining
units is just unit 1. In addition, our stopping
criterion will now be that the total
generation of the remaining units be equal to
PD-PG2=700-600=100 MW.
48
IC1=45+0.02Pg1
47
$/MWhr
46
45 IC2=43+0.006Pg2
44
43
0 100 200 300 400 500 600
MW
Fig. 7
26
Observe, however that there are now two
horizontal lines,
the solid one for unit 1 at 47 $/MWh;
So which one is ?
27
References:
28