optimal order strategies on the day ahead electricity
play

Optimal Order Strategies on the Day- Ahead Electricity Market - PowerPoint PPT Presentation

KTH ROYAL INSTITUTE OF TECHNOLOGY Optimal Order Strategies on the Day- Ahead Electricity Market Martin Biel 20/9-2017 Outline Background Problem Description Contribution Optimal Strategies Outlook on Future Work 2/39 Outline Background


  1. KTH ROYAL INSTITUTE OF TECHNOLOGY Optimal Order Strategies on the Day- Ahead Electricity Market Martin Biel 20/9-2017

  2. Outline Background Problem Description Contribution Optimal Strategies Outlook on Future Work 2/39

  3. Outline Background Problem Description Contribution Optimal Strategies Outlook on Future Work 2/39

  4. Background - Motivation ◮ Simulation of hydro power operations → Decision-support 3/39

  5. Background - Motivation ◮ Simulation of hydro power operations → Decision-support ◮ Price forecasts ◮ Irregular power production: solar and wind ◮ Nuclear power phase-out 3/39

  6. Background - Motivation ◮ Simulation of hydro power operations → Decision-support ◮ Price forecasts ◮ Irregular power production: solar and wind ◮ Nuclear power phase-out ◮ Common: Trade-off between accuracy and computation time 3/39

  7. 2017 2041 Figure: Simulations of hydro power operations

  8. Background - Aim Provide reliable decision-support in real time 5/39

  9. Background - Aim Provide reliable decision-support in real time ◮ Accurate models ◮ Fast computations 5/39

  10. Background - Aim Provide reliable decision-support in real time ◮ Accurate models ◮ Optimal model reductions ◮ Fast computations 5/39

  11. Background - Aim Provide reliable decision-support in real time ◮ Accurate models ◮ Optimal model reductions ◮ Fast computations ◮ Scalable algorithms that make efficient use of commodity hardware 5/39

  12. Backgound - Approach Stochastic programming for hydro power operations: ◮ Optimal orders on the day-ahead market ◮ Maintenance scheduling ◮ Long-term investments ◮ Wind/solar uncertainties 6/39

  13. Backgound - Approach Stochastic programming for hydro power operations: ◮ Optimal orders on the day-ahead market ◮ Maintenance scheduling ◮ Long-term investments ◮ Wind/solar uncertainties Improvements ◮ Multiple scenarios → More accurate models ◮ Parallel decomposition → Faster computations 6/39

  14. Backgound - Approach Stochastic programming for hydro power operations: ◮ Optimal orders on the day-ahead market ◮ Maintenance scheduling ◮ Long-term investments ◮ Wind/solar uncertainties Improvements ◮ Multiple scenarios → More accurate models ◮ Parallel decomposition → Faster computations 6/39

  15. Outline Background Problem Description Contribution Optimal Strategies Outlook on Future Work 6/39

  16. Problem Description - Scandinavian Electricity Market Electricity markets in Scandinavia deregulated since 90s ◮ Norway 1991 ◮ Sweden 1996 ◮ Finland 1998 ◮ Denmark 2000 7/39

  17. Problem Description - Scandinavian Electricity Market Electricity markets in Scandinavia deregulated since 90s ◮ Norway 1991 ◮ Sweden 1996 ◮ Finland 1998 ◮ Denmark 2000 Energy volumes actively traded on a competitive market: Nord Pool ◮ Day-ahead market ◮ Intraday market 7/39

  18. Problem Description - Electricity Market Actor 1 P 1 E 1 Day- Ahead P 2 E 2 Actor 2 8/39

  19. Problem Description - Electricity Market Actor 1 P 1 E 1 Day- Ahead P 2 E 2 Actor 2 Market closes 8/39

  20. Problem Description - Electricity Market Balance responsible Actor 1 Actor 1 P M , E 1 P 1 E 1 Day- Ahead P 2 E 2 P M , E 2 Actor 2 Actor 2 Balance responsible Next day Market closes 8/39

  21. Problem Description - Electricity Market Balance responsible Actor 1 Actor 1 P M , E 1 P 1 E 1 P E Day- Intraday Ahead P E P 2 E 2 P M , E 2 Actor 2 Actor 2 Balance responsible Next day Market closes 8/39

  22. Problem Description - The Day-Ahead Market Order Types ◮ Single Hourly Order ◮ Price independent ◮ Price Dependent ◮ Block Order ◮ Regular ◮ Linked ◮ Exclusive Group ◮ Flexible Order 9/39

  23. Problem Description - The Day-Ahead Market Order Types ◮ Single Hourly Order ◮ Price independent ◮ Price Dependent ◮ Block Order ◮ Regular ◮ Linked ◮ Exclusive Group ◮ Flexible Order 9/39

  24. Problem Description - Single Order Order Curve Price Independent Order Price Dependent Order 52.46 Price [EUR/MWh] 34.97 17.49 0.00 0.00 203.32 406.63 609.95 813.27 Order Volume [MWh/h] Figure: Single hourly order 10/39

  25. Problem Description - Single Order Order Curve Price Independent Order Price Dependent Order Trading Outcome 52.46 Price [EUR/MWh] 34.97 17.49 0.00 0.00 203.32 406.63 609.95 813.27 Order Volume [MWh/h] Figure: Interpolated energy volume for a given market price 10/39

  26. Block Order 36.85 [EUR/MWh] 3.37 [MWh/h] 0 15 Hour Figure: Block order between 00:00-15:00

  27. Block Order Rejected Order Market price 42.37 36.85 [EUR/MWh] 3.37 [MWh/h] 35.42 Price [EUR/MWh] 28.47 21.52 0 15 Hour Figure: Rejected after market price settlement

  28. Block Order Accepted Order 49.50 Market price 47.28 45.06 42.84 40.62 Price [EUR/MWh] 38.40 36.85 [EUR/MWh] 3.37 [MWh/h] 36.17 33.95 31.73 29.51 27.29 25.07 0 15 Hour Figure: Accepted after market price settlement

  29. Problem Description - Optimal Order Strategies ◮ Optimal orders given price forecasts ◮ Price taking hydro power producer ◮ Next day production governed by hydroelectric model 12/39

  30. Outline Background Problem Description Contribution Model Framework Stochastic Day-Ahead Model Optimization Algorithms Optimal Strategies Outlook on Future Work 12/39

  31. Outline Background Problem Description Contribution Model Framework Stochastic Day-Ahead Model Optimization Algorithms Optimal Strategies Outlook on Future Work 12/39

  32. Contribution - Model Framework Data ◮ Physical data of Swedish hydro power stations ◮ Topologies ◮ Capacitites ◮ Flow times ◮ Financial data from Nord Pool ◮ historic prices 13/39

  33. Contribution - Model Framework Data ◮ Physical data of Swedish hydro power stations ◮ Topologies ◮ Capacitites ◮ Flow times ◮ Financial data from Nord Pool ◮ historic prices Julia: JuMP + StructJuMP ◮ Domain-specific modeling language for mathematical optimization ◮ Optimization models can be processed programatically 13/39

  34. HydroModels.jl # Variables # ======================================================== @variable ( internalmodel , xt_d [ i = model . bids , t = model . hours ] >= 0) @variable ( internalmodel , yt [ t = model . hours ] >= 0) @variable ( internalmodel ,H[ t = model . hours ] >= 0) # Define objective # ======================================================== @objective ( internalmodel , Max, n e t _ p r o f i t + value_of_stored_water ) # Constraints # ======================================================== # Load balance @constraint ( internalmodel , loadbalance [ s = model . scenarios , t = model . hours ] , yt [ s , t ] + sum( yb [ s , b ] for b = f i n d (A − > in ( t ,A) , model . hours_per_block ) ) − H[ s , t ] == z_up [ s , t ] − z_do [ s , t ] )

  35. HydroModels.jl # Variables # ======================================================== @variable ( internalmodel , xt_d [ i = model . bids , t = model . hours ] >= 0) @variable ( internalmodel , yt [ t = model . hours ] >= 0) @variable ( internalmodel ,H[ t = model . hours ] >= 0) # Define objective # ======================================================== @objective ( internalmodel , Max, n e t _ p r o f i t + value_of_stored_water ) # Constraints # ======================================================== # Load balance @constraint ( internalmodel , loadbalance [ s = model . scenarios , t = model . hours ] , yt [ s , t ] + sum( yb [ s , b ] for b = f i n d (A − > in ( t ,A) , model . hours_per_block ) ) − H[ s , t ] == z_up [ s , t ] − z_do [ s , t ] ) +

  36. HydroModels.jl # Variables # ======================================================== @variable ( internalmodel , xt_d [ i = model . bids , t = model . hours ] >= 0) @variable ( internalmodel , yt [ t = model . hours ] >= 0) @variable ( internalmodel ,H[ t = model . hours ] >= 0) # Define objective # ======================================================== @objective ( internalmodel , Max, n e t _ p r o f i t + value_of_stored_water ) # Constraints # ======================================================== # Load balance @constraint ( internalmodel , loadbalance [ s = model . scenarios , t = model . hours ] , yt [ s , t ] + sum( yb [ s , b ] for b = f i n d (A − > in ( t ,A) , model . hours_per_block ) ) − H[ s , t ] == z_up [ s , t ] − z_do [ s , t ] ) + = data = HydroModelData ( " data / plantdata . csv " , " data / spotpricedata . csv " ) dayahead = DayAheadModel ( data ,5 , " Ljusnan " ) plan ! ( dayahead )

  37. Outline Background Problem Description Contribution Model Framework Stochastic Day-Ahead Model Optimization Algorithms Optimal Strategies Outlook on Future Work 14/39

  38. Contribution - Stochastic Day-Ahead Model Profit + Water Value − Balance Cost maximize subject to Day-Ahead Orders Physical Limitations Economic/Legal Limitations 15/39

  39. Contribution - Stochastic Day-Ahead Model Day-Ahead Orders - x ∈ X ◮ Indices t ∈ T := { 1 , . . . , 24 } , b ∈ B := { b = ( t a , . . . , t b ) : t i ∈ T } ◮ Price independent: x i t ≥ 0 ◮ Price dependent: 0 ≤ x d i , t ≤ x d i , t + 1 ◮ Block: x b j , b ≥ 0 16/39

Recommend


More recommend