Compare commits

..

No commits in common. "d3f8f1cc4e4420c1ea17244bc24c6ef7ed7d7b49" and "ebdde7b4b769abca3d8e042a4f80846ec9dd4f39" have entirely different histories.

74 changed files with 5305 additions and 219 deletions

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2021 Dehaeze Thomas
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -3,11 +3,11 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-09-10 ven. 11:07 --> <!-- 2020-12-07 lun. 11:50 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Robust and Optimal Sensor Fusion using Complementary Filters</title> <title>Robust and Optimal Sensor Fusion</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<meta name="generator" content="Org Mode" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script> <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<style> #content {margin: auto;} </style> <style> #content {margin: auto;} </style>
@ -17,8 +17,8 @@
<a accesskey="h" href="../index.html"> UP </a> <a accesskey="h" href="../index.html"> UP </a>
| |
<a accesskey="H" href="../index.html"> HOME </a> <a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content" class="content"> </div><div id="content">
<h1 class="title">Robust and Optimal Sensor Fusion using Complementary Filters <h1 class="title">Robust and Optimal Sensor Fusion
<br /> <br />
<span class="subtitle">Dehaeze Thomas and Collette Christophe</span> <span class="subtitle">Dehaeze Thomas and Collette Christophe</span>
</h1> </h1>
@ -28,27 +28,27 @@
</p> </p>
</blockquote> </blockquote>
<div id="outline-container-orga601f2f" class="outline-2"> <div id="outline-container-org5d45024" class="outline-2">
<h2 id="orga601f2f">Paper (<a href="paper/dehaeze22_optim_robus_compl_filte.pdf">link</a>)</h2> <h2 id="org5d45024">Paper (<a href="paper/paper.pdf">link</a>)</h2>
<div class="outline-text-2" id="text-orga601f2f"> <div class="outline-text-2" id="text-org5d45024">
<p> <p>
The paper has been created <a href="https://orgmode.org/">Org Mode</a> (generating <a href="https://www.latex-project.org/">LaTeX</a> code) under <a href="https://www.gnu.org/software/emacs/">Emacs</a>. The paper has been created <a href="https://orgmode.org/">Org Mode</a> (generating <a href="https://www.latex-project.org/">LaTeX</a> code) under <a href="https://www.gnu.org/software/emacs/">Emacs</a>.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-orgd50e329" class="outline-2"> <div id="outline-container-org22e6deb" class="outline-2">
<h2 id="orgd50e329">Matlab Scripts (<a href="matlab/dehaeze22_optim_robus_compl_filte_matlab.html">link</a>)</h2> <h2 id="org22e6deb">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-orgd50e329"> <div class="outline-text-2" id="text-org22e6deb">
<p> <p>
All the <a href="https://fr.mathworks.com/">Matlab</a> code that was used for the paper are accessible so that all the results are reproducible. All the <a href="https://fr.mathworks.com/">Matlab</a> code that was used for the paper are accessible so that all the results are reproducible.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org3b999bd" class="outline-2"> <div id="outline-container-org5127d10" class="outline-2">
<h2 id="org3b999bd">Tikz Figures (<a href="tikz/dehaeze22_optim_robus_compl_filte_tikz.html">link</a>)</h2> <h2 id="org5127d10">Tikz Figures (<a href="tikz/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-org3b999bd"> <div class="outline-text-2" id="text-org5127d10">
<p> <p>
All the figures for the paper have been generated using <a href="https://sourceforge.net/projects/pgf/">TikZ</a>. All the figures for the paper have been generated using <a href="https://sourceforge.net/projects/pgf/">TikZ</a>.
</p> </p>
@ -56,9 +56,9 @@ All the figures for the paper have been generated using <a href="https://sourcef
</div> </div>
<div id="outline-container-org870b921" class="outline-2"> <div id="outline-container-org8fadb78" class="outline-2">
<h2 id="org870b921">Cite this paper</h2> <h2 id="org8fadb78">Cite this paper</h2>
<div class="outline-text-2" id="text-org870b921"> <div class="outline-text-2" id="text-org8fadb78">
<p> <p>
To cite this paper use the following bibtex code. To cite this paper use the following bibtex code.
</p> </p>

View File

@ -1,4 +1,4 @@
#+TITLE: Robust and Optimal Sensor Fusion using Complementary Filters #+TITLE: Robust and Optimal Sensor Fusion
:DRAWER: :DRAWER:
#+SUBTITLE: Dehaeze Thomas and Collette Christophe #+SUBTITLE: Dehaeze Thomas and Collette Christophe
@ -18,19 +18,19 @@
#+end_quote #+end_quote
* Paper ([[file:paper/dehaeze22_optim_robus_compl_filte.pdf][link]]) * Paper ([[file:paper/paper.pdf][link]])
:PROPERTIES: :PROPERTIES:
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
The paper has been created [[https://orgmode.org/][Org Mode]] (generating [[https://www.latex-project.org/][LaTeX]] code) under [[https://www.gnu.org/software/emacs/][Emacs]]. The paper has been created [[https://orgmode.org/][Org Mode]] (generating [[https://www.latex-project.org/][LaTeX]] code) under [[https://www.gnu.org/software/emacs/][Emacs]].
* Matlab Scripts ([[file:matlab/dehaeze22_optim_robus_compl_filte_matlab.org][link]]) * Matlab Scripts ([[file:matlab/index.org][link]])
:PROPERTIES: :PROPERTIES:
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
All the [[https://fr.mathworks.com/][Matlab]] code that was used for the paper are accessible so that all the results are reproducible. All the [[https://fr.mathworks.com/][Matlab]] code that was used for the paper are accessible so that all the results are reproducible.
* Tikz Figures ([[file:tikz/dehaeze22_optim_robus_compl_filte_tikz.org][link]]) * Tikz Figures ([[file:tikz/index.org][link]])
:PROPERTIES: :PROPERTIES:
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:

View File

@ -1,98 +0,0 @@
#!/bin/env perl
# Shebang is only to get syntax highlighting right across GitLab, GitHub and IDEs.
# This file is not meant to be run, but read by `latexmk`.
# ======================================================================================
# Perl `latexmk` configuration file
# ======================================================================================
# ======================================================================================
# PDF Generation/Building/Compilation
# ======================================================================================
@default_files=('dehaeze22_optim_robus_compl_filte.tex');
# PDF-generating modes are:
# 1: pdflatex, as specified by $pdflatex variable (still largely in use)
# 2: postscript conversion, as specified by the $ps2pdf variable (useless)
# 3: dvi conversion, as specified by the $dvipdf variable (useless)
# 4: lualatex, as specified by the $lualatex variable (best)
# 5: xelatex, as specified by the $xelatex variable (second best)
$pdf_mode = 1;
# Treat undefined references and citations as well as multiply defined references as
# ERRORS instead of WARNINGS.
# This is only checked in the *last* run, since naturally, there are undefined references
# in initial runs.
# This setting is potentially annoying when debugging/editing, but highly desirable
# in the CI pipeline, where such a warning should result in a failed pipeline, since the
# final document is incomplete/corrupted.
#
# However, I could not eradicate all warnings, so that `latexmk` currently fails with
# this option enabled.
# Specifically, `microtype` fails together with `fontawesome`/`fontawesome5`, see:
# https://tex.stackexchange.com/a/547514/120853
# The fix in that answer did not help.
# Setting `verbose=silent` to mute `microtype` warnings did not work.
# Switching between `fontawesome` and `fontawesome5` did not help.
$warnings_as_errors = 0;
# Show used CPU time. Looks like: https://tex.stackexchange.com/a/312224/120853
$show_time = 1;
# Default is 5; we seem to need more owed to the complexity of the document.
# Actual documents probably don't need this many since they won't use all features,
# plus won't be compiling from cold each time.
$max_repeat=7;
# --shell-escape option (execution of code outside of latex) is required for the
#'svg' package.
# It converts raw SVG files to the PDF+PDF_TEX combo using InkScape.
#
# SyncTeX allows to jump between source (code) and output (PDF) in IDEs with support
# (many have it). A value of `1` is enabled (gzipped), `-1` is enabled but uncompressed,
# `0` is off.
# Testing in VSCode w/ LaTeX Workshop only worked for the compressed version.
# Adjust this as needed. Of course, only relevant for local use, no effect on a remote
# CI pipeline (except for slower compilation, probably).
#
# %O and %S will forward Options and the Source file, respectively, given to latexmk.
#
# `set_tex_cmds` applies to all *latex commands (latex, xelatex, lualatex, ...), so
# no need to specify these each. This allows to simply change `$pdf_mode` to get a
# different engine. Check if this works with `latexmk --commands`.
set_tex_cmds("--shell-escape -interaction=nonstopmode --synctex=1 %O %S");
# Use default pdf viewer
$pdf_previewer = 'zathura';
# option 2 is same as 1 (run biber when necessary), but also deletes the
# regeneratable bbl-file in a clenaup (`latexmk -c`). Do not use if original
# bib file is not available!
$bibtex_use = 1; # default: 1
# Change default `biber` call, help catch errors faster/clearer. See
# https://web.archive.org/web/20200526101657/https://www.semipol.de/2018/06/12/latex-best-practices.html#database-entries
$bibtex = "bibtex %S";
# ======================================================================================
# Auxiliary Files
# ======================================================================================
# Let latexmk know about generated files, so they can be used to detect if a
# rerun is required, or be deleted in a cleanup.
# loe: List of Examples (KOMAScript)
# lol: List of Listings (`listings` and `minted` packages)
# run.xml: biber runs
# glg: glossaries log
# glstex: generated from glossaries-extra
push @generated_exts, 'loe', 'lol', 'run.xml', 'glg', 'glstex';
# Also delete the *.glstex files from package glossaries-extra. Problem is,
# that that package generates files of the form "basename-digit.glstex" if
# multiple glossaries are present. Latexmk looks for "basename.glstex" and so
# does not find those. For that purpose, use wildcard.
# Also delete files generated by gnuplot/pgfplots contour plots
# (.dat, .script, .table).
$clean_ext = "%R-*.glstex %R_contourtmp*.*";

Binary file not shown.

Binary file not shown.

BIN
matlab/index.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

28
paper/config.tex Normal file
View File

@ -0,0 +1,28 @@
% H Infini
\newcommand{\hinf}{\mathcal{H}_\infty}
% H 2
\newcommand{\htwo}{\mathcal{H}_2}
% Omega
\newcommand{\w}{\omega}
% H-Infinity Norm
\newcommand{\hnorm}[1]{\left\|#1\right\|_{\infty}}
% H-2 Norm
\newcommand{\normtwo}[1]{\left\|#1\right\|_{2}}
% Norm
\newcommand{\norm}[1]{\left\|#1\right\|}
% Absolute value
\newcommand{\abs}[1]{\left\lvert #1 \right\lvert}
% Minimum Subscript
\newcommand{\smin}{_{\text{min}}}
% Maximum Subscript
\newcommand{\smax}{_{\text{max}}}
\newcommand*\colvec[1]{\begin{bmatrix}#1\end{bmatrix}}

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

4593
paper/ieeeconf.cls Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,32 @@
#+TITLE: Optimal and Robust Sensor Fusion using Complementary Filters #+TITLE: Optimal and Robust Sensor Fusion
:DRAWER: :DRAWER:
#+LATEX_CLASS: IEEEtran #+LATEX_CLASS: IEEEtran
#+LATEX_CLASS_OPTIONS: [10pt,final,journal,a4paper] #+LATEX_CLASS_OPTIONS: [conference]
#+OPTIONS: toc:nil todo:nil #+OPTIONS: toc:nil todo:nil
#+STARTUP: overview #+STARTUP: overview
#+DATE: {{{time(%Y-%m-%d)}}} #+DATE: {{{time(%Y-%m-%d)}}}
#+AUTHOR: @@latex:\author{Thomas~Dehaeze, Mohit~Verma, and~Christophe~Collette@@ #+AUTHOR: @@latex:\IEEEauthorblockN{Dehaeze Thomas}@@
#+AUTHOR: @@latex:\thanks{The authors are with the Precision Mechatronics Laboratory at the University of Liege, Belgium.}@@ #+AUTHOR: @@latex:\IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\@@
#+AUTHOR: @@latex:\thanks{Corresponding author: thomas.dehaeze@esrf.fr}@@ #+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{Verma Mohit}@@
#+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:mohitverma.serc@csir.res.in@@
#+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:}@@ #+AUTHOR: @@latex:}@@
#+LATEX_HEADER: \IEEEoverridecommandlockouts #+LATEX_HEADER: \IEEEoverridecommandlockouts
@ -28,12 +45,18 @@
#+LATEX_HEADER_EXTRA: \usepackage{showframe} #+LATEX_HEADER_EXTRA: \usepackage{showframe}
#+LATEX_HEADER: \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} #+LATEX_HEADER: \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\bibliographystyle{IEEEtran}
:END: :END:
* LaTeX Config :noexport:
#+begin_src latex :tangle config.tex
#+end_src
* Build :noexport: * Build :noexport:
#+NAME: startblock #+NAME: startblock
#+BEGIN_SRC emacs-lisp :results none #+BEGIN_SRC emacs-lisp :results none
(add-to-list 'org-latex-classes (add-to-list 'org-latex-classes
'("IEEEtran" '("IEEEtran"
"\\documentclass{IEEEtran}" "\\documentclass{IEEEtran}"
("\\section{%s}" . "\\section*{%s}") ("\\section{%s}" . "\\section*{%s}")
@ -43,17 +66,7 @@
("\\subparagraph{%s}" . "\\subparagraph*{%s}")) ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
) )
;; Remove automatic org headings (defun delete-org-comments (backend)
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
(when (org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
(add-to-list 'org-export-filter-headline-functions
'my-latex-filter-removeOrgAutoLabels)
;; Automatic delete org org-comments
(defun delete-org-comments (backend)
(loop for comment in (reverse (org-element-map (org-element-parse-buffer) (loop for comment in (reverse (org-element-map (org-element-parse-buffer)
'comment 'identity)) 'comment 'identity))
do do
@ -61,11 +74,11 @@
(org-element-property :end comment)) (org-element-property :end comment))
""))) "")))
;; add to export hook ;; add to export hook
(add-hook 'org-export-before-processing-hook 'delete-org-comments) (add-hook 'org-export-before-processing-hook 'delete-org-comments)
;; Remove hypersetup ;; Remove hypersetup
(setq org-latex-with-hyperref nil) (setq org-latex-with-hyperref nil)
#+END_SRC #+END_SRC
* Abstract :ignore: * Abstract :ignore:
@ -81,8 +94,6 @@
* Introduction * Introduction
<<sec:introduction>> <<sec:introduction>>
cite:mahony08_nonlin_compl_filter_special_orthog_group
- Section ref:sec:optimal_fusion - Section ref:sec:optimal_fusion
- Section ref:sec:robust_fusion - Section ref:sec:robust_fusion
- Section ref:sec:optimal_robust_fusion - Section ref:sec:optimal_robust_fusion
@ -464,7 +475,7 @@ The synthesis objective is to:
- Minimize the $\mathcal{H}_2$ norm from $w$ to $(z_{2,1}, z_{2,2})$ - Minimize the $\mathcal{H}_2$ norm from $w$ to $(z_{2,1}, z_{2,2})$
#+name: fig:mixed_h2_hinf_synthesis #+name: fig:mixed_h2_hinf_synthesis
#+caption: Generalized plant $P_{\mathcal{H}_2/\mathcal{H}_\infty}$ used for the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis of complementary filters #+caption: Generalized plant $P_{\mathcal{H}_2/\matlcal{H}_\infty}$ used for the mixed $\mathcal{H}_2/\mathcal{H}_\infty$ synthesis of complementary filters
#+attr_latex: :scale 1 #+attr_latex: :scale 1
[[file:figs/mixed_h2_hinf_synthesis.pdf]] [[file:figs/mixed_h2_hinf_synthesis.pdf]]
@ -507,10 +518,4 @@ The synthesis objective is to:
* Acknowledgment * Acknowledgment
* Bibliography :ignore: * Bibliography :ignore:
\bibliographystyle{IEEEtran}
\bibliography{ref} \bibliography{ref}
* Local Variables :noexport:
# Local Variables:
# org-latex-packages-alist: nil
# End:

View File

@ -1,6 +1,6 @@
% Created 2021-09-10 ven. 11:01 % Created 2020-10-26 lun. 18:25
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[10pt,final,journal,a4paper]{IEEEtran} \documentclass[conference]{IEEEtran}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} \usepackage[T1]{fontenc}
\usepackage{graphicx} \usepackage{graphicx}
@ -14,6 +14,12 @@
\usepackage{amssymb} \usepackage{amssymb}
\usepackage{capt-of} \usepackage{capt-of}
\usepackage{hyperref} \usepackage{hyperref}
\usepackage[most]{tcolorbox}
\usepackage{bm}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{array}
\usepackage{siunitx}
\IEEEoverridecommandlockouts \IEEEoverridecommandlockouts
\usepackage{cite} \usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts} \usepackage{amsmath,amssymb,amsfonts}
@ -28,9 +34,9 @@
\renewcommand{\citedash}{--} \renewcommand{\citedash}{--}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} \def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\usepackage{showframe} \usepackage{showframe}
\author{\author{Thomas~Dehaeze, Mohit~Verma, and~Christophe~Collette \thanks{The authors are with the Precision Mechatronics Laboratory at the University of Liege, Belgium.} \thanks{Corresponding author: thomas.dehaeze@esrf.fr} }} \author{\IEEEauthorblockN{Dehaeze Thomas} \IEEEauthorblockA{\textit{European Synchrotron Radiation Facility} \\ Grenoble, France\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ thomas.dehaeze@esrf.fr }\and \IEEEauthorblockN{Verma Mohit} \IEEEauthorblockA{\textit{BEAMS Department}\\ \textit{Free University of Brussels}, Belgium\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ mohitverma.serc@csir.res.in }\and \IEEEauthorblockN{Collette Christophe} \IEEEauthorblockA{\textit{BEAMS Department}\\ \textit{Free University of Brussels}, Belgium\\ \textit{Precision Mechatronics Laboratory} \\ \textit{University of Liege}, Belgium \\ ccollett@ulb.ac.be }}
\date{2021-09-10} \date{2020-10-26}
\title{Optimal and Robust Sensor Fusion using Complementary Filters} \title{Optimal and Robust Sensor Fusion}
\begin{document} \begin{document}
\maketitle \maketitle
@ -44,10 +50,9 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
\end{IEEEkeywords} \end{IEEEkeywords}
\section{Introduction} \section{Introduction}
\label{sec:org2820158}
\label{sec:introduction} \label{sec:introduction}
\cite{mahony08_nonlin_compl_filter_special_orthog_group}
\begin{itemize} \begin{itemize}
\item Section \ref{sec:optimal_fusion} \item Section \ref{sec:optimal_fusion}
\item Section \ref{sec:robust_fusion} \item Section \ref{sec:robust_fusion}
@ -56,9 +61,11 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
\end{itemize} \end{itemize}
\section{Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis} \section{Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis}
\label{sec:org2513ad9}
\label{sec:optimal_fusion} \label{sec:optimal_fusion}
\subsection{Sensor Model} \subsection{Sensor Model}
\label{sec:orgbcc6cb6}
Let's consider a sensor measuring a physical quantity \(x\) (Figure \ref{fig:sensor_model_noise}). Let's consider a sensor measuring a physical quantity \(x\) (Figure \ref{fig:sensor_model_noise}).
The sensor has an internal dynamics which is here modelled with a Linear Time Invariant (LTI) system transfer function \(G_i(s)\). The sensor has an internal dynamics which is here modelled with a Linear Time Invariant (LTI) system transfer function \(G_i(s)\).
@ -89,18 +96,19 @@ In order to obtain an estimate \(\hat{x}_i\) of \(x\), a model \(\hat{G}_i\) of
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_model_noise.pdf} \includegraphics[scale=1]{figs/sensor_model_noise.pdf}
\caption{\label{fig:sensor_model_noise}Sensor Model} \caption{\label{fig:sensor_model_noise}Sensor Model}
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:orgdb526ec}
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}). 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}).
The noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) are considered to be uncorrelated. The noise sources \(\tilde{n}_1\) and \(\tilde{n}_2\) are considered to be uncorrelated.
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_noise_arch.pdf} \includegraphics[scale=1]{figs/sensor_fusion_noise_arch.pdf}
\caption{\label{fig:sensor_fusion_noise_arch}Sensor Fusion Architecture with sensor noise} \caption{\label{fig:sensor_fusion_noise_arch}Sensor Fusion Architecture with sensor noise}
\end{figure} \end{figure}
@ -130,6 +138,7 @@ In such case, the super sensor estimate \(\hat{x}\) is equal to \(x\) plus the n
\end{equation} \end{equation}
\subsection{Super Sensor Noise} \subsection{Super Sensor Noise}
\label{sec:org48c0d52}
Let's note \(n\) the super sensor noise. Let's note \(n\) the super sensor noise.
\begin{equation} \begin{equation}
n = \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2 n = \left( H_1 N_1 \right) \tilde{n}_1 + \left( H_2 N_2 \right) \tilde{n}_2
@ -143,6 +152,7 @@ As the noise of both sensors are considered to be uncorrelated, the PSD of the s
It is clear that the PSD of the super sensor depends on the norm of the complementary filters. It is clear that the PSD of the super sensor depends on the norm of the complementary filters.
\subsection{\(\mathcal{H}_2\) Synthesis of Complementary Filters} \subsection{\(\mathcal{H}_2\) Synthesis of Complementary Filters}
\label{sec:org0d9384e}
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}\). 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}\).
And the goal is the minimize the Root Mean Square (RMS) value of \(n\): And the goal is the minimize the Root Mean Square (RMS) value of \(n\):
@ -181,63 +191,67 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/h_two_optimal_fusion.pdf} \includegraphics[scale=1]{figs/h_two_optimal_fusion.pdf}
\caption{\label{fig:h_two_optimal_fusion}Generalized plant \(P_{\mathcal{H}_2}\) used for the \(\mathcal{H}_2\) synthesis of complementary filters} \caption{\label{fig:h_two_optimal_fusion}Generalized plant \(P_{\mathcal{H}_2}\) used for the \(\mathcal{H}_2\) synthesis of complementary filters}
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:org99002de}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensors_nominal_dynamics.pdf} \includegraphics[scale=1]{figs/sensors_nominal_dynamics.pdf}
\caption{\label{fig:sensors_nominal_dynamics}Sensor nominal dynamics from the velocity of the object to the output voltage} \caption{\label{fig:sensors_nominal_dynamics}Sensor nominal dynamics from the velocity of the object to the output voltage}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensors_noise.pdf} \includegraphics[scale=1]{figs/sensors_noise.pdf}
\caption{\label{fig:sensors_noise}Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)} \caption{\label{fig:sensors_noise}Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/htwo_comp_filters.pdf} \includegraphics[scale=1]{figs/htwo_comp_filters.pdf}
\caption{\label{fig:htwo_comp_filters}Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis} \caption{\label{fig:htwo_comp_filters}Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/psd_sensors_htwo_synthesis.pdf} \includegraphics[scale=1]{figs/psd_sensors_htwo_synthesis.pdf}
\caption{\label{fig:psd_sensors_htwo_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal} \caption{\label{fig:psd_sensors_htwo_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/super_sensor_time_domain_h2.pdf} \includegraphics[scale=1]{figs/super_sensor_time_domain_h2.pdf}
\caption{\label{fig:super_sensor_time_domain_h2}Noise of individual sensors and noise of the super sensor} \caption{\label{fig:super_sensor_time_domain_h2}Noise of individual sensors and noise of the super sensor}
\end{figure} \end{figure}
\subsection{Robustness Problem} \subsection{Robustness Problem}
\label{sec:org262893f}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensors_nominal_dynamics_and_uncertainty.pdf} \includegraphics[scale=1]{figs/sensors_nominal_dynamics_and_uncertainty.pdf}
\caption{\label{fig:sensors_nominal_dynamics_and_uncertainty}Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)} \caption{\label{fig:sensors_nominal_dynamics_and_uncertainty}Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_H2.pdf} \includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_H2.pdf}
\caption{\label{fig:super_sensor_dynamical_uncertainty_H2}Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis} \caption{\label{fig:super_sensor_dynamical_uncertainty_H2}Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis}
\end{figure} \end{figure}
\section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis} \section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis}
\label{sec:org7c9047e}
\label{sec:robust_fusion} \label{sec:robust_fusion}
\subsection{Representation of Sensor Dynamical Uncertainty} \subsection{Representation of Sensor Dynamical Uncertainty}
\label{sec:org7bd4379}
In Section \ref{sec:optimal_fusion}, the model \(\hat{G}_i(s)\) of the sensor was considered to be perfect. 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. In reality, there are always uncertainty (neglected dynamics) associated with the estimation of the sensor dynamics.
@ -252,11 +266,12 @@ The sensor can then be represented as shown in Figure \ref{fig:sensor_model_unce
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_model_uncertainty.pdf} \includegraphics[scale=1]{figs/sensor_model_uncertainty.pdf}
\caption{\label{fig:sensor_model_uncertainty}Sensor Model including Dynamical Uncertainty} \caption{\label{fig:sensor_model_uncertainty}Sensor Model including Dynamical Uncertainty}
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:org0b8ce2b}
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. 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.
The super sensor estimate is then: The super sensor estimate is then:
@ -276,11 +291,12 @@ As \(H_1\) and \(H_2\) are complementary filters, we finally have:
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_arch_uncertainty.pdf} \includegraphics[scale=1]{figs/sensor_fusion_arch_uncertainty.pdf}
\caption{\label{fig:sensor_fusion_arch_uncertainty}Sensor Fusion Architecture with sensor model uncertainty} \caption{\label{fig:sensor_fusion_arch_uncertainty}Sensor Fusion Architecture with sensor model uncertainty}
\end{figure} \end{figure}
\subsection{Super Sensor Dynamical Uncertainty} \subsection{Super Sensor Dynamical Uncertainty}
\label{sec:org725af92}
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}. 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}.
@ -288,13 +304,14 @@ And we can see that the dynamical uncertainty of the super sensor is equal to th
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/uncertainty_set_super_sensor.pdf} \includegraphics[scale=1]{figs/uncertainty_set_super_sensor.pdf}
\caption{\label{fig:uncertainty_set_super_sensor}Super Sensor model uncertainty displayed in the complex plane} \caption{\label{fig:uncertainty_set_super_sensor}Super Sensor model uncertainty displayed in the complex plane}
\end{figure} \end{figure}
At frequencies where \(\left|W_i(j\omega)\right| > 1\) the uncertainty exceeds \(100\%\) and sensor fusion is impossible. At frequencies where \(\left|W_i(j\omega)\right| > 1\) the uncertainty exceeds \(100\%\) and sensor fusion is impossible.
\subsection{\(\mathcal{H_\infty}\) Synthesis of Complementary Filters} \subsection{\(\mathcal{H_\infty}\) Synthesis of Complementary Filters}
\label{sec:org941ed72}
In order for the fusion to be ``robust'', meaning no phase drop will be induced in the super sensor dynamics, 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. 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.
@ -335,48 +352,51 @@ The \(\mathcal{H}_\infty\) norm of Eq. \eqref{eq:Hinf_norm} is equals to \(\sigm
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/h_infinity_robust_fusion.pdf} \includegraphics[scale=1]{figs/h_infinity_robust_fusion.pdf}
\caption{\label{fig:h_infinity_robust_fusion}Generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) synthesis of complementary filters} \caption{\label{fig:h_infinity_robust_fusion}Generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) synthesis of complementary filters}
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:org7df520f}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensors_uncertainty_weights.pdf} \includegraphics[scale=1]{figs/sensors_uncertainty_weights.pdf}
\caption{\label{fig:sensors_uncertainty_weights}Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)} \caption{\label{fig:sensors_uncertainty_weights}Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/weight_uncertainty_bounds_Wu.pdf} \includegraphics[scale=1]{figs/weight_uncertainty_bounds_Wu.pdf}
\caption{\label{fig:weight_uncertainty_bounds_Wu}Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)} \caption{\label{fig:weight_uncertainty_bounds_Wu}Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/hinf_comp_filters.pdf} \includegraphics[scale=1]{figs/hinf_comp_filters.pdf}
\caption{\label{fig:hinf_comp_filters}Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis} \caption{\label{fig:hinf_comp_filters}Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_Hinf.pdf} \includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_Hinf.pdf}
\caption{\label{fig:super_sensor_dynamical_uncertainty_Hinf}Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis} \caption{\label{fig:super_sensor_dynamical_uncertainty_Hinf}Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/psd_sensors_hinf_synthesis.pdf} \includegraphics[scale=1]{figs/psd_sensors_hinf_synthesis.pdf}
\caption{\label{fig:psd_sensors_hinf_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the \(\mathcal{H}_\infty\) synthesis} \caption{\label{fig:psd_sensors_hinf_synthesis}Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the \(\mathcal{H}_\infty\) synthesis}
\end{figure} \end{figure}
\section{Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \section{Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\label{sec:org75a038a}
\label{sec:optimal_robust_fusion} \label{sec:optimal_robust_fusion}
\subsection{Sensor with noise and model uncertainty} \subsection{Sensor with noise and model uncertainty}
\label{sec:org3810d6b}
We wish now to combine the two previous synthesis, that is to say 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 sensors are now modelled by a white noise with unitary PSD \(\tilde{n}_i\) shaped by a LTI transfer function \(N_i(s)\).
@ -392,11 +412,12 @@ Multiplying by the inverse of the nominal model of the sensor dynamics gives an
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_model_noise_uncertainty.pdf} \includegraphics[scale=1]{figs/sensor_model_noise_uncertainty.pdf}
\caption{\label{fig:sensor_model_noise_uncertainty}Sensor Model including Noise and Dynamical Uncertainty} \caption{\label{fig:sensor_model_noise_uncertainty}Sensor Model including Noise and Dynamical Uncertainty}
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:org3758b1e}
For reason of space, the blocks \(\hat{G}_i\) and \(\hat{G}_i^{-1}\) are omitted. For reason of space, the blocks \(\hat{G}_i\) and \(\hat{G}_i^{-1}\) are omitted.
@ -418,11 +439,12 @@ The estimate \(\hat{x}\) of \(x\)
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/sensor_fusion_arch_full.pdf} \includegraphics[scale=1]{figs/sensor_fusion_arch_full.pdf}
\caption{\label{fig:sensor_fusion_arch_full}Super Sensor Fusion with both sensor noise and sensor model uncertainty} \caption{\label{fig:sensor_fusion_arch_full}Super Sensor Fusion with both sensor noise and sensor model uncertainty}
\end{figure} \end{figure}
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\label{sec:org06317f4}
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. 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.
@ -452,52 +474,59 @@ The synthesis objective is to:
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/mixed_h2_hinf_synthesis.pdf} \includegraphics[scale=1]{figs/mixed_h2_hinf_synthesis.pdf}
\caption{\label{fig:mixed_h2_hinf_synthesis}Generalized plant \(P_{\mathcal{H}_2/\mathcal{H}_\infty}\) used for the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of complementary filters} \caption{\label{fig:mixed_h2_hinf_synthesis}Generalized plant \(P_{\mathcal{H}_2/\matlcal{H}_\infty}\) used for the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of complementary filters}
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:org42ee165}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/htwo_hinf_comp_filters.pdf} \includegraphics[scale=1]{figs/htwo_hinf_comp_filters.pdf}
\caption{\label{fig:htwo_hinf_comp_filters}Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis} \caption{\label{fig:htwo_hinf_comp_filters}Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/psd_sensors_htwo_hinf_synthesis.pdf} \includegraphics[scale=1]{figs/psd_sensors_htwo_hinf_synthesis.pdf}
\caption{\label{fig:psd_sensors_htwo_hinf_synthesis}Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis} \caption{\label{fig:psd_sensors_htwo_hinf_synthesis}Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/super_sensor_time_domain_h2_hinf.pdf} \includegraphics[scale=1]{figs/super_sensor_time_domain_h2_hinf.pdf}
\caption{\label{fig:super_sensor_time_domain_h2_hinf}Noise of individual sensors and noise of the super sensor} \caption{\label{fig:super_sensor_time_domain_h2_hinf}Noise of individual sensors and noise of the super sensor}
\end{figure} \end{figure}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[scale=1,scale=1]{figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf} \includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.pdf}
\caption{\label{fig:super_sensor_dynamical_uncertainty_Htwo_Hinf}Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \caption{\label{fig:super_sensor_dynamical_uncertainty_Htwo_Hinf}Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\end{figure} \end{figure}
\section{Experimental Validation} \section{Experimental Validation}
\label{sec:orge381a2a}
\label{sec:experimental_validation} \label{sec:experimental_validation}
\subsection{Experimental Setup} \subsection{Experimental Setup}
\label{sec:org473ab00}
\subsection{Sensor Noise and Dynamical Uncertainty} \subsection{Sensor Noise and Dynamical Uncertainty}
\label{sec:orgebcb65d}
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\label{sec:org0259d19}
\subsection{Super Sensor Noise and Dynamical Uncertainty} \subsection{Super Sensor Noise and Dynamical Uncertainty}
\label{sec:orgdb5d29f}
\section{Conclusion} \section{Conclusion}
\label{sec:org07df454}
\label{sec:conclusion} \label{sec:conclusion}
\section{Acknowledgment} \section{Acknowledgment}
\label{sec:org7b7e461}
\bibliographystyle{IEEEtran}
\bibliography{ref} \bibliography{ref}
\end{document} \end{document}

550
tikz/index.html Normal file
View File

@ -0,0 +1,550 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-11-12 jeu. 10:42 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Robust and Optimal Sensor Fusion - Tikz Figures</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>MathJax = {
tex: {
tags: 'ams',
macros: {bm: ["\\boldsymbol{#1}",1],}
}
};
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Robust and Optimal Sensor Fusion - Tikz Figures</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgde691cc">1. Sensor Model - Noise</a></li>
<li><a href="#org3e09ccd">2. Sensor Fusion Architecture</a></li>
<li><a href="#org98e222d">3. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li>
<li><a href="#org7b2be36">4. Sensor Model - Uncertainty</a></li>
<li><a href="#org201b812">5. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
<li><a href="#org295dc2a">6. Uncertainty set of the super sensor dynamics</a></li>
<li><a href="#orgff8ec60">7. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
<li><a href="#org77a9624">8. Sensor Model - Noise and Uncertainty</a></li>
<li><a href="#org194f17b">9. Sensor fusion architecture with sensor dynamics uncertainty and noise</a></li>
<li><a href="#org92adb06">10. Mixed H2/H-Infinity Synthesis</a></li>
</ul>
</div>
</div>
<p>
Configuration file is accessible <a href="config.html">here</a>.
</p>
<div id="outline-container-orgde691cc" class="outline-2">
<h2 id="orgde691cc"><span class="section-number-2">1</span> Sensor Model - Noise</h2>
<div class="outline-text-2" id="text-1">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
<span class="org-font-latex-sedate">\node</span>[block, right=0.5 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (G1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1.north east) {Sensor};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org540adfc" class="figure">
<p><img src="figs/sensor_model_noise.png" alt="sensor_model_noise.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Sensor Model (<a href="./figs/sensor_model_noise.png">png</a>, <a href="./figs/sensor_model_noise.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org3e09ccd" class="outline-2">
<h2 id="org3e09ccd"><span class="section-number-2">2</span> Sensor Fusion Architecture</h2>
<div class="outline-text-2" id="text-2">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
<span class="org-font-latex-sedate">\node</span>[addb, above right=1.05 and 0.6 of x](add1){};
<span class="org-font-latex-sedate">\node</span>[addb, below right=1.05 and 0.6 of x](add2){};
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add2](G2){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add2](N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=5.3 of x](add){};
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (add1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (add2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (G1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add2.east) -- (G2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N2.south) -- (add2.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N2.north)node[above left](n2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G2.east) -- (Ginv2.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv1.east) -- (H1.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv2.east) -- (H2.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H1) -| (add.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2) -| (add.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(n1.north east-|add.east)+(0.2, 0.2)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n2.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org896d2c3" class="figure">
<p><img src="figs/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Sensor Fusion Architecture (<a href="./figs/sensor_fusion_noise_arch.png">png</a>, <a href="./figs/sensor_fusion_noise_arch.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org98e222d" class="outline-2">
<h2 id="org98e222d"><span class="section-number-2">3</span> Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</h2>
<div class="outline-text-2" id="text-3">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[block={3.5cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2}$</span>};
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of N1] (sub) {};
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (N2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputu-|sub) node[branch]{} -- (sub.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub.east) -- (N1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.east) -- (output1)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N2.east) -- (output2)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgc47567c" class="figure">
<p><img src="figs/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters (<a href="./figs/h_two_optimal_fusion.png">png</a>, <a href="./figs/h_two_optimal_fusion.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org7b2be36" class="outline-2">
<h2 id="org7b2be36"><span class="section-number-2">4</span> Sensor Model - Uncertainty</h2>
<div class="outline-text-2" id="text-4">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[branch](b1){};
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](add1){};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add1](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(g1)+(-0.6,0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (add1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (g1) |- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (delta1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta1.east) -| (add1.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (G1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org3c8c032" class="figure">
<p><img src="figs/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Sensor Model including dynamical uncertainty (<a href="./figs/sensor_model_uncertainty.png">png</a>, <a href="./figs/sensor_model_uncertainty.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org201b812" class="outline-2">
<h2 id="org201b812"><span class="section-number-2">5</span> Sensor fusion architecture with sensor dynamics uncertainty</h2>
<div class="outline-text-2" id="text-5">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
<span class="org-font-latex-sedate">\node</span>[branch, above right=0.8 and 0.2 of x](b1){};
<span class="org-font-latex-sedate">\node</span>[branch, below right=0.8 and 0.2 of x](b2){};
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b2](W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W2](delta2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](add1){};
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b2-|delta2](add2){};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add1](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add2](G2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=6.8 of x](add){};
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (add1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (add2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (G1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add2.east) -- (G2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (b1) |- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (b2) |- (W2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (delta1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W2.east) -- (delta2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta1.east) -| (add1.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta2.east) -| (add2.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G2.east) -- (Ginv2.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv1.east) -- (H1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv2.east) -- (H2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H1.east) -| (add.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2.east) -| (add.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(H2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(delta1.north east-|add.east)+(0.2, 0.3)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b2|-W2.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org4ef6676" class="figure">
<p><img src="figs/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Sensor fusion architecture with sensor dynamics uncertainty (<a href="./figs/sensor_fusion_arch_uncertainty.png">png</a>, <a href="./figs/sensor_fusion_arch_uncertainty.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org295dc2a" class="outline-2">
<h2 id="org295dc2a"><span class="section-number-2">6</span> Uncertainty set of the super sensor dynamics</h2>
<div class="outline-text-2" id="text-6">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(4, 0)}]
<span class="org-comment">% Uncertainty Circle</span>
<span class="org-font-latex-sedate">\node</span>[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
<span class="org-font-latex-sedate">\path</span>[draw, dotted] (0, 0) circle [radius=1.0];
<span class="org-font-latex-sedate">\path</span>[draw, dashed] (135:1.0) circle [radius=0.8];
<span class="org-comment">% Center of Circle</span>
<span class="org-font-latex-sedate">\node</span>[below] at (0, 0){<span class="org-font-latex-math">$1$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-&gt;, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
<span class="org-font-latex-sedate">\draw</span>[&lt;-&gt;, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
<span class="org-font-latex-sedate">\node</span>[] (l1) at (2, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1|$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;, dashed, out=-90, in=0] (l1.south) to (r1);
<span class="org-font-latex-sedate">\node</span>[] (l2) at (-2.5, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2|$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;, dashed, out=0, in=-180] (l2.east) to (r2);
<span class="org-font-latex-sedate">\draw</span>[&lt;-&gt;, dashed] (0, 0) -- coordinate[near end](r3) ++(200:1.8);
<span class="org-font-latex-sedate">\node</span>[] (l3) at (-2.5, -1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1| + |W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2|$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;, dashed, out=90, in=-90] (l3.north) to (r3);
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-comment">% Real and Imaginary Axis</span>
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (0, -1.7) -- (0, 1.7) node[below left]{Im};
<span class="org-font-latex-sedate">\draw</span>[dashed] (0, 0) -- (tangent cs:node=c,point={(0, 0)},solution=2);
<span class="org-font-latex-sedate">\draw</span>[dashed] (1, 0) arc (0:28:1) node[midway, right]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"> </span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\phi</span></span><span class="org-font-latex-math">$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgb4e2baf" class="figure">
<p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Uncertainty region of the super sensor dynamics in the complex plane (solid circle), of the sensor 1 (dotted circle) and of the sensor 2 (dashed circle) (<a href="./figs/uncertainty_set_super_sensor.png">png</a>, <a href="./figs/uncertainty_set_super_sensor.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-orgff8ec60" class="outline-2">
<h2 id="orgff8ec60"><span class="section-number-2">7</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2>
<div class="outline-text-2" id="text-7">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>};
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W1] (Wu1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W2] (Wu2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of Wu1] (sub) {};
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (Wu2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputu-|sub) node[branch]{} -- (sub.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub.east) -- (Wu1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu1.east) -- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu2.east) -- (W2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (output1)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W2.east) -- (output2)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="orgcfbd978" class="figure">
<p><img src="figs/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters (<a href="./figs/h_infinity_robust_fusion.png">png</a>, <a href="./figs/h_infinity_robust_fusion.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org77a9624" class="outline-2">
<h2 id="org77a9624"><span class="section-number-2">8</span> Sensor Model - Noise and Uncertainty</h2>
<div class="outline-text-2" id="text-8">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[branch, right=0.4 of add1](b1){};
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](addu){};
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of addu](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (addu.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (b1) |- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (delta1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta1.east) -| (addu.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (addu.east) -- (G1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.south) -- (add1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (G1.east) -- (Ginv1.west)node[above left]{<span class="org-font-latex-math">$v</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Ginv1.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1.north east) {Sensor};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org121d2ed" class="figure">
<p><img src="figs/sensor_model_noise_uncertainty.png" alt="sensor_model_noise_uncertainty.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Sensor Model (<a href="./figs/sensor_model_noise_uncertainty.png">png</a>, <a href="./figs/sensor_model_noise_uncertainty.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org194f17b" class="outline-2">
<h2 id="org194f17b"><span class="section-number-2">9</span> Sensor fusion architecture with sensor dynamics uncertainty and noise</h2>
<div class="outline-text-2" id="text-9">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
<span class="org-font-latex-sedate">\node</span>[addb, above right=1.0 and 0.6 of x](addn1){};
<span class="org-font-latex-sedate">\node</span>[addb, below right=1.0 and 0.6 of x](addn2){};
<span class="org-font-latex-sedate">\node</span>[addb, right=2.6 of addn1](add1){};
<span class="org-font-latex-sedate">\node</span>[addb, right=2.6 of addn2](add2){};
<span class="org-font-latex-sedate">\node</span>[block, above left=0.2 and 0 of add1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above left=0.2 and 0 of add2](delta2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of delta1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of delta2](W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of addn1](N1) {<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of addn2](N2) {<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of add1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of add2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb, right=5.8 of x](add){};
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (addn1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (x.center) |- (addn2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(addn1-|W1.west)+(-0.3, 0)$</span>)node[branch](S1){} |- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(addn2-|W2.west)+(-0.3, 0)$</span>)node[branch](S2){} |- (W2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (delta1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W2.east) -- (delta2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta1.east) -| (add1.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (delta2.east) -| (add2.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (addn1.east) -- (add1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (addn2.east) -- (add2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (H1.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add2.east) -- (H2.west)node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N1.north)node[above left](n1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[&lt;-] (N2.north)node[above left](n2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tilde</span></span><span class="org-font-latex-math">{n}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>} -- ++(0, 0.4);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.south) -- (addn1.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N2.south) -- (addn2.north)node[above left]{<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H1.east) -| (add.north);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2.east) -| (add.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(H2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(n1.north east-|add.east)+(0.2, 0.3)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
<span class="org-font-latex-sedate">\node</span>[fit={(n1.north west) (<span class="org-font-latex-math">$(add1.south -| add1.east) + (0.1, -0.1)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
<span class="org-font-latex-sedate">\node</span>[fit={(n2.north west) (<span class="org-font-latex-math">$(add2.south -| add2.east) + (0.1, -0.1)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org257652d" class="figure">
<p><img src="figs/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Sensor fusion architecture with sensor dynamics uncertainty (<a href="./figs/sensor_fusion_arch_full.png">png</a>, <a href="./figs/sensor_fusion_arch_full.pdf">pdf</a>).</p>
</div>
</div>
</div>
<div id="outline-container-org92adb06" class="outline-2">
<h2 id="org92adb06"><span class="section-number-2">10</span> Mixed H2/H-Infinity Synthesis</h2>
<div class="outline-text-2" id="text-10">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{4.0cm}, fill=black!20!white, dashed] (P) {};
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2/</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>};
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.85!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.25!(P.north west) + (-0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.85!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.65!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output3) at (<span class="org-font-latex-math">$(P.south east)!0.45!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (output4) at (<span class="org-font-latex-math">$(P.south east)!0.25!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.10!(P.north east) + ( 0.7, 0)$</span>);
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output1] (W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output2] (W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W1] (Wu1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W2] (Wu2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=0.4 of Wu1] (sub1) {};
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output3] (N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
<span class="org-font-latex-sedate">\node</span>[block, left=1.0 of output4] (N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=0.6 of N1] (sub2) {};
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (N2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputu-|sub1) node[branch]{} -- (sub1.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputu-|sub2) node[branch]{} -- (sub2.south);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub1|-W2) node[branch]{} -- (Wu2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub1.east) -- (Wu1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub2.east) -- (N1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (<span class="org-font-latex-math">$(sub1.west)+(-0.6, 0)$</span>) node[branch](w_branch){} |- (<span class="org-font-latex-math">$(outputv)+(-0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$v$</span>} |- (H2.east);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (w_branch|-sub2) node[branch]{} -- (sub2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu1.east) -- (W1.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu2.east) -- (W2.west);
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (output1)node[above left](z1){<span class="org-font-latex-math">$z_1$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (W2.east) -- (output2)node[above left](z2){<span class="org-font-latex-math">$z_2$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N1.east) -- (output3)node[above left](z3){<span class="org-font-latex-math">$z_3$</span>};
<span class="org-font-latex-sedate">\draw</span>[-&gt;] (N2.east) -- (output4)node[above left](z4){<span class="org-font-latex-math">$z_4$</span>};
<span class="org-font-latex-sedate">\draw</span> [decoration={brace, raise=5pt}, decorate] (z1.north east) -- node[right=6pt]{<span class="org-font-latex-math">$z_{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}_</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>} (z2.south east);
<span class="org-font-latex-sedate">\draw</span> [decoration={brace, raise=5pt}, decorate] (z3.north east) -- node[right=6pt]{<span class="org-font-latex-math">$z_{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}_2}$</span>} (z4.south east);
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
</pre>
</div>
<div id="org7166204" class="figure">
<p><img src="figs/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Mixed H2/H-Infinity Synthesis (<a href="./figs/mixed_h2_hinf_synthesis.png">png</a>, <a href="./figs/mixed_h2_hinf_synthesis.pdf">pdf</a>).</p>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2020-11-12 jeu. 10:42</p>
</div>
</body>
</html>