Compare commits

...

84 Commits

Author SHA1 Message Date
2da11abaf1 Added extended abstract 2024-05-21 20:25:59 +02:00
82ea6641c2 Updated thesis 2024-05-21 00:16:13 +02:00
Victor Mylle
d3b2bdf41c Updated thesis 2024-05-20 19:49:03 +00:00
Victor Mylle
7132aaa29a Updated thesis 2024-05-20 14:56:26 +00:00
Victor Mylle
092f2ae4e6 Updated thesis 2024-05-20 13:36:22 +00:00
Victor Mylle
8df0c73bb4 Updated thesis 2024-05-20 09:35:07 +00:00
Victor Mylle
74729f6b85 Updated thesis 2024-05-19 22:05:15 +00:00
26807eae22 Updated literature study and validation set for autoregressive models 2024-05-19 00:08:43 +02:00
1d1436612c Updated thesis 2024-05-18 20:45:03 +02:00
5c365ebd88 Updated thesis 2024-05-18 11:58:45 +02:00
Victor Mylle
8a219d0d19 Added diffusion validation set 2024-05-17 16:11:17 +00:00
11ae0e1949 Using val set for diffusion trainer 2024-05-17 13:24:02 +02:00
615f9486bc Updated thesis 2024-05-13 13:47:59 +02:00
fecf1492fb Updated thesis 2024-05-13 11:33:00 +02:00
56d56446fa Updated thesis 2024-05-13 10:08:47 +02:00
bc33b0368d Updated thesis 2024-05-12 11:18:03 +02:00
465bcf7d8b Updated thesis 2024-05-11 21:49:12 +02:00
96e4ed042c Updated thesis 2024-05-11 19:50:50 +02:00
db8a527949 Updated thesis 2024-05-11 02:10:35 +02:00
70a57eacb6 Updated thesis 2024-05-11 02:09:17 +02:00
934d4951ff Updated thesis 2024-05-11 02:06:07 +02:00
1b2b3518e2 Updated thesis 2024-05-10 15:52:57 +02:00
0bcaa2f63f Updated thesis 2024-05-10 00:29:12 +02:00
Victor Mylle
2db604d2da Updated thesis 2024-05-09 20:46:54 +00:00
fa03debf86 Updated thesis 2024-05-09 13:59:18 +02:00
907f62d9cd Updated thesis 2024-05-09 13:25:22 +02:00
4c4914e227 Merge branch 'main' of https://git.victormylle.be/VictorMylle/Thesis 2024-05-08 17:56:59 +02:00
8a2e1ce7d5 Worked further on thesis 2024-05-08 17:53:19 +02:00
Victor Mylle
3fba166dc5 Wrote more about workings of diffusion models and fixed intermediate samples 2024-05-07 22:04:34 +00:00
Victor Mylle
d9b6f34e97 Added GRU results to thesis + intermediate samples of diffusion model 2024-05-06 23:28:42 +00:00
d7f4c1849b Non autregressive gru model load 2024-05-06 16:11:15 +02:00
19ab597ae6 Non linear results section done 2024-05-06 14:23:10 +02:00
177fa1ad86 Added non-autoregresive non-linear results to thesis 2024-05-05 02:17:04 +02:00
75b35bb2c9 Non-linear non autoregressive experiments 2024-05-04 16:51:26 +02:00
e0c42797e0 Updated thesis and added quantile performance plots to non autoregressive quantiles 2024-05-04 14:13:37 +02:00
074e654b8a Updated thesis 2024-05-03 18:13:01 +02:00
2597577d3d Other changes 2024-04-25 14:09:09 +02:00
361414cd41 Updated thesis 2024-04-25 14:08:43 +02:00
c7bcd5be55 Updated diffusion section of thesis + adding metrics to diffusion experiments 2024-04-24 22:06:30 +02:00
f691ab384b Increased patience for AQR 2024-04-23 21:02:40 +02:00
12bff03d69 Started writing about GRU model 2024-04-22 15:54:25 +02:00
ac08707369 Adding intermediate table with non linear model results 2024-04-20 18:49:26 +02:00
3a40959a32 Wrote more about non-autoregressive linear quantile regression 2024-04-19 23:28:08 +02:00
e0fbf54347 Updated non autoregressive images in thesis 2024-04-19 16:19:18 +02:00
afa70fc3b3 Trying to reduce white space for saved matplotlib images 2024-04-19 16:00:37 +02:00
2680973baf Added non autoregressive examples to thesis 2024-04-19 15:28:20 +02:00
0817f60e72 Fixed issue with clearml report image 2024-04-19 15:09:55 +02:00
2cdd2257a0 Fixed some accidental mistake xs 2024-04-19 14:09:23 +02:00
46c7c6f7e5 Saving samples plot as png at end of training 2024-04-19 14:05:20 +02:00
4e713ef564 Added non autoregressive quantile results + changing sample plots 2024-04-19 12:35:27 +02:00
Victor Mylle
98a7244995 Fixed the non autoregressive final metric calculations 2024-04-18 16:53:17 +00:00
dc102926fa Non-autoregressive Linear baseline update + wrote further at thesis 2024-04-18 00:30:25 +02:00
8fb2a7fc7b Quarter embedding using trigonometry + more thesis writing 2024-04-17 21:48:13 +02:00
6b02c9aab8 Trying out more linear baselines 2024-04-17 12:55:46 +02:00
0edcc91e65 Made more changes 2024-04-16 22:07:53 +02:00
937b6abc0b Updated Thesis and linear baseline 2024-04-16 21:19:19 +02:00
ef094c659c Added baseline with perfect predictions 2024-03-28 14:56:28 +01:00
65ec8fcd54 Not resetting state of charge 2024-03-23 19:18:55 +01:00
e780b46af7 Updated some stuff 2024-03-20 22:16:19 +01:00
dad64d00be Updated some stuff 2024-03-20 22:14:18 +01:00
acaa8ff054 Added non autoregressive quantiles training scripts 2024-03-20 16:59:22 +01:00
ba3b3cf882 Added background information about Electricty market in Belgium 2024-03-20 16:48:07 +01:00
1a8e735cbc Updated training scripts 2024-03-18 12:15:06 +01:00
34335cd9fe Fixed policy evaluation for autoregressive 2024-02-29 23:23:11 +01:00
fe1e388ffb Added crps + profit logging and updated plots for non autoregressive models 2024-02-28 17:12:51 +01:00
420c9dc6ac Added yesterday policy evaluator 2024-02-26 18:21:06 +01:00
ca120e5715 Finished baseline policy evaluator 2024-02-26 18:20:53 +01:00
be38536758 Adding baseline policy evaluator 2024-02-26 16:26:03 +01:00
f1b54df2c9 Policy evaluation during training 2024-02-25 22:13:00 +01:00
Victor Mylle
90751866a4 Fixed git lfs issue 2024-02-22 16:52:03 +01:00
Victor Mylle
4ad3336b98 Set training script to execute remotely 2024-02-21 18:13:51 +01:00
Victor Mylle
f8823f7efa Autoregressive Quantile Training with Policy evaluation 2024-02-21 18:11:38 +01:00
Victor Mylle
2b22b6935e Merge branch 'February-Report' into main 2024-02-19 15:49:15 +01:00
Victor Mylle
b3f05f386f Finished intermediate february report + next steps from meeting 2024-02-19 15:48:45 +01:00
Victor Mylle
174a82fab2 Plots to compare between quantile regression and diffusion 2024-02-18 19:21:59 +01:00
Victor Mylle
bd250a664b Fixed diffusion confidence interval plot 2024-02-18 16:01:18 +01:00
Victor Mylle
76a597af28 Started February Report 2024-02-17 17:53:07 +01:00
Victor Mylle
7bd0476085 Added plots thresholds densities 2024-02-14 18:12:11 +00:00
Victor Mylle
d10f8a5ff6 Clamping diffusion output 2024-02-12 09:54:56 +00:00
Victor Mylle
77be7371df Track large files with Git LFS 2024-02-05 16:22:22 +00:00
Victor Mylle
acaad2710a Changed steps in diffusion model 2024-01-20 09:44:14 +00:00
Victor Mylle
c6fa17fa40 Fixed sampling for GRU and reduced batch size 2024-01-19 00:10:12 +00:00
Victor Mylle
e8e53ab185 Updated training script for GRU model 2024-01-18 23:21:57 +00:00
Victor Mylle
32de50b87e Added GRU diffusion model 2024-01-18 23:21:01 +00:00
188 changed files with 19347 additions and 2191 deletions

View File

@ -2,6 +2,7 @@ FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime
RUN apt-get update
RUN apt-get install -y git
# RUN apt-get install texlive-latex-base texlive-fonts-recommended texlive-fonts-extra texlive-bibtex-extra
COPY requirements.txt /tmp/requirements.txt

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
\relax
\citation{noauthor_geliberaliseerde_nodate}
\citation{noauthor_fcr_nodate,noauthor_afrr_nodate,noauthor_mfrr_nodate}
\citation{elia_tariffs_2022}
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II}Background}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}Electricity Market}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Generative Modeling}{1}{}\protected@file@percent }
\citation{goodfellow_generative_2014,kingma_auto-encoding_2022,rezende_variational_2015,sohl-dickstein_deep_2015}
\citation{koenker_regression_1978}
\citation{gneiting_strictly_2007}
\citation{sohl-dickstein_deep_2015}
\citation{ho_denoising_2020}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Battery Optimization Policies}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-C}1}Baseline Policies}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-C}2}Policies Based on NRV Generations}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III}Results \& Discussion}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-A}}NRV Modeling}{2}{}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of a reconstructed cumulative distribution function of the NRV for a certain quarter.}}{2}{}\protected@file@percent }
\newlabel{fig:cdf_example}{{1}{2}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Comparison between autoregressive and non-autoregressive models. The samples are generated using a linear model using all input features.}}{3}{}\protected@file@percent }
\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Autoregressive model}}}{3}{}\protected@file@percent }
\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Non-autoregressive model}}}{3}{}\protected@file@percent }
\newlabel{fig:autoregressive_vs_non-autoregressive}{{2}{3}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.}}{3}{}\protected@file@percent }
\newlabel{fig:diffusion_intermediates}{{3}{3}}
\bibstyle{IEEEtran}
\bibdata{../Thesis/references}
\bibcite{noauthor_geliberaliseerde_nodate}{{1}{}{{}}{{}}}
\bibcite{noauthor_fcr_nodate}{{2}{}{{}}{{}}}
\bibcite{noauthor_afrr_nodate}{{3}{}{{}}{{}}}
\bibcite{noauthor_mfrr_nodate}{{4}{}{{}}{{}}}
\bibcite{elia_tariffs_2022}{{5}{}{{}}{{}}}
\bibcite{goodfellow_generative_2014}{{6}{}{{}}{{}}}
\bibcite{kingma_auto-encoding_2022}{{7}{}{{}}{{}}}
\bibcite{rezende_variational_2015}{{8}{}{{}}{{}}}
\bibcite{sohl-dickstein_deep_2015}{{9}{}{{}}{{}}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-B}}Policy Evaluation}{4}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Conclusion}{4}{}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Comparison of the profit made by the different policies and baselines using the test set.}}{4}{}\protected@file@percent }
\newlabel{fig:profit_comparison}{{4}{4}}
\bibcite{koenker_regression_1978}{{10}{}{{}}{{}}}
\bibcite{gneiting_strictly_2007}{{11}{}{{}}{{}}}
\bibcite{ho_denoising_2020}{{12}{}{{}}{{}}}
\providecommand\NAT@force@numbers{}\NAT@force@numbers
\gdef \@abspage@last{5}

