Started February Report

This commit is contained in:
Victor Mylle
2024-02-17 17:53:07 +01:00
parent 7bd0476085
commit 76a597af28
13 changed files with 4106 additions and 0 deletions

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 Moddeling}{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 }

2592
Reports/February/verslag.bcf Normal file

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 Moddeling}{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,200 @@
\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 Moddeling}
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 are <400 cycles per year. The policy also needs to make the charge cycles are below 400. 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}
\end{document}