2020-09-22 11:29:13 +02:00
#+TITLE : Optimal and Robust Sensor Fusion
2019-08-14 12:08:30 +02:00
:DRAWER:
2020-08-17 17:56:40 +02:00
#+LATEX_CLASS : IEEEtran
#+LATEX_CLASS_OPTIONS : [conference]
#+OPTIONS : toc:nil todo:nil
2019-08-14 12:08:30 +02:00
#+STARTUP : overview
#+DATE : {{{time(%Y-%m-%d)}}}
2020-08-17 17:56:40 +02:00
#+AUTHOR : @@latex:\IEEEauthorblockN{Dehaeze Thomas}@@
#+AUTHOR : @@latex:\IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\@@
#+AUTHOR : @@latex:Grenoble, France\\@@
#+AUTHOR : @@latex:\textit{Precision Mechatronics Laboratory} \\@@
#+AUTHOR : @@latex:\textit{University of Liege}, Belgium \\@@
#+AUTHOR : @@latex:thomas.dehaeze@esrf.fr@@
#+AUTHOR : @@latex:}\and@@
#+AUTHOR : @@latex:\IEEEauthorblockN{Collette Christophe}@@
#+AUTHOR : @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
#+AUTHOR : @@latex:\textit{Free University of Brussels}, Belgium\\@@
#+AUTHOR : @@latex:\textit{Precision Mechatronics Laboratory} \\@@
#+AUTHOR : @@latex:\textit{University of Liege}, Belgium \\@@
#+AUTHOR : @@latex:ccollett@ulb.ac.be@@
#+AUTHOR : @@latex:}@@
#+LATEX_HEADER : \IEEEoverridecommandlockouts
#+LATEX_HEADER : \usepackage{cite}
#+LATEX_HEADER : \usepackage{amsmath,amssymb,amsfonts}
#+LATEX_HEADER : \usepackage{algorithmic}
#+LATEX_HEADER : \usepackage{graphicx}
#+LATEX_HEADER : \usepackage{textcomp}
#+LATEX_HEADER : \usepackage{xcolor}
#+LATEX_HEADER : \usepackage{cases}
#+LATEX_HEADER : \usepackage{tabularx,siunitx,booktabs}
#+LATEX_HEADER : \usepackage{algorithmic}
#+LATEX_HEADER : \usepackage{import, hyperref}
#+LATEX_HEADER : \renewcommand{\citedash}{--}
2020-08-19 10:43:56 +02:00
#+LATEX_HEADER_EXTRA : \usepackage{showframe}
2020-08-17 17:56:40 +02:00
#+LATEX_HEADER : \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
2019-08-14 12:08:30 +02:00
\bibliographystyle{IEEEtran}
:END:
2020-09-22 21:58:37 +02:00
* LaTeX Config :noexport:
2019-08-14 12:08:30 +02:00
#+begin_src latex :tangle config.tex
#+end_src
2020-09-22 21:58:37 +02:00
* Build :noexport:
2019-08-21 16:35:08 +02:00
#+NAME : startblock
2019-08-14 12:08:30 +02:00
#+BEGIN_SRC emacs-lisp :results none
(add-to-list 'org-latex-classes
2020-08-17 17:56:40 +02:00
'("IEEEtran"
"\\documentclass{IEEEtran}"
2019-08-14 12:08:30 +02:00
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
)
2020-08-17 17:56:40 +02:00
(defun delete-org-comments (backend)
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
'comment 'identity))
do
(setf (buffer-substring (org-element-property :begin comment)
(org-element-property :end comment))
"")))
;; add to export hook
(add-hook 'org-export-before-processing-hook 'delete-org-comments)
;; Remove hypersetup
(setq org-latex-with-hyperref nil)
2019-08-14 12:08:30 +02:00
#+END_SRC
2020-09-22 21:58:37 +02:00
* Abstract :ignore:
2019-08-14 12:08:30 +02:00
#+begin_abstract
Abstract text to be done
#+end_abstract
2020-08-17 17:56:40 +02:00
* Keywords :ignore:
2019-08-14 12:08:30 +02:00
#+begin_IEEEkeywords
2020-08-17 17:56:40 +02:00
Complementary Filters, Sensor Fusion, H-Infinity Synthesis
2019-08-14 12:08:30 +02:00
#+end_IEEEkeywords
* Introduction
2020-08-17 15:58:25 +02:00
<<sec:introduction >>
2019-08-14 12:08:30 +02:00
2020-09-22 11:29:13 +02:00
- Section ref:sec:optimal_fusion
- Section ref:sec:robust_fusion
- Section ref:sec:optimal_robust_fusion
- Section ref:sec:experimental_validation
2020-08-17 15:58:25 +02:00
* Optimal Super Sensor Noise: $\mathcal{H}_2$ Synthesis
<<sec:optimal_fusion >>
2019-08-14 12:08:30 +02:00
2020-08-19 10:43:56 +02:00
** Sensor Model
2020-09-22 21:58:37 +02:00
Let's consider a sensor measuring a physical quantity $x$ (Figure ref:fig:sensor_model_noise).
2020-09-22 11:29:13 +02:00
The sensor has an internal dynamics which is here modelled with a Linear Time Invariant (LTI) system transfer function $G_i(s)$.
The noise of sensor can be described by the Power Spectral Density (PSD) $\Phi_{n_i}(\omega)$.
This is approximated by shaping a white noise with unitary PSD $\tilde{n}_i$ eqref:eq:unitary_sensor_noise_psd with a LTI transfer function $N_i(s)$:
\begin{equation}
2020-09-22 21:58:37 +02:00
\begin{aligned}
\Phi_{n_i}(\omega) &= \left| N_i(j\omega) \right|^2 \Phi_ {\tilde{n}_i}(\omega) \\
&= \left| N_i(j\omega) \right|^2
\end{aligned}
2020-09-22 11:29:13 +02:00
\end{equation}
#+name : eq:unitary_sensor_noise_psd
\begin{equation}
\Phi_{\tilde{n}_i}(\omega) = 1
\end{equation}
The output of the sensor $v_i$:
\begin{equation}
v_i = \left( G_i \right) x + \left( G_i N_i \right) \tilde{n}_i
\end{equation}
2020-09-22 21:58:37 +02:00
In order to obtain an estimate $\hat{x}_i$ of $x$, a model $\hat{G}_i$ of the (true) sensor dynamics $G_i$ is inverted and applied at the output (Figure ref:fig:sensor_model_noise):
2020-09-22 11:29:13 +02:00
\begin{equation}
\hat{x}_i = \left( \hat{G}_i^{-1} G_i \right) x + \left( \hat{G}_i^{-1} G_i N_i \right) \tilde{n}_i
\end{equation}
2020-09-22 21:58:37 +02:00
#+name : fig:sensor_model_noise
2020-09-22 11:29:13 +02:00
#+caption : Sensor Model
#+attr_latex : :scale 1
2020-09-22 21:58:37 +02:00
[[file:figs/sensor_model_noise.pdf ]]
2020-09-22 11:29:13 +02:00
2020-08-17 15:58:25 +02:00
** Sensor Fusion Architecture
2020-09-22 21:58:37 +02:00
Let's now consider two sensors measuring the same physical quantity $x$ but with different dynamics $(G_1, G_2)$ and noise characteristics $(N_1, N_2)$ (Figure ref:fig:sensor_fusion_noise_arch).
2020-09-22 11:29:13 +02:00
The noise sources $\tilde{n}_1$ and $\tilde{n}_2$ are considered to be uncorrelated.
2020-08-17 17:56:40 +02:00
#+name : fig:sensor_fusion_noise_arch
2020-09-22 10:15:26 +02:00
#+caption : Sensor Fusion Architecture with sensor noise
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/sensor_fusion_noise_arch.pdf ]]
2020-09-22 11:29:13 +02:00
The output of both sensors $(v1,v2)$ are then passed through the inverse of the sensor model to obtained two estimates $(\hat{x}_1, \hat{x}_2)$ of $x$.
These two estimates are then filtered out by two filters $H_1$ and $H_2$ and summed to gives the super sensor estimate $\hat{x}$.
2020-09-22 10:15:26 +02:00
2020-08-19 10:43:56 +02:00
\begin{equation}
2020-09-22 11:29:13 +02:00
\begin{split}
\hat{x} = {}&\left( H_1 \hat{G}_1^{-1} G_1 + H_2 \hat{G}_2^{-1} G_2 \right) x \\
&+ \left( H_1 \hat{G}_1^{-1} G_1 N_1 \right) \tilde{n}_1 + \left( H_2 \hat{G}_2^{-1} G_2 N_2 \right) \tilde{n}_2
\end{split}
2020-08-19 10:43:56 +02:00
\end{equation}
Suppose the sensor dynamical model $\hat{G}_i$ is perfect:
\begin{equation}
\hat{G}_i = G_i
\end{equation}
2020-09-22 11:29:13 +02:00
We considered here complementary filters:
2020-08-19 10:43:56 +02:00
\begin{equation}
H_1(s) + H_2(s) = 1
\end{equation}
2020-09-22 11:29:13 +02:00
In such case, the super sensor estimate $\hat{x}$ is equal to $x$ plus the noise of the individual sensors filtered out by the complementary filters:
2020-08-19 10:43:56 +02:00
\begin{equation}
2020-09-22 10:17:50 +02:00
\hat{x} = x + \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2
2020-08-19 10:43:56 +02:00
\end{equation}
2020-08-17 15:58:25 +02:00
** Super Sensor Noise
2020-08-19 10:43:56 +02:00
Let's note $n$ the super sensor noise.
2020-09-22 11:29:13 +02:00
\begin{equation}
n = \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2
\end{equation}
2020-08-19 10:43:56 +02:00
2020-09-22 11:29:13 +02:00
As the noise of both sensors are considered to be uncorrelated, the PSD of the super sensor noise is computed as follow:
2020-08-19 10:43:56 +02:00
\begin{equation}
2020-09-22 10:17:50 +02:00
\Phi_n(\omega) = \left| H_1 N_1 \right|^2 + \left| H_2 N_2 \right|^2
2020-08-19 10:43:56 +02:00
\end{equation}
2020-09-22 11:29:13 +02:00
It is clear that the PSD of the super sensor depends on the norm of the complementary filters.
2019-08-14 12:08:30 +02:00
2020-09-22 11:29:13 +02:00
** $\mathcal{H}_2$ Synthesis of Complementary Filters
The goal is to design $H_1(s)$ and $H_2(s)$ such that the effect of the noise sources $\tilde{n}_1$ and $\tilde{n}_2$ has the smallest possible effect on the noise $n$ of the estimation $\hat{x}$.
2020-08-19 10:43:56 +02:00
And the goal is the minimize the Root Mean Square (RMS) value of $n$:
#+name : eq:rms_value_estimation
\begin{equation}
2020-09-22 11:29:13 +02:00
\sigma_{n} = \sqrt{\int_0^\infty \Phi_{n}(\omega) d\omega} = \left\| \begin{matrix} H_1 N_1 \\ H_2 N_2 \end{matrix} \right\|_2
2020-08-19 10:43:56 +02:00
\end{equation}
2020-09-22 11:29:13 +02:00
Thus, the goal is to design $H_1(s)$ and $H_2(s)$ such that $H_1(s) + H_2(s) = 1$ and such that $\sigma_n$ is minimized.
2020-08-19 10:43:56 +02:00
2020-09-22 21:58:37 +02:00
This can be cast into an $\mathcal{H}_2$ synthesis problem by considering the following generalized plant (also represented in Figure ref:fig:h_two_optimal_fusion):
2020-08-19 10:43:56 +02:00
\begin{equation}
2020-09-22 09:51:26 +02:00
\begin{pmatrix}
z_1 \\ z_2 \\ v
2020-09-22 11:29:13 +02:00
\end{pmatrix} = \underbrace{\begin{bmatrix}
2020-10-05 11:47:57 +02:00
N_1 & -N_1 \\
0 & N_2 \\
2020-09-22 10:17:50 +02:00
1 & 0
2020-09-22 11:29:13 +02:00
\end{bmatrix}}_{P_ {\mathcal{H}_2}} \begin{pmatrix}
2020-09-22 09:51:26 +02:00
w \\ u
\end{pmatrix}
2020-08-19 10:43:56 +02:00
\end{equation}
2020-09-22 11:29:13 +02:00
Applying the $\mathcal{H}_2$ synthesis on $P_ {\mathcal{H}_2}$ will generate a filter $H_2(s)$ such that the $\mathcal{H}_2$ norm from $w$ to $(z_1,z_2)$ is minimized:
#+NAME : eq:H2_norm
\begin{equation}
\left\| \begin{matrix} z_1/w \\ z_2/w \end{matrix} \right\|_2 = \left\| \begin{matrix} N_1 (1 - H_2) \\ N_2 H_2 \end{matrix} \right\|_2
\end{equation}
The $\mathcal{H}_2$ norm of Eq. eqref:eq:H2_norm is equals to $\sigma_n$ by defining $H_1(s)$ to be the complementary filter of $H_2(s)$:
\begin{equation}
H_1(s) = 1 - H_2(s)
\end{equation}
We then have that the $\mathcal{H}_2$ synthesis applied on $P_ {\mathcal{H}_2}$ generates two complementary filters $H_1(s)$ and $H_2(s)$ such that the RMS value of super sensor noise is minimized.
2020-08-19 10:43:56 +02:00
2020-08-17 17:56:40 +02:00
#+name : fig:h_two_optimal_fusion
2020-09-22 10:15:26 +02:00
#+caption : Generalized plant $P_{\mathcal{H}_2}$ used for the $\mathcal{H}_2$ synthesis of complementary filters
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/h_two_optimal_fusion.pdf ]]
2020-08-17 15:58:25 +02:00
** Example
2019-08-14 12:08:30 +02:00
2020-10-05 15:42:08 +02:00
#+name : fig:sensors_nominal_dynamics
#+caption : Sensor nominal dynamics from the velocity of the object to the output voltage
2020-10-05 11:47:57 +02:00
#+attr_latex : :scale 1
[[file:figs/sensors_nominal_dynamics.pdf ]]
2020-10-05 15:42:08 +02:00
#+name : fig:sensors_noise
#+caption : Amplitude spectral density of the sensors $\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|$
#+attr_latex : :scale 1
[[file:figs/sensors_noise.pdf ]]
#+name : fig:htwo_comp_filters
#+caption : Obtained complementary filters using the $\mathcal{H}_2$ Synthesis
#+attr_latex : :scale 1
[[file:figs/htwo_comp_filters.pdf ]]
#+name : fig:psd_sensors_htwo_synthesis
#+caption : Power Spectral Density of the estimated $\hat{x}$ using the two sensors alone and using the optimally fused signal
#+attr_latex : :scale 1
[[file:figs/psd_sensors_htwo_synthesis.pdf ]]
#+name : fig:super_sensor_time_domain_h2
#+caption : Noise of individual sensors and noise of the super sensor
#+attr_latex : :scale 1
[[file:figs/super_sensor_time_domain_h2.pdf ]]
2020-08-17 15:58:25 +02:00
** Robustness Problem
2019-08-14 12:08:30 +02:00
2020-10-05 15:42:08 +02:00
#+name : fig:sensors_nominal_dynamics_and_uncertainty
#+caption : Nominal Sensor Dynamics $\hat{G}_i$ (solid lines) as well as the spread of the dynamical uncertainty (background color)
#+attr_latex : :scale 1
[[file:figs/sensors_nominal_dynamics_and_uncertainty.pdf ]]
#+name : fig:super_sensor_dynamical_uncertainty_H2
#+caption : Super sensor dynamical uncertainty when using the $\mathcal{H}_2$ Synthesis
#+attr_latex : :scale 1
[[file:figs/super_sensor_dynamical_uncertainty_H2.pdf ]]
2020-08-17 15:58:25 +02:00
* Robust Sensor Fusion: $\mathcal{H}_\infty$ Synthesis
<<sec:robust_fusion >>
2019-08-14 12:08:30 +02:00
2020-08-17 15:58:25 +02:00
** Representation of Sensor Dynamical Uncertainty
2019-08-14 12:08:30 +02:00
2020-09-22 21:58:37 +02:00
In Section ref:sec:optimal_fusion, the model $\hat{G}_i(s)$ of the sensor was considered to be perfect.
In reality, there are always uncertainty (neglected dynamics) associated with the estimation of the sensor dynamics.
The Uncertainty on the sensor dynamics $G_i(s)$ is here modelled by (input) multiplicative uncertainty:
2020-09-22 10:15:26 +02:00
\begin{equation}
2020-09-22 21:58:37 +02:00
G_i(s) = \hat{G}_i(s) \left( 1 + W_i(s) \Delta_i(s) \right); \quad |\Delta_i(j\omega)| < 1 \forall \omega
2020-09-22 10:15:26 +02:00
\end{equation}
2020-09-22 21:58:37 +02:00
where $\hat{G}_i(s)$ is the nominal model, $W_i$ a weight representing the size of the uncertainty at each frequency, and $\Delta_i$ is any complex perturbation such that $\left\| \Delta_i \right\|_ \infty < 1$.
2020-09-22 10:15:26 +02:00
2020-09-22 21:58:37 +02:00
The sensor can then be represented as shown in Figure ref:fig:sensor_model_uncertainty.
#+name : fig:sensor_model_uncertainty
#+caption : Sensor Model including Dynamical Uncertainty
#+attr_latex : :scale 1
[[file:figs/sensor_model_uncertainty.pdf ]]
2020-09-22 10:15:26 +02:00
2020-09-22 09:51:26 +02:00
** Sensor Fusion Architecture
2020-09-22 21:58:37 +02:00
Let's consider the sensor fusion architecture shown in Figure ref:fig:sensor_fusion_arch_uncertainty where the dynamical uncertainties of both sensors are included.
2020-09-22 09:51:26 +02:00
2020-09-22 21:58:37 +02:00
The super sensor estimate is then:
2020-09-22 09:51:26 +02:00
\begin{equation}
2020-09-22 21:58:37 +02:00
\begin{aligned}
\hat{x} &= \Big( H_1 \hat{G}_1^{-1} \hat{G}_1 (1 + W_1 \Delta_1) \\
& \quad + H_2 \hat{G}_2^{-1} \hat{G}_2 (1 + W_2 \Delta_2) \Big) x \\
&= \Big( H_1 (1 + W_1 \Delta_1) + H_2 (1 + W_2 \Delta_2) \Big) x
\end{aligned}
2020-09-22 09:51:26 +02:00
\end{equation}
2020-09-22 21:58:37 +02:00
with $\Delta_i$ is any transfer function satisfying $\| \Delta_i \|_ \infty < 1$.
2020-09-22 09:51:26 +02:00
2020-09-22 21:58:37 +02:00
As $H_1$ and $H_2$ are complementary filters, we finally have:
2020-09-22 09:51:26 +02:00
\begin{equation}
2020-09-22 21:58:37 +02:00
\hat{x} = \left( 1 + H_1 W_1 \Delta_1 + H_2 W_2 \Delta_2 \right) x, \quad \|\Delta_i\|_ \infty<1
2020-09-22 09:51:26 +02:00
\end{equation}
2020-08-17 17:56:40 +02:00
#+name : fig:sensor_fusion_arch_uncertainty
2020-09-22 10:15:26 +02:00
#+caption : Sensor Fusion Architecture with sensor model uncertainty
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/sensor_fusion_arch_uncertainty.pdf ]]
2020-08-17 15:58:25 +02:00
** Super Sensor Dynamical Uncertainty
2020-09-22 21:58:37 +02:00
The uncertainty set of the transfer function from $\hat{x}$ to $x$ at frequency $\omega$ is bounded in the complex plane by a circle centered on 1 and with a radius equal to $|W_1(j\omega) H_1(j\omega)| + |W_2(j\omega) H_2(j\omega)|$ as shown in Figure ref:fig:uncertainty_set_super_sensor.
And we can see that the dynamical uncertainty of the super sensor is equal to the sum of the individual sensor uncertainties filtered out by the complementary filters.
2020-09-22 09:51:26 +02:00
2020-08-17 17:56:40 +02:00
#+name : fig:uncertainty_set_super_sensor
2020-09-22 10:15:26 +02:00
#+caption : Super Sensor model uncertainty displayed in the complex plane
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/uncertainty_set_super_sensor.pdf ]]
2020-09-22 21:58:37 +02:00
# Some comments on the weights
At frequencies where $\left|W_i(j\omega)\right| > 1$ the uncertainty exceeds $100\%$ and sensor fusion is impossible.
2020-08-17 15:58:25 +02:00
** $\mathcal{H_\infty}$ Synthesis of Complementary Filters
2020-09-22 21:58:37 +02:00
In order for the fusion to be "robust", meaning no phase drop will be induced in the super sensor dynamics,
The goal is to design two complementary filters $H_1(s)$ and $H_2(s)$ such that the super sensor noise uncertainty is kept reasonably small.
2020-09-23 14:10:55 +02:00
To define what by "small" we mean, we use a weighting filter $W_u(s)$ such that the synthesis objective is:
\begin{equation}
\left| W_1(j\omega)H_1(j\omega) \right| + \left| W_2(j\omega)H_2(j\omega) \right| < \frac{1}{\left| W_u(j\omega) \right|}, \quad \forall \omega
\end{equation}
2020-09-23 15:33:27 +02:00
# Comments on the choice of the weights => we cannot ask for less uncertainty than both sensors
This is actually almost equivalent as to have (within a factor $\sqrt{2}$):
2020-09-23 14:10:55 +02:00
\begin{equation}
\left\| \begin{matrix} W_u W_1 H_1 \\ W_u W_2 H_2 \end{matrix} \right\|_ \infty < 1
\end{equation}
This problem can thus be dealt with an $\mathcal{H}_\infty$ synthesis problem by considering the following generalized plant (Figure ref:fig:h_infinity_robust_fusion):
2020-09-22 21:58:37 +02:00
\begin{equation}
\begin{pmatrix}
z_1 \\ z_2 \\ v
\end{pmatrix} = \underbrace{\begin{bmatrix}
2020-10-05 11:47:57 +02:00
W_u W_1 & -W_u W_1 \\
0 & W_u W_2 \\
1 & 0
2020-09-22 21:58:37 +02:00
\end{bmatrix}}_{P_ {\mathcal{H}_\infty}} \begin{pmatrix}
w \\ u
\end{pmatrix}
\end{equation}
Applying the $\mathcal{H}_\infty$ synthesis on $P_ {\mathcal{H}_\infty}$ will generate a filter $H_2(s)$ such that the $\mathcal{H}_ \infty$ norm from $w$ to $(z_1,z_2)$ is minimized:
#+NAME : eq:Hinf_norm
\begin{equation}
2020-09-23 14:10:55 +02:00
\left\| \begin{matrix} z_1/w \\ z_2/w \end{matrix} \right\|_ \infty = \left\| \begin{matrix} W_u W_1 (1 - H_2) \\ W_u W_2 H_2 \end{matrix} \right\|_ \infty
2020-09-22 21:58:37 +02:00
\end{equation}
The $\mathcal{H}_\infty$ norm of Eq. eqref:eq:Hinf_norm is equals to $\sigma_n$ by defining $H_1(s)$ to be the complementary filter of $H_2(s)$:
\begin{equation}
H_1(s) = 1 - H_2(s)
\end{equation}
2019-08-14 12:08:30 +02:00
2020-08-17 17:56:40 +02:00
#+name : fig:h_infinity_robust_fusion
2020-09-22 10:15:26 +02:00
#+caption : Generalized plant $P_{\mathcal{H}_\infty}$ used for the $\mathcal{H}_\infty$ synthesis of complementary filters
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/h_infinity_robust_fusion.pdf ]]
2020-08-17 15:58:25 +02:00
** Example
2019-08-14 12:08:30 +02:00
2020-10-05 15:42:08 +02:00
#+name : fig:sensors_uncertainty_weights
#+caption : Magnitude of the multiplicative uncertainty weights $|W_i(j\omega)|$
#+attr_latex : :scale 1
[[file:figs/sensors_uncertainty_weights.pdf ]]
#+name : fig:weight_uncertainty_bounds_Wu
#+caption : Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)
#+attr_latex : :scale 1
[[file:figs/weight_uncertainty_bounds_Wu.pdf ]]
#+name : fig:hinf_comp_filters
#+caption : Obtained complementary filters using the $\mathcal{H}_\infty$ Synthesis
#+attr_latex : :scale 1
[[file:figs/hinf_comp_filters.pdf ]]
#+name : fig:super_sensor_dynamical_uncertainty_Hinf
#+caption : Super sensor dynamical uncertainty (solid curve) when using the $\mathcal{H}_\infty$ Synthesis
#+attr_latex : :scale 1
[[file:figs/super_sensor_dynamical_uncertainty_Hinf.pdf ]]
#+name : fig:psd_sensors_hinf_synthesis
#+caption : Power Spectral Density of the estimated $\hat{x}$ using the two sensors alone and using the $\mathcal{H}_\infty$ synthesis
#+attr_latex : :scale 1
[[file:figs/psd_sensors_hinf_synthesis.pdf ]]
2020-08-17 15:58:25 +02:00
* Optimal and Robust Sensor Fusion: Mixed $\mathcal{H}_2/\mathcal{H}_\infty$ Synthesis
<<sec:optimal_robust_fusion >>
2019-08-14 12:08:30 +02:00
2020-09-23 15:33:27 +02:00
** Sensor with noise and model uncertainty
We wish now to combine the two previous synthesis, that is to say
The sensors are now modelled by a white noise with unitary PSD $\tilde{n}_i$ shaped by a LTI transfer function $N_i(s)$.
The dynamical uncertainty of the sensor is modelled using multiplicative uncertainty
\begin{equation}
v_i = \hat{G}_i (1 + W_i \Delta_i) x + \hat{G_i} (1 + W_i \Delta_i) N_i \tilde{n}_i
\end{equation}
Multiplying by the inverse of the nominal model of the sensor dynamics gives an estimate $\hat{x}_i$ of $x$:
\begin{equation}
\hat{x} = (1 + W_i \Delta_i) x + (1 + W_i \Delta_i) N_i \tilde{n}_i
\end{equation}
2019-08-14 12:08:30 +02:00
2020-09-22 21:58:37 +02:00
#+name : fig:sensor_model_noise_uncertainty
#+caption : Sensor Model including Noise and Dynamical Uncertainty
#+attr_latex : :scale 1
[[file:figs/sensor_model_noise_uncertainty.pdf ]]
2020-09-23 15:33:27 +02:00
** Sensor Fusion Architecture
For reason of space, the blocks $\hat{G}_i$ and $\hat{G}_i^{-1}$ are omitted.
\begin{equation}
\begin{aligned}
\hat{x} = &\Big( H_1 (1 + W_1 \Delta_1) + H_2 (1 + W_2 \Delta_2) \Big) x \\
&+ \Big( H_1 (1 + W_1 \Delta_1) N_1 \Big) \tilde{n}_1 + \Big( H_2 (1 + W_2 \Delta_2) N_2 \Big) \tilde{n}_2
\end{aligned}
\end{equation}
\begin{equation}
\begin{aligned}
\hat{x} = &\Big( 1 + H_1 W_1 \Delta_1 + H_2 W_2 \Delta_2 \Big) x \\
&+ \Big( H_1 (1 + W_1 \Delta_1) N_1 \Big) \tilde{n}_1 + \Big( H_2 (1 + W_2 \Delta_2) N_2 \Big) \tilde{n}_2
\end{aligned}
\end{equation}
The estimate $\hat{x}$ of $x$
2020-09-22 21:58:37 +02:00
2020-08-17 17:56:40 +02:00
#+name : fig:sensor_fusion_arch_full
2020-09-22 10:15:26 +02:00
#+caption : Super Sensor Fusion with both sensor noise and sensor model uncertainty
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/sensor_fusion_arch_full.pdf ]]
2020-08-17 15:58:25 +02:00
** Mixed $\mathcal{H}_2/\mathcal{H}_\infty$ Synthesis
2019-08-14 12:08:30 +02:00
2020-09-23 15:33:27 +02:00
The synthesis objective is to generate two complementary filters $H_1(s)$ and $H_2(s)$ such that the uncertainty associated with the super sensor is kept reasonably small and such that the RMS value of super sensors noise is minimized.
To specify how small we want the super sensor dynamic spread, we use a weighting filter $W_u(s)$ as was done in Section ref:sec:robust_fusion.
This synthesis problem can be solved using the mixed $\mathcal{H}_2/\mathcal{H}_ \infty$ synthesis on the following generalized plant:
\begin{equation}
\begin{pmatrix}
z_{\infty, 1} \\ z_ {\infty, 2} \\ z_{2, 1} \\ z_ {2, 2} \\ v
\end{pmatrix} = \underbrace{\begin{bmatrix}
W_u W_1 & W_u W_1 \\
0 & W_u W_2 \\
N_1 & N_1 \\
0 & N_2 \\
1 & 0
\end{bmatrix}}_{P_ {\mathcal{H}_2/\mathcal{H}_ \infty}} \begin{pmatrix}
w \\ u
\end{pmatrix}
\end{equation}
The synthesis objective is to:
- Keep the $\mathcal{H}_\infty$ norm from $w$ to $(z_ {\infty,1}, z_{\infty,2})$ below $1$
- Minimize the $\mathcal{H}_2$ norm from $w$ to $(z_ {2,1}, z_{2,2})$
2020-08-17 17:56:40 +02:00
#+name : fig:mixed_h2_hinf_synthesis
2020-09-22 10:15:26 +02:00
#+caption : Generalized plant $P_{\mathcal{H}_2/\matlcal{H}_\infty}$ used for the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis of complementary filters
2020-08-17 17:56:40 +02:00
#+attr_latex : :scale 1
[[file:figs/mixed_h2_hinf_synthesis.pdf ]]
2020-08-17 15:58:25 +02:00
** Example
2019-08-14 12:08:30 +02:00
2020-10-05 15:42:08 +02:00
#+name : fig:htwo_hinf_comp_filters
#+caption : Obtained complementary filters after mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis
#+attr_latex : :scale 1
[[file:figs/htwo_hinf_comp_filters.pdf ]]
#+name : fig:psd_sensors_htwo_hinf_synthesis
#+caption : Power Spectral Density of the Super Sensor obtained with the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis
#+attr_latex : :scale 1
[[file:figs/psd_sensors_htwo_hinf_synthesis.pdf ]]
#+name : fig:super_sensor_time_domain_h2_hinf
#+caption : Noise of individual sensors and noise of the super sensor
#+attr_latex : :scale 1
[[file:figs/super_sensor_time_domain_h2_hinf.pdf ]]
#+name : fig:super_sensor_dynamical_uncertainty_Htwo_Hinf
#+caption : Super sensor dynamical uncertainty (solid curve) when using the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ Synthesis
#+attr_latex : :scale 1
[[file:figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf ]]
2020-08-17 15:58:25 +02:00
* Experimental Validation
<<sec:experimental_validation >>
2019-08-14 12:08:30 +02:00
2020-08-17 15:58:25 +02:00
** Experimental Setup
2019-08-14 12:08:30 +02:00
2020-08-17 15:58:25 +02:00
** Sensor Noise and Dynamical Uncertainty
2019-08-14 12:08:30 +02:00
2020-08-17 15:58:25 +02:00
** Mixed $\mathcal{H}_2/\mathcal{H}_\infty$ Synthesis
2019-08-14 12:08:30 +02:00
2020-08-17 15:58:25 +02:00
** Super Sensor Noise and Dynamical Uncertainty
2019-08-14 12:08:30 +02:00
* Conclusion
2020-08-17 15:58:25 +02:00
<<sec:conclusion >>
2019-08-14 12:08:30 +02:00
* Acknowledgment
* Bibliography :ignore:
\bibliography{ref}