View File

@ -0,0 +1,83 @@
% Generated by IEEEtran.bst, version: 1.14 (2015/08/26)
\begin{thebibliography}{10}
\providecommand{\url}[1]{#1}
\csname url@samestyle\endcsname
\providecommand{\newblock}{\relax}
\providecommand{\bibinfo}[2]{#2}
\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
\providecommand{\BIBentryALTinterwordstretchfactor}{4}
\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}
\providecommand{\BIBforeignlanguage}[2]{{%
\expandafter\ifx\csname l@#1\endcsname\relax
\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
\typeout{** loaded for the language `#1'. Using the pattern for}%
\typeout{** the default language instead.}%
\else
\language=\csname l@#1\endcsname
\fi
#2}}
\providecommand{\BIBdecl}{\relax}
\BIBdecl
\bibitem{noauthor_geliberaliseerde_nodate}
\BIBentryALTinterwordspacing
De geliberaliseerde elektriciteitsmarkt omvat vele partijen die allen samen moeten werken en tegelijkertijd proberen winst te maken. hieronder volgt een... [Online]. Available: \url{https://www.next-kraftwerke.be/nl/weten/spelers-energiemarkt}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_fcr_nodate}
\BIBentryALTinterwordspacing
{FCR}. [Online]. Available: \url{https://www.elia.be/en/electricity-market-and-system/system-services/keeping-the-balance/fcr}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_afrr_nodate}
\BIBentryALTinterwordspacing
{aFRR}. [Online]. Available: \url{https://www.elia.be/en/electricity-market-and-system/system-services/keeping-the-balance/afrr}
\BIBentrySTDinterwordspacing
\bibitem{noauthor_mfrr_nodate}
\BIBentryALTinterwordspacing
{mFRR}. [Online]. Available: \url{https://www.elia.be/en/electricity-market-and-system/system-services/keeping-the-balance/mfrr}
\BIBentrySTDinterwordspacing
\bibitem{elia_tariffs_2022}
\BIBentryALTinterwordspacing
{Elia}, ``Tariffs for maintaining and restoring the residual balance of individual access responsible parties.'' [Online]. Available: \url{https://www.elia.be/-/media/project/elia/elia-site/customers/tarrifs-and-invoicing/tariffs-and-invoicing/en/grille-tarifaire-desequilibre-2022-en-v20220214s.pdf}
\BIBentrySTDinterwordspacing
\bibitem{goodfellow_generative_2014}
\BIBentryALTinterwordspacing
I.~J. Goodfellow, J.~Pouget-Abadie, M.~Mirza, B.~Xu, D.~Warde-Farley, S.~Ozair, A.~Courville, and Y.~Bengio, ``Generative adversarial networks.'' [Online]. Available: \url{http://arxiv.org/abs/1406.2661}
\BIBentrySTDinterwordspacing
\bibitem{kingma_auto-encoding_2022}
\BIBentryALTinterwordspacing
D.~P. Kingma and M.~Welling, ``Auto-encoding variational bayes.'' [Online]. Available: \url{http://arxiv.org/abs/1312.6114}
\BIBentrySTDinterwordspacing
\bibitem{rezende_variational_2015}
\BIBentryALTinterwordspacing
D.~Rezende and S.~Mohamed, ``Variational inference with normalizing flows,'' in \emph{Proceedings of the 32nd International Conference on Machine Learning}, ser. Proceedings of Machine Learning Research, F.~Bach and D.~Blei, Eds., vol.~37.\hskip 1em plus 0.5em minus 0.4em\relax {PMLR}, pp. 1530--1538. [Online]. Available: \url{https://proceedings.mlr.press/v37/rezende15.html}
\BIBentrySTDinterwordspacing
\bibitem{sohl-dickstein_deep_2015}
\BIBentryALTinterwordspacing
J.~Sohl-Dickstein, E.~A. Weiss, N.~Maheswaranathan, and S.~Ganguli, ``Deep unsupervised learning using nonequilibrium thermodynamics.'' [Online]. Available: \url{http://arxiv.org/abs/1503.03585}
\BIBentrySTDinterwordspacing
\bibitem{koenker_regression_1978}
\BIBentryALTinterwordspacing
R.~Koenker and G.~Bassett, ``Regression quantiles,'' vol.~46, no.~1, pp. 33--50, publisher: [Wiley, Econometric Society]. [Online]. Available: \url{https://www.jstor.org/stable/1913643}
\BIBentrySTDinterwordspacing
\bibitem{gneiting_strictly_2007}
\BIBentryALTinterwordspacing
T.~Gneiting and A.~E. Raftery, ``Strictly proper scoring rules, prediction, and estimation,'' vol. 102, no. 477, pp. 359--378. [Online]. Available: \url{http://www.tandfonline.com/doi/abs/10.1198/016214506000001437}
\BIBentrySTDinterwordspacing
\bibitem{ho_denoising_2020}
\BIBentryALTinterwordspacing
J.~Ho, A.~Jain, and P.~Abbeel, ``Denoising diffusion probabilistic models.'' [Online]. Available: \url{http://arxiv.org/abs/2006.11239}
\BIBentrySTDinterwordspacing
\end{thebibliography}

View File

@ -0,0 +1,62 @@
This is BibTeX, Version 0.99d (TeX Live 2023)
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: extended_abstract.aux
The style file: IEEEtran.bst
Reallocated singl_function (elt_size=4) to 100 items from 50.
Reallocated singl_function (elt_size=4) to 100 items from 50.
Reallocated singl_function (elt_size=4) to 100 items from 50.
Reallocated wiz_functions (elt_size=4) to 6000 items from 3000.
Reallocated singl_function (elt_size=4) to 100 items from 50.
Database file #1: ../Thesis/references.bib
-- IEEEtran.bst version 1.14 (2015/08/26) by Michael Shell.
-- http://www.michaelshell.org/tex/ieeetran/bibtex/
-- See the "IEEEtran_bst_HOWTO.pdf" manual for usage information.
Warning--empty year in rezende_variational_2015
Warning--empty journal in koenker_regression_1978
Warning--empty year in koenker_regression_1978
Warning--empty journal in gneiting_strictly_2007
Warning--empty year in gneiting_strictly_2007
Done.
You've used 12 entries,
4087 wiz_defined-function locations,
882 strings with 9644 characters,
and the built_in function-call counts, 6211 in all, are:
= -- 448
> -- 140
< -- 32
+ -- 73
- -- 26
* -- 292
:= -- 987
add.period$ -- 21
call.type$ -- 12
change.case$ -- 15
chr.to.int$ -- 72
cite$ -- 17
duplicate$ -- 462
empty$ -- 525
format.name$ -- 34
if$ -- 1377
int.to.chr$ -- 0
int.to.str$ -- 12
missing$ -- 104
newline$ -- 83
num.names$ -- 10
pop$ -- 321
preamble$ -- 1
purify$ -- 0
quote$ -- 2
skip$ -- 448
stack$ -- 0
substring$ -- 178
swap$ -- 315
text.length$ -- 8
text.prefix$ -- 0
top$ -- 5
type$ -- 12
warning$ -- 5
while$ -- 21
width$ -- 14
write$ -- 139
(There were 5 warnings)

View File

@ -0,0 +1,643 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 21 MAY 2024 18:51
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**"/Users/victormylle/Library/CloudStorage/SeaDrive-VictorMylle(cloud.optimize-it.be)/My Libraries/UGent/Computer_Science/2e jaar/Thesis/Reports/Extended_Abstract/extended_abstract"
(/Users/victormylle/Library/CloudStorage/SeaDrive-VictorMylle(cloud.optimize-it.be)/My Libraries/UGent/Computer_Science/2e jaar/Thesis/Reports/Extended_Abstract/extended_abstract.tex
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-02-22> (./IEEEtran.cls
Document Class: IEEEtran 2014/09/17 V1.8a by Michael Shell
-- See the "IEEEtran_HOWTO" manual for usage information.
-- http://www.michaelshell.org/tex/ieeetran/
\@IEEEtrantmpdimenA=\dimen140
\@IEEEtrantmpdimenB=\dimen141
\@IEEEtrantmpdimenC=\dimen142
\@IEEEtrantmpcountA=\count185
\@IEEEtrantmpcountB=\count186
\@IEEEtrantmpcountC=\count187
\@IEEEtrantmptoksA=\toks16
LaTeX Font Info: Trying to load font information for OT1+ptm on input line 458.
(/usr/local/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd
File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
)
-- Using 8.5in x 11in (letter) paper.
-- Using PDF output.
\@IEEEnormalsizeunitybaselineskip=\dimen143
-- This is a 9 point document.
\CLASSINFOnormalsizebaselineskip=\dimen144
\CLASSINFOnormalsizeunitybaselineskip=\dimen145
\IEEEnormaljot=\dimen146
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8.5> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8.5> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <14> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <14> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available
(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1039.
LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available
(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1039.
\IEEEquantizedlength=\dimen147
\IEEEquantizedlengthdiff=\dimen148
\IEEEquantizedtextheightdiff=\dimen149
\IEEEilabelindentA=\dimen150
\IEEEilabelindentB=\dimen151
\IEEEilabelindent=\dimen152
\IEEEelabelindent=\dimen153
\IEEEdlabelindent=\dimen154
\IEEElabelindent=\dimen155
\IEEEiednormlabelsep=\dimen156
\IEEEiedmathlabelsep=\dimen157
\IEEEiedtopsep=\skip48
\c@section=\count188
\c@subsection=\count189
\c@subsubsection=\count190
\c@paragraph=\count191
\c@IEEEsubequation=\count192
\abovecaptionskip=\skip49
\belowcaptionskip=\skip50
\c@figure=\count193
\c@table=\count194
\@IEEEeqnnumcols=\count195
\@IEEEeqncolcnt=\count196
\@IEEEsubeqnnumrollback=\count197
\@IEEEquantizeheightA=\dimen158
\@IEEEquantizeheightB=\dimen159
\@IEEEquantizeheightC=\dimen160
\@IEEEquantizeprevdepth=\dimen161
\@IEEEquantizemultiple=\count198
\@IEEEquantizeboxA=\box51
\@IEEEtmpitemindent=\dimen162
\c@IEEEbiography=\count199
\@IEEEtranrubishbin=\box52
) (/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\@emptytoks=\toks17
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
)) (/usr/local/texlive/2023/texmf-dist/tex/latex/amscls/amsthm.sty
Package: amsthm 2020/05/29 v2.20.6
\thm@style=\toks18
\thm@bodyfont=\toks19
\thm@headfont=\toks20
\thm@notefont=\toks21
\thm@headpunct=\toks22
\thm@preskip=\skip51
\thm@postskip=\skip52
\thm@headsep=\skip53
\dth@everypar=\toks23
) (/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2022/04/08 v2.17n AMS math features
\@mathmargin=\skip54
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2021/08/26 v2.01 AMS text
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks24
\ex@=\dimen163
)) (/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen164
) (/usr/local/texlive/2023/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2022/04/08 v2.04 operator names
)
\inf@bad=\count266
LaTeX Info: Redefining \frac on input line 234.
\uproot@=\count267
\leftroot@=\count268
LaTeX Info: Redefining \overline on input line 399.
LaTeX Info: Redefining \colon on input line 410.
\classnum@=\count269
\DOTSCASE@=\count270
LaTeX Info: Redefining \ldots on input line 496.
LaTeX Info: Redefining \dots on input line 499.
LaTeX Info: Redefining \cdots on input line 620.
\Mathstrutbox@=\box53
\strutbox@=\box54
LaTeX Info: Redefining \big on input line 722.
LaTeX Info: Redefining \Big on input line 723.
LaTeX Info: Redefining \bigg on input line 724.
LaTeX Info: Redefining \Bigg on input line 725.
\big@size=\dimen165
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
\macc@depth=\count271
LaTeX Info: Redefining \bmod on input line 905.
LaTeX Info: Redefining \pmod on input line 910.
LaTeX Info: Redefining \smash on input line 940.
LaTeX Info: Redefining \relbar on input line 970.
LaTeX Info: Redefining \Relbar on input line 971.
\c@MaxMatrixCols=\count272
\dotsspace@=\muskip16
\c@parentequation=\count273
\dspbrk@lvl=\count274
\tag@help=\toks25
\row@=\count275
\column@=\count276
\maxfields@=\count277
\andhelp@=\toks26
\eqnshift@=\dimen166
\alignsep@=\dimen167
\tagshift@=\dimen168
\tagwidth@=\dimen169
\totwidth@=\dimen170
\lineht@=\dimen171
\@envbody=\toks27
\multlinegap=\skip55
\multlinetaggap=\skip56
\mathdisplay@stack=\toks28
LaTeX Info: Redefining \[ on input line 2953.
LaTeX Info: Redefining \] on input line 2954.
) (/usr/local/texlive/2023/texmf-dist/tex/latex/tools/array.sty
Package: array 2022/09/04 v2.5g Tabular extension package (FMi)
\col@sep=\dimen172
\ar@mcellbox=\box55
\extrarowheight=\dimen173
\NC@list=\toks29
\extratabsurround=\skip57
\backup@length=\skip58
\ar@cellbox=\box56
) (/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\KV@toks@=\toks30
) (/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2022/03/10 v1.4e Standard LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2021/08/11 v1.11 sin cos tan (DPC)
) (/usr/local/texlive/2023/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex
))
\Gin@req@height=\dimen174
\Gin@req@width=\dimen175
) (/usr/local/texlive/2023/texmf-dist/tex/latex/subfig/subfig.sty
Package: subfig 2005/06/28 ver: 1.3 subfig package
(/usr/local/texlive/2023/texmf-dist/tex/latex/caption/caption3.sty
Package: caption3 2023/03/12 v2.4 caption3 kernel (AR)
\caption@tempdima=\dimen176
\captionmargin=\dimen177
\caption@leftmargin=\dimen178
\caption@rightmargin=\dimen179
\caption@width=\dimen180
\caption@indent=\dimen181
\caption@parindent=\dimen182
\caption@hangindent=\dimen183
Package caption Info: Unknown document class (or package),
(caption) standard defaults will be used.
Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEtablestring \footnotesize \bgroup \par \centering \@IEEEtabletopskipstrut {\normalfont \footnotesize #1}\\{\normalfont \footnotesize \scshape #2}\par \addvspace {0.5\baselineskip }\egroup \@IEEEtablecaptionsepspace \else \@IEEEfigurecaptionsepspace \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}\nobreakspace \nobreakspace #2}\ifdim \wd \@tempboxa >\hsize \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}\nobreakspace \nobreakspace }\parbox [t]{\hsize }{\normalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLASSOPTIONconference \hbox to\hsize {\normalfont \footnotesize \hfil \box \@tempboxa \hfil }\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi \fi \fi on input line 1176.
)
\c@KVtest=\count278
\sf@farskip=\skip59
\sf@captopadj=\dimen184
\sf@capskip=\skip60
\sf@nearskip=\skip61
\c@subfigure=\count279
\c@subfigure@save=\count280
\c@lofdepth=\count281
\c@subtable=\count282
\c@subtable@save=\count283
\c@lotdepth=\count284
\sf@top=\skip62
\sf@bottom=\skip63
) (/usr/local/texlive/2023/texmf-dist/tex/latex/tools/xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
) (/usr/local/texlive/2023/texmf-dist/tex/latex/natbib/natbib.sty
Package: natbib 2010/09/13 8.31b (PWD, AO)
\bibhang=\skip64
\bibsep=\skip65
LaTeX Info: Redefining \cite on input line 694.
\c@NAT@ctr=\count285
) (/usr/local/texlive/2023/texmf-dist/tex/latex/stmaryrd/stmaryrd.sty
Package: stmaryrd 1994/03/03 St Mary's Road symbol package
\symstmry=\mathgroup6
LaTeX Font Info: Overwriting symbol font `stmry' in version `bold'
(Font) U/stmry/m/n --> U/stmry/b/n on input line 89.
) (/usr/local/texlive/2023/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2022/06/12 v2.14 LaTeX color extensions (UK)
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 227.
(/usr/local/texlive/2023/texmf-dist/tex/latex/graphics/mathcolor.ltx)
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1353.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1357.
Package xcolor Info: Model `RGB' extended on input line 1369.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1371.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1372.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1373.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1374.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1375.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1376.
) (/usr/local/texlive/2023/texmf-dist/tex/latex/mathtools/mathtools.sty
Package: mathtools 2022/06/29 v1.29 mathematical typesetting tools
(/usr/local/texlive/2023/texmf-dist/tex/latex/tools/calc.sty
Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ)
\calc@Acount=\count286
\calc@Bcount=\count287
\calc@Adimen=\dimen185
\calc@Bdimen=\dimen186
\calc@Askip=\skip66
\calc@Bskip=\skip67
LaTeX Info: Redefining \setlength on input line 80.
LaTeX Info: Redefining \addtolength on input line 81.
\calc@Ccount=\count288
\calc@Cskip=\skip68
) (/usr/local/texlive/2023/texmf-dist/tex/latex/mathtools/mhsetup.sty
Package: mhsetup 2021/03/18 v1.4 programming setup (MH)
)
\g_MT_multlinerow_int=\count289
\l_MT_multwidth_dim=\dimen187
\origjot=\skip69
\l_MT_shortvdotswithinadjustabove_dim=\dimen188
\l_MT_shortvdotswithinadjustbelow_dim=\dimen189
\l_MT_above_intertext_sep=\dimen190
\l_MT_below_intertext_sep=\dimen191
\l_MT_above_shortintertext_sep=\dimen192
\l_MT_below_shortintertext_sep=\dimen193
\xmathstrut@box=\box57
\xmathstrut@dim=\dimen194
) (/usr/local/texlive/2023/texmf-dist/tex/latex/float/float.sty
Package: float 2001/11/08 v1.3d Float enhancements (AL)
\c@float@type=\count290
\float@exts=\toks31
\float@box=\box58
\@float@everytoks=\toks32
\@floatcapt=\box59
) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/textcomp.sty
Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
) (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
\pgfutil@everybye=\toks33
\pgfutil@tempdima=\dimen195
\pgfutil@tempdimb=\dimen196
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box60
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10)
))
Package: pgf 2023-01-15 v3.1.10 (3.1.10)
(/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2023-01-15 v3.1.10 (3.1.10)
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks34
\pgfkeys@temptoks=\toks35
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex
\pgfkeys@tmptoks=\toks36
))
\pgf@x=\dimen197
\pgf@y=\dimen198
\pgf@xa=\dimen199
\pgf@ya=\dimen256
\pgf@xb=\dimen257
\pgf@yb=\dimen258
\pgf@xc=\dimen259
\pgf@yc=\dimen260
\pgf@xd=\dimen261
\pgf@yd=\dimen262
\w@pgf@writea=\write3
\r@pgf@reada=\read2
\c@pgf@counta=\count291
\c@pgf@countb=\count292
\c@pgf@countc=\count293
\c@pgf@countd=\count294
\t@pgf@toka=\toks37
\t@pgf@tokb=\toks38
\t@pgf@tokc=\toks39
\pgf@sys@id@count=\count295
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10)
)
Driver file for pgf: pgfsys-pdftex.def
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10)
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10)
))) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfsyssoftpath@smallbuffer@items=\count296
\pgfsyssoftpath@bigbuffer@items=\count297
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10)
)) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2023-01-15 v3.1.10 (3.1.10)
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen263
\pgfmath@count=\count298
\pgfmath@box=\box61
\pgfmath@toks=\toks40
\pgfmath@stack@operand=\toks41
\pgfmath@stack@operation=\toks42
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count299
)) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
File: pgfcorepoints.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@picminx=\dimen264
\pgf@picmaxx=\dimen265
\pgf@picminy=\dimen266
\pgf@picmaxy=\dimen267
\pgf@pathminx=\dimen268
\pgf@pathmaxx=\dimen269
\pgf@pathminy=\dimen270
\pgf@pathmaxy=\dimen271
\pgf@xx=\dimen272
\pgf@xy=\dimen273
\pgf@yx=\dimen274
\pgf@yy=\dimen275
\pgf@zx=\dimen276
\pgf@zy=\dimen277
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
File: pgfcorepathconstruct.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@path@lastx=\dimen278
\pgf@path@lasty=\dimen279
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
File: pgfcorepathusage.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@shorten@end@additional=\dimen280
\pgf@shorten@start@additional=\dimen281
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
File: pgfcorescopes.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfpic=\box62
\pgf@hbox=\box63
\pgf@layerbox@main=\box64
\pgf@picture@serial@count=\count300
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
File: pgfcoregraphicstate.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgflinewidth=\dimen282
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
File: pgfcoretransformations.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@pt@x=\dimen283
\pgf@pt@y=\dimen284
\pgf@pt@temp=\dimen285
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
File: pgfcorequick.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
File: pgfcoreobjects.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
File: pgfcorepathprocessing.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
File: pgfcorearrows.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfarrowsep=\dimen286
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
File: pgfcoreshade.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@max=\dimen287
\pgf@sys@shading@range@num=\count301
\pgf@shadingcount=\count302
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
File: pgfcoreimage.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
File: pgfcoreexternal.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfexternal@startupbox=\box65
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
File: pgfcorelayers.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
File: pgfcoretransparency.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
File: pgfcorepatterns.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
File: pgfcorerdf.code.tex 2023-01-15 v3.1.10 (3.1.10)
))) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
File: pgfmoduleshapes.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfnodeparttextbox=\box66
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
File: pgfmoduleplot.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
Package: pgfcomp-version-0-65 2023-01-15 v3.1.10 (3.1.10)
\pgf@nodesepstart=\dimen288
\pgf@nodesepend=\dimen289
) (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
Package: pgfcomp-version-1-18 2023-01-15 v3.1.10 (3.1.10)
)) (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/utilities/pgffor.sty (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) (/usr/local/texlive/2023/texmf-dist/tex/latex/pgf/math/pgfmath.sty (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2023-01-15 v3.1.10 (3.1.10)
\pgffor@iter=\dimen290
\pgffor@skip=\dimen291
\pgffor@stack=\toks43
\pgffor@toks=\toks44
)) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Package: tikz 2023-01-15 v3.1.10 (3.1.10)
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
File: pgflibraryplothandlers.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@plot@mark@count=\count303
\pgfplotmarksize=\dimen292
)
\tikz@lastx=\dimen293
\tikz@lasty=\dimen294
\tikz@lastxsaved=\dimen295
\tikz@lastysaved=\dimen296
\tikz@lastmovetox=\dimen297
\tikz@lastmovetoy=\dimen298
\tikzleveldistance=\dimen299
\tikzsiblingdistance=\dimen300
\tikz@figbox=\box67
\tikz@figbox@bg=\box68
\tikz@tempbox=\box69
\tikz@tempbox@bg=\box70
\tikztreelevel=\count304
\tikznumberofchildren=\count305
\tikznumberofcurrentchild=\count306
\tikz@fig@count=\count307
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
File: pgfmodulematrix.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfmatrixcurrentrow=\count308
\pgfmatrixcurrentcolumn=\count309
\pgf@matrix@numberofcolumns=\count310
)
\tikz@expandcount=\count311
(/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex
File: tikzlibrarytopaths.code.tex 2023-01-15 v3.1.10 (3.1.10)
))) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex
File: tikzlibrarypositioning.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarycalc.code.tex
File: tikzlibrarycalc.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2023-01-16 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count312
\l__pdf_internal_box=\box71
) (./extended_abstract.aux)
\openout1 = `extended_abstract.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
-- Lines per column: 61 (exact).
(/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count313
\scratchdimen=\dimen301
\scratchbox=\box72
\nofMPsegments=\count314
\nofMParguments=\count315
\everyMPshowfont=\toks45
\MPscratchCnt=\count316
\MPscratchDim=\dimen302
\MPnumerator=\count317
\makeMPintoPDFobject=\count318
\everyMPtoPDFconversion=\toks46
) (/usr/local/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 485.
(/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
))
Package caption Info: Begin \AtBeginDocument code.
Package caption Info: subfig package v1.3 is loaded.
Package caption Info: End \AtBeginDocument code.
LaTeX Font Info: Trying to load font information for U+msa on input line 33.
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 33.
(/usr/local/texlive/2023/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
LaTeX Font Info: Trying to load font information for U+stmry on input line 33.
(/usr/local/texlive/2023/texmf-dist/tex/latex/stmaryrd/Ustmry.fd) [1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc}
]
<../Thesis/images/quantile_regression/reconstructed_cdf.png, id=13, 722.7pt x 433.62pt>
File: ../Thesis/images/quantile_regression/reconstructed_cdf.png Graphic file (type png)
<use ../Thesis/images/quantile_regression/reconstructed_cdf.png>
Package pdftex.def Info: ../Thesis/images/quantile_regression/reconstructed_cdf.png used on input line 102.
(pdftex.def) Requested size: 252.0pt x 151.20026pt.
[2 <../Thesis/images/quantile_regression/reconstructed_cdf.png>]
<../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png, id=24, 1180.8918pt x 595.5048pt>
File: ../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png Graphic file (type png)
<use ../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png>
Package pdftex.def Info: ../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png used on input line 111.
(pdftex.def) Requested size: 252.0pt x 127.07693pt.
<../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png, id=25, 1180.8918pt x 595.5048pt>
File: ../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png Graphic file (type png)
<use ../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png>
Package pdftex.def Info: ../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png used on input line 112.
(pdftex.def) Requested size: 252.0pt x 127.07693pt.
<../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg, id=26, 1166.4378pt x 581.0508pt>
File: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg Graphic file (type jpg)
<use ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg>
Package pdftex.def Info: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg used on input line 129.
(pdftex.def) Requested size: 113.39923pt x 56.48598pt.
<../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg, id=27, 1166.4378pt x 581.0508pt>
File: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg Graphic file (type jpg)
<use ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg>
Package pdftex.def Info: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg used on input line 131.
(pdftex.def) Requested size: 113.39923pt x 56.48598pt.
<../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg, id=28, 1166.4378pt x 581.0508pt>
File: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg Graphic file (type jpg)
<use ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg>
Package pdftex.def Info: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg used on input line 135.
(pdftex.def) Requested size: 113.39923pt x 56.48598pt.
<../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg, id=29, 1166.4378pt x 581.0508pt>
File: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg Graphic file (type jpg)
<use ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg>
Package pdftex.def Info: ../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg used on input line 138.
(pdftex.def) Requested size: 113.39923pt x 56.48598pt.
Overfull \hbox (15.64992pt too wide) in paragraph at lines 144--145
[][]
[]
[3 <../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png> <../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png> <../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg> <../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg> <../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg> <../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg>]
<../Thesis/images/comparison/final_comparison.png, id=35, 1003.8303pt x 711.1368pt>
File: ../Thesis/images/comparison/final_comparison.png Graphic file (type png)
<use ../Thesis/images/comparison/final_comparison.png>
Package pdftex.def Info: ../Thesis/images/comparison/final_comparison.png used on input line 168.
(pdftex.def) Requested size: 252.0pt x 178.52162pt.
(./extended_abstract.bbl
Underfull \hbox (badness 2707) in paragraph at lines 45--47
\OT1/ptm/m/n/9 par-ties.'' [On-line]. Avail-able: https://www.elia.be/-
[]
Underfull \hbox (badness 10000) in paragraph at lines 45--47
\OT1/ptm/m/n/9 /media/project/elia/elia-site/customers/tarrifs-and-
[]
Underfull \hbox (badness 10000) in paragraph at lines 45--47
\OT1/ptm/m/n/9 invoicing/tariffs-and-invoicing/en/grille-tarifaire-desequilibre-
[]
[4 <../Thesis/images/comparison/final_comparison.png>]
Overfull \hbox (12.66125pt too wide) in paragraph at lines 75--77
\OT1/ptm/m/n/9 http://www.tandfonline.com/doi/abs/10.1198/016214506000001437
[]
)
** Conference Paper **
Before submitting the final camera ready copy, remember to:
1. Manually equalize the lengths of two columns on the last page
of your paper;
2. Ensure that any PostScript and/or PDF output post-processing
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[5
] (./extended_abstract.aux) )
Here is how much of TeX's memory you used:
16685 strings out of 476025
336802 string characters out of 5790017
1871388 words of memory out of 5000000
36840 multiletter control sequences out of 15000+600000
546953 words of font info for 103 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
84i,13n,80p,1556b,679s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cmextra/cmex9.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi9.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy9.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on extended_abstract.pdf (5 pages, 896022 bytes).
PDF statistics:
82 PDF objects out of 1000 (max. 8388607)
44 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
53 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,182 @@
\documentclass[9pt,conference]{IEEEtran}
\usepackage{amssymb,amsthm,amsmath,array}
\usepackage{graphicx}
\usepackage[caption=false,font=footnotesize]{subfig}
\usepackage{xspace}
\usepackage[sort&compress, numbers]{natbib}
\usepackage{stmaryrd}
\usepackage{xcolor}
\usepackage{mathtools}
\usepackage{float}
\usepackage{textcomp}
\usepackage{tikz}
\usetikzlibrary{positioning, calc}
\begin{document}
\title{Generative modeling of electricity imbalance prices for battery optimization}
\author{
Victor Mylle \\
\\
Promotors:
\begin{tabular}[t]{l}
prof. dr. ir. Chris Develder \\
prof. Bert Claessens
\end{tabular}
\\\\
Supervisor:
\begin{tabular}[t]{l}
Jonas Van Gompel
\end{tabular}
}
\maketitle
\begin{abstract}
In this study, different models are trained to model the imbalance prices of the Belgian electricity market and optimize battery usage for energy trading. The models are trained on published data from Elia, the Belgian Transmission System Operator (TSO), and evaluated using Mean Absolute Error (MAE), Mean Squared Error (MSE), and Continuous Ranked Probability Score (CRPS). The model types include linear models, non-linear models, recurrent neural networks and diffusion models. Optimizing battery usage is done in a two-step approach. First, the models are used to generate full-day Net Regulation Volume (NRV) samples, which are then used to reconstruct the imbalance prices. These prices are then incorporated into the decision-making to charge and discharge a battery. For each of the imbalance price samples, a charging and discharging threshold is determined by a simple gird search to optimize the maximum profit. For each day, the mean of these thresholds is used to charge and discharge the battery. The results show that the diffusion model outperforms the other models in terms of profit generation. The diffusion model achieves a profit increase of 9.74\% over the baseline policy, which uses the previous day's NRV as a prediction. This demonstrates the potential benefits of advanced generative models for enhancing decision-making in energy trading. \\
\end{abstract}
\begin{IEEEkeywords}
Generative modeling, imbalance prices, diffusion model, battery optimization
\end{IEEEkeywords}
\section{Introduction}
The electricity market is a complex system influenced by various factors, with renewable energy sources adding significant volatility. Renewables, such as wind and solar power, are inherently variable and unpredictable, creating challenges in maintaining a balance between electricity supply and demand. This balance is managed by the Transmission System Operator (TSO), Elia in Belgium, using reserves to address potential imbalances, directly impacting electricity imbalance prices.
Market participants with flexible assets, like industrial batteries, can help stabilize the grid, reducing Elia's reliance on reserves and lowering system costs. These participants aim to maximize profits by buying electricity when prices are low and selling when prices are high.
Forecasting imbalance prices is crucial for market participants to make informed trading decisions. Current industry practices often use simplistic strategies, such as fixed price thresholds, which are suboptimal. This thesis aims to develop generative models to forecast imbalance prices in the Belgian electricity market, optimizing battery usage for profit maximization.
The thesis consists of two parts: modeling the Net Regulation Volume (NRV) for the next day and optimizing a policy using NRV forecasts to maximize profit through strategic battery usage. Various models will be trained and compared based on their profit optimization performance.
\section{Background}
\subsection{Electricity Market}
The electricity market is a complex ecosystem comprising various stakeholders who work collectively to ensure the balance between electricity generation and consumption, while also aiming to achieve profitability. Key participants in this market include Producers, Consumers, Transmission System Operators (TSOs), Distribution System Operators (DSOs), Balance Responsible Parties (BRPs), and Balancing Service Providers (BSPs). Producers generate electricity using various methods such as coal, nuclear energy, and renewable sources like wind and solar. Consumers, which include households, businesses, and industries, use this electricity. \cite{noauthor_geliberaliseerde_nodate}
The grid's stability is maintained by the TSO, responsible for the high-voltage transmission of electricity. In Belgium, this role is performed by Elia. The TSO ensures the grid's balance by activating reserves provided by BSPs, who submit bids for supplying these reserves when needed. This balance is crucial because any discrepancy between electricity generated and consumed can lead to instability, potentially causing blackouts and equipment damage.
A fundamental aspect of maintaining grid stability involves the role of BRPs, which are entities responsible for forecasting and balancing electricity consumption and generation. They submit daily balance schedules to the TSO, and any deviation from these schedules results in imbalance charges, which are calculated based on the System Imbalance (SI) and the Net Regulation Volume (NRV). The NRV represents the volume of reserves activated by the TSO to maintain balance, while the SI is derived from the discrepancy between scheduled and actual power exchanges minus the NRV.
Elia uses three types of reserves to manage imbalances: Frequency Containment Reserves (FCR), Automatic Frequency Restoration (aFRR), and Manual Frequency Restoration (mFRR) \cite{noauthor_fcr_nodate, noauthor_afrr_nodate, noauthor_mfrr_nodate}. The activation of these reserves follows a specific order based on their response times to ensure grid stability. The imbalance price, a key component in managing grid stability, is determined by the highest marginal price of activated reserves for a given quarter-hour. This price calculation involves various factors including the SI, NRV, and specific pricing formulas set by the TSO \cite{elia_tariffs_2022}.
\subsection{Generative Modeling}
Given the complexity and variability in factors affecting the imbalance price, forecasting it is challenging. Traditional models struggle due to the dynamic nature of these variables and the changing formulas used by the TSO. An alternative approach involves forecasting the NRV and using this to calculate the imbalance price using the TSO's formulas. This approach requires accurate modeling of the NRV distribution, which can be achieved through generative modeling techniques. The modeling is done using multiple conditional input features like load, wind, photovoltaic and nominal net position. Deterministic forecasting is often not accurate and does not capture the uncertainty in the NRV, which is crucial for managing risk and optimizing trading strategies.
Generative modeling, a branch of machine learning, aims to generate new data samples that resemble the training data. Techniques such as Generative Adversarial Networks (GANs), Variational Autoencoders (VAEs), Normalizing Flows, and Diffusion Models are commonly used in this field \cite{goodfellow_generative_2014, kingma_auto-encoding_2022, rezende_variational_2015, sohl-dickstein_deep_2015}. These models can learn the underlying distribution of the NRV and generate multiple scenarios, aiding in better decision-making.
Quantile regression is another technique that can be used to estimate the distribution of the NRV without prior knowledge of its form. By predicting multiple quantiles, the model can reconstruct the cumulative distribution function (CDF) of the NRV and generate samples accordingly. This method, introduced by Koenker and Bassett \cite{koenker_regression_1978}, is advantageous in capturing the full range of possible outcomes, especially in the tails of the distribution which are critical for risk management. The models are optimized using the Pinball Loss, a metric that penalizes underestimation and overestimation of quantiles, ensuring a balanced prediction across the distribution. The formula for the Pinball Loss is given by:
\begin{equation}
L_{\tau}(y, \hat{y}) = \begin{cases}
(\tau - 1)(y - \hat{y}) & \text{if } y < \hat{y} \\
\tau(y - \hat{y}) & \text{if } y \geq \hat{y}
\end{cases}
\end{equation}
where $y$ is the true value, $\hat{y}$ is the predicted value, and $\tau$ is the quantile level.
In this thesis, both autoregressive and non-autoregressive models are explored. Autoregressive models generate samples sequentially, incorporating dependencies between consecutive time steps, while non-autoregressive models generate all values simultaneously, allowing for faster but potentially less realistic samples. Evaluating the performance of these models involves metrics such as the Mean Absolute Error (MAE), Mean Squared Error (MSE), and the Continuous Ranked Probability Score (CRPS) \cite{gneiting_strictly_2007}, ensuring a comprehensive assessment of their accuracy and reliability. A more advanced diffusion model is also considered, which has shown promising results in generating realistic samples and capturing complex distributions \cite{sohl-dickstein_deep_2015}. Various implementations of diffusion models exist, such as the Denoising Diffusion Probabilistic Model (DDPM) \cite{ho_denoising_2020}.
\subsection{Battery Optimization Policies}
Battery optimization in the electricity market involves strategic decisions on when to charge and discharge batteries to maximize profit and maintain battery health. Organizations aim to buy electricity when prices are low and sell when prices are high, based on predictions of future market conditions. In this thesis, the optimization policy leverages generative models to forecast imbalance prices by reconstructing these prices from Net Regulation Volume (NRV) samples for the next day. The policy aims to maximize profit by charging and discharging, while also considering battery health. The maximum number of charge cycles for a battery is around 400 cycles a year. Exceeding this limit can lead to battery degradation, reducing its capacity and efficiency. To prevent excessive charging and discharging, a penalty parameter is introduced in the optimization policy, ensuring a balance between profit maximization and battery health.
\subsubsection{Baseline Policies}
Two baseline policies are established for comparison. The first policy uses fixed thresholds for charging and discharging the battery, determined by a grid search on historical imbalance price data to maximize profit. A penalty parameter is introduced to minimize excessive charging and discharging, preserving battery health.
The second baseline policy sets thresholds based on the NRV of the previous day, under the assumption that the next day's NRV will be similar. These thresholds are also optimized using a grid search on reconstructed imbalance prices derived from the previous day's NRV, including a penalty parameter for battery health.
\subsubsection{Policies Based on NRV Generations}
A more advanced policy utilizes multiple NRV predictions for the next day, generated by a trained generative model. Each NRV sample is used to reconstruct imbalance prices, and optimal charging and discharging thresholds are determined for each sample through a grid search incorporating a penalty parameter to reduce battery degradation. The final thresholds for the next day are obtained by averaging these optimal thresholds. This approach showcases the potential of using NRV generations to enhance decision-making in battery optimization.
\section{Results \& Discussion}
\subsection{NRV Modeling}
Multiple model types are trained to generate new full-day samples of the NRV for a certain day. This is done by training the models on data published by Elia, the TSO in Belgium. The data consists of the NRV, load history and forecast, photovoltaic power history and forecast, wind power history and forecast, and the nominal net position. The models are evaluated using MAE, MSE, and CRPS.
The first set of models includes linear models, non-linear models, and recurrent neural networks like GRU. These models are trained using Quantile Regression to estimate the cumulative distribution of the NRV values. The models output multiple quantile values which can be interpolated to generate a cumulative distribution function. For each quarter of the day, such distribution is predicted and reconstructed. The distributions are then used to sample NRV values and generate full-day NRV predictions.
The quantiles used during this study are 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are chosen to get a good approximation of the cumulative distribution of the NRV. More quantiles are used in the tails of the distribution to ensure a good approximation of the extreme values which is important for risk management. An example of a reconstruction of the cumulative NRV distribution for a certain quarter is shown in Figure \ref{fig:cdf_example}. This distribution can then be used to sample NRV values for that quarter.
\begin{figure}[ht]
\centering
\includegraphics[width=\columnwidth]{../Thesis/images/quantile_regression/reconstructed_cdf.png}
\caption{Example of a reconstructed cumulative distribution function of the NRV for a certain quarter.}
\label{fig:cdf_example}
\end{figure}
The models using Quantile Regression are trained in both autoregressive and non-autoregressive settings. The autoregressive models output the NRV quantile values for each quarter sequentially, while the non-autoregressive models output all quantile values simultaneously. Sampling from the autoregressive models is done by feeding the sampled NRV value back into the model to predict the quantiles of the NRV for the next quarter. This makes sure the dependencies between the quarters are captured in the samples and leads to smoother samples. The non-autoregressive models do not capture these dependencies because they output all quantile values simultaneously for a full day. For each quarter, the cumulative distribution functions are reconstructed and sampled. The sample for a certain quarter does not depend on which value was sampled for the previous quarter. This leads to less smooth samples but allows for faster generation of samples. An example of this behavior is shown in Figure \ref{fig:autoregressive_vs_non-autoregressive}. The autoregressive model generates smoother samples compared to the non-autoregressive model.
\begin{figure}[ht]
\centering
\subfloat[Autoregressive model]{\includegraphics[width=\columnwidth]{../Thesis/images/quantile_regression/aqr_linear_model_samples/AQR_NRV_Load_Wind_PV_NP_QE-Sample_864.png}} \\
\subfloat[Non-autoregressive model]{\includegraphics[width=\columnwidth]{../Thesis/images/quantile_regression/naqr_linear_model_samples/NAQR_NRV_Load_Wind_PV_NP-Sample_864.png}}
\caption{Comparison between autoregressive and non-autoregressive models. The samples are generated using a linear model using all input features.}
\label{fig:autoregressive_vs_non-autoregressive}
\end{figure}
The different models are evaluated using MAE, MSE and CRPS to get an insight into the modeling performance of the models. The results show that non-autoregressive models achieve a better CRPS score than autoregressive models while having worse MAE and MSE scores. An explanation for this behavior is the error propagation in the sampling using autoregressive models. When a sampled value is fed back into the model to predict the quantiles of the next quarter, the error in the sampled value is propagated and the outputted quantiles are shifted. The CRPS evaluates these shifted distributions against the target values which can result in a worse score.
The results also show that using more input features leads to better modeling performance for the autoregressive models. This is not always the case for the non-autoregressive models. Because non-autoregressive models need to output the quantiles for every quarter of the day simultaneously, they need to capture more complex patterns in the input data. The input data itself also contains more values for non-autoregressive models because the forecasts for the whole day are included while the autoregressive models only use the forecasts for the next quarter. This can lead to the non-autoregressive models not being able to capture the complex patterns in the input data and having worse modeling performance when more input features are used.
A more recent model type, diffusion models, is also explored. These models are trained using the Denoising Diffusion Probabilistic Model (DDPM) which has shown promising results in generating realistic samples and capturing complex distributions. The diffusion models are trained using the same input features as the other models and are evaluated using the same metrics. The architecture used for the diffusion models is a simple feedforward neural network that uses linear hidden layers with a ReLU activation function. More advanced architectures can be explored in future work to improve the modeling performance of the diffusion models. Each layer of the diffusion model is conditioned on the input features which guide the sampling process. This guidance is very simple and can be improved by using more complex conditioning mechanisms.
Samples are generated using the diffusion models by sampling noise from a standard normal distribution and feeding it through the model together with the input features. The model denoises the noise in multiple steps to generate a full-day sample of the NRV. This process is shown in Figure \ref{fig:diffusion_intermediates}. First, the generations are very noisy and do not resemble the target distribution. After multiple denoising steps, the generations become more realistic and resemble the target distribution more closely.
\begin{figure}[h]
\centering
\begin{tikzpicture}
% Node for Image 1
\node (img1) {\includegraphics[width=0.45\columnwidth]{../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 1_00000000.jpeg}};
% Node for Image 2 with an arrow from Image 1
\node[right=of img1] (img2) {\includegraphics[width=0.45\columnwidth]{../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 2_00000000.jpeg}};
\draw[-latex] (img1) -- (img2);
% Node for Image 3 below Image 1 with an arrow from Image 2
\node[below=of img1] (img3) {\includegraphics[width=0.45\columnwidth]{../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 3_00000000.jpeg}};
% Node for Image 4 with an arrow from Image 3
\node[right=of img3] (img4) {\includegraphics[width=0.45\columnwidth]{../Thesis/images/diffusion/results/intermediates/Testing Intermediates 864_Sample intermediate 4_00000000.jpeg}};
\draw[-latex] (img3) -- (img4);
% Complex arrow from Image 2 to Image 3
\coordinate (Middle) at ($(img2.south)!0.5!(img3.north)$);
\draw[-latex] (img2.south) |- (Middle) -| (img3.north);
\end{tikzpicture}
\caption{Intermediate steps of the diffusion model for example 864 from the test set. The confidence intervals shown in the plots are made using 100 samples.}
\label{fig:diffusion_intermediates}
\end{figure}
When comparing the different models based on the evaluation metrics MAE, MSE, and CRPS, several trends emerge. Firstly, non-autoregressive models tend to outperform autoregressive models in terms of CRPS, suggesting they are better at capturing the overall distribution of the target variable. However, autoregressive models typically achieve lower MAE and MSE scores, indicating they provide more accurate point predictions.
In terms of complexity, non-linear models generally perform better than their linear counterparts across all metrics, indicating that capturing non-linear relationships in the data is crucial for improving model performance. Interestingly, GRU models, despite their complexity and higher number of parameters, do not always outperform simpler non-linear models, particularly in the autoregressive setting.
The diffusion models, while promising in their ability to generate realistic samples, show worse performance in terms of MAE, MSE, and CRPS. This discrepancy is likely due to the narrow confidence intervals produced by these models, which do not capture the variability present in the data.
It is difficult to draw definitive conclusions about the best model type, as their performance varies across different metrics and visual inspection of the generated samples. However, diffusion models show potential for capturing complex distributions, while non-linear models offer a good balance between accuracy and complexity.
\subsection{Policy Evaluation}
The goal of this study is to use the imbalance price generations to optimize battery usage for profit maximization. The simple policy determines a charging and discharging threshold for each imbalance price sample of a certain day by performing a simple grid search to maximize the profit. The mean of these thresholds is then used to charge and discharge the battery for that day. The policy is evaluated on a test set that starts on 01-01-2023 and ends on 12-12-2023. Days with missing data are excluded from the evaluation for a fair comparison.
One of the key questions is if the metrics used to evaluate the models also correlate with the profit made by the policies. This is not the case and the models that perform best in terms of the evaluation metrics do not necessarily generate the most profit. Because of this, the profit needs to be evaluated during the training process of the models. If another metric is used to evaluate the models and do early stopping, the models might be overfitting too much. A validation set is used consisting of the last two months of 2022 to evaluate the profit of the policy during the training of the models. Evaluating the whole test set during the training process is not feasible because of the computational cost. The validation set gives a good indication of the performance of the profit during the training process. This metric is used to do early stopping and prevent overfitting of the models.
The penalty parameter was tuned for every model to prevent excessive charging and discharging of the battery. A total of 283 charge cycles can be used for the battery during the test set. This also makes comparing the profit of the different models and policies fair because more charge cycles would lead to more profit. For the evaluation of the policy using the different models, a battery of 2MWh with a charge/discharge power of 1MW is used.
The results show that the diffusion model outperforms the other models in terms of profit generation. The diffusion model achieves a profit increase of 9.74\% over the baseline policy, which uses the previous day's NRV as a prediction. Only the diffusion model was able to outperform the baseline policy. The results are shown in Figure \ref{fig:profit_comparison}.
\begin{figure}[ht]
\centering
\includegraphics[width=\columnwidth]{../Thesis/images/comparison/final_comparison.png}
\caption{Comparison of the profit made by the different policies and baselines using the test set.}
\label{fig:profit_comparison}
\end{figure}
\section{Conclusion}
This thesis explored the use of generative models to model the Net Regulation Volume (NRV) and optimize battery charging and discharging policies in the electricity market. Various models were trained and assessed using metrics such as Mean Absolute Error (MAE), Mean Squared Error (MSE), and Continuous Ranked Probability Score (CRPS). The primary goal was to model imbalance prices and use these predictions to enhance battery optimization policies.
The results indicated that traditional evaluation metrics do not always align with the profitability of the policies. Consequently, models were evaluated based on the profit they generated, revealing that better modeling performance does not necessarily lead to higher profits. Among the tested models, only the diffusion model outperformed the baseline policy, achieving a 9.74\% increase in profit.
The findings highlight the potential of generative modeling in modeling imbalance prices and optimizing energy trading strategies. Future work could involve more sophisticated diffusion model implementations and advanced conditioning techniques to further improve battery utilization and profitability. This thesis demonstrates that focusing on profitability as a measure of success can lead to more practical applications in the energy market.
\bibliographystyle{IEEEtran}
\bibliography{../Thesis/references}
\end{document}

View File

@ -0,0 +1,9 @@
@article{code1,
title={Article Title},
author={A. Firstauthor and A. Secondauthor},
journal={Journal name},
volume={1},
pages={1--2},
year={2023},
publisher={Publisher}
}

Binary file not shown.

BIN
Reports/February/ea-en.pdf Normal file

Binary file not shown.

BIN
Reports/February/ea-nl.pdf Normal file

Binary file not shown.

BIN
Reports/February/eb-en.pdf Normal file

Binary file not shown.

View File

@ -0,0 +1,185 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Ghent University document class
% Created by DF Benoit, December 15, 2022
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ugent-doc}
% Required packages
\RequirePackage{kvoptions}
\RequirePackage{geometry}
\RequirePackage{calc}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
% ugent-doc specific options (kvoptions)
\SetupKeyvalOptions{family=ugd,prefix=ugd@} %UGentArticle
% Declare the class specific options
\DeclareStringOption[eb]{faculty}[eb]
\DeclareStringOption[en]{language}[en]
\DeclareStringOption[article]{doctype}[article]
\DeclareBoolOption[true]{sftitles} % Default: true
\ProcessKeyvalOptions*
% Pass options not specified above to the parent class
% \@unusedoptionlist is a macro in kvoptions
\LoadClass[\@unusedoptionlist]{\ugd@doctype}
% All sections, subsections and subsubsections in sans serif
\ifugd@sftitles
\RequirePackage[sf]{titlesec}
\fi
% Define UGent colors
%= = = = = = = = = = =
% Base colors
% UGent blue
\definecolor{ugentblue}{RGB}{30,100,200}
% UGent yellow
\definecolor{ugentyellow}{RGB}{255,210,0}
% UGent white
\definecolor{ugentwhite}{RGB}{255,255,255}
% UGent black
\definecolor{ugentblack}{RGB}{0,0,0}
% Faculty specific colors
% Faculty of Literature & Philosophy
\definecolor{ugent-lw}{RGB}{241,164,43}
% Faculty of Law
\definecolor{ugent-re}{RGB}{220,78,40}
% Faculty of Science
\definecolor{ugent-we}{RGB}{45,140,168}
% Faculty of Medicine and Health Sciences
\definecolor{ugent-ge}{RGB}{232,94,113}
% Faculty of Engineering and Architecture
\definecolor{ugent-ea}{RGB}{139,190,232}
% Faculty of Economics and Business Administration
\definecolor{ugent-eb}{RGB}{174,176,80}
% Faculty of Veterinary Medicine
\definecolor{ugent-di}{RGB}{130,84,145}
% Faculty of Psychology and Educational Sciences
\definecolor{ugent-pp}{RGB}{251,126,58}
% Faculty of Bioscience Engineering
\definecolor{ugent-bw}{RGB}{39,171,173}
% Faculty of Pharmaceutical Sciences
\definecolor{ugent-fw}{RGB}{190,81,144}
% Faculty of Political and Social Sciences
\definecolor{ugent-ps}{RGB}{113,168,96}
% Define new commands
\def\thetitle#1{\def\@thetitle{#1}}
\def\thesubtitle#1{\def\@thesubtitle{#1}}
\def\infoboxa#1{\def\@infoboxa{#1}}
\def\infoboxb#1{\def\@infoboxb{#1}}
\def\infoboxc#1{\def\@infoboxc{#1}}
\def\infoboxd#1{\def\@infoboxd{#1}}
% Initialize new commands as 'empty'
\def\@thetitle{}
\def\@thesubtitle{}
\def\@infoboxa{}
\def\@infoboxb{}
\def\@infoboxc{}
\def\@infoboxd{}
% Define lengths based on UGent document grid
% See: https://styleguide.ugent.be/basic-principles/grid-and-layout.html
\newlength{\longedge}
\setlength{\longedge}{\maxof{\paperheight}{\paperwidth}}
\newlength{\gridunit}
\setlength{\gridunit}{\longedge/28} %Divide long edge by 7 and next by 4
\newlength{\subpaperheight}
\setlength{\subpaperheight}{\paperheight-7\gridunit} %Type area: 3 units for faculty logo, 4 units for UGent logo
\newlength{\subpaperwidth}
\setlength{\subpaperwidth}{\paperwidth-\gridunit} %Left margin of 1 gridunit
% Define strut based on \gridunit
\newcommand{\mystrut}[1][-.5]{\rule[#1\gridunit]{0pt}{0pt}}
% Set default page layout
% Can be overwritten in preamble of document
\renewcommand{\baselinestretch}{1.15} % line spacing
\geometry{bottom=2.5cm,top=2.5cm,left=3cm,right=2cm} % margins
% Redefine the titlepage in accordance with UGent styleguide
\renewcommand\maketitle{\begin{titlepage}%
\thispagestyle{empty} % by default, the pagestyle of title page is plain
\newgeometry{top=0cm, bottom=0cm, left=0cm, right=0cm} % set special margins
\setlength{\parindent}{0cm} % necessary to put minipages/boxes at extreme left of page
\setlength{\parsep}{0cm} % necessary to stack minipages/boxes without space
\setlength{\fboxsep}{0cm} % no border around minipages/boxes
\setlength{\parskip}{0cm}
\setlength{\lineskip}{0cm}
\ifugd@sftitles
\sffamily % Titlepage in sans serif font
\fi
\includegraphics[height=3\gridunit]{\ugd@faculty-\ugd@language.pdf}%
\makebox[\gridunit]{}% Left margin of 1 gridunit
\colorbox{ugent-\ugd@faculty!30}{%
%\colorbox{ugentwhite}{%
\begin{minipage}[c][\subpaperheight][t]{\subpaperwidth}%
\vskip 5\gridunit % top margin within minipage
\hskip \gridunit % left margin of 1 within the colorbox
%\fbox{%
\begin{minipage}{\subpaperwidth-2\gridunit} % tile minipage, right margin of 1
\raggedright\bfseries\huge
\textcolor{ugentblue}{\mystrut\@thetitle}\newline
\Large\textcolor{ugentblue}{\@thesubtitle}
\mystrut[1]
\end{minipage}%}
\vskip\fill % Push down to bottom of minipage
\ifx\@infoboxa\empty\else % ony put box if not empty
\hskip\gridunit % left margin of infobox
%\fbox{%
\begin{minipage}[b]{\subpaperwidth-3\gridunit} % right margin of 1
\@infoboxa
\end{minipage}%}
\baselineskip0pt\mystrut
\fi
\ifx\@infoboxb\empty\else % ony put box if not empty
\hskip\gridunit % left margin of infobox
%\fbox{%
\begin{minipage}[b]{\subpaperwidth-3\gridunit} % right margin of 1
\@infoboxb
\end{minipage}%}
\baselineskip0pt\mystrut
\fi
\ifx\@infoboxc\empty\else % ony put box if not empty
\hskip\gridunit % left margin of infobox
%\fbox{%
\begin{minipage}[b]{\subpaperwidth-3\gridunit} % right margin of 1
\@infoboxc
\end{minipage}%}
\baselineskip0pt\mystrut
\fi
\ifx\@infoboxd\empty\else % ony put box if not empty
\hskip\gridunit % left margin of infobox
%\fbox{%
\begin{minipage}[b]{\subpaperwidth-3\gridunit} % right margin of 1
\@infoboxd
\end{minipage}%}
\fi
\baselineskip0pt\mystrut[-1]
\end{minipage}
}%
\includegraphics[height=4\gridunit]{ugent-\ugd@language.pdf}%
\end{titlepage}
\restoregeometry
}

Binary file not shown.

View File

@ -0,0 +1,34 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@nameuse{bbl@beforestart}
\abx@aux@refcontext{nyt/global//global/global}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{toc}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lof}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\@writefile{lot}{\boolfalse {citerequest}\boolfalse {citetracker}\boolfalse {pagetracker}\boolfalse {backtracker}\relax }
\babel@aux{english}{}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1}Intermediate Results}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Net Regulation Volume Modeling}{1}{subsection.1.1}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Input Features}{1}{subsubsection.1.1.1}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}Models}{1}{subsubsection.1.1.2}\protected@file@percent }
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Performance of Autoregressive Models}}{1}{table.1}\protected@file@percent }
\newlabel{tab:general_models}{{1}{1}{Performance of Autoregressive Models}{table.1}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}Charging Policy}{2}{subsubsection.1.1.3}\protected@file@percent }
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Comparison of Energy Storage Policies Using Predicted NRV. Battery of 2MWh with 1MW charge/discharge power. Evaluated on data from 01-01-2023 until 08-10-2023.}}{2}{table.2}\protected@file@percent }
\newlabel{table:energy_storage_policies}{{2}{2}{Comparison of Energy Storage Policies Using Predicted NRV. Battery of 2MWh with 1MW charge/discharge power. Evaluated on data from 01-01-2023 until 08-10-2023}{table.2}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {2}Schedule next months}{3}{section.2}\protected@file@percent }

