Transcript lpopf

EE/Econ 458 LPOPF

J. McCalley

1

LPOPF The linear program optimal power flow is functionally equivalent to the SCED (but not to the SC-SCED). The main difference is that LPOPF uses DC power flow equations whereas SCED uses linear sensitivities (generation shift factors). Please read below papers posted to website for full description of SC-SCUC and SC-SCED.

Ref: Xingwang Ma, Haili Song, Mingguo Hong, Jie Wan, Yonghong Chen, Eugene Zak, “The Security-constrained Commitment and Dispatch For Midwest ISO Day-ahead Co-optimized Energy and Ancillary Service Market,” Proc. of the 2009 IEEE PES General Meeting.

Ref: Xingwang Ma, Yonghong Chen, Jie Wan, “Midwest ISO Co-optimization Based Real-time Dispatch and Pricing of Energy and Ancillary Services,” Proc. of the 2009 IEEE PES General Meeting.

2

Linearized cost rate curves In our simplest version, we assume that only generators supply offers and all load is “must serve.” We assume we have linearized cost-rate (generation offer) curves into some number of price-quantity offers.

The below illustrates this linearization to either three offers or one.

C i $/hr P i,min Three offers: (s i1 ,P i1 ), (s i2 , P i2 ), (s i3 , P i3 ) s i1 P i1 s i3 s i s i2 P i3 P i2 P i (MW)  One offer: (s i ,P i ),) 3

LPOPF

min 

k

 

generator

_

s P k gk buses

 Subject to: 

P

 where:

P B

0 

P

k

B

'   (

D

P B

, max

P

gk

P

gk

 

A

)  

P B

P B

, max

P

gk

, max , 

k

 

gen

_

buses

 

P

dk

,

k

 1 ,...

N

Do not delete a column and row in DC power flow equations to use the “reduced” set. If you do, you are relieving the problem of satisfying power balance: P1+P2+P3+P4=0 You can see that the above is imposed by the “full” DC power flow equations by summing the rows.

    

P P

2

P

3

P

4 1               30 10 10 10  10 20  10 0  10  10 30  10   10  0   10 20            1 2 3 4     

Alternatively, you can use the “reduced” DC power flow equations together with the above power balance constraint, which, for the example on the next slide, is Pg1+Pg2+Pg3=2.1787

4

, 1 y 14 =-j10 P g1

Example

P g2 2 y 13 =-j10 y 12 =-j10 P d2 =1pu y 23 =-j10 y 34 =-j10 3 4

K

1 (

P g

1 )

K

2 (

P g

2 )  

s

1

P g

1

s

2

P g

2

K

4 (

P g

4 ) 

s

4

P g

4 s 1 =13.07 $/MWhr s 2 =12.11 $/MWhr s 4 =12.54 $/MWhr P g4 P d3 =1.1787pu 50 

P g

1  200 37 .

5 45  

P g P g

2 4  150  180 s 1 =1307 $/puMWhr s 2 =1211 $/puMWhr s 4 =1254 $/puMWhr

Objective function:

Z

 1307

P

g

1  1211

P

g

2  1254

P

g

4 5

Example

DC power flow equality constraints:

, 

P

B

'   0

From last time:

     

P P

2

P

3

P

4 1            30 10     10 10  10 20  10 0  10  10 30  10   10  0   10 20             1 2 3 4      

where But P g3 , P d1 , P d2 , P d3 , P d4 are fixed at 0,0,1, 1.1787, 0, so the above become:

P P P

3

P

1 2 4    

P P P

g g

P

g

3

g

1 2 4  

P

d

P

d

1 2 

P

d

3 

P

d

4

Putting the equations into CPLEX constraint form (variables on left, constant on RHS):

P g

1

P g

2  30  1  1   10  2  10  1   10  3 20  2  10  4  10  3  1 .

1787

P g

4    10  1  10  1  10  3  10   20 2   4 30  3  10  4

P g

1  30  1  10  2  10  3  10  4  0

P g

2  10  1  20  2  10  3  1 10  1

P g

4   10  2 10  1   30  3 10  3   10  4 20  4   0 1 .

1787 We need to write equations so that RHS values, if they are or were to be non-zero, are or would be positive, in order to get positive dual variables.

6

 ,

Example

These are not constraints on our problem. They just

Line flow equality constraints:

P B

 (

D

A

)    0 compute for us the line flows which we then constrain with inequalities. We could also do each of these as one equation, using a single inequality constraint.

From last time:

D

  10       0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10       

A

 

1

 

1

 

0

  0 1

0

1 0 0

1

  

0 0

1 1 1

0

0 1 0

1

       Note we need “full” node arc incidence matrix because we have full DC power flow equations.

(

D

A

)           1 2 3 4        10       0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10          

1 1

   

0

0 1

0 1

1 0 0

0 0

 1  1  1

0

0 1 0

1

                1 2 3 4        10   10     0 0 10 0  10 10 0 0 0 0  10  10  10  10  0 0 10 0                1 2 3 4               10  1 10  1 10  10  10  1 2 3      10  10  10  10  3 4 2 10  3 4        

P b

 (

D

A

)           1 2 3 4       0         

P b

1

P b

2

P b

3

P b

4

P b

5                 10  1 10  1 10  10  10  1 2 3      10  4 10  2 10 10  10   3 3 4                 0   0   0   0 0     

P b

1

P b

2

P b

3

P b

4

P b

5  10  1  10  1  10  2  10  3  10  1  10  4  10  2    10  3 10  4 10  3      0 0 0 0 0 7

Example

,

minimize:

Z

 1307

P

g

1  1211

P

g

2  1254

P

g

4

P g

1  30  1  10  2  10  3  10  4  0

P g

2  10  1  20  2  10  3  1 10  1

P g

4   10  2 10  1   30  3 10  3   10  20  4 4   0 1 .

1787     

P b

1

P b

2

P b

3

P b

4

P b

5  10  1  10  1  10  2  10  3  10  1  10  4  10  2  10  3  10  4  10  3      0 0 0 0 0 

P

B

'   0 

P B

 (

D

A

)    0 …and the inequality constraints 0  

P B

, max

P

gk

 

P

gk

, max

P B

, 

k

P B

, max  

generator

_

buses

 8

