diff --git a/Reports/Thesis/sections/appendix.aux b/Reports/Thesis/sections/appendix.aux index 9b7b0d6..1d75b35 100644 --- a/Reports/Thesis/sections/appendix.aux +++ b/Reports/Thesis/sections/appendix.aux @@ -162,14 +162,14 @@ \setcounter{g@acro@MSE@int}{4} \setcounter{g@acro@MAE@int}{4} \setcounter{g@acro@CRPS@int}{2} -\setcounter{g@acro@NRV@int}{14} +\setcounter{g@acro@NRV@int}{12} \setcounter{g@acro@PV@int}{0} \setcounter{g@acro@NP@int}{0} \setcounter{g@acro@TSO@int}{2} \setcounter{g@acro@DSO@int}{0} \setcounter{g@acro@BRP@int}{1} \setcounter{g@acro@BSP@int}{1} -\setcounter{g@acro@SI@int}{1} +\setcounter{g@acro@SI@int}{0} \setcounter{g@acro@FCR@int}{1} \setcounter{g@acro@aFRR@int}{1} \setcounter{g@acro@mFRR@int}{1} diff --git a/Reports/Thesis/sections/background.aux b/Reports/Thesis/sections/background.aux index f548f58..8039332 100644 --- a/Reports/Thesis/sections/background.aux +++ b/Reports/Thesis/sections/background.aux @@ -5,38 +5,35 @@ \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} \newlabel{tab:parties}{{1}{3}{Overview of the most important parties in the electricity market\relax }{table.caption.1}{}} \ACRO{recordpage}{BRP}{4}{1}{3} -\ACRO{recordpage}{NRV}{5}{1}{4} -\ACRO{recordpage}{SI}{5}{1}{4} -\ACRO{recordpage}{NRV}{5}{1}{4} \ACRO{recordpage}{TSO}{5}{1}{4} -\ACRO{recordpage}{FCR}{5}{1}{4} -\ACRO{recordpage}{BSP}{5}{1}{4} -\ACRO{recordpage}{aFRR}{5}{1}{4} -\ACRO{recordpage}{mFRR}{5}{1}{4} +\ACRO{recordpage}{FCR}{6}{1}{5} +\ACRO{recordpage}{BSP}{6}{1}{5} +\ACRO{recordpage}{aFRR}{6}{1}{5} +\ACRO{recordpage}{mFRR}{6}{1}{5} \ACRO{recordpage}{MW}{6}{1}{5} \@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Prices paid by the BRPs\relax }}{5}{table.caption.2}\protected@file@percent } \newlabel{tab:imbalance_price}{{2}{5}{Prices paid by the BRPs\relax }{table.caption.2}{}} -\@writefile{toc}{\contentsline {section}{\numberline {3}Generative modeling}{5}{section.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Generative modeling}{6}{section.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Quantile Regression}{6}{subsection.3.1}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of quantiles\relax }}{6}{figure.caption.3}\protected@file@percent } -\newlabel{fig:quantile_example}{{1}{6}{Example of quantiles\relax }{figure.caption.3}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }}{7}{figure.caption.4}\protected@file@percent } -\newlabel{fig:quantile_regression_example}{{2}{7}{Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }{figure.caption.4}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{8}{subsection.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Model Types}{9}{subsection.3.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{9}{subsubsection.3.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{10}{subsubsection.3.3.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{10}{subsubsection.3.3.3}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces RNN model input and output visualization\relax }}{11}{figure.caption.5}\protected@file@percent } -\newlabel{fig:rnn_model_visualization}{{3}{11}{RNN model input and output visualization\relax }{figure.caption.5}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Diffusion models}{11}{subsection.3.4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Example of quantiles\relax }}{7}{figure.caption.3}\protected@file@percent } +\newlabel{fig:quantile_example}{{1}{7}{Example of quantiles\relax }{figure.caption.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }}{8}{figure.caption.4}\protected@file@percent } +\newlabel{fig:quantile_regression_example}{{2}{8}{Example of quantile regression output for one-quarter of the NRV, showing interpolated values for quantiles at 1\%, 5\%, 10\%, 15\%, 30\%, 40\%, 50\%, 60\%, 70\%, 85\%, 90\%, 95\%, and 99\%. These quantiles are used to reconstruct the cumulative distribution function.\relax }{figure.caption.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{9}{subsection.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Model Types}{10}{subsection.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{10}{subsubsection.3.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{11}{subsubsection.3.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{11}{subsubsection.3.3.3}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces RNN model input and output visualization\relax }}{12}{figure.caption.5}\protected@file@percent } +\newlabel{fig:rnn_model_visualization}{{3}{12}{RNN model input and output visualization\relax }{figure.caption.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Diffusion models}{12}{subsection.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Overview}{12}{subsubsection.3.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Applications}{12}{subsubsection.3.4.2}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{12}{figure.caption.6}\protected@file@percent } -\newlabel{fig:diffusion_example}{{4}{12}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.6}{}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}\protected@file@percent } -\newlabel{fig:diffusion_process}{{\caption@xref {fig:diffusion_process}{ on input line 283}}{14}{Generation process}{figure.caption.7}{}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Applications}{13}{subsubsection.3.4.2}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }}{13}{figure.caption.6}\protected@file@percent } +\newlabel{fig:diffusion_example}{{4}{13}{Example of the diffusion process. The image of a cat is generated by starting from noise and iteratively denoising the image.\relax }{figure.caption.6}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{13}{subsubsection.3.4.3}\protected@file@percent } +\newlabel{fig:diffusion_process}{{\caption@xref {fig:diffusion_process}{ on input line 287}}{15}{Generation process}{figure.caption.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Evaluation}{15}{subsection.3.5}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Visualization of the CRPS metric\relax }}{16}{figure.caption.8}\protected@file@percent } \newlabel{fig:crps_visualization}{{5}{16}{Visualization of the CRPS metric\relax }{figure.caption.8}{}} \@setckpt{sections/background}{ @@ -196,14 +193,14 @@ \setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@CRPS@int}{0} -\setcounter{g@acro@NRV@int}{5} +\setcounter{g@acro@NRV@int}{3} \setcounter{g@acro@PV@int}{0} \setcounter{g@acro@NP@int}{0} \setcounter{g@acro@TSO@int}{2} \setcounter{g@acro@DSO@int}{0} \setcounter{g@acro@BRP@int}{1} \setcounter{g@acro@BSP@int}{1} -\setcounter{g@acro@SI@int}{1} +\setcounter{g@acro@SI@int}{0} \setcounter{g@acro@FCR@int}{1} \setcounter{g@acro@aFRR@int}{1} \setcounter{g@acro@mFRR@int}{1} diff --git a/Reports/Thesis/sections/background.tex b/Reports/Thesis/sections/background.tex index ba54f6c..a685b1c 100644 --- a/Reports/Thesis/sections/background.tex +++ b/Reports/Thesis/sections/background.tex @@ -33,13 +33,17 @@ The electricity market consists of many different parties who all work together \label{tab:parties} \end{table} -The most important aspect of the electricity market is that the grid needs to be balanced at all times. This means that the amount of electricity consumed and generated must be equal at all times. If this is not the case, the grid can become unstable which can lead to blackouts and disrupt equipment. One company is responsible for keeping the grid balanced. This company is called the Transmission System Operator (TSO). In Belgium, this party is Elia. The TSO keeps the grid balanced by activating reserves when needed. These reserves, however, are expensive and need to be paid by the market participants. The prices paid for the activations of these reserves are called the imbalance price. +The most important aspect of the electricity market is that the grid needs to be balanced at all times. This means that the amount of electricity consumed and generated must be equal at all times. If this is not the case, the grid can become unstable which can lead to blackouts and disrupt equipment. One company is responsible for keeping the grid balanced. This company is called the Transmission System Operator (TSO). In Belgium, this party is Elia. The TSO keeps the grid balanced by activating reserves when needed. These reserves, however, are expensive and need to be paid by the market participants. The prices paid for the activations of these reserves are called the imbalance price. -At every access point of the grid, there is a designated \acf{BRP}. This party may be a producer, major consumer, energy supplier or trader. +At every access point of the grid, there is a designated \acf{BRP}. This party may be a producer, major consumer, energy supplier or trader. The BRP must take all reasonable measures to maintain the balance between injections, offtakes and commercial power trades within its portfolio. Each day, the BRP submits a daily balance schedule for the next day to the TSO. This schedule contains the expected physical injections and offtakes from the grid as well as the commercial power trades with other BRPs or other countries. These schedules are forecasts and are not always 100\% accurate. A lot of factors can influence the production and consumption of electricity like the weather, the economy, the time of day etc. The BRP must take all reasonable measures to be balanced on a quarter-hourly basis. This can be done by day-ahead or intra-day trading with other BRPs. If the BRP is not balanced for a certain quarter, it will need to pay the imbalance price for the deviation. The imbalance of a BRP is the quarter-hourly difference between total injections and offtakes from the grid. -Balance Responsible Parties (BRPs) forecast the electricity consumption and generation of their portfolio to effectively manage the balance between supply and demand within the grid they operate in. They submit a daily balance schedule for their portfolio the day before to the transmission system operator. This consists of the expected physical injections and offtakes from the grid and the commercial power trades. The power trades can be purchases and sales between BRPs or they can even be traded with other countries. BRPs must provide and deploy all reasonable resources to be balanced on a quarter-hourly basis. They can exchange electricity with other BRPs for the following day or the same day. There is one exception where a BRP can deviate from the balance schedule. This is when the grid is not balanced and they can help Elia to stabilize the grid. In this case, they will receive compensation for their help. When a BRP deviates from the balance schedule in a way that destabilizes the grid, it will need to pay the imbalance price for the deviation. +The imbalance price, which is a crucial factor in the management of electricity grids, is set by the Transmission System Operator (TSO). This price is calculated based on the total imbalance within the grid. The net regulation volume (NRV) plays a key role in this process. The NRV represents the amount of energy that Elia, the TSO for Belgium, utilizes to ensure the stability and balance of the electricity grid within the Elia control area. -The imbalance price is determined based on which reserves Elia needs to activate to stabilize the grid. The imbalance of a BRP is the quarter-hourly difference between total injections and offtakes from the grid. The \ac{NRV} is the net control volume of energy that Elia applies to maintain balance in the Elia control area. The Area Control Error is the current difference between the scheduled values and the actual values of power exchanged in the Belgian control area. The \acf{SI} is the Area Control Error minus the \ac{NRV}. Using the System Imbalance, the imbalance price is calculated. +The Area Control Error (ACE) is another important concept in this context. It refers to the discrepancy between the planned (scheduled) and the actual power exchanges in the Belgian control area. Essentially, it measures how much the actual conditions deviate from what was anticipated. + +The System Imbalance (SI) is derived by subtracting the NRV from the ACE. This value, the SI, directly influences the calculation of the imbalance price. The TSO uses the magnitude of the System Imbalance to determine the appropriate imbalance price, ensuring that costs are allocated to market participants based on their contribution to the overall grid imbalance. By calculating the imbalance price in this way, the TSO incentivizes market participants to adhere closely to their scheduled injections and offtakes, thereby promoting grid stability and reliability. + +The Transmission System Operator (TSO) can activate reserves to maintain grid stability, and these reserves are supplied by entities known as Balancing Service Providers (BSPs). BSPs are crucial participants in the electricity market as they provide the necessary reserve capacity that the TSO can call upon in times of need. Each BSP submits bids to the TSO for the potential activation of these reserves. These bids are detailed and include several key components: the specific type of reserve being offered, the total volume of energy available for activation (measured in megawatt-hours, MWh), the price per MWh at which the BSP is willing to provide this reserve, and a start price which initiates the reserve's deployment. Through this bidding process, the TSO selects the most cost-effective and appropriate offers to ensure the grid's stability and balance. Elia, the \acf{TSO} in Belgium, maintains grid stability by activating three types of reserves, each designed to address specific conditions of imbalance. These reserves are crucial for ensuring that the electricity supply continuously meets the demand, thereby maintaining the frequency within the required operational limits. The reserves include: diff --git a/Reports/Thesis/sections/literature_study.aux b/Reports/Thesis/sections/literature_study.aux index 85865b9..8ef85c5 100644 --- a/Reports/Thesis/sections/literature_study.aux +++ b/Reports/Thesis/sections/literature_study.aux @@ -160,14 +160,14 @@ \setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@CRPS@int}{0} -\setcounter{g@acro@NRV@int}{5} +\setcounter{g@acro@NRV@int}{3} \setcounter{g@acro@PV@int}{0} \setcounter{g@acro@NP@int}{0} \setcounter{g@acro@TSO@int}{2} \setcounter{g@acro@DSO@int}{0} \setcounter{g@acro@BRP@int}{1} \setcounter{g@acro@BSP@int}{1} -\setcounter{g@acro@SI@int}{1} +\setcounter{g@acro@SI@int}{0} \setcounter{g@acro@FCR@int}{1} \setcounter{g@acro@aFRR@int}{1} \setcounter{g@acro@mFRR@int}{1} diff --git a/Reports/Thesis/sections/policies.aux b/Reports/Thesis/sections/policies.aux index 962d38e..4709209 100644 --- a/Reports/Thesis/sections/policies.aux +++ b/Reports/Thesis/sections/policies.aux @@ -161,14 +161,14 @@ \setcounter{g@acro@MSE@int}{0} \setcounter{g@acro@MAE@int}{0} \setcounter{g@acro@CRPS@int}{0} -\setcounter{g@acro@NRV@int}{5} +\setcounter{g@acro@NRV@int}{3} \setcounter{g@acro@PV@int}{0} \setcounter{g@acro@NP@int}{0} \setcounter{g@acro@TSO@int}{2} \setcounter{g@acro@DSO@int}{0} \setcounter{g@acro@BRP@int}{1} \setcounter{g@acro@BSP@int}{1} -\setcounter{g@acro@SI@int}{1} +\setcounter{g@acro@SI@int}{0} \setcounter{g@acro@FCR@int}{1} \setcounter{g@acro@aFRR@int}{1} \setcounter{g@acro@mFRR@int}{1} diff --git a/Reports/Thesis/verslag.aux b/Reports/Thesis/verslag.aux index ccaf7ae..3751664 100644 --- a/Reports/Thesis/verslag.aux +++ b/Reports/Thesis/verslag.aux @@ -135,31 +135,31 @@ \ACRO{usage}{MSE=={4}} \ACRO{usage}{MAE=={4}} \ACRO{usage}{CRPS=={2}} -\ACRO{usage}{NRV=={14}} +\ACRO{usage}{NRV=={12}} \ACRO{usage}{PV=={0}} \ACRO{usage}{NP=={0}} \ACRO{usage}{TSO=={2}} \ACRO{usage}{DSO=={0}} \ACRO{usage}{BRP=={1}} \ACRO{usage}{BSP=={1}} -\ACRO{usage}{SI=={1}} +\ACRO{usage}{SI=={0}} \ACRO{usage}{FCR=={1}} \ACRO{usage}{aFRR=={1}} \ACRO{usage}{mFRR=={1}} \ACRO{usage}{MW=={1}} -\ACRO{pages}{BRP=={}} \ACRO{pages}{SI=={5@1@4}} +\ACRO{pages}{BRP=={4@1@3}} \ACRO{pages}{TSO=={3@1@2|5@1@4}} -\ACRO{pages}{FCR=={5@1@4}} -\ACRO{pages}{BSP=={5@1@4}} -\ACRO{pages}{aFRR=={5@1@4}} -\ACRO{pages}{mFRR=={5@1@4}} -\ACRO{pages}{MW=={5@1@4}} +\ACRO{pages}{FCR=={6@1@5}} +\ACRO{pages}{BSP=={6@1@5}} +\ACRO{pages}{aFRR=={6@1@5}} +\ACRO{pages}{mFRR=={6@1@5}} +\ACRO{pages}{MW=={6@1@5}} \ACRO{pages}{NAQR=={42@1@41}} \ACRO{pages}{CRPS=={41@1@40|42@1@41}} \ACRO{pages}{MSE=={41@1@40|42@1@41}} \ACRO{pages}{MAE=={41@1@40|42@1@41}} -\ACRO{pages}{NRV=={3@1@2|5@1@4|44@1@43|45@1@44}} +\ACRO{pages}{NRV=={3@1@2|44@1@43|45@1@44}} \abx@aux@read@bbl@mdfivesum{5DC935CC8C8FAB8A3CAF97A486ED2386} \abx@aux@read@bblrerun \abx@aux@defaultrefcontext{0}{dumas_deep_2022}{nyt/global//global/global} diff --git a/Reports/Thesis/verslag.log b/Reports/Thesis/verslag.log index d7f1e36..cc927e2 100644 --- a/Reports/Thesis/verslag.log +++ b/Reports/Thesis/verslag.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 13 MAY 2024 10:03 +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 13 MAY 2024 11:22 entering extended mode restricted \write18 enabled. file:line:error style messages enabled. @@ -1396,79 +1396,80 @@ l.149 \newpage ] [4] -Underfull \hbox (badness 10000) in paragraph at lines 77--82 +Underfull \hbox (badness 10000) in paragraph at lines 81--86 [] -Underfull \hbox (badness 10000) in paragraph at lines 77--82 +Underfull \hbox (badness 10000) in paragraph at lines 81--86 [] [5{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}] -Overfull \hbox (4.77582pt too wide) in paragraph at lines 94--96 +Overfull \hbox (4.77582pt too wide) in paragraph at lines 98--100 []\T1/LinuxLibertineT-TLF/m/n/12 There ex-ist many dif-fer-ent types of gen-er-a-tive mod-els. Some of the most pop-u-lar ones are: [] -LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 96. +LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 100. (/usr/local/texlive/2023/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd File: TS1LinuxLibertineT-TLF.fd 2017/03/20 (autoinst) Font definitions for TS1/LinuxLibertineT-TLF. ) LaTeX Font Info: Font shape `TS1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 12.0pt on input line 96. +(Font) scaled to size 12.0pt on input line 100. LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be -(Font) scaled to size 14.4pt on input line 102. +(Font) scaled to size 14.4pt on input line 106. File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 109. +Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 113. (pdftex.def) Requested size: 364.19667pt x 218.51653pt. - [6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc} <./images/quantile_regression/cdf_quantiles_example.png>] - + [6{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc}] + File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 119. +Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 123. (pdftex.def) Requested size: 364.19667pt x 218.51653pt. + [7 <./images/quantile_regression/cdf_quantiles_example.png>] LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 8.0pt on input line 129. +(Font) scaled to size 8.0pt on input line 133. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be -(Font) scaled to size 6.0pt on input line 129. - [7{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] [8] [9] [10] +(Font) scaled to size 6.0pt on input line 133. + [8{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusEX.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusSYM.enc} <./images/quantile_regression/reconstructed_cdf.png>] [9] [10] File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 208. +Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 212. (pdftex.def) Requested size: 364.19667pt x 156.63872pt. - [11 <./images/quantile_regression/rnn/RNN_diagram.png>] - + [11] [12 <./images/quantile_regression/rnn/RNN_diagram.png>] + File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png) -Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 236. +Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 240. (pdftex.def) Requested size: 364.19667pt x 90.05513pt. - [12 <./images/diffusion/Generation-with-Diffusion-Models.png>] [13{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}] + [13 <./images/diffusion/Generation-with-Diffusion-Models.png>] [14{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBMR.enc}{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusBB.enc}] -Package caption Warning: \label without proper reference on input line 281. +Package caption Warning: \label without proper reference on input line 287. See the caption package documentation for explanation. -LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 276. +LaTeX Warning: Reference `fig:diffusion_process' on page 15 undefined on input line 280. - + File: images/diffusion/diffusion_graphical_model.png Graphic file (type png) -Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 280. +Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 284. (pdftex.def) Requested size: 364.19667pt x 69.03145pt. -[14 <./images/diffusion/diffusion_graphical_model.png>] -LaTeX Font Info: Trying to load font information for U+bbm on input line 309. +[15 <./images/diffusion/diffusion_graphical_model.png>] +LaTeX Font Info: Trying to load font information for U+bbm on input line 313. (/usr/local/texlive/2023/texmf-dist/tex/latex/bbm-macros/ubbm.fd File: ubbm.fd 1999/03/15 V 1.2 Font definition for bbm font - TH ) - + File: images/quantile_regression/crps_visualization.png Graphic file (type png) -Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 327. +Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 331. (pdftex.def) Requested size: 364.19667pt x 235.4849pt. -) [15] [16 <./images/quantile_regression/crps_visualization.png>] +) [16 <./images/quantile_regression/crps_visualization.png>] \openout2 = `sections/policies.aux'. (./sections/policies.tex) [17 @@ -1988,15 +1989,15 @@ Package logreq Info: Writing requests to 'verslag.run.xml'. ) Here is how much of TeX's memory you used: - 42826 strings out of 476025 - 909556 string characters out of 5790017 + 42819 strings out of 476025 + 909289 string characters out of 5790017 1884388 words of memory out of 5000000 - 62390 multiletter control sequences out of 15000+600000 + 62383 multiletter control sequences out of 15000+600000 609679 words of font info for 109 fonts, out of 8000000 for 9000 1141 hyphenation exceptions out of 8191 84i,16n,131p,2100b,5180s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on verslag.pdf (50 pages, 8679191 bytes). +Output written on verslag.pdf (50 pages, 8680362 bytes). PDF statistics: 668 PDF objects out of 1000 (max. 8388607) 494 compressed objects within 5 object streams diff --git a/Reports/Thesis/verslag.pdf b/Reports/Thesis/verslag.pdf index 531fdc7..0dbf0b0 100644 Binary files a/Reports/Thesis/verslag.pdf and b/Reports/Thesis/verslag.pdf differ diff --git a/Reports/Thesis/verslag.synctex.gz b/Reports/Thesis/verslag.synctex.gz index a9922fb..c0161e3 100644 Binary files a/Reports/Thesis/verslag.synctex.gz and b/Reports/Thesis/verslag.synctex.gz differ diff --git a/Reports/Thesis/verslag.toc b/Reports/Thesis/verslag.toc index 24022d1..12d999e 100644 --- a/Reports/Thesis/verslag.toc +++ b/Reports/Thesis/verslag.toc @@ -2,18 +2,18 @@ \babel@toc {english}{}\relax \contentsline {section}{\numberline {1}Introduction}{2}{section.1}% \contentsline {section}{\numberline {2}Electricity market}{3}{section.2}% -\contentsline {section}{\numberline {3}Generative modeling}{5}{section.3}% +\contentsline {section}{\numberline {3}Generative modeling}{6}{section.3}% \contentsline {subsection}{\numberline {3.1}Quantile Regression}{6}{subsection.3.1}% -\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{8}{subsection.3.2}% -\contentsline {subsection}{\numberline {3.3}Model Types}{9}{subsection.3.3}% -\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{9}{subsubsection.3.3.1}% -\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{10}{subsubsection.3.3.2}% -\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{10}{subsubsection.3.3.3}% -\contentsline {subsection}{\numberline {3.4}Diffusion models}{11}{subsection.3.4}% +\contentsline {subsection}{\numberline {3.2}Autoregressive vs Non-Autoregressive models}{9}{subsection.3.2}% +\contentsline {subsection}{\numberline {3.3}Model Types}{10}{subsection.3.3}% +\contentsline {subsubsection}{\numberline {3.3.1}Linear Model}{10}{subsubsection.3.3.1}% +\contentsline {subsubsection}{\numberline {3.3.2}Non-Linear Model}{11}{subsubsection.3.3.2}% +\contentsline {subsubsection}{\numberline {3.3.3}Recurrent Neural Network (RNN)}{11}{subsubsection.3.3.3}% +\contentsline {subsection}{\numberline {3.4}Diffusion models}{12}{subsection.3.4}% \contentsline {subsubsection}{\numberline {3.4.1}Overview}{12}{subsubsection.3.4.1}% -\contentsline {subsubsection}{\numberline {3.4.2}Applications}{12}{subsubsection.3.4.2}% -\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{12}{subsubsection.3.4.3}% -\contentsline {subsection}{\numberline {3.5}Evaluation}{14}{subsection.3.5}% +\contentsline {subsubsection}{\numberline {3.4.2}Applications}{13}{subsubsection.3.4.2}% +\contentsline {subsubsection}{\numberline {3.4.3}Generation process}{13}{subsubsection.3.4.3}% +\contentsline {subsection}{\numberline {3.5}Evaluation}{15}{subsection.3.5}% \contentsline {section}{\numberline {4}Policies}{17}{section.4}% \contentsline {subsection}{\numberline {4.1}Baselines}{17}{subsection.4.1}% \contentsline {subsection}{\numberline {4.2}Policies based on NRV generations}{18}{subsection.4.2}% diff --git a/src/data/dataset.py b/src/data/dataset.py index d1ed42c..4b5f3fc 100644 --- a/src/data/dataset.py +++ b/src/data/dataset.py @@ -169,8 +169,7 @@ class NrvDataset(Dataset): all_features = torch.cat(all_features_list, dim=0) else: - all_features_list = [nrv_features + self.] - + all_features_list = [nrv_features.unsqueeze(1)] if self.forecast_features.numel() > 0: history_forecast_features = self.forecast_features[ diff --git a/src/trainers/diffusion_trainer.py b/src/trainers/diffusion_trainer.py index 8794378..4bd8788 100644 --- a/src/trainers/diffusion_trainer.py +++ b/src/trainers/diffusion_trainer.py @@ -80,11 +80,12 @@ class DiffusionTrainer: data_processor: DataProcessor, device: torch.device, policy_evaluator: PolicyEvaluator = None, + noise_steps: int = 300, ): self.model = model self.device = device - self.noise_steps = 300 + self.noise_steps = noise_steps self.beta_start = 0.0001 self.beta_end = 0.02 self.ts_length = 96 diff --git a/src/training_scripts/diffusion_training.py b/src/training_scripts/diffusion_training.py index 6985968..3601b22 100644 --- a/src/training_scripts/diffusion_training.py +++ b/src/training_scripts/diffusion_training.py @@ -2,7 +2,7 @@ from src.utils.clearml import ClearMLHelper clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast") task = clearml_helper.get_task( - task_name="Diffusion Training: hidden_sizes=[1024, 1024] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP", + task_name="Diffusion Training: hidden_sizes=[256, 256] (30 steps), lr=0.0001, time_dim=8", ) task.execute_remotely(queue_name="default", exit_process=True) @@ -19,16 +19,16 @@ from src.policies.PolicyEvaluator import PolicyEvaluator data_config = DataConfig() data_config.NRV_HISTORY = True -data_config.LOAD_HISTORY = True -data_config.LOAD_FORECAST = True +data_config.LOAD_HISTORY = False +data_config.LOAD_FORECAST = False -data_config.PV_FORECAST = True -data_config.PV_HISTORY = True +data_config.PV_FORECAST = False +data_config.PV_HISTORY = False -data_config.WIND_FORECAST = True -data_config.WIND_HISTORY = True +data_config.WIND_FORECAST = False +data_config.WIND_HISTORY = False -data_config.NOMINAL_NET_POSITION = True +data_config.NOMINAL_NET_POSITION = False data_config = task.connect(data_config, name="data_features") @@ -42,7 +42,7 @@ print("Input dim: ", inputDim) model_parameters = { "epochs": 15000, "learning_rate": 0.0001, - "hidden_sizes": [1024, 1024], + "hidden_sizes": [256, 256], "time_dim": 8, } @@ -71,6 +71,6 @@ policy_evaluator = PolicyEvaluator(baseline_policy, task) #### Trainer #### trainer = DiffusionTrainer( - model, data_processor, "cuda", policy_evaluator=policy_evaluator + model, data_processor, "cuda", policy_evaluator=policy_evaluator, noise_steps=30 ) trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task)