File diff suppressed because it is too large Load Diff

1000
Reports/February/verslag.log Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
\BOOKMARK [1][-]{section.1}{Intermediate Results}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{Net Regulation Volume Modeling}{section.1}% 2
\BOOKMARK [3][-]{subsubsection.1.1.1}{Input Features}{subsection.1.1}% 3
\BOOKMARK [3][-]{subsubsection.1.1.2}{Models}{subsection.1.1}% 4
\BOOKMARK [3][-]{subsubsection.1.1.3}{Charging Policy}{subsection.1.1}% 5
\BOOKMARK [1][-]{section.2}{Schedule next months}{}% 6

Binary file not shown.

View File

@ -0,0 +1,89 @@
<?xml version="1.0" standalone="yes"?>
<!-- logreq request file -->
<!-- logreq version 1.0 / dtd version 1.0 -->
<!-- Do not edit this file! -->
<!DOCTYPE requests [
<!ELEMENT requests (internal | external)*>
<!ELEMENT internal (generic, (provides | requires)*)>
<!ELEMENT external (generic, cmdline?, input?, output?, (provides | requires)*)>
<!ELEMENT cmdline (binary, (option | infile | outfile)*)>
<!ELEMENT input (file)+>
<!ELEMENT output (file)+>
<!ELEMENT provides (file)+>
<!ELEMENT requires (file)+>
<!ELEMENT generic (#PCDATA)>
<!ELEMENT binary (#PCDATA)>
<!ELEMENT option (#PCDATA)>
<!ELEMENT infile (#PCDATA)>
<!ELEMENT outfile (#PCDATA)>
<!ELEMENT file (#PCDATA)>
<!ATTLIST requests
version CDATA #REQUIRED
>
<!ATTLIST internal
package CDATA #REQUIRED
priority (9) #REQUIRED
active (0 | 1) #REQUIRED
>
<!ATTLIST external
package CDATA #REQUIRED
priority (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8) #REQUIRED
active (0 | 1) #REQUIRED
>
<!ATTLIST provides
type (static | dynamic | editable) #REQUIRED
>
<!ATTLIST requires
type (static | dynamic | editable) #REQUIRED
>
<!ATTLIST file
type CDATA #IMPLIED
>
]>
<requests version="1.0">
<internal package="biblatex" priority="9" active="0">
<generic>latex</generic>
<provides type="dynamic">
<file>verslag.bcf</file>
</provides>
<requires type="dynamic">
<file>verslag.bbl</file>
</requires>
<requires type="static">
<file>blx-dm.def</file>
<file>apa.dbx</file>
<file>blx-compat.def</file>
<file>biblatex.def</file>
<file>standard.bbx</file>
<file>apa.bbx</file>
<file>apa.cbx</file>
<file>biblatex.cfg</file>
<file>english.lbx</file>
<file>american.lbx</file>
<file>american-apa.lbx</file>
<file>english-apa.lbx</file>
</requires>
</internal>
<external package="biblatex" priority="5" active="0">
<generic>biber</generic>
<cmdline>
<binary>biber</binary>
<infile>verslag</infile>
</cmdline>
<input>
<file>verslag.bcf</file>
</input>
<output>
<file>verslag.bbl</file>
</output>
<provides type="dynamic">
<file>verslag.bbl</file>
</provides>
<requires type="dynamic">
<file>verslag.bcf</file>
</requires>
<requires type="editable">
<file>./references.bib</file>
</requires>
</external>
</requests>

Binary file not shown.

View File

@ -0,0 +1,213 @@
\documentclass[12pt,a4paper,faculty=ea,language=en,doctype=article]{ugent-doc}
% Optional: margins and spacing
%-------------------------------
% Uncomment and adjust to change the default values set by the template
% Note: the defaults are suggested values by Ghent University
%\geometry{bottom=2.5cm,top=2.5cm,left=3cm,right=2cm}
%\renewcommand{\baselinestretch}{1.15} % line spacing
% Font
%------
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % allows non-ascii input characters
% Comment or remove the two lines below to use the default Computer Modern font
\usepackage{libertine}
\usepackage{libertinust1math}
\usepackage{enumitem}
% NOTE: because the UGent font Panno is proprietary, it is not possible to use it
% in Overleaf. But UGent does not suggest to use Panno for documents (or maybe only for
% the titlepage). For the body, the UGent suggestion is to use a good serif font (for
% LaTeX this could be libertine or Computer Modern).
% Proper word splitting
%-----------------------
\usepackage[english]{babel}
% Mathematics
%-------------
\usepackage{amsmath}
% Figures
%---------
\usepackage{graphicx} % optional: the package is already loaded by the template
\graphicspath{{./figures/}}
% Bibliography settings
%-----------------------
\usepackage[backend=biber, style=apa, sorting=nyt, hyperref=true]{biblatex}
\addbibresource{./references.bib}
\usepackage{csquotes} % Suggested when using babel+biblatex
% Hyperreferences
%-----------------
\usepackage[colorlinks=true, allcolors=ugentblue]{hyperref}
% Whitespace between paragraphs and no indentation
%--------------------------------------------------
\usepackage[parfill]{parskip}
% Input for title page
%----------------------
% The title
\thesubtitle{February Intermediate Report}
%% Note: a stricter UGent style could be achieved with, e.g.:
\usepackage{ulem} % for colored underline
\renewcommand{\ULthickness}{2pt} % adjust thickness of underline
\thetitle{Forecasting and generative modeling of the Belgian electricity market}
% Note: do not forget to reset the \ULthickness to 1pt after invoking \maketitle
% (otherwise all underlines in the rest of your document will be too thick):
%\renewcommand{\ULthickness}{1pt}
% The first (top) infobox at bottom of titlepage
\infoboxa{\bfseries\large Master Thesis}
% The second infobox at bottom of titlepage
\infoboxb{Name:
\begin{tabular}[t]{l}
Victor Mylle
\end{tabular}
}
% The third infobox at bottom of titlepage
\infoboxc{
Promotors:
\begin{tabular}[t]{l}
prof. dr. ir. Chris Develder \\
prof. Bert Claessens
\end{tabular}
\\\\
Supervisor:
\begin{tabular}[t]{l}
Jonas Van Gompel
\end{tabular}
}
% The last (bottom) infobox at bottom of titlepage
\infoboxd{Academic year: 2023--2024} % note dash, not hyphen
\begin{document}
% =====================================================================
% Cover
% =====================================================================
% ------------ TITLE PAGE ---------
\maketitle
\renewcommand{\ULthickness}{1pt}
% =====================================================================
% Front matter
% =====================================================================
% ------------ TABLE OF CONTENTS ---------
% {\hypersetup{hidelinks}\tableofcontents} % hide link color in toc
% \newpage
% \begin{titlepage}
% \centering % Centers everything on the page
% % Logo or Image (Optional)
% % \includegraphics[width=0.5\textwidth]{path_to_logo.jpg}
% \vspace*{2cm} % Add vertical space
% {\large Title: Forecasting and generative modeling of the Belgian electricity market\par}
% \vspace{2cm}
% {\Large Victor Mylle\par}
% \vspace{1cm}
% {\large Period of Internship: 3 July 2023 - 31 August 2023\par}
% \vspace{1cm}
% {\large Mentor: dr. ir. Femke De Backere\par}
% {\large TechWolf supervisor: ir. Jens-Joris Decorte}
% \end{titlepage}
\newpage
\section{Intermediate Results}
\subsection{Net Regulation Volume Modeling}
Using a generative model, we try to predict the NRV for the next day. The model is trained on historical data and uses multiple input features to model the NRV. The data for the input features can all be downloaded from \href{https://www.elia.be/en/grid-data/open-data}{Elia Open Data}.
\subsubsection{Input Features}
The generative model uses multiple input features to predict the NRV.
\begin{itemize}[noitemsep]
\item NRV History (NRV of yesterday)
\item Load Forecast (Forecasted load of tomorrow)
\item Load History (Load of yesterday)
\item Wind Forecast (Forecasted wind of tomorrow)
\item Wind History (Wind of yesterday)
\item Implicit net position (Nominal net position of tomorrow)
\item Time features (Day of the week + quarter of the day)
\item Photovoltaic Forecast\textsuperscript{*}
\item Photovoltaic History\textsuperscript{*}
\end{itemize}
\textsuperscript{*} These features are not used currently, the data was not available. These features can easily be added without changing any code.
\subsubsection{Models}
In the intermediate report of November, baselines were discussed. Now, other more advanced models are used. Samples must be generated using the model, this means the model can't just output one value but a distribution is needed. Quantile Regression can be used for this task. The model then outputs the values of multiple quantiles. For example, the model outputs the value for which 10\% of the data is lower, the value for which 50\% of the data is lower, etc. This way, the model outputs a distribution which can be used to sample from. The NRV predicitons are done in a quarter-hourly resolution. To predict the NRV for the next day, 96 values need to be sampled. This can be done in an autoregressive manner. The model outputs the quantiles for the first quarter-hour, a sample is drawn from this distribution and this sample is used as input for the next quarter-hour. This process is repeated 96 times.
\begin{table}[h]
\centering
\begin{tabular}{lcc}
\hline
\textbf{Model} & \textbf{test\_L1Loss} & \textbf{test\_CRPSLoss} \\
\hline
Linear Model & 101.639 & 68.485 \\
Non Linear Model & 102.031 & 68.968 \\
LSTM/GRU Model & 104.261 & 66.052 \\
\hline
\end{tabular}
\caption{Performance of Autoregressive Models}
\label{tab:general_models}
\end{table}
At the moment, I am experimenting with a diffusion model to generatively model the NRV but more research and expermimenting needs to be done.
\subsubsection{Charging Policy}
Using the predicted NRV, a policy can be implemented to charge and discharge a battery. The goal of the policy is to maximize the profit made by selling the stored electricity. A simple policy is implemented to charge and discharge the battery based on 2 thresholds determined by the predicted NRV. The policy is evaluated on historical data and the profit is calculated. To determine the charge and discharge threshold, 1000 full NRV predictions are done for the next day and for each of these predicitions, the thresholds are determined. Next, the mean of these thresholds is used as the final threshold.
\begin{table}[h]
\centering
\begin{tabular}{lccc}
\hline
\textbf{Policy} & \textbf{Total Profit (€)} & \textbf{Charge Cycles} \\
\hline
Baseline (charge: €150, discharge: €175) & 251,202.59 & 725 \\
Baseline (yesterday imbalance price) & 342,980.09 & 903 \\
GRU Predicted NRV (mean thresholds) & 339,846.91 & 842 \\
Diffusion Predicted NRV (mean thresholds) & 338,168.03 & 886 \\
\hline
\end{tabular}
\caption{Comparison of Energy Storage Policies Using Predicted NRV. Battery of 2MWh with 1MW charge/discharge power. Evaluated on data from 01-01-2023 until 08-10-2023.}
\label{table:energy_storage_policies}
\end{table}
The recommended charge cycles for a battery is <400 cycles per year. The policy also needs to take this into account. A penalty parameter can be introduced and determined so that the policy is penalized for every charge cycle above 400. The policy can then be optimized using this penalty parameter. I am currenlty experimenting with this.
\newpage
\section{Schedule next months}
\begin{itemize}
\item Baselines with penalties for charge cycles above 400
\item Better visualizations of the policy profit results.
\item Case studies of days with extreme thresholds
\item Finetuning of models and hyperparametres based on model errors and profits of the policy
\item Ablation study of input features
\item Experiment further with diffusion models
\item During the experimenting, I will write my thesis and update the results and conclusions chapters.
\end{itemize}
\end{document}

View File

@ -1,31 +0,0 @@
\relax
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
\abx@aux@refcontext{nyt/global//global/global}
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\babel@aux{english}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Intermediate Results}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Previous day as forecast}{1}{subsection.1.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}All Zeros}{1}{subsection.1.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Linear Model}{1}{subsection.1.3}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Results of the linear model with different ranges of training data}}{2}{table.1}\protected@file@percent }
\newlabel{tab:linear_model}{{1}{2}{Results of the linear model with different ranges of training data}{table.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Schedule next months}{3}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Other input features}{3}{subsection.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}More complex models}{3}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Reinforcement learning}{3}{subsection.2.3}\protected@file@percent }
\abx@aux@read@bbl@mdfivesum{nobblfile}
\gdef \@abspage@last{4}

