diff --git a/00_First_Page.tex b/00_First_Page.tex index 1295708..c2cb107 100644 --- a/00_First_Page.tex +++ b/00_First_Page.tex @@ -4,8 +4,13 @@ \includegraphics[width=0.5\linewidth]{Logo-EPFL.png}\par \vspace{5cm} -{\Huge \bf Multi-seasonal performance of Gaussian Processes for building control \par} -\vspace{1cm} +{\huge \bf +\setstretch{1.25} +Inter-seasonal Performance of Gaussian Process-based +Model Predictive Control of Buildings +\par} + +\vspace{2cm} {\LARGE \bf Master Project\par} \vspace{6cm} diff --git a/10_Introduction.tex b/10_Introduction.tex index 0615356..ad078db 100644 --- a/10_Introduction.tex +++ b/10_Introduction.tex @@ -101,7 +101,8 @@ simulations for both \acrshort{gp} and \acrshort{svgp} models. A few variations on the initial \acrshort{svgp} model are further analyzed in order to identify the most important parameteres for long time operation. -Finally, Section~\ref{sec:further_research} discusses the possible improvements -to both the current \acrshort{gp} and \acrshort{svgp} implementations. +Finally, Section~\ref{sec:conclusion} provides a review of all the different +implementation and discusses the possible improvements to both the current +\acrshort{gp} and \acrshort{svgp} models. \clearpage diff --git a/50_Choice_of_Hyperparameters.tex b/50_Choice_of_Hyperparameters.tex index 65d1b9d..d7f1f0e 100644 --- a/50_Choice_of_Hyperparameters.tex +++ b/50_Choice_of_Hyperparameters.tex @@ -351,7 +351,7 @@ computations. Other good choices for the combinations of lags are \model{2}{1}{3} and \model{1}{1}{3}, which have good performance on all four metrics, as well as being cheaper from a computational perspective. In order to make a more informed choice for the best hyperparameters, the simulation -performance of all three combinations has been analysed. +performance of all three combinations has been analyzed. \begin{table}[ht] %\vspace{-8pt} @@ -403,7 +403,7 @@ the discrepancies. \subsubsection{Conventional Gaussian Process} The simulation performance of the three lag combinations chosen for the -classical \acrlong{gp} models has been analysed, with the results presented in +classical \acrlong{gp} models has been analyzed, with the results presented in Figures~\ref{fig:GP_113_multistep_validation},~\ref{fig:GP_213_multistep_validation} and~\ref{fig:GP_313_multistep_validation}. For reference, the one-step ahead predictions for the training and test datasets are presented in @@ -449,8 +449,9 @@ this proves to be the best simulation model. \label{fig:GP_313_multistep_validation} \end{figure} -Lastly, \model{3}{1}{3} has a much worse simulation performance than the other -two models. This could hint at an over fitting of the model on the training data. +Lastly, \model{3}{1}{3} (cf. Figure~\ref{fig:GP_313_multistep_validation}) has a +much worse simulation performance than the other two models. This could hint at +an over fitting of the model on the training data. \clearpage diff --git a/80_Results.tex b/80_Results.tex index 9c8d574..35406dc 100644 --- a/80_Results.tex +++ b/80_Results.tex @@ -3,10 +3,10 @@ This section focuses on the presentation and interpretation of the year-long simulation of the control schemes presented previously. All the control schemes -analysed in this Section have used a sampling time of 15 minutes and a control +analyzed in this Section have used a sampling time of 15 minutes and a control horizon of 8 steps. -Section~\ref{sec:GP_results} analyses the results of a conventional +Section~\ref{sec:GP_results} analyzes the results of a conventional \acrlong{gp} Model trained on the first five days of gathered data. The model is then used for the rest of the year, with the goal of tracking the defined reference temperature. @@ -57,9 +57,6 @@ exhibit similar performance. The spring months already make the controller less stable than at the start of the year, while the drastic temperature changes in the summer make the controller completely unstable. -\clearpage - - Figure~\ref{fig:GP_fullyear_abserr} presents the absolute error measured at each step of the simulation over the course of the year. We can note a mean absolute error of 1.33 $\degree$C, with the largest deviations occurring in late summer @@ -74,7 +71,7 @@ occurring during the winter months. \label{fig:GP_fullyear_abserr} \end{figure} -Figure~\ref{fig:GP_first_model_performance} analyses the 20-step ahead +Figure~\ref{fig:GP_first_model_performance} analyzes the 20-step ahead simulation performance of the identified model over the course of the year. At experimental step 250, the controller is still gathering data. It is therefore expected that the identified model will be capable of reproducing this data. At @@ -334,6 +331,8 @@ This means that the model does not get much more complex as the data is gathered, but instead the same general structure is kept, with further refinements being done as data is added to the system. +\clearpage + \begin{figure}[ht] \centering \includegraphics[width = @@ -382,6 +381,8 @@ cumbersome and potentially costly initial experiments for gathering data. \label{fig:SVGP_96pts_abserr} \end{figure} +\clearpage + \subsection{SVGP with a five days moving window}\label{sec:svgp_window} This section presents the result of running a different control scheme. Here, as @@ -407,6 +408,8 @@ model, to again learn its behaviour. This cycle repeats every five days, when th controller becomes unstable. In the stable regions, however, the controller is able to track the reference temperature. +\clearpage + \subsection{SVGP with Linear Kernel}\label{sec:svgp_linear} The last model to be investigated is the \acrshort{svgp} with Linear Kernel. As diff --git a/90_Conclusion.tex b/90_Conclusion.tex index 3cd7d8c..1ce3cc1 100644 --- a/90_Conclusion.tex +++ b/90_Conclusion.tex @@ -1,34 +1,55 @@ \section{Conclusion}~\label{sec:conclusion} -The aim of this project was to analyse the performance of \acrshort{gp} based +The aim of this project was to analyze the performance of \acrshort{gp} based controllers for use in longer lasting implementations, where differences in building behaviour become important compared to the initially available data. -{\color{red} -First, the performance of a classical \acrshort{gp} model trained on 5 days -worth of experimental data was analysed. This model turned out to be unable to -correctly extrapolate building behaviour as the weather changed throughout the -year. -} - First, the performance of a classical \acrshort{gp} model trained on five days -worth of experimental data was analysed. Initially, this model performed very +worth of experimental data was analyzed. Initially, this model performed very well both in one step ahead prediction and multi-step ahead simulation over new, -unseen, data. With the change in weather, however, the model shifted +unseen, data. With the change in weather, however, the model shifted from +operating in the interpolated regions to the extrapolated regions of the initial +weather data. In this scenario the model was unable to properly predict the +\pdome\ behaviour and, as a consequence, the \acrshort{mpc} controller became +unstable. -Several \acrshort{svgp} implementations were then analysed. They turned out to -provide important benefits over the classical models, such as the ability to -easily scale when new data is being added and the much reduced computational -effort required. They do however present some downsides, namely increasing the -number of hyperparameters by having to choose the number of inducing locations, -as well as performing worse than then classical \acrshort{gp} implementation -given the same amount of data. +Following that, several \acrshort{svgp} implementations were analyzed. The +initial behaviour exhibited during parameter identification (cf. +Section~\ref{sec:hyperparameters}) showed that the \acrshort{svgp} model was +less capable of capturing building dynamics only based on the initial +experimental dataset, possibly due to the \acrshort{elbo} approximation of the +true log likelihood. While the \acrshort{svgp} model remained stable over the +course of the 20-step ahead simulation, in the later steps it drifted much +further from the real values than the equivalent \acrshort{gp} model. +However, during the full-year simulation, this downside of the \acrshort{svgp} +model was compensated by adding new data to the model training dataset each +night at midnight. The model performance continuously improved over the course +of the simulation, providing much better results overall. -%Finally, the possible improvements to the current implementations have been -%addressed, noting that classical \acrshort{gp} implementations could also be -%adapted to the \textit{learning control} paradigm, even if their implementation -%could turn out to be much more involved and more computationally expensive than -%the \acrshort{svgp} alternative. +To better analyze the learning behaviour of the \acrshort{svgp} models, three +variations of the initial \acrshort{svgp} were also simulated. The first +variation consisted of training the initial model on only one day's worth of +experimental data, as opposed to five days in the first case. This model was +then regularly updated every night at midnight, just as the initial case. It +turned out to provide very comparable results to the initial model, leading to +the conclusion that the \acrshort{svgp} model can be initially deployed using +much less training data, and it will still be able to correctly capture the +building dynamics on subsequent updates. + +The second variation of the \acrshort{svgp} model was re-trained using a rolling +window of five days' worth of data, in order to see the model's ability to learn +the proper building dynamics based only on closed-loop operation data. This +model turned out to be unstable, and the full-year simulation showed that every +time the model was trained using \textit{only} closed-loop operation data it +turned unstable. This prompted a much higher excitation of the building for the +following day, which in turn provided enough information to train a good model, +that would last until this information was too old to be included in the +training window, at which point the model would turn unstable again. + +In the last variation, the \acrshort{svgp} model was trained using a linear +kernel. This model turned out to perform worse overall than the \acrshort{se} +kernel model since it was unable to capture the more nuanced, non-linear +behaviour of the building. \subsection{Further Research}~\label{sec:further_research} diff --git a/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_abserr.pdf b/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_abserr.pdf index 18b75ab..a08cb2b 100644 Binary files a/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_abserr.pdf and b/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_abserr.pdf differ diff --git a/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_fullyear.pdf b/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_fullyear.pdf index 4a926de..00d56bc 100644 Binary files a/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_fullyear.pdf and b/Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_fullyear.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_abserr.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_abserr.pdf index 8f125fd..2d92fb0 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_abserr.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_abserr.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_hyperparameters.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_hyperparameters.pdf index 94f5de8..e5d4ecb 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_hyperparameters.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_hyperparameters.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_importance.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_importance.pdf index a69a1c7..799b623 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_importance.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_evol_importance.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_first_covariance.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_first_covariance.pdf index 91c212d..6fa0292 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_first_covariance.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_first_covariance.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_fullyear.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_fullyear.pdf index 7a9180f..bf6b553 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_fullyear.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_fullyear.pdf differ diff --git a/Plots/1_SVGP_480pts_inf_window_12_averageYear_last_covariance.pdf b/Plots/1_SVGP_480pts_inf_window_12_averageYear_last_covariance.pdf index 663f707..f84988d 100644 Binary files a/Plots/1_SVGP_480pts_inf_window_12_averageYear_last_covariance.pdf and b/Plots/1_SVGP_480pts_inf_window_12_averageYear_last_covariance.pdf differ diff --git a/Plots/4_GP_480pts_12_averageYear_abserr.pdf b/Plots/4_GP_480pts_12_averageYear_abserr.pdf index a09314a..d7c0e19 100644 Binary files a/Plots/4_GP_480pts_12_averageYear_abserr.pdf and b/Plots/4_GP_480pts_12_averageYear_abserr.pdf differ diff --git a/Plots/4_GP_480pts_12_averageYear_fullyear.pdf b/Plots/4_GP_480pts_12_averageYear_fullyear.pdf index efb11ae..32b1404 100644 Binary files a/Plots/4_GP_480pts_12_averageYear_fullyear.pdf and b/Plots/4_GP_480pts_12_averageYear_fullyear.pdf differ diff --git a/Plots/5_SVGP_480pts_480pts_window_12_averageYear_abserr.pdf b/Plots/5_SVGP_480pts_480pts_window_12_averageYear_abserr.pdf index 0f275af..f976cc5 100644 Binary files a/Plots/5_SVGP_480pts_480pts_window_12_averageYear_abserr.pdf and b/Plots/5_SVGP_480pts_480pts_window_12_averageYear_abserr.pdf differ diff --git a/Plots/5_SVGP_480pts_480pts_window_12_averageYear_fullyear.pdf b/Plots/5_SVGP_480pts_480pts_window_12_averageYear_fullyear.pdf index 6244121..b460f75 100644 Binary files a/Plots/5_SVGP_480pts_480pts_window_12_averageYear_fullyear.pdf and b/Plots/5_SVGP_480pts_480pts_window_12_averageYear_fullyear.pdf differ diff --git a/Plots/6_SVGP_96pts_inf_window_12_averageYear_abserr.pdf b/Plots/6_SVGP_96pts_inf_window_12_averageYear_abserr.pdf index b573ecf..00aed02 100644 Binary files a/Plots/6_SVGP_96pts_inf_window_12_averageYear_abserr.pdf and b/Plots/6_SVGP_96pts_inf_window_12_averageYear_abserr.pdf differ diff --git a/Plots/6_SVGP_96pts_inf_window_12_averageYear_fullyear.pdf b/Plots/6_SVGP_96pts_inf_window_12_averageYear_fullyear.pdf index 2d7e92f..e08b9c6 100644 Binary files a/Plots/6_SVGP_96pts_inf_window_12_averageYear_fullyear.pdf and b/Plots/6_SVGP_96pts_inf_window_12_averageYear_fullyear.pdf differ diff --git a/Plots/GP_113_-1pts_test_prediction_20_steps.pdf b/Plots/GP_113_-1pts_test_prediction_20_steps.pdf index a268f57..9dbb642 100644 Binary files a/Plots/GP_113_-1pts_test_prediction_20_steps.pdf and b/Plots/GP_113_-1pts_test_prediction_20_steps.pdf differ diff --git a/main.tex b/main.tex index 3a104b4..28ed331 100644 --- a/main.tex +++ b/main.tex @@ -10,6 +10,7 @@ \usepackage{array} \usepackage{makecell} \usepackage{comment} +\usepackage{setspace} %\usepackage{fixltx2e} %% Language and font encodings @@ -89,8 +90,9 @@ } \renewcommand{\familydefault}{\sfdefault} -\title{Multi-seasonal performance of Gaussian Process models for building -temperature control} +\title{Inter-seasonal Performance of Gaussian Process-based +Model Predictive Control of Buildings} + \author{Radu C. Martin} %header @@ -99,7 +101,7 @@ temperature control} \pagestyle{fancy} \setlength\headheight{35pt} \setlength\footskip{13.6pt} -\fancyhf{Multi-season GP performance for buildings} +\fancyhf{Inter-seasonal GP MPC control for buildings} \rhead{\includegraphics[width=2cm]{Logo-EPFL.png}} \lhead{} \cfoot{\thepage}