Compare commits
No commits in common. "54ab59a00c90fb25082a12b1398e0deaa25ae84a" and "92f78dda185157c5795f31f7cd48c8290518bc94" have entirely different histories.
54ab59a00c
...
92f78dda18
184
css/htmlize.css
Normal file
184
css/htmlize.css
Normal file
@ -0,0 +1,184 @@
|
||||
.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;}
|
1134
css/readtheorg.css
Normal file
1134
css/readtheorg.css
Normal file
File diff suppressed because it is too large
Load Diff
34
index.html
34
index.html
@ -3,13 +3,17 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-11-12 jeu. 10:41 -->
|
||||
<!-- 2020-10-05 lun. 18:15 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Robust and Optimal Sensor Fusion</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Thomas Dehaeze" />
|
||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
<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>
|
||||
</head>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
@ -27,27 +31,27 @@
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<div id="outline-container-orgbc87854" class="outline-2">
|
||||
<h2 id="orgbc87854">Paper (<a href="paper/paper.pdf">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orgbc87854">
|
||||
<div id="outline-container-orgf5cebab" class="outline-2">
|
||||
<h2 id="orgf5cebab">Paper (<a href="paper/paper.pdf">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orgf5cebab">
|
||||
<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>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcdc5736" class="outline-2">
|
||||
<h2 id="orgcdc5736">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orgcdc5736">
|
||||
<div id="outline-container-orga3b4ff3" class="outline-2">
|
||||
<h2 id="orga3b4ff3">Matlab Scripts (<a href="matlab/index.html">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orga3b4ff3">
|
||||
<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.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge2a1477" class="outline-2">
|
||||
<h2 id="orge2a1477">Tikz Figures (<a href="tikz/index.html">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orge2a1477">
|
||||
<div id="outline-container-orgfc34d9c" class="outline-2">
|
||||
<h2 id="orgfc34d9c">Tikz Figures (<a href="tikz/index.html">link</a>)</h2>
|
||||
<div class="outline-text-2" id="text-orgfc34d9c">
|
||||
<p>
|
||||
All the figures for the paper have been generated using <a href="https://sourceforge.net/projects/pgf/">TikZ</a>.
|
||||
</p>
|
||||
@ -55,9 +59,9 @@ All the figures for the paper have been generated using <a href="https://sourcef
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org9317a8a" class="outline-2">
|
||||
<h2 id="org9317a8a">Cite this paper</h2>
|
||||
<div class="outline-text-2" id="text-org9317a8a">
|
||||
<div id="outline-container-orge0bb111" class="outline-2">
|
||||
<h2 id="orge0bb111">Cite this paper</h2>
|
||||
<div class="outline-text-2" id="text-orge0bb111">
|
||||
<p>
|
||||
To cite this paper use the following bibtex code.
|
||||
</p>
|
||||
|
10
index.org
10
index.org
@ -5,11 +5,15 @@
|
||||
#+HTML_LINK_HOME: ../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: 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:
|
||||
|
||||
#+begin_quote
|
||||
|
7
js/bootstrap.min.js
vendored
Normal file
7
js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
js/jquery.min.js
vendored
Normal file
4
js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
js/jquery.stickytableheaders.min.js
vendored
Normal file
1
js/jquery.stickytableheaders.min.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
!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);
|
85
js/readtheorg.js
Normal file
85
js/readtheorg.js
Normal file
@ -0,0 +1,85 @@
|
||||
$(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
|
||||
};
|
||||
}($));
|
2
js/siunitx.js
Normal file
2
js/siunitx.js
Normal file
File diff suppressed because one or more lines are too long
@ -3,13 +3,18 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-11-12 jeu. 10:42 -->
|
||||
<!-- 2020-10-05 lun. 15:08 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Robust and Optimal Sensor Fusion - Matlab Computation</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Thomas Dehaeze" />
|
||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
<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>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/dreampulse/computer-modern-web-font/master/fonts.css">
|
||||
<script>MathJax = {
|
||||
tex: {
|
||||
tags: 'ams',
|
||||
@ -21,59 +26,59 @@
|
||||
</head>
|
||||
<body>
|
||||
<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">
|
||||
<h1 class="title">Robust and Optimal Sensor Fusion - Matlab Computation</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgb558a2f">1. Sensor Description</a>
|
||||
<li><a href="#org0a492b7">1. Sensor Description</a>
|
||||
<ul>
|
||||
<li><a href="#org2e756d8">1.1. Sensor Dynamics</a></li>
|
||||
<li><a href="#orgf266a4b">1.2. Sensor Model Uncertainty</a></li>
|
||||
<li><a href="#orgb768f02">1.3. Sensor Noise</a></li>
|
||||
<li><a href="#org426c21e">1.4. Save Model</a></li>
|
||||
<li><a href="#org9575585">1.1. Sensor Dynamics</a></li>
|
||||
<li><a href="#orgec8c81d">1.2. Sensor Model Uncertainty</a></li>
|
||||
<li><a href="#org81d9a34">1.3. Sensor Noise</a></li>
|
||||
<li><a href="#org4e23f6c">1.4. Save Model</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgce0ac83">2. Introduction to Sensor Fusion</a>
|
||||
<li><a href="#org2cab1a2">2. Introduction to Sensor Fusion</a>
|
||||
<ul>
|
||||
<li><a href="#orgbb36114">2.1. Sensor Fusion Architecture</a></li>
|
||||
<li><a href="#org3a4f4b8">2.2. Super Sensor Noise</a></li>
|
||||
<li><a href="#org3f0594e">2.3. Super Sensor Dynamical Uncertainty</a></li>
|
||||
<li><a href="#org0cbc92d">2.1. Sensor Fusion Architecture</a></li>
|
||||
<li><a href="#orge9e0bd4">2.2. Super Sensor Noise</a></li>
|
||||
<li><a href="#orgefb4347">2.3. Super Sensor Dynamical Uncertainty</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org096192f">3. Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</a>
|
||||
<li><a href="#org5896b60">3. Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</a>
|
||||
<ul>
|
||||
<li><a href="#org9188eae">3.1. \(\mathcal{H}_2\) Synthesis</a></li>
|
||||
<li><a href="#org6d6d909">3.2. Super Sensor Noise</a></li>
|
||||
<li><a href="#org850d99e">3.3. Discrepancy between sensor dynamics and model</a></li>
|
||||
<li><a href="#orgf5a8a84">3.1. \(\mathcal{H}_2\) Synthesis</a></li>
|
||||
<li><a href="#org72159df">3.2. Super Sensor Noise</a></li>
|
||||
<li><a href="#org8ffba19">3.3. Discrepancy between sensor dynamics and model</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org6d1270a">4. Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</a>
|
||||
<li><a href="#org26ea7b1">4. Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</a>
|
||||
<ul>
|
||||
<li><a href="#orgc5a0221">4.1. Weighting Function used to bound the super sensor uncertainty</a></li>
|
||||
<li><a href="#org334f826">4.2. \(\mathcal{H}_\infty\) Synthesis</a></li>
|
||||
<li><a href="#org211e432">4.3. Super sensor uncertainty</a></li>
|
||||
<li><a href="#org7672e0e">4.4. Super sensor noise</a></li>
|
||||
<li><a href="#orgdcb47cf">4.5. Conclusion</a></li>
|
||||
<li><a href="#org8dfd9d2">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="#orga0267c6">4.3. Super sensor uncertainty</a></li>
|
||||
<li><a href="#org979fede">4.4. Super sensor noise</a></li>
|
||||
<li><a href="#orgda33992">4.5. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org49a7cc2">5. Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</a>
|
||||
<li><a href="#org15afe90">5. Optimal and Robust Sensor Fusion: Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</a>
|
||||
<ul>
|
||||
<li><a href="#org7ed8ed7">5.1. Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</a></li>
|
||||
<li><a href="#orgfb839cf">5.2. Obtained Super Sensor’s noise</a></li>
|
||||
<li><a href="#orgb8596ac">5.3. Obtained Super Sensor’s Uncertainty</a></li>
|
||||
<li><a href="#orgfcfa8a2">5.4. Conclusion</a></li>
|
||||
<li><a href="#org0f81a91">5.1. Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</a></li>
|
||||
<li><a href="#org417aabd">5.2. Obtained Super Sensor’s noise</a></li>
|
||||
<li><a href="#org2dce888">5.3. Obtained Super Sensor’s Uncertainty</a></li>
|
||||
<li><a href="#org47da78c">5.4. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgf267700">6. Matlab Functions</a>
|
||||
<li><a href="#org0afe5ef">6. Matlab Functions</a>
|
||||
<ul>
|
||||
<li><a href="#org005db82">6.1. <code>createWeight</code></a></li>
|
||||
<li><a href="#org816b32a">6.2. <code>plotMagUncertainty</code></a></li>
|
||||
<li><a href="#orgddb3773">6.3. <code>plotPhaseUncertainty</code></a></li>
|
||||
<li><a href="#orge81e522">6.1. <code>createWeight</code></a></li>
|
||||
<li><a href="#org37ec2b4">6.2. <code>plotMagUncertainty</code></a></li>
|
||||
<li><a href="#org9f73572">6.3. <code>plotPhaseUncertainty</code></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -84,27 +89,27 @@
|
||||
This document is arranged as follows:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Section <a href="#org3cd5225">1</a>: the sensors are described (dynamics, uncertainty, noise)</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="#orgbaf748a">3</a>: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor’s noise is minimized</li>
|
||||
<li>Section <a href="#orgea66128">4</a>: the \(\mathcal{H}_\infty\) synthesis is used to design complementary filters such that the super sensor’s uncertainty is bonded to acceptable values</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’s uncertainty and to lower the RMS value of the super sensor’s noise</li>
|
||||
<li>Section <a href="#org50a28ec">6</a>: Matlab functions used for the analysis are described</li>
|
||||
<li>Section <a href="#orgee25d07">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="#orgdd6b9ce">3</a>: the \(\mathcal{H}_2\) synthesis is used to design complementary filters such that the RMS value of the super sensor’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’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’s uncertainty and to lower the RMS value of the super sensor’s noise</li>
|
||||
<li>Section <a href="#orgf41dc8d">6</a>: Matlab functions used for the analysis are described</li>
|
||||
</ul>
|
||||
|
||||
<div id="outline-container-orgb558a2f" class="outline-2">
|
||||
<h2 id="orgb558a2f"><span class="section-number-2">1</span> Sensor Description</h2>
|
||||
<div id="outline-container-org0a492b7" class="outline-2">
|
||||
<h2 id="org0a492b7"><span class="section-number-2">1</span> Sensor Description</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
<a id="org3cd5225"></a>
|
||||
<a id="orgee25d07"></a>
|
||||
</p>
|
||||
<p>
|
||||
In Figure <a href="#orgd79f98f">1</a> is shown a schematic of a sensor model that is used in the following study.
|
||||
In Figure <a href="#org35e2340">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.
|
||||
</p>
|
||||
|
||||
<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="#orgd79f98f">1</a></caption>
|
||||
<table id="org2fe6194" 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>
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
@ -171,8 +176,8 @@ In this example, the measured quantity \(x\) is the velocity of an object.
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<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="#orgd79f98f">1</a></caption>
|
||||
<table id="org281ecb3" 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>
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
@ -216,18 +221,18 @@ In this example, the measured quantity \(x\) is the velocity of an object.
|
||||
</table>
|
||||
|
||||
|
||||
<div id="orgd79f98f" class="figure">
|
||||
<div id="org35e2340" class="figure">
|
||||
<p><img src="figs-paper/sensor_model_noise_uncertainty.png" alt="sensor_model_noise_uncertainty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Sensor Model</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2e756d8" class="outline-3">
|
||||
<h3 id="org2e756d8"><span class="section-number-3">1.1</span> Sensor Dynamics</h3>
|
||||
<div id="outline-container-org9575585" class="outline-3">
|
||||
<h3 id="org9575585"><span class="section-number-3">1.1</span> Sensor Dynamics</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
<a id="org01c4832"></a>
|
||||
<a id="org52415aa"></a>
|
||||
Let’s consider two sensors measuring the velocity of an object.
|
||||
</p>
|
||||
|
||||
@ -258,14 +263,14 @@ G2 = g_pos<span class="org-type">/</span>s<span class="org-type">/</span>(1 <spa
|
||||
|
||||
<p>
|
||||
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="#org3943238">1.2</a>.
|
||||
The true sensor dynamics has some uncertainty associated to it and described in section <a href="#orgf04439d">1.2</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org355b3fc">2</a>.
|
||||
Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org2d1ef0b">2</a>.
|
||||
</p>
|
||||
|
||||
<div id="org355b3fc" class="figure">
|
||||
<div id="org2d1ef0b" class="figure">
|
||||
<p><img src="figs/sensors_nominal_dynamics.png" alt="sensors_nominal_dynamics.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Sensor nominal dynamics from the velocity of the object to the output voltage</p>
|
||||
@ -273,12 +278,12 @@ Both sensor dynamics in \([\frac{V}{m/s}]\) are shown in Figure <a href="#org355
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf266a4b" class="outline-3">
|
||||
<h3 id="orgf266a4b"><span class="section-number-3">1.2</span> Sensor Model Uncertainty</h3>
|
||||
<div id="outline-container-orgec8c81d" class="outline-3">
|
||||
<h3 id="orgec8c81d"><span class="section-number-3">1.2</span> Sensor Model Uncertainty</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
<a id="org3943238"></a>
|
||||
The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure <a href="#orgd79f98f">1</a>).
|
||||
<a id="orgf04439d"></a>
|
||||
The uncertainty on the sensor dynamics is described by multiplicative uncertainty (Figure <a href="#org35e2340">1</a>).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -290,7 +295,7 @@ The true sensor dynamics \(G_i(s)\) is then described by \eqref{eq:sensor_dynami
|
||||
\end{equation}
|
||||
|
||||
<p>
|
||||
The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure <a href="#org2530a6e">3</a>.
|
||||
The weights \(W_i(s)\) representing the dynamical uncertainty are defined below and their magnitude is shown in Figure <a href="#org557e062">3</a>.
|
||||
</p>
|
||||
<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> ...
|
||||
@ -301,18 +306,18 @@ W2 = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure <a href="#org415740c">4</a>.
|
||||
The bode plot of the sensors nominal dynamics as well as their defined dynamical spread are shown in Figure <a href="#orgc218675">4</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org2530a6e" class="figure">
|
||||
<div id="org557e062" class="figure">
|
||||
<p><img src="figs/sensors_uncertainty_weights.png" alt="sensors_uncertainty_weights.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Magnitude of the multiplicative uncertainty weights \(|W_i(j\omega)|\)</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org415740c" class="figure">
|
||||
<div id="orgc218675" class="figure">
|
||||
<p><img src="figs/sensors_nominal_dynamics_and_uncertainty.png" alt="sensors_nominal_dynamics_and_uncertainty.png" />
|
||||
</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>
|
||||
@ -320,12 +325,12 @@ The bode plot of the sensors nominal dynamics as well as their defined dynamical
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb768f02" class="outline-3">
|
||||
<h3 id="orgb768f02"><span class="section-number-3">1.3</span> Sensor Noise</h3>
|
||||
<div id="outline-container-org81d9a34" class="outline-3">
|
||||
<h3 id="org81d9a34"><span class="section-number-3">1.3</span> Sensor Noise</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
<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="#orgd79f98f">1</a>).
|
||||
<a id="org71b587e"></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>).
|
||||
</p>
|
||||
\begin{equation}
|
||||
\Phi_{\tilde{n}_i}(\omega) = 1 \label{eq:unitary_noise_psd}
|
||||
@ -339,7 +344,7 @@ The Power Spectral Density of the sensor noise \(\Phi_{n_i}(\omega)\) is then co
|
||||
\end{equation}
|
||||
|
||||
<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="#org5e2cd13">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="#org51f9788">5</a>.
|
||||
</p>
|
||||
<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;
|
||||
@ -351,7 +356,7 @@ N2 = (Ginf<span class="org-type">*</span>s<span class="org-type">/</span>omegac
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org5e2cd13" class="figure">
|
||||
<div id="org51f9788" class="figure">
|
||||
<p><img src="figs/sensors_noise.png" alt="sensors_noise.png" />
|
||||
</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>
|
||||
@ -359,8 +364,8 @@ N2 = (Ginf<span class="org-type">*</span>s<span class="org-type">/</span>omegac
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org426c21e" class="outline-3">
|
||||
<h3 id="org426c21e"><span class="section-number-3">1.4</span> Save Model</h3>
|
||||
<div id="outline-container-org4e23f6c" class="outline-3">
|
||||
<h3 id="org4e23f6c"><span class="section-number-3">1.4</span> Save Model</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<p>
|
||||
All the dynamical systems representing the sensors are saved for further use.
|
||||
@ -374,27 +379,27 @@ All the dynamical systems representing the sensors are saved for further use.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgce0ac83" class="outline-2">
|
||||
<h2 id="orgce0ac83"><span class="section-number-2">2</span> Introduction to Sensor Fusion</h2>
|
||||
<div id="outline-container-org2cab1a2" class="outline-2">
|
||||
<h2 id="org2cab1a2"><span class="section-number-2">2</span> Introduction to Sensor Fusion</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
<a id="orge87db28"></a>
|
||||
<a id="orga64daad"></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbb36114" class="outline-3">
|
||||
<h3 id="orgbb36114"><span class="section-number-3">2.1</span> Sensor Fusion Architecture</h3>
|
||||
<div id="outline-container-org0cbc92d" class="outline-3">
|
||||
<h3 id="org0cbc92d"><span class="section-number-3">2.1</span> Sensor Fusion Architecture</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
<a id="org80d2a51"></a>
|
||||
<a id="org31e00a0"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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>).
|
||||
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>).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgffed4ec" class="figure">
|
||||
<div id="org48a16fd" class="figure">
|
||||
<p><img src="figs-paper/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Sensor Fusion Architecture</p>
|
||||
@ -418,11 +423,11 @@ The super sensor estimate \(\hat{x}\) is given by \eqref{eq:super_sensor_estimat
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3a4f4b8" class="outline-3">
|
||||
<h3 id="org3a4f4b8"><span class="section-number-3">2.2</span> Super Sensor Noise</h3>
|
||||
<div id="outline-container-orge9e0bd4" class="outline-3">
|
||||
<h3 id="orge9e0bd4"><span class="section-number-3">2.2</span> Super Sensor Noise</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
<a id="org3e73362"></a>
|
||||
<a id="orgff055a3"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -453,15 +458,15 @@ And the Root Mean Square (RMS) value of the super sensor noise \(\sigma_n\) is g
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3f0594e" class="outline-3">
|
||||
<h3 id="org3f0594e"><span class="section-number-3">2.3</span> Super Sensor Dynamical Uncertainty</h3>
|
||||
<div id="outline-container-orgefb4347" class="outline-3">
|
||||
<h3 id="orgefb4347"><span class="section-number-3">2.3</span> Super Sensor Dynamical Uncertainty</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
<a id="orgd73f82f"></a>
|
||||
<a id="org859b213"></a>
|
||||
</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="#org05e7617">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="#org54538d7">7</a>), the super sensor dynamics is then equals to:
|
||||
</p>
|
||||
|
||||
\begin{equation}
|
||||
@ -473,18 +478,18 @@ If we consider some dynamical uncertainty (the true system dynamics \(G_i\) not
|
||||
\end{equation}
|
||||
|
||||
|
||||
<div id="org05e7617" class="figure">
|
||||
<div id="org54538d7" class="figure">
|
||||
<p><img src="figs-paper/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Sensor Model including Dynamical Uncertainty</p>
|
||||
</div>
|
||||
|
||||
<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="#org1ff6ff8">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="#orgb11ef23">8</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org1ff6ff8" class="figure">
|
||||
<div id="orgb11ef23" class="figure">
|
||||
<p><img src="figs-paper/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Super Sensor model uncertainty displayed in the complex plane</p>
|
||||
@ -493,11 +498,11 @@ The uncertainty set of the transfer function from \(\hat{x}\) to \(x\) at freque
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org096192f" class="outline-2">
|
||||
<h2 id="org096192f"><span class="section-number-2">3</span> Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</h2>
|
||||
<div id="outline-container-org5896b60" class="outline-2">
|
||||
<h2 id="org5896b60"><span class="section-number-2">3</span> Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<p>
|
||||
<a id="orgbaf748a"></a>
|
||||
<a id="orgdd6b9ce"></a>
|
||||
</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\).
|
||||
@ -515,23 +520,23 @@ The RMS value of the super sensor noise is (neglecting the model uncertainty):
|
||||
|
||||
<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).
|
||||
This is done using the \(\mathcal{H}_2\) synthesis in Section <a href="#orgf1e20ae">3.1</a>.
|
||||
This is done using the \(\mathcal{H}_2\) synthesis in Section <a href="#org5bc9386">3.1</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9188eae" class="outline-3">
|
||||
<h3 id="org9188eae"><span class="section-number-3">3.1</span> \(\mathcal{H}_2\) Synthesis</h3>
|
||||
<div id="outline-container-orgf5a8a84" class="outline-3">
|
||||
<h3 id="orgf5a8a84"><span class="section-number-3">3.1</span> \(\mathcal{H}_2\) Synthesis</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<p>
|
||||
<a id="orgf1e20ae"></a>
|
||||
<a id="org5bc9386"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
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}.
|
||||
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}.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org95769ad" class="figure">
|
||||
<div id="orgd218886" class="figure">
|
||||
<p><img src="figs-paper/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p>
|
||||
@ -587,10 +592,10 @@ Finally, \(H_1(s)\) is defined as follows
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained complementary filters are shown in Figure <a href="#org02514a9">10</a>.
|
||||
The obtained complementary filters are shown in Figure <a href="#org8c7ba6b">10</a>.
|
||||
</p>
|
||||
|
||||
<div id="org02514a9" class="figure">
|
||||
<div id="org8c7ba6b" class="figure">
|
||||
<p><img src="figs/htwo_comp_filters.png" alt="htwo_comp_filters.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Obtained complementary filters using the \(\mathcal{H}_2\) Synthesis</p>
|
||||
@ -598,11 +603,11 @@ The obtained complementary filters are shown in Figure <a href="#org02514a9">10<
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6d6d909" class="outline-3">
|
||||
<h3 id="org6d6d909"><span class="section-number-3">3.2</span> Super Sensor Noise</h3>
|
||||
<div id="outline-container-org72159df" class="outline-3">
|
||||
<h3 id="org72159df"><span class="section-number-3">3.2</span> Super Sensor Noise</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<p>
|
||||
<a id="org497847a"></a>
|
||||
<a id="orgc7cc0a8"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -617,13 +622,13 @@ PSD_H2 = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <span
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained ASD are shown in Figure <a href="#orgd3690df">11</a>.
|
||||
The obtained ASD are shown in Figure <a href="#orge481bcd">11</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The RMS value of the individual sensors and of the super sensor are listed in Table <a href="#org04c5321">3</a>.
|
||||
The RMS value of the individual sensors and of the super sensor are listed in Table <a href="#org3918d27">3</a>.
|
||||
</p>
|
||||
<table id="org04c5321" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3918d27" 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>
|
||||
|
||||
<colgroup>
|
||||
@ -656,7 +661,7 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta
|
||||
</table>
|
||||
|
||||
|
||||
<div id="orgd3690df" class="figure">
|
||||
<div id="orge481bcd" class="figure">
|
||||
<p><img src="figs/psd_sensors_htwo_synthesis.png" alt="psd_sensors_htwo_synthesis.png" />
|
||||
</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>
|
||||
@ -665,19 +670,19 @@ The RMS value of the individual sensors and of the super sensor are listed in Ta
|
||||
<p>
|
||||
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 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="#org1ab022b">13</a>.
|
||||
The velocity estimates from the two sensors and from the super sensors are shown in Figure <a href="#org9c2a7e4">12</a>.
|
||||
The resulting noises are displayed in Figure <a href="#org4cc42bf">13</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgf112864" class="figure">
|
||||
<div id="org9c2a7e4" class="figure">
|
||||
<p><img src="figs/super_sensor_time_domain_h2.png" alt="super_sensor_time_domain_h2.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Noise of individual sensors and noise of the super sensor</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org1ab022b" class="figure">
|
||||
<div id="org4cc42bf" class="figure">
|
||||
<p><img src="figs/sensor_noise_H2_time_domain.png" alt="sensor_noise_H2_time_domain.png" />
|
||||
</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>
|
||||
@ -685,15 +690,15 @@ The resulting noises are displayed in Figure <a href="#org1ab022b">13</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org850d99e" class="outline-3">
|
||||
<h3 id="org850d99e"><span class="section-number-3">3.3</span> Discrepancy between sensor dynamics and model</h3>
|
||||
<div id="outline-container-org8ffba19" class="outline-3">
|
||||
<h3 id="org8ffba19"><span class="section-number-3">3.3</span> Discrepancy between sensor dynamics and model</h3>
|
||||
<div class="outline-text-3" id="text-3-3">
|
||||
<p>
|
||||
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.
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The super sensor dynamical uncertainty is shown in Figure <a href="#org35f4dc2">14</a>.
|
||||
The super sensor dynamical uncertainty is shown in Figure <a href="#org865879b">14</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -701,7 +706,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.
|
||||
</p>
|
||||
|
||||
<div id="org35f4dc2" class="figure">
|
||||
<div id="org865879b" class="figure">
|
||||
<p><img src="figs/super_sensor_dynamical_uncertainty_H2.png" alt="super_sensor_dynamical_uncertainty_H2.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 14: </span>Super sensor dynamical uncertainty when using the \(\mathcal{H}_2\) Synthesis</p>
|
||||
@ -710,11 +715,11 @@ As a result the super sensor signal can not be used for feedback applications ab
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6d1270a" class="outline-2">
|
||||
<h2 id="org6d1270a"><span class="section-number-2">4</span> Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</h2>
|
||||
<div id="outline-container-org26ea7b1" class="outline-2">
|
||||
<h2 id="org26ea7b1"><span class="section-number-2">4</span> Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<p>
|
||||
<a id="orgea66128"></a>
|
||||
<a id="org5d93f37"></a>
|
||||
</p>
|
||||
<p>
|
||||
We initially considered perfectly known sensor dynamics so that it can be perfectly inverted.
|
||||
@ -722,18 +727,18 @@ We initially considered perfectly known sensor dynamics so that it can be perfec
|
||||
|
||||
<p>
|
||||
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="#org3a26ad3">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="#org2b71ca6">15</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org3a26ad3" class="figure">
|
||||
<div id="org2b71ca6" class="figure">
|
||||
<p><img src="figs-paper/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 15: </span>Sensor fusion architecture with sensor dynamics uncertainty</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
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.
|
||||
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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -755,7 +760,7 @@ In order to specify a wanted upper bound on the dynamical uncertainty, a weight
|
||||
\end{align}
|
||||
|
||||
<p>
|
||||
The choice of \(W_u\) is presented in Section <a href="#org5b00e7a">4.1</a>.
|
||||
The choice of \(W_u\) is presented in Section <a href="#orgefed264">4.1</a>.
|
||||
</p>
|
||||
|
||||
|
||||
@ -773,15 +778,15 @@ The objective is to design \(H_1(s)\) and \(H_2(s)\) such that \(H_1(s) + H_2(s)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org7bd80be">4.2</a>.
|
||||
This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org2c990ce">4.2</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc5a0221" class="outline-3">
|
||||
<h3 id="orgc5a0221"><span class="section-number-3">4.1</span> Weighting Function used to bound the super sensor uncertainty</h3>
|
||||
<div id="outline-container-org8dfd9d2" class="outline-3">
|
||||
<h3 id="org8dfd9d2"><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">
|
||||
<p>
|
||||
<a id="org5b00e7a"></a>
|
||||
<a id="orgefed264"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -794,7 +799,7 @@ This is done using the \(\mathcal{H}_\infty\) synthesis in Section <a href="#org
|
||||
\end{align}
|
||||
|
||||
<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="#orge13d408">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="#orgdffee80">16</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@ -805,7 +810,7 @@ Wu = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orge13d408" class="figure">
|
||||
<div id="orgdffee80" class="figure">
|
||||
<p><img src="figs/weight_uncertainty_bounds_Wu.png" alt="weight_uncertainty_bounds_Wu.png" />
|
||||
</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>
|
||||
@ -813,19 +818,19 @@ Wu = createWeight(<span class="org-string">'n'</span>, 2, <span class="org-strin
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org334f826" class="outline-3">
|
||||
<h3 id="org334f826"><span class="section-number-3">4.2</span> \(\mathcal{H}_\infty\) Synthesis</h3>
|
||||
<div id="outline-container-org7422ade" class="outline-3">
|
||||
<h3 id="org7422ade"><span class="section-number-3">4.2</span> \(\mathcal{H}_\infty\) Synthesis</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
<a id="org7bd80be"></a>
|
||||
<a id="org2c990ce"></a>
|
||||
</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="#org461ce6a">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="#org59777f5">17</a> and is described by Equation \eqref{eq:Hinf_generalized_plant}.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org461ce6a" class="figure">
|
||||
<div id="org59777f5" class="figure">
|
||||
<p><img src="figs-paper/h_infinity_robust_fusion.png" alt="h_infinity_robust_fusion.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 17: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p>
|
||||
@ -861,7 +866,7 @@ And the \(\mathcal{H}_\infty\) synthesis is performed using the <code>hinfsyn</c
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<pre class="example" id="orge32bb33">
|
||||
<pre class="example">
|
||||
Test bounds: 0.7071 <= gamma <= 1.291
|
||||
|
||||
gamma X>=0 Y>=0 rho(XY)<1 p/f
|
||||
@ -892,11 +897,11 @@ The \(\mathcal{H}_\infty\) is successful as the \(\mathcal{H}_\infty\) norm of t
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained complementary filters as well as the wanted upper bounds are shown in Figure <a href="#org938a541">18</a>.
|
||||
The obtained complementary filters as well as the wanted upper bounds are shown in Figure <a href="#orga1806e3">18</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org938a541" class="figure">
|
||||
<div id="orga1806e3" class="figure">
|
||||
<p><img src="figs/hinf_comp_filters.png" alt="hinf_comp_filters.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 18: </span>Obtained complementary filters using the \(\mathcal{H}_\infty\) Synthesis</p>
|
||||
@ -904,11 +909,11 @@ The obtained complementary filters as well as the wanted upper bounds are shown
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org211e432" class="outline-3">
|
||||
<h3 id="org211e432"><span class="section-number-3">4.3</span> Super sensor uncertainty</h3>
|
||||
<div id="outline-container-orga0267c6" class="outline-3">
|
||||
<h3 id="orga0267c6"><span class="section-number-3">4.3</span> Super sensor uncertainty</h3>
|
||||
<div class="outline-text-3" id="text-4-3">
|
||||
<p>
|
||||
The super sensor dynamical uncertainty is displayed in Figure <a href="#org52cdb78">19</a>.
|
||||
The super sensor dynamical uncertainty is displayed in Figure <a href="#orge75f5ef">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)\).
|
||||
</p>
|
||||
|
||||
@ -917,7 +922,7 @@ The \(\mathcal{H}_\infty\) synthesis thus allows to design filters such that the
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org52cdb78" class="figure">
|
||||
<div id="orge75f5ef" class="figure">
|
||||
<p><img src="figs/super_sensor_dynamical_uncertainty_Hinf.png" alt="super_sensor_dynamical_uncertainty_Hinf.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 19: </span>Super sensor dynamical uncertainty (solid curve) when using the \(\mathcal{H}_\infty\) Synthesis</p>
|
||||
@ -925,12 +930,12 @@ The \(\mathcal{H}_\infty\) synthesis thus allows to design filters such that the
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7672e0e" class="outline-3">
|
||||
<h3 id="org7672e0e"><span class="section-number-3">4.4</span> Super sensor noise</h3>
|
||||
<div id="outline-container-org979fede" class="outline-3">
|
||||
<h3 id="org979fede"><span class="section-number-3">4.4</span> Super sensor noise</h3>
|
||||
<div class="outline-text-3" id="text-4-4">
|
||||
<p>
|
||||
We now compute the obtain Power Spectral Density of the super sensor’s noise.
|
||||
The Amplitude Spectral Densities are shown in Figure <a href="#org06b08df">20</a>.
|
||||
The Amplitude Spectral Densities are shown in Figure <a href="#org5aac73f">20</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@ -942,18 +947,18 @@ PSD_Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <spa
|
||||
</div>
|
||||
|
||||
<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="#org3cf92ce">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="#org3e08452">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.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org06b08df" class="figure">
|
||||
<div id="org5aac73f" class="figure">
|
||||
<p><img src="figs/psd_sensors_hinf_synthesis.png" alt="psd_sensors_hinf_synthesis.png" />
|
||||
</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>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<table id="org3cf92ce" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3e08452" 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>
|
||||
|
||||
<colgroup>
|
||||
@ -982,8 +987,8 @@ As expected, the super sensor obtained from the \(\mathcal{H}_\infty\) synthesis
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgdcb47cf" class="outline-3">
|
||||
<h3 id="orgdcb47cf"><span class="section-number-3">4.5</span> Conclusion</h3>
|
||||
<div id="outline-container-orgda33992" class="outline-3">
|
||||
<h3 id="orgda33992"><span class="section-number-3">4.5</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-4-5">
|
||||
<p>
|
||||
Using the \(\mathcal{H}_\infty\) synthesis, the dynamical uncertainty of the super sensor can be bounded to acceptable values.
|
||||
@ -996,22 +1001,22 @@ However, the RMS of the super sensor noise is not optimized as it was the case w
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org49a7cc2" class="outline-2">
|
||||
<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 id="outline-container-org15afe90" 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>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<p>
|
||||
<a id="org2aeafb3"></a>
|
||||
<a id="org9f98c16"></a>
|
||||
</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.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The sensor fusion architecture is shown in Figure <a href="#orgd633d12">21</a> (\(\hat{G}_i\) are omitted for space reasons).
|
||||
The sensor fusion architecture is shown in Figure <a href="#org3cc874e">21</a> (\(\hat{G}_i\) are omitted for space reasons).
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgd633d12" class="figure">
|
||||
<div id="org3cc874e" class="figure">
|
||||
<p><img src="figs-paper/sensor_fusion_arch_full.png" alt="sensor_fusion_arch_full.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 21: </span>Sensor fusion architecture with sensor dynamics uncertainty</p>
|
||||
@ -1026,18 +1031,18 @@ The goal is to design complementary filters such that:
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
To do so, we can use the Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis presented in Section <a href="#org669093b">5.1</a>.
|
||||
To do so, we can use the Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis presented in Section <a href="#orgbbc8594">5.1</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org7ed8ed7" class="outline-3">
|
||||
<h3 id="org7ed8ed7"><span class="section-number-3">5.1</span> Mixed \(\mathcal{H}_2\) / \(\mathcal{H}_\infty\) Synthesis</h3>
|
||||
<div id="outline-container-org0f81a91" class="outline-3">
|
||||
<h3 id="org0f81a91"><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">
|
||||
<p>
|
||||
<a id="org669093b"></a>
|
||||
<a id="orgbbc8594"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The synthesis architecture that is used here is shown in Figure <a href="#orgc870005">22</a>.
|
||||
The synthesis architecture that is used here is shown in Figure <a href="#orga971cdb">22</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -1049,7 +1054,7 @@ The filter \(H_2(s)\) is synthesized such that it:
|
||||
</ul>
|
||||
|
||||
|
||||
<div id="orgc870005" class="figure">
|
||||
<div id="orga971cdb" class="figure">
|
||||
<p><img src="figs-paper/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 22: </span>Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis</p>
|
||||
@ -1093,11 +1098,11 @@ And the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is performed.
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained complementary filters are shown in Figure <a href="#orgf37f308">23</a>.
|
||||
The obtained complementary filters are shown in Figure <a href="#org30e8a3f">23</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgf37f308" class="figure">
|
||||
<div id="org30e8a3f" class="figure">
|
||||
<p><img src="figs/htwo_hinf_comp_filters.png" alt="htwo_hinf_comp_filters.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 23: </span>Obtained complementary filters after mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis</p>
|
||||
@ -1105,19 +1110,19 @@ The obtained complementary filters are shown in Figure <a href="#orgf37f308">23<
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfb839cf" class="outline-3">
|
||||
<h3 id="orgfb839cf"><span class="section-number-3">5.2</span> Obtained Super Sensor’s noise</h3>
|
||||
<div id="outline-container-org417aabd" class="outline-3">
|
||||
<h3 id="org417aabd"><span class="section-number-3">5.2</span> Obtained Super Sensor’s noise</h3>
|
||||
<div class="outline-text-3" id="text-5-2">
|
||||
<p>
|
||||
The Amplitude Spectral Density of the super sensor’s noise is shown in Figure <a href="#orgb3c92e4">24</a>.
|
||||
The Amplitude Spectral Density of the super sensor’s noise is shown in Figure <a href="#orgfdfbf76">24</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A time domain simulation is shown in Figure <a href="#org4a0db9b">25</a>.
|
||||
A time domain simulation is shown in Figure <a href="#orgdf5905f">25</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The RMS values of the super sensor noise for the presented three synthesis are listed in Table <a href="#org3b10edf">5</a>.
|
||||
The RMS values of the super sensor noise for the presented three synthesis are listed in Table <a href="#org3b7df55">5</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@ -1129,20 +1134,20 @@ PSD_H2Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <s
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgb3c92e4" class="figure">
|
||||
<div id="orgfdfbf76" class="figure">
|
||||
<p><img src="figs/psd_sensors_htwo_hinf_synthesis.png" alt="psd_sensors_htwo_hinf_synthesis.png" />
|
||||
</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 id="org4a0db9b" class="figure">
|
||||
<div id="orgdf5905f" class="figure">
|
||||
<p><img src="figs/super_sensor_time_domain_h2_hinf.png" alt="super_sensor_time_domain_h2_hinf.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 25: </span>Noise of individual sensors and noise of the super sensor</p>
|
||||
</div>
|
||||
|
||||
<table id="org3b10edf" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
<table id="org3b7df55" 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>
|
||||
|
||||
<colgroup>
|
||||
@ -1176,15 +1181,15 @@ PSD_H2Hinf = abs(squeeze(freqresp(N1<span class="org-type">*</span>H1, freqs, <s
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb8596ac" class="outline-3">
|
||||
<h3 id="orgb8596ac"><span class="section-number-3">5.3</span> Obtained Super Sensor’s Uncertainty</h3>
|
||||
<div id="outline-container-org2dce888" class="outline-3">
|
||||
<h3 id="org2dce888"><span class="section-number-3">5.3</span> Obtained Super Sensor’s Uncertainty</h3>
|
||||
<div class="outline-text-3" id="text-5-3">
|
||||
<p>
|
||||
The uncertainty on the super sensor’s dynamics is shown in Figure <a href="#org11fe014">26</a>.
|
||||
The uncertainty on the super sensor’s dynamics is shown in Figure <a href="#orgb2d28c5">26</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org11fe014" class="figure">
|
||||
<div id="orgb2d28c5" class="figure">
|
||||
<p><img src="figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.png" alt="super_sensor_dynamical_uncertainty_Htwo_Hinf.png" />
|
||||
</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>
|
||||
@ -1192,8 +1197,8 @@ The uncertainty on the super sensor’s dynamics is shown in Figure <a href=
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfcfa8a2" class="outline-3">
|
||||
<h3 id="orgfcfa8a2"><span class="section-number-3">5.4</span> Conclusion</h3>
|
||||
<div id="outline-container-org47da78c" class="outline-3">
|
||||
<h3 id="org47da78c"><span class="section-number-3">5.4</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-5-4">
|
||||
<p>
|
||||
The mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of the complementary filters allows to:
|
||||
@ -1206,18 +1211,18 @@ The mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis of the complementary fi
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf267700" class="outline-2">
|
||||
<h2 id="orgf267700"><span class="section-number-2">6</span> Matlab Functions</h2>
|
||||
<div id="outline-container-org0afe5ef" class="outline-2">
|
||||
<h2 id="org0afe5ef"><span class="section-number-2">6</span> Matlab Functions</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<p>
|
||||
<a id="org50a28ec"></a>
|
||||
<a id="orgf41dc8d"></a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org005db82" class="outline-3">
|
||||
<h3 id="org005db82"><span class="section-number-3">6.1</span> <code>createWeight</code></h3>
|
||||
<div id="outline-container-orge81e522" class="outline-3">
|
||||
<h3 id="orge81e522"><span class="section-number-3">6.1</span> <code>createWeight</code></h3>
|
||||
<div class="outline-text-3" id="text-6-1">
|
||||
<p>
|
||||
<a id="orgb602691"></a>
|
||||
<a id="org89bad6d"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -1269,11 +1274,11 @@ This Matlab function is accessible <a href="src/createWeight.m">here</a>.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org816b32a" class="outline-3">
|
||||
<h3 id="org816b32a"><span class="section-number-3">6.2</span> <code>plotMagUncertainty</code></h3>
|
||||
<div id="outline-container-org37ec2b4" class="outline-3">
|
||||
<h3 id="org37ec2b4"><span class="section-number-3">6.2</span> <code>plotMagUncertainty</code></h3>
|
||||
<div class="outline-text-3" id="text-6-2">
|
||||
<p>
|
||||
<a id="org2963b0d"></a>
|
||||
<a id="org8739875"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -1324,11 +1329,11 @@ p.FaceAlpha = args.opacity;
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgddb3773" class="outline-3">
|
||||
<h3 id="orgddb3773"><span class="section-number-3">6.3</span> <code>plotPhaseUncertainty</code></h3>
|
||||
<div id="outline-container-org9f73572" class="outline-3">
|
||||
<h3 id="org9f73572"><span class="section-number-3">6.3</span> <code>plotPhaseUncertainty</code></h3>
|
||||
<div class="outline-text-3" id="text-6-3">
|
||||
<p>
|
||||
<a id="org8d340da"></a>
|
||||
<a id="org49e21eb"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -1392,7 +1397,7 @@ p.FaceAlpha = args.opacity;
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Thomas Dehaeze</p>
|
||||
<p class="date">Created: 2020-11-12 jeu. 10:42</p>
|
||||
<p class="date">Created: 2020-10-05 lun. 15:08</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,14 +1,19 @@
|
||||
#+TITLE: Robust and Optimal Sensor Fusion - Matlab Computation
|
||||
:DRAWER:
|
||||
#+HTML_LINK_HOME: ../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>
|
||||
#+HTML_LINK_HOME: ./index.html
|
||||
#+HTML_LINK_UP: ./index.html
|
||||
|
||||
#+BIND: org-latex-image-default-option "scale=1"
|
||||
#+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
|
||||
#+OPTIONS: toc:2
|
||||
|
||||
@ -1150,11 +1155,12 @@ The obtained complementary filters are shown in Figure [[fig:htwo_hinf_comp_filt
|
||||
plot(freqs, abs(squeeze(freqresp(H2, freqs, 'Hz'))), '-', 'DisplayName', '$H_2$');
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Magnitude'); set(gca, 'XTickLabel',[]);
|
||||
ylabel('Magnitude');
|
||||
set(gca, 'XTickLabel',[]);
|
||||
ylim([1e-3, 2]);
|
||||
legend('location', 'southeast', 'FontSize', 8);
|
||||
|
||||
% Phase
|
||||
% Magnitude
|
||||
ax2 = nexttile;
|
||||
hold on;
|
||||
plot(freqs, 180/pi*phase(squeeze(freqresp(H1, freqs, 'Hz'))), '-');
|
||||
|
BIN
matlab/index.pdf
BIN
matlab/index.pdf
Binary file not shown.
@ -14,13 +14,6 @@
|
||||
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
||||
#+AUTHOR: @@latex:thomas.dehaeze@esrf.fr@@
|
||||
#+AUTHOR: @@latex:}\and@@
|
||||
#+AUTHOR: @@latex:\IEEEauthorblockN{Verma Mohit}@@
|
||||
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
||||
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
||||
#+AUTHOR: @@latex:\textit{Precision Mechatronics Laboratory} \\@@
|
||||
#+AUTHOR: @@latex:\textit{University of Liege}, Belgium \\@@
|
||||
#+AUTHOR: @@latex:mohitverma.serc@csir.res.in@@
|
||||
#+AUTHOR: @@latex:}\and@@
|
||||
#+AUTHOR: @@latex:\IEEEauthorblockN{Collette Christophe}@@
|
||||
#+AUTHOR: @@latex:\IEEEauthorblockA{\textit{BEAMS Department}\\@@
|
||||
#+AUTHOR: @@latex:\textit{Free University of Brussels}, Belgium\\@@
|
||||
|
BIN
paper/paper.pdf
BIN
paper/paper.pdf
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
% Created 2020-10-26 lun. 18:25
|
||||
% Created 2020-10-25 dim. 10:05
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[conference]{IEEEtran}
|
||||
\usepackage[utf8]{inputenc}
|
||||
@ -34,8 +34,8 @@
|
||||
\renewcommand{\citedash}{--}
|
||||
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
||||
\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{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-26}
|
||||
\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 }}
|
||||
\date{2020-10-25}
|
||||
\title{Optimal and Robust Sensor Fusion}
|
||||
\begin{document}
|
||||
|
||||
@ -50,7 +50,7 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
|
||||
\end{IEEEkeywords}
|
||||
|
||||
\section{Introduction}
|
||||
\label{sec:org2820158}
|
||||
\label{sec:org2a4e2c2}
|
||||
\label{sec:introduction}
|
||||
|
||||
\begin{itemize}
|
||||
@ -61,11 +61,11 @@ Complementary Filters, Sensor Fusion, H-Infinity Synthesis
|
||||
\end{itemize}
|
||||
|
||||
\section{Optimal Super Sensor Noise: \(\mathcal{H}_2\) Synthesis}
|
||||
\label{sec:org2513ad9}
|
||||
\label{sec:orgb0fb3f0}
|
||||
\label{sec:optimal_fusion}
|
||||
|
||||
\subsection{Sensor Model}
|
||||
\label{sec:orgbcc6cb6}
|
||||
\label{sec:org9e4a17b}
|
||||
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)\).
|
||||
|
||||
@ -101,7 +101,7 @@ In order to obtain an estimate \(\hat{x}_i\) of \(x\), a model \(\hat{G}_i\) of
|
||||
\end{figure}
|
||||
|
||||
\subsection{Sensor Fusion Architecture}
|
||||
\label{sec:orgdb526ec}
|
||||
\label{sec:orge7841b3}
|
||||
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.
|
||||
@ -138,7 +138,7 @@ In such case, the super sensor estimate \(\hat{x}\) is equal to \(x\) plus the n
|
||||
\end{equation}
|
||||
|
||||
\subsection{Super Sensor Noise}
|
||||
\label{sec:org48c0d52}
|
||||
\label{sec:orge42a7c0}
|
||||
Let's note \(n\) the super sensor noise.
|
||||
\begin{equation}
|
||||
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.
|
||||
|
||||
\subsection{\(\mathcal{H}_2\) Synthesis of Complementary Filters}
|
||||
\label{sec:org0d9384e}
|
||||
\label{sec:org150fd28}
|
||||
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\):
|
||||
@ -196,7 +196,7 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Example}
|
||||
\label{sec:org99002de}
|
||||
\label{sec:org4abe5c3}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
@ -232,7 +232,7 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Robustness Problem}
|
||||
\label{sec:org262893f}
|
||||
\label{sec:org1116fe0}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
@ -247,11 +247,11 @@ We then have that the \(\mathcal{H}_2\) synthesis applied on \(P_{\mathcal{H}_2}
|
||||
\end{figure}
|
||||
|
||||
\section{Robust Sensor Fusion: \(\mathcal{H}_\infty\) Synthesis}
|
||||
\label{sec:org7c9047e}
|
||||
\label{sec:orgcf4e02a}
|
||||
\label{sec:robust_fusion}
|
||||
|
||||
\subsection{Representation of Sensor Dynamical Uncertainty}
|
||||
\label{sec:org7bd4379}
|
||||
\label{sec:org45ee620}
|
||||
|
||||
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.
|
||||
@ -271,7 +271,7 @@ The sensor can then be represented as shown in Figure \ref{fig:sensor_model_unce
|
||||
\end{figure}
|
||||
|
||||
\subsection{Sensor Fusion Architecture}
|
||||
\label{sec:org0b8ce2b}
|
||||
\label{sec:orgec549bc}
|
||||
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:
|
||||
@ -296,7 +296,7 @@ As \(H_1\) and \(H_2\) are complementary filters, we finally have:
|
||||
\end{figure}
|
||||
|
||||
\subsection{Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org725af92}
|
||||
\label{sec:org6867184}
|
||||
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.
|
||||
|
||||
\subsection{\(\mathcal{H_\infty}\) Synthesis of Complementary Filters}
|
||||
\label{sec:org941ed72}
|
||||
\label{sec:org9cbbe5b}
|
||||
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.
|
||||
@ -357,7 +357,7 @@ The \(\mathcal{H}_\infty\) norm of Eq. \eqref{eq:Hinf_norm} is equals to \(\sigm
|
||||
\end{figure}
|
||||
|
||||
\subsection{Example}
|
||||
\label{sec:org7df520f}
|
||||
\label{sec:orgfc0d330}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\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}
|
||||
\label{sec:org75a038a}
|
||||
\label{sec:org81d3977}
|
||||
\label{sec:optimal_robust_fusion}
|
||||
|
||||
\subsection{Sensor with noise and model uncertainty}
|
||||
\label{sec:org3810d6b}
|
||||
\label{sec:orgcd51fc4}
|
||||
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)\).
|
||||
@ -417,7 +417,7 @@ Multiplying by the inverse of the nominal model of the sensor dynamics gives an
|
||||
\end{figure}
|
||||
|
||||
\subsection{Sensor Fusion Architecture}
|
||||
\label{sec:org3758b1e}
|
||||
\label{sec:org32c4c98}
|
||||
|
||||
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}
|
||||
|
||||
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||
\label{sec:org06317f4}
|
||||
\label{sec:org73e0335}
|
||||
|
||||
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}
|
||||
|
||||
\subsection{Example}
|
||||
\label{sec:org42ee165}
|
||||
\label{sec:orga68c808}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
@ -506,27 +506,27 @@ The synthesis objective is to:
|
||||
\end{figure}
|
||||
|
||||
\section{Experimental Validation}
|
||||
\label{sec:orge381a2a}
|
||||
\label{sec:orga4af6ce}
|
||||
\label{sec:experimental_validation}
|
||||
|
||||
\subsection{Experimental Setup}
|
||||
\label{sec:org473ab00}
|
||||
\label{sec:orgab10fd3}
|
||||
|
||||
\subsection{Sensor Noise and Dynamical Uncertainty}
|
||||
\label{sec:orgebcb65d}
|
||||
\label{sec:orgc6d5bae}
|
||||
|
||||
\subsection{Mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||
\label{sec:org0259d19}
|
||||
\label{sec:orga5c7815}
|
||||
|
||||
\subsection{Super Sensor Noise and Dynamical Uncertainty}
|
||||
\label{sec:orgdb5d29f}
|
||||
\label{sec:orgd7da409}
|
||||
|
||||
\section{Conclusion}
|
||||
\label{sec:org07df454}
|
||||
\label{sec:org6eddbc8}
|
||||
\label{sec:conclusion}
|
||||
|
||||
\section{Acknowledgment}
|
||||
\label{sec:org7b7e461}
|
||||
\label{sec:org44ed488}
|
||||
|
||||
\bibliography{ref}
|
||||
\end{document}
|
||||
|
517
tikz/config.html
517
tikz/config.html
@ -3,80 +3,310 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-11-12 jeu. 10:41 -->
|
||||
<!-- 2019-08-01 jeu. 17:46 -->
|
||||
<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>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Thomas Dehaeze" />
|
||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
<style type="text/css">
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
.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>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
<a accesskey="h" href="../index.html"> UP </a>
|
||||
|
|
||||
<a accesskey="H" href="../index.html"> HOME </a>
|
||||
</div><div id="content">
|
||||
<div id="content">
|
||||
<h1 class="title">LaTeX Configuration for Tikz Figures</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org563923f">1. Packages</a></li>
|
||||
<li><a href="#orgbba2842">2. Tikz related packages</a></li>
|
||||
<li><a href="#org78bd760">3. Tikz Libraries</a></li>
|
||||
<li><a href="#orga2a8c2c">4. PGF Plot libraries and config</a></li>
|
||||
<li><a href="#orgb16e8c1">5. Setup size of figures</a></li>
|
||||
<li><a href="#org7a055a0">6. Setup Arrows style</a></li>
|
||||
<li><a href="#org337891d">7. Colors</a></li>
|
||||
<li><a href="#org9fba3bd">8. Control</a>
|
||||
<li><a href="#org485d2f8">1. Packages</a></li>
|
||||
<li><a href="#org8222280">2. Tikz related packages</a></li>
|
||||
<li><a href="#org983f090">3. Tikz Libraries</a></li>
|
||||
<li><a href="#org382b6c8">4. PGF Plot libraries and config</a></li>
|
||||
<li><a href="#orgabed042">5. Setup size of figures</a></li>
|
||||
<li><a href="#org7ec52e4">6. Setup Arrows style</a></li>
|
||||
<li><a href="#orgadcf4fa">7. Colors</a></li>
|
||||
<li><a href="#orgf8644bb">8. Control</a>
|
||||
<ul>
|
||||
<li><a href="#orgad61177">8.1. Blocks</a></li>
|
||||
<li><a href="#org747abfd">8.2. Branches</a></li>
|
||||
<li><a href="#org9eb0276">8.3. Hand Writen Style</a></li>
|
||||
<li><a href="#org68d7293">8.4. DAC</a></li>
|
||||
<li><a href="#org703d0a7">8.5. ADC</a></li>
|
||||
<li><a href="#org525abad">8.6. Gain</a></li>
|
||||
<li><a href="#orgab3fd46">8.7. Add / Substract / Divide / Multiply block</a></li>
|
||||
<li><a href="#orgb58c271">8.1. Blocks</a></li>
|
||||
<li><a href="#org30e8430">8.2. <span class="todo TODO">TODO</span> Branches</a></li>
|
||||
<li><a href="#org53c66b2">8.3. <span class="todo TODO">TODO</span> Hand Writen Style</a></li>
|
||||
<li><a href="#orgbe652e9">8.4. DAC</a></li>
|
||||
<li><a href="#orgbc82de4">8.5. ADC</a></li>
|
||||
<li><a href="#org340b1a4">8.6. <span class="todo TODO">TODO</span> Gain</a></li>
|
||||
<li><a href="#org275aed0">8.7. Add / Substract / Divide / Multiply block</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org6dddda4">9. Plots</a>
|
||||
<li><a href="#orga0bb999">9. Plots</a>
|
||||
<ul>
|
||||
<li><a href="#org5f52280">9.1. Grid</a></li>
|
||||
<li><a href="#org59e26cb">9.2. Lines</a></li>
|
||||
<li><a href="#orgbc1d944">9.3. Ticks</a></li>
|
||||
<li><a href="#org0b17a46">9.4. Size</a></li>
|
||||
<li><a href="#orge253709">9.5. Label</a></li>
|
||||
<li><a href="#org0136e6e">9.6. Legend</a></li>
|
||||
<li><a href="#org6c9488e">9.7. Upper and Lower bounds</a></li>
|
||||
<li><a href="#org68481dd">9.8. Pole</a></li>
|
||||
<li><a href="#org4b90ce8">9.9. Zero</a></li>
|
||||
<li><a href="#org335716c">9.1. Grid</a></li>
|
||||
<li><a href="#org63e134b">9.2. Lines</a></li>
|
||||
<li><a href="#org14023c7">9.3. Ticks</a></li>
|
||||
<li><a href="#org97ff77a">9.4. Size</a></li>
|
||||
<li><a href="#orgbd0ce9a">9.5. Label</a></li>
|
||||
<li><a href="#org7c80336">9.6. Legend</a></li>
|
||||
<li><a href="#org882899e">9.7. Upper and Lower bounds</a></li>
|
||||
<li><a href="#org028ac81">9.8. Pole</a></li>
|
||||
<li><a href="#org2d51358">9.9. Zero</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgddaa691">10. Mechanical</a>
|
||||
<li><a href="#org152b1b6">10. Mechanical</a>
|
||||
<ul>
|
||||
<li><a href="#orga04ed0c">10.1. Spring</a></li>
|
||||
<li><a href="#org5037f72">10.2. Coil</a></li>
|
||||
<li><a href="#org16357a8">10.3. Damper</a></li>
|
||||
<li><a href="#orgd56dea9">10.4. Actuator</a></li>
|
||||
<li><a href="#org39bd1d0">10.5. Ground</a></li>
|
||||
<li><a href="#org5225a31">10.6. Force Sensor</a></li>
|
||||
<li><a href="#org6c262c1">10.7. Inertial Sensor</a></li>
|
||||
<li><a href="#org4071fb1">10.8. Axis Rotator</a></li>
|
||||
<li><a href="#org66470c0">10.9. Cross</a></li>
|
||||
<li><a href="#org6eb8134">10.10. Piezoelectric actuator</a></li>
|
||||
<li><a href="#org6b9bc4d">10.11. Voice coil</a></li>
|
||||
<li><a href="#orga9075d9">10.1. Spring</a></li>
|
||||
<li><a href="#orgc290c7c">10.2. Coil</a></li>
|
||||
<li><a href="#org642ecab">10.3. Damper</a></li>
|
||||
<li><a href="#org7603957">10.4. Actuator</a></li>
|
||||
<li><a href="#orgdcbbf5e">10.5. Ground</a></li>
|
||||
<li><a href="#org24c87d5">10.6. Force Sensor</a></li>
|
||||
<li><a href="#org85aab6a">10.7. Inertial Sensor</a></li>
|
||||
<li><a href="#orgf07d1e3">10.8. Axis Rotator</a></li>
|
||||
<li><a href="#org091ff6f">10.9. Cross</a></li>
|
||||
<li><a href="#orgf570b65">10.10. Piezoelectric actuator</a></li>
|
||||
<li><a href="#org816eebe">10.11. Voice coil</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org69d7a0b">11. Optics</a></li>
|
||||
<li><a href="#org0283a14">12. Misc</a></li>
|
||||
<li><a href="#org6860135">13. More Defaults specific to this paper</a></li>
|
||||
<li><a href="#orgb095cdb">11. Optics</a></li>
|
||||
<li><a href="#org06358e3">12. Misc</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org563923f" class="outline-2">
|
||||
<h2 id="org563923f"><span class="section-number-2">1</span> Packages</h2>
|
||||
<div id="outline-container-org485d2f8" class="outline-2">
|
||||
<h2 id="org485d2f8"><span class="section-number-2">1</span> Packages</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>[<span class="org-variable-name">utf8</span>]{<span class="org-function-name">inputenc</span>}
|
||||
@ -122,8 +352,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbba2842" class="outline-2">
|
||||
<h2 id="orgbba2842"><span class="section-number-2">2</span> Tikz related packages</h2>
|
||||
<div id="outline-container-org8222280" class="outline-2">
|
||||
<h2 id="org8222280"><span class="section-number-2">2</span> Tikz related packages</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">tikz</span>} <span class="org-comment">% Tikz</span>
|
||||
@ -137,8 +367,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org78bd760" class="outline-2">
|
||||
<h2 id="org78bd760"><span class="section-number-2">3</span> Tikz Libraries</h2>
|
||||
<div id="outline-container-org983f090" class="outline-2">
|
||||
<h2 id="org983f090"><span class="section-number-2">3</span> Tikz Libraries</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\usetikzlibrary</span>{arrows} <span class="org-comment">% Arrow tip library</span>
|
||||
@ -165,8 +395,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga2a8c2c" class="outline-2">
|
||||
<h2 id="orga2a8c2c"><span class="section-number-2">4</span> PGF Plot libraries and config</h2>
|
||||
<div id="outline-container-org382b6c8" class="outline-2">
|
||||
<h2 id="org382b6c8"><span class="section-number-2">4</span> PGF Plot libraries and config</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\usepgfplotslibrary</span>{patchplots}
|
||||
@ -179,8 +409,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb16e8c1" class="outline-2">
|
||||
<h2 id="orgb16e8c1"><span class="section-number-2">5</span> Setup size of figures</h2>
|
||||
<div id="outline-container-orgabed042" class="outline-2">
|
||||
<h2 id="orgabed042"><span class="section-number-2">5</span> Setup size of figures</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\newlength</span></span>{<span class="org-font-latex-sedate"><span class="org-function-name">\fheight</span></span>}
|
||||
@ -193,8 +423,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7a055a0" class="outline-2">
|
||||
<h2 id="org7a055a0"><span class="section-number-2">6</span> Setup Arrows style</h2>
|
||||
<div id="outline-container-org7ec52e4" class="outline-2">
|
||||
<h2 id="org7ec52e4"><span class="section-number-2">6</span> Setup Arrows style</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{>=Stealth}
|
||||
@ -205,8 +435,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org337891d" class="outline-2">
|
||||
<h2 id="org337891d"><span class="section-number-2">7</span> Colors</h2>
|
||||
<div id="outline-container-orgadcf4fa" class="outline-2">
|
||||
<h2 id="orgadcf4fa"><span class="section-number-2">7</span> Colors</h2>
|
||||
<div class="outline-text-2" id="text-7">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\usepackage</span></span>{<span class="org-function-name">xcolor</span>}<span class="org-comment">% Color extension</span>
|
||||
@ -228,12 +458,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9fba3bd" class="outline-2">
|
||||
<h2 id="org9fba3bd"><span class="section-number-2">8</span> Control</h2>
|
||||
<div id="outline-container-orgf8644bb" class="outline-2">
|
||||
<h2 id="orgf8644bb"><span class="section-number-2">8</span> Control</h2>
|
||||
<div class="outline-text-2" id="text-8">
|
||||
</div>
|
||||
<div id="outline-container-orgad61177" class="outline-3">
|
||||
<h3 id="orgad61177"><span class="section-number-3">8.1</span> Blocks</h3>
|
||||
<div id="outline-container-orgb58c271" class="outline-3">
|
||||
<h3 id="orgb58c271"><span class="section-number-3">8.1</span> Blocks</h3>
|
||||
<div class="outline-text-3" id="text-8-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -250,8 +480,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org747abfd" class="outline-3">
|
||||
<h3 id="org747abfd"><span class="section-number-3">8.2</span> Branches</h3>
|
||||
<div id="outline-container-org30e8430" class="outline-3">
|
||||
<h3 id="org30e8430"><span class="section-number-3">8.2</span> <span class="todo TODO">TODO</span> Branches</h3>
|
||||
<div class="outline-text-3" id="text-8-2">
|
||||
<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]
|
||||
@ -262,8 +492,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9eb0276" class="outline-3">
|
||||
<h3 id="org9eb0276"><span class="section-number-3">8.3</span> Hand Writen Style</h3>
|
||||
<div id="outline-container-org53c66b2" class="outline-3">
|
||||
<h3 id="org53c66b2"><span class="section-number-3">8.3</span> <span class="todo TODO">TODO</span> Hand Writen Style</h3>
|
||||
<div class="outline-text-3" id="text-8-3">
|
||||
<p>
|
||||
Usefull for schematic plots
|
||||
@ -275,8 +505,8 @@ Usefull for schematic plots
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org68d7293" class="outline-3">
|
||||
<h3 id="org68d7293"><span class="section-number-3">8.4</span> DAC</h3>
|
||||
<div id="outline-container-orgbe652e9" class="outline-3">
|
||||
<h3 id="orgbe652e9"><span class="section-number-3">8.4</span> DAC</h3>
|
||||
<div class="outline-text-3" id="text-8-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -290,8 +520,8 @@ Usefull for schematic plots
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org703d0a7" class="outline-3">
|
||||
<h3 id="org703d0a7"><span class="section-number-3">8.5</span> ADC</h3>
|
||||
<div id="outline-container-orgbc82de4" class="outline-3">
|
||||
<h3 id="orgbc82de4"><span class="section-number-3">8.5</span> ADC</h3>
|
||||
<div class="outline-text-3" id="text-8-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -306,8 +536,8 @@ Usefull for schematic plots
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org525abad" class="outline-3">
|
||||
<h3 id="org525abad"><span class="section-number-3">8.6</span> Gain</h3>
|
||||
<div id="outline-container-org340b1a4" class="outline-3">
|
||||
<h3 id="org340b1a4"><span class="section-number-3">8.6</span> <span class="todo TODO">TODO</span> Gain</h3>
|
||||
<div class="outline-text-3" id="text-8-6">
|
||||
<p>
|
||||
Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
@ -348,8 +578,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgab3fd46" class="outline-3">
|
||||
<h3 id="orgab3fd46"><span class="section-number-3">8.7</span> Add / Substract / Divide / Multiply block</h3>
|
||||
<div id="outline-container-org275aed0" class="outline-3">
|
||||
<h3 id="org275aed0"><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="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>
|
||||
@ -361,7 +591,7 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
inner sep = 0pt,
|
||||
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>},
|
||||
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>}
|
||||
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode=\tikzlastnode</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>
|
||||
<span class="org-font-latex-sedate">\fi</span>
|
||||
@ -391,7 +621,7 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
inner sep = 0pt,
|
||||
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>},
|
||||
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>}
|
||||
append after command={<span class="org-font-latex-sedate">\pgfextra</span>{<span class="org-font-latex-sedate">\let\mainnode=\tikzlastnode</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>
|
||||
<span class="org-font-latex-sedate">\fi</span>
|
||||
@ -414,12 +644,12 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6dddda4" class="outline-2">
|
||||
<h2 id="org6dddda4"><span class="section-number-2">9</span> Plots</h2>
|
||||
<div id="outline-container-orga0bb999" class="outline-2">
|
||||
<h2 id="orga0bb999"><span class="section-number-2">9</span> Plots</h2>
|
||||
<div class="outline-text-2" id="text-9">
|
||||
</div>
|
||||
<div id="outline-container-org5f52280" class="outline-3">
|
||||
<h3 id="org5f52280"><span class="section-number-3">9.1</span> Grid</h3>
|
||||
<div id="outline-container-org335716c" class="outline-3">
|
||||
<h3 id="org335716c"><span class="section-number-3">9.1</span> Grid</h3>
|
||||
<div class="outline-text-3" id="text-9-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\pgfplotsset</span>{grid style={black}}
|
||||
@ -432,8 +662,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org59e26cb" class="outline-3">
|
||||
<h3 id="org59e26cb"><span class="section-number-3">9.2</span> Lines</h3>
|
||||
<div id="outline-container-org63e134b" class="outline-3">
|
||||
<h3 id="org63e134b"><span class="section-number-3">9.2</span> Lines</h3>
|
||||
<div class="outline-text-3" id="text-9-2">
|
||||
<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>
|
||||
@ -447,8 +677,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbc1d944" class="outline-3">
|
||||
<h3 id="orgbc1d944"><span class="section-number-3">9.3</span> Ticks</h3>
|
||||
<div id="outline-container-org14023c7" class="outline-3">
|
||||
<h3 id="org14023c7"><span class="section-number-3">9.3</span> Ticks</h3>
|
||||
<div class="outline-text-3" id="text-9-3">
|
||||
<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}}}
|
||||
@ -460,8 +690,8 @@ Maybe use <code>isosceles</code> instead of regular polygon?
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0b17a46" class="outline-3">
|
||||
<h3 id="org0b17a46"><span class="section-number-3">9.4</span> Size</h3>
|
||||
<div id="outline-container-org97ff77a" class="outline-3">
|
||||
<h3 id="org97ff77a"><span class="section-number-3">9.4</span> Size</h3>
|
||||
<div class="outline-text-3" id="text-9-4">
|
||||
<p>
|
||||
If <code>scale only axis=false</code> (the default), pgfplots will try to produce the desired width including labels, titles and ticks.
|
||||
@ -473,8 +703,8 @@ If <code>scale only axis=false</code> (the default), pgfplots will try to produc
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge253709" class="outline-3">
|
||||
<h3 id="orge253709"><span class="section-number-3">9.5</span> Label</h3>
|
||||
<div id="outline-container-orgbd0ce9a" class="outline-3">
|
||||
<h3 id="orgbd0ce9a"><span class="section-number-3">9.5</span> Label</h3>
|
||||
<div class="outline-text-3" id="text-9-5">
|
||||
<p>
|
||||
Used to align all of ylabel of one figure.
|
||||
@ -486,8 +716,8 @@ Used to align all of ylabel of one figure.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0136e6e" class="outline-3">
|
||||
<h3 id="org0136e6e"><span class="section-number-3">9.6</span> Legend</h3>
|
||||
<div id="outline-container-org7c80336" class="outline-3">
|
||||
<h3 id="org7c80336"><span class="section-number-3">9.6</span> Legend</h3>
|
||||
<div class="outline-text-3" id="text-9-6">
|
||||
<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>
|
||||
@ -524,8 +754,8 @@ Used to align all of ylabel of one figure.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6c9488e" class="outline-3">
|
||||
<h3 id="org6c9488e"><span class="section-number-3">9.7</span> Upper and Lower bounds</h3>
|
||||
<div id="outline-container-org882899e" class="outline-3">
|
||||
<h3 id="org882899e"><span class="section-number-3">9.7</span> Upper and Lower bounds</h3>
|
||||
<div class="outline-text-3" id="text-9-7">
|
||||
<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}}]
|
||||
@ -553,8 +783,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org68481dd" class="outline-3">
|
||||
<h3 id="org68481dd"><span class="section-number-3">9.8</span> Pole</h3>
|
||||
<div id="outline-container-org028ac81" class="outline-3">
|
||||
<h3 id="org028ac81"><span class="section-number-3">9.8</span> Pole</h3>
|
||||
<div class="outline-text-3" id="text-9-8">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -573,8 +803,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4b90ce8" class="outline-3">
|
||||
<h3 id="org4b90ce8"><span class="section-number-3">9.9</span> Zero</h3>
|
||||
<div id="outline-container-org2d51358" class="outline-3">
|
||||
<h3 id="org2d51358"><span class="section-number-3">9.9</span> Zero</h3>
|
||||
<div class="outline-text-3" id="text-9-9">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -594,12 +824,12 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgddaa691" class="outline-2">
|
||||
<h2 id="orgddaa691"><span class="section-number-2">10</span> Mechanical</h2>
|
||||
<div id="outline-container-org152b1b6" class="outline-2">
|
||||
<h2 id="org152b1b6"><span class="section-number-2">10</span> Mechanical</h2>
|
||||
<div class="outline-text-2" id="text-10">
|
||||
</div>
|
||||
<div id="outline-container-orga04ed0c" class="outline-3">
|
||||
<h3 id="orga04ed0c"><span class="section-number-3">10.1</span> Spring</h3>
|
||||
<div id="outline-container-orga9075d9" class="outline-3">
|
||||
<h3 id="orga9075d9"><span class="section-number-3">10.1</span> Spring</h3>
|
||||
<div class="outline-text-3" id="text-10-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -620,8 +850,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5037f72" class="outline-3">
|
||||
<h3 id="org5037f72"><span class="section-number-3">10.2</span> Coil</h3>
|
||||
<div id="outline-container-orgc290c7c" class="outline-3">
|
||||
<h3 id="orgc290c7c"><span class="section-number-3">10.2</span> Coil</h3>
|
||||
<div class="outline-text-3" id="text-10-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -642,8 +872,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org16357a8" class="outline-3">
|
||||
<h3 id="org16357a8"><span class="section-number-3">10.3</span> Damper</h3>
|
||||
<div id="outline-container-org642ecab" class="outline-3">
|
||||
<h3 id="org642ecab"><span class="section-number-3">10.3</span> Damper</h3>
|
||||
<div class="outline-text-3" id="text-10-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -670,8 +900,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd56dea9" class="outline-3">
|
||||
<h3 id="orgd56dea9"><span class="section-number-3">10.4</span> Actuator</h3>
|
||||
<div id="outline-container-org7603957" class="outline-3">
|
||||
<h3 id="org7603957"><span class="section-number-3">10.4</span> Actuator</h3>
|
||||
<div class="outline-text-3" id="text-10-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -701,8 +931,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org39bd1d0" class="outline-3">
|
||||
<h3 id="org39bd1d0"><span class="section-number-3">10.5</span> Ground</h3>
|
||||
<div id="outline-container-orgdcbbf5e" class="outline-3">
|
||||
<h3 id="orgdcbbf5e"><span class="section-number-3">10.5</span> Ground</h3>
|
||||
<div class="outline-text-3" id="text-10-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -724,8 +954,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5225a31" class="outline-3">
|
||||
<h3 id="org5225a31"><span class="section-number-3">10.6</span> Force Sensor</h3>
|
||||
<div id="outline-container-org24c87d5" class="outline-3">
|
||||
<h3 id="org24c87d5"><span class="section-number-3">10.6</span> Force Sensor</h3>
|
||||
<div class="outline-text-3" id="text-10-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -754,8 +984,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6c262c1" class="outline-3">
|
||||
<h3 id="org6c262c1"><span class="section-number-3">10.7</span> Inertial Sensor</h3>
|
||||
<div id="outline-container-org85aab6a" class="outline-3">
|
||||
<h3 id="org85aab6a"><span class="section-number-3">10.7</span> Inertial Sensor</h3>
|
||||
<div class="outline-text-3" id="text-10-7">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -783,8 +1013,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4071fb1" class="outline-3">
|
||||
<h3 id="org4071fb1"><span class="section-number-3">10.8</span> Axis Rotator</h3>
|
||||
<div id="outline-container-orgf07d1e3" class="outline-3">
|
||||
<h3 id="orgf07d1e3"><span class="section-number-3">10.8</span> Axis Rotator</h3>
|
||||
<div class="outline-text-3" id="text-10-8">
|
||||
<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>
|
||||
@ -795,8 +1025,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org66470c0" class="outline-3">
|
||||
<h3 id="org66470c0"><span class="section-number-3">10.9</span> Cross</h3>
|
||||
<div id="outline-container-org091ff6f" class="outline-3">
|
||||
<h3 id="org091ff6f"><span class="section-number-3">10.9</span> Cross</h3>
|
||||
<div class="outline-text-3" id="text-10-9">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzstyle</span>{cross}=[path picture={
|
||||
@ -809,8 +1039,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6eb8134" class="outline-3">
|
||||
<h3 id="org6eb8134"><span class="section-number-3">10.10</span> Piezoelectric actuator</h3>
|
||||
<div id="outline-container-orgf570b65" class="outline-3">
|
||||
<h3 id="orgf570b65"><span class="section-number-3">10.10</span> Piezoelectric actuator</h3>
|
||||
<div class="outline-text-3" id="text-10-10">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -827,7 +1057,7 @@ And we add the corresdonding
|
||||
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-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>)
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -838,8 +1068,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6b9bc4d" class="outline-3">
|
||||
<h3 id="org6b9bc4d"><span class="section-number-3">10.11</span> Voice coil</h3>
|
||||
<div id="outline-container-org816eebe" class="outline-3">
|
||||
<h3 id="org816eebe"><span class="section-number-3">10.11</span> Voice coil</h3>
|
||||
<div class="outline-text-3" id="text-10-11">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\def\voicecoil</span>#1#2#3{
|
||||
@ -850,7 +1080,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\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</span>/1.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/1</span>.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\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>
|
||||
@ -865,26 +1095,26 @@ And we add the corresdonding
|
||||
<span class="org-comment">% ======================</span>
|
||||
<span class="org-comment">% Magnet</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</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">\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"><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=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-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">\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"><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">% Coil</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">\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">\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-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</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</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*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">\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>
|
||||
@ -893,7 +1123,7 @@ And we add the corresdonding
|
||||
<span class="org-comment">% Coordinates</span>
|
||||
<span class="org-comment">% ======================</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</span>-0.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-0</span>.5*<span class="org-font-latex-sedate">\magnethg</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-comment">% Magnet</span>
|
||||
@ -910,8 +1140,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org69d7a0b" class="outline-2">
|
||||
<h2 id="org69d7a0b"><span class="section-number-2">11</span> Optics</h2>
|
||||
<div id="outline-container-orgb095cdb" class="outline-2">
|
||||
<h2 id="orgb095cdb"><span class="section-number-2">11</span> Optics</h2>
|
||||
<div class="outline-text-2" id="text-11">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -939,8 +1169,8 @@ And we add the corresdonding
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0283a14" class="outline-2">
|
||||
<h2 id="org0283a14"><span class="section-number-2">12</span> Misc</h2>
|
||||
<div id="outline-container-org06358e3" class="outline-2">
|
||||
<h2 id="org06358e3"><span class="section-number-2">12</span> Misc</h2>
|
||||
<div class="outline-text-2" id="text-12">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate">\tikzset</span>{<span class="org-comment">%</span>
|
||||
@ -956,22 +1186,11 @@ And we add the corresdonding
|
||||
</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 id="postamble" class="status">
|
||||
<p class="author">Author: Thomas Dehaeze</p>
|
||||
<p class="date">Created: 2020-11-12 jeu. 10:41</p>
|
||||
<p class="date">Created: 2019-08-01 jeu. 17:46</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,10 +1,11 @@
|
||||
#+TITLE: LaTeX Configuration for Tikz Figures
|
||||
:DRAWER:
|
||||
#+HTML_LINK_HOME: ../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>
|
||||
#+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>
|
||||
|
||||
#+PROPERTY: header-args:latex+ :tangle config.tex
|
||||
#+PROPERTY: header-args:latex+ :exports code
|
||||
|
659
tikz/index.html
659
tikz/index.html
@ -3,13 +3,17 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2020-11-12 jeu. 10:42 -->
|
||||
<!-- 2020-08-17 lun. 17:49 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Robust and Optimal Sensor Fusion - Tikz Figures</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Thomas Dehaeze" />
|
||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
<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>MathJax = {
|
||||
tex: {
|
||||
tags: 'ams',
|
||||
@ -30,16 +34,13 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#orgde691cc">1. Sensor Model - Noise</a></li>
|
||||
<li><a href="#org3e09ccd">2. Sensor Fusion Architecture</a></li>
|
||||
<li><a href="#org98e222d">3. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li>
|
||||
<li><a href="#org7b2be36">4. Sensor Model - Uncertainty</a></li>
|
||||
<li><a href="#org201b812">5. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
|
||||
<li><a href="#org295dc2a">6. Uncertainty set of the super sensor dynamics</a></li>
|
||||
<li><a href="#orgff8ec60">7. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
|
||||
<li><a href="#org77a9624">8. Sensor Model - Noise and Uncertainty</a></li>
|
||||
<li><a href="#org194f17b">9. Sensor fusion architecture with sensor dynamics uncertainty and noise</a></li>
|
||||
<li><a href="#org92adb06">10. Mixed H2/H-Infinity Synthesis</a></li>
|
||||
<li><a href="#org4e2a932">1. Sensor Fusion Architecture</a></li>
|
||||
<li><a href="#org1353381">2. Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</a></li>
|
||||
<li><a href="#org1189340">3. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
|
||||
<li><a href="#org635364c">4. Uncertainty set of the super sensor dynamics</a></li>
|
||||
<li><a href="#org8471952">5. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
|
||||
<li><a href="#orgd2abe63">6. Sensor fusion architecture with sensor dynamics uncertainty and noise</a></li>
|
||||
<li><a href="#org25fbe7c">7. Mixed H2/H-Infinity Synthesis</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -47,504 +48,360 @@
|
||||
Configuration file is accessible <a href="config.html">here</a>.
|
||||
</p>
|
||||
|
||||
<div id="outline-container-orgde691cc" class="outline-2">
|
||||
<h2 id="orgde691cc"><span class="section-number-2">1</span> Sensor Model - Noise</h2>
|
||||
<div id="outline-container-org4e2a932" class="outline-2">
|
||||
<h2 id="org4e2a932"><span class="section-number-2">1</span> Sensor Fusion Architecture</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.5 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
\node[block, above right=1.0 and 0.5 of x](G1){$G_1(s)$};
|
||||
\node[block, below right=1.0 and 0.5 of x](G2){$G_2(s)$};
|
||||
\node[addb, right=0.4 of G1](add1){};
|
||||
\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){};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[<-] (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>[->] (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>[->] (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[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (G1.west);
|
||||
\draw[->] (x.center) |- (G2.west);
|
||||
\draw[->] (G1.east) -- (add1.west);
|
||||
\draw[->] (G2.east) -- (add2.west);
|
||||
\draw[->] (N1.south) -- (add1.north)node[above right]{$n_1$};
|
||||
\draw[->] (N2.south) -- (add2.north)node[above right]{$n_2$};
|
||||
\draw[<-] (N1.north) -- ++(0, 0.6)node[below right](n1){$\tilde{n}_1$};
|
||||
\draw[<-] (N2.north) -- ++(0, 0.6)node[below right](n2){$\tilde{n}_2$};
|
||||
\draw[->] (add1.east) -- (H1.west)node[above left]{$\hat{x}_1$};
|
||||
\draw[->] (add2.east) -- (H2.west)node[above left]{$\hat{x}_2$};
|
||||
\draw[->] (H1) -| (add.north);
|
||||
\draw[->] (H2) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
|
||||
<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>}
|
||||
\begin{scope}[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) {};
|
||||
\node[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
\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) {};
|
||||
\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>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org540adfc" class="figure">
|
||||
<p><img src="figs/sensor_model_noise.png" alt="sensor_model_noise.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Sensor Model (<a href="./figs/sensor_model_noise.png">png</a>, <a href="./figs/sensor_model_noise.pdf">pdf</a>).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3e09ccd" class="outline-2">
|
||||
<h2 id="org3e09ccd"><span class="section-number-2">2</span> Sensor Fusion Architecture</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, above right=1.05 and 0.6 of x](add1){};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, below right=1.05 and 0.6 of x](add2){};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add1](G1){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of add2](G2){<span class="org-font-latex-math">$G</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.6 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add1](N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, above=0.5 of add2](N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, right=5.3 of x](add){};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add2.east) -- (G2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (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>[<-] (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>[<-] (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>[->] (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>[->] (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>[->] (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>[->] (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>[->] (H1) -| (add.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (H2) -| (add.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
|
||||
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(n1.north east-|add.east)+(0.2, 0.2)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n1.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>) (<span class="org-font-latex-math">$(n2.north west)$</span>)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org896d2c3" class="figure">
|
||||
<div id="orge2c7af4" class="figure">
|
||||
<p><img src="figs/sensor_fusion_noise_arch.png" alt="sensor_fusion_noise_arch.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Sensor Fusion Architecture (<a href="./figs/sensor_fusion_noise_arch.png">png</a>, <a href="./figs/sensor_fusion_noise_arch.pdf">pdf</a>).</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org98e222d" class="outline-2">
|
||||
<h2 id="org98e222d"><span class="section-number-2">3</span> Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<div id="outline-container-org1353381" class="outline-2">
|
||||
<h2 id="org1353381"><span class="section-number-2">2</span> Architecture used for \(\mathcal{H}_2\) synthesis of complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[block={3.5cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2}$</span>};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[block={4.0cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
\node[above] at (P.north) {$P(s)$};
|
||||
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-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>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
|
||||
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$);
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (N1){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (N2){<span class="org-font-latex-math">$N</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of N1] (sub) {};
|
||||
\node[block, left=1.4 of output1] (N1){$N_1(s)$};
|
||||
\node[block, left=1.4 of output2] (N2){$N_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=of N1] (sub) {};
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
\node[block, below=0.3 of P] (H2) {$H_2(s)$};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (N1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (<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>[->] (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>[->] (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>}
|
||||
\draw[->] (inputw) node[above right]{$w$} -- (sub.west);
|
||||
\draw[->] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (N2.west);
|
||||
\draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
\draw[->] (sub.east) -- (N1.west);
|
||||
\draw[->] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
|
||||
\draw[->] (N1.east) -- (output1)node[above left]{$z_1$};
|
||||
\draw[->] (N2.east) -- (output2)node[above left]{$z_2$};
|
||||
\end{tikzpicture}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgc47567c" class="figure">
|
||||
<div id="org8ddefad" class="figure">
|
||||
<p><img src="figs/h_two_optimal_fusion.png" alt="h_two_optimal_fusion.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters (<a href="./figs/h_two_optimal_fusion.png">png</a>, <a href="./figs/h_two_optimal_fusion.pdf">pdf</a>).</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7b2be36" class="outline-2">
|
||||
<h2 id="org7b2be36"><span class="section-number-2">4</span> Sensor Model - Uncertainty</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<div id="outline-container-org1189340" class="outline-2">
|
||||
<h2 id="org1189340"><span class="section-number-2">3</span> Sensor fusion architecture with sensor dynamics uncertainty</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[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>};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
\node[addb, above right=0.8 and 4 of x](add1){};
|
||||
\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){};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(g1)+(-0.6,0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (add1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (g1) |- (W1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (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[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (add1.west);
|
||||
\draw[->] (x.center) |- (add2.west);
|
||||
\draw[->] ($(add1-|W1.west)+(-0.5, 0)$)node[branch](S1){} |- (W1.west);
|
||||
\draw[->] ($(add2-|W2.west)+(-0.5, 0)$)node[branch](S1){} |- (W2.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (W2.east) -- (delta2.west);
|
||||
\draw[->] (delta1.east) -| (add1.north);
|
||||
\draw[->] (delta2.east) -| (add2.north);
|
||||
\draw[->] (add1.east) -- (H1.west);
|
||||
\draw[->] (add2.east) -- (H2.west);
|
||||
\draw[->] (H1.east) -| (add.north);
|
||||
\draw[->] (H2.east) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
\begin{scope}[on background layer]
|
||||
\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) {};
|
||||
\node[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
\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) {};
|
||||
\node[above right] at (sensor1.south west) {Sensor 1};
|
||||
\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) {};
|
||||
\node[above right] at (sensor2.south west) {Sensor 2};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org3c8c032" class="figure">
|
||||
<p><img src="figs/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Sensor Model including dynamical uncertainty (<a href="./figs/sensor_model_uncertainty.png">png</a>, <a href="./figs/sensor_model_uncertainty.pdf">pdf</a>).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org201b812" class="outline-2">
|
||||
<h2 id="org201b812"><span class="section-number-2">5</span> Sensor fusion architecture with sensor dynamics uncertainty</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[branch] (x) at (0, 0);
|
||||
<span class="org-font-latex-sedate">\node</span>[branch, above right=0.8 and 0.2 of x](b1){};
|
||||
<span class="org-font-latex-sedate">\node</span>[branch, below right=0.8 and 0.2 of x](b2){};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b1](W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, above right=0.3 and 0.25 of b2](W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W1](delta1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of W2](delta2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\Delta</span></span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b1-|delta1](add1){};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, right=0.3 of b2-|delta2](add2){};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add1](G1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.3 of add2](G2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G1](Ginv1){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.7 of G2](Ginv2){<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{G}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-math">{-1}$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv1](H1){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, right=0.35 of Ginv2](H2){<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb, right=6.8 of x](add){};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (x.center);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (add2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add2.east) -- (G2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (b1) |- (W1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (b2) |- (W2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (delta2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta2.east) -| (add2.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (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>[->] (Ginv1.east) -- (H1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (Ginv2.east) -- (H2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (H1.east) -| (add.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (H2.east) -| (add.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.7, 0) node[above left]{<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\hat</span></span><span class="org-font-latex-math">{x}$</span>};
|
||||
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[on background layer]
|
||||
<span class="org-font-latex-sedate">\node</span>[fit={(<span class="org-font-latex-math">$(H2.south-|x)+(-0.2, -0.3)$</span>) (<span class="org-font-latex-math">$(delta1.north east-|add.east)+(0.2, 0.3)$</span>)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b1|-W1.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G1.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor 1};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, fit={(<span class="org-font-latex-math">$(b2|-W2.north) + (-0.15, 0.15)$</span>) (<span class="org-font-latex-math">$(G2.south east)+(0.15, -0.15)$</span>)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor2.north east) {Sensor 2};
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org4ef6676" class="figure">
|
||||
<div id="org6316ce9" class="figure">
|
||||
<p><img src="figs/sensor_fusion_arch_uncertainty.png" alt="sensor_fusion_arch_uncertainty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Sensor fusion architecture with sensor dynamics uncertainty (<a href="./figs/sensor_fusion_arch_uncertainty.png">png</a>, <a href="./figs/sensor_fusion_arch_uncertainty.pdf">pdf</a>).</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org295dc2a" class="outline-2">
|
||||
<h2 id="org295dc2a"><span class="section-number-2">6</span> Uncertainty set of the super sensor dynamics</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<div id="outline-container-org635364c" class="outline-2">
|
||||
<h2 id="org635364c"><span class="section-number-2">4</span> Uncertainty set of the super sensor dynamics</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(4, 0)}]
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\begin{scope}[shift={(4, 0)}]
|
||||
|
||||
<span class="org-comment">% Uncertainty Circle</span>
|
||||
<span class="org-font-latex-sedate">\node</span>[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||||
<span class="org-font-latex-sedate">\path</span>[draw, dotted] (0, 0) circle [radius=1.0];
|
||||
<span class="org-font-latex-sedate">\path</span>[draw, dashed] (135:1.0) circle [radius=0.8];
|
||||
% Uncertainty Circle
|
||||
\node[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||||
\path[draw, dotted] (0, 0) circle [radius=1.0];
|
||||
\path[draw, dashed] (135:1.0) circle [radius=0.8];
|
||||
|
||||
<span class="org-comment">% Center of Circle</span>
|
||||
<span class="org-font-latex-sedate">\node</span>[below] at (0, 0){<span class="org-font-latex-math">$1$</span>};
|
||||
% Center of Circle
|
||||
\node[below] at (0, 0){$1$};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[<->, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||||
<span class="org-font-latex-sedate">\draw</span>[<->, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
|
||||
\draw[<->, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||||
\draw[<->, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[] (l1) at (2, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1|$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->, dashed, out=-90, in=0] (l1.south) to (r1);
|
||||
\node[] (l1) at (2, 1.5) {$|w_1 H_1|$};
|
||||
\draw[->, dashed, out=-90, in=0] (l1.south) to (r1);
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[] (l2) at (-2.5, 1.5) {<span class="org-font-latex-math">$|W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2 H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2|$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->, dashed, out=0, in=-180] (l2.east) to (r2);
|
||||
\node[] (l2) at (-2.5, 1.5) {$|w_2 H_2|$};
|
||||
\draw[->, dashed, out=0, in=-180] (l2.east) to (r2);
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[<->, 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>[->, 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>}
|
||||
\draw[<->, 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[->, dashed, out=90, in=-90] (l3.north) to (r3);
|
||||
\end{scope}
|
||||
|
||||
<span class="org-comment">% Real and Imaginary Axis</span>
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (0, -1.7) -- (0, 1.7) node[below left]{Im};
|
||||
% Real and Imaginary Axis
|
||||
\draw[->] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
|
||||
\draw[->] (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>}
|
||||
\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>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgb4e2baf" class="figure">
|
||||
<div id="orgdf90733" class="figure">
|
||||
<p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Uncertainty region of the super sensor dynamics in the complex plane (solid circle), of the sensor 1 (dotted circle) and of the sensor 2 (dashed circle) (<a href="./figs/uncertainty_set_super_sensor.png">png</a>, <a href="./figs/uncertainty_set_super_sensor.pdf">pdf</a>).</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgff8ec60" class="outline-2">
|
||||
<h2 id="orgff8ec60"><span class="section-number-2">7</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-7">
|
||||
<div id="outline-container-org8471952" class="outline-2">
|
||||
<h2 id="org8471952"><span class="section-number-2">5</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">{</span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\mathcal</span></span><span class="org-font-latex-math">{H}</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\infty</span></span><span class="org-font-latex-math">}$</span>};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[block={4.0cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
\node[above] at (P.north) {$P(s)$};
|
||||
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.5!(P.north west) + (-0.7, 0)$</span>);
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-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>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.5!(P.north east) + ( 0.7, 0)$</span>);
|
||||
<span class="org-font-latex-sedate">\coordinate</span>[] (outputv) at (<span class="org-font-latex-math">$(P.south east)!0.2!(P.north east) + ( 0.7, 0)$</span>);
|
||||
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$);
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output1] (W1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.9 of output2] (W2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W1] (Wu1){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[block, left=0.4 of W2] (Wu2){<span class="org-font-latex-math">$W</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">u$</span>};
|
||||
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of Wu1] (sub) {};
|
||||
\node[block, left=1.4 of output1] (W1){$W_1(s)$};
|
||||
\node[block, left=1.4 of output2] (W2){$W_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=of W1] (sub) {};
|
||||
|
||||
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H2) {<span class="org-font-latex-math">$H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
\node[block, below=0.3 of P] (H2) {$H_2(s)$};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (H2.west) -| (<span class="org-font-latex-math">$(inputu)+(0.35, 0)$</span>) node[above]{<span class="org-font-latex-math">$u$</span>} -- (Wu2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (Wu1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (<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>[->] (Wu1.east) -- (W1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (Wu2.east) -- (W2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (output2)node[above left]{<span class="org-font-latex-math">$z</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2$</span>};
|
||||
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
\draw[->] (inputw) node[above right]{$w$} -- (sub.west);
|
||||
\draw[->] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (W2.west);
|
||||
\draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
\draw[->] (sub.east) -- (W1.west);
|
||||
\draw[->] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
|
||||
\draw[->] (W1.east) -- (output1)node[above left]{$z_1$};
|
||||
\draw[->] (W2.east) -- (output2)node[above left]{$z_2$};
|
||||
\end{tikzpicture}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgcfbd978" class="figure">
|
||||
<div id="orgc7070d9" 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>
|
||||
<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>
|
||||
</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 id="outline-container-orgd2abe63" class="outline-2">
|
||||
<h2 id="orgd2abe63"><span class="section-number-2">6</span> Sensor fusion architecture with sensor dynamics uncertainty and noise</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[addb](add1){};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 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){};
|
||||
|
||||
<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>};
|
||||
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (add1.west);
|
||||
\draw[->] (x.center) |- (add2.west);
|
||||
\draw[->] ($(add1-|W1.west)+(-0.5, 0)$)node[branch](S1){} |- (W1.west);
|
||||
\draw[->] ($(add2-|W2.west)+(-0.5, 0)$)node[branch](S2){} |- (W2.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (W2.east) -- (delta2.west);
|
||||
\draw[->] (delta1.east) -| (add1.north);
|
||||
\draw[->] (delta2.east) -| (add2.north);
|
||||
\draw[->] (add1.east) -- (addn1.west);
|
||||
\draw[->] (add2.east) -- (addn2.west);
|
||||
\draw[->] (addn1.east) -- (H1.west)node[above left]{$\hat{x}_1$};
|
||||
\draw[->] (addn2.east) -- (H2.west)node[above left]{$\hat{x}_2$};
|
||||
\draw[->] ($(N1.north)+(0,0.7)$) node[below right](n1){$\tilde{n}_1$} -- (N1.north);
|
||||
\draw[->] ($(N2.north)+(0,0.7)$) node[below right](n2){$\tilde{n}_2$} -- (N2.north);
|
||||
\draw[->] (N1.south) -- (addn1.north)node[above right]{$n_1$};
|
||||
\draw[->] (N2.south) -- (addn2.north)node[above right]{$n_2$};
|
||||
\draw[->] (H1.east) -| (add.north);
|
||||
\draw[->] (H2.east) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.west) -- ++(-1.0, 0) node[above right]{<span class="org-font-latex-math">$x$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (addu.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (b1) |- (W1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (addu.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (addu.east) -- (G1.west);
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[<-] (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>[->] (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>[->] (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>}
|
||||
\begin{scope}[on background layer]
|
||||
\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) {};
|
||||
\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) {};
|
||||
\node[below right] at (sensor1.north west) {Sensor 1};
|
||||
\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};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
</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>[->] (x.center) |- (addn1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (addn2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (<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>[->] (<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>[->] (W1.east) -- (delta1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (delta2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (add1.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (delta2.east) -| (add2.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (addn1.east) -- (add1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (addn2.east) -- (add2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (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>[<-] (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>[<-] (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>[->] (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>[->] (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>[->] (H1.east) -| (add.north);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (H2.east) -| (add.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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">
|
||||
<div id="org2a7478b" 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>
|
||||
<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>
|
||||
</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 id="outline-container-org25fbe7c" class="outline-2">
|
||||
<h2 id="org25fbe7c"><span class="section-number-2">7</span> Mixed H2/H-Infinity Synthesis</h2>
|
||||
<div class="outline-text-2" id="text-7">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||||
<span class="org-font-latex-sedate">\node</span>[block={4.2cm}{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>};
|
||||
<pre class="src src-latex">\begin{tikzpicture}
|
||||
\node[block={5.0cm}{5.0cm}, fill=black!20!white, dashed] (P) {};
|
||||
\node[above] at (P.north) {$P(s)$};
|
||||
|
||||
<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>);
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.85!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$);
|
||||
|
||||
<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>);
|
||||
\coordinate[] (output1) at ($(P.south east)!0.85!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output2) at ($(P.south east)!0.7!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output3) at ($(P.south east)!0.5!(P.north east) + ( 0.7, 0)$);
|
||||
\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)$);
|
||||
|
||||
<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) {};
|
||||
\node[block, left=1.4 of output1] (W1){$W_1(s)$};
|
||||
\node[block, left=1.4 of output2] (W2){$W_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=1.6 of W1] (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) {};
|
||||
\node[block, left=1.4 of output3] (N1){$N_1(s)$};
|
||||
\node[block, left=1.4 of output4] (N2){$N_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=1 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>};
|
||||
\node[block, below=0.3 of P] (H2) {$H_2(s)$};
|
||||
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right]{<span class="org-font-latex-math">$w$</span>} -- (sub1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>[->] (inputu-|sub1) node[branch]{} -- (sub1.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (inputu-|sub2) node[branch]{} -- (sub2.south);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (sub1|-W2) node[branch]{} -- (Wu2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (sub1.east) -- (Wu1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (sub2.east) -- (N1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (<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>[->] (w_branch|-sub2) node[branch]{} -- (sub2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (Wu1.east) -- (W1.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (Wu2.east) -- (W2.west);
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left](z1){<span class="org-font-latex-math">$z_1$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (output2)node[above left](z2){<span class="org-font-latex-math">$z_2$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (N1.east) -- (output3)node[above left](z3){<span class="org-font-latex-math">$z_3$</span>};
|
||||
<span class="org-font-latex-sedate">\draw</span>[->] (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>}
|
||||
\draw[->] (inputw) node[above right]{$w$} -- (sub1.west);
|
||||
\draw[->] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (N2.west);
|
||||
\draw[->] (inputu-|sub1) node[branch]{} -- (sub1.south);
|
||||
\draw[->] (inputu-|sub2) node[branch]{} -- (sub2.south);
|
||||
\draw[->] (sub1|-W2) node[branch]{} -- (W2.west);
|
||||
\draw[->] (sub1.east) -- (W1.west);
|
||||
\draw[->] (sub2.east) -- (N1.west);
|
||||
\draw[->] ($(sub1.west)+(-0.6, 0)$) node[branch](w_branch){} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
|
||||
\draw[->] (w_branch|-sub2) node[branch]{} -- (sub2.west);
|
||||
\draw[->] (W1.east) -- (output1)node[above left]{$z_1$};
|
||||
\draw[->] (W2.east) -- (output2)node[above left]{$z_2$};
|
||||
\draw[->] (N1.east) -- (output3)node[above left]{$z_3$};
|
||||
\draw[->] (N2.east) -- (output4)node[above left]{$z_4$};
|
||||
\end{tikzpicture}
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org7166204" class="figure">
|
||||
<div id="org855c0bc" class="figure">
|
||||
<p><img src="figs/mixed_h2_hinf_synthesis.png" alt="mixed_h2_hinf_synthesis.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Mixed H2/H-Infinity Synthesis (<a href="./figs/mixed_h2_hinf_synthesis.png">png</a>, <a href="./figs/mixed_h2_hinf_synthesis.pdf">pdf</a>).</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Thomas Dehaeze</p>
|
||||
<p class="date">Created: 2020-11-12 jeu. 10:42</p>
|
||||
<p class="date">Created: 2020-08-17 lun. 17:49</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -3,8 +3,12 @@
|
||||
#+HTML_LINK_HOME: ../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>
|
||||
#+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>
|
||||
|
||||
#+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
|
||||
|
Loading…
Reference in New Issue
Block a user