minimize 1307 pg1 + 1211 pg2 + 1254 pg4 subject to theta1=0 -pb1 + 10 theta1 - 10 theta4 = 0 -pb2 + 10 theta1 - 10 theta2 = 0 -pb3 + 10 theta2 - 10 theta3 = 0 -pb4 - 10 theta3 + 10 theta4 = 0 -pb5 + 10 theta1 - 10 theta3 = 0 Bounds -500 <= pb1 <= 500 -500 <= pb2 <= 500 -500 <= pb3 <= 500 -500 <= pb4 <= 500 -500 <= pb5 <= 500 -3.14159 <= theta1 <= 3.14159

-3.14159 <= theta2 <= 3.14159

-3.14159 <= theta3 <= 3.14159

-3.14159 <= theta4 <= 3.14159

end Line flows Objective variable, you must impose that here.

CPLEX Code

I can arbitrarily set one angle to whatever I like (within bounds), since it is the angle differences that are important. pg1 - 30 theta1 + 10 theta2 + 10 theta3 + 10 theta4 = 0 pg2 + 10 theta1 - 20 theta2 + 10 theta3 = 1 10 theta1 + 10 theta2 - 30 theta3 + 10 theta4 = 1.1787

pg4 + 10 theta1 + 10 theta3 - 20 theta4 = 0 -pg1 <= -0.5

pg1 <= 2 -pg2 <= -0.375

pg2 <= 1.5

-pg4<= -0.45

pg4 <= 1.8

DC power flow equations Generation offer constraints CPLEX only provides dual variables for equalities and inequalities that appear -pb1 <= 500 pb1 <= 500 -pb2 <= 500 pb2 <= 500 -pb3 <= 500 pb3 <= 500 -pb4 <= 500 pb4 <= 500 -pb5 <= 500 pb5 <= 500 Line flow constraints in the constraint list and not the “bounds” list, i.e., it does not provide dual variables for inequalities in the “bounds” list. If the exact same constraints are imposed both places, CPLEX will not provide a dual variable.

If you do not explicitly define a bound on a variable, then CPLEX applies bounds of 0 to ∞, and so if you want negativity for a

9

Solution

Z*=$2705.7557

display solution variables – Variable Name Solution Value pg1 0.500000

pg2 1.228700

pg4 0.450000

pb1 -0.015163

theta4 0.001516

pb2 0.095487

theta2 -0.009549

pb3 0.324188

theta3 -0.041968

pb4 0.434838

pb5 0.419675

All other variables in the range 1-12 are 0.

1 P B1 = -0.0152 4 P g1 =0.5pu P B2 =0.0955 P B5 =0.4197 P B4 = 0.4348 P g4 =0.45pu P g2 =1.2287pu 2 P d2 =1pu P B3 =0.3242 3 P d3 =1.1787pu There are 11 variables listed as non-0. So which variable is 0? Why?

10

display solution dual Constraint Name Dual Price c7 1211.000000

c8 1211.000000

c9 1211.000000

c10 1211.000000

c11 -96.000000

c15 -43.000000

All other dual prices in the range 1-26 are 0.

Solution

($/per unit-hr)

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 0.0000

0.0000

0.0000

0.0000

0.0000

1211.0

1211.0

1211.0

1211.0

Lower bounds

Variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 -96.0000

0 -43.0000

0 0 0 0 0

Upper bounds

variable

value

P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 0.0000

0.0000

0.0000 0.0000

0.0000

0.0000

0.0000

0.0000

The dual variables tell us how much the objective changes when the right-hand-side of the corresponding constraint increases by a unit (subject to qualifications on next slide). Since we are in “per unit”, and a “per-unit” is 100 MW, dividing the dual variables by 100 gives the • • • corresponding $/MW change in the objective function. So dual variables for c7-c10 are$12.11/MWhr  Increasing load by 1 MW at either of buses 1,2,3, or 4 increases objective by $12.11. This is set by the bus 2 generator, as it will respond to any load change.

c11 is -$0.96/MWhr  This constraint is –pg1<=-0.5. Increasing RHS from -0.5 to -0.49, equivalent to decreasing lower bound on pg1 from 50 to 49 MW, reduces objective by $0.96 .

c15 is -$0.43/MWhr  This constraint is –pg4 <= -0.45. Increasing RHS from -0.45 to -0.44, equivalent to decreasing lower bound on pg4 from 45 to 44 MW, reduces objective by $0.43.

11

Qualification to dual variable definition

From last slide: “The dual variables tell us how much the objective changes when the right-hand-side of the corresponding constraint increases by a unit (subject to qualifications…).” 

i

 

F

b i

*

This says that the λ i = ΔF * /Δb i only for incrementally small Δb i . In fact, it is more restrictive than that.

In an LP, λ i = ΔF * /Δb i holds only for Δb i such that within b i + Δb i (inclusive), no change in the active constraint set occurs.

• •

For example, if constraint i is active (inactive) at b i , and it becomes inactive (active) within b i + Δb i , then λ i = ΔF * /Δb i will not hold within b i + Δb i .

if constraint k is active (inactive) at b i , and it becomes inactive (active) within b i + Δb i , then λ i = ΔF * /Δb i will not hold within b i + Δb i .

Note: Be careful in HW#6, problem 2, parts 2-c (v) and 2-c (vi). 12

minimize 1307 pg1 + 1211 pg2 + 1254 pg4 subject to theta1=0 -pb1 + 10 theta1 - 10 theta4 = 0 -pb2 + 10 theta1 - 10 theta2 = 0 -pb3 + 10 theta2 - 10 theta3 = 0 -pb4 - 10 theta3 + 10 theta4 = 0 -pb5 + 10 theta1 - 10 theta3 = 0 pg1 - 30 theta1 + 10 theta2 + 10 theta3 + 10 theta4 = 0 pg2 + 10 theta1 - 20 theta2 + 10 theta3 = 1.01

10 theta1 + 10 theta2 - 30 theta3 + 10 theta4 = 1.1787

pg4 + 10 theta1 + 10 theta3 - 20 theta4 = 0 -pg1 <= -0.5

pg1 <= 2 -pg2 <= -0.375

pg2 <= 1.5

-pg4<= -0.45

pg4 <= 1.8