View File

@ -0,0 +1,20 @@
% $ biblatex auxiliary file $
% $ biblatex bbl format version 3.2 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
{\@latex@error
{Missing 'biblatex' package}
{The bibliography requires the 'biblatex' package.}
\aftergroup\endinput}
{}
\endgroup
\endinput

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000e\000r\000m\000e\000d\000i\000a\000t\000e\000\040\000R\000e\000s\000u\000l\000t\000s}{}% 1
\BOOKMARK [2][-]{subsection.1.1}{\376\377\000P\000r\000e\000v\000i\000o\000u\000s\000\040\000d\000a\000y\000\040\000a\000s\000\040\000f\000o\000r\000e\000c\000a\000s\000t}{section.1}% 2
\BOOKMARK [2][-]{subsection.1.2}{\376\377\000A\000l\000l\000\040\000Z\000e\000r\000o\000s}{section.1}% 3
\BOOKMARK [2][-]{subsection.1.3}{\376\377\000L\000i\000n\000e\000a\000r\000\040\000M\000o\000d\000e\000l}{section.1}% 4
\BOOKMARK [1][-]{section.2}{\376\377\000S\000c\000h\000e\000d\000u\000l\000e\000\040\000n\000e\000x\000t\000\040\000m\000o\000n\000t\000h\000s}{}% 5
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000O\000t\000h\000e\000r\000\040\000i\000n\000p\000u\000t\000\040\000f\000e\000a\000t\000u\000r\000e\000s}{section.2}% 6
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000M\000o\000r\000e\000\040\000c\000o\000m\000p\000l\000e\000x\000\040\000m\000o\000d\000e\000l\000s}{section.2}% 7
\BOOKMARK [2][-]{subsection.2.3}{\376\377\000R\000e\000i\000n\000f\000o\000r\000c\000e\000m\000e\000n\000t\000\040\000l\000e\000a\000r\000n\000i\000n\000g}{section.2}% 8

