diff --git a/50_Choice_of_Hyperparameters.tex b/50_Choice_of_Hyperparameters.tex index cdf133b..c9b1ba4 100644 --- a/50_Choice_of_Hyperparameters.tex +++ b/50_Choice_of_Hyperparameters.tex @@ -348,6 +348,8 @@ being cheaper from a computational perspective. In order to make a more informed choice for the best hyperparamerers, the performance of all three combinations has been analysed. +\clearpage + \begin{table}[ht] %\vspace{-8pt} \centering @@ -384,25 +386,22 @@ therefore been chosen as the model for the full year simulations. % TODO: [Hyperparameters] Validation of hyperparameters -The validation of model parameters has the dual purpose of +The validation step has the purpose of testing the fiability of the trained +models. If choosing a model according to loss function values on a new dataset +is a way of minimizing the possibility of overfitting the model to the training +data, validating the model by analyzing its multi-step prediction performance +ensures the model was able to learn the correct dynamics and is useful in +simulation scenarios. +The following subsections analyze the performance of the trained \arcshort{gp} +and \acrshort{svgp} models over 20-step ahead predictions. For the \acrshort{gp} +model the final choice of parameters is made according to the simulation +performance. The simulation performance of the \acrshort{svgp} model is compared +to that of the classical models while speculating on the possible reasons for +the discrepancies. \subsubsection{Conventional Gaussian Process} -\begin{figure}[ht] - \centering - \includegraphics[width = \textwidth]{Plots/GP_113_training_performance.pdf} - \caption{} - \label{fig:GP_train_validation} -\end{figure} - -\begin{figure}[ht] - \centering - \includegraphics[width = \textwidth]{Plots/GP_113_test_performance.pdf} - \caption{} - \label{fig:GP_test_validation} -\end{figure} - \begin{figure}[ht] \centering @@ -412,23 +411,39 @@ The validation of model parameters has the dual purpose of \label{fig:GP_multistep_validation} \end{figure} +\begin{figure}[ht] + \centering + \includegraphics[width = + \textwidth]{Plots/GP_213_-1pts_test_prediction_20_steps.pdf} + \caption{} + \label{fig:GP_213_multistep_validation} +\end{figure} + +\begin{figure}[ht] + \centering + \includegraphics[width = + \textwidth]{Plots/GP_313_-1pts_test_prediction_20_steps.pdf} + \caption{} + \label{fig:GP_313_multistep_validation} +\end{figure} + \clearpage \subsubsection{Sparse and Variational Gaussian Process} -\begin{figure}[ht] - \centering - \includegraphics[width = \textwidth]{Plots/SVGP_123_training_performance.pdf} - \caption{} - \label{fig:SVGP_train_validation} -\end{figure} - -\begin{figure}[ht] - \centering - \includegraphics[width = \textwidth]{Plots/SVGP_123_test_performance.pdf} - \caption{} - \label{fig:SVGP_test_validation} -\end{figure} +%\begin{figure}[ht] +% \centering +% \includegraphics[width = \textwidth]{Plots/SVGP_123_training_performance.pdf} +% \caption{} +% \label{fig:SVGP_train_validation} +%\end{figure} +% +%\begin{figure}[ht] +% \centering +% \includegraphics[width = \textwidth]{Plots/SVGP_123_test_performance.pdf} +% \caption{} +% \label{fig:SVGP_test_validation} +%\end{figure} \begin{figure}[ht] \centering diff --git a/60_The_MPC_Problem.tex b/60_The_MPC_Problem.tex index 0ef5128..9eec02e 100644 --- a/60_The_MPC_Problem.tex +++ b/60_The_MPC_Problem.tex @@ -30,7 +30,7 @@ the GP input vector at time t, composed of the exogenous autoregressive inputs $\mathbf{w}_{t}$, the autoregressive controlled inputs $\mathbf{u}_{t}$ and the autoregressive outputs $\mathbf{y}_{t}$. -\subsection{Temperature reference} +\subsection{Temperature reference}\label{sec:reference_temperature} The temperature reference for the controller has been taken as the mean value of the SIA~180:2014~\cite{sia180:2014ProtectionThermiqueProtection2014} temperature diff --git a/70_Implementation.tex b/70_Implementation.tex index d6be215..3b27e01 100644 --- a/70_Implementation.tex +++ b/70_Implementation.tex @@ -20,21 +20,17 @@ in the \acrshort{wdb} object is given in Section~\ref{sec:CARNOT_WDB}. \subsection{Simulink Model} - -% TODO: [Implementation] Move the simulink schema here, with explanations of tcp - -The final Simulink schema is presented in Figure~\ref{fig:CARNOT_complete}: +The secondary functions of the Simulink model is the weather prediction, as well +as communication with the Python controller. A complete schema of the Simulink +setup is presented in Figure~\ref{fig:Simulink_complete}. \begin{figure}[ht] \centering - \includegraphics[width = \textwidth]{Images/polydome_python.pdf} + \includegraphics[width = 0.75\textwidth]{Images/polydome_python.pdf} \caption{Simulink Schema of the Complete Simulation} \label{fig:Simulink_complete} \end{figure} -The secondary functions of the Simulink model is the weather prediction, as well -as communication with the Python controller. - The communication between Simulink and the controller is done using three separate TCP/IP sockets: one for sending the control signal, one for reading the temperature measurement, and one for reading the weather forecast. This is @@ -185,5 +181,20 @@ delegates which controller is active, is responsible for training and updating the \acrshort{gp} and \acrshort{svgp} models, as well as keeping track of all the intermediate results for analysis. +In the beginning of the experiment there is no information available on the +building's thermal behaviour. For this part of the simulation, the controller +switches to a \acrshort{pi} controller until it gathers enough data to train a +\acrshort{gp} model. The signal is then disturbed by a random signal before +being applied to the CARNOT building. This ensured that the building is +sufficiently excited to capture its dynamics, while maintaining the +temperature within an acceptable range (~15 --- 25 $\degree$C). + +Once enough data has been captured, the Python controller trains the +\acrshort{gp} model and switches to tracking the appropriate SIA 180:2014 +reference temperature (cf. Section~\ref{sec:reference_temperature}). + +For the case of the \acrshort{svgp}, a new model is trained once enough data is +gathered. The implementations tested were updated once a day, either on the +whole historical set of data, or on a window of the last five days of data. \clearpage diff --git a/99A_GP_hyperparameters_validation.tex b/99A_GP_hyperparameters_validation.tex index 93c61e3..f028c0e 100644 --- a/99A_GP_hyperparameters_validation.tex +++ b/99A_GP_hyperparameters_validation.tex @@ -2,6 +2,24 @@ \section{Hyperparameters validation for classical GP} +\subsection{113} + +\begin{figure}[ht] + \centering + \includegraphics[width = \textwidth]{Plots/GP_113_training_performance.pdf} + \caption{} + \label{fig:GP_train_validation} +\end{figure} + +\begin{figure}[ht] + \centering + \includegraphics[width = \textwidth]{Plots/GP_113_test_performance.pdf} + \caption{} + \label{fig:GP_test_validation} +\end{figure} + +\clearpage + \subsection{213} \begin{figure}[ht] @@ -18,21 +36,10 @@ \label{fig:GP_213_test_validation} \end{figure} - -\begin{figure}[ht] - \centering - \includegraphics[width = - \textwidth]{Plots/GP_213_-1pts_test_prediction_20_steps.pdf} - \caption{} - \label{fig:GP_213_multistep_validation} -\end{figure} - - \clearpage \subsection{313} - \begin{figure}[ht] \centering \includegraphics[width = \textwidth]{Plots/GP_313_training_performance.pdf} @@ -47,14 +54,4 @@ \label{fig:GP_313_test_validation} \end{figure} - -\begin{figure}[ht] - \centering - \includegraphics[width = - \textwidth]{Plots/GP_313_-1pts_test_prediction_20_steps.pdf} - \caption{} - \label{fig:GP_313_multistep_validation} -\end{figure} - - \clearpage diff --git a/glossaries.tex b/glossaries.tex index 3111019..cbacd41 100644 --- a/glossaries.tex +++ b/glossaries.tex @@ -4,6 +4,8 @@ % Acronyms +\newacronym{pi}{PI}{Proportional Integral} + \newacronym{ocp}{OCP}{Optimal Control Problem} \newacronym{mpc}{MPC}{Model Predictive Control}