-pb1 <= 500 pb1 <= 500 -pb2 <= 500 pb2 <= 500 -pb3 <= 500 pb3 <= 500 -pb4 <= 500 pb4 <= 500 -pb5 <= 500 pb5 <= 500 Bounds -500 <= pb1 <= 500 -500 <= pb2 <= 500 -500 <= pb3 <= 500 -500 <= pb4 <= 500 -500 <= pb5 <= 500 -3.14159 <= theta1 <= 3.14159

-3.14159 <= theta2 <= 3.14159

-3.14159 <= theta3 <= 3.14159

-3.14159 <= theta4 <= 3.14159

end

Case 1

Change Pd2 from 1 to 1.01 (a 1 MW increase) and resolve.

Solution provides: Z*=$2717.8657

Previous solution was: Z*=$2705.7557

2717.8657

-2705.7557

--------------- 12.11

13

Case 2a

Take a look at solution to original case:

P g2 =1.2287pu P g1 =0.5pu 1 P B1 = -0.0152 P B2 =0.0955 P B5 =0.4197 2 P d2 =1pu P B3 =0.3242 4 P B4 = 0.4348 3 P g4 =0.45pu P d3 =1.1787pu

Let’s constrain Pb3 to 0.3. This means that upper and lower bounds of Pb3 should be changed from (-500,500) to (-0.3,0.3). We will, however, only do this in the “constraint” section.

Having it in the “constraint” section will ensure when it binds, we will get a dual variable.

But we will keep the (-500,500) in the “bounds” section in order to prevent CPLEX from imposing non-negativity.

So the new CPLEX code is as follows:

14

minimize 1307 pg1 + 1211 pg2 + 1254 pg4 subject to theta1=0 -pb1 + 10 theta1 - 10 theta4 = 0 -pb2 + 10 theta1 - 10 theta2 = 0 -pb3 + 10 theta2 - 10 theta3 = 0 -pb4 - 10 theta3 + 10 theta4 = 0 -pb5 + 10 theta1 - 10 theta3 = 0 pg1 - 30 theta1 + 10 theta2 + 10 theta3 + 10 theta4 = 0 pg2 + 10 theta1 - 20 theta2 + 10 theta3 = 1.0

10 theta1 + 10 theta2 - 30 theta3 + 10 theta4 = 1.1787

pg4 + 10 theta1 + 10 theta3 - 20 theta4 = 0 -pg1 <= -0.5

pg1 <= 2 -pg2 <= -0.375

pg2 <= 1.5

-pg4<= -0.45

pg4 <= 1.8

Change Pb3 constraint from (-500,500) to (-0.3, 0.3) and

-pb1 <= 500 pb1 <= 500 -pb2 <= 500 pb2 <= 500 -pb3 <= 0.3

resolve.

pb3 <= 0.3

-pb4 <= 500 pb4 <= 500 -pb5 <= 500 pb5 <= 500 Bounds -500 <= pb1 <= 500 -500 <= pb2 <= 500 -500 <= pb3 <= 500 -500 <= pb4 <= 500 -500 <= pb5 <= 500 -3.14159 <= theta1 <= 3.14159

-3.14159 <= theta2 <= 3.14159

-3.14159 <= theta3 <= 3.14159

-3.14159 <= theta4 <= 3.14159

end

Case 2a

Solution provides: Z*=$2707.8358

Previous solution was: Z*=$2705.7557

15

Z*=$2707.8358

display solution variables – Variable Name Solution Value pg1 0.500000

pg2 1.180325

pg4 0.498375

pb1 -0.039350

theta4 0.003935

pb2 0.119675

theta2 -0.011968

pb3 0.300000

theta3 -0.041968

pb4 0.459025

pb5 0.419675

All other variables in the range 1-12 are 0.

1 P B1 = -0.0152 4 1 • • In comparing the two solutions, we observe flow on branch 3 is constrained to 0.3

P B1 = -0.0393 flows all over the network have changed.

• gen levels at buses 2 and 4 have changed.

Activation of a transmission constraint has 4 changed the dispatch. This will affect the energy prices!

Case 2a

Old solution

P g1 =0.5pu P g2 =1.2287pu 2 P B2 =0.0955 P B5 =0.4197 P d2 =1pu P B3 =0.3242 P B4 = 0.4348 3 P g4 =0.45pu

New solution

P g1 =0.5pu P d3 =1.1787pu P g2 =1.1803pu 2 P B2 =0.1197 P B5 =0.4197 P d2 =1pu P B3 =0.3 P B4 = 0.4590 P g4 =0.4984pu 3 P d3 =1.1787pu 16

display solution dual Constraint Name Dual Price c4 -86.000000

c7 1243.250000

c8 1211.000000

c9 1264.750000

c10 1254.000000

c11 -63.750000

c22 -86.000000

All other dual prices in the range 1-26 are 0.

Equality constraints Equation

P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 Value 0.0000

0.0000

-86.000

0.0000

0.0000

1243.25

1211.00

1264.75

1254.00

($/per unit-hr)

Lower bounds

Case 2a

Upper bounds

Variable P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 value -63.750

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

variable P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 value 0.0000

0.0000

0.0000

0.0000

0.0000

-86.000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Generation limits: We still see a non-0 dual variable (DV) on P g1 P g4 lower limit has become 0, reflecting that P g4 lower limit, but the DV on the had to increase and come off of its lower limit to compensate for the decrease in P g2 necessary to redispatch around the P B3 constraint.

Branch limits: The DV on the P B3 upper bound is -86, and after dividing by 100 to change from per-unit to MW, it is -0.86 $/MW-hr, reflecting the increase in objective function that can be obtained from increasing the P B3 Recall the original case had P B3 branch limit by 1 MW (from 0.30 per-unit to 0.31 per-unit).

flow at 0.324188. If we increase the P B3 branch limit in Case 2a to 0.324188, then we should see the objective increase by (.324188-.3)*-86=-2.0802. Our Case 2a objective is $2707.8358; objective of original problem is $2705.7557, reduced by $2.0801.

17

display solution dual Constraint Name Dual Price c4 -86.000000

c7 1243.250000

c8 1211.000000

c9 1264.750000

c10 1254.000000

c11 -63.750000

c22 -86.000000

All other dual prices in the range 1-26 are 0.

Equality constraints Equation

P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 Value 0.0000

0.0000

-86.000

