21 KiB
Policies for battery charging
Battery
Capacity: 2MWh
Charging Power: 1MW
Discharging Power: 1MW
Baseline policy
Determining 2 thresholds for battery charging and discharging. Charging when the imbalance price is below the lower threshold and discharging when the imbalance price is above the upper threshold.
Training data: 01-01-2020 - 31-12-2022 Test data: 01-01-2023 - 12-12-2023
| Charge threshold | Discharge threshold | Charging Cost | Discharging Profit | Total Profit | Charge cycles | Mean charging price | Mean discharging price | |
|---|---|---|---|---|---|---|---|---|
| 0 | 150 | 175 | 165982 | 989322 | 823340 | 1701.62 | 32.4889 | 348.51 |
| 0 | 175 | 200 | 190060 | 1.00145e+06 | 811389 | 1594 | 37.0705 | 367.44 |
| 0 | 125 | 150 | 132766 | 939145 | 806378 | 1729.88 | 27.7746 | 333.447 |
| 0 | 200 | 225 | 219726 | 1.01789e+06 | 798159 | 1493.12 | 42.9038 | 390.49 |
| 0 | 150 | 200 | 151145 | 937599 | 786454 | 1514.88 | 32.4889 | 367.44 |
| 0 | 125 | 175 | 122067 | 904885 | 782818 | 1584.62 | 27.7746 | 348.51 |
| 0 | 175 | 225 | 173050 | 950270 | 777219 | 1415 | 37.0705 | 390.49 |
| 0 | 100 | 125 | 69876.4 | 829454 | 759577 | 1662.88 | 19.9739 | 315.1 |
| 0 | 150 | 225 | 136563 | 886279 | 749716 | 1339.12 | 32.4889 | 390.49 |
| 0 | 125 | 200 | 109873 | 853728 | 743855 | 1402.5 | 27.7746 | 367.44 |
| 0 | 100 | 150 | 63807.1 | 802437 | 738630 | 1502.5 | 19.9739 | 333.447 |
| 0 | 100 | 175 | 56405.8 | 770173 | 713768 | 1366.75 | 19.9739 | 348.51 |
| 0 | 75 | 100 | 14153.7 | 724660 | 710506 | 1684.5 | 11.3023 | 284.61 |
| 0 | 125 | 225 | 97524.1 | 804468 | 706944 | 1231.88 | 27.7746 | 390.49 |
| 0 | 25 | 50 | -56542.1 | 637628 | 694171 | 2696.12 | -16.9846 | 204.943 |
| 0 | 75 | 125 | 8003.32 | 688780 | 680776 | 1407.38 | 11.3023 | 315.1 |
| 0 | 100 | 200 | 49469.3 | 721380 | 671911 | 1196.12 | 19.9739 | 367.44 |
| 0 | 50 | 75 | -47575.2 | 614964 | 662539 | 1752 | -9.65396 | 254.211 |
| 0 | 75 | 150 | 5147.22 | 661439 | 656292 | 1254.62 | 11.3023 | 333.447 |
| 0 | 50 | 100 | -46110.5 | 592694 | 638805 | 1417.5 | -9.65396 | 284.61 |
| 0 | 100 | 225 | 42046.6 | 677560 | 635514 | 1042.88 | 19.9739 | 390.49 |
| 0 | 75 | 175 | 850.49 | 631552 | 630702 | 1129 | 11.3023 | 348.51 |
| 0 | 25 | 75 | -63342.8 | 561356 | 624699 | 1637 | -16.9846 | 254.211 |
| 0 | 50 | 125 | -46686.3 | 556263 | 602950 | 1150.5 | -9.65396 | 315.1 |
| 0 | 25 | 100 | -61448.6 | 537683 | 599132 | 1306.5 | -16.9846 | 284.61 |
| 0 | 75 | 200 | -1767.94 | 590094 | 591862 | 981.5 | 11.3023 | 367.44 |
| 0 | 50 | 150 | -45858.6 | 531472 | 577330 | 1007.5 | -9.65396 | 333.447 |
| 0 | 25 | 125 | -61228.7 | 500861 | 562089 | 1045.62 | -16.9846 | 315.1 |
| 0 | 75 | 225 | -3475.71 | 555727 | 559203 | 855.875 | 11.3023 | 390.49 |
| 0 | 50 | 175 | -46084.1 | 506348 | 552432 | 900.875 | -9.65396 | 348.51 |
| 0 | 25 | 150 | -60177.2 | 476823 | 537000 | 906.75 | -16.9846 | 333.447 |
| 0 | 50 | 200 | -43738 | 473478 | 517216 | 779.25 | -9.65396 | 367.44 |
| 0 | 25 | 175 | -59466.7 | 453988 | 513455 | 808.25 | -16.9846 | 348.51 |
| 0 | 50 | 225 | -40529.8 | 452651 | 493181 | 693.875 | -9.65396 | 390.49 |
| 0 | 25 | 200 | -55766.8 | 426055 | 481822 | 699.875 | -16.9846 | 367.44 |
| 0 | 25 | 225 | -51953 | 407484 | 459437 | 623.875 | -16.9846 | 390.49 |
| 0 | 0 | 75 | -107853 | 332344 | 440197 | 851.375 | -73.2011 | 254.211 |
| 0 | 0 | 100 | -97804.3 | 341072 | 438876 | 761.5 | -73.2011 | 284.61 |
| 0 | 0 | 50 | -121468 | 314671 | 436139 | 993.625 | -73.2011 | 204.943 |
| 0 | 0 | 125 | -91087.2 | 342646 | 433734 | 686.125 | -73.2011 | 315.1 |
| 0 | 0 | 25 | -126590 | 305984 | 432574 | 1041.75 | -73.2011 | 193.87 |
| 0 | 0 | 150 | -85919 | 341046 | 426964 | 635.75 | -73.2011 | 333.447 |
| 0 | 0 | 175 | -82378.2 | 338310 | 420688 | 600.625 | -73.2011 | 348.51 |
| 0 | 0 | 200 | -75822.2 | 328188 | 404010 | 541.25 | -73.2011 | 367.44 |
| 0 | 0 | 225 | -69488.7 | 320776 | 390265 | 494.75 | -73.2011 | 390.49 |
| 0 | -25 | 125 | -102495 | 269615 | 372110 | 534.062 | -105.73 | 315.1 |
| 0 | -25 | 100 | -108934 | 262527 | 371462 | 574.938 | -105.73 | 284.61 |
| 0 | -25 | 75 | -118553 | 252453 | 371006 | 626.062 | -105.73 | 254.211 |
| 0 | -25 | 150 | -97080 | 271209 | 368289 | 503.438 | -105.73 | 333.447 |
| 0 | -25 | 50 | -129918 | 236112 | 366030 | 683.562 | -105.73 | 204.943 |
| 0 | -25 | 175 | -92889.5 | 272520 | 365409 | 480.438 | -105.73 | 348.51 |
| 0 | -25 | 25 | -132518 | 227910 | 360428 | 695.562 | -105.73 | 193.87 |
| 0 | -25 | 200 | -85482.7 | 268638 | 354120 | 438.5 | -105.73 | 367.44 |
| 0 | -25 | 225 | -79253.2 | 264052 | 343305 | 403.75 | -105.73 | 390.49 |
| 0 | -25 | 0 | -139125 | 199831 | 338956 | 724.312 | -105.73 | 146.436 |
| 0 | -50 | 125 | -102665 | 216740 | 319405 | 431.562 | -127.845 | 315.1 |
| 0 | -50 | 175 | -94272.2 | 223434 | 317706 | 393.188 | -127.845 | 348.51 |
| 0 | -50 | 150 | -97889.1 | 219525 | 317414 | 409.312 | -127.845 | 333.447 |
| 0 | -50 | 100 | -108274 | 208273 | 316548 | 458.312 | -127.845 | 284.61 |
| 0 | -50 | 75 | -115707 | 198325 | 314032 | 488.438 | -127.845 | 254.211 |
| 0 | -50 | 200 | -87698.7 | 223235 | 310933 | 363.625 | -127.845 | 367.44 |
| 0 | -50 | 50 | -124664 | 184027 | 308691 | 525.688 | -127.845 | 204.943 |
| 0 | -50 | 25 | -126605 | 177834 | 304440 | 533.062 | -127.845 | 193.87 |
| 0 | -50 | 225 | -81706.8 | 221510 | 303217 | 337.75 | -127.845 | 390.49 |
| 0 | -50 | 0 | -131679 | 158118 | 289797 | 551.188 | -127.845 | 146.436 |
| 0 | -50 | -25 | -135234 | 140945 | 276180 | 565 | -127.845 | 139.469 |
| 0 | -75 | 175 | -90764.9 | 184846 | 275611 | 325.812 | -146.153 | 348.51 |
| 0 | -75 | 125 | -98076.6 | 176722 | 274799 | 355.062 | -146.153 | 315.1 |
| 0 | -75 | 150 | -93979.3 | 179914 | 273893 | 338.188 | -146.153 | 333.447 |
| 0 | -75 | 100 | -103131 | 169294 | 272425 | 375.062 | -146.153 | 284.61 |
| 0 | -75 | 200 | -85036.8 | 186067 | 271104 | 302.375 | -146.153 | 367.44 |
| 0 | -75 | 75 | -109431 | 159779 | 269210 | 395.938 | -146.153 | 254.211 |
| 0 | -75 | 225 | -79978.8 | 185752 | 265731 | 282.75 | -146.153 | 390.49 |
| 0 | -75 | 50 | -116483 | 147147 | 263630 | 421.062 | -146.153 | 204.943 |
| 0 | -75 | 25 | -117886 | 141847 | 259734 | 424.812 | -146.153 | 193.87 |
| 0 | -75 | 0 | -120983 | 126071 | 247054 | 435.188 | -146.153 | 146.436 |
| 0 | -75 | -25 | -123261 | 111930 | 235190 | 443.625 | -146.153 | 139.469 |
| 0 | -75 | -50 | -124708 | 101672 | 226380 | 449.25 | -146.153 | 136.356 |
| 0 | -100 | 200 | -76499.7 | 137174 | 213674 | 219.625 | -179.829 | 367.44 |
| 0 | -100 | 175 | -79830.5 | 132966 | 212797 | 230.125 | -179.829 | 348.51 |
| 0 | -100 | 225 | -72449.9 | 138631 | 211081 | 207.625 | -179.829 | 390.49 |
| 0 | -100 | 150 | -82202.7 | 128215 | 210418 | 237.125 | -179.829 | 333.447 |
| 0 | -100 | 125 | -84192.7 | 123976 | 208169 | 243.625 | -179.829 | 315.1 |
| 0 | -100 | 100 | -86319.5 | 117325 | 203645 | 250.25 | -179.829 | 284.61 |
| 0 | -100 | 75 | -90219.7 | 109153 | 199373 | 259.25 | -179.829 | 254.211 |
| 0 | -100 | 50 | -94055.9 | 99443.5 | 193499 | 269.875 | -179.829 | 204.943 |
| 0 | -100 | 25 | -94464.1 | 96073.2 | 190537 | 270.875 | -179.829 | 193.87 |
| 0 | -100 | 0 | -95713.7 | 87279.5 | 182993 | 274.625 | -179.829 | 146.436 |
| 0 | -100 | -25 | -97020.3 | 78656.5 | 175677 | 278.25 | -179.829 | 139.469 |
| 0 | -100 | -50 | -97722.9 | 71560.6 | 169283 | 280.375 | -179.829 | 136.356 |
| 0 | -100 | -75 | -98604.6 | 63373.8 | 161978 | 282.625 | -179.829 | 134.012 |
Optimal policy
Charge threshold: 150 €/MWh
Discharge threshold: 175 €/MWh
Profit on test data: € 359548
Charge cycles: 855.938
Smarter Policy using predicted NRV
Test data: 01-01-2023 until 08-10–2023
| Policy | Threshold Step Size (€) | Total Profit (€) | Charge Cycles |
|---|---|---|---|
| Baseline (charge: 150, discharge: 175) | 25 | 251202.59 | 725 |
| Baseline (yesterday imbalance price) | 25 | 342980.0938 | 903 |
| GRU Predicted NRV (mean reconstructed imbalance price) | 50 | 325362.81 | 856 |
| GRU Predicted NRV (mean reconstructed imbalance price) | 25 | 334058.65 | 862 |
| GRU Predicted NRV (mean thresholds) | 25 | 339846.9062 | 842 |
| Diffusion Predicted NRV (mean thresholds) | 25 | 338168.0312 | 886 |
Penalty parameter for charge cycles
| Policy | Penalty parameter | Total Profit (€) | Charge Cycles |
|---|---|---|---|
| Baseline (yesterday imbalance price) | 10 | 335968.9062 | 895.4375 |
| Baseline (yesterday imbalance price) | 20 | 328577.2812 | 886.5625 |
| Baseline (yesterday imbalance price) | 50 | 306301.9688 | 850.9375 |
| Baseline (yesterday imbalance price) | 150 | 251367.0469 | 749.7500 |
| Diffusion Predicted NRV | 10 | 331288.7812 | 880.3750 | | Diffusion Predicted NRV | 20 | 324568.7812 | 871.5000 | | Diffusion Predicted NRV | 50 | 304761.1875 | 837.3125 | | Diffusion Predicted NRV | 150 | 238441.5625 | 670.1875 |
TODO
-
Baseline
-
Profit penalty parameter als over charge cycles voor een dag -> parameter bepalen op training data (convex probleem) (< 400 charge cycles per jaar) (over een dag kijken hoeveel charge cycles -> profit - penalty * charge cycles erover, (misschien belonen als eronder charge cycles))
-
Meer verschil bekijken tussen GRU en diffusion
-
(In Progress) Andere lagen voor diffusion model (GRU, kijken naar TSDiff)
-
Policies met andere modellen (Linear, Non Linear)
-
Visualize the policies over the whole testr set -> thresholds plotten voor elke dag (elke policy) -> mss distribution om overzichtelijk te houden (mean and std)
-
Probleem met diffusion model (activation function? waarom direct grote waardes?)
-
Autoregressive confidence problem -> Quantiles zelf uit elkaar halen (helpt dit?)
-
time steps reducing for diffusion model (UNet activation functions?)
-
(State space model? S4)
TODO:
-
diffusion model oefening generative models vragen -> geen lab hierop
-
Non autoregressive models policy testen (Non Linear eerst) -> als dit al slect, niet verder kijken, wel vermelden (IN PROGRESS)
-
Policy in test set -> over charge cycles (stop trading electricity)
-
penalty bepalen op training data
-
cycles en profit herschalen naar per jaar
-
Eerste baseline -> thresholds bepalen op training data maar ook stoppen als 400 cycles (herschalen) per jaar bereikt zijn -> thresholds zouden anders moeten zijn (Ook met penalty parameter) -> deze toepassen op test set (ook stoppen als 400/jaar bereikt zijn)
Visualizatie van thresholds over test set voor baselines en complexere modellen -> zonder penalties tonen
1 a 2 Case studies (extreme gevallen, thresholds 150, -5, normale mss)
- Generatie van NRV (echte NRV)
- Thresholds die eruit komen
- Profit en charge cycles
Policy volledig fixen en later training script met policy direct erachter (tijdens schrijven door laten runnen)
- Policy
- Finetuning van modellen (+ vergelijken met elkaar opbv profit en error)
- Ablation Study (input features weghalen en kijken wat er gebeurt) ( 4) Diffusion tussendoor )
Inleiding + Literatuurstudie + Tabellen die we gaan bespreken -> updaten met nieuwe data dan
!!!!! Fix the test set (maybe save pickle)
Plot profits per year (maybe with charge cycles) for the different models and baselines. Spread plotten van difference between charge and discharge thresholds
RESULTATEN FIXEN
Nog eens 3e meeting opbrengen voor 2e deel maart.