Binary file not shown.

Binary file not shown.

Binary file not shown.

171
Reports/Thesis/acronyms.tex Normal file
View File

@ -0,0 +1,171 @@
% Training methods
\DeclareAcronym{QR}{
short = QR,
long = Quantile Regression
}
\DeclareAcronym{AQR}{
short = AQR,
long = Autoregressive Quantile Regression
}
\DeclareAcronym{NAQR}{
short = NAQR,
long = Non-Autoregressive Quantile Regression
}
% Deep Learning
\DeclareAcronym{GRU}{
short = GRU,
long = Gated Recurrent Unit
}
\DeclareAcronym{LSTM}{
short = LSTM,
long = Long Short-Term Memory
}
\DeclareAcronym{GAN}{
short = GAN,
long = Generative Adversarial Network,
plural = s
}
\DeclareAcronym{CTSGAN}{
short = CTSGAN,
long = Conditional Time Series Generative Adversarial Network
}
\DeclareAcronym{VAE}{
short = VAE,
long = Variational Autoencoder
}
\DeclareAcronym{MLP}{
short = MLP,
long = Multi-Layer Perceptron
}
\DeclareAcronym{GP}{
short = GP,
long = Gaussian Process,
plural-form = Gaussian Processes
}
% Metrics
\DeclareAcronym{MSE}{
short = MSE,
long = Mean Squared Error
}
\DeclareAcronym{MAE}{
short = MAE,
long = Mean Absolute Error
}
\DeclareAcronym{CRPS}{
short = CRPS,
long = Continuous Ranked Probability Score
}
\DeclareAcronym{TSPA}{
short = TSPA,
long = Two-Step Probabilistic Approach
}
\DeclareAcronym{PLF}{
short = PLF,
long = Pinball Loss Function
}
\DeclareAcronym{CDF}{
short = CDF,
long = Cumulative Distribution Function
}
\DeclareAcronym{QE}{
short = QE,
long = Quarter Embedding
}
% Electricity Market Terms
\DeclareAcronym{NRV}{
short = NRV,
long = Net Regulation Volume
}
\DeclareAcronym{PV}{
short = PV,
long = Photovoltaic
}
\DeclareAcronym{NP}{
short = NP,
long = Nominal Net Position
}
\DeclareAcronym{TSO}{
short = TSO,
long = Transmission System Operator
}
\DeclareAcronym{DSO}{
short = DSO,
long = Distribution System Operator
}
\DeclareAcronym{BRP}{
short = BRP,
long = Balance Responsible Party,
short-plural = s,
long-plural = ies
}
\DeclareAcronym{BSP}{
short = BSP,
long = Balancing Service Provider,
short-plural = s,
}
\DeclareAcronym{SI}{
short = SI,
long = System Imbalance
}
\DeclareAcronym{FCR}{
short = FCR,
long = Frequency Containment Reserve
}
\DeclareAcronym{aFRR}{
short = aFRR,
long = Automatic Frequency Restoration
}
\DeclareAcronym{mFRR}{
short = mFRR,
long = Manual Frequency Restoration
}
\DeclareAcronym{MW}{
short = MW,
long = Megawatt
}
\DeclareAcronym{ACE}{
short = ACE,
long = Area Control Error
}
\DeclareAcronym{MIP}{
short = MIP,
long = Marginal price of upward activation
}
\DeclareAcronym{MDP}{
short = MDP,
long = Marginal price of downward activation
}