0.0000

0.0000

1243.25

1211.00

1264.75

1254.00

($/per unit-hr)

Lower bounds

Case 2a

Upper bounds

Variable P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 value -63.750

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

variable P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 value 0.0000

0.0000

0.0000

0.0000

0.0000

-86.000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Nodal prices: The DVs on the equality constraints corresponding to the 4 nodes are the nodal prices. Without transmission constraints, these prices were all the same, at 12.11 $/MW-hr, a price set entirely by the generator at bus 2 since it was the bus 2 generator that responded to any load change. But now they are all different, with only bus 2 price at 12.11 $/MW-hr. This difference reflects that, because of the transmission constraint, a load increase at one bus will incur a different cost than a load increase at another bus.

18

Case 2b

Let’s increase the load at the highest price bus, bus #3, from 1.1787 to 1.1887 per unit, an increase of 1 MW. Resulting dispatch/flows are below, together with the Case 2a dispatch/flows. Case 2a flows/dispatch Case 2b flows/dispatch (P B3 constrained, P d2 =1.1787) (P B3 constrained, P d2 =1.1887) P g2 =1.1778pu P g2 =1.1803pu P g1 =0.5pu P g1 =0.5pu 1 2 1 2 P B3 =0.3 P B1 = -0.0443 P B2 =0.1222 P B5 =0.4222 P d2 =1pu P B3 =0.3 P B1 = -0.0393 P B2 =0.1197 P B5 =0.4197 P d2 =1pu 4 P B4 = 0.4590 3 4 P B4 = 0.4665 3 P g4 =0.5109pu P d3 =1.1887pu P g4 =0.4984pu P d3 =1.1787pu To supply an additional MW at bus 3, the generation levels of 2 different units had to be modified. Specifically, P g2 was decreased from 1.1803 to 1.1778, a decrease of 0.0025 pu (0.25 MW). P g4 was increased from 0.4984 pu to 0.5109 pu, an increase of 0.0125 pu (1.25 MW). Thus, P bus 2.

g4 was increased enough to supply the increased load at bus 3 and the decreased gen at Question: Why did we not just increase Unit 2 or increase Unit 4 by 1 MW?

19

1 P B1 = -0.0393 4 Case 2a flows/dispatch (P B3 constrained, P d2 =1.1787) P g2 =1.1803pu P g1 =0.5pu

Case 2b

Case 2b flows/dispatch (P B3 constrained, P d2 =1.1887) P g2 =1.1778pu P g1 =0.5pu 1 2 2 P B2 =0.1197 P B5 =0.4197 P B3 =0.3 P B1 = -0.0443 P B2 =0.1222 P B5 =0.4222 P d2 =1pu P B3 =0.3 P d2 =1pu P B4 = 0.4590 3 4 P B4 = 0.4665 P g4 =0.5109pu P d3 =1.1887pu P g4 =0.4984pu P d3 =1.1787pu Answer: Because the resulting flow on branch 3 would exceed its capacity!!!

3 In fact, it is not possible to supply additional load at bus 3 with only a single unit increase. We will always have to compensate for the load AND redispatch to compensate for the additional flow on the branch 3. As a result, the nodal price at bus 3 is a function of the generation costs at those buses that are used in the particular redispatch that achieves the minimum cost.

20

1 P B1 = -0.0393 4 Case 2a flows/dispatch (P B3 constrained, P d2 =1.1787) P g2 =1.1803pu P g1 =0.5pu

Case 2b

Case 2b flows/dispatch (P B3 constrained, P d2 =1.1887) P g2 =1.1778pu P g1 =0.5pu 1 2 2 P B2 =0.1197 P B5 =0.4197 P B3 =0.3 P B1 = -0.0443 P B2 =0.1222 P B5 =0.4222 P d2 =1pu P B3 =0.3 P d2 =1pu P B4 = 0.4590 3 4 P B4 = 0.4665 P g4 =0.5109pu P d3 =1.1887pu P g4 =0.4984pu P d3 =1.1787pu Answer: Because the resulting flow on branch 3 would exceed its capacity!!!

3 In fact, it is not possible to supply additional load at bus 3 with only a single unit increase. We will always have to compensate for the load AND redispatch to compensate for the additional flow on the branch 3. As a result, the nodal price at bus 3 is a function of the generation costs at those buses that are used in the particular redispatch that achieves the minimum cost.

21

Demand bidding

Dr. Tesfatsion has told you that a market is efficient if traders extract the maximum total net surplus (yellow area in below curve).

So we want to solve this problem:

max

P k

,

P j k

v k

(  

LoadBuses P

k

) 

j

 

C k

GenBuses

( 

P j

)

Subject to constraints…..

where v

k

and C

k

represent the bids and offers of the load serving entities (LSEs) and generation owners, respectively. :

22

Demand bidding

Dr. Tesfatsion has told you that a market is efficient if traders extract the maximum total net surplus (yellow area in below curve).

So we want to solve this problem:

max

P k

,

P j k

v k

(  

LoadBuses P

k

) 

j

 

C k

GenBuses

( 

P j

)

Subject to constraints…..

where v

k

and C

k

represent the bids & offers of the load serving entities (LSEs) and generation owners, respectively. Equivalently, we may use the following objective function in above problem:

min

P k

,

P j

  

j

 

C

k

GenBuses

 (

P

j

)  

v

(

k

k

LoadBuses

P

k

)    23

Demand bidding

Linearizing both objective functions results in the following problem:

min

k

 

generator

_

s gk P gk buses

 

k

 

load

_

s buses

dk P dk

subject to

P

B

' 

P B

 (

D

A

)   

P B

, max 

P B

P B

, max 0  0 

P

gk

P

dk

 

P

gk

, max , 

k

 

gen

_

buses

P

dk

, max , 

k

 

load

_

buses

P k

P gk

P dk

,

k

1 ,...

N

24

,

Example with demand bidding

P g2 P g1 1 2 y 14 =-j10 y 13 =-j10 y 12 =-j10 P d2 =1pu y 23 =-j10 y 34 =-j10 4 3

K

1 (

P g

1 )

K

2 (

P g

2 )  

s

1

P g

1

s

2

P g

2

K

4 (

P g

4 ) 

s

4

P g

