ece 5314: power system operation & control lecture 6: unit ... · fuel constraints (use it or...
TRANSCRIPT
ECE 5314: Power System Operation & Control
Lecture 6: Unit Commitment
Vassilis Kekatos
R1 A. J. Wood, B. F. Wollenberg, and G. B. Sheble, Power Generation, Operation, and Control,
Wiley, 2014, Chapters 3-4.
R2 A. Gomez-Exposito, A. J. Conejo, C. Canizares, Electric Energy Systems: Analysis and
Operation, Chapter 5.
Lecture 6 V. Kekatos 1
Motivation
Economic dispatch assumes all units to be online and ready to produce, but:
• ramping and must-stay-on/off constraints
• start-up/shut-down costs (cooling vs. banking)
• crew constraints (units that cannot be started together)
• spinning (coal) and offline (hydro, gas) reserves
• fuel constraints (use it or loose it)
• must-run status (due to voltage regulation or other functions)
Such constraints are accommodated by unit commitment problems
• bad news: non-convex, hard to solve
• good news: solved in advance (day-ahead)
Lecture 6 V. Kekatos 2
Static unit commitment
• Extend ED to include on/off scheduling of units
• Binary variable: ui = 1 if unit i is scheduled to be on; 0 otherwise
• If unit i is scheduled to be on, it has to produce at least Pmini
min{Pi,ui}i
N∑i=1
uiCi(Pi)
s.to
N∑i=1
Pi = D
uiPmini ≤ Pi ≤ uiPmax
i , ∀ i
ui ∈ {0, 1}, ∀ i
• For economic dispatch, all ui’s have already been decided
Lecture 6 V. Kekatos 3
An example
Two generators with quadratic costs Ci(Pi) = C0i + aiPi + bi2P 2i
C0i [$/h] ai [$/MWh] bi [$/(MW)2h] Pmini [MW] Pmax
i [MW]
G1 100 20 0.05 0 400
G2 200 25 0.10 0 300
Unit commitment for different loads D
Case D [MW] P1 [MW] P2 [MW] λ [$/MWh] Cost [$/h]
(1,0) 40 40 0 22 940
(0,1) 40 0 40 29 1,280
(1,1) 40 40 0 22 1,140
(1,0) 250 250 0 33 6,663
(0,1) 250 0 250 50 9,575
(1,1) 250 200 50 30 6,675
(1,0) 300 300 0 35 8,350
(0,1) 300 0 300 55 12,200
(1,1) 300 233 67 32 8,217
Lecture 6 V. Kekatos 4
Avoiding bilinear products
• MILPs are the ‘easiest’ mixed-integer programs
• To remain within MILP class, need to avoid products of variables
• Generation capacity constraints
uiPmini ≤ Pi ≤ uiPmax
i vs. uiPmini ≤ uiPi ≤ uiPmax
i
• Generation cost uiCi(Pi) for Ci(Pi) = C0i + aiPi + bi2P 2i
uiCo,i + aiPi +bi2P 2i vs. uiCo,i + aiuiPi +
bi2uiP
2i
Lecture 6 V. Kekatos 5
Multi-period unit commitment
N generation units over T control periods (24 hours of a day)
min{P t
i ,uti,s
ti}i,t
T∑t=1
N∑i=1
utiCti (P
ti ) + sti
s.to
N∑i=1
P ti = Dt, ∀ t
utiPmini ≤ P ti ≤ utiPmax
i , ∀ i, t
uti ∈ {0, 1}, ∀ i, t ←− integral (binary) constraint
sti ≥ si(uti − ut−1i ), ∀ i, t ←− startup cost si
sti ≥ 0, ∀ i, t ←− startup cost variable
Decisions are coupled across time through the startup cost
What if I replace uti ∈ {0, 1} with uti ∈ [0, 1] for all i, t?
Lecture 6 V. Kekatos 6
More unit commitment constraints
Additional constraints coupling decisions across time
• Ramp up constraint: P ti − P t−1i ≤ Rup
i
• Ramp down constraint: P t−1i − P ti ≤ Rdown
i
• Spinning reserves:N∑i=1
utiPmaxi ≥ D + Preserve
• Must-stay-on for Li periods:
uti − ut−1i ≤ uτi , τ = t+ 1, . . . ,min{t+ Li − 1, T}
• Must-stay-off for `i periods:
ut−1i − uti ≤ 1− uτi , τ = t+ 1, . . . ,min{t+ `i − 1, T}
Lecture 6 V. Kekatos 7
Mixed-Integer (Non-)Linear Programs
Optimization problems with continuous and integer/binary variables
Brute-force method should solve 2NT EDs!
Even MILPs are NP-hard in general! (sometimes MINLPs linearized to MILPs)
Common solution approaches:
1. Dynamic programming [Bell, 1950]
2. Branch and bound algorithms [Land & Doig, 1960]
3. Lagrangian relaxation [Muckstadt & Koenig, 1977; Bertsekas, 1983]
4. Bender’s decomposition [Bender, 1962]
Lecture 6 V. Kekatos 8
Branch and bound method
Smart way to enumerate possible solutions; widely used in discrete optimization
1. Find lower and upper bounds (`, u) on f∗
2. Problem with all binary constraints relaxed to box cons. added in queue
3. Solve the next problem in the queue to get (x, f)
4. If x is binary and f < u, UPDATE x← x and u← f
5. If x is non-binary, then
5.1 If ` < f ≤ u, thenBRANCH: pick a variable with non-binary value xi and add two problems in
the queue, one with constraint xi = 0 and the other with xi = 1
5.2 If f > u (including infeasibility with f =∞), then
CUT this branch since the solution cannot be improved
6. If queue is empty, output minimizer x; else go to Step 3.
There exists variations where ` progressively increasesLecture 6 V. Kekatos 9
Example on branch and bound method
min{Pi,ui}2i=1
2∑i=1
uiC0i + aiPi + bi2P 2i
s.to P1 + P2 = 300
0 ≤ Pi ≤ uiPmaxi , i = 1, 2
ui ∈ {0, 1}, i = 1, 2
Problem P1 P2 u1 u2 f ` u x
u1, u2 ∈ [0, 1] 236.1 63.9 0.59 0.21 8,019 8,019 +∞ –
u1 = 0, u2 ∈ [0, 1] 0 300 0 1 12,200 8,019 12,200 store
u1 = 1, u2 ∈ [0, 1] 237.8 62.2 1 0.21 8,059 8,059 12,200 branch
u1 = 1, u2 = 0 300 0 1 0 8,350 8,059 8,350 store
u1 = 1, u2 = 1 233 67 1 1 8,217 8,059 8,217 store
Lecture 6 V. Kekatos 10
Dynamic programming method
Multi-stage problems (continuous/discrete) with a recursive structure
• Stages: indexed by n = 1, . . . , N
• States: xn (discrete or continuous)
• Decision: un ∈ Un(xn) (actions, controls, opt. variables)
• Dynamic system: xn+1 = fn(xn, un) for n = 1, . . . , N
• Per-stage cost: cn(xn, un) for n = 1, . . . , N , and final cost cN+1(xN+1)
Lecture 6 V. Kekatos 11
Problems solved with dynamic programming
Given state recursion, per-state costs and constraints, minimize the total cost
J∗(x1) = min{un}
N∑n=1
cn(xn, un) + cN+1(xN+1)
s.to xn+1 = fn(xn, un), ∀n (dynamic system)
un ∈ Un(xn), ∀n (control options)
DP widely used in a variety of applications:
• optimal (stochastic) control
• financial applications
• Kalman filter and hidden Markov models (HMMs)
• graph theory and networking problems
• wireless communications (Viterbi algorithm)
Lecture 6 V. Kekatos 12
Optimality principle
Solving the tail problem after stage k for a state value xk is optimal regardless
how you reached xk
J∗k (xk) = min{uk}Nk=1
N∑n=k
cn(xn, un) + cN+1(xN+1)
s.to xn+1 = fn(xn, un), ∀n = k, . . . , N (dynamic system)
un ∈ Un(xn), ∀n = k, . . . , N (control options)
Lecture 6 V. Kekatos 13
Recursive solution
Find last action uN
J∗N (xN ) = minuN
cN (xN , uN ) + cN+1(xN+1)
s.to xN+1 = fN (xN , uN )
uN ∈ UN (xN )
Find uN−1
J∗N−1(xN−1) = minuN−1
cN−1(xN−1, uN−1) + J∗N (xN )
s.to xN = fN (xN−1, uN−1)
uN−1 ∈ UN−1(xN−1)
Lecture 6 V. Kekatos 14
Dynamic programming algorithm
1. Start with J∗N+1(xN+1) = cN+1(xN+1)
2. Go backwards: solve the previous stage for all possible values of state xk
J∗k (xk) = minuk
ck(xk, uk) + J∗k+1(xk+1)
s.to xk+1 = fk(xk, uk)
uk ∈ Uk(xk)
or equivalently
J∗k (xk) = minuk
ck(xk, uk) + J∗k+1(fk(xk, uk))
s.to uk ∈ Uk(xk)
until you reach the initial state x1
Lecture 6 V. Kekatos 15
Finite-state problems
Number of possible states per stage is discrete
• nodes correspond to state values; arcs correspond to actions
• ckij : transitioning cost from state i to j at stage k, i.e., ck(xk = i, ui→j)
• cNii : cost of terminating at state xi
• minimum-cost path yields optimal cost and actions
Lecture 6 V. Kekatos 16
Shortest path problem
In a graph with weighted edges and N nodes, find the shortest paths from any
node to a destination node d
• State: the node you are at time n {1, 2, 3, 4, 5}
• Decision cost: c moving from one node to another (edge weight)
• Cost Jk(i): minimum cost for moving from i to d within N − k steps
• Stages: N since within N steps you can reach d from any node
Lecture 6 V. Kekatos 17
Solving a simple UC problem with DP
Start-up costs si(0, 1); shut-down costs si(1, 0); and si(0, 0) = si(1, 1) = 0
min{P t
i ,uti}i,t
T∑t=1
2∑i=1
utiCi(Pti ) + si(x
ti, u
ti)
s.to
∑2i=1 P
ti = Dt, ∀ t
utiPmini ≤ P ti ≤ utiPmax
i , uti ∈ {0, 1}, ∀ i, t
control options
xt+1i = uti dynamic system!
• Stages: time periods t = 1, . . . , T
• States: three possible configurations {(0, 1), (1, 0), (1, 1)} per stage t
• Actions: (uti, Pti ) for i = 1, 2
• Termination cost: no cost for being online or offline at time T + 1
• J∗t (xti): minimal total cost from t to T if starting with configuration xi
Lecture 6 V. Kekatos 18
Summarizing
Consider N = 6 units to be dispatched over T = 24 hours for the next day
Exhaustive search: entails solving 2NT = 2.2 · 1043 ED problems!
Branch-and-bound method: avoids solving entire “sub-trees” of ED problems
• finds optimal solution, but not in deterministic time
• complexity depends on (`, u) and order of visiting UC cases in the queue
• tight initial (`, u) can reduce complexity significantly
Dynamic programming: exploits recursive structure to check fewer UC cases
• entails solving 2N × T = 1, 536 single-period UC problems
• each smaller UC involves 2N ED problems, or can be solved with B&B
• DP still suffers from combinatorial complexity in N
Lecture 6 V. Kekatos 19
Lagrangian relaxation
Consider the single-period UC problem
min{(Pi,ui)∈Si}i
N∑i=1
Ci(Pi, ui)
s.to
N∑i=1
Pi = D
where Si = {(Pi, ui) : uiPmini ≤ Pi ≤ uiPmax
i , ui ∈ {0, 1}}
Lagrangian function: L({(Pi, ui)};λ) =∑Ni=1 (Ci(Pi, ui)− λPi) + λD
• separable over generators
• for fixed λ, it can be minimized independently per generator i
min(Pi,ui)∈Si
Ci(Pi, ui)− λPi
Lecture 6 V. Kekatos 20
Updating the dual variable
Dual function: g(λ) = min{(Pi,ui)∈Si}∑Ni=1 (Ci(Pi, ui)− λPi) + λD
• find λ∗ by maximizing g(λ), which is always a concave function
• minimize Lagrangian function separately per generator i for λk
(Pi(λk), ui(λ
k)) = arg min(Pi,ui)∈Si
Ci(Pi, ui)− λkPi ∀ i
two easy problems: one for ui = 0 and one for ui = 1
• power imbalance D −∑Ni=1 Pi(λ
k) serves as sort of gradient of g(λk)
• update dual variable through dual ascent and iterate
λk+1 = λk + µ
(D −
N∑i=1
Pi(λk)
)Lecture 6 V. Kekatos 21
Lagrangian relaxation for multi-period UC
min{{(P t
i ,uti)}t∈Si}i
N∑i=1
T∑t=1
Cti (Pti , u
ti)
s.to
N∑i=1
P ti = Dt ∀ t ←− λ = [λ1 · · · λT ]>
• minimize Lagrangian per unit i for λk and over the entire horizon
{P ti (λk), uti(λk)}Tt=1 = arg min
{(P ti ,u
ti)}t∈Si
T∑t=1
Cti (Pti , u
ti)− λktP ti ∀ i
this problem is solved via DP with only two states uti ∈ {0, 1} per stage!
• update dual variables through dual ascent and iterate
λk+1t = λkt + µ
(Dt −
N∑i=1
P ti (λk)
)∀ t
Lecture 6 V. Kekatos 22
Comments on Lagrangian relaxation
• subgradient iterations for dual problem converge for diminishing step size
• a.k.a. dual decomposition if primal is convex
• not optimal for UC due to non-convexity
• LR output may be infeasible (power balance not precisely satisfied)
• relative duality gap p∗−d∗d∗ decreases with increasing N
• LR can be used to initialize a branch-and-bound scheme or it can be
heuristically adjusted to yield feasibility
D. Bertsekas, G. Laurel, N. Sandell, T. Posbergh, “Optimal Short-Term Scheduling of Large-Scale
Power Systems,” IEEE Trans. on Automatic Control, Vol. 28, No. 1, Jan. 1983, pp. 1–11.
Lecture 6 V. Kekatos 23