Updated thesis
This commit is contained in:
@@ -45,3 +45,51 @@
|
||||
short = NP,
|
||||
long = Implicit 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
|
||||
}
|
||||
|
||||
@@ -162,7 +162,16 @@
|
||||
\setcounter{g@acro@MSE@int}{4}
|
||||
\setcounter{g@acro@MAE@int}{4}
|
||||
\setcounter{g@acro@CRPS@int}{2}
|
||||
\setcounter{g@acro@NRV@int}{9}
|
||||
\setcounter{g@acro@NRV@int}{14}
|
||||
\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@FCR@int}{1}
|
||||
\setcounter{g@acro@aFRR@int}{1}
|
||||
\setcounter{g@acro@mFRR@int}{1}
|
||||
\setcounter{g@acro@MW@int}{1}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Overview of the most important parties in the electricity market\relax }}{3}{table.caption.1}\protected@file@percent }
|
||||
\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}{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 }
|
||||
@@ -25,7 +35,7 @@
|
||||
\@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 281}}{14}{Generation process}{figure.caption.7}{}}
|
||||
\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{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}{}}
|
||||
@@ -186,7 +196,16 @@
|
||||
\setcounter{g@acro@MSE@int}{0}
|
||||
\setcounter{g@acro@MAE@int}{0}
|
||||
\setcounter{g@acro@CRPS@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{5}
|
||||
\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@FCR@int}{1}
|
||||
\setcounter{g@acro@aFRR@int}{1}
|
||||
\setcounter{g@acro@mFRR@int}{1}
|
||||
\setcounter{g@acro@MW@int}{1}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
% - TODO: Achtergrond RNN?
|
||||
|
||||
\section{Electricity market}
|
||||
The electricity market consists of many different parties who all work together and want to make a profit in the end. An overview of the most important parties can be found in Table \ref{tab:parties}.
|
||||
The electricity market consists of many different parties who all work together and want to make a profit in the end. An overview of the most important parties can be found in Table \ref{tab:parties}. Each of them has a different role in the market.
|
||||
|
||||
% table
|
||||
\begin{table}[h]
|
||||
@@ -19,38 +19,40 @@ The electricity market consists of many different parties who all work together
|
||||
\hline
|
||||
Consumers & Uses electricity. This can be normal households, companies but also industry. \\
|
||||
\hline
|
||||
Transmission system operator (TSO) & Party responsible for reliable transmission of electricity from generation plants to local distribution networks. This is done over the high-voltage grid. In Belgium, this party is Elia.\\
|
||||
\acf{TSO} & Party responsible for reliable transmission of electricity from generation plants to local distribution networks. This is done over the high-voltage grid. In Belgium, this party is Elia.\\
|
||||
\hline
|
||||
Distribution system operator (DSO) & Party responsible for the distribution of electricity to the end users. Here, the electricity is transported over the low-voltage grid. \\
|
||||
\acf{DSO} & Party responsible for the distribution of electricity to the end users. Here, the electricity is transported over the low-voltage grid. \\
|
||||
\hline
|
||||
Balancing responsible party (BRP) & These parties forecast the electricity consumption and generation of their clients. They make balanced nominations to Elia.
|
||||
\acf{BRP} & These parties forecast the electricity consumption and generation of their clients. They make balanced nominations to Elia.
|
||||
\\
|
||||
\hline
|
||||
Balancing Service Provider (BSP) & Parties that provide the TSO (Elia) with balancing services. They submit Balancing Energy Bids to Elia. If needed, they will provide balancing energy at a set price. \\
|
||||
\acf{BSP} & Parties that provide the \ac{TSO} (Elia) with balancing services. They submit Balancing Energy Bids to Elia. If needed, they will provide balancing energy at a set price. \\
|
||||
\hline
|
||||
\end{tabularx}
|
||||
\caption{Overview of the most important parties in the electricity market}
|
||||
\label{tab:parties}
|
||||
\end{table}
|
||||
|
||||
Elia, the Transmission system operator (TSO) in Belgium is responsible for keeping the grid stable. They do this by balancing the electricity consumption and generation. If there is an imbalance, Elia will use reserves to balance the grid. These reserves are expensive and are paid by the market participants. The prices paid for the activations of these reserves is called the imbalance price. Keeping the grid balanced is a very important but also a very difficult task. If the grid is not balanced, it can lead to blackouts but also other problems like damage to equipment and so on.
|
||||
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.
|
||||
|
||||
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 trades 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 a 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.
|
||||
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 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 Net Regulation Volume (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 imbalance of the system (SI) is the Area Control Error minus the NRV. Using the System Imbalance, the imbalance price is calculated.
|
||||
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.
|
||||
|
||||
Elia, the Transmission System Operator (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:
|
||||
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.
|
||||
|
||||
1) \textbf{Frequency Containment Reserve (FCR)} \\
|
||||
FCR is a reserve that responds automatically to frequency deviations in the grid. The reserve responds automatically in seconds and provides a proportional response to the frequency deviation. Elia must provide a minimal share of this volume within the Belgian control area. This type of volume can also be offered by the BSPs.
|
||||
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:
|
||||
|
||||
2) \textbf{Automatic Frequency Restoration Process (aFRR)} \\
|
||||
1) \textbf{ \acf{FCR}} \\
|
||||
FCR is a reserve that responds automatically to frequency deviations in the grid. The reserve responds automatically in seconds and provides a proportional response to the frequency deviation. Elia must provide a minimal share of this volume within the Belgian control area. This type of volume can also be offered by the \acsp{BSP}.
|
||||
|
||||
2) \textbf{ \acf{aFRR}} \\
|
||||
aFRR is the second reserve that Elia can activate to restore the frequency to 50Hz. The aFRR is activated when the FCR is not sufficient to restore the frequency. Every 4 seconds, Elia sends a set-point to the BSPs. The BSPs use this set-point to adjust their production or consumption. The BSPs have a 7.5-minute window to activate the full requested energy volume.
|
||||
|
||||
3) \textbf{Manual Frequency Restoration (mFRR)} \\
|
||||
3) \textbf{ \acf{mFRR}} \\
|
||||
Sometimes the FCR and aFRR are not enough to restore the imbalance between generation and consumption. Elia activates the mFRR manually and the requested energy volume is to be activated in 15 minutes.
|
||||
|
||||
The order in which the reserves are activated is as follows: FCR, aFRR and mFRR. BSPs provide bids for the aFRR and mFRR volumes. The provided bids consist of the type (aFRR or mFRR), bid volume (MW), bid price (per MWh) and start price (per MWh).
|
||||
The order in which the reserves are activated is as follows: FCR, aFRR and mFRR. BSPs provide bids for the aFRR and mFRR volumes. The provided bids consist of the type (aFRR or mFRR), bid volume (\acs{MW}), bid price (per MWh) and start price (per MWh).
|
||||
The start price is used to cover the costs of starting a unit.
|
||||
|
||||
Elia selects the bids based on the order of activation and then the price. The highest marginal price paid for upward or downward activation determines the imbalance price. This means that the last bid that is activated determines the imbalance price. This price is paid by the BRPs that are not balanced. The imbalance price calculation is shown in Table \ref{tab:imbalance_price}.
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent }
|
||||
\ACRO{recordpage}{TSO}{3}{1}{2}
|
||||
\ACRO{recordpage}{NRV}{3}{1}{2}
|
||||
\ACRO{recordpage}{NRV}{3}{1}{2}
|
||||
\ACRO{recordpage}{NRV}{3}{1}{2}
|
||||
\@setckpt{sections/introduction}{
|
||||
\setcounter{page}{3}
|
||||
\setcounter{equation}{0}
|
||||
@@ -158,7 +162,16 @@
|
||||
\setcounter{g@acro@MSE@int}{0}
|
||||
\setcounter{g@acro@MAE@int}{0}
|
||||
\setcounter{g@acro@CRPS@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{3}
|
||||
\setcounter{g@acro@PV@int}{0}
|
||||
\setcounter{g@acro@NP@int}{0}
|
||||
\setcounter{g@acro@TSO@int}{1}
|
||||
\setcounter{g@acro@DSO@int}{0}
|
||||
\setcounter{g@acro@BRP@int}{0}
|
||||
\setcounter{g@acro@BSP@int}{0}
|
||||
\setcounter{g@acro@SI@int}{0}
|
||||
\setcounter{g@acro@FCR@int}{0}
|
||||
\setcounter{g@acro@aFRR@int}{0}
|
||||
\setcounter{g@acro@mFRR@int}{0}
|
||||
\setcounter{g@acro@MW@int}{0}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
\section{Introduction}
|
||||
The electricity market is a complex system influenced by numerous factors. The rise of renewable energy sources adds to this complexity, introducing greater volatility compared to traditional energy sources. Renewables, with their unpredictable nature, exacerbate the challenge of maintaining a stable balance between supply and demand. This critical balance is managed by the transmission system operator, Elia, which utilizes reserves to mitigate any potential shortages or surpluses, directly influencing electricity prices.
|
||||
The electricity market is a complex system influenced by numerous factors. The rise of renewable energy sources adds to this complexity, introducing greater volatility compared to traditional energy sources. Renewables, with their unpredictable nature, exacerbate the challenge of maintaining a stable balance between supply and demand. This critical balance is managed by the \ac{TSO}, Elia in Belgium, which utilizes reserves to mitigate any potential shortages or surpluses, directly influencing electricity prices.
|
||||
|
||||
(TODO: Market participants met flexible assets (Groot genoeg), zij willen grote winst maken. Elia moet minder eigen reserves gebruiken -> goedkoper voor iedereen)
|
||||
Market participants with big enough flexible assets (eg. industrial batteries) can help keep the grid stable. This helps Elia to use fewer of its reserves, which in turn makes the system cheaper for everyone. The market participants are then paid for their services by Elia. The main goal of the market participants is not to help stabilize the grid, but to make a profit. They can do this by buying electricity when it is cheap and selling it when Elia pays a high price for it.
|
||||
|
||||
Forecasting the imbalance price is vital for market participants engaged in buying or selling electricity. It enables them to make informed decisions on the optimal times to buy or sell, aiming to maximize their profits. However, current industry practices often rely on simplistic policies, such as adhering to a fixed price for transactions. This approach is not optimal and overlooks the potential benefits of adaptive policies that consider the forecasted imbalance prices.
|
||||
|
||||
@@ -9,4 +9,4 @@ The goal of this thesis is to generatively model the Belgian electricity market.
|
||||
|
||||
Forecasting the system imbalance will become increasingly important as the share of renewable energy sources continues to grow.
|
||||
|
||||
This thesis can be divided into two main parts. The first part focuses on modeling the Net Regulation Volume (NRV) of the Belgian electricity market for the next day. This modeling is conditioned on multiple inputs that can be obtained from Elia (TODO: add citation to the open data of Elia). The second part of the thesis focuses on optimizing a simple policy using the NRV generations for the next day. The policy tries to maximize profit by charging and discharging a battery and thereby buying and selling electricity on the market. Multiple models are trained and tested to model the NRV and compared to each other based on their profit optimization.
|
||||
This thesis can be divided into two main parts. The first part focuses on modeling the \ac{NRV} of the Belgian electricity market for the next day. This modeling is conditioned on multiple inputs that can be obtained from data provided by Elia. The second part of the thesis focuses on optimizing a simple policy using the \ac{NRV} generations for the next day. The policy tries to maximize profit by charging and discharging a battery and thereby buying and selling electricity on the market. Multiple models are trained and tested to model the \ac{NRV} and compared to each other based on their profit optimization.
|
||||
|
||||
@@ -160,7 +160,16 @@
|
||||
\setcounter{g@acro@MSE@int}{0}
|
||||
\setcounter{g@acro@MAE@int}{0}
|
||||
\setcounter{g@acro@CRPS@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{5}
|
||||
\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@FCR@int}{1}
|
||||
\setcounter{g@acro@aFRR@int}{1}
|
||||
\setcounter{g@acro@mFRR@int}{1}
|
||||
\setcounter{g@acro@MW@int}{1}
|
||||
}
|
||||
|
||||
@@ -161,7 +161,16 @@
|
||||
\setcounter{g@acro@MSE@int}{0}
|
||||
\setcounter{g@acro@MAE@int}{0}
|
||||
\setcounter{g@acro@CRPS@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{0}
|
||||
\setcounter{g@acro@NRV@int}{5}
|
||||
\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@FCR@int}{1}
|
||||
\setcounter{g@acro@aFRR@int}{1}
|
||||
\setcounter{g@acro@mFRR@int}{1}
|
||||
\setcounter{g@acro@MW@int}{1}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -135,14 +135,31 @@
|
||||
\ACRO{usage}{MSE=={4}}
|
||||
\ACRO{usage}{MAE=={4}}
|
||||
\ACRO{usage}{CRPS=={2}}
|
||||
\ACRO{usage}{NRV=={9}}
|
||||
\ACRO{usage}{NRV=={14}}
|
||||
\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}{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}{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}{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=={44@1@43|45@1@44}}
|
||||
\ACRO{pages}{NRV=={3@1@2|5@1@4|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}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.9.17) 11 MAY 2024 21:48
|
||||
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
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
@@ -1079,6 +1079,15 @@ Package: ulem 2019/11/18
|
||||
\c@g@acro@NRV@int=\count489
|
||||
\c@g@acro@PV@int=\count490
|
||||
\c@g@acro@NP@int=\count491
|
||||
\c@g@acro@TSO@int=\count492
|
||||
\c@g@acro@DSO@int=\count493
|
||||
\c@g@acro@BRP@int=\count494
|
||||
\c@g@acro@BSP@int=\count495
|
||||
\c@g@acro@SI@int=\count496
|
||||
\c@g@acro@FCR@int=\count497
|
||||
\c@g@acro@aFRR@int=\count498
|
||||
\c@g@acro@mFRR@int=\count499
|
||||
\c@g@acro@MW@int=\count500
|
||||
)
|
||||
Package csquotes Info: Checking for multilingual support...
|
||||
Package csquotes Info: ... found 'babel' package.
|
||||
@@ -1167,16 +1176,16 @@ LaTeX Font Info: ... okay on input line 133.
|
||||
|
||||
(/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count492
|
||||
\scratchcounter=\count501
|
||||
\scratchdimen=\dimen333
|
||||
\scratchbox=\box77
|
||||
\nofMPsegments=\count493
|
||||
\nofMParguments=\count494
|
||||
\nofMPsegments=\count502
|
||||
\nofMParguments=\count503
|
||||
\everyMPshowfont=\toks50
|
||||
\MPscratchCnt=\count495
|
||||
\MPscratchCnt=\count504
|
||||
\MPscratchDim=\dimen334
|
||||
\MPnumerator=\count496
|
||||
\makeMPintoPDFobject=\count497
|
||||
\MPnumerator=\count505
|
||||
\makeMPintoPDFobject=\count506
|
||||
\everyMPtoPDFconversion=\toks51
|
||||
) (/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
|
||||
@@ -1184,8 +1193,8 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 48
|
||||
(/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
|
||||
))
|
||||
\c@mv@tabular=\count498
|
||||
\c@mv@boldtabular=\count499
|
||||
\c@mv@tabular=\count507
|
||||
\c@mv@boldtabular=\count508
|
||||
LaTeX Info: Command `\dddot' is already robust on input line 133.
|
||||
LaTeX Info: Command `\ddddot' is already robust on input line 133.
|
||||
Package caption Info: Begin \AtBeginDocument code.
|
||||
@@ -1387,55 +1396,54 @@ l.149 \newpage
|
||||
|
||||
|
||||
] [4]
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 75--80
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 77--82
|
||||
|
||||
[]
|
||||
|
||||
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 75--80
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 77--82
|
||||
|
||||
[]
|
||||
|
||||
|
||||
Overfull \hbox (4.77582pt too wide) in paragraph at lines 92--94
|
||||
[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
|
||||
[]\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 94.
|
||||
LaTeX Font Info: Trying to load font information for TS1+LinuxLibertineT-TLF on input line 96.
|
||||
(/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 94.
|
||||
[5{/usr/local/texlive/2023/texmf-dist/fonts/enc/dvips/libertinust1math/libusMI.enc}]
|
||||
(Font) scaled to size 12.0pt on input line 96.
|
||||
LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be
|
||||
(Font) scaled to size 14.4pt on input line 100.
|
||||
(Font) scaled to size 14.4pt on input line 102.
|
||||
<images/quantile_regression/cdf_quantiles_example.png, id=210, 722.7pt x 433.62pt>
|
||||
File: images/quantile_regression/cdf_quantiles_example.png Graphic file (type png)
|
||||
<use images/quantile_regression/cdf_quantiles_example.png>
|
||||
Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 107.
|
||||
Package pdftex.def Info: images/quantile_regression/cdf_quantiles_example.png used on input line 109.
|
||||
(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>]
|
||||
<images/quantile_regression/reconstructed_cdf.png, id=222, 722.7pt x 433.62pt>
|
||||
<images/quantile_regression/reconstructed_cdf.png, id=221, 722.7pt x 433.62pt>
|
||||
File: images/quantile_regression/reconstructed_cdf.png Graphic file (type png)
|
||||
<use images/quantile_regression/reconstructed_cdf.png>
|
||||
Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 117.
|
||||
Package pdftex.def Info: images/quantile_regression/reconstructed_cdf.png used on input line 119.
|
||||
(pdftex.def) Requested size: 364.19667pt x 218.51653pt.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 8.0pt on input line 127.
|
||||
(Font) scaled to size 8.0pt on input line 129.
|
||||
LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be
|
||||
(Font) scaled to size 6.0pt on input line 127.
|
||||
(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]
|
||||
<images/quantile_regression/rnn/RNN_diagram.png, id=247, 753.81625pt x 324.21124pt>
|
||||
File: images/quantile_regression/rnn/RNN_diagram.png Graphic file (type png)
|
||||
<use images/quantile_regression/rnn/RNN_diagram.png>
|
||||
Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 206.
|
||||
Package pdftex.def Info: images/quantile_regression/rnn/RNN_diagram.png used on input line 208.
|
||||
(pdftex.def) Requested size: 364.19667pt x 156.63872pt.
|
||||
[11 <./images/quantile_regression/rnn/RNN_diagram.png>]
|
||||
<images/diffusion/Generation-with-Diffusion-Models.png, id=255, 926.00159pt x 228.96758pt>
|
||||
File: images/diffusion/Generation-with-Diffusion-Models.png Graphic file (type png)
|
||||
<use images/diffusion/Generation-with-Diffusion-Models.png>
|
||||
Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 234.
|
||||
Package pdftex.def Info: images/diffusion/Generation-with-Diffusion-Models.png used on input line 236.
|
||||
(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}]
|
||||
|
||||
@@ -1443,22 +1451,22 @@ Package caption Warning: \label without proper reference on input line 281.
|
||||
See the caption package documentation for explanation.
|
||||
|
||||
|
||||
LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 274.
|
||||
LaTeX Warning: Reference `fig:diffusion_process' on page 14 undefined on input line 276.
|
||||
|
||||
<images/diffusion/diffusion_graphical_model.png, id=270, 979.66pt x 185.69376pt>
|
||||
File: images/diffusion/diffusion_graphical_model.png Graphic file (type png)
|
||||
<use images/diffusion/diffusion_graphical_model.png>
|
||||
Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 278.
|
||||
Package pdftex.def Info: images/diffusion/diffusion_graphical_model.png used on input line 280.
|
||||
(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 307.
|
||||
LaTeX Font Info: Trying to load font information for U+bbm on input line 309.
|
||||
(/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
|
||||
)
|
||||
<images/quantile_regression/crps_visualization.png, id=279, 611.4042pt x 395.3169pt>
|
||||
File: images/quantile_regression/crps_visualization.png Graphic file (type png)
|
||||
<use images/quantile_regression/crps_visualization.png>
|
||||
Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 325.
|
||||
Package pdftex.def Info: images/quantile_regression/crps_visualization.png used on input line 327.
|
||||
(pdftex.def) Requested size: 364.19667pt x 235.4849pt.
|
||||
) [15] [16 <./images/quantile_regression/crps_visualization.png>]
|
||||
\openout2 = `sections/policies.aux'.
|
||||
@@ -1980,15 +1988,15 @@ Package logreq Info: Writing requests to 'verslag.run.xml'.
|
||||
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
41963 strings out of 476025
|
||||
875264 string characters out of 5790017
|
||||
42826 strings out of 476025
|
||||
909556 string characters out of 5790017
|
||||
1884388 words of memory out of 5000000
|
||||
61527 multiletter control sequences out of 15000+600000
|
||||
606970 words of font info for 100 fonts, out of 8000000 for 9000
|
||||
62390 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
|
||||
</Users/victormylle/Library/texlive/2023/texmf-var/fonts/pk/ljfour/public/bbm/bbm12.600pk></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertinust1math/LibertinusT1Math.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb></usr/local/texlive/2023/texmf-dist/fonts/type1/public/stix/stix-mathcal.pfb>
|
||||
Output written on verslag.pdf (50 pages, 8678616 bytes).
|
||||
Output written on verslag.pdf (50 pages, 8679191 bytes).
|
||||
PDF statistics:
|
||||
668 PDF objects out of 1000 (max. 8388607)
|
||||
494 compressed objects within 5 object streams
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -169,11 +169,16 @@ class NrvDataset(Dataset):
|
||||
all_features = torch.cat(all_features_list, dim=0)
|
||||
|
||||
else:
|
||||
all_features_list = [nrv_features.unsqueeze(1)]
|
||||
all_features_list = [nrv_features + self.]
|
||||
|
||||
|
||||
if self.forecast_features.numel() > 0:
|
||||
history_forecast_features = self.forecast_features[
|
||||
actual_idx + 1 : actual_idx + self.sequence_length + 1, :
|
||||
actual_idx
|
||||
+ 1 : actual_idx
|
||||
+ self.sequence_length
|
||||
+ self.predict_sequence_length,
|
||||
:,
|
||||
]
|
||||
all_features_list.append(history_forecast_features)
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class GRUDiffusionModel(DiffusionModel):
|
||||
self.gru = nn.GRU(
|
||||
input_size=input_size + time_dim + other_inputs_dim,
|
||||
hidden_size=gru_hidden_size,
|
||||
num_layers=3,
|
||||
num_layers=1,
|
||||
batch_first=True,
|
||||
)
|
||||
|
||||
|
||||
@@ -590,43 +590,43 @@ class DiffusionTrainer:
|
||||
title="CRPS", series="test", value=mean_crps, iteration=epoch
|
||||
)
|
||||
|
||||
if self.policy_evaluator:
|
||||
_, test_loader = self.data_processor.get_dataloaders(
|
||||
predict_sequence_length=self.ts_length, full_day_skip=True
|
||||
)
|
||||
# if self.policy_evaluator:
|
||||
# _, test_loader = self.data_processor.get_dataloaders(
|
||||
# predict_sequence_length=self.ts_length, full_day_skip=True
|
||||
# )
|
||||
|
||||
optimal_penalty, profit, charge_cycles = (
|
||||
self.policy_evaluator.optimize_penalty_for_target_charge_cycles(
|
||||
idx_samples=generated_samples,
|
||||
test_loader=test_loader,
|
||||
initial_penalty=self.prev_optimal_penalty,
|
||||
target_charge_cycles=283,
|
||||
initial_learning_rate=1,
|
||||
max_iterations=50,
|
||||
tolerance=1,
|
||||
iteration=epoch,
|
||||
)
|
||||
)
|
||||
# optimal_penalty, profit, charge_cycles = (
|
||||
# self.policy_evaluator.optimize_penalty_for_target_charge_cycles(
|
||||
# idx_samples=generated_samples,
|
||||
# test_loader=test_loader,
|
||||
# initial_penalty=self.prev_optimal_penalty,
|
||||
# target_charge_cycles=283,
|
||||
# initial_learning_rate=1,
|
||||
# max_iterations=50,
|
||||
# tolerance=1,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
# )
|
||||
|
||||
self.prev_optimal_penalty = optimal_penalty
|
||||
# self.prev_optimal_penalty = optimal_penalty
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Penalty",
|
||||
series="test",
|
||||
value=optimal_penalty,
|
||||
iteration=epoch,
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Penalty",
|
||||
# series="test",
|
||||
# value=optimal_penalty,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Profit", series="test", value=profit, iteration=epoch
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Profit", series="test", value=profit, iteration=epoch
|
||||
# )
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Charge Cycles",
|
||||
series="test",
|
||||
value=charge_cycles,
|
||||
iteration=epoch,
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Charge Cycles",
|
||||
# series="test",
|
||||
# value=charge_cycles,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
|
||||
return mean_crps, generated_samples
|
||||
|
||||
|
||||
@@ -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 (GRU - 2048): hidden_sizes=[512, 512] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP",
|
||||
task_name="Diffusion Training: hidden_sizes=[1024, 1024] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP",
|
||||
)
|
||||
task.execute_remotely(queue_name="default", exit_process=True)
|
||||
|
||||
@@ -32,7 +32,7 @@ data_config.NOMINAL_NET_POSITION = True
|
||||
|
||||
data_config = task.connect(data_config, name="data_features")
|
||||
|
||||
data_processor = DataProcessor(data_config, path="", lstm=True)
|
||||
data_processor = DataProcessor(data_config, path="", lstm=False)
|
||||
data_processor.set_batch_size(64)
|
||||
data_processor.set_full_day_skip(True)
|
||||
|
||||
@@ -42,33 +42,35 @@ print("Input dim: ", inputDim)
|
||||
model_parameters = {
|
||||
"epochs": 15000,
|
||||
"learning_rate": 0.0001,
|
||||
"hidden_sizes": [512, 512],
|
||||
"hidden_sizes": [1024, 1024],
|
||||
"time_dim": 8,
|
||||
}
|
||||
|
||||
model_parameters = task.connect(model_parameters, name="model_parameters")
|
||||
|
||||
#### Model ####
|
||||
# model = SimpleDiffusionModel(
|
||||
# 96,
|
||||
# model_parameters["hidden_sizes"],
|
||||
# other_inputs_dim=inputDim[1],
|
||||
# time_dim=model_parameters["time_dim"],
|
||||
# )
|
||||
|
||||
model = GRUDiffusionModel(
|
||||
model = SimpleDiffusionModel(
|
||||
96,
|
||||
model_parameters["hidden_sizes"],
|
||||
other_inputs_dim=inputDim[2],
|
||||
other_inputs_dim=inputDim[1],
|
||||
time_dim=model_parameters["time_dim"],
|
||||
gru_hidden_size=2048,
|
||||
)
|
||||
|
||||
# model = GRUDiffusionModel(
|
||||
# 96,
|
||||
# model_parameters["hidden_sizes"],
|
||||
# other_inputs_dim=inputDim[2],
|
||||
# time_dim=model_parameters["time_dim"],
|
||||
# gru_hidden_size=1024,
|
||||
# )
|
||||
|
||||
### Policy Evaluator ###
|
||||
battery = Battery(2, 1)
|
||||
baseline_policy = BaselinePolicy(battery, data_path="")
|
||||
policy_evaluator = PolicyEvaluator(baseline_policy, task)
|
||||
|
||||
#### Trainer ####
|
||||
trainer = DiffusionTrainer(model, data_processor, "cuda", policy_evaluator=None)
|
||||
trainer = DiffusionTrainer(
|
||||
model, data_processor, "cuda", policy_evaluator=policy_evaluator
|
||||
)
|
||||
trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task)
|
||||
|
||||
Reference in New Issue
Block a user