4 s 1 =13.07 $/MWhr s 2 =12.11 $/MWhr s 4 =12.54 $/MWhr s d2 =13.00 $/MWhr s d3 =12.00 $/MWhr P g4 .

50 

P g

1  2 .

375  .

45 

P P g

2

g

4  1 .

50  1 .

8 P d3 =1.1787pu

v

2 (

P d

2 )

v

3 (

P d

3 ) 

s d

2

P d

2 

s d

3

P d

3 s 1 =1307 $/puMWhr s 2 =1211 $/puMWhr s 4 =1254 $/puMWhr s d2 =1300 $/puMWhr s d3 =1200 $/puMWhr

1.00

Objective function:

d2 d3

<2.00

<3.00

Z

 1307

P

g

1  1300

P

d

2  1211

P

g

2  1254

P

g

4  1200

P

d

3 25

Example with demand bidding

DC power flow equality constraints:

, 

P

B

'   0

From last time:

     

P P

2

P

3

P

4 1            30 10     10 10  10 20  10 0  10  10 30  10   10  0   10 20             1 2 3 4      

where Here P g3 , P d1 , P d4 are fixed at 0,0,0, so the above become:

P P P

3

P

1 2 4    

P P P

g g

P

g

3

g

1 2 4  

P

d

P

d

1 2 

P

d

3 

P

d

4

Putting the equations into CPLEX constraint form (variables on left, constant on RHS):

P g

1

P g

2  30  1 

P d

2   10  2  10  1  10  3  20  2  10  4  10  3 

P g P d

3 4    10  1  10  1   10 10  3  2   30  3 20  4  10  4

P g

1

P g

2  30  1 

P d

2  10  2  10  1  10  3  20  2  10  4  10  3   0 0 

P d

3

P g

4   10  1 10  1   10  2 10  3   30  3 20  4   10  4 0  0 2 6

Example with demand bidding

 ,

Line flow equality constraints:

P B

 (

D

A

)    0

This is exactly the same as in the previous examples.

From last time:

D

  10       0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10       

A

 

1

 

1

 

0

  0 1

0 1

1 0 0

0 0

 1  1  1

0

0 1 0

1

       Note we need “full” node arc incidence matrix because we have full DC power flow equations.

(

D

A

)           1 2 3 4        10       0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 10          

1 1

   

0

0 1

0 1

1 0 0

0 0

 1  1  1

0

0 1 0

1

                1 2 3 4        10   10     0 0 10 0  10 10 0 0 0 0  10  10  10  10  0 0 10 0                1 2 3 4               10  1 10  1 10  10  10  1 2 3      10  10  10  10  3 4 2 10  3 4        

P b

 (

D

A

)           1 2 3 4       0         

P b

1

P b

2

P b

3

P b

4

P b

5                 10  1 10  1 10  10  10  1 2 3      10  4 10  2 10 10  10   3 3 4                 0   0   0   0 0     

P b

1

P b

2

P b

3

P b

4

P b

5  10  1  10  1  10  2  10  3  10  1  10  4  10  2    10  3 10  4 10  3      0 0 0 0 0 2 7

Example with demand bidding

,

minimize:

Z

 1307

P

g

1  1211

P

g

2  1254

P

g

4  1300

P

d

2  1200

P

d

3

P g

1

P g

2   30  1

P d

2   10  2 10  1  

P d

3

P g

4   10  1 10  1   10  2 10  3  10   20  2 3  10  4  10  3    30  3 20  4   0 10  4 0 0  0     

P b

1

P b

2

P b

3

P b

4

P b

5  10  1  10  1  10  2  10  3  10  1  10  4  10  2    10  3 10  4 10  3      0 0 0 0 0 

P B

 

P

B

(

D

 ' 

A

)  0    0 …and the inequality constraints  0

P B

, max 

P

gk

 

P B

P

gk

, max 0 

P

dk

 ,  

k

P B

 , max 

gen

_

P

dk

, max , 

k

 

load buses

 _

buses

 2 8

minimize 1307 pg1 + 1211 pg2 + 1254 pg4 - 1300 pd2 - 1200 pd3 subject to theta1=0 Objective

CPLEX Code

I can arbitrarily set one angle to whatever I like (within bounds), since it is the angle differences that are important. -pb1 + 10 theta1 - 10 theta4 = 0 -pb2 + 10 theta1 - 10 theta2 = 0 Line flows -pb3 + 10 theta2 - 10 theta3 = 0 -pb4 - 10 theta3 + 10 theta4 = 0 -pb5 + 10 theta1 - 10 theta3 = 0 pg1 - 30 theta1 + 10 theta2 + 10 theta3 + 10 theta4 = 0 pg2 -pd2 + 10 theta1 - 20 theta2 + 10 theta3 = 0 -pd3 + 10 theta1 + 10 theta2 - 30 theta3 + 10 theta4 = 0 DC power flow equations pg4 + 10 theta1 + 10 theta3 - 20 theta4 = 0 -pg1 <= -0.5

pg1 <= 2 -pg2 <= -0.375

pg2 <= 1.5

-pg4<= -0.45

Generation offer constraints pg4 <= 1.8

-pd2 <= -1 CPLEX only provides dual variables for equalities and inequalities that appear pd2 <= 2 -pd3 <= -2 pd3 <= 3 -pb1 <= 500 pb1 <= 500 -pb2 <= 500 pb2 <= 500 -pb3 <= 500 pb3 <= 500 -pb4 <= 500 pb4 <= 500 -pb5 <= 500 pb5 <= 500 Bounds -500 <= pb1 <= 500 -500 <= pb2 <= 500 Load bid constraints -500 <= pb3 <= 500 -500 <= pb4 <= 500 -500 <= pb5 <= 500 -3.14159 <= theta1 <= 3.14159

-3.14159 <= theta2 <= 3.14159

-3.14159 <= theta3 <= 3.14159

-3.14159 <= theta4 <= 3.14159

end Line flow constraints in the constraint list and not the “bounds” list, i.e., it does not provide dual variables for inequalities in the “bounds” list. If the exact same constraints are imposed both places, CPLEX will not provide a dual variable.

If you do not explicitly define a bound on a variable, then CPLEX applies bounds of 0 to ∞, and so if you want negativity for a variable, you must impose that here.

2 9

Solution Z*=-$12.80

