676 lines
27 KiB
TeX
676 lines
27 KiB
TeX
{
|
|
\coverpage{
|
|
\titlepage{~}
|
|
% To add additional text to the title components
|
|
{\newline \small \textit{Supervisor}: Prof. Colin Jones \quad \textit{Assistant}: Manuel Koch \quad
|
|
\textit{Expert}: Bratislav Svetozarevic}
|
|
\note[item]{Introduction, welcome}
|
|
\note[item]{Present yourself and the thesis subject}
|
|
\note[item]{Analysis of GP models performance for longer lasting simulations, in
|
|
this case a full year}
|
|
\note[item]{Discussion of the shortcomngs of classical GP approaches for these
|
|
longer experiments and possible solutions}
|
|
}
|
|
}
|
|
|
|
\setbeamertemplate{logo}{} % To override the logo from the other slides and delete it completely
|
|
|
|
|
|
% Use smart division for the TOC
|
|
\begin{frame}{Outlines}
|
|
\begin{multicols}{2}
|
|
\tableofcontents
|
|
\end{multicols}
|
|
\note[item]{The main work consists of two parts: the CARNOT building model serving as
|
|
a plant for the simulation, and the definition and analysis of different GP/SVGP
|
|
based control schemes}
|
|
\note[item]{Starting with a short introduction where the motivation for these new
|
|
approaches is presented, followed by the basic ideas of GP models}
|
|
\end{frame}
|
|
|
|
% -----------------------Introduction
|
|
\section{Introduction}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{3cm}[0.5,0.5](0.5\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{Introduction}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
|
|
\subsection{Residential buildings}
|
|
|
|
\begin{frame}[t]{Residential buildings energy usage}
|
|
\begin{itemize}
|
|
\item Residential buildings represent more than 25\% of total energy
|
|
consumed in the EU \vspace{10pt} \pause
|
|
\item Average of 200-300 kWh/year/m$^{2}$ \vspace{10pt} \pause
|
|
\item Around 68\% of energy used for heating \vspace{10pt}
|
|
\end{itemize}
|
|
|
|
\note[item]{Residential buildings are a significant part of total energy
|
|
consumption in the EU}
|
|
\note[item]{Most of that energy is used for heating and ventilation of
|
|
buildings}
|
|
\note[item]{Additionally, there are increasing energy efficiency demands on
|
|
new and existing buildings}
|
|
\note[item]{Further improvements can be made by including already existing
|
|
buildings into "smart grids"}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Limited information available}
|
|
\begin{block}{Existing infrastructure}
|
|
Most existing buildings already have in place Heating and Ventilation
|
|
Systems:\pause
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Limits the amount of available information \vspace{10pt} \pause
|
|
\item Restricts the actionable signals to those provided by the existing
|
|
HVAC \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
\pause
|
|
\begin{block}{Weather forecast}
|
|
Predictions of future disturbance values for the MPC also impose
|
|
restrictions on usable data.
|
|
\end{block}
|
|
\note[item]{Polydome only has two temperature measurements}
|
|
\note[item]{Existing data lacks information on air humidity}
|
|
\note[item]{Existing data lacks information on occupancy\vspace{10pt}}
|
|
\note[item]{The only input for the Polydome's HVAC is the setpoint
|
|
temperature, thus only indirectly controlling the heat input\vspace{10pt}}
|
|
\note[item]{Weather predictions are restricted to outside temperature and
|
|
GHI}
|
|
\note[item]{This makes the use of other disturbances, such as humidity,
|
|
wind speed and direction, DNI, DHI inaccessible}
|
|
\end{frame}
|
|
|
|
\subsection{Black box models}
|
|
|
|
\begin{frame}
|
|
\frametitle{Black-box models}
|
|
Data-driven models provide several practical benefits over first-principle
|
|
models:
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Foregoes complex and potentially expensive physical modelling \vspace{10pt} \pause
|
|
\item Same data-driven model structure could be applied to other
|
|
situations with less effort \vspace{10pt} \pause
|
|
\item Unknown/complex plant elements, such as HVAC behaviour, unknown
|
|
material properties , occupancy levels are much easier to include\vspace{10pt} \pause
|
|
\end{itemize}
|
|
\note[item]{In this context it would be very useful to be able to use
|
|
data-driven models as they provide several benetifs over white-box
|
|
approaches:}
|
|
\note[item]{They forego the complex physical modelling step}
|
|
\note[item]{Applying a control scheme using a white-box model requires a
|
|
complete identification step, whereas for data-driven models only the
|
|
hyperparameters have to be tuned}
|
|
\note[item]{For buildings where not all information is readily available,
|
|
white-box models can prove infeasible (eg. The Polydome building :D)}
|
|
\end{frame}
|
|
|
|
|
|
% ----------------------- Gaussian Process Models
|
|
\section{Gaussian Process Models}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{13cm}[0.5,0.5](0.7\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{Gaussian Process Models}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
\subsection{Conventional Gaussian Processes}
|
|
|
|
\begin{frame}
|
|
\begin{block}{Definition}
|
|
A Gaussian Process is a collection of random variables, any finite
|
|
number of which have a joint Gaussian distribution.
|
|
\end{block}
|
|
\begin{block}{Mathematical formulation}
|
|
\begin{equation*}
|
|
\begin{aligned}
|
|
m(\mathbf{x}) &= \mathbb{E}[f(\mathbf{x})] \\
|
|
k(\mathbf{x}, \mathbf{x'}) &= \mathbb{E}[f(\mathbf{x} -
|
|
m(\mathbf{x}))(f(\mathbf{x'}) - m(\mathbf{x'}))]
|
|
\end{aligned}
|
|
\end{equation*}
|
|
\end{block}
|
|
\note[item]{The formal definition of a Gaussian Process states that it is a
|
|
collection of random variables, any finite number of which have a joint
|
|
Gaussian distribution.}
|
|
\note[item]{Another useful way of thinking of GPs is as a probability distribution, but over functions rather than variables. This is a really useful thing, as often in machine learning what we are trying to do is some form of function approximation. A GP allows us to derive posterior distributions over functions by simply observing variables.}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Benefits}
|
|
\begin{itemize}
|
|
\item Provide a complete Gaussian distribution for a predicted value
|
|
\vspace{10pt} \pause
|
|
\item Capture complex system behaviour with less data \vspace{10pt}
|
|
\pause
|
|
\item Include prior beliefs and impose desired model behaviour
|
|
\vspace{10pt} \pause
|
|
\begin{itemize}
|
|
\item Different kernels can lead to linear, periodic, smooth
|
|
functions \vspace{10pt}
|
|
\item Combinations of multiple kernel functions can impose
|
|
arbitrary behaviour \vspace{10pt}
|
|
\item Ability to impose a prior distribution on hyperparameters
|
|
before training \vspace{10pt}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Shortcomings}
|
|
|
|
\begin{block}{Predicting new values}
|
|
\begin{equation*}
|
|
\begin{aligned}
|
|
\mathbf{f_*} = \mathbb{E}\left(f_*|X, \mathbf{y}, X_*\right) &=
|
|
K_*\left(K + \sigma_n^2I\right)^{-1}\mathbf{y} \\
|
|
cov(\mathbf{f_*}) &= K_{**} - K_*\left(K +\sigma_n^2I\right)^{-1}K_*^T \\
|
|
\end{aligned}
|
|
\end{equation*}
|
|
\end{block}
|
|
|
|
\begin{block}{Maximum likelihood}
|
|
\begin{equation*}
|
|
\log(p(y)) = - \frac{1}{2}\log{\left(
|
|
\det{\left(
|
|
K + \sigma_n^2I
|
|
\right)}
|
|
\right)}
|
|
- \frac{1}{2}y^T\left(
|
|
K + \sigma_n^2I
|
|
\right)^{-1}y
|
|
- \frac{n}{2}\log{\left(2\pi\right)}
|
|
\end{equation*}
|
|
\end{block}
|
|
|
|
\pause
|
|
\begin{itemize}
|
|
\item $\mathcal{O}(n^3)$ time for evaluation
|
|
\item $\mathcal{O}(n^4)$ time for training
|
|
\item $\mathcal{O}(n^2)$ space for finished model
|
|
\end{itemize}
|
|
\note[item]{Both training and evaluation require inversion of the covariance
|
|
matrix}
|
|
\note[item]{Impractical for embedded computers (slow, little memory)}
|
|
\note[item]{Impractical for systems with faster dynamics}
|
|
\note[item]{Impractical for complex systems where more data is needed to
|
|
capture model behaviour}
|
|
\end{frame}
|
|
|
|
\subsection{Sparse and Variationsl Gaussian Processes}
|
|
|
|
\begin{frame}
|
|
\frametitle{Sparse and Variational Gaussian Processes}
|
|
Extension of classical Gaussian Processes for use on larger scale datasets
|
|
\pause
|
|
\begin{block}{Sparse}
|
|
Approximating the full training dataset with a smaller number of points:
|
|
\\
|
|
\quad \textit{Inducing random variables} $f(X_s)$ at \textit{inducing
|
|
locations} $X_s$
|
|
\end{block}
|
|
\pause
|
|
\begin{block}{Variational}
|
|
Variational inference uses the \textit{variational
|
|
distribution} $q(f, f_s)$ to approximate the true posterior $p(f, f_s|y)$ \\
|
|
This approximation leads to the \textit{Evidence Lower Bound} (ELBO), used
|
|
for parameter training
|
|
\end{block}
|
|
\note[item]{Extension of classical GP meant to aleviate its shortcomings}
|
|
\note[item]{Inducing random variables are a new set of learnable parameters
|
|
trained in such a way to generate the original dataset as close as possible.
|
|
They are trained at the same time as the model, and when the original inputs are
|
|
evaluated on this new model the outputs should as close as possible ressemble
|
|
the original dataset outputs}
|
|
\note[item]{With variational inference we approximate the true posterior
|
|
distribution of the Gaussian process with the variational distribution}
|
|
\note[item]{ELBO approximation allows training of the model on subsets
|
|
(minibatches) of the original data}
|
|
\end{frame}
|
|
|
|
|
|
% ----------------------- CARNOT Model
|
|
\section{CARNOT Model}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{13cm}[0.5,0.5](0.7\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{CARNOT Building Model}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Motivation}
|
|
\begin{block}{Using CARNOT model as plant}
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Much faster than real-time simulations \vspace{10pt}
|
|
% allow for easier long-term performance evaluations
|
|
\item Reproducible weather/ disturbances \vspace{10pt}
|
|
% allows a much more direct comparison of different model
|
|
% performances
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\begin{block}{Using the real Polydome building as basis}
|
|
Experimental data already available
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Good baseline for comparing the CARNOT model to a real
|
|
building \vspace{10pt}
|
|
\item Path to easier implementation of same control scheme on the
|
|
real Polydome \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\subsection{The Polydome building}
|
|
|
|
\begin{frame}
|
|
\frametitle{Geometrical parameters}
|
|
% TODO: [CARNOT] Geometrical parameters of the Polydome
|
|
\begin{columns}
|
|
\begin{column}{0.3\textwidth}
|
|
\centering
|
|
\includegraphics[height=\textwidth]{Images/google_maps_polydome_skylights.png}
|
|
\end{column}
|
|
\begin{column}{0.7\textwidth}
|
|
\centering
|
|
\includegraphics[height=0.45\textwidth]{Images/polydome_streetview_annotated.png}
|
|
\end{column}
|
|
\end{columns}
|
|
|
|
\note[item]{Base geometrical dimensions from an architectural journal
|
|
article on the Polydome construction:
|
|
\begin{itemize}
|
|
\item Spherical dome shape with a mostly square base of size 25m $\times$
|
|
25m
|
|
\item Total building height of around 7 meters
|
|
\end{itemize}
|
|
}
|
|
\note[item]{Confirmation of surface from google maps, as well as
|
|
approximation of skylights shape\vspace{10pt}}
|
|
\note[item]{Overall building approximated with a spherical dome on top of a
|
|
cylindrical stem wall}
|
|
\note[item]{Google Street View capture of the Polydome building. An object
|
|
of known dimensions is used (HVAC) as a scale and the necessary dimensions
|
|
are measured with the Measure Tool in GIMP
|
|
\begin{itemize}
|
|
\item Steam wall size
|
|
\item Dome height
|
|
\item Total building height (used for validation of results)
|
|
\end{itemize}
|
|
}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\begin{block}{Materials used in the Polydome}
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Walls are replaced with large, top to bottom windows \vspace{10pt}
|
|
\item Roof made of insulation, enclosed by wood on each side
|
|
\vspace{10pt}
|
|
\item Floor consists of wood, insulation, concrete \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
\pause
|
|
\begin{block}{Furniture}
|
|
Approximated to a wall made out of \textit{equivalent indoor content
|
|
material} with material properties and geometrical dimension to emulate
|
|
real furniture.
|
|
\end{block}
|
|
|
|
\note[item]{Materials used in Polydome}
|
|
\note[item]{Furniture is an important factor in building thermal inertia. In
|
|
this case the existing furniture has been approximated to a wall with
|
|
geometrical and material properties to best emulate the real furniture}
|
|
\note[item]{Furniture material parameters come from a study on the influence
|
|
of furniture content on building thermal inertia and are representative of
|
|
an office environment}
|
|
\end{frame}
|
|
|
|
\subsection{CARNOT Model overview}
|
|
|
|
\begin{frame}
|
|
\includegraphics[height=\textheight]{Images/polydome_room_model.pdf}
|
|
\note[item]{Four of the five window nodes represent the building walls}
|
|
\note[item]{An additional window accounts for the skyboxes on the building
|
|
roof\vspace{10pt}}
|
|
\note[item]{Roof and floor made out of the appropriate materials}
|
|
\note[item]{A wall with the purpose of approximating the furniture content
|
|
of the building\vspace{10pt}}
|
|
\note[item]{The heat radiator assumed to be ideal}
|
|
\end{frame}
|
|
|
|
|
|
% ----------------------- MPC Problem
|
|
\section{The MPC Problem}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{13cm}[0.5,0.5](0.75\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{The MPC Problem}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
\begin{frame}
|
|
\begin{block}{The Optimisation Problem}
|
|
\begin{equation*}
|
|
\begin{aligned}
|
|
& \text{minimize}
|
|
& & \sum_{i=0}^{N-1} (\bar{y}_{t+i} - y_{ref, t})^2 \\
|
|
& \text{subject to}
|
|
& & \bar{y}_{t+i} = K_*K^{-1}\mathbf{x}_{t+i-1} \\
|
|
&&& \mathbf{x}_{t+i-1} = \left[\mathbf{w}_{t+i-1},\quad
|
|
\mathbf{u}_{t+i-1},\quad \mathbf{y}_{t+i-1}\right]^T \\
|
|
\label{eq:components}
|
|
&&& u_{t+i} \in \mathcal{U}
|
|
\end{aligned}
|
|
\end{equation*}
|
|
\end{block}
|
|
\note[item]{The Problem of tracking a reference temperature subject to:
|
|
\begin{itemize}
|
|
\item Model constraints
|
|
\item Future disturbance inputs
|
|
\item Allowed input range (HVAC heating/cooling capacity)
|
|
\end{itemize}
|
|
}
|
|
\note[item]{Choosing this specific optimisation problem allows easier
|
|
comparison of different model performances, since they are directly
|
|
following the reference temperature}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Reference temperature}
|
|
\centering
|
|
\includegraphics[height=0.75\textheight]{Images/sia_180_2014.png}
|
|
\note[item]{Tracking the mean of the SIA 180:2014 reference temperature
|
|
range for residental buildings. It is computed using a rolling window of
|
|
the last 48 hours of outside temperature measurement\vspace{10pt}}
|
|
\note[item]{Choosing this as a reference temperature provides a more
|
|
realistic simulation scenario, as well as allowes to analyse model
|
|
performance for a larger range of operating temperatures}
|
|
\end{frame}
|
|
|
|
% ----------------------- Implementation
|
|
\section{Implementation}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{5cm}[0.5,0.5](0.5\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{Implementation}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Complete diagram}
|
|
\centering
|
|
\includegraphics[height=0.75\textheight]{Images/setup_diagram.pdf}
|
|
\note[item]{The two basic building blocks of the simulation are:
|
|
\begin{itemize}
|
|
\item The building model and weather prediction built in CARNOT/Simulink
|
|
\item The control scheme implemented in Python
|
|
\end{itemize}
|
|
}
|
|
\note[item]{The server starts by implementing a PI controller
|
|
tracking the defined reference temperature until enough data has been
|
|
collected. At that point the GP model is trained and the server switches to the
|
|
MPC controller going forward}
|
|
\note[item]{The python server is also responsible of keeping track of when
|
|
to re-train the model in the case of adaptive schemes}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Simulink Diagram}
|
|
\centering
|
|
\includegraphics[height=0.75\textheight]{Images/polydome_python.pdf}
|
|
\note[item]{The Simulink model and Python server interface through three
|
|
independent TCP/IP sockets, each responsible for tranmission of the control
|
|
signal, measurement of the output values and the weather prediction}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{GP implementation in Python}
|
|
\begin{block}{GP implementation}
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item GP and SVGPs implemented with GPflow and Tensorflow \vspace{10pt}
|
|
\item Optimization Problem implemented with CasADi \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\begin{block}{Average computation time}
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Classical GP optimisation step of around 1-2 s \vspace{10pt}
|
|
\item SVGP optimisation step of around 200-300 ms \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
|
|
\note[item]{Both libraries provide very efficient implementation of all the
|
|
required functions, leading to short computation times}
|
|
\end{frame}
|
|
|
|
% ----------------------- Simulations
|
|
\section{Full-year simulations}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{13cm}[0.5,0.5](0.75\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{Full-year simulations}}
|
|
\end{textblock*}
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{GP implementations}
|
|
\begin{block}{GP implementations for full-year simulations}
|
|
\vspace{10pt}
|
|
\begin{itemize}
|
|
\item Classical GP model trained on the five days of identification
|
|
data \vspace{10pt}
|
|
\item SVGP model trained on five days of identification data
|
|
\vspace{10pt}
|
|
\item SVGP model trained on one day of identification data
|
|
\vspace{10pt}
|
|
\item SVGP model trained on a rolling window of five days of
|
|
closed-loop operation data \vspace{10pt}
|
|
\end{itemize}
|
|
\end{block}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Classical GP full year simulation}
|
|
\centering
|
|
\includegraphics[width=0.85\textwidth]{Plots/4_GP_480pts_12_averageYear_fullyear.pdf}
|
|
\note[item]{From the first result it can be seen that the classical GP does
|
|
not perform well. It has a very large offset from the start of the
|
|
simulation and becomes completely unstable in late summer}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Absolute Error graph}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{Plots/4_GP_480pts_12_averageYear_abserr.pdf}
|
|
\note[item]{A more quantitative analysis shows a maximum absolute error of
|
|
aroun 25 degrees C, with the mean over the whole year being 1.33 degrees C}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{GP model performance}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{Plots/4_GP_480pts_12_averageYear_first_model_performance.pdf}
|
|
\note[item]{Very good multistep ahead performance in the training region,
|
|
the model correctly reproduces learned data}
|
|
\note[item]{At step 500 the model is able to correctly predict the heating
|
|
of the building to the 22.5 degrees C reference temperature}
|
|
\note[item]{Already at step 750, on the ninth day of the simulation, the
|
|
model is unable to properly predict building behaviour and settles on a
|
|
steady-state prediction error of ~0.75 degrees C.}
|
|
\note[item]{Even worse performance at experimental step 1000, where the
|
|
steady-state error is around 1.5 degrees C}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Disturbance signal}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{Plots/Exogenous_inputs_fullyear.pdf}
|
|
\note[item]{The weather patterns are representative of Switzerland, with
|
|
generally mild winters and temperate summer, but the weather does not remain
|
|
constant throughout the year\vspace{10pt}}
|
|
\note[item]{Both disturbance inputs, the outside temperature and the global
|
|
irradiation are outside the learning dataset region already around the 500
|
|
point mark}
|
|
\note[item]{This forces the GP model to work in an extrapolated region of
|
|
the state space, which it did not see during training. In this situation the
|
|
GP model does not perform well\vspace{10pt}}
|
|
\note[item]{The window of values for the two disturbance signals keeps
|
|
expanding until mid summer, after which both values start decreasing again.
|
|
This is useful for training the SVGP models.}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{SVGP full year simulation}
|
|
\centering
|
|
\includegraphics[width=0.85\textwidth]{Plots/1_SVGP_480pts_inf_window_12_averageYear_fullyear.pdf}
|
|
\note[item]{Much better performance than the classical GP system}
|
|
\note[item]{The only large deviations from the reference temperatures are in
|
|
the winter, when the HVAC heat supply is at its limit.}
|
|
\note[item]{The constant model updates mean that the model does not have to
|
|
extrapolate as far in the unknown regions before new data is added}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Absolute Error graph}
|
|
\centering
|
|
\includegraphics[width=\textwidth]{Plots/1_SVGP_480pts_inf_window_12_averageYear_abserr.pdf}
|
|
\note[item]{Quantitavely a much better result, with a maximum absolute error of
|
|
around 1.6 degrees, except the cold days limited by the HVAC power}
|
|
\note[item]{An average absolute error over the whole year of ~0.055 degrees
|
|
C}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{SVGP model performance}
|
|
\centering
|
|
\movie[width=\textwidth]{
|
|
\includegraphics[width=\textwidth]{Plots/1_SVGP_480pts_inf_window_12_averageYear_model_0_performance.pdf}}
|
|
{Plots/SVGP_perf_animation.mkv}
|
|
\note[item]{Play the simulation movie}
|
|
\note[item]{Overall two large families of models. During the first part of
|
|
the year, as the range of the weather data gets expanded the predictions get
|
|
progressively better. For the second part of the year the range of the data does
|
|
not get expanded anymore and the performance of the model becomes noticeably
|
|
better}
|
|
\note[item]{The multistep prediction performance of the SVGP over the
|
|
training region (ie. at 250 steps) starts much worse than that of the
|
|
equivalent GP. This could be a sign that more inducing variables are necessary
|
|
to properly reproduce the training data}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{SVGP one day starting data}
|
|
\centering
|
|
\includegraphics[width=0.85\textwidth]{Plots/6_SVGP_96pts_inf_window_12_averageYear_fullyear.pdf}
|
|
\note[item]{Performance very comparable to that of five days initial model}
|
|
\note[item]{This hints at the fact that SVGP models can be deployed using
|
|
much less initial training data than traditional GP models, and are still
|
|
capable of good performance from learned behaviour}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{SVGP five day rolling window}
|
|
\centering
|
|
\includegraphics[width=0.85\textwidth]{Plots/5_SVGP_480pts_480pts_window_12_averageYear_fullyear.pdf}
|
|
\note[item]{Five days worth of initial training data. After five days of
|
|
operation, the rolling window of training data does not contain any initial
|
|
identification anymore, only closed loop operation data. This information turns
|
|
out to be insufficient for learning the plant behaviour and the controller
|
|
becomes unstable.}
|
|
\note[item]{The additional excitation of the model in turn provides enough
|
|
information for the next model to properly capture its behaviour, turning
|
|
the controller stable again until the data containing the excitations is too old
|
|
again to include in the training set.}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{SVGP linear kernel}
|
|
\centering
|
|
\includegraphics[width=0.85\textwidth]{Plots/10_SVGP_480pts_inf_window_12_averageYear_LinearKernel_fullyear.pdf}
|
|
\note[item]{This model is still stable and able to roughly follow the
|
|
reference temperature. It has, however poorer performance than the main
|
|
model, trained using a Squared Exponential Kernel. This means that the Linear
|
|
Kernel is too simplistic for even this situation.}
|
|
\end{frame}
|
|
|
|
% ----------------------- Future work
|
|
\section{Future Work}
|
|
|
|
\breakingframe{
|
|
\begin{textblock*}{10cm}[0.5,0.5](0.75\textwidth, 0.5\textheight)
|
|
\Huge\textbf{\textcolor{black}{Future work}}
|
|
\end{textblock*}
|
|
\note[item]{Several situations have not been thoroughly addressed in this
|
|
work and could be further investigated, as well as multiple directions for
|
|
direct continuation of this project are possible}
|
|
}
|
|
|
|
\begin{frame}
|
|
\frametitle{Future work}
|
|
\begin{itemize}
|
|
\item A more varied initial dataset for the classical Gaussian Process
|
|
\vspace{10pt} \pause
|
|
\item Smart update of a fixed-size data dictionary according to
|
|
information gain \vspace{10pt} \pause
|
|
\item Sparse GP wihout the use of variational inference \vspace{10pt}
|
|
\pause
|
|
|
|
\item The size of the inducing variables set can be further optimized
|
|
\vspace{10pt} \pause
|
|
|
|
\item More specialized kernel functions can be very beneficial in the
|
|
case of SVGP models
|
|
\end{itemize}
|
|
|
|
\note[item]{Varied initial dataset can be more representative of the
|
|
plant operating region over long timespans, improving overall model quality
|
|
\vspace{10pt}}
|
|
|
|
\note[item]{Keeping a dictionary will inevitably aleviate some of the
|
|
downsides of using classical Gaussian Processes, at the cost of much more
|
|
expensive computations for model update
|
|
\vspace{10pt}}
|
|
|
|
\note[item]{Not using variational inference in the form of the Evidence
|
|
Lower Bound can provide a model that better explains the training data, at
|
|
the expense of longer training time}
|
|
|
|
\note[item]{More complex are refined kernel functions can greatly improve
|
|
behaviour in the case of SVGP models as they are less capable of capturing
|
|
plant dynamics as the classical GP counterpart, given the same training dataset}
|
|
|
|
\end{frame}
|
|
|
|
|
|
% -----------------------References
|
|
% Thank you slide should be here
|
|
\breakingframe{
|
|
\begin{textblock*}{10cm}(3.2cm,4cm)
|
|
\Huge\textbf{\textcolor{black}{Thank you for your attention}}
|
|
\end{textblock*}
|
|
}
|
|
\breakingframe{
|
|
\begin{textblock*}{10cm}(3.2cm,4cm)
|
|
\Huge\textbf{\textcolor{black}{Questions}}
|
|
\end{textblock*}
|
|
}
|
|
% -----------------------References
|
|
\section{Bibliography}
|
|
% \begin{frame}[allowframebreaks]{\\References}\vspace{4pt}
|
|
\begin{frame}{References}\vspace{4pt}
|
|
\tiny{\printbibliography}
|
|
\end{frame}
|
|
\normalsize
|