Compare commits

...

2 Commits

Author SHA1 Message Date
54ab59a00c Use online CSS and JS 2020-11-12 10:42:27 +01:00
ef78808a52 Add Mohit as author 2020-10-26 21:36:20 +01:00
19 changed files with 820 additions and 2330 deletions

View File

@ -1,184 +0,0 @@
.org-bold { /* bold */ font-weight: bold; }
.org-bold-italic { /* bold-italic */ font-weight: bold; font-style: italic; }
.org-buffer-menu-buffer { /* buffer-menu-buffer */ font-weight: bold; }
.org-builtin { /* font-lock-builtin-face */ color: #7a378b; }
.org-button { /* button */ text-decoration: underline; }
.org-calendar-today { /* calendar-today */ text-decoration: underline; }
.org-change-log-acknowledgement { /* change-log-acknowledgement */ color: #b22222; }
.org-change-log-conditionals { /* change-log-conditionals */ color: #a0522d; }
.org-change-log-date { /* change-log-date */ color: #8b2252; }
.org-change-log-email { /* change-log-email */ color: #a0522d; }
.org-change-log-file { /* change-log-file */ color: #0000ff; }
.org-change-log-function { /* change-log-function */ color: #a0522d; }
.org-change-log-list { /* change-log-list */ color: #a020f0; }
.org-change-log-name { /* change-log-name */ color: #008b8b; }
.org-comint-highlight-input { /* comint-highlight-input */ font-weight: bold; }
.org-comint-highlight-prompt { /* comint-highlight-prompt */ color: #00008b; }
.org-comment { /* font-lock-comment-face */ color: #999988; font-style: italic; }
.org-comment-delimiter { /* font-lock-comment-delimiter-face */ color: #999988; font-style: italic; }
.org-completions-annotations { /* completions-annotations */ font-style: italic; }
.org-completions-common-part { /* completions-common-part */ color: #000000; background-color: #ffffff; }
.org-completions-first-difference { /* completions-first-difference */ font-weight: bold; }
.org-constant { /* font-lock-constant-face */ color: #008b8b; }
.org-diary { /* diary */ color: #ff0000; }
.org-diff-context { /* diff-context */ color: #7f7f7f; }
.org-diff-file-header { /* diff-file-header */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-function { /* diff-function */ background-color: #cccccc; }
.org-diff-header { /* diff-header */ background-color: #cccccc; }
.org-diff-hunk-header { /* diff-hunk-header */ background-color: #cccccc; }
.org-diff-index { /* diff-index */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-nonexistent { /* diff-nonexistent */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-refine-change { /* diff-refine-change */ background-color: #d9d9d9; }
.org-dired-directory { /* dired-directory */ color: #0000ff; }
.org-dired-flagged { /* dired-flagged */ color: #ff0000; font-weight: bold; }
.org-dired-header { /* dired-header */ color: #228b22; }
.org-dired-ignored { /* dired-ignored */ color: #7f7f7f; }
.org-dired-mark { /* dired-mark */ color: #008b8b; }
.org-dired-marked { /* dired-marked */ color: #ff0000; font-weight: bold; }
.org-dired-perm-write { /* dired-perm-write */ color: #b22222; }
.org-dired-symlink { /* dired-symlink */ color: #a020f0; }
.org-dired-warning { /* dired-warning */ color: #ff0000; font-weight: bold; }
.org-doc { /* font-lock-doc-face */ color: #8b2252; }
.org-escape-glyph { /* escape-glyph */ color: #a52a2a; }
.org-file-name-shadow { /* file-name-shadow */ color: #7f7f7f; }
.org-flyspell-duplicate { /* flyspell-duplicate */ color: #cdad00; font-weight: bold; text-decoration: underline; }
.org-flyspell-incorrect { /* flyspell-incorrect */ color: #ff4500; font-weight: bold; text-decoration: underline; }
.org-fringe { /* fringe */ background-color: #f2f2f2; }
.org-function-name { /* font-lock-function-name-face */ color: teal; }
.org-header-line { /* header-line */ color: #333333; background-color: #e5e5e5; }
.org-help-argument-name { /* help-argument-name */ font-style: italic; }
.org-highlight { /* highlight */ background-color: #b4eeb4; }
.org-holiday { /* holiday */ background-color: #ffc0cb; }
.org-isearch { /* isearch */ color: #b0e2ff; background-color: #cd00cd; }
.org-isearch-fail { /* isearch-fail */ background-color: #ffc1c1; }
.org-italic { /* italic */ font-style: italic; }
.org-keyword { /* font-lock-keyword-face */ color: #0086b3; }
.org-lazy-highlight { /* lazy-highlight */ background-color: #afeeee; }
.org-link { /* link */ color: #0000ff; text-decoration: underline; }
.org-link-visited { /* link-visited */ color: #8b008b; text-decoration: underline; }
.org-log-edit-header { /* log-edit-header */ color: #a020f0; }
.org-log-edit-summary { /* log-edit-summary */ color: #0000ff; }
.org-log-edit-unknown-header { /* log-edit-unknown-header */ color: #b22222; }
.org-match { /* match */ background-color: #ffff00; }
.org-next-error { /* next-error */ background-color: #eedc82; }
.org-nobreak-space { /* nobreak-space */ color: #a52a2a; text-decoration: underline; }
.org-org-archived { /* org-archived */ color: #7f7f7f; }
.org-org-block { /* org-block */ color: #7f7f7f; }
.org-org-block-begin-line { /* org-block-begin-line */ color: #b22222; }
.org-org-block-end-line { /* org-block-end-line */ color: #b22222; }
.org-org-checkbox { /* org-checkbox */ font-weight: bold; }
.org-org-checkbox-statistics-done { /* org-checkbox-statistics-done */ color: #228b22; font-weight: bold; }
.org-org-checkbox-statistics-todo { /* org-checkbox-statistics-todo */ color: #ff0000; font-weight: bold; }
.org-org-clock-overlay { /* org-clock-overlay */ background-color: #ffff00; }
.org-org-code { /* org-code */ color: #7f7f7f; }
.org-org-column { /* org-column */ background-color: #e5e5e5; }
.org-org-column-title { /* org-column-title */ background-color: #e5e5e5; font-weight: bold; text-decoration: underline; }
.org-org-date { /* org-date */ color: #a020f0; text-decoration: underline; }
.org-org-document-info { /* org-document-info */ color: #191970; }
.org-org-document-info-keyword { /* org-document-info-keyword */ color: #7f7f7f; }
.org-org-document-title { /* org-document-title */ color: #191970; font-size: 144%; font-weight: bold; }
.org-org-done { /* org-done */ color: #228b22; font-weight: bold; }
.org-org-drawer { /* org-drawer */ color: #0000ff; }
.org-org-ellipsis { /* org-ellipsis */ color: #b8860b; text-decoration: underline; }
.org-org-footnote { /* org-footnote */ color: #a020f0; text-decoration: underline; }
.org-org-formula { /* org-formula */ color: #b22222; }
.org-org-headline-done { /* org-headline-done */ color: #bc8f8f; }
.org-org-hide { /* org-hide */ color: #ffffff; }
.org-org-latex-and-export-specials { /* org-latex-and-export-specials */ color: #8b4513; }
.org-org-level-1 { /* org-level-1 */ color: #0000ff; }
.org-org-level-2 { /* org-level-2 */ color: #a0522d; }
.org-org-level-3 { /* org-level-3 */ color: #a020f0; }
.org-org-level-4 { /* org-level-4 */ color: #b22222; }
.org-org-level-5 { /* org-level-5 */ color: #228b22; }
.org-org-level-6 { /* org-level-6 */ color: #008b8b; }
.org-org-level-7 { /* org-level-7 */ color: #7a378b; }
.org-org-level-8 { /* org-level-8 */ color: #8b2252; }
.org-org-link { /* org-link */ color: #0000ff; text-decoration: underline; }
.org-org-meta-line { /* org-meta-line */ color: #b22222; }
.org-org-mode-line-clock { /* org-mode-line-clock */ color: #000000; background-color: #bfbfbf; }
.org-org-mode-line-clock-overrun { /* org-mode-line-clock-overrun */ color: #000000; background-color: #ff0000; }
.org-org-quote { /* org-quote */ color: #7f7f7f; }
.org-org-scheduled { /* org-scheduled */ color: #006400; }
.org-org-scheduled-previously { /* org-scheduled-previously */ color: #b22222; }
.org-org-scheduled-today { /* org-scheduled-today */ color: #006400; }
.org-org-sexp-date { /* org-sexp-date */ color: #a020f0; }
.org-org-special-keyword { /* org-special-keyword */ color: #a020f0; }
.org-org-table { /* org-table */ color: #0000ff; }
.org-org-tag { /* org-tag */ font-weight: bold; }
.org-org-target { /* org-target */ text-decoration: underline; }
.org-org-time-grid { /* org-time-grid */ color: #b8860b; }
.org-org-todo { /* org-todo */ color: #ff0000; font-weight: bold; }
.org-org-upcoming-deadline { /* org-upcoming-deadline */ color: #b22222; }
.org-org-verbatim { /* org-verbatim */ color: #7f7f7f; }
.org-org-verse { /* org-verse */ color: #7f7f7f; }
.org-org-warning { /* org-warning */ color: #ff0000; font-weight: bold; }
.org-outline-1 { /* outline-1 */ color: #0000ff; }
.org-outline-2 { /* outline-2 */ color: #a0522d; }
.org-outline-3 { /* outline-3 */ color: #a020f0; }
.org-outline-4 { /* outline-4 */ color: #b22222; }
.org-outline-5 { /* outline-5 */ color: #228b22; }
.org-outline-6 { /* outline-6 */ color: #008b8b; }
.org-outline-7 { /* outline-7 */ color: #7a378b; }
.org-outline-8 { /* outline-8 */ color: #8b2252; }
.org-preprocessor { /* font-lock-preprocessor-face */ color: #7a378b; }
.org-query-replace { /* query-replace */ color: #b0e2ff; background-color: #cd00cd; }
.org-regexp-grouping-backslash { /* font-lock-regexp-grouping-backslash */ font-weight: bold; }
.org-regexp-grouping-construct { /* font-lock-regexp-grouping-construct */ font-weight: bold; }
.org-region { /* region */ background-color: #eedc82; }
.org-secondary-selection { /* secondary-selection */ background-color: #ffff00; }
.org-shadow { /* shadow */ color: #7f7f7f; }
.org-show-paren-match { /* show-paren-match */ background-color: #40e0d0; }
.org-show-paren-mismatch { /* show-paren-mismatch */ color: #ffffff; background-color: #a020f0; }
.org-string { /* font-lock-string-face */ color: #dd1144; }
.org-tool-bar { /* tool-bar */ color: #000000; background-color: #bfbfbf; }
.org-tooltip { /* tooltip */ color: #000000; background-color: #ffffe0; }
.org-trailing-whitespace { /* trailing-whitespace */ background-color: #ff0000; }
.org-type { /* font-lock-type-face */ color: #228b22; }
.org-underline { /* underline */ text-decoration: underline; }
.org-variable-name { /* font-lock-variable-name-face */ color: teal; }
.org-warning { /* font-lock-warning-face */ color: #ff0000; font-weight: bold; }
.org-widget-button { /* widget-button */ font-weight: bold; }
.org-widget-button-pressed { /* widget-button-pressed */ color: #ff0000; }
.org-widget-documentation { /* widget-documentation */ color: #006400; }
.org-widget-field { /* widget-field */ background-color: #d9d9d9; }
.org-widget-inactive { /* widget-inactive */ color: #7f7f7f; }
.org-widget-single-line-field { /* widget-single-line-field */ background-color: #d9d9d9; }
pre {background-color:#FFFFFF;}
pre span.org-builtin {color:#006FE0;font-weight:bold;}
pre span.org-string {color:#008000;}
pre span.org-doc {color:#008000;}
pre span.org-keyword {color:#0000FF;}
pre span.org-variable-name {color:#BA36A5;}
pre span.org-function-name {color:#006699;}
pre span.org-type {color:#6434A3;}
pre span.org-preprocessor {color:#808080;font-weight:bold;}
pre span.org-constant {color:#D0372D;}
pre span.org-comment-delimiter {color:#8D8D84;}
pre span.org-comment {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-1 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-2 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-3 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-4 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-5 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-6 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-7 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-8 {color:#8D8D84;font-style:italic}
pre span.org-outshine-level-9 {color:#8D8D84;font-style:italic}
pre span.org-rainbow-delimiters-depth-1 {color:#707183;}
pre span.org-rainbow-delimiters-depth-2 {color:#7388d6;}
pre span.org-rainbow-delimiters-depth-3 {color:#909183;}
pre span.org-rainbow-delimiters-depth-4 {color:#709870;}
pre span.org-rainbow-delimiters-depth-5 {color:#907373;}
pre span.org-rainbow-delimiters-depth-6 {color:#6276ba;}
pre span.org-rainbow-delimiters-depth-7 {color:#858580;}
pre span.org-rainbow-delimiters-depth-8 {color:#80a880;}
pre span.org-rainbow-delimiters-depth-9 {color:#887070;}
pre span.org-sh-quoted-exec {color:#FF1493;}
pre span.org-diff-added {color:#008000;}
pre span.org-diff-changed {color:#0000FF;}
pre span.org-diff-header {color:#800000;}
pre span.org-diff-hunk-header {color:#990099;}
pre span.org-diff-none {color:#545454;}
pre span.org-diff-removed {color:#A60000;}

File diff suppressed because it is too large Load Diff

View File

@ -3,17 +3,13 @@
"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>
<!-- 2020-10-05 lun. 18:15 --> <!-- 2020-11-12 jeu. 10:41 -->
<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</title> <title>Robust and Optimal Sensor Fusion</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/jquery.stickytableheaders.min.js"></script>
<script src="js/readtheorg.js"></script>
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="org-div-home-and-up">
@ -31,27 +27,27 @@
</p> </p>
</blockquote> </blockquote>
<div id="outline-container-orgf5cebab" class="outline-2"> <div id="outline-container-orgbc87854" class="outline-2">
<h2 id="orgf5cebab">Paper (<a href="paper/paper.pdf">link</a>)</h2> <h2 id="orgbc87854">Paper (<a href="paper/paper.pdf">link</a>)</h2>
<div class="outline-text-2" id="text-orgf5cebab"> <div class="outline-text-2" id="text-orgbc87854">
<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-orga3b4ff3" class="outline-2"> <div id="outline-container-orgcdc5736" class="outline-2">
<h2 id="orga3b4ff3">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2> <h2 id="orgcdc5736">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-orga3b4ff3"> <div class="outline-text-2" id="text-orgcdc5736">
<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-orgfc34d9c" class="outline-2"> <div id="outline-container-orge2a1477" class="outline-2">
<h2 id="orgfc34d9c">Tikz Figures (<a href="tikz/index.html">link</a>)</h2> <h2 id="orge2a1477">Tikz Figures (<a href="tikz/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-orgfc34d9c"> <div class="outline-text-2" id="text-orge2a1477">
<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>
@ -59,9 +55,9 @@ All the figures for the paper have been generated using <a href="https://sourcef
</div> </div>
<div id="outline-container-orge0bb111" class="outline-2"> <div id="outline-container-org9317a8a" class="outline-2">
<h2 id="orge0bb111">Cite this paper</h2> <h2 id="org9317a8a">Cite this paper</h2>
<div class="outline-text-2" id="text-orge0bb111"> <div class="outline-text-2" id="text-org9317a8a">
<p> <p>
To cite this paper use the following bibtex code. To cite this paper use the following bibtex code.
</p> </p>

View File

@ -5,15 +5,11 @@
#+HTML_LINK_HOME: ../index.html #+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html #+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+OPTIONS: toc:nil #+OPTIONS: toc:nil
#+OPTIONS: html-postamble:nil #+OPTIONS: html-postamble:nil
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="js/readtheorg.js"></script>
:END: :END:
#+begin_quote #+begin_quote

7
js/bootstrap.min.js vendored

File diff suppressed because one or more lines are too long

4
js/jquery.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
!function(a,b){"use strict";function c(c,g){var h=this;h.$el=a(c),h.el=c,h.id=e++,h.$window=a(b),h.$document=a(document),h.$el.bind("destroyed",a.proxy(h.teardown,h)),h.$clonedHeader=null,h.$originalHeader=null,h.isSticky=!1,h.hasBeenSticky=!1,h.leftOffset=null,h.topOffset=null,h.init=function(){h.$el.each(function(){var b=a(this);b.css("padding",0),h.$originalHeader=a("thead:first",this),h.$clonedHeader=h.$originalHeader.clone(),b.trigger("clonedHeader."+d,[h.$clonedHeader]),h.$clonedHeader.addClass("tableFloatingHeader"),h.$clonedHeader.css("display","none"),h.$originalHeader.addClass("tableFloatingHeaderOriginal"),h.$originalHeader.after(h.$clonedHeader),h.$printStyle=a('<style type="text/css" media="print">.tableFloatingHeader{display:none !important;}.tableFloatingHeaderOriginal{position:static !important;}</style>'),a("head").append(h.$printStyle)}),h.setOptions(g),h.updateWidth(),h.toggleHeaders(),h.bind()},h.destroy=function(){h.$el.unbind("destroyed",h.teardown),h.teardown()},h.teardown=function(){h.isSticky&&h.$originalHeader.css("position","static"),a.removeData(h.el,"plugin_"+d),h.unbind(),h.$clonedHeader.remove(),h.$originalHeader.removeClass("tableFloatingHeaderOriginal"),h.$originalHeader.css("visibility","visible"),h.$printStyle.remove(),h.el=null,h.$el=null},h.bind=function(){h.$scrollableArea.on("scroll."+d,h.toggleHeaders),h.isWindowScrolling||(h.$window.on("scroll."+d+h.id,h.setPositionValues),h.$window.on("resize."+d+h.id,h.toggleHeaders)),h.$scrollableArea.on("resize."+d,h.toggleHeaders),h.$scrollableArea.on("resize."+d,h.updateWidth)},h.unbind=function(){h.$scrollableArea.off("."+d,h.toggleHeaders),h.isWindowScrolling||(h.$window.off("."+d+h.id,h.setPositionValues),h.$window.off("."+d+h.id,h.toggleHeaders)),h.$scrollableArea.off("."+d,h.updateWidth)},h.toggleHeaders=function(){h.$el&&h.$el.each(function(){var b,c=a(this),d=h.isWindowScrolling?isNaN(h.options.fixedOffset)?h.options.fixedOffset.outerHeight():h.options.fixedOffset:h.$scrollableArea.offset().top+(isNaN(h.options.fixedOffset)?0:h.options.fixedOffset),e=c.offset(),f=h.$scrollableArea.scrollTop()+d,g=h.$scrollableArea.scrollLeft(),i=h.isWindowScrolling?f>e.top:d>e.top,j=(h.isWindowScrolling?f:0)<e.top+c.height()-h.$clonedHeader.height()-(h.isWindowScrolling?0:d);i&&j?(b=e.left-g+h.options.leftOffset,h.$originalHeader.css({position:"fixed","margin-top":h.options.marginTop,left:b,"z-index":3}),h.leftOffset=b,h.topOffset=d,h.$clonedHeader.css("display",""),h.isSticky||(h.isSticky=!0,h.updateWidth()),h.setPositionValues()):h.isSticky&&(h.$originalHeader.css("position","static"),h.$clonedHeader.css("display","none"),h.isSticky=!1,h.resetWidth(a("td,th",h.$clonedHeader),a("td,th",h.$originalHeader)))})},h.setPositionValues=function(){var a=h.$window.scrollTop(),b=h.$window.scrollLeft();!h.isSticky||0>a||a+h.$window.height()>h.$document.height()||0>b||b+h.$window.width()>h.$document.width()||h.$originalHeader.css({top:h.topOffset-(h.isWindowScrolling?0:a),left:h.leftOffset-(h.isWindowScrolling?0:b)})},h.updateWidth=function(){if(h.isSticky){h.$originalHeaderCells||(h.$originalHeaderCells=a("th,td",h.$originalHeader)),h.$clonedHeaderCells||(h.$clonedHeaderCells=a("th,td",h.$clonedHeader));var b=h.getWidth(h.$clonedHeaderCells);h.setWidth(b,h.$clonedHeaderCells,h.$originalHeaderCells),h.$originalHeader.css("width",h.$clonedHeader.width())}},h.getWidth=function(c){var d=[];return c.each(function(c){var e,f=a(this);if("border-box"===f.css("box-sizing"))e=f[0].getBoundingClientRect().width;else{var g=a("th",h.$originalHeader);if("collapse"===g.css("border-collapse"))if(b.getComputedStyle)e=parseFloat(b.getComputedStyle(this,null).width);else{var i=parseFloat(f.css("padding-left")),j=parseFloat(f.css("padding-right")),k=parseFloat(f.css("border-width"));e=f.outerWidth()-i-j-k}else e=f.width()}d[c]=e}),d},h.setWidth=function(a,b,c){b.each(function(b){var d=a[b];c.eq(b).css({"min-width":d,"max-width":d})})},h.resetWidth=function(b,c){b.each(function(b){var d=a(this);c.eq(b).css({"min-width":d.css("min-width"),"max-width":d.css("max-width")})})},h.setOptions=function(c){h.options=a.extend({},f,c),h.$scrollableArea=a(h.options.scrollableArea),h.isWindowScrolling=h.$scrollableArea[0]===b},h.updateOptions=function(a){h.setOptions(a),h.unbind(),h.bind(),h.updateWidth(),h.toggleHeaders()},h.init()}var d="stickyTableHeaders",e=0,f={fixedOffset:0,leftOffset:0,marginTop:0,scrollableArea:b};a.fn[d]=function(b){return this.each(function(){var e=a.data(this,"plugin_"+d);e?"string"==typeof b?e[b].apply(e):e.updateOptions(b):"destroy"!==b&&a.data(this,"plugin_"+d,new c(this,b))})}}(jQuery,window);

View File

@ -1,85 +0,0 @@
$(function() {
$('.note').before("<p class='admonition-title note'>Note</p>");
$('.seealso').before("<p class='admonition-title seealso'>See also</p>");
$('.warning').before("<p class='admonition-title warning'>Warning</p>");
$('.caution').before("<p class='admonition-title caution'>Caution</p>");
$('.attention').before("<p class='admonition-title attention'>Attention</p>");
$('.tip').before("<p class='admonition-title tip'>Tip</p>");
$('.important').before("<p class='admonition-title important'>Important</p>");
$('.hint').before("<p class='admonition-title hint'>Hint</p>");
$('.error').before("<p class='admonition-title error'>Error</p>");
$('.danger').before("<p class='admonition-title danger'>Danger</p>");
});
$( document ).ready(function() {
// Shift nav in mobile when clicking the menu.
$(document).on('click', "[data-toggle='wy-nav-top']", function() {
$("[data-toggle='wy-nav-shift']").toggleClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
});
// Close menu when you click a link.
$(document).on('click', ".wy-menu-vertical .current ul li a", function() {
$("[data-toggle='wy-nav-shift']").removeClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
});
$(document).on('click', "[data-toggle='rst-current-version']", function() {
$("[data-toggle='rst-versions']").toggleClass("shift-up");
});
// Make tables responsive
$("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
});
$( document ).ready(function() {
$('#text-table-of-contents ul').first().addClass('nav');
// ScrollSpy also requires that we use
// a Bootstrap nav component.
$('body').scrollspy({target: '#text-table-of-contents'});
// add sticky table headers
$('table').stickyTableHeaders();
// set the height of tableOfContents
var $postamble = $('#postamble');
var $tableOfContents = $('#table-of-contents');
$tableOfContents.css({paddingBottom: $postamble.outerHeight()});
// add TOC button
var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
$('#content').prepend(toggleSidebar);
// add close button when sidebar showed in mobile screen
var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
var tocTitle = $('#table-of-contents').find('h2');
tocTitle.append(closeBtn);
});
window.SphinxRtdTheme = (function (jquery) {
var stickyNav = (function () {
var navBar,
win,
stickyNavCssClass = 'stickynav',
applyStickNav = function () {
if (navBar.height() <= win.height()) {
navBar.addClass(stickyNavCssClass);
} else {
navBar.removeClass(stickyNavCssClass);
}
},
enable = function () {
applyStickNav();
win.on('resize', applyStickNav);
},
init = function () {
navBar = jquery('nav.wy-nav-side:first');
win = jquery(window);
};
jquery(init);
return {
enable : enable
};
}());
return {
StickyNav : stickyNav
};
}($));

File diff suppressed because one or more lines are too long

View File

@ -3,18 +3,13 @@
"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>
<!-- 2020-10-05 lun. 15:08 --> <!-- 2020-11-12 jeu. 10:42 -->
<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 - Matlab Computation</title> <title>Robust and Optimal Sensor Fusion - Matlab Computation</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.stickytableheaders.min.js"></script>
<script src="../js/readtheorg.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/dreampulse/computer-modern-web-font/master/fonts.css">
<script>MathJax = { <script>MathJax = {
tex: { tex: {
tags: 'ams', tags: 'ams',
@ -26,59 +21,59 @@
</head> </head>
<body> <body>
<div id="org-div-home-and-up"> <div id="org-div-home-and-up">
<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"> </div><div id="content">
<h1 class="title">Robust and Optimal Sensor Fusion - Matlab Computation</h1> <h1 class="title">Robust and Optimal Sensor Fusion - Matlab Computation</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org0a492b7">1. Sensor Description</a> <li><a href="#orgb558a2f">1. Sensor Description</a>
<ul> <ul>
<li><a href="#org9575585">1.1. Sensor Dynamics</a></li> <li><a href="#org2e756d8">1.1. Sensor Dynamics</a></li>
<li><a href="#orgec8c81d">1.2. Sensor Model Uncertainty</a></li> <li><a href="#orgf266a4b">1.2. Sensor Model Uncertainty</a></li>
<li><a href="#org81d9a34">1.3. Sensor Noise</a></li> <li><a href="#orgb768f02">1.3. Sensor Noise</a></li>
<li><a href="#org4e23f6c">1.4. Save Model</a></li> <li><a href="#org426c21e">1.4. Save Model</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org2cab1a2">2. Introduction to Sensor Fusion</a> <li><a href="#orgce0ac83">2. Introduction to Sensor Fusion</a>
<ul> <ul>
<li><a href="#org0cbc92d">2.1. Sensor Fusion Architecture</a></li> <li><a href="#orgbb36114">2.1. Sensor Fusion Architecture</a></li>
<li><a href="#orge9e0bd4">2.2. Super Sensor Noise</a></li> <li><a href="#org3a4f4b8">2.2. Super Sensor Noise</a></li>
<li><a href="#orgefb4347">2.3. Super Sensor Dynamical Uncertainty</a></li> <li><a href="#org3f0594e">2.3. Super Sensor Dynamical Uncertainty</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org5896b60">3. Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</a> <li><a href="#org096192f">3. Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</a>
<ul> <ul>
<li><a href="#orgf5a8a84">3.1. \(\mathcal{H}_2\) Synthesis</a></li> <li><a href="#org9188eae">3.1. \(\mathcal{H}_2\) Synthesis</a></li>
<li><a href="#org72159df">3.2. Super Sensor Noise</a></li> <li><a href="#org6d6d909">3.2. Super Sensor Noise</a></li>
<li><a href="#org8ffba19">3.3. Discrepancy between sensor dynamics and model</a></li> <li><a href="#org850d99e">3.3. Discrepancy between sensor dynamics and model</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org26ea7b1">4. Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</a> <li><a href="#org6d1270a">4. Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</a>
<ul> <ul>
<li><a href="#org8dfd9d2">4.1. Weighting Function used to bound the super sensor uncertainty</a></li> <li><a href="#orgc5a0221">4.1. Weighting Function used to bound the super sensor uncertainty</a></li>
<li><a href="#org7422ade">4.2. \(\mathcal{H}_\infty\) Synthesis</a></li> <li><a href="#org334f826">4.2. \(\mathcal{H}_\infty\) Synthesis</a></li>
<li><a href="#orga0267c6">4.3. Super sensor uncertainty</a></li> <li><a href="#org211e432">4.3. Super sensor uncertainty</a></li>
<li><a href="#org979fede">4.4. Super sensor noise</a></li> <li><a href="#org7672e0e">4.4. Super sensor noise</a></li>
<li><a href="#orgda33992">4.5. Conclusion</a></li> <li><a href="#orgdcb47cf">4.5. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org15afe90">5. Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</a> <li><a href="#org49a7cc2">5. Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</a>
<ul> <ul>
<li><a href="#org0f81a91">5.1. Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</a></li> <li><a href="#org7ed8ed7">5.1. Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</a></li>
<li><a href="#org417aabd">5.2. Obtained Super Sensor&rsquo;s noise</a></li> <li><a href="#orgfb839cf">5.2. Obtained Super Sensor&rsquo;s noise</a></li>
<li><a href="#org2dce888">5.3. Obtained Super Sensor&rsquo;s Uncertainty</a></li> <li><a href="#orgb8596ac">5.3. Obtained Super Sensor&rsquo;s Uncertainty</a></li>
<li><a href="#org47da78c">5.4. Conclusion</a></li> <li><a href="#orgfcfa8a2">5.4. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org0afe5ef">6. Matlab Functions</a> <li><a href="#orgf267700">6. Matlab Functions</a>
<ul> <ul>
<li><a href="#orge81e522">6.1. <code>createWeight</code></a></li> <li><a href="#org005db82">6.1. <code>createWeight</code></a></li>
<li><a href="#org37ec2b4">6.2. <code>plotMagUncertainty</code></a></li> <li><a href="#org816b32a">6.2. <code>plotMagUncertainty</code></a></li>
<li><a href="#org9f73572">6.3. <code>plotPhaseUncertainty</code></a></li> <li><a href="#orgddb3773">6.3. <code>plotPhaseUncertainty</code></a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -89,27 +84,27 @@
This document is arranged as follows: This document is arranged as follows:
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>Section <a href="#orgee25d07">1</a>: the sensors are described (dynamics, uncertainty, noise)</li> <li>Section <a href="#org3cd5225">1</a>: the sensors are described (dynamics, uncertainty, noise)</li>
<li>Section <a href="#orga64daad">2</a>: the sensor fusion architecture is described and the super sensor noise and dynamical uncertainty are derived</li> <li>Section <a href="#orge87db28">2</a>: the sensor fusion architecture is described and the super sensor noise and dynamical uncertainty are derived</li>
<li>Section <a href="#orgdd6b9ce">3</a>: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor&rsquo;s noise is minimized</li> <li>Section <a href="#orgbaf748a">3</a>: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor&rsquo;s noise is minimized</li>
<li>Section <a href="#org5d93f37">4</a>: the \(\mathcal{H}_\infty\) synthesis is used to design complementary filters such that the super sensor&rsquo;s uncertainty is bonded to acceptable values</li> <li>Section <a href="#orgea66128">4</a>: the \(\mathcal{H}_\infty\) synthesis is used to design complementary filters such that the super sensor&rsquo;s uncertainty is bonded to acceptable values</li>
<li>Section <a href="#org9f98c16">5</a>: the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is used to both limit the super sensor&rsquo;s uncertainty and to lower the RMS value of the super sensor&rsquo;s noise</li> <li>Section <a href="#org2aeafb3">5</a>: the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is used to both limit the super sensor&rsquo;s uncertainty and to lower the RMS value of the super sensor&rsquo;s noise</li>
<li>Section <a href="#orgf41dc8d">6</a>: Matlab functions used for the analysis are described</li> <li>Section <a href="#org50a28ec">6</a>: Matlab functions used for the analysis are described</li>
</ul> </ul>
<div id="outline-container-org0a492b7" class="outline-2"> <div id="outline-container-orgb558a2f" class="outline-2">
<h2 id="org0a492b7"><span class="section-number-2">1</span> Sensor Description</h2> <h2 id="orgb558a2f"><span class="section-number-2">1</span> Sensor Description</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
<a id="orgee25d07"></a> <a id="org3cd5225"></a>
</p> </p>
<p> <p>
In Figure <a href="#org35e2340">1</a> is shown a schematic of a sensor model that is used in the following study. In Figure <a href="#orgd79f98f">1</a> is shown a schematic of a sensor model that is used in the following study.
In this example, the measured quantity \(x\) is the velocity of an object. In this example, the measured quantity \(x\) is the velocity of an object.
</p> </p>
<table id="org2fe6194" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org5aafbb9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Description of signals in Figure <a href="#org35e2340">1</a></caption> <caption class="t-above"><span class="table-number">Table 1:</span> Description of signals in Figure <a href="#orgd79f98f">1</a></caption>
<colgroup> <colgroup>
<col class="org-left" /> <col class="org-left" />
@ -176,8 +171,8 @@ In this example, the measured quantity \(x\) is the velocity of an object.
</tbody> </tbody>
</table> </table>
<table id="org281ecb3" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org3780b2b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Description of Systems in Figure <a href="#org35e2340">1</a></caption> <caption class="t-above"><span class="table-number">Table 2:</span> Description of Systems in Figure <a href="#orgd79f98f">1</a></caption>
<colgroup> <colgroup>
<col class="org-left" /> <col class="org-left" />
@ -221,18 +216,18 @@ In this example, the measured quantity \(x\) is the velocity of an object.
</table> </table>
<div id="org35e2340" class="figure"> <div id="orgd79f98f" class="figure">
<p><img src="figs-paper/sensor_model_noise_uncertainty.png" alt="sensor_model_noise_uncertainty.png" /> <p><img src="figs-paper/sensor_model_noise_uncertainty.png" alt="sensor_model_noise_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Sensor Model</p> <p><span class="figure-number">Figure 1: </span>Sensor Model</p>
</div> </div>
</div> </div>
<div id="outline-container-org9575585" class="outline-3"> <div id="outline-container-org2e756d8" class="outline-3">
<h3 id="org9575585"><span class="section-number-3">1.1</span> Sensor Dynamics</h3> <h3 id="org2e756d8"><span class="section-number-3">1.1</span> Sensor Dynamics</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
<a id="org52415aa"></a> <a id="org01c4832"></a>
Let&rsquo;s consider two sensors measuring the velocity of an object. Let&rsquo;s consider two sensors measuring the velocity of an object.
</p> </p>
@ -263,14 +258,14 @@ G2 = g_pos<span class="org-type">/</span>s<span class="org-type">/</span>(1 <spa
<p> <p>
These nominal dynamics are also taken as the model of the sensor dynamics. These nominal dynamics are also taken as the model of the sensor dynamics.
The true sensor dynamics has some uncertainty associated to it and described in section <a href="#orgf04439d">1.2</a>. The true sensor dynamics has some uncertainty associated to it and described in section <a href="#org3943238">1.2</a>.
</p> </p>
<p> <p>
Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org2d1ef0b">2</a>. Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org355b3fc">2</a>.
</p> </p>
<div id="org2d1ef0b" class="figure"> <div id="org355b3fc" class="figure">
<p><img src="figs/sensors_nominal_dynamics.png" alt="sensors_nominal_dynamics.png" /> <p><img src="figs/sensors_nominal_dynamics.png" alt="sensors_nominal_dynamics.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Sensor nominal dynamics from the velocity of the object to the output voltage</p> <p><span class="figure-number">Figure 2: </span>Sensor nominal dynamics from the velocity of the object to the output voltage</p>
@ -278,12 +273,12 @@ Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org2d1
</div> </div>
</div> </div>
<div id="outline-container-orgec8c81d" class="outline-3"> <div id="outline-container-orgf266a4b" class="outline-3">
<h3 id="orgec8c81d"><span class="section-number-3">1.2</span> Sensor Model Uncertainty</h3> <h3 id="orgf266a4b"><span class="section-number-3">1.2</span> Sensor Model Uncertainty</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
<a id="orgf04439d"></a> <a id="org3943238"></a>
The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure <a href="#org35e2340">1</a>). The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure <a href="#orgd79f98f">1</a>).
</p> </p>
<p> <p>
@ -295,7 +290,7 @@ The true sensor dynamics \(G_i(s)\) is then described by \eqref{eq:sensor_dynami
\end{equation} \end{equation}
<p> <p>
The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure <a href="#org557e062">3</a>. The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure <a href="#org2530a6e">3</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">W1 = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-string">'w0'</span>, 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>3, <span class="org-string">'G0'</span>, 2, <span class="org-string">'G1'</span>, 0.1, <span class="org-string">'Gc'</span>, 1) <span class="org-type">*</span> ... <pre class="src src-matlab">W1 = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-string">'w0'</span>, 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>3, <span class="org-string">'G0'</span>, 2, <span class="org-string">'G1'</span>, 0.1, <span class="org-string">'Gc'</span>, 1) <span class="org-type">*</span> ...
@ -306,18 +301,18 @@ W2 = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
</div> </div>
<p> <p>
The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure <a href="#orgc218675">4</a>. The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure <a href="#org415740c">4</a>.
</p> </p>
<div id="org557e062" class="figure"> <div id="org2530a6e" class="figure">
<p><img src="figs/sensors_uncertainty_weights.png" alt="sensors_uncertainty_weights.png" /> <p><img src="figs/sensors_uncertainty_weights.png" alt="sensors_uncertainty_weights.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)</p> <p><span class="figure-number">Figure 3: </span>Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)</p>
</div> </div>
<div id="orgc218675" class="figure"> <div id="org415740c" class="figure">
<p><img src="figs/sensors_nominal_dynamics_and_uncertainty.png" alt="sensors_nominal_dynamics_and_uncertainty.png" /> <p><img src="figs/sensors_nominal_dynamics_and_uncertainty.png" alt="sensors_nominal_dynamics_and_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)</p> <p><span class="figure-number">Figure 4: </span>Nominal Sensor Dynamics \(\hat{G}_i\) (solid lines) as well as the spread of the dynamical uncertainty (background color)</p>
@ -325,12 +320,12 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
</div> </div>
</div> </div>
<div id="outline-container-org81d9a34" class="outline-3"> <div id="outline-container-orgb768f02" class="outline-3">
<h3 id="org81d9a34"><span class="section-number-3">1.3</span> Sensor Noise</h3> <h3 id="orgb768f02"><span class="section-number-3">1.3</span> Sensor Noise</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
<a id="org71b587e"></a> <a id="orgfd557c8"></a>
The noise of the sensors \(n_i\) are modelled by shaping a white noise with unitary PSD \(\tilde{n}_i\) \eqref{eq:unitary_noise_psd} with a LTI transfer function \(N_i(s)\) (Figure <a href="#org35e2340">1</a>). The noise of the sensors \(n_i\) are modelled by shaping a white noise with unitary PSD \(\tilde{n}_i\) \eqref{eq:unitary_noise_psd} with a LTI transfer function \(N_i(s)\) (Figure <a href="#orgd79f98f">1</a>).
</p> </p>
\begin{equation} \begin{equation}
\Phi_{\tilde{n}_i}(\omega) = 1 \label{eq:unitary_noise_psd} \Phi_{\tilde{n}_i}(\omega) = 1 \label{eq:unitary_noise_psd}
@ -344,7 +339,7 @@ The Power Spectral Density of the sensor noise \(\Phi_{n_i}(\omega)\) is then co
\end{equation} \end{equation}
<p> <p>
The weights \(N_1\) and \(N_2\) representing the amplitude spectral density of the sensor noises are defined below and shown in Figure <a href="#org51f9788">5</a>. The weights \(N_1\) and \(N_2\) representing the amplitude spectral density of the sensor noises are defined below and shown in Figure <a href="#org5e2cd13">5</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">omegac = 0.15<span class="org-type">*</span>2<span class="org-type">*</span><span class="org-constant">pi</span>; G0 = 1e<span class="org-type">-</span>1; Ginf = 1e<span class="org-type">-</span>6; <pre class="src src-matlab">omegac = 0.15<span class="org-type">*</span>2<span class="org-type">*</span><span class="org-constant">pi</span>; G0 = 1e<span class="org-type">-</span>1; Ginf = 1e<span class="org-type">-</span>6;
@ -356,7 +351,7 @@ N2 = (Ginf<span class="org-type">*</span>s<span class="org-type">/</span>omegac
</div> </div>
<div id="org51f9788" class="figure"> <div id="org5e2cd13" class="figure">
<p><img src="figs/sensors_noise.png" alt="sensors_noise.png" /> <p><img src="figs/sensors_noise.png" alt="sensors_noise.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)</p> <p><span class="figure-number">Figure 5: </span>Amplitude spectral density of the sensors \(\sqrt{\Phi_{n_i}(\omega)} = |N_i(j\omega)|\)</p>
@ -364,8 +359,8 @@ N2 = (Ginf<span class="org-type">*</span>s<span class="org-type">/</span>omegac
</div> </div>
</div> </div>
<div id="outline-container-org4e23f6c" class="outline-3"> <div id="outline-container-org426c21e" class="outline-3">
<h3 id="org4e23f6c"><span class="section-number-3">1.4</span> Save Model</h3> <h3 id="org426c21e"><span class="section-number-3">1.4</span> Save Model</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<p> <p>
All the dynamical systems representing the sensors are saved for further use. All the dynamical systems representing the sensors are saved for further use.
@ -379,27 +374,27 @@ All the dynamical systems representing the sensors are saved for further use.
</div> </div>
</div> </div>
<div id="outline-container-org2cab1a2" class="outline-2"> <div id="outline-container-orgce0ac83" class="outline-2">
<h2 id="org2cab1a2"><span class="section-number-2">2</span> Introduction to Sensor Fusion</h2> <h2 id="orgce0ac83"><span class="section-number-2">2</span> Introduction to Sensor Fusion</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
<a id="orga64daad"></a> <a id="orge87db28"></a>
</p> </p>
</div> </div>
<div id="outline-container-org0cbc92d" class="outline-3"> <div id="outline-container-orgbb36114" class="outline-3">
<h3 id="org0cbc92d"><span class="section-number-3">2.1</span> Sensor Fusion Architecture</h3> <h3 id="orgbb36114"><span class="section-number-3">2.1</span> Sensor Fusion Architecture</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
<a id="org31e00a0"></a> <a id="org80d2a51"></a>
</p> </p>
<p> <p>
The two sensors presented in Section <a href="#orgee25d07">1</a> are now merged together using complementary filters \(H_1(s)\) and \(H_2(s)\) to form a super sensor (Figure <a href="#org48a16fd">6</a>). The two sensors presented in Section <a href="#org3cd5225">1</a> are now merged together using complementary filters \(H_1(s)\) and \(H_2(s)\) to form a super sensor (Figure <a href="#orgffed4ec">6</a>).
</p> </p>
<div id="org48a16fd" class="figure"> <div id="orgffed4ec" class="figure">
<p><img src="figs-paper/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" /> <p><img src="figs-paper/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Sensor Fusion Architecture</p> <p><span class="figure-number">Figure 6: </span>Sensor Fusion Architecture</p>
@ -423,11 +418,11 @@ The super sensor estimate \(\hat{x}\) is given by \eqref{eq:super_sensor_estimat
</div> </div>
</div> </div>
<div id="outline-container-orge9e0bd4" class="outline-3"> <div id="outline-container-org3a4f4b8" class="outline-3">
<h3 id="orge9e0bd4"><span class="section-number-3">2.2</span> Super Sensor Noise</h3> <h3 id="org3a4f4b8"><span class="section-number-3">2.2</span> Super Sensor Noise</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
<a id="orgff055a3"></a> <a id="org3e73362"></a>
</p> </p>
<p> <p>
@ -458,15 +453,15 @@ And the Root Mean Square (RMS) value of the super sensor noise \(\sigma_n\) is g
</div> </div>
</div> </div>
<div id="outline-container-orgefb4347" class="outline-3"> <div id="outline-container-org3f0594e" class="outline-3">
<h3 id="orgefb4347"><span class="section-number-3">2.3</span> Super Sensor Dynamical Uncertainty</h3> <h3 id="org3f0594e"><span class="section-number-3">2.3</span> Super Sensor Dynamical Uncertainty</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
<a id="org859b213"></a> <a id="orgd73f82f"></a>
</p> </p>
<p> <p>
If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not being perfectly equal to our model \(\hat{G}_i\)) that we model by the use of multiplicative uncertainty (Figure <a href="#org54538d7">7</a>), the super sensor dynamics is then equals to: If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not being perfectly equal to our model \(\hat{G}_i\)) that we model by the use of multiplicative uncertainty (Figure <a href="#org05e7617">7</a>), the super sensor dynamics is then equals to:
</p> </p>
\begin{equation} \begin{equation}
@ -478,18 +473,18 @@ If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not
\end{equation} \end{equation}
<div id="org54538d7" class="figure"> <div id="org05e7617" class="figure">
<p><img src="figs-paper/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" /> <p><img src="figs-paper/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Sensor Model including Dynamical Uncertainty</p> <p><span class="figure-number">Figure 7: </span>Sensor Model including Dynamical Uncertainty</p>
</div> </div>
<p> <p>
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 <a href="#orgb11ef23">8</a>. 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 <a href="#org1ff6ff8">8</a>.
</p> </p>
<div id="orgb11ef23" class="figure"> <div id="org1ff6ff8" class="figure">
<p><img src="figs-paper/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" /> <p><img src="figs-paper/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Super Sensor model uncertainty displayed in the complex plane</p> <p><span class="figure-number">Figure 8: </span>Super Sensor model uncertainty displayed in the complex plane</p>
@ -498,11 +493,11 @@ The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at freque
</div> </div>
</div> </div>
<div id="outline-container-org5896b60" class="outline-2"> <div id="outline-container-org096192f" class="outline-2">
<h2 id="org5896b60"><span class="section-number-2">3</span> Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</h2> <h2 id="org096192f"><span class="section-number-2">3</span> Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
<a id="orgdd6b9ce"></a> <a id="orgbaf748a"></a>
</p> </p>
<p> <p>
In this section, the complementary filters \(H_1(s)\) and \(H_2(s)\) are designed in order to minimize the RMS value of super sensor noise \(\sigma_n\). In this section, the complementary filters \(H_1(s)\) and \(H_2(s)\) are designed in order to minimize the RMS value of super sensor noise \(\sigma_n\).
@ -520,23 +515,23 @@ The RMS value of the super sensor noise is (neglecting the model uncertainty):
<p> <p>
The goal is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s) = 1\) (complementary property) and such that \(\left\| \begin{matrix} H_1 N_1 \\ H_2 N_2 \end{matrix} \right\|_2\) is minimized (minimized RMS value of the super sensor noise). The goal is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s) = 1\) (complementary property) and such that \(\left\| \begin{matrix} H_1 N_1 \\ H_2 N_2 \end{matrix} \right\|_2\) is minimized (minimized RMS value of the super sensor noise).
This is done using the \(\mathcal{H}_2\) synthesis in Section <a href="#org5bc9386">3.1</a>. This is done using the \(\mathcal{H}_2\) synthesis in Section <a href="#orgf1e20ae">3.1</a>.
</p> </p>
</div> </div>
<div id="outline-container-orgf5a8a84" class="outline-3"> <div id="outline-container-org9188eae" class="outline-3">
<h3 id="orgf5a8a84"><span class="section-number-3">3.1</span> \(\mathcal{H}_2\) Synthesis</h3> <h3 id="org9188eae"><span class="section-number-3">3.1</span> \(\mathcal{H}_2\) Synthesis</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
<a id="org5bc9386"></a> <a id="orgf1e20ae"></a>
</p> </p>
<p> <p>
Consider the generalized plant \(P_{\mathcal{H}_2}\) shown in Figure <a href="#orgd218886">9</a> and described by Equation \eqref{eq:H2_generalized_plant}. Consider the generalized plant \(P_{\mathcal{H}_2}\) shown in Figure <a href="#org95769ad">9</a> and described by Equation \eqref{eq:H2_generalized_plant}.
</p> </p>
<div id="orgd218886" class="figure"> <div id="org95769ad" class="figure">
<p><img src="figs-paper/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" /> <p><img src="figs-paper/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
</p> </p>
<p><span class="figure-number">Figure 9: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p> <p><span class="figure-number">Figure 9: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p>
@ -592,10 +587,10 @@ Finally, \(H_1(s)\) is defined as follows
</div> </div>
<p> <p>
The obtained complementary filters are shown in Figure <a href="#org8c7ba6b">10</a>. The obtained complementary filters are shown in Figure <a href="#org02514a9">10</a>.
</p> </p>
<div id="org8c7ba6b" class="figure"> <div id="org02514a9" class="figure">
<p><img src="figs/htwo_comp_filters.png" alt="htwo_comp_filters.png" /> <p><img src="figs/htwo_comp_filters.png" alt="htwo_comp_filters.png" />
</p> </p>
<p><span class="figure-number">Figure 10: </span>Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis</p> <p><span class="figure-number">Figure 10: </span>Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis</p>
@ -603,11 +598,11 @@ The obtained complementary filters are shown in Figure <a href="#org8c7ba6b">10<
</div> </div>
</div> </div>
<div id="outline-container-org72159df" class="outline-3"> <div id="outline-container-org6d6d909" class="outline-3">
<h3 id="org72159df"><span class="section-number-3">3.2</span> Super Sensor Noise</h3> <h3 id="org6d6d909"><span class="section-number-3">3.2</span> Super Sensor Noise</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<p> <p>
<a id="orgc7cc0a8"></a> <a id="org497847a"></a>
</p> </p>
<p> <p>
@ -622,13 +617,13 @@ PSD_H2 = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <span
</div> </div>
<p> <p>
The obtained ASD are shown in Figure <a href="#orge481bcd">11</a>. The obtained ASD are shown in Figure <a href="#orgd3690df">11</a>.
</p> </p>
<p> <p>
The RMS value of the individual sensors and of the super sensor are listed in Table <a href="#org3918d27">3</a>. The RMS value of the individual sensors and of the super sensor are listed in Table <a href="#org04c5321">3</a>.
</p> </p>
<table id="org3918d27" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org04c5321" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 3:</span> RMS value of the individual sensor noise and of the super sensor using the \(\mathcal{H}_2\) Synthesis</caption> <caption class="t-above"><span class="table-number">Table 3:</span> RMS value of the individual sensor noise and of the super sensor using the \(\mathcal{H}_2\) Synthesis</caption>
<colgroup> <colgroup>
@ -661,7 +656,7 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta
</table> </table>
<div id="orge481bcd" class="figure"> <div id="orgd3690df" class="figure">
<p><img src="figs/psd_sensors_htwo_synthesis.png" alt="psd_sensors_htwo_synthesis.png" /> <p><img src="figs/psd_sensors_htwo_synthesis.png" alt="psd_sensors_htwo_synthesis.png" />
</p> </p>
<p><span class="figure-number">Figure 11: </span>Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal</p> <p><span class="figure-number">Figure 11: </span>Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the optimally fused signal</p>
@ -670,19 +665,19 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta
<p> <p>
A time domain simulation is now performed. A time domain simulation is now performed.
The measured velocity \(x\) is set to be a sweep sine with an amplitude of \(0.1\ [m/s]\). The measured velocity \(x\) is set to be a sweep sine with an amplitude of \(0.1\ [m/s]\).
The velocity estimates from the two sensors and from the super sensors are shown in Figure <a href="#org9c2a7e4">12</a>. The velocity estimates from the two sensors and from the super sensors are shown in Figure <a href="#orgf112864">12</a>.
The resulting noises are displayed in Figure <a href="#org4cc42bf">13</a>. The resulting noises are displayed in Figure <a href="#org1ab022b">13</a>.
</p> </p>
<div id="org9c2a7e4" class="figure"> <div id="orgf112864" class="figure">
<p><img src="figs/super_sensor_time_domain_h2.png" alt="super_sensor_time_domain_h2.png" /> <p><img src="figs/super_sensor_time_domain_h2.png" alt="super_sensor_time_domain_h2.png" />
</p> </p>
<p><span class="figure-number">Figure 12: </span>Noise of individual sensors and noise of the super sensor</p> <p><span class="figure-number">Figure 12: </span>Noise of individual sensors and noise of the super sensor</p>
</div> </div>
<div id="org4cc42bf" class="figure"> <div id="org1ab022b" class="figure">
<p><img src="figs/sensor_noise_H2_time_domain.png" alt="sensor_noise_H2_time_domain.png" /> <p><img src="figs/sensor_noise_H2_time_domain.png" alt="sensor_noise_H2_time_domain.png" />
</p> </p>
<p><span class="figure-number">Figure 13: </span>Noise of the two sensors \(n_1, n_2\) and noise of the super sensor \(n\)</p> <p><span class="figure-number">Figure 13: </span>Noise of the two sensors \(n_1, n_2\) and noise of the super sensor \(n\)</p>
@ -690,15 +685,15 @@ The resulting noises are displayed in Figure <a href="#org4cc42bf">13</a>.
</div> </div>
</div> </div>
<div id="outline-container-org8ffba19" class="outline-3"> <div id="outline-container-org850d99e" class="outline-3">
<h3 id="org8ffba19"><span class="section-number-3">3.3</span> Discrepancy between sensor dynamics and model</h3> <h3 id="org850d99e"><span class="section-number-3">3.3</span> Discrepancy between sensor dynamics and model</h3>
<div class="outline-text-3" id="text-3-3"> <div class="outline-text-3" id="text-3-3">
<p> <p>
If we consider sensor dynamical uncertainty as explained in Section <a href="#orgf04439d">1.2</a>, we can compute what would be the super sensor dynamical uncertainty when using the complementary filters obtained using the \(\mathcal{H}_2\) Synthesis. If we consider sensor dynamical uncertainty as explained in Section <a href="#org3943238">1.2</a>, we can compute what would be the super sensor dynamical uncertainty when using the complementary filters obtained using the \(\mathcal{H}_2\) Synthesis.
</p> </p>
<p> <p>
The super sensor dynamical uncertainty is shown in Figure <a href="#org865879b">14</a>. The super sensor dynamical uncertainty is shown in Figure <a href="#org35f4dc2">14</a>.
</p> </p>
<p> <p>
@ -706,7 +701,7 @@ It is shown that the phase uncertainty is not bounded between 100Hz and 200Hz.
As a result the super sensor signal can not be used for feedback applications about 100Hz. As a result the super sensor signal can not be used for feedback applications about 100Hz.
</p> </p>
<div id="org865879b" class="figure"> <div id="org35f4dc2" class="figure">
<p><img src="figs/super_sensor_dynamical_uncertainty_H2.png" alt="super_sensor_dynamical_uncertainty_H2.png" /> <p><img src="figs/super_sensor_dynamical_uncertainty_H2.png" alt="super_sensor_dynamical_uncertainty_H2.png" />
</p> </p>
<p><span class="figure-number">Figure 14: </span>Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis</p> <p><span class="figure-number">Figure 14: </span>Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis</p>
@ -715,11 +710,11 @@ As a result the super sensor signal can not be used for feedback applications ab
</div> </div>
</div> </div>
<div id="outline-container-org26ea7b1" class="outline-2"> <div id="outline-container-org6d1270a" class="outline-2">
<h2 id="org26ea7b1"><span class="section-number-2">4</span> Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</h2> <h2 id="org6d1270a"><span class="section-number-2">4</span> Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
<a id="org5d93f37"></a> <a id="orgea66128"></a>
</p> </p>
<p> <p>
We initially considered perfectly known sensor dynamics so that it can be perfectly inverted. We initially considered perfectly known sensor dynamics so that it can be perfectly inverted.
@ -727,18 +722,18 @@ We initially considered perfectly known sensor dynamics so that it can be perfec
<p> <p>
We now take into account the fact that the sensor dynamics is only partially known. We now take into account the fact that the sensor dynamics is only partially known.
To do so, we model the uncertainty that we have on the sensor dynamics by multiplicative input uncertainty as shown in Figure <a href="#org2b71ca6">15</a>. To do so, we model the uncertainty that we have on the sensor dynamics by multiplicative input uncertainty as shown in Figure <a href="#org3a26ad3">15</a>.
</p> </p>
<div id="org2b71ca6" class="figure"> <div id="org3a26ad3" class="figure">
<p><img src="figs-paper/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" /> <p><img src="figs-paper/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 15: </span>Sensor fusion architecture with sensor dynamics uncertainty</p> <p><span class="figure-number">Figure 15: </span>Sensor fusion architecture with sensor dynamics uncertainty</p>
</div> </div>
<p> <p>
As explained in Section <a href="#orgf04439d">1.2</a>, at each frequency \(\omega\), the dynamical uncertainty of the super sensor can be represented in the complex plane by a circle with a radius equals to \(|H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)|\) and centered on 1. As explained in Section <a href="#org3943238">1.2</a>, at each frequency \(\omega\), the dynamical uncertainty of the super sensor can be represented in the complex plane by a circle with a radius equals to \(|H_1(j\omega) W_1(j\omega)| + |H_2(j\omega) W_2(j\omega)|\) and centered on 1.
</p> </p>
<p> <p>
@ -760,7 +755,7 @@ In order to specify a wanted upper bound on the dynamical uncertainty, a weight
\end{align} \end{align}
<p> <p>
The choice of \(W_u\) is presented in Section <a href="#orgefed264">4.1</a>. The choice of \(W_u\) is presented in Section <a href="#org5b00e7a">4.1</a>.
</p> </p>
@ -778,15 +773,15 @@ The objective is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s)
</p> </p>
<p> <p>
This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org2c990ce">4.2</a>. This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org7bd80be">4.2</a>.
</p> </p>
</div> </div>
<div id="outline-container-org8dfd9d2" class="outline-3"> <div id="outline-container-orgc5a0221" class="outline-3">
<h3 id="org8dfd9d2"><span class="section-number-3">4.1</span> Weighting Function used to bound the super sensor uncertainty</h3> <h3 id="orgc5a0221"><span class="section-number-3">4.1</span> Weighting Function used to bound the super sensor uncertainty</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<p> <p>
<a id="orgefed264"></a> <a id="org5b00e7a"></a>
</p> </p>
<p> <p>
@ -799,7 +794,7 @@ This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org
\end{align} \end{align}
<p> <p>
The uncertainty bounds of the two individual sensor as well as the wanted maximum uncertainty bounds of the super sensor are shown in Figure <a href="#orgdffee80">16</a>. The uncertainty bounds of the two individual sensor as well as the wanted maximum uncertainty bounds of the super sensor are shown in Figure <a href="#orge13d408">16</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -810,7 +805,7 @@ Wu = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
</div> </div>
<div id="orgdffee80" class="figure"> <div id="orge13d408" class="figure">
<p><img src="figs/weight_uncertainty_bounds_Wu.png" alt="weight_uncertainty_bounds_Wu.png" /> <p><img src="figs/weight_uncertainty_bounds_Wu.png" alt="weight_uncertainty_bounds_Wu.png" />
</p> </p>
<p><span class="figure-number">Figure 16: </span>Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)</p> <p><span class="figure-number">Figure 16: </span>Uncertainty region of the two sensors as well as the wanted maximum uncertainty of the super sensor (dashed lines)</p>
@ -818,19 +813,19 @@ Wu = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
</div> </div>
</div> </div>
<div id="outline-container-org7422ade" class="outline-3"> <div id="outline-container-org334f826" class="outline-3">
<h3 id="org7422ade"><span class="section-number-3">4.2</span> \(\mathcal{H}_\infty\) Synthesis</h3> <h3 id="org334f826"><span class="section-number-3">4.2</span> \(\mathcal{H}_\infty\) Synthesis</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
<a id="org2c990ce"></a> <a id="org7bd80be"></a>
</p> </p>
<p> <p>
The generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) Synthesis of the complementary filters is shown in Figure <a href="#org59777f5">17</a> and is described by Equation \eqref{eq:Hinf_generalized_plant}. The generalized plant \(P_{\mathcal{H}_\infty}\) used for the \(\mathcal{H}_\infty\) Synthesis of the complementary filters is shown in Figure <a href="#org461ce6a">17</a> and is described by Equation \eqref{eq:Hinf_generalized_plant}.
</p> </p>
<div id="org59777f5" class="figure"> <div id="org461ce6a" class="figure">
<p><img src="figs-paper/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" /> <p><img src="figs-paper/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" />
</p> </p>
<p><span class="figure-number">Figure 17: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p> <p><span class="figure-number">Figure 17: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p>
@ -866,7 +861,7 @@ And the \(\mathcal{H}_\infty\) synthesis is performed using the <code>hinfsyn</c
</pre> </pre>
</div> </div>
<pre class="example"> <pre class="example" id="orge32bb33">
Test bounds: 0.7071 &lt;= gamma &lt;= 1.291 Test bounds: 0.7071 &lt;= gamma &lt;= 1.291
gamma X&gt;=0 Y&gt;=0 rho(XY)&lt;1 p/f gamma X&gt;=0 Y&gt;=0 rho(XY)&lt;1 p/f
@ -897,11 +892,11 @@ The \(\mathcal{H}_\infty\) is successful as the \(\mathcal{H}_\infty\) norm of t
</div> </div>
<p> <p>
The obtained complementary filters as well as the wanted upper bounds are shown in Figure <a href="#orga1806e3">18</a>. The obtained complementary filters as well as the wanted upper bounds are shown in Figure <a href="#org938a541">18</a>.
</p> </p>
<div id="orga1806e3" class="figure"> <div id="org938a541" class="figure">
<p><img src="figs/hinf_comp_filters.png" alt="hinf_comp_filters.png" /> <p><img src="figs/hinf_comp_filters.png" alt="hinf_comp_filters.png" />
</p> </p>
<p><span class="figure-number">Figure 18: </span>Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis</p> <p><span class="figure-number">Figure 18: </span>Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis</p>
@ -909,11 +904,11 @@ The obtained complementary filters as well as the wanted upper bounds are shown
</div> </div>
</div> </div>
<div id="outline-container-orga0267c6" class="outline-3"> <div id="outline-container-org211e432" class="outline-3">
<h3 id="orga0267c6"><span class="section-number-3">4.3</span> Super sensor uncertainty</h3> <h3 id="org211e432"><span class="section-number-3">4.3</span> Super sensor uncertainty</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<p> <p>
The super sensor dynamical uncertainty is displayed in Figure <a href="#orge75f5ef">19</a>. The super sensor dynamical uncertainty is displayed in Figure <a href="#org52cdb78">19</a>.
It is confirmed that the super sensor dynamical uncertainty is less than the maximum allowed uncertainty defined by the norm of \(W_u(s)\). It is confirmed that the super sensor dynamical uncertainty is less than the maximum allowed uncertainty defined by the norm of \(W_u(s)\).
</p> </p>
@ -922,7 +917,7 @@ The \(\mathcal{H}_\infty\) synthesis thus allows to design filters such that the
</p> </p>
<div id="orge75f5ef" class="figure"> <div id="org52cdb78" class="figure">
<p><img src="figs/super_sensor_dynamical_uncertainty_Hinf.png" alt="super_sensor_dynamical_uncertainty_Hinf.png" /> <p><img src="figs/super_sensor_dynamical_uncertainty_Hinf.png" alt="super_sensor_dynamical_uncertainty_Hinf.png" />
</p> </p>
<p><span class="figure-number">Figure 19: </span>Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis</p> <p><span class="figure-number">Figure 19: </span>Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis</p>
@ -930,12 +925,12 @@ The \(\mathcal{H}_\infty\) synthesis thus allows to design filters such that the
</div> </div>
</div> </div>
<div id="outline-container-org979fede" class="outline-3"> <div id="outline-container-org7672e0e" class="outline-3">
<h3 id="org979fede"><span class="section-number-3">4.4</span> Super sensor noise</h3> <h3 id="org7672e0e"><span class="section-number-3">4.4</span> Super sensor noise</h3>
<div class="outline-text-3" id="text-4-4"> <div class="outline-text-3" id="text-4-4">
<p> <p>
We now compute the obtain Power Spectral Density of the super sensor&rsquo;s noise. We now compute the obtain Power Spectral Density of the super sensor&rsquo;s noise.
The Amplitude Spectral Densities are shown in Figure <a href="#org5aac73f">20</a>. The Amplitude Spectral Densities are shown in Figure <a href="#org06b08df">20</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -947,18 +942,18 @@ PSD_Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <spa
</div> </div>
<p> <p>
The obtained RMS of the super sensor noise in the \(\mathcal{H}_2\) and \(\mathcal{H}_\infty\) case are shown in Table <a href="#org3e08452">4</a>. The obtained RMS of the super sensor noise in the \(\mathcal{H}_2\) and \(\mathcal{H}_\infty\) case are shown in Table <a href="#org3cf92ce">4</a>.
As expected, the super sensor obtained from the \(\mathcal{H}_\infty\) synthesis is much noisier than the super sensor obtained from the \(\mathcal{H}_2\) synthesis. As expected, the super sensor obtained from the \(\mathcal{H}_\infty\) synthesis is much noisier than the super sensor obtained from the \(\mathcal{H}_2\) synthesis.
</p> </p>
<div id="org5aac73f" class="figure"> <div id="org06b08df" class="figure">
<p><img src="figs/psd_sensors_hinf_synthesis.png" alt="psd_sensors_hinf_synthesis.png" /> <p><img src="figs/psd_sensors_hinf_synthesis.png" alt="psd_sensors_hinf_synthesis.png" />
</p> </p>
<p><span class="figure-number">Figure 20: </span>Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the</p> <p><span class="figure-number">Figure 20: </span>Power Spectral Density of the estimated \(\hat{x}\) using the two sensors alone and using the \(\mathcal{H}_\infty\) synthesis</p>
</div> </div>
<table id="org3e08452" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org3cf92ce" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 4:</span> Comparison of the obtained RMS noise of the super sensor</caption> <caption class="t-above"><span class="table-number">Table 4:</span> Comparison of the obtained RMS noise of the super sensor</caption>
<colgroup> <colgroup>
@ -987,8 +982,8 @@ As expected, the super sensor obtained from the \(\mathcal{H}_\infty\) synthesis
</div> </div>
</div> </div>
<div id="outline-container-orgda33992" class="outline-3"> <div id="outline-container-orgdcb47cf" class="outline-3">
<h3 id="orgda33992"><span class="section-number-3">4.5</span> Conclusion</h3> <h3 id="orgdcb47cf"><span class="section-number-3">4.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-5"> <div class="outline-text-3" id="text-4-5">
<p> <p>
Using the \(\mathcal{H}_\infty\) synthesis, the dynamical uncertainty of the super sensor can be bounded to acceptable values. Using the \(\mathcal{H}_\infty\) synthesis, the dynamical uncertainty of the super sensor can be bounded to acceptable values.
@ -1001,22 +996,22 @@ However, the RMS of the super sensor noise is not optimized as it was the case w
</div> </div>
</div> </div>
<div id="outline-container-org15afe90" class="outline-2"> <div id="outline-container-org49a7cc2" class="outline-2">
<h2 id="org15afe90"><span class="section-number-2">5</span> Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</h2> <h2 id="org49a7cc2"><span class="section-number-2">5</span> Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
<p> <p>
<a id="org9f98c16"></a> <a id="org2aeafb3"></a>
</p> </p>
<p> <p>
The (optima) \(\mathcal{H}_2\) synthesis and the (robust) \(\mathcal{H}_\infty\) synthesis are now combined to form an Optimal and Robust synthesis of complementary filters for sensor fusion. The (optima) \(\mathcal{H}_2\) synthesis and the (robust) \(\mathcal{H}_\infty\) synthesis are now combined to form an Optimal and Robust synthesis of complementary filters for sensor fusion.
</p> </p>
<p> <p>
The sensor fusion architecture is shown in Figure <a href="#org3cc874e">21</a> (\(\hat{G}_i\) are omitted for space reasons). The sensor fusion architecture is shown in Figure <a href="#orgd633d12">21</a> (\(\hat{G}_i\) are omitted for space reasons).
</p> </p>
<div id="org3cc874e" class="figure"> <div id="orgd633d12" class="figure">
<p><img src="figs-paper/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" /> <p><img src="figs-paper/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" />
</p> </p>
<p><span class="figure-number">Figure 21: </span>Sensor fusion architecture with sensor dynamics uncertainty</p> <p><span class="figure-number">Figure 21: </span>Sensor fusion architecture with sensor dynamics uncertainty</p>
@ -1031,18 +1026,18 @@ The goal is to design complementary filters such that:
</ul> </ul>
<p> <p>
To do so, we can use the Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis presented in Section <a href="#orgbbc8594">5.1</a>. To do so, we can use the Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis presented in Section <a href="#org669093b">5.1</a>.
</p> </p>
</div> </div>
<div id="outline-container-org0f81a91" class="outline-3"> <div id="outline-container-org7ed8ed7" class="outline-3">
<h3 id="org0f81a91"><span class="section-number-3">5.1</span> Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</h3> <h3 id="org7ed8ed7"><span class="section-number-3">5.1</span> Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</h3>
<div class="outline-text-3" id="text-5-1"> <div class="outline-text-3" id="text-5-1">
<p> <p>
<a id="orgbbc8594"></a> <a id="org669093b"></a>
</p> </p>
<p> <p>
The synthesis architecture that is used here is shown in Figure <a href="#orga971cdb">22</a>. The synthesis architecture that is used here is shown in Figure <a href="#orgc870005">22</a>.
</p> </p>
<p> <p>
@ -1054,7 +1049,7 @@ The filter \(H_2(s)\) is synthesized such that it:
</ul> </ul>
<div id="orga971cdb" class="figure"> <div id="orgc870005" class="figure">
<p><img src="figs-paper/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" /> <p><img src="figs-paper/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
</p> </p>
<p><span class="figure-number">Figure 22: </span>Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</p> <p><span class="figure-number">Figure 22: </span>Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</p>
@ -1098,11 +1093,11 @@ And the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is performed.
</div> </div>
<p> <p>
The obtained complementary filters are shown in Figure <a href="#org30e8a3f">23</a>. The obtained complementary filters are shown in Figure <a href="#orgf37f308">23</a>.
</p> </p>
<div id="org30e8a3f" class="figure"> <div id="orgf37f308" class="figure">
<p><img src="figs/htwo_hinf_comp_filters.png" alt="htwo_hinf_comp_filters.png" /> <p><img src="figs/htwo_hinf_comp_filters.png" alt="htwo_hinf_comp_filters.png" />
</p> </p>
<p><span class="figure-number">Figure 23: </span>Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis</p> <p><span class="figure-number">Figure 23: </span>Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis</p>
@ -1110,19 +1105,19 @@ The obtained complementary filters are shown in Figure <a href="#org30e8a3f">23<
</div> </div>
</div> </div>
<div id="outline-container-org417aabd" class="outline-3"> <div id="outline-container-orgfb839cf" class="outline-3">
<h3 id="org417aabd"><span class="section-number-3">5.2</span> Obtained Super Sensor&rsquo;s noise</h3> <h3 id="orgfb839cf"><span class="section-number-3">5.2</span> Obtained Super Sensor&rsquo;s noise</h3>
<div class="outline-text-3" id="text-5-2"> <div class="outline-text-3" id="text-5-2">
<p> <p>
The Amplitude Spectral Density of the super sensor&rsquo;s noise is shown in Figure <a href="#orgfdfbf76">24</a>. The Amplitude Spectral Density of the super sensor&rsquo;s noise is shown in Figure <a href="#orgb3c92e4">24</a>.
</p> </p>
<p> <p>
A time domain simulation is shown in Figure <a href="#orgdf5905f">25</a>. A time domain simulation is shown in Figure <a href="#org4a0db9b">25</a>.
</p> </p>
<p> <p>
The RMS values of the super sensor noise for the presented three synthesis are listed in Table <a href="#org3b7df55">5</a>. The RMS values of the super sensor noise for the presented three synthesis are listed in Table <a href="#org3b10edf">5</a>.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -1134,20 +1129,20 @@ PSD_H2Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <s
</div> </div>
<div id="orgfdfbf76" class="figure"> <div id="orgb3c92e4" class="figure">
<p><img src="figs/psd_sensors_htwo_hinf_synthesis.png" alt="psd_sensors_htwo_hinf_synthesis.png" /> <p><img src="figs/psd_sensors_htwo_hinf_synthesis.png" alt="psd_sensors_htwo_hinf_synthesis.png" />
</p> </p>
<p><span class="figure-number">Figure 24: </span>Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis</p> <p><span class="figure-number">Figure 24: </span>Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis</p>
</div> </div>
<div id="orgdf5905f" class="figure"> <div id="org4a0db9b" class="figure">
<p><img src="figs/super_sensor_time_domain_h2_hinf.png" alt="super_sensor_time_domain_h2_hinf.png" /> <p><img src="figs/super_sensor_time_domain_h2_hinf.png" alt="super_sensor_time_domain_h2_hinf.png" />
</p> </p>
<p><span class="figure-number">Figure 25: </span>Noise of individual sensors and noise of the super sensor</p> <p><span class="figure-number">Figure 25: </span>Noise of individual sensors and noise of the super sensor</p>
</div> </div>
<table id="org3b7df55" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <table id="org3b10edf" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 5:</span> Comparison of the obtained RMS noise of the super sensor</caption> <caption class="t-above"><span class="table-number">Table 5:</span> Comparison of the obtained RMS noise of the super sensor</caption>
<colgroup> <colgroup>
@ -1181,15 +1176,15 @@ PSD_H2Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <s
</div> </div>
</div> </div>
<div id="outline-container-org2dce888" class="outline-3"> <div id="outline-container-orgb8596ac" class="outline-3">
<h3 id="org2dce888"><span class="section-number-3">5.3</span> Obtained Super Sensor&rsquo;s Uncertainty</h3> <h3 id="orgb8596ac"><span class="section-number-3">5.3</span> Obtained Super Sensor&rsquo;s Uncertainty</h3>
<div class="outline-text-3" id="text-5-3"> <div class="outline-text-3" id="text-5-3">
<p> <p>
The uncertainty on the super sensor&rsquo;s dynamics is shown in Figure <a href="#orgb2d28c5">26</a>. The uncertainty on the super sensor&rsquo;s dynamics is shown in Figure <a href="#org11fe014">26</a>.
</p> </p>
<div id="orgb2d28c5" class="figure"> <div id="org11fe014" class="figure">
<p><img src="figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.png" alt="super_sensor_dynamical_uncertainty_Htwo_Hinf.png" /> <p><img src="figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.png" alt="super_sensor_dynamical_uncertainty_Htwo_Hinf.png" />
</p> </p>
<p><span class="figure-number">Figure 26: </span>Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</p> <p><span class="figure-number">Figure 26: </span>Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</p>
@ -1197,8 +1192,8 @@ The uncertainty on the super sensor&rsquo;s dynamics is shown in Figure <a href=
</div> </div>
</div> </div>
<div id="outline-container-org47da78c" class="outline-3"> <div id="outline-container-orgfcfa8a2" class="outline-3">
<h3 id="org47da78c"><span class="section-number-3">5.4</span> Conclusion</h3> <h3 id="orgfcfa8a2"><span class="section-number-3">5.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-4"> <div class="outline-text-3" id="text-5-4">
<p> <p>
The mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of the complementary filters allows to: The mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of the complementary filters allows to:
@ -1211,18 +1206,18 @@ The mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of the complementary fi
</div> </div>
</div> </div>
<div id="outline-container-org0afe5ef" class="outline-2"> <div id="outline-container-orgf267700" class="outline-2">
<h2 id="org0afe5ef"><span class="section-number-2">6</span> Matlab Functions</h2> <h2 id="orgf267700"><span class="section-number-2">6</span> Matlab Functions</h2>
<div class="outline-text-2" id="text-6"> <div class="outline-text-2" id="text-6">
<p> <p>
<a id="orgf41dc8d"></a> <a id="org50a28ec"></a>
</p> </p>
</div> </div>
<div id="outline-container-orge81e522" class="outline-3"> <div id="outline-container-org005db82" class="outline-3">
<h3 id="orge81e522"><span class="section-number-3">6.1</span> <code>createWeight</code></h3> <h3 id="org005db82"><span class="section-number-3">6.1</span> <code>createWeight</code></h3>
<div class="outline-text-3" id="text-6-1"> <div class="outline-text-3" id="text-6-1">
<p> <p>
<a id="org89bad6d"></a> <a id="orgb602691"></a>
</p> </p>
<p> <p>
@ -1274,11 +1269,11 @@ This Matlab function is accessible <a href="src/createWeight.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-org37ec2b4" class="outline-3"> <div id="outline-container-org816b32a" class="outline-3">
<h3 id="org37ec2b4"><span class="section-number-3">6.2</span> <code>plotMagUncertainty</code></h3> <h3 id="org816b32a"><span class="section-number-3">6.2</span> <code>plotMagUncertainty</code></h3>
<div class="outline-text-3" id="text-6-2"> <div class="outline-text-3" id="text-6-2">
<p> <p>
<a id="org8739875"></a> <a id="org2963b0d"></a>
</p> </p>
<p> <p>
@ -1329,11 +1324,11 @@ p.FaceAlpha = args.opacity;
</div> </div>
</div> </div>
<div id="outline-container-org9f73572" class="outline-3"> <div id="outline-container-orgddb3773" class="outline-3">
<h3 id="org9f73572"><span class="section-number-3">6.3</span> <code>plotPhaseUncertainty</code></h3> <h3 id="orgddb3773"><span class="section-number-3">6.3</span> <code>plotPhaseUncertainty</code></h3>
<div class="outline-text-3" id="text-6-3"> <div class="outline-text-3" id="text-6-3">
<p> <p>
<a id="org49e21eb"></a> <a id="org8d340da"></a>
</p> </p>
<p> <p>
@ -1397,7 +1392,7 @@ p.FaceAlpha = args.opacity;
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2020-10-05 lun. 15:08</p> <p class="date">Created: 2020-11-12 jeu. 10:42</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,19 +1,14 @@
#+TITLE: Robust and Optimal Sensor Fusion - Matlab Computation #+TITLE: Robust and Optimal Sensor Fusion - Matlab Computation
:DRAWER: :DRAWER:
#+HTML_LINK_HOME: ./index.html #+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ./index.html #+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+BIND: org-latex-image-default-option "scale=1" #+BIND: org-latex-image-default-option "scale=1"
#+BIND: org-latex-image-default-width "" #+BIND: org-latex-image-default-width ""
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/dreampulse/computer-modern-web-font/master/fonts.css">
#+STARTUP: overview #+STARTUP: overview
#+OPTIONS: toc:2 #+OPTIONS: toc:2
@ -1155,12 +1150,11 @@ The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filt
plot(freqs, abs(squeeze(freqresp(H2, freqs, 'Hz'))), '-', 'DisplayName', '$H_2$'); plot(freqs, abs(squeeze(freqresp(H2, freqs, 'Hz'))), '-', 'DisplayName', '$H_2$');
hold off; hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Magnitude'); ylabel('Magnitude'); set(gca, 'XTickLabel',[]);
set(gca, 'XTickLabel',[]);
ylim([1e-3, 2]); ylim([1e-3, 2]);
legend('location', 'southeast', 'FontSize', 8); legend('location', 'southeast', 'FontSize', 8);
% Magnitude % Phase
ax2 = nexttile; ax2 = nexttile;
hold on; hold on;
plot(freqs, 180/pi*phase(squeeze(freqresp(H1, freqs, 'Hz'))), '-'); plot(freqs, 180/pi*phase(squeeze(freqresp(H1, freqs, 'Hz'))), '-');

Binary file not shown.

View File

@ -14,6 +14,13 @@
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@ #+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
#+AUTHOR: @@latex:thomas.dehaeze@esrf.fr@@ #+AUTHOR: @@latex:thomas.dehaeze@esrf.fr@@
#+AUTHOR: @@latex:}\and@@ #+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:\IEEEauthorblockN{Collette Christophe}@@
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@ #+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@ #+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@

Binary file not shown.

View File

@ -1,4 +1,4 @@
% Created 2020-10-25 dim. 10:05 % Created 2020-10-26 lun. 18:25
% Intended LaTeX compiler: pdflatex % Intended LaTeX compiler: pdflatex
\documentclass[conference]{IEEEtran} \documentclass[conference]{IEEEtran}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
@ -34,8 +34,8 @@
\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{\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{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 }} \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{2020-10-25} \date{2020-10-26}
\title{Optimal and Robust Sensor Fusion} \title{Optimal and Robust Sensor Fusion}
\begin{document} \begin{document}
@ -50,7 +50,7 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
\end{IEEEkeywords} \end{IEEEkeywords}
\section{Introduction} \section{Introduction}
\label{sec:org2a4e2c2} \label{sec:org2820158}
\label{sec:introduction} \label{sec:introduction}
\begin{itemize} \begin{itemize}
@ -61,11 +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:orgb0fb3f0} \label{sec:org2513ad9}
\label{sec:optimal_fusion} \label{sec:optimal_fusion}
\subsection{Sensor Model} \subsection{Sensor Model}
\label{sec:org9e4a17b} \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)\).
@ -101,7 +101,7 @@ In order to obtain an estimate \(\hat{x}_i\) of \(x\), a model \(\hat{G}_i\) of
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:orge7841b3} \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.
@ -138,7 +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:orge42a7c0} \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
@ -152,7 +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:org150fd28} \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\):
@ -196,7 +196,7 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:org4abe5c3} \label{sec:org99002de}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -232,7 +232,7 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
\end{figure} \end{figure}
\subsection{Robustness Problem} \subsection{Robustness Problem}
\label{sec:org1116fe0} \label{sec:org262893f}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -247,11 +247,11 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
\end{figure} \end{figure}
\section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis} \section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis}
\label{sec:orgcf4e02a} \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:org45ee620} \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.
@ -271,7 +271,7 @@ The sensor can then be represented as shown in Figure \ref{fig:sensor_model_unce
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:orgec549bc} \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:
@ -296,7 +296,7 @@ As \(H_1\) and \(H_2\) are complementary filters, we finally have:
\end{figure} \end{figure}
\subsection{Super Sensor Dynamical Uncertainty} \subsection{Super Sensor Dynamical Uncertainty}
\label{sec:org6867184} \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}.
@ -311,7 +311,7 @@ And we can see that the dynamical uncertainty of the super sensor is equal to th
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:org9cbbe5b} \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.
@ -357,7 +357,7 @@ The \(\mathcal{H}_\infty\) norm of Eq. \eqref{eq:Hinf_norm} is equals to \(\sigm
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:orgfc0d330} \label{sec:org7df520f}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -392,11 +392,11 @@ The \(\mathcal{H}_\infty\) norm of Eq. \eqref{eq:Hinf_norm} is equals to \(\sigm
\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:org81d3977} \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:orgcd51fc4} \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)\).
@ -417,7 +417,7 @@ Multiplying by the inverse of the nominal model of the sensor dynamics gives an
\end{figure} \end{figure}
\subsection{Sensor Fusion Architecture} \subsection{Sensor Fusion Architecture}
\label{sec:org32c4c98} \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.
@ -444,7 +444,7 @@ The estimate \(\hat{x}\) of \(x\)
\end{figure} \end{figure}
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\label{sec:org73e0335} \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.
@ -479,7 +479,7 @@ The synthesis objective is to:
\end{figure} \end{figure}
\subsection{Example} \subsection{Example}
\label{sec:orga68c808} \label{sec:org42ee165}
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
@ -506,27 +506,27 @@ The synthesis objective is to:
\end{figure} \end{figure}
\section{Experimental Validation} \section{Experimental Validation}
\label{sec:orga4af6ce} \label{sec:orge381a2a}
\label{sec:experimental_validation} \label{sec:experimental_validation}
\subsection{Experimental Setup} \subsection{Experimental Setup}
\label{sec:orgab10fd3} \label{sec:org473ab00}
\subsection{Sensor Noise and Dynamical Uncertainty} \subsection{Sensor Noise and Dynamical Uncertainty}
\label{sec:orgc6d5bae} \label{sec:orgebcb65d}
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis} \subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
\label{sec:orga5c7815} \label{sec:org0259d19}
\subsection{Super Sensor Noise and Dynamical Uncertainty} \subsection{Super Sensor Noise and Dynamical Uncertainty}
\label{sec:orgd7da409} \label{sec:orgdb5d29f}
\section{Conclusion} \section{Conclusion}
\label{sec:org6eddbc8} \label{sec:org07df454}
\label{sec:conclusion} \label{sec:conclusion}
\section{Acknowledgment} \section{Acknowledgment}
\label{sec:org44ed488} \label{sec:org7b7e461}
\bibliography{ref} \bibliography{ref}
\end{document} \end{document}

View File

@ -3,310 +3,80 @@
"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>
<!-- 2019-08-01 jeu. 17:46 --> <!-- 2020-11-12 jeu. 10:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>LaTeX Configuration for Tikz Figures</title> <title>LaTeX Configuration for Tikz Figures</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<style type="text/css"> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<!--/*--><![CDATA[/*><!--*/ <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.stickytableheaders.min.js"></script>
<script src="../js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</head> </head>
<body> <body>
<div id="content"> <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">LaTeX Configuration for Tikz Figures</h1> <h1 class="title">LaTeX Configuration for Tikz Figures</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org485d2f8">1. Packages</a></li> <li><a href="#org563923f">1. Packages</a></li>
<li><a href="#org8222280">2. Tikz related packages</a></li> <li><a href="#orgbba2842">2. Tikz related packages</a></li>
<li><a href="#org983f090">3. Tikz Libraries</a></li> <li><a href="#org78bd760">3. Tikz Libraries</a></li>
<li><a href="#org382b6c8">4. PGF Plot libraries and config</a></li> <li><a href="#orga2a8c2c">4. PGF Plot libraries and config</a></li>
<li><a href="#orgabed042">5. Setup size of figures</a></li> <li><a href="#orgb16e8c1">5. Setup size of figures</a></li>
<li><a href="#org7ec52e4">6. Setup Arrows style</a></li> <li><a href="#org7a055a0">6. Setup Arrows style</a></li>
<li><a href="#orgadcf4fa">7. Colors</a></li> <li><a href="#org337891d">7. Colors</a></li>
<li><a href="#orgf8644bb">8. Control</a> <li><a href="#org9fba3bd">8. Control</a>
<ul> <ul>
<li><a href="#orgb58c271">8.1. Blocks</a></li> <li><a href="#orgad61177">8.1. Blocks</a></li>
<li><a href="#org30e8430">8.2. <span class="todo TODO">TODO</span> Branches</a></li> <li><a href="#org747abfd">8.2. Branches</a></li>
<li><a href="#org53c66b2">8.3. <span class="todo TODO">TODO</span> Hand Writen Style</a></li> <li><a href="#org9eb0276">8.3. Hand Writen Style</a></li>
<li><a href="#orgbe652e9">8.4. DAC</a></li> <li><a href="#org68d7293">8.4. DAC</a></li>
<li><a href="#orgbc82de4">8.5. ADC</a></li> <li><a href="#org703d0a7">8.5. ADC</a></li>
<li><a href="#org340b1a4">8.6. <span class="todo TODO">TODO</span> Gain</a></li> <li><a href="#org525abad">8.6. Gain</a></li>
<li><a href="#org275aed0">8.7. Add / Substract / Divide / Multiply block</a></li> <li><a href="#orgab3fd46">8.7. Add / Substract / Divide / Multiply block</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orga0bb999">9. Plots</a> <li><a href="#org6dddda4">9. Plots</a>
<ul> <ul>
<li><a href="#org335716c">9.1. Grid</a></li> <li><a href="#org5f52280">9.1. Grid</a></li>
<li><a href="#org63e134b">9.2. Lines</a></li> <li><a href="#org59e26cb">9.2. Lines</a></li>
<li><a href="#org14023c7">9.3. Ticks</a></li> <li><a href="#orgbc1d944">9.3. Ticks</a></li>
<li><a href="#org97ff77a">9.4. Size</a></li> <li><a href="#org0b17a46">9.4. Size</a></li>
<li><a href="#orgbd0ce9a">9.5. Label</a></li> <li><a href="#orge253709">9.5. Label</a></li>
<li><a href="#org7c80336">9.6. Legend</a></li> <li><a href="#org0136e6e">9.6. Legend</a></li>
<li><a href="#org882899e">9.7. Upper and Lower bounds</a></li> <li><a href="#org6c9488e">9.7. Upper and Lower bounds</a></li>
<li><a href="#org028ac81">9.8. Pole</a></li> <li><a href="#org68481dd">9.8. Pole</a></li>
<li><a href="#org2d51358">9.9. Zero</a></li> <li><a href="#org4b90ce8">9.9. Zero</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org152b1b6">10. Mechanical</a> <li><a href="#orgddaa691">10. Mechanical</a>
<ul> <ul>
<li><a href="#orga9075d9">10.1. Spring</a></li> <li><a href="#orga04ed0c">10.1. Spring</a></li>
<li><a href="#orgc290c7c">10.2. Coil</a></li> <li><a href="#org5037f72">10.2. Coil</a></li>
<li><a href="#org642ecab">10.3. Damper</a></li> <li><a href="#org16357a8">10.3. Damper</a></li>
<li><a href="#org7603957">10.4. Actuator</a></li> <li><a href="#orgd56dea9">10.4. Actuator</a></li>
<li><a href="#orgdcbbf5e">10.5. Ground</a></li> <li><a href="#org39bd1d0">10.5. Ground</a></li>
<li><a href="#org24c87d5">10.6. Force Sensor</a></li> <li><a href="#org5225a31">10.6. Force Sensor</a></li>
<li><a href="#org85aab6a">10.7. Inertial Sensor</a></li> <li><a href="#org6c262c1">10.7. Inertial Sensor</a></li>
<li><a href="#orgf07d1e3">10.8. Axis Rotator</a></li> <li><a href="#org4071fb1">10.8. Axis Rotator</a></li>
<li><a href="#org091ff6f">10.9. Cross</a></li> <li><a href="#org66470c0">10.9. Cross</a></li>
<li><a href="#orgf570b65">10.10. Piezoelectric actuator</a></li> <li><a href="#org6eb8134">10.10. Piezoelectric actuator</a></li>
<li><a href="#org816eebe">10.11. Voice coil</a></li> <li><a href="#org6b9bc4d">10.11. Voice coil</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgb095cdb">11. Optics</a></li> <li><a href="#org69d7a0b">11. Optics</a></li>
<li><a href="#org06358e3">12. Misc</a></li> <li><a href="#org0283a14">12. Misc</a></li>
<li><a href="#org6860135">13. More Defaults specific to this paper</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org485d2f8" class="outline-2"> <div id="outline-container-org563923f" class="outline-2">
<h2 id="org485d2f8"><span class="section-number-2">1</span> Packages</h2> <h2 id="org563923f"><span class="section-number-2">1</span> Packages</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">utf8</span>]{<span class="org-function-name">inputenc</span>} <pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">utf8</span>]{<span class="org-function-name">inputenc</span>}
@ -352,8 +122,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org8222280" class="outline-2"> <div id="outline-container-orgbba2842" class="outline-2">
<h2 id="org8222280"><span class="section-number-2">2</span> Tikz related packages</h2> <h2 id="orgbba2842"><span class="section-number-2">2</span> Tikz related packages</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tikz</span>} <span class="org-comment">% Tikz</span> <pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tikz</span>} <span class="org-comment">% Tikz</span>
@ -367,8 +137,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org983f090" class="outline-2"> <div id="outline-container-org78bd760" class="outline-2">
<h2 id="org983f090"><span class="section-number-2">3</span> Tikz Libraries</h2> <h2 id="org78bd760"><span class="section-number-2">3</span> Tikz Libraries</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\usetikzlibrary</span>{arrows} <span class="org-comment">% Arrow tip library</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\usetikzlibrary</span>{arrows} <span class="org-comment">% Arrow tip library</span>
@ -395,8 +165,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org382b6c8" class="outline-2"> <div id="outline-container-orga2a8c2c" class="outline-2">
<h2 id="org382b6c8"><span class="section-number-2">4</span> PGF Plot libraries and config</h2> <h2 id="orga2a8c2c"><span class="section-number-2">4</span> PGF Plot libraries and config</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\usepgfplotslibrary</span>{patchplots} <pre class="src src-latex"><span class="org-font-latex-sedate">\usepgfplotslibrary</span>{patchplots}
@ -409,8 +179,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-orgabed042" class="outline-2"> <div id="outline-container-orgb16e8c1" class="outline-2">
<h2 id="orgabed042"><span class="section-number-2">5</span> Setup size of figures</h2> <h2 id="orgb16e8c1"><span class="section-number-2">5</span> Setup size of figures</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newlength</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\fheight</span></span>} <pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newlength</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\fheight</span></span>}
@ -423,8 +193,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org7ec52e4" class="outline-2"> <div id="outline-container-org7a055a0" class="outline-2">
<h2 id="org7ec52e4"><span class="section-number-2">6</span> Setup Arrows style</h2> <h2 id="org7a055a0"><span class="section-number-2">6</span> Setup Arrows style</h2>
<div class="outline-text-2" id="text-6"> <div class="outline-text-2" id="text-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{&gt;=Stealth} <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{&gt;=Stealth}
@ -435,8 +205,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-orgadcf4fa" class="outline-2"> <div id="outline-container-org337891d" class="outline-2">
<h2 id="orgadcf4fa"><span class="section-number-2">7</span> Colors</h2> <h2 id="org337891d"><span class="section-number-2">7</span> Colors</h2>
<div class="outline-text-2" id="text-7"> <div class="outline-text-2" id="text-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">xcolor</span>}<span class="org-comment">% Color extension</span> <pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">xcolor</span>}<span class="org-comment">% Color extension</span>
@ -458,12 +228,12 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-orgf8644bb" class="outline-2"> <div id="outline-container-org9fba3bd" class="outline-2">
<h2 id="orgf8644bb"><span class="section-number-2">8</span> Control</h2> <h2 id="org9fba3bd"><span class="section-number-2">8</span> Control</h2>
<div class="outline-text-2" id="text-8"> <div class="outline-text-2" id="text-8">
</div> </div>
<div id="outline-container-orgb58c271" class="outline-3"> <div id="outline-container-orgad61177" class="outline-3">
<h3 id="orgb58c271"><span class="section-number-3">8.1</span> Blocks</h3> <h3 id="orgad61177"><span class="section-number-3">8.1</span> Blocks</h3>
<div class="outline-text-3" id="text-8-1"> <div class="outline-text-3" id="text-8-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -480,8 +250,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org30e8430" class="outline-3"> <div id="outline-container-org747abfd" class="outline-3">
<h3 id="org30e8430"><span class="section-number-3">8.2</span> <span class="todo TODO">TODO</span> Branches</h3> <h3 id="org747abfd"><span class="section-number-3">8.2</span> Branches</h3>
<div class="outline-text-3" id="text-8-2"> <div class="outline-text-3" id="text-8-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{branch}=[fill,shape=circle,minimum size=4pt,inner sep=0pt] <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{branch}=[fill,shape=circle,minimum size=4pt,inner sep=0pt]
@ -492,8 +262,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org53c66b2" class="outline-3"> <div id="outline-container-org9eb0276" class="outline-3">
<h3 id="org53c66b2"><span class="section-number-3">8.3</span> <span class="todo TODO">TODO</span> Hand Writen Style</h3> <h3 id="org9eb0276"><span class="section-number-3">8.3</span> Hand Writen Style</h3>
<div class="outline-text-3" id="text-8-3"> <div class="outline-text-3" id="text-8-3">
<p> <p>
Usefull for schematic plots Usefull for schematic plots
@ -505,8 +275,8 @@ Usefull for schematic plots
</div> </div>
</div> </div>
<div id="outline-container-orgbe652e9" class="outline-3"> <div id="outline-container-org68d7293" class="outline-3">
<h3 id="orgbe652e9"><span class="section-number-3">8.4</span> DAC</h3> <h3 id="org68d7293"><span class="section-number-3">8.4</span> DAC</h3>
<div class="outline-text-3" id="text-8-4"> <div class="outline-text-3" id="text-8-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -520,8 +290,8 @@ Usefull for schematic plots
</div> </div>
</div> </div>
<div id="outline-container-orgbc82de4" class="outline-3"> <div id="outline-container-org703d0a7" class="outline-3">
<h3 id="orgbc82de4"><span class="section-number-3">8.5</span> ADC</h3> <h3 id="org703d0a7"><span class="section-number-3">8.5</span> ADC</h3>
<div class="outline-text-3" id="text-8-5"> <div class="outline-text-3" id="text-8-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -536,8 +306,8 @@ Usefull for schematic plots
</div> </div>
</div> </div>
<div id="outline-container-org340b1a4" class="outline-3"> <div id="outline-container-org525abad" class="outline-3">
<h3 id="org340b1a4"><span class="section-number-3">8.6</span> <span class="todo TODO">TODO</span> Gain</h3> <h3 id="org525abad"><span class="section-number-3">8.6</span> Gain</h3>
<div class="outline-text-3" id="text-8-6"> <div class="outline-text-3" id="text-8-6">
<p> <p>
Maybe use <code>isosceles</code> instead of regular polygon? Maybe use <code>isosceles</code> instead of regular polygon?
@ -578,8 +348,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
</div> </div>
</div> </div>
<div id="outline-container-org275aed0" class="outline-3"> <div id="outline-container-orgab3fd46" class="outline-3">
<h3 id="org275aed0"><span class="section-number-3">8.7</span> Add / Substract / Divide / Multiply block</h3> <h3 id="orgab3fd46"><span class="section-number-3">8.7</span> Add / Substract / Divide / Multiply block</h3>
<div class="outline-text-3" id="text-8-7"> <div class="outline-text-3" id="text-8-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">% Add block with Circled operations</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">% Add block with Circled operations</span>
@ -591,7 +361,7 @@ Maybe use <code>isosceles</code> instead of regular polygon?
inner sep = 0pt, inner sep = 0pt,
minimum size = 2em, minimum size = 2em,
execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>}, execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>},
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode=\tikzlastnode</span>} append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode</span>=<span class="org-font-latex-sedate">\tikzlastnode</span>}
<span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span> <span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span>
node[draw, circle, outer sep=6pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span> node[draw, circle, outer sep=6pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span> <span class="org-font-latex-sedate">\fi</span>
@ -621,7 +391,7 @@ Maybe use <code>isosceles</code> instead of regular polygon?
inner sep = 0pt, inner sep = 0pt,
minimum size = 2em, minimum size = 2em,
execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>}, execute at begin node={<span class="org-font-latex-sedate"><span class="org-keyword">\LARGE</span></span><span class="org-type"> </span><span class="org-type"><span class="org-font-latex-math">$#1$</span></span>},
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode=\tikzlastnode</span>} append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode</span>=<span class="org-font-latex-sedate">\tikzlastnode</span>}
<span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span> <span class="org-font-latex-sedate">\ifx</span>#2<span class="org-font-latex-sedate">\empty\else</span>
node[outer sep=2pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span> node[outer sep=2pt, inner sep=0pt, above left] at (<span class="org-font-latex-sedate">\mainnode</span>.west) {<span class="org-font-latex-math">$#2$</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\fi</span> <span class="org-font-latex-sedate">\fi</span>
@ -644,12 +414,12 @@ Maybe use <code>isosceles</code> instead of regular polygon?
</div> </div>
</div> </div>
<div id="outline-container-orga0bb999" class="outline-2"> <div id="outline-container-org6dddda4" class="outline-2">
<h2 id="orga0bb999"><span class="section-number-2">9</span> Plots</h2> <h2 id="org6dddda4"><span class="section-number-2">9</span> Plots</h2>
<div class="outline-text-2" id="text-9"> <div class="outline-text-2" id="text-9">
</div> </div>
<div id="outline-container-org335716c" class="outline-3"> <div id="outline-container-org5f52280" class="outline-3">
<h3 id="org335716c"><span class="section-number-3">9.1</span> Grid</h3> <h3 id="org5f52280"><span class="section-number-3">9.1</span> Grid</h3>
<div class="outline-text-3" id="text-9-1"> <div class="outline-text-3" id="text-9-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{grid style={black}} <pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{grid style={black}}
@ -662,8 +432,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
</div> </div>
</div> </div>
<div id="outline-container-org63e134b" class="outline-3"> <div id="outline-container-org59e26cb" class="outline-3">
<h3 id="org63e134b"><span class="section-number-3">9.2</span> Lines</h3> <h3 id="org59e26cb"><span class="section-number-3">9.2</span> Lines</h3>
<div class="outline-text-3" id="text-9-2"> <div class="outline-text-3" id="text-9-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{separate axis lines=false} <span class="org-comment">% draw axis as rectangle and not as 4 lines</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{separate axis lines=false} <span class="org-comment">% draw axis as rectangle and not as 4 lines</span>
@ -677,8 +447,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
</div> </div>
</div> </div>
<div id="outline-container-org14023c7" class="outline-3"> <div id="outline-container-orgbc1d944" class="outline-3">
<h3 id="org14023c7"><span class="section-number-3">9.3</span> Ticks</h3> <h3 id="orgbc1d944"><span class="section-number-3">9.3</span> Ticks</h3>
<div class="outline-text-3" id="text-9-3"> <div class="outline-text-3" id="text-9-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{every y tick label/.append style={font=<span class="org-font-latex-sedate">\color</span>{black}}} <pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{every y tick label/.append style={font=<span class="org-font-latex-sedate">\color</span>{black}}}
@ -690,8 +460,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
</div> </div>
</div> </div>
<div id="outline-container-org97ff77a" class="outline-3"> <div id="outline-container-org0b17a46" class="outline-3">
<h3 id="org97ff77a"><span class="section-number-3">9.4</span> Size</h3> <h3 id="org0b17a46"><span class="section-number-3">9.4</span> Size</h3>
<div class="outline-text-3" id="text-9-4"> <div class="outline-text-3" id="text-9-4">
<p> <p>
If <code>scale only axis=false</code> (the default), pgfplots will try to produce the desired width including labels, titles and ticks. If <code>scale only axis=false</code> (the default), pgfplots will try to produce the desired width including labels, titles and ticks.
@ -703,8 +473,8 @@ If <code>scale only axis=false</code> (the default), pgfplots will try to produc
</div> </div>
</div> </div>
<div id="outline-container-orgbd0ce9a" class="outline-3"> <div id="outline-container-orge253709" class="outline-3">
<h3 id="orgbd0ce9a"><span class="section-number-3">9.5</span> Label</h3> <h3 id="orge253709"><span class="section-number-3">9.5</span> Label</h3>
<div class="outline-text-3" id="text-9-5"> <div class="outline-text-3" id="text-9-5">
<p> <p>
Used to align all of ylabel of one figure. Used to align all of ylabel of one figure.
@ -716,8 +486,8 @@ Used to align all of ylabel of one figure.
</div> </div>
</div> </div>
<div id="outline-container-org7c80336" class="outline-3"> <div id="outline-container-org0136e6e" class="outline-3">
<h3 id="org7c80336"><span class="section-number-3">9.6</span> Legend</h3> <h3 id="org0136e6e"><span class="section-number-3">9.6</span> Legend</h3>
<div class="outline-text-3" id="text-9-6"> <div class="outline-text-3" id="text-9-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-comment-delimiter">% </span><span class="org-comment">https://tex.stackexchange.com/questions/54794/using-a-pgfplots-style-legend-in-a-plain-old-tikzpicture#54834</span> <pre class="src src-latex"><span class="org-comment-delimiter">% </span><span class="org-comment">https://tex.stackexchange.com/questions/54794/using-a-pgfplots-style-legend-in-a-plain-old-tikzpicture#54834</span>
@ -754,8 +524,8 @@ Used to align all of ylabel of one figure.
</div> </div>
</div> </div>
<div id="outline-container-org882899e" class="outline-3"> <div id="outline-container-org6c9488e" class="outline-3">
<h3 id="org882899e"><span class="section-number-3">9.7</span> Upper and Lower bounds</h3> <h3 id="org6c9488e"><span class="section-number-3">9.7</span> Upper and Lower bounds</h3>
<div class="outline-text-3" id="text-9-7"> <div class="outline-text-3" id="text-9-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}] <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{upperbound}=[line cap=round, postaction={decorate,draw,decoration={border, segment length=0.2cm, amplitude=0.3cm, angle=60}}]
@ -783,8 +553,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org028ac81" class="outline-3"> <div id="outline-container-org68481dd" class="outline-3">
<h3 id="org028ac81"><span class="section-number-3">9.8</span> Pole</h3> <h3 id="org68481dd"><span class="section-number-3">9.8</span> Pole</h3>
<div class="outline-text-3" id="text-9-8"> <div class="outline-text-3" id="text-9-8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -803,8 +573,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org2d51358" class="outline-3"> <div id="outline-container-org4b90ce8" class="outline-3">
<h3 id="org2d51358"><span class="section-number-3">9.9</span> Zero</h3> <h3 id="org4b90ce8"><span class="section-number-3">9.9</span> Zero</h3>
<div class="outline-text-3" id="text-9-9"> <div class="outline-text-3" id="text-9-9">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -824,12 +594,12 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org152b1b6" class="outline-2"> <div id="outline-container-orgddaa691" class="outline-2">
<h2 id="org152b1b6"><span class="section-number-2">10</span> Mechanical</h2> <h2 id="orgddaa691"><span class="section-number-2">10</span> Mechanical</h2>
<div class="outline-text-2" id="text-10"> <div class="outline-text-2" id="text-10">
</div> </div>
<div id="outline-container-orga9075d9" class="outline-3"> <div id="outline-container-orga04ed0c" class="outline-3">
<h3 id="orga9075d9"><span class="section-number-3">10.1</span> Spring</h3> <h3 id="orga04ed0c"><span class="section-number-3">10.1</span> Spring</h3>
<div class="outline-text-3" id="text-10-1"> <div class="outline-text-3" id="text-10-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -850,8 +620,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-orgc290c7c" class="outline-3"> <div id="outline-container-org5037f72" class="outline-3">
<h3 id="orgc290c7c"><span class="section-number-3">10.2</span> Coil</h3> <h3 id="org5037f72"><span class="section-number-3">10.2</span> Coil</h3>
<div class="outline-text-3" id="text-10-2"> <div class="outline-text-3" id="text-10-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -872,8 +642,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org642ecab" class="outline-3"> <div id="outline-container-org16357a8" class="outline-3">
<h3 id="org642ecab"><span class="section-number-3">10.3</span> Damper</h3> <h3 id="org16357a8"><span class="section-number-3">10.3</span> Damper</h3>
<div class="outline-text-3" id="text-10-3"> <div class="outline-text-3" id="text-10-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -900,8 +670,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org7603957" class="outline-3"> <div id="outline-container-orgd56dea9" class="outline-3">
<h3 id="org7603957"><span class="section-number-3">10.4</span> Actuator</h3> <h3 id="orgd56dea9"><span class="section-number-3">10.4</span> Actuator</h3>
<div class="outline-text-3" id="text-10-4"> <div class="outline-text-3" id="text-10-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -931,8 +701,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-orgdcbbf5e" class="outline-3"> <div id="outline-container-org39bd1d0" class="outline-3">
<h3 id="orgdcbbf5e"><span class="section-number-3">10.5</span> Ground</h3> <h3 id="org39bd1d0"><span class="section-number-3">10.5</span> Ground</h3>
<div class="outline-text-3" id="text-10-5"> <div class="outline-text-3" id="text-10-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -954,8 +724,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org24c87d5" class="outline-3"> <div id="outline-container-org5225a31" class="outline-3">
<h3 id="org24c87d5"><span class="section-number-3">10.6</span> Force Sensor</h3> <h3 id="org5225a31"><span class="section-number-3">10.6</span> Force Sensor</h3>
<div class="outline-text-3" id="text-10-6"> <div class="outline-text-3" id="text-10-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -984,8 +754,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org85aab6a" class="outline-3"> <div id="outline-container-org6c262c1" class="outline-3">
<h3 id="org85aab6a"><span class="section-number-3">10.7</span> Inertial Sensor</h3> <h3 id="org6c262c1"><span class="section-number-3">10.7</span> Inertial Sensor</h3>
<div class="outline-text-3" id="text-10-7"> <div class="outline-text-3" id="text-10-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -1013,8 +783,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-orgf07d1e3" class="outline-3"> <div id="outline-container-org4071fb1" class="outline-3">
<h3 id="orgf07d1e3"><span class="section-number-3">10.8</span> Axis Rotator</h3> <h3 id="org4071fb1"><span class="section-number-3">10.8</span> Axis Rotator</h3>
<div class="outline-text-3" id="text-10-8"> <div class="outline-text-3" id="text-10-8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newcommand</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\AxisRotator</span></span>}[<span class="org-variable-name">1</span>][<span class="org-variable-name">rotate=0</span>]{<span class="org-function-name"><span class="org-comment">%</span></span> <pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newcommand</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\AxisRotator</span></span>}[<span class="org-variable-name">1</span>][<span class="org-variable-name">rotate=0</span>]{<span class="org-function-name"><span class="org-comment">%</span></span>
@ -1025,8 +795,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org091ff6f" class="outline-3"> <div id="outline-container-org66470c0" class="outline-3">
<h3 id="org091ff6f"><span class="section-number-3">10.9</span> Cross</h3> <h3 id="org66470c0"><span class="section-number-3">10.9</span> Cross</h3>
<div class="outline-text-3" id="text-10-9"> <div class="outline-text-3" id="text-10-9">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{cross}=[path picture={ <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{cross}=[path picture={
@ -1039,8 +809,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-orgf570b65" class="outline-3"> <div id="outline-container-org6eb8134" class="outline-3">
<h3 id="orgf570b65"><span class="section-number-3">10.10</span> Piezoelectric actuator</h3> <h3 id="org6eb8134"><span class="section-number-3">10.10</span> Piezoelectric actuator</h3>
<div class="outline-text-3" id="text-10-10"> <div class="outline-text-3" id="text-10-10">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -1057,7 +827,7 @@ And we add the corresdonding
black, black,
}] }]
<span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\i</span> in {1,...,#3}{ <span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\i</span> in {1,...,#3}{
(<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i/</span></span><span class="org-font-latex-math">(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north west)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south west)+0.1*(#1,0)$</span>) edge (<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i/</span></span><span class="org-font-latex-math">(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north east)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south east)-0.1*(#1,0)$</span>) (<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north west)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south west)+0.1*(#1,0)$</span>) edge (<span class="org-font-latex-math">${</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.north east)+{(1+#3-</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\i</span></span><span class="org-font-latex-math">)/(1+#3)}*(</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\tikzlastnode</span></span><span class="org-font-latex-math">.south east)-0.1*(#1,0)$</span>)
} }
} }
}, },
@ -1068,8 +838,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org816eebe" class="outline-3"> <div id="outline-container-org6b9bc4d" class="outline-3">
<h3 id="org816eebe"><span class="section-number-3">10.11</span> Voice coil</h3> <h3 id="org6b9bc4d"><span class="section-number-3">10.11</span> Voice coil</h3>
<div class="outline-text-3" id="text-10-11"> <div class="outline-text-3" id="text-10-11">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\def\voicecoil</span>#1#2#3{ <pre class="src src-latex"><span class="org-font-latex-sedate">\def\voicecoil</span>#1#2#3{
@ -1080,7 +850,7 @@ And we add the corresdonding
<span class="org-font-latex-sedate">\def\voicecoilh</span>{#2} <span class="org-comment">% Total Height</span> <span class="org-font-latex-sedate">\def\voicecoilh</span>{#2} <span class="org-comment">% Total Height</span>
<span class="org-font-latex-sedate">\def\magnetw</span>{<span class="org-font-latex-sedate">\voicecoilw</span>} <span class="org-comment">% Width of the magnet</span> <span class="org-font-latex-sedate">\def\magnetw</span>{<span class="org-font-latex-sedate">\voicecoilw</span>} <span class="org-comment">% Width of the magnet</span>
<span class="org-font-latex-sedate">\def\magneth</span>{<span class="org-font-latex-sedate">\voicecoilh/1</span>.4} <span class="org-comment">% Height of the magnet</span> <span class="org-font-latex-sedate">\def\magneth</span>{<span class="org-font-latex-sedate">\voicecoilh</span>/1.4} <span class="org-comment">% Height of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetwb</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the borders of the magnet</span> <span class="org-font-latex-sedate">\def\magnetwb</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the borders of the magnet</span>
<span class="org-font-latex-sedate">\def\magnetmw</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the middle part of the magnet</span> <span class="org-font-latex-sedate">\def\magnetmw</span>{0.15*<span class="org-font-latex-sedate">\magnetw</span>} <span class="org-comment">% Width of the middle part of the magnet</span>
@ -1095,26 +865,26 @@ And we add the corresdonding
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-comment">% Magnet</span> <span class="org-comment">% Magnet</span>
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (0, 0) -| ++(0.5*<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magneth</span>) -| ++(-0.5*<span class="org-font-latex-sedate">\magnetw+0</span>.5*<span class="org-font-latex-sedate">\magnetwg</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetw-\magnetwb</span>, <span class="org-font-latex-sedate">\magnethl</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw+\magnetwb</span>, <span class="org-font-latex-sedate">\magneth-\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetwg</span>, <span class="org-font-latex-sedate">\magneth</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 0) -- (cycle); <span class="org-font-latex-sedate">\draw</span>[fill=white] (0, 0) -| ++(0.5*<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magneth</span>) -| ++(-0.5*<span class="org-font-latex-sedate">\magnetw</span>+0.5*<span class="org-font-latex-sedate">\magnetwg</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetw</span>-<span class="org-font-latex-sedate">\magnetwb</span>, <span class="org-font-latex-sedate">\magnethl</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw</span>+<span class="org-font-latex-sedate">\magnetwb</span>, <span class="org-font-latex-sedate">\magneth</span>-<span class="org-font-latex-sedate">\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetwg</span>, <span class="org-font-latex-sedate">\magneth</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 0) -- (cycle);
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(0, <span class="org-font-latex-sedate">\magnethl</span>)}] <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(0, <span class="org-font-latex-sedate">\magnethl</span>)}]
<span class="org-font-latex-sedate">\draw</span>[fill=red] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 0) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>); <span class="org-font-latex-sedate">\draw</span>[fill=red] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 0) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>);
<span class="org-font-latex-sedate">\draw</span>[fill=blue] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>); <span class="org-font-latex-sedate">\draw</span>[fill=blue] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>) rectangle (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>);
<span class="org-comment">% Top conductive Magnet</span> <span class="org-comment">% Top conductive Magnet</span>
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethl+\magneth-\magnethg</span>) -| ++(0.1, <span class="org-font-latex-sedate">\magnethg</span>) -| ++(-0.2-<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>); <span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, 2*<span class="org-font-latex-sedate">\magnetmh</span>) -| (0.5*<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethl</span>+<span class="org-font-latex-sedate">\magneth</span>-<span class="org-font-latex-sedate">\magnethg</span>) -| ++(0.1, <span class="org-font-latex-sedate">\magnethg</span>) -| ++(-0.2-<span class="org-font-latex-sedate">\magnetmw</span>, -<span class="org-font-latex-sedate">\magnethg</span>) -| (-0.5*<span class="org-font-latex-sedate">\magnetmw</span>, <span class="org-font-latex-sedate">\magnetmh</span>);
<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">scope</span>}
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-comment">% Coil</span> <span class="org-comment">% Coil</span>
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-font-latex-sedate">\pgfmathsetmacro</span>{<span class="org-font-latex-sedate">\coilwidth</span>}{0.5*0.5*<span class="org-font-latex-sedate">\magnetmw+0</span>.5*0.1+0.25*<span class="org-font-latex-sedate">\magnetwg</span>}<span class="org-comment">%</span> <span class="org-font-latex-sedate">\pgfmathsetmacro</span>{<span class="org-font-latex-sedate">\coilwidth</span>}{0.5*0.5*<span class="org-font-latex-sedate">\magnetmw</span>+0.5*0.1+0.25*<span class="org-font-latex-sedate">\magnetwg</span>}<span class="org-comment">%</span>
<span class="org-font-latex-sedate">\draw</span>[] ( <span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>); <span class="org-font-latex-sedate">\draw</span>[] ( <span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-font-latex-sedate">\draw</span>[] (-<span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>); <span class="org-font-latex-sedate">\draw</span>[] (-<span class="org-font-latex-sedate">\coilwidth</span>, 0.5*<span class="org-font-latex-sedate">\magneth</span>) -- ++(0, 0.7*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-comment">% Point on the coil</span> <span class="org-comment">% Point on the coil</span>
<span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\x</span> in {0,1,...,9} <span class="org-font-latex-sedate">\foreach</span> <span class="org-font-latex-sedate">\x</span> in {0,1,...,9}
{ {
<span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at ( <span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x*0</span>.7*<span class="org-font-latex-sedate">\magneth/10+0</span>.5*<span class="org-font-latex-sedate">\magneth</span>); <span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at ( <span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x</span>*0.7*<span class="org-font-latex-sedate">\magneth</span>/10+0.5*<span class="org-font-latex-sedate">\magneth</span>);
<span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at (-<span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x*0</span>.7*<span class="org-font-latex-sedate">\magneth/10+0</span>.5*<span class="org-font-latex-sedate">\magneth</span>); <span class="org-font-latex-sedate">\node</span>[circle,inner sep=0.6pt,fill] at (-<span class="org-font-latex-sedate">\coilwidth</span>, <span class="org-font-latex-sedate">\x</span>*0.7*<span class="org-font-latex-sedate">\magneth</span>/10+0.5*<span class="org-font-latex-sedate">\magneth</span>);
} }
<span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 1.2*<span class="org-font-latex-sedate">\magneth</span>) rectangle ++(<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magnethg</span>); <span class="org-font-latex-sedate">\draw</span>[fill=white] (-0.5*<span class="org-font-latex-sedate">\magnetw</span>, 1.2*<span class="org-font-latex-sedate">\magneth</span>) rectangle ++(<span class="org-font-latex-sedate">\magnetw</span>, <span class="org-font-latex-sedate">\magnethg</span>);
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
@ -1123,7 +893,7 @@ And we add the corresdonding
<span class="org-comment">% Coordinates</span> <span class="org-comment">% Coordinates</span>
<span class="org-comment">% ======================</span> <span class="org-comment">% ======================</span>
<span class="org-comment">% Force</span> <span class="org-comment">% Force</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_force) at (0, <span class="org-font-latex-sedate">\magneth-0</span>.5*<span class="org-font-latex-sedate">\magnethg</span>); <span class="org-font-latex-sedate">\coordinate</span>[] (vc_force) at (0, <span class="org-font-latex-sedate">\magneth</span>-0.5*<span class="org-font-latex-sedate">\magnethg</span>);
<span class="org-comment">% Coil</span> <span class="org-comment">% Coil</span>
<span class="org-font-latex-sedate">\coordinate</span>[] (vc_coil) at (0, <span class="org-font-latex-sedate">\voicecoilh</span>); <span class="org-font-latex-sedate">\coordinate</span>[] (vc_coil) at (0, <span class="org-font-latex-sedate">\voicecoilh</span>);
<span class="org-comment">% Magnet</span> <span class="org-comment">% Magnet</span>
@ -1140,8 +910,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-orgb095cdb" class="outline-2"> <div id="outline-container-org69d7a0b" class="outline-2">
<h2 id="orgb095cdb"><span class="section-number-2">11</span> Optics</h2> <h2 id="org69d7a0b"><span class="section-number-2">11</span> Optics</h2>
<div class="outline-text-2" id="text-11"> <div class="outline-text-2" id="text-11">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -1169,8 +939,8 @@ And we add the corresdonding
</div> </div>
</div> </div>
<div id="outline-container-org06358e3" class="outline-2"> <div id="outline-container-org0283a14" class="outline-2">
<h2 id="org06358e3"><span class="section-number-2">12</span> Misc</h2> <h2 id="org0283a14"><span class="section-number-2">12</span> Misc</h2>
<div class="outline-text-2" id="text-12"> <div class="outline-text-2" id="text-12">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span> <pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
@ -1186,11 +956,22 @@ And we add the corresdonding
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org6860135" class="outline-2">
<h2 id="org6860135"><span class="section-number-2">13</span> More Defaults specific to this paper</h2>
<div class="outline-text-2" id="text-13">
<div class="org-src-container">
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{block/.default={0.8cm}{0.6cm}}
<span class="org-font-latex-sedate">\tikzset</span>{addb/.append style={scale=0.7}}
<span class="org-font-latex-sedate">\tikzset</span>{node distance=0.6}
</pre>
</div>
</div>
</div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-08-01 jeu. 17:46</p> <p class="date">Created: 2020-11-12 jeu. 10:41</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,11 +1,10 @@
#+TITLE: LaTeX Configuration for Tikz Figures #+TITLE: LaTeX Configuration for Tikz Figures
:DRAWER: :DRAWER:
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> #+HTML_LINK_HOME: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> #+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+PROPERTY: header-args:latex+ :tangle config.tex #+PROPERTY: header-args:latex+ :tangle config.tex
#+PROPERTY: header-args:latex+ :exports code #+PROPERTY: header-args:latex+ :exports code

View File

@ -3,17 +3,13 @@
"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>
<!-- 2020-08-17 lun. 17:49 --> <!-- 2020-11-12 jeu. 10:42 -->
<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 - Tikz Figures</title> <title>Robust and Optimal Sensor Fusion - Tikz Figures</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.stickytableheaders.min.js"></script>
<script src="../js/readtheorg.js"></script>
<script>MathJax = { <script>MathJax = {
tex: { tex: {
tags: 'ams', tags: 'ams',
@ -34,13 +30,16 @@
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org4e2a932">1. Sensor Fusion Architecture</a></li> <li><a href="#orgde691cc">1. Sensor Model - Noise</a></li>
<li><a href="#org1353381">2. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li> <li><a href="#org3e09ccd">2. Sensor Fusion Architecture</a></li>
<li><a href="#org1189340">3. Sensor fusion architecture with sensor dynamics uncertainty</a></li> <li><a href="#org98e222d">3. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li>
<li><a href="#org635364c">4. Uncertainty set of the super sensor dynamics</a></li> <li><a href="#org7b2be36">4. Sensor Model - Uncertainty</a></li>
<li><a href="#org8471952">5. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li> <li><a href="#org201b812">5. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
<li><a href="#orgd2abe63">6. Sensor fusion architecture with sensor dynamics uncertainty and noise</a></li> <li><a href="#org295dc2a">6. Uncertainty set of the super sensor dynamics</a></li>
<li><a href="#org25fbe7c">7. Mixed H2/H-Infinity Synthesis</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> </ul>
</div> </div>
</div> </div>
@ -48,360 +47,504 @@
Configuration file is accessible <a href="config.html">here</a>. Configuration file is accessible <a href="config.html">here</a>.
</p> </p>
<div id="outline-container-org4e2a932" class="outline-2"> <div id="outline-container-orgde691cc" class="outline-2">
<h2 id="org4e2a932"><span class="section-number-2">1</span> Sensor Fusion Architecture</h2> <h2 id="orgde691cc"><span class="section-number-2">1</span> Sensor Model - Noise</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[branch] (x) at (0, 0); <span class="org-font-latex-sedate">\node</span>[addb](add1){};
\node[block, above right=1.0 and 0.5 of x](G1){$G_1(s)$}; <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>};
\node[block, below right=1.0 and 0.5 of x](G2){$G_2(s)$}; <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>};
\node[addb, right=0.4 of G1](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>};
\node[addb, right=0.4 of G2](add2){};
\node[block, right=1.1 of add1](H1){$H_1(s)$};
\node[block, right=1.1 of add2](H2){$H_2(s)$};
\node[block, above=0.5 of add1](N1){$N_1(s)$};
\node[block, above=0.5 of add2](N2){$N_2(s)$};
\node[addb, right=4.8 of x](add){};
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center); <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>};
\draw[-&gt;] (x.center) |- (G1.west); <span class="org-font-latex-sedate">\draw</span>[-&gt;] (add1.east) -- (G1.west);
\draw[-&gt;] (x.center) |- (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">i$</span>};
\draw[-&gt;] (G1.east) -- (add1.west); <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);
\draw[-&gt;] (G2.east) -- (add2.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>};
\draw[-&gt;] (N1.south) -- (add1.north)node[above right]{$n_1$}; <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>};
\draw[-&gt;] (N2.south) -- (add2.north)node[above right]{$n_2$};
\draw[&lt;-] (N1.north) -- ++(0, 0.6)node[below right](n1){$\tilde{n}_1$};
\draw[&lt;-] (N2.north) -- ++(0, 0.6)node[below right](n2){$\tilde{n}_2$};
\draw[-&gt;] (add1.east) -- (H1.west)node[above left]{$\hat{x}_1$};
\draw[-&gt;] (add2.east) -- (H2.west)node[above left]{$\hat{x}_2$};
\draw[-&gt;] (H1) -| (add.north);
\draw[-&gt;] (H2) -| (add.south);
\draw[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
\begin{scope}[on background layer] <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
\node[fit={($(G2.south-|x)+(-0.2, -0.3)$) ($(n1.north east-|add.east)+(0.2, 0.3)$)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {}; <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) {};
\node[below left] at (supersensor.north east) {Super Sensor}; <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>}
\node[fit={($(G1.south west)+(-0.3, -0.1)$) ($(n1.north east)+(0.1, 0.1)$)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {}; <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
\node[below right] at (sensor1.north west) {Sensor 1};
\node[fit={($(G2.south west)+(-0.3, -0.1)$) ($(n2.north east)+(0.1, 0.1)$)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
\node[below right] at (sensor2.north west) {Sensor 2};
\end{scope}
\end{tikzpicture}
</pre> </pre>
</div> </div>
<div id="orge2c7af4" class="figure"> <div id="org540adfc" class="figure">
<p><img src="figs/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" /> <p><img src="figs/sensor_model_noise.png" alt="sensor_model_noise.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </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> <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>
</div> </div>
<div id="outline-container-org1353381" class="outline-2"> <div id="outline-container-org3e09ccd" class="outline-2">
<h2 id="org1353381"><span class="section-number-2">2</span> Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</h2> <h2 id="org3e09ccd"><span class="section-number-2">2</span> Sensor Fusion Architecture</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[block={4.0cm}{2.5cm}, fill=black!20!white, dashed] (P) {}; <span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
\node[above] at (P.north) {$P(s)$}; <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){};
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$); <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);
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$); <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>};
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$); <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$); <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) {};
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$); <span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
\node[block, left=1.4 of output1] (N1){$N_1(s)$}; <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) {};
\node[block, left=1.4 of output2] (N2){$N_2(s)$}; <span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
\node[addb={+}{}{}{}{-}, left=of N1] (sub) {};
\node[block, below=0.3 of P] (H2) {$H_2(s)$}; <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};
\draw[-&gt;] (inputw) node[above right]{$w$} -- (sub.west); <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
\draw[-&gt;] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (N2.west); <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
\draw[-&gt;] (inputu-|sub) node[branch]{} -- (sub.south);
\draw[-&gt;] (sub.east) -- (N1.west);
\draw[-&gt;] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
\draw[-&gt;] (N1.east) -- (output1)node[above left]{$z_1$};
\draw[-&gt;] (N2.east) -- (output2)node[above left]{$z_2$};
\end{tikzpicture}
</pre> </pre>
</div> </div>
<div id="org8ddefad" class="figure"> <div id="org896d2c3" class="figure">
<p><img src="figs/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" /> <p><img src="figs/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </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> <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>
</div> </div>
<div id="outline-container-org1189340" class="outline-2"> <div id="outline-container-org98e222d" class="outline-2">
<h2 id="org1189340"><span class="section-number-2">3</span> Sensor fusion architecture with sensor dynamics uncertainty</h2> <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="outline-text-2" id="text-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[branch] (x) at (0, 0); <span class="org-font-latex-sedate">\node</span>[block={3.5cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
\node[addb, above right=0.8 and 4 of x](add1){}; <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>};
\node[addb, below right=0.8 and 4 of x](add2){};
\node[block, above left=0.2 and 0.1 of add1](delta1){$\Delta_1(s)$};
\node[block, above left=0.2 and 0.1 of add2](delta2){$\Delta_2(s)$};
\node[block, left=0.5 of delta1](W1){$w_1(s)$};
\node[block, left=0.5 of delta2](W2){$w_2(s)$};
\node[block, right=0.5 of add1](H1){$H_1(s)$};
\node[block, right=0.5 of add2](H2){$H_2(s)$};
\node[addb, right=6 of x](add){};
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center); <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>);
\draw[-&gt;] (x.center) |- (add1.west); <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>);
\draw[-&gt;] (x.center) |- (add2.west);
\draw[-&gt;] ($(add1-|W1.west)+(-0.5, 0)$)node[branch](S1){} |- (W1.west);
\draw[-&gt;] ($(add2-|W2.west)+(-0.5, 0)$)node[branch](S1){} |- (W2.west);
\draw[-&gt;] (W1.east) -- (delta1.west);
\draw[-&gt;] (W2.east) -- (delta2.west);
\draw[-&gt;] (delta1.east) -| (add1.north);
\draw[-&gt;] (delta2.east) -| (add2.north);
\draw[-&gt;] (add1.east) -- (H1.west);
\draw[-&gt;] (add2.east) -- (H2.west);
\draw[-&gt;] (H1.east) -| (add.north);
\draw[-&gt;] (H2.east) -| (add.south);
\draw[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
\begin{scope}[on background layer] <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>);
\node[fit={($(H2.south-|x)+(-0.2, -0.3)$) ($(delta1.north east-|add.east)+(0.2, 0.4)$)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {}; <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>);
\node[below left] at (supersensor.north east) {Super Sensor}; <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>);
\node[block, fit={($(W1.north-|S1)+(-0.2, 0.2)$) ($(add1.south east)+(0.2, -0.3)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {}; <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>};
\node[above right] at (sensor1.south west) {Sensor 1}; <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>};
\node[block, fit={($(W2.north-|S1)+(-0.2, 0.2)$) ($(add2.south east)+(0.2, -0.3)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {}; <span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of N1] (sub) {};
\node[above right] at (sensor2.south west) {Sensor 2};
\end{scope} <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>};
\end{tikzpicture}
<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> </pre>
</div> </div>
<div id="org6316ce9" class="figure"> <div id="orgc47567c" class="figure">
<p><img src="figs/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" /> <p><img src="figs/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </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> <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>
</div> </div>
<div id="outline-container-org635364c" class="outline-2"> <div id="outline-container-org7b2be36" class="outline-2">
<h2 id="org635364c"><span class="section-number-2">4</span> Uncertainty set of the super sensor dynamics</h2> <h2 id="org7b2be36"><span class="section-number-2">4</span> Sensor Model - Uncertainty</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\begin{scope}[shift={(4, 0)}] <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>};
% Uncertainty Circle <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);
\node[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {}; <span class="org-font-latex-sedate">\draw</span>[-&gt;] (g1) |- (W1.west);
\path[draw, dotted] (0, 0) circle [radius=1.0]; <span class="org-font-latex-sedate">\draw</span>[-&gt;] (W1.east) -- (delta1.west);
\path[draw, dashed] (135:1.0) circle [radius=0.8]; <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>};
% Center of Circle <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
\node[below] at (0, 0){$1$}; <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};
\draw[&lt;-&gt;, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0); <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
\draw[&lt;-&gt;, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8); <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
\node[] (l1) at (2, 1.5) {$|w_1 H_1|$};
\draw[-&gt;, dashed, out=-90, in=0] (l1.south) to (r1);
\node[] (l2) at (-2.5, 1.5) {$|w_2 H_2|$};
\draw[-&gt;, dashed, out=0, in=-180] (l2.east) to (r2);
\draw[&lt;-&gt;, dashed] (0, 0) -- coordinate[near end](r3) ++(200:1.8);
\node[] (l3) at (-2.5, -1.5) {$|w_1 H_1| + |w_2 H_2|$};
\draw[-&gt;, dashed, out=90, in=-90] (l3.north) to (r3);
\end{scope}
% Real and Imaginary Axis
\draw[-&gt;] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
\draw[-&gt;] (0, -1.7) -- (0, 1.7) node[below left]{Im};
\draw[dashed] (0, 0) -- (tangent cs:node=c,point={(0, 0)},solution=2);
\draw[dashed] (1, 0) arc (0:28:1) node[midway, right]{$\Delta \phi$};
\end{tikzpicture}
</pre> </pre>
</div> </div>
<div id="orgdf90733" class="figure"> <div id="org3c8c032" class="figure">
<p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" /> <p><img src="figs/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </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> <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>
</div> </div>
<div id="outline-container-org8471952" class="outline-2"> <div id="outline-container-org201b812" class="outline-2">
<h2 id="org8471952"><span class="section-number-2">5</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2> <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="outline-text-2" id="text-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[block={4.0cm}{2.5cm}, fill=black!20!white, dashed] (P) {}; <span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
\node[above] at (P.north) {$P(s)$}; <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){};
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$); <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);
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$); <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>};
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$); <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$); <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) {};
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$); <span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
\node[block, left=1.4 of output1] (W1){$W_1(s)$}; <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) {};
\node[block, left=1.4 of output2] (W2){$W_2(s)$}; <span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
\node[addb={+}{}{}{}{-}, left=of W1] (sub) {}; <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};
\node[block, below=0.3 of P] (H2) {$H_2(s)$}; <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>}
\draw[-&gt;] (inputw) node[above right]{$w$} -- (sub.west);
\draw[-&gt;] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (W2.west);
\draw[-&gt;] (inputu-|sub) node[branch]{} -- (sub.south);
\draw[-&gt;] (sub.east) -- (W1.west);
\draw[-&gt;] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
\draw[-&gt;] (W1.east) -- (output1)node[above left]{$z_1$};
\draw[-&gt;] (W2.east) -- (output2)node[above left]{$z_2$};
\end{tikzpicture}
</pre> </pre>
</div> </div>
<div id="orgc7070d9" class="figure"> <div id="org4ef6676" class="figure">
<p><img src="figs/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" /> <p><img src="figs/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </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> <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>
</div> </div>
<div id="outline-container-orgd2abe63" class="outline-2"> <div id="outline-container-org295dc2a" class="outline-2">
<h2 id="orgd2abe63"><span class="section-number-2">6</span> Sensor fusion architecture with sensor dynamics uncertainty and noise</h2> <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="outline-text-2" id="text-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[branch] (x) at (0, 0); <span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(4, 0)}]
\node[addb, above right=1.2 and 3.7 of x](add1){};
\node[addb, below right=1.2 and 3.7 of x](add2){};
\node[block, above left=0.2 and 0.1 of add1](delta1){$\Delta_1(s)$};
\node[block, above left=0.2 and 0.1 of add2](delta2){$\Delta_2(s)$};
\node[block, left=0.5 of delta1](W1){$w_1(s)$};
\node[block, left=0.5 of delta2](W2){$w_2(s)$};
\node[addb, right=0.5 of add1](addn1){};
\node[addb, right=0.5 of add2](addn2){};
\node[block, above=0.5 of addn1](N1) {$N_1(s)$};
\node[block, above=0.5 of addn2](N2) {$N_2(s)$};
\node[block, right=1.2 of addn1](H1){$H_1(s)$};
\node[block, right=1.2 of addn2](H2){$H_2(s)$};
\node[addb, right=7.5 of x](add){};
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center); <span class="org-comment">% Uncertainty Circle</span>
\draw[-&gt;] (x.center) |- (add1.west); <span class="org-font-latex-sedate">\node</span>[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
\draw[-&gt;] (x.center) |- (add2.west); <span class="org-font-latex-sedate">\path</span>[draw, dotted] (0, 0) circle [radius=1.0];
\draw[-&gt;] ($(add1-|W1.west)+(-0.5, 0)$)node[branch](S1){} |- (W1.west); <span class="org-font-latex-sedate">\path</span>[draw, dashed] (135:1.0) circle [radius=0.8];
\draw[-&gt;] ($(add2-|W2.west)+(-0.5, 0)$)node[branch](S2){} |- (W2.west);
\draw[-&gt;] (W1.east) -- (delta1.west);
\draw[-&gt;] (W2.east) -- (delta2.west);
\draw[-&gt;] (delta1.east) -| (add1.north);
\draw[-&gt;] (delta2.east) -| (add2.north);
\draw[-&gt;] (add1.east) -- (addn1.west);
\draw[-&gt;] (add2.east) -- (addn2.west);
\draw[-&gt;] (addn1.east) -- (H1.west)node[above left]{$\hat{x}_1$};
\draw[-&gt;] (addn2.east) -- (H2.west)node[above left]{$\hat{x}_2$};
\draw[-&gt;] ($(N1.north)+(0,0.7)$) node[below right](n1){$\tilde{n}_1$} -- (N1.north);
\draw[-&gt;] ($(N2.north)+(0,0.7)$) node[below right](n2){$\tilde{n}_2$} -- (N2.north);
\draw[-&gt;] (N1.south) -- (addn1.north)node[above right]{$n_1$};
\draw[-&gt;] (N2.south) -- (addn2.north)node[above right]{$n_2$};
\draw[-&gt;] (H1.east) -| (add.north);
\draw[-&gt;] (H2.east) -| (add.south);
\draw[-&gt;] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
\begin{scope}[on background layer] <span class="org-comment">% Center of Circle</span>
\node[fit={($(add2.south-|x)+(-0.2, -0.4)$) ($(n1.north-|add.east)+(0.2, 0.3)$)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {}; <span class="org-font-latex-sedate">\node</span>[below] at (0, 0){<span class="org-font-latex-math">$1$</span>};
\node[below left] at (supersensor.north east) {Super Sensor};
\node[block, fit={($(S1|-add1.south)+(-0.2, -0.2)$) ($(n1.north-|N1.east)+(0.2, 0.1)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {}; <span class="org-font-latex-sedate">\draw</span>[&lt;-&gt;, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
\node[below right] at (sensor1.north west) {Sensor 1}; <span class="org-font-latex-sedate">\draw</span>[&lt;-&gt;, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
\node[block, fit={($(S2|-add2.south)+(-0.2, -0.2)$) ($(n2.north-|N2.east)+(0.2, 0.1)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {};
\node[below right] at (sensor2.north west) {Sensor 2}; <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>};
\end{scope} <span class="org-font-latex-sedate">\draw</span>[-&gt;, dashed, out=-90, in=0] (l1.south) to (r1);
\end{tikzpicture}
<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> </pre>
</div> </div>
<div id="org2a7478b" class="figure"> <div id="orgb4e2baf" class="figure">
<p><img src="figs/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" /> <p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </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> <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>
</div> </div>
<div id="outline-container-org25fbe7c" class="outline-2"> <div id="outline-container-orgff8ec60" class="outline-2">
<h2 id="org25fbe7c"><span class="section-number-2">7</span> Mixed H2/H-Infinity Synthesis</h2> <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="outline-text-2" id="text-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-latex">\begin{tikzpicture} <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>}
\node[block={5.0cm}{5.0cm}, fill=black!20!white, dashed] (P) {}; <span class="org-font-latex-sedate">\node</span>[block={4.2cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
\node[above] at (P.north) {$P(s)$}; <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>};
\coordinate[] (inputw) at ($(P.south west)!0.85!(P.north west) + (-0.7, 0)$); <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>);
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$); <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>);
\coordinate[] (output1) at ($(P.south east)!0.85!(P.north east) + ( 0.7, 0)$); <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>);
\coordinate[] (output2) at ($(P.south east)!0.7!(P.north east) + ( 0.7, 0)$); <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>);
\coordinate[] (output3) at ($(P.south east)!0.5!(P.north east) + ( 0.7, 0)$); <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>);
\coordinate[] (output4) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$);
\coordinate[] (outputv) at ($(P.south east)!0.15!(P.north east) + ( 0.7, 0)$);
\node[block, left=1.4 of output1] (W1){$W_1(s)$}; <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>};
\node[block, left=1.4 of output2] (W2){$W_2(s)$}; <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>};
\node[addb={+}{}{}{}{-}, left=1.6 of W1] (sub1) {}; <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) {};
\node[block, left=1.4 of output3] (N1){$N_1(s)$}; <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>};
\node[block, left=1.4 of output4] (N2){$N_2(s)$};
\node[addb={+}{}{}{}{-}, left=1 of N1] (sub2) {};
\node[block, below=0.3 of P] (H2) {$H_2(s)$}; <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);
\draw[-&gt;] (inputw) node[above right]{$w$} -- (sub1.west); <span class="org-font-latex-sedate">\draw</span>[-&gt;] (inputu-|sub) node[branch]{} -- (sub.south);
\draw[-&gt;] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (N2.west); <span class="org-font-latex-sedate">\draw</span>[-&gt;] (sub.east) -- (Wu1.west);
\draw[-&gt;] (inputu-|sub1) node[branch]{} -- (sub1.south); <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);
\draw[-&gt;] (inputu-|sub2) node[branch]{} -- (sub2.south); <span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu1.east) -- (W1.west);
\draw[-&gt;] (sub1|-W2) node[branch]{} -- (W2.west); <span class="org-font-latex-sedate">\draw</span>[-&gt;] (Wu2.east) -- (W2.west);
\draw[-&gt;] (sub1.east) -- (W1.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>};
\draw[-&gt;] (sub2.east) -- (N1.west); <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>};
\draw[-&gt;] ($(sub1.west)+(-0.6, 0)$) node[branch](w_branch){} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east); <span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
\draw[-&gt;] (w_branch|-sub2) node[branch]{} -- (sub2.west);
\draw[-&gt;] (W1.east) -- (output1)node[above left]{$z_1$};
\draw[-&gt;] (W2.east) -- (output2)node[above left]{$z_2$};
\draw[-&gt;] (N1.east) -- (output3)node[above left]{$z_3$};
\draw[-&gt;] (N2.east) -- (output4)node[above left]{$z_4$};
\end{tikzpicture}
</pre> </pre>
</div> </div>
<div id="org855c0bc" class="figure"> <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><img src="figs/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </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> <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> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2020-08-17 lun. 17:49</p> <p class="date">Created: 2020-11-12 jeu. 10:42</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -3,12 +3,8 @@
#+HTML_LINK_HOME: ../index.html #+HTML_LINK_HOME: ../index.html
#+HTML_LINK_UP: ../index.html #+HTML_LINK_UP: ../index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/> #+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
#+HTML_HEAD: <script src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script src="../js/readtheorg.js"></script>
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/papers/dehaeze20_optim_robus_compl_filte/tikz/}{config.tex}") #+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/papers/dehaeze20_optim_robus_compl_filte/tikz/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes #+PROPERTY: header-args:latex+ :imagemagick t :fit yes