This is negative of the social surplus .

So the social surplus (Total Utility of Load less Total Cost of Supply) is $12.80. Not too much! This is because the consumers are valuing the energy at just a little above cost.

If we change the utility function coefficients to 1500 and 1400, from 1300 and 1200, respectively, social surplus changes to $904/hr. If we change utility function coefficients to 1000 and 900, respectively, social surplus would be -$924/hr, indicating cost of supply is more than utility of consumption, and the only reason any power is being consumed is the lower bound constraints we have placed on generation and demand.

30

Solution

Z*=-$12.80

display solution variables – Variable Name Solution Value pg1 0.500000

pg2 1.500000

pg4 1.800000

pd2 1.800000

pd3 2.000000

pb1 -0.587500

theta4 0.058750

pb2 0.462500

theta2 -0.046250

pb3 0.162500

theta3 -0.062500

pb4 1.212500

pb5 0.625000

All other variables in the range 1-14 are 0.

1 P B1 = -0.5875 4 P g1 =0.5pu P B2 =0.4625 P B5 =0.625 P g4 =1.8pu P B4 = 1.2125 P g2 =1.5pu 2 P d2 =1.8pu P B3 =0.1625 3 P d3 =2.0pu 31

display solution dual -

Solution

Equality constraints

Constraint Name Dual Price c7 1300.000000

c8 1300.000000

c9 1300.000000

c10 1300.000000

Equation

P B1 P B2 P B3 Value -0.0000

-0.0000

0.0000

c11 -7.000000

c14 -89.000000

c16 -46.000000

c19 -100.000000

All other dual prices in the P B4 P B5 P 1 P 2 P 3 P 4 0.0000

-0.0000

1300.0

1300.0

1300.0

1300.0

range 1-30 are 0.

($/per unit-hr)

Lower bounds

Variable P g1 P g2 value -7.0000

0.0000

0.0000

P g4 P d2 P d3 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

-100.00

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Upper bounds

variable P g1 P g2

value

0.0000

-89.00

-46.00

P g4 P d2 P d2 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

• • c7-c10 are$13.00/MWhr  Increasing load by 1 MW at any bus 1,2,3, or 4 increases objective by $13.00. This is set by the bus 2 load, P d2 , as it will respond to any MW change.

There is only one unconstrained decision variable, P d2 , and it is the variable that is setting the nodal price ($13.00/MWhr). We say that P d2 is a “regulating” or “marginal” unit.

32

Solution

s g2 =1211 $/pu-hr s g4 =1254 $/pu-hr s g1 =1307 $/pu-hr s d2 =1300 $/pu-hr s d3 =1200 $/pu-hr .

50 

P g

1  2 .

375  .

45 

P P g

2

g

4  1 .

50  1 .

8

1.00

d2 d3

<2.00

<3.00

Think of algorithm like this:

1. Initialize: Set gen and load at lower limits. At least one variable must come off its lower bound to provide power balance. Sum of load lower bounds is 3; Sum of gen lower bounds is 1.325, one or more of the gens • • • • must come off their lower bounds by 1.675 pu in order to provide a feasible solution. This gen will be the one with the least offer. P g2 is least expensive and it comes off its lower bound first but can only supply up to 1.125 pu additional generation. We need 1.675 pu.

So P g2 gets pushed to its limit.

P g4 as next least-offer gen then comes off its lower limit of .45 and provides an additional amount equal to 1.675-1.125=.55, so that P g4 is now generating at .45+.55=1.

At this point, the total generation is .375+1.125+.45+.55+.5=3; solution is feasible.

P g2 P g4 P g1 So P g4 =1 and has 0.8 left at 12.54, P d2 =1, with 1.0 left at 13.00. Because 13.00>12.54, there is still surplus to be obtained!

33

s g2 =1211 $/pu-hr s g4 =1254 $/pu-hr s g1 =1307 $/pu-hr

Solution

s d2 =1300 $/pu-hr s d3 =1200 $/pu-hr .

50 

P g

1  2 .

375  .

45 

P P g

2

g

4  1 .

50  1 .

8

1.00

d2

<2.00

2.00

d3

<3.00

2. Maximally increase surplus: Then it takes 1 MW (.01 pu) of supply and 1 MW (.01 pu) of demand from the gen/load pair not at upper bounds which provides the most positive surplus per MW. This will be the gen with the least cost and the load with the greatest utility, as long as surplus is positive. Repeat this until you hit limit (then switch) or surplus goes negative (then stop).

• G4 goes to 1.8 and D2 goes to 1.8.

• Now G4 is at limit and so we switch to G1 at 13.07, while D2 is at 13.00.

• If we take a MW from this pair, the surplus will decrease!

• STOP!

34

minimize 1307 pg1 + 1211 pg2 + 1254 pg4 - 1300 pd2 - 1200 pd3 subject to theta1=0 -pb1 + 10 theta1 - 10 theta4 = 0 -pb2 + 10 theta1 - 10 theta2 = 0 -pb3 + 10 theta2 - 10 theta3 = 0 -pb4 - 10 theta3 + 10 theta4 = 0 -pb5 + 10 theta1 - 10 theta3 = 0 pg1 - 30 theta1 + 10 theta2 + 10 theta3 + 10 theta4 = 0 pg2 -pd2 + 10 theta1 - 20 theta2 + 10 theta3 = 0 -pd3 + 10 theta1 + 10 theta2 - 30 theta3 + 10 theta4 = 0 pg4 + 10 theta1 + 10 theta3 - 20 theta4 = 0 -pg1 <= -0.5

pg1 <= 2 -pg2 <= -0.375

pg2 <= 1.5

-pg4<= -0.45

pg4 <= 1.8

-pd2 <= -1 pd2 <= 2 -pd3 <= -2 pd3 <= 3 -pb1 <= 500 pb1 <= 500 -pb2 <= 500 pb2 <= 500 -pb3 <= 500 pb3 <= 0.16

-pb4 <= 0.16

pb4 <= 500 -pb5 <= 500 pb5 <= 500 Bounds -500 <= pb1 <= 500 -500 <= pb2 <= 500 -500 <= pb3 <= 500 -500 <= pb4 <= 500 -500 <= pb5 <= 500 -3.14159 <= theta1 <= 3.14159

-3.14159 <= theta2 <= 3.14159