View File

@ -0,0 +1,67 @@
<mxfile host="Electron" modified="2024-04-21T19:27:00.133Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.8 Chrome/114.0.5735.289 Electron/25.5.0 Safari/537.36" etag="iP2ZMkiDESp7J3viivZF" version="21.6.8" type="device">
<diagram name="Page-1" id="FePbCUh0FgINugyzgCKY">
<mxGraphModel dx="1834" dy="806" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="XPfo9y-A51sPOulxTgxz-3" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="-40" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-1" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real NRV &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Load &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real PV &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Wind &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Net Position &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-2" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-96&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry x="52.941764705882356" width="94.11764705882354" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-4" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="400" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-5" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Real NRV (T-1)&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast Load (T)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;PV (T)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;Wind (T)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Forecast&amp;nbsp;Net Position &lt;b&gt;(T)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-1)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-6" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-1&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry x="38.46153846153845" width="123.07692307692304" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=4;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-1" target="XPfo9y-A51sPOulxTgxz-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="410" as="sourcePoint" />
<mxPoint x="160" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-15" value="RNN" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-40" y="190" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.156;entryY=1.075;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-2" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.844;entryY=1.05;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-6" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-18" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="61" y="190" as="sourcePoint" />
<mxPoint x="61" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-19" value="NRV Quantiles &lt;b&gt;(T-95)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="10" y="100" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-20" value="Inputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="350" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-21" value="Outputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="100" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-22" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;exitX=0.844;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="180" as="sourcePoint" />
<mxPoint x="500" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-24" value="NRV Quantiles &lt;b&gt;(T)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="450" y="100" width="100" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,67 @@
<mxfile host="Electron" modified="2024-04-21T19:39:13.066Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.8 Chrome/114.0.5735.289 Electron/25.5.0 Safari/537.36" etag="Yo_Te6-BRO91UZdKIgwU" version="21.6.8" type="device">
<diagram name="Page-1" id="FePbCUh0FgINugyzgCKY">
<mxGraphModel dx="1834" dy="806" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="XPfo9y-A51sPOulxTgxz-3" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="-40" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-1" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real NRV &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Load &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real PV &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Wind &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Net Position &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-2" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-96&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry x="52.941764705882356" width="94.11764705882354" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-4" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="400" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-5" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Real NRV &lt;b&gt;(T-1)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast Load &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;PV &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;Wind &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Forecast&amp;nbsp;Net Position &lt;b&gt;(T)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-1)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-6" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-1&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry x="38.46153846153845" width="123.07692307692304" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=4;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-1" target="XPfo9y-A51sPOulxTgxz-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="410" as="sourcePoint" />
<mxPoint x="160" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-15" value="RNN" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-40" y="190" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.156;entryY=1.075;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-2" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.844;entryY=1.05;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-6" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-18" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="61" y="190" as="sourcePoint" />
<mxPoint x="61" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-19" value="NRV Quantiles &lt;b&gt;(T-95)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="10" y="100" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-20" value="Inputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="350" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-21" value="Outputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="100" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-22" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;exitX=0.844;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="180" as="sourcePoint" />
<mxPoint x="500" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-24" value="NRV Quantiles &lt;b&gt;(T)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="450" y="100" width="100" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,67 @@
<mxfile host="Electron" modified="2024-04-21T19:39:08.279Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.8 Chrome/114.0.5735.289 Electron/25.5.0 Safari/537.36" etag="UVK9ORhi1HUABHBPMAua" version="21.6.8" type="device">
<diagram name="Page-1" id="FePbCUh0FgINugyzgCKY">
<mxGraphModel dx="1834" dy="806" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="XPfo9y-A51sPOulxTgxz-3" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="-40" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-1" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real NRV &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Load &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real PV &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Wind &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- Real Net Position &lt;b&gt;(T-95)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-96)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-2" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-96&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-3">
<mxGeometry x="52.941764705882356" width="94.11764705882354" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-4" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="400" y="280" width="200" height="140" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-5" value="&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Real NRV &lt;b&gt;(T-1)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast Load &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;PV &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;border-color: var(--border-color); background-color: initial;&quot;&gt;- Forecast&amp;nbsp;Wind &lt;b&gt;(T)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;- Forecast&amp;nbsp;Net Position &lt;b&gt;(T)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;border-color: var(--border-color);&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;- QE &lt;b&gt;(T-1)&lt;/b&gt;&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;strokeWidth=2;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry y="30" width="200" height="110" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-6" value="&lt;font style=&quot;font-size: 14px;&quot;&gt;Quarter T-1&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="XPfo9y-A51sPOulxTgxz-4">
<mxGeometry x="38.46153846153845" width="123.07692307692304" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=4;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-1" target="XPfo9y-A51sPOulxTgxz-5">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="410" as="sourcePoint" />
<mxPoint x="160" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-15" value="RNN" style="rounded=1;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="-40" y="190" width="640" height="40" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.156;entryY=1.075;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-2" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.844;entryY=1.05;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-6" target="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-18" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="61" y="190" as="sourcePoint" />
<mxPoint x="61" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-19" value="NRV Quantiles &lt;b&gt;(T-95)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="10" y="100" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-20" value="Inputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="350" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-21" value="Outputs" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=15;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="-150" y="100" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-22" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;exitX=0.844;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="XPfo9y-A51sPOulxTgxz-15">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="500" y="180" as="sourcePoint" />
<mxPoint x="500" y="140" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="XPfo9y-A51sPOulxTgxz-24" value="NRV Quantiles &lt;b&gt;(T)&lt;/b&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="450" y="100" width="100" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

BIN
Reports/Thesis/ea-en.pdf Normal file

Binary file not shown.

BIN
Reports/Thesis/ea-nl.pdf Normal file

Binary file not shown.

BIN
Reports/Thesis/eb-en.pdf Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Some files were not shown because too many files have changed in this diff Show More