-3.14159 <= theta3 <= 3.14159

-3.14159 <= theta4 <= 3.14159

end

Demand bidding with constrained transmission

Previous solution, unconstrained transmission had P b3 =0.1625, so we constrain P b3 to 0.16.

Solution

Z*=-$12.7533

display solution variables Variable Name Solution Value pg1 0.506667

pg2 1.500000

pg4 1.800000

pd2 1.806667

pd3 2.000000

pb1 -0.586667

theta4 0.058667

pb2 0.466667

theta2 -0.046667

pb3 0.160000

theta3 -0.062667

pb4 1.213333

pb5 0.626667

All other variables in the range 1-14 are 0.

1 P B1 = -0.5867 4 P g1 =0.5067

pu P B2 =0.4667 P B5 =0.6267 P g4 =1.8pu P B4 = 1.2133 P g2 =1.5pu P d2 =1.8067pu 2 P B3 =0.16 P d3 =2.0pu 3 36

Solution

display solution dual Constraint Name Dual Price c1 -0.000000

c4 -18.666667

c7 1307.000000

c8 1300.000000

c9 1311.666667

c10 1309.333333

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 -0.0000

0.0000

-18.6667

0.0000

0.0000

1307.0

c14 -89.000000

c16 -55.333333

c19 -111.666667

P 2 P 3 P 4 1300.0

1311.667

1309.333

c26 -18.666667

All other dual prices in the range 1-30 are 0.

($/per unit-hr)

Lower bounds

Variable value P g1 P g2 P g4 P d2 P d3 P B1 0.0000

0.0000

0.0000

0.0000

- 111.667

0.0000

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Upper bounds

variable

value

P g1 P g2 P g4 P d2 P d3 P B1 0.0000

-89.0000

-55.3333

0.0000

0.0000

0.0000

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

-18.6667

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

37

Demand bidding w/ constrained transmission

Previous solution, unconstrained transmission, New solution, with constrained transmission.

so we constrain P b3 to 0.16.

P g2 =1.5pu P g2 =1.5pu P g1 =0.5067

pu P g1 =0.5pu 1 2 1 2 P B2 =0.4667 P B2 =0.4625 P B3 =0.16 P B1 = -0.5875 P B5 =0.6250 P d2 =1.8pu P B3 =0.1625 P B1 = -0.5867 P B5 =0.6250 P d2 =1.8067pu P B4 = 1.2125 P B4 = 1.2133 4 3 4 3 P g4 =1.8pu

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 -0.0000

0.0000

0.0187

0.0000

0.0000

1307.0

P 2 P 3 P 4 1300.0

1311.7

1309.3

P d3 =2.0pu

Lower bounds

Variable value P g1 P g2 P g4 P d2 P d3 P B1 0.0000

0.0000

0.0000

0.0000

111.6667

0.0000

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Upper bounds

variable

value

P g1 P g2 P g4 P d2 P d3 P B1 0.0000

-89.0000

-55.3333

0.0000

0.0000

0.0000

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

-18.6667

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

P g4 =1.8pu P d3 =2.0pu Observe! There are two regulating buses this time.

RULE: For n binding constraints, there are at least n+1 marginal (regulating) buses.

The LMP at a marginal bus is always equal to its offer or bid.

s g2 =1211 $/pu-hr s d2 =1300 $/pu-hr s g4 =1254 $/pu-hr s d3 =1200 $/pu-hr s g1 =1307 $/pu-hr 38

Settlement without congestion (fixed demand)

Original solution, ∞ transmission Objective function: Z*=2705.8 $/hr.

1 P B1 = -0.0152 4 P g1 =0.5pu P B2 =0.0955 P B5 =0.4197 P g4 =0.45pu P B4 = 0.4348 P d2 =1pu P d3 =1.1787pu Amount paid to generators: P g2 =1.2287pu 2 P B3 =0.3242 3

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 0.0000

0.0000

0.0000

0.0000

0.0000

1211.0

1211.0

1211.0

1211.0

Lower bounds

Variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 96.0000

0 43.0000

0 0 0 0 0 0 0 0 0

Payment Payment g

2

Payment g g

1 4   

P g

1

P g

2  

LMP

1

LMP

2   50

MW

122 .

87  12 .

11 $

MW

 / 12 .

MWhr

11 $ /  605

MWhr

.

 50 $ / 1487

hr

.

96 $

P g

4 

LMP

4  45

MW

 12 .

11 $ /

MWhr

 544 .

95 $ /

hr

/

hr

Upper bounds

variable

value

P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000 0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Total payments to gens: 605.50+1487.96+544.95

=2638.41$/hr.

Amount paid by loads:

Payment d

2

Payment d

3  

P d P d

3 2  

LMP LMP

2 2   100

MW

 117 .

87

MW

12 .

 11 $ 12 .

/

MWhr

11 $ / 

MWhr

1211 .

00 $  1427 .

/ 41

hr

$ /

hr

Total payments by loads: 1211.00+1427.41

=2638.41$/hr,  Market settles with total payment to gens equaling total payment to loads.

Question: Why does total payments to gens (or total payments by loads) not equal Z*=2705.8$/hr?

39

Settlement without congestion (fixed demand)

Question: Why does total payments to gens (or total payments by loads) not equal Z*=2705.8$/hr?

Answer: We optimize on the offers. We settle at LMPs. Offers: s g2 =1211 $/pu-hr s g4 =1254 $/pu-hr s g1 =1307 $/pu-hr To illustrate, let’s see what happens if we settle at offers

Payment g

1 

P g

1 

s

1  50

MW

 13 .

07 $ /

MWhr

 653 .

50 $ /

hr Payment g

2

Payment g

4  

P g

2

P g

4  

s

2

s

4   122 .

87

MW

45

MW

 12  12 .

.

54 $ 11 $ / /

MWhr MWhr

  1487 564 .

30 $ .

/ 96 $

hr

/

hr

Total payments to gens will be 653.50+1487.96+564.30

=2705.76$/hr,

So why do we settle at the LMPs rather than the offers? According to the paper I placed on the web page:

J. Yan, G. Stern, P. Luh, and F. Zhao, “Payment versus bid cost,” IEEE Power and Energy Magazine, March/April 2008.

“The primary reason for this conclusion is that under the pay-as-bid settlement scheme, market participants would bid substantially higher than their marginal costs (since there is no incentive for participants to bid their operating cost) to try to increase their revenue and, thus, offset and very likely exceed the expected consumer payment reduction. As a result, currently all ISOs in the United States adopt the pay-at-MCP principle.” • A pay-as-bid settlement scheme incentivizes participants to bid high since the bid is what they will be paid if their bid is accepted. The disincentive to bidding high is that their bid • might not be accepted. A pay-at LMP settlement scheme provides no incentive to bid high. The disincentive to bid high because their bid might not be accepted remains.

Settlement with congestion (fixed demand)

1 P B1 = -0.0393 4 P g1 =0.5pu P B2 =0.1197 P B5 =0.4197 P B4 = 0.4590 P g4 =0.4984pu Z*=$2707.8358

P d2 =1pu P g2 =1.1803pu 2 P B3 =0.3 3 P d3 =1.1787pu

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 0.0000

0.0000

-86.000

0.0000

0.0000

1243.25

1211.00

1264.75

1254.00

Lower bounds

Variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 -63.750

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Amount paid to generators:

Payment g

1

Payment g

2

Payment g

4   

P P g g

1

P g

2 4  

LMP

1

LMP

2 

LMP

4    50

MW

118 49 .

.

03 84  12 .

MW MW

 432 $  12 .

12 .

/

MWhr

11 $ 54 $ / / 

MWhr MWhr

621   .

60 1429 624 .

$ .

/ 99

hr

34 $ $ / /

hr hr

Upper bounds

variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

-86.000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Total payments to gens: 621.60+1429.34+624.99

=2675.93$/hr.

Amount paid by loads:

Payment d Payment d

3 2  

P d P d

3 2  

LMP LMP

2 2   100

MW

 117 .

87

MW

12 .

11 $  12 .

/

MWhr

647 $ /  1211

MWhr

 .

00 $ 1490 .

/

hr

70 $ /

hr

Total payments by loads: 1211.00+1490.70

=2701.70$/hr,  Amount paid by loads exceeds that paid to the gens by $25.77. Why is this?

41

Settlement with congestion (fixed demand)

Why does amount paid by loads exceed that paid to the gens by $25.77?

Consider under the condition of no losses, the power balance equation:

j n

  1

P gj n

 

j

 1

P dj

Now what if there is no congestion and prices at all buses are the same at LMP, i.e., LMP j =LMP for all buses j=1,…,n. In this case:

LMP j n

  1

P gj

LMP j n

  1

P dj j n

  1

LMP j P gj

j n

  1

LMP j P dj

And we have just proved that for the case without congestion, when all LMPs are the same, the amount paid by loads equals the amount paid to the generators. But when all LMPs are not the same (when we have congestion), the above proof does not hold. In this case, we can show that (see notes):

CC

j M

  1 

j P bj

k

 

load LMP j

*

P dk

k

 

gen LMP k

*

P gk

 The load pays into the market an amount the exceeds the amount generators are paid by the congestion charges. These charges may be computed as the sum of products of line constraint dual variables and the RHS of the constraint. Let’s check that in the example we just did. 42

Settlement with congestion (fixed demand)

Recall that the amount paid by loads exceeds that paid to the gens by $25.77.

CC

j M

  1 

j P bj

  86 * .

016  25 .

8

Equality constraints Equation

Value P B1 P B2 P B3 P B4 P B5 P 1 P 2 P 3 P 4 0.0000

0.0000

-86.000

0.0000

0.0000

1243.25

1211.00

1264.75

1254.00

Lower bounds

Variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 -63.750

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Upper bounds

variable value P g1 P g2 P g4 P B1 P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

-86.000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

43

Settlement with congestion (w/demand bidding)

pg1 0.506667

Equality constraints Lower bounds Upper bounds pg2 1.500000

Equation

Value Variable value variable

value pg4 1.800000

pd2 1.806667

pd3 2.000000

pb1 -0.586667

theta4 0.058667

P B1 P B2 P B3 P B4 P B5 P 1 -0.0000

0.0000

0.0187

0.0000

0.0000

1307.0

P g1 P g2 P g4 P d2 P d3 P B1 0.0000

0.0000

0.0000

0.0000

111.6667

0.0000

P g1 P g2 P g4 P d2 P d3 P B1 0.0000

-89.0000

-55.3333

0.0000

0.0000

0.0000

pb2 0.466667

theta2 -0.046667

pb3 0.160000

theta3 -0.062667

pb4 1.213333

pb5 0.626667

Amount paid to generators: P 2 P 3 P 4 1300.0

1311.7

1309.3

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

P B2 P B3 P B4 P B5 θ 1 θ 2 θ 3 θ 4 0.0000

-18.6667

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

Payment g

1 

P g

1 

LMP

1  50 .

67

MW

 13 .

07 $

Payment g Payment g

2 4  

P g P g

2 4  

LMP

2

LMP

4   150

MW

180

MW

 13  .

13 00 $ .

09 $ / / /

MWhr MWhr MWhr

   662 2356 .

.

21 1950 .

00 $ 74 $ / $ /

hr

/

hr hr

Total payments to gens: 662.21+1950.00+2356.74

=4968.95$/hr.

Amount paid by loads:

Payment d

2 

Payment d

3

P d

 2 

P d

3

LMP

2 

LMP

 2 180 .

667  200

MW MW

  13 .

00 $ 13 .

12 $ / /

MWhr MWhr

  2348 .

67 $ / 2623 .

40 $ /

hr hr

Total payments by loads: 2348.67+2623.40

=4972.07$/hr,  Amount paid by loads exceeds that paid to the gens by $3.12.  Use dual variable from line flow constraint: 18.6667*.16=2.99

44

Summary

1. Congestion causes LMPs to vary from one bus to another.

2. “Marginal” or “regulating” buses are not at either limits.

3. There will always be at least n+1 regulating buses, where n is number of congested lines.

4. We optimize on the offers and bids but we settle at the LMPs.

5. If there is no congestion, the payments by the loads will equal the payments to the generators.

6. If there is congestion, the payments by the loads will exceed the payments to the generators by the congestion charges. 7. The congestion charges equal the sum over all congested lines of the product of each line’s dual variable and its line flow limit.

45