933 lines
98 KiB
HTML
933 lines
98 KiB
HTML
|
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||
|
<head>
|
||
|
<!-- 2021-09-01 mer. 10:15 -->
|
||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||
|
<title>A new method of designing complementary filters for sensor fusion using the $\mathcal{H}_\infty$ synthesis - Tikz Figures</title>
|
||
|
<meta name="author" content="Thomas Dehaeze" />
|
||
|
<meta name="generator" content="Org Mode" />
|
||
|
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||
|
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||
|
<script>
|
||
|
MathJax = {
|
||
|
svg: {
|
||
|
scale: 1,
|
||
|
fontCache: "global"
|
||
|
},
|
||
|
tex: {
|
||
|
tags: "ams",
|
||
|
multlineWidth: "%MULTLINEWIDTH",
|
||
|
tagSide: "right",
|
||
|
macros: {bm: ["\\boldsymbol{#1}",1],},
|
||
|
tagIndent: ".8em"
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
<script id="MathJax-script" async
|
||
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="org-div-home-and-up">
|
||
|
<a accesskey="h" href="../index.html"> UP </a>
|
||
|
|
|
||
|
<a accesskey="H" href="../index.html"> HOME </a>
|
||
|
</div><div id="content" class="content">
|
||
|
<h1 class="title">A new method of designing complementary filters for sensor fusion using the \(\mathcal{H}_\infty\) synthesis - Tikz Figures</h1>
|
||
|
<div id="table-of-contents" role="doc-toc">
|
||
|
<h2>Table of Contents</h2>
|
||
|
<div id="text-table-of-contents" role="doc-toc">
|
||
|
<ul>
|
||
|
<li><a href="#orgaddbc4b">1. Sensor Fusion - Overview</a></li>
|
||
|
<li><a href="#orgcde34ed">2. Sensor Model</a></li>
|
||
|
<li><a href="#org881c7cf">3. Sensor Model with calibration</a></li>
|
||
|
<li><a href="#org52dba0e">4. Sensor Fusion Architecture</a></li>
|
||
|
<li><a href="#org51c6b92">5. Sensor Model with Uncertainty</a></li>
|
||
|
<li><a href="#orgd0c3320">6. Sensor Model with Uncertainty - Simplified</a></li>
|
||
|
<li><a href="#orgd991dd2">7. Sensor fusion architecture with sensor dynamics uncertainty</a></li>
|
||
|
<li><a href="#orgb45d1ac">8. Uncertainty set of the super sensor dynamics</a></li>
|
||
|
<li><a href="#orgd194580">9. Generalized plant used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
|
||
|
<li><a href="#orgebe7ec5">10. Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</a></li>
|
||
|
<li><a href="#orgf9a2f39">11. LIGO Sensor Fusion Architecture</a></li>
|
||
|
<li><a href="#orga2611bb">12. Closed-Loop Complementary Filters</a></li>
|
||
|
<li><a href="#org5af72e4">13. Closed-Loop Fusion Architecture</a></li>
|
||
|
<li><a href="#org4e79ee7">14. Feedback Loop Sensor Fusion Architecture</a></li>
|
||
|
<li><a href="#orgb59c88b">15. Feedback Sensor Fusion - Generalized Plant</a></li>
|
||
|
<li><a href="#orge593f6d">16. Sensor Fusion - Sequential</a></li>
|
||
|
<li><a href="#org3b323e8">17. Sensor Fusion - Parallel</a></li>
|
||
|
<li><a href="#org9baa5b5">18. Architecture for \(\mathcal{H}_\infty\) synthesis of three complementary filters</a></li>
|
||
|
<li><a href="#org10ffb09">19. Architecture for \(\mathcal{H}_\infty\) synthesis of three complementary filters</a></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
<p>
|
||
|
Configuration file is accessible <a href="config.html">here</a>.
|
||
|
</p>
|
||
|
|
||
|
<div id="outline-container-orgaddbc4b" class="outline-2">
|
||
|
<h2 id="orgaddbc4b"><span class="section-number-2">1.</span> Sensor Fusion - Overview</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">\definecolor</span>{myblue}{rgb}{0, 0.447, 0.741}
|
||
|
<span class="org-font-latex-sedate">\definecolor</span>{myred}{rgb}{0.8500, 0.325, 0.098}
|
||
|
|
||
|
<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>[block, above right=0.3 and 0.5 of x](sensor1){Sensor 1};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below right=0.3 and 0.5 of x](sensor2){Sensor 2};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor1](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor2](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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=5.0 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) |- (sensor1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor1.east) -- node[midway, above]{<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>} (H1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor2.east) -- node[midway, above]{<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>} (H2.west);
|
||
|
<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.9, 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, -0.2)$</span>) (<span class="org-font-latex-math">$(H1.north-|add.east) + (0.2, 0.6)$</span>)}, fill=black!10!white, draw, inner sep=6pt] (supersensor) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below] at (supersensor.north) {Super Sensor};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(sensor2.south west) (sensor1.north east)}, fill=black!20!white, draw, inner sep=6pt] (sensors) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[align=center] at (sensors.center) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Sensors</span>}};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(H2.south west) (H1.north-|add.east)}, fill=black!20!white, draw, inner sep=6pt] (filters) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[align=center] at (<span class="org-font-latex-math">$(filters.center) + (-0.3, 0)$</span>) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Complementary</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Filters</span>}};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="orgfdc79fa" class="figure">
|
||
|
<p><img src="figs/sensor_fusion_overview.png" alt="sensor_fusion_overview.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 1: </span>Schematic of a sensor fusion architecture using complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgcde34ed" class="outline-2">
|
||
|
<h2 id="orgcde34ed"><span class="section-number-2">2.</span> Sensor Model</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>[addb](add1){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(add1.west)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (add1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.north) -- ++(0, 0.7)node[below right](n1){<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.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">\tilde</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={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="orga6c4cb8" class="figure">
|
||
|
<p><img src="figs/sensor_model.png" alt="sensor_model.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 2: </span>Basic sensor model consisting of a noise input \(n_i\) and a linear time invariant transfer function \(G_i(s)\)</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org881c7cf" class="outline-2">
|
||
|
<h2 id="org881c7cf"><span class="section-number-2">3.</span> Sensor Model with calibration</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>[addb](add1){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](G1inv){<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}(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(add1.west)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (add1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (add1.north) -- ++(0, 0.7)node[below right](n1){<span class="org-font-latex-math">$n</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">i$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add1.east) -- (G1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (G1inv.west) node[above left]{<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">{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">\draw</span>[->] (G1inv.east) -- ++(0.8, 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={(add1.west |- G1inv.south) (n1.north -| G1inv.east)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor</span>}};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="orgd38eff7" class="figure">
|
||
|
<p><img src="figs/sensor_model_calibrated.png" alt="sensor_model_calibrated.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 3: </span>Normalized sensors using the inverse of an estimate \(\hat{G}_i(s)\) of the sensor dynamics</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org52dba0e" class="outline-2">
|
||
|
<h2 id="org52dba0e"><span class="section-number-2">4.</span> Sensor Fusion Architecture</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">\definecolor</span>{myblue}{rgb}{0, 0.447, 0.741}
|
||
|
<span class="org-font-latex-sedate">\definecolor</span>{myred}{rgb}{0.8500, 0.325, 0.098}
|
||
|
|
||
|
<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=0.8 and 0.5 of x](add1){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, below right=0.8 and 0.5 of x](add2){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](G1inv){<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}(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G2](G2inv){<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">{-2}(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1inv](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G2inv](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=7 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.north) -- ++(0, 0.7)node[below right](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">\draw</span>[->] (add1.east) -- (G1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G1.east) -- (G1inv.west) node[above left]{<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">{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>[->] (G1inv.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.north) -- ++(0, 0.7)node[below right](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">\draw</span>[->] (add2.east) -- (G2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (G2.east) -- (G2inv.west) node[above left]{<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">{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>[->] (G2inv.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={(G2.south-|x) (n1.north-|add.east)}, fill=black!10!white, draw, inner sep=9pt] (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={(add1.west |- G1inv.south) (n1.north -| G1inv.east)}, fill=myblue!20!white, draw, inner sep=6pt] (sensor1cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor</span>}};
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=myblue!30!white, draw, inner sep=3pt] (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={(add2.west |- G2inv.south) (n2.north -| G2inv.east)}, fill=myred!20!white, draw, inner sep=6pt] (sensor2cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor2cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor</span>}};
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(add2.west |- G2.south) (n2.north -| G2.east)}, fill=myred!30!white, draw, inner sep=3pt] (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="org63acf85" class="figure">
|
||
|
<p><img src="figs/fusion_super_sensor.png" alt="fusion_super_sensor.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 4: </span>Sensor fusion architecture with two normalized sensors</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org51c6b92" class="outline-2">
|
||
|
<h2 id="org51c6b92"><span class="section-number-2">5.</span> Sensor Model with 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] (input) at (0,0) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above right= 0.4 and 0.4 of input](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addu) at (<span class="org-font-latex-math">$(delta1.east|-input) + (0.4, 0)$</span>) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.4 of addu] (addn) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 of addn] (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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of G1](G1inv){<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}(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(input)+(-0.7, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (addu);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (input.center) |- (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) -- (addn.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addn.east) -- (G1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (addn.north) -- ++(0, 0.7)node[below right](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">\draw</span>[->] (G1.east) -- (G1inv.west) node[above left]{<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">{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>[->] (G1inv.east) -- ++(0.8, 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">1$</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={(input.west |- G1inv.south) (delta1.north -| G1inv.east)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor</span>}};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(input.west |- G1.south) (delta1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left] at (sensor1.north east) {Sensor};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org937c435" class="figure">
|
||
|
<p><img src="figs/sensor_model_uncertainty.png" alt="sensor_model_uncertainty.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 5: </span>Sensor with multiplicative input uncertainty</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgd0c3320" class="outline-2">
|
||
|
<h2 id="orgd0c3320"><span class="section-number-2">6.</span> Sensor Model with Uncertainty - Simplified</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>[branch] (input) at (0,0) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above right= 0.4 and 0.4 of input](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addu) at (<span class="org-font-latex-math">$(delta1.east|-input) + (0.4, 0)$</span>) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.4 of addu] (addn) {};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(input)+(-0.8, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (addu);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (input.center) |- (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) -- (addn.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (addn.north) -- ++(0, 0.6)node[below right](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">\draw</span>[->] (addn.east) -- ++(0.9, 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">1$</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={(input.west |- addu.south) (<span class="org-font-latex-math">$(delta1.north -| addn.east) + (0.1, 0)$</span>)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor</span>}};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="orgce8343e" class="figure">
|
||
|
<p><img src="figs/sensor_model_uncertainty_simplified.png" alt="sensor_model_uncertainty_simplified.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 6: </span>Simplified sensor model</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgd991dd2" class="outline-2">
|
||
|
<h2 id="orgd991dd2"><span class="section-number-2">7.</span> Sensor fusion architecture with sensor dynamics uncertainty</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">\definecolor</span>{myblue}{rgb}{0, 0.447, 0.741}
|
||
|
<span class="org-font-latex-sedate">\definecolor</span>{myred}{rgb}{0.8500, 0.325, 0.098}
|
||
|
|
||
|
<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=1.0 and 0.3 of x] (input1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[branch, below right=1.0 and 0.3 of x] (input2) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above right= 0.4 and 0.3 of input1](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above right= 0.4 and 0.3 of input2](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addu1) at (<span class="org-font-latex-math">$(delta1.east|-input1) + (0.4, 0)$</span>) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addu2) at (<span class="org-font-latex-math">$(delta2.east|-input2) + (0.4, 0)$</span>) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.4 of addu1] (addn1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.4 of addu2] (addn2) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.9 of addn1](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.9 of addn2](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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=7 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) |- (addu1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (addu2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (input1.center) |- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (delta1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta1.east) -| (addu1.north);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addu1.east) -- (addn1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (addn1.north) -- ++(0, 0.6)node[below right](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">\draw</span>[->] (input2.center) |- (W2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (delta2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (delta2.east) -| (addu2.north);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addu2.east) -- (addn2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (addn2.north) -- ++(0, 0.6)node[below right](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">\draw</span>[->] (addn1.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>[->] (addn2.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={(addn2.south-|x) (delta1.north-|add.east)}, fill=black!10!white, draw, inner sep=9pt] (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={(input1.west |- addu1.south) (<span class="org-font-latex-math">$(delta1.north -| addn1.east) + (0.1, 0.0)$</span>)}, fill=myblue!20!white, draw, inner sep=6pt] (sensor1cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor1cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor 1</span>}};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(input2.west |- addu2.south) (<span class="org-font-latex-math">$(delta2.north -| addn1.east) + (0.1, 0.0)$</span>)}, fill=myred!20!white, draw, inner sep=6pt] (sensor2cal) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below left, align=right] at (sensor2cal.north east) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensor 2</span>}};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org5b69e5a" class="figure">
|
||
|
<p><img src="figs/sensor_fusion_dynamic_uncertainty.png" alt="sensor_fusion_dynamic_uncertainty.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 7: </span>Sensor fusion architecture with sensor dynamics uncertainty</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgb45d1ac" class="outline-2">
|
||
|
<h2 id="orgb45d1ac"><span class="section-number-2">8.</span> Uncertainty set of the super sensor dynamics</h2>
|
||
|
<div class="outline-text-2" id="text-8">
|
||
|
<div class="org-src-container">
|
||
|
<pre class="src src-latex"><span class="org-font-latex-sedate">\definecolor</span>{myblue}{rgb}{0, 0.447, 0.741}
|
||
|
<span class="org-font-latex-sedate">\definecolor</span>{myred}{rgb}{0.8500, 0.325, 0.098}
|
||
|
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">scope</span>}[shift={(4, 0)}]
|
||
|
|
||
|
<span class="org-comment">% Uncertainty Circle</span>
|
||
|
<span class="org-font-latex-sedate">\node</span>[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||
|
<span class="org-font-latex-sedate">\path</span>[draw, fill=myblue!20!white] (0, 0) circle [radius=1.0];
|
||
|
<span class="org-font-latex-sedate">\path</span>[draw, fill=myred!20!white] (135:1.0) circle [radius=0.8];
|
||
|
<span class="org-font-latex-sedate">\path</span>[draw, dashed] (0, 0) circle [radius=1.0];
|
||
|
|
||
|
<span class="org-comment">% Center of Circle</span>
|
||
|
<span class="org-font-latex-sedate">\node</span>[below] at (0, 0){<span class="org-font-latex-math">$1$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<->] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<->] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(135: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>[->, out=-90, in=0] (l1.south) to (r1);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[] (l2) at (-3.2, 1.2) {<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>[->, out=0, in=-180] (l2.east) to (r2);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<->] (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>[->, out=90, in=-90] (l3.north) to (r3);
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
|
||
|
<span class="org-comment">% Real and Imaginary Axis</span>
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (-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};
|
||
|
|
||
|
<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 class="org-font-latex-script-char">_</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\text</span></span><span class="org-font-latex-math">{max}$</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="orgc80ec14" class="figure">
|
||
|
<p><img src="figs/uncertainty_set_super_sensor.png" alt="uncertainty_set_super_sensor.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 8: </span>Uncertainty region of the super sensor dynamics in the complex plane (grey circle). The contribution of both sensors 1 and 2 to the total uncertainty are represented respectively by a blue circle and a red circle. The frequency dependency \(\omega\) is here omitted.</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgd194580" class="outline-2">
|
||
|
<h2 id="orgd194580"><span class="section-number-2">9.</span> Generalized plant used for \(\mathcal{H}_\infty\) synthesis of complementary filters</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>[block={4.0cm}{3.0cm}, fill=black!10!white] (P) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.2 of P, opacity=0] (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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.75!(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.35!(P.north west) + (-0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.75!(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.35!(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.1!(P.north east) + ( 0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of W1] (sub) {};
|
||
|
|
||
|
<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>[->] (inputu) node[above right]{<span class="org-font-latex-math">$u$</span>} -- (W2.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) -- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (outputv) node[above left]{<span class="org-font-latex-math">$v$</span>};
|
||
|
<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>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org725e946" class="figure">
|
||
|
<p><img src="figs/h_infinity_robust_fusion_plant.png" alt="h_infinity_robust_fusion_plant.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 9: </span>Generalized plant used for \(\mathcal{H}_\infty\) synthesis of complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgebe7ec5" class="outline-2">
|
||
|
<h2 id="orgebe7ec5"><span class="section-number-2">10.</span> Architecture used for \(\mathcal{H}_\infty\) synthesis of complementary filters</h2>
|
||
|
<div class="outline-text-2" id="text-10">
|
||
|
<div class="org-src-container">
|
||
|
<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
<span class="org-font-latex-sedate">\node</span>[block={4.0cm}{3.0cm}, fill=black!10!white] (P) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[above] at (P.north) {<span class="org-font-latex-math">$P(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.2 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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.75!(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.35!(P.north west) + (-0.4, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.75!(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.35!(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.1!(P.north east) + ( 0.4, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of W1] (sub) {};
|
||
|
|
||
|
<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>[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub.west)+(-0.6, 0)$</span>) node[branch]{} |- (outputv) |- (H2.east);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2.west) -| (inputu) -- (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>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org47d276f" class="figure">
|
||
|
<p><img src="figs/h_infinity_robust_fusion_fb.png" alt="h_infinity_robust_fusion_fb.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 10: </span>Generalized plant with the synthesized filter</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgf9a2f39" class="outline-2">
|
||
|
<h2 id="orgf9a2f39"><span class="section-number-2">11.</span> LIGO Sensor Fusion Architecture</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">\definecolor</span>{myblue}{rgb}{0, 0.447, 0.741}
|
||
|
<span class="org-font-latex-sedate">\definecolor</span>{myred}{rgb}{0.8500, 0.325, 0.098}
|
||
|
|
||
|
<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, align=center] (position) at (0, 2.2) {Position<span class="org-font-latex-warning">\\</span>Sensor};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, align=center] (seismometer) at (0, 1.0) {Seismometer};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, align=center] (geophone) at (0,-0.6) {Geophone};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[branch, left=0.4 of seismometer] (x);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of seismometer](H1){<span class="org-font-latex-math">$L</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">2(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block](H2) at (H1|-geophone) {<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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (add) at (4, 0){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of add](H2p) {<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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block] (H1p) at (H2p|-position) {<span class="org-font-latex-math">$L</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">1(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addp) at (7, 1.0){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(x)+(-1.0, 0)$</span>) -- (seismometer.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (position.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (geophone.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (position.east) -- (H1p.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (seismometer.east) -- (H1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (geophone.east) -- (H2.west);
|
||
|
<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) -- (H2p.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1p) -| (addp.north);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2p) -| (addp.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addp.east) -- ++(1.0, 0);
|
||
|
|
||
|
<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={(x.west|-geophone.south) (position.north-|addp.east)}, fill=black!10!white, draw, inner sep=6pt] (supersensor) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below] at (supersensor.north) {Super Sensor};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(x.west|-seismometer.north) (add.east|-geophone.south)}, fill=black!20!white, draw, inner sep=3pt] (superinertialsensor) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[] at (superinertialsensor.center) {"Inertial" Super Sensor};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org81fe1cf" class="figure">
|
||
|
<p><img src="figs/ligo_super_sensor_architecture.png" alt="ligo_super_sensor_architecture.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 11: </span>Simplified block diagram of the sensor blending strategy for the first stage at the LIGO</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orga2611bb" class="outline-2">
|
||
|
<h2 id="orga2611bb"><span class="section-number-2">12.</span> Closed-Loop Complementary Filters</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"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1 of addfb] (L){<span class="org-font-latex-math">$L(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{}, right=1 of L] (adddy){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (addfb.west) -- ++(-1, 0) node[above right]{<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>[->] (addfb.east) -- (L.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (L.east) -- (adddy.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (adddy.east) -- ++(1.4, 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">\draw</span>[->] (<span class="org-font-latex-math">$(adddy.east) + (0.5, 0)$</span>) node[branch]{} -- ++(0, -0.8) coordinate(botc) -| (addfb.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (adddy.north) -- ++(0, 1) node[below right]{<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"><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={(L.north-|addfb.west) (botc)}, fill=black!10!white, draw, inner sep=6pt] (supersensor) {};
|
||
|
<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="org57ca8ce" class="figure">
|
||
|
<p><img src="figs/feedback_sensor_fusion.png" alt="feedback_sensor_fusion.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 12: </span>“Closed-Loop” complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org5af72e4" class="outline-2">
|
||
|
<h2 id="org5af72e4"><span class="section-number-2">13.</span> Closed-Loop Fusion Architecture</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"><span class="org-keyword">\begin</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}] (addfb) at (0, 0){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1 of addfb] (L){<span class="org-font-latex-math">$L(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{}, right=1 of L] (adddy){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.2 of addfb] (sensor2){Sensor 2};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.4 of sensor2] (sensor1){Sensor 1};
|
||
|
<span class="org-font-latex-sedate">\node</span>[branch, left=0.6 of sensor2] (x){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addfb.east) -- (L.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (L.east) -- (adddy.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (adddy.east) -- ++(1.4, 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">\draw</span>[->] (<span class="org-font-latex-math">$(adddy.east) + (0.5, 0)$</span>) node[branch]{} -- ++(0, -0.8) coordinate(botc) -| (addfb.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(x)-(0.8,0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (sensor2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor2.east)node[above right=0 and 0.25]{<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>} -- (addfb.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor1.east)node[above right=0 and 0.25]{<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>} -| (adddy.north);
|
||
|
|
||
|
<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={(x|-sensor1.north) (botc)}, fill=black!10!white, draw, inner sep=9pt] (supersensor) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(sensor1.north-|addfb.west) (botc)}, fill=black!20!white, draw, inner sep=6pt] (feedbackfilter) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(sensor2.west|-botc) (sensor1.north east)}, fill=black!20!white, draw, inner sep=6pt] (sensors) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[above, align=center] at (sensors.south) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> Normalized</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> sensors</span>}};
|
||
|
<span class="org-font-latex-sedate">\node</span>[below, align=center] at (feedbackfilter.north) {{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> "Closed-Loop"</span>}<span class="org-font-latex-warning">\\</span>[-0.5em]{<span class="org-font-latex-sedate"><span class="org-keyword">\tiny</span></span><span class="org-type"> complementary filters</span>}};
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">scope</span>}
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org8886809" class="figure">
|
||
|
<p><img src="figs/feedback_sensor_fusion_arch.png" alt="feedback_sensor_fusion_arch.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 13: </span>Classical feedback architecture used for sensor fusion</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org4e79ee7" class="outline-2">
|
||
|
<h2 id="org4e79ee7"><span class="section-number-2">14.</span> Feedback Loop Sensor Fusion Architecture</h2>
|
||
|
<div class="outline-text-2" id="text-14">
|
||
|
<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] (W2) at (0,0) {<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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, right=0.8 of W2] (addfb){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{}, right=4.5 of W2] (adddy){};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.8 of adddy] (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(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (W2.west) -- ++(-0.8, 0) node[above right]{<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">\draw</span>[->] (W2.east) -- (addfb.west) node[above left]{<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">{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">\draw</span>[->] (addfb.east) -- ++(1, 0) node[above left]{<span class="org-font-latex-math">$v$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[<-] (adddy.west) -- ++(-1, 0) node[above right]{<span class="org-font-latex-math">$u$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (adddy.east) -- ++(1.4, 0) node[above left]{<span class="org-font-latex-math">$z$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.south) -- (adddy.north) node[above right]{<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">{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">\draw</span>[<-] (W1.north) -- ++(0, 0.8) node[below right]{<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">\draw</span>[->] (<span class="org-font-latex-math">$(adddy.east) + (0.5, 0)$</span>) node[branch]{} -- ++(0, -0.8) -| (addfb.south);
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org705140c" class="figure">
|
||
|
<p><img src="figs/feedback_synthesis_architecture.png" alt="feedback_synthesis_architecture.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 14: </span>Feedback architecture with included weights</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orgb59c88b" class="outline-2">
|
||
|
<h2 id="orgb59c88b"><span class="section-number-2">15.</span> Feedback Sensor Fusion - Generalized Plant</h2>
|
||
|
<div class="outline-text-2" id="text-15">
|
||
|
<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.5cm}{3.0cm}, fill=black!10!white] (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">L(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw1) at (<span class="org-font-latex-math">$(P.south west)!0.75!(P.north west) + (-0.7, 0)$</span>);
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw2) at (<span class="org-font-latex-math">$(P.south west)!0.40!(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.15!(P.north west) + (-0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (outputz) at (<span class="org-font-latex-math">$(P.south east)!0.75!(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.40!(P.north east) + ( 0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.2 of inputw2] (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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.2 of inputw1] (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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{}, right=0.8 of W1] (add) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{-}{}{}, right=1.8 of W2] (sub) {};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw2) node[above right]{<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>} -- (W2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw1) node[above right]{<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>} -- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu) node[above right]{<span class="org-font-latex-math">$u$</span>} -| (add.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2.east) -- (sub.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (add.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- (outputz)node[above left]{<span class="org-font-latex-math">$z$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub.east) -- (outputv)node[above left]{<span class="org-font-latex-math">$v$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add-|sub) node[branch]{} -- (sub.north);
|
||
|
<span class="org-font-latex-sedate"><span class="org-keyword">\end</span></span>{<span class="org-function-name">tikzpicture</span>}
|
||
|
</pre>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div id="org32b295e" class="figure">
|
||
|
<p><img src="figs/feedback_synthesis_architecture_generalized_plant.png" alt="feedback_synthesis_architecture_generalized_plant.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 15: </span>Generalized plant used for the \(\mathcal{H}_\infty\) synthesis of “closed-loop” complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-orge593f6d" class="outline-2">
|
||
|
<h2 id="orge593f6d"><span class="section-number-2">16.</span> Sensor Fusion - Sequential</h2>
|
||
|
<div class="outline-text-2" id="text-16">
|
||
|
<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>[block, right=0.4 of x] (sensor2) {Sensor 2};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.4 of sensor2] (sensor1) {Sensor 1};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.4 of sensor2] (sensor3) {Sensor 3};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor1](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor2](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (add) at (<span class="org-font-latex-math">$0.5*(H1.east)+0.5*(H2.east)+(0.6, 0)$</span>){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=0.8 of add](H1p) {<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-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\prime</span></span><span class="org-font-latex-math">(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block] (H2p) at (H1p|-sensor3) {<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-math"><span class="org-font-latex-script-char">^</span></span><span class="org-font-latex-sedate"><span class="org-font-latex-math">\prime</span></span><span class="org-font-latex-math">(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb] (addp) at (<span class="org-font-latex-math">$0.5*(H1p.east)+0.5*(H2p.east)+(0.6, 0)$</span>){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(x)+(-0.8, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (sensor2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor3.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor1.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>[->] (sensor2.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>[->] (sensor3.east) -- (H2p.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">3$</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) -- (H1p.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">{12}$</span>};
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1p) -| (addp.north);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2p) -| (addp.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (addp.east) -- ++(0.8, 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={(x.west|-sensor3.south) (sensor1.north-|addp.east)}, fill=black!10!white, draw, inner sep=6pt] (supersensor) {};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[fit={(x.west|-sensor1.north) (add.east|-sensor2.south)}, fill=black!20!white, draw, inner sep=3pt] (superinertialsensor) {};
|
||
|
<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="org6fe58a4" class="figure">
|
||
|
<p><img src="figs/sensor_fusion_three_sequential.png" alt="sensor_fusion_three_sequential.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 16: </span>Sequential fusion</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org3b323e8" class="outline-2">
|
||
|
<h2 id="org3b323e8"><span class="section-number-2">17.</span> Sensor Fusion - Parallel</h2>
|
||
|
<div class="outline-text-2" id="text-17">
|
||
|
<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>[block, right=0.4 of x] (sensor2) {Sensor 2};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, above=0.3 of sensor2] (sensor1) {Sensor 1};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of sensor2] (sensor3) {Sensor 3};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor1](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor2](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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, right=1.1 of sensor3](H3){<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">3(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb, right=0.6 of H2](add){};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[] (<span class="org-font-latex-math">$(x)+(-0.8, 0)$</span>) node[above right]{<span class="org-font-latex-math">$x$</span>} -- (sensor2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (x.center) |- (sensor3.west);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sensor1.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>[->] (sensor2.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>[->] (sensor3.east) -- (H3.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">3$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H1) -| (add.north);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H2) -- (add.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (H3) -| (add.south);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (add.east) -- ++(0.8, 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={(H3.south-|x) (H1.north-|add.east)}, fill=black!10!white, draw, inner sep=6pt] (supersensor) {};
|
||
|
<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="org6ec849a" class="figure">
|
||
|
<p><img src="figs/sensor_fusion_three_parallel.png" alt="sensor_fusion_three_parallel.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 17: </span>Parallel fusion</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div id="outline-container-org9baa5b5" class="outline-2">
|
||
|
<h2 id="org9baa5b5"><span class="section-number-2">18.</span> Architecture for \(\mathcal{H}_\infty\) synthesis of three complementary filters</h2>
|
||
|
<div class="outline-text-2" id="text-18">
|
||
|
<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={5.0cm}{4.5cm}, fill=black!10!white] (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">3(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.4!(P.north west) + (-0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + (0.7, 0)$</span>);
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.55!(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.3!(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.1!(P.north east) + (0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 of output3] (W3){<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">3(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of W1] (sub1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of sub1] (sub2) {};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P, opacity=0] (H) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-keyword"><span class="org-font-latex-math">\begin</span></span></span><span class="org-font-latex-math">{</span><span class="org-function-name"><span class="org-font-latex-math">bmatrix</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(s) \\ H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">3(s)</span><span class="org-font-latex-sedate"><span class="org-keyword"><span class="org-font-latex-math">\end</span></span></span><span class="org-font-latex-math">{</span><span class="org-function-name"><span class="org-font-latex-math">bmatrix</span></span><span class="org-font-latex-math">}$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right](w){<span class="org-font-latex-math">$w$</span>} -- (sub2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W3-|sub1)node[branch]{} -- (sub1.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2-|sub2)node[branch]{} -- (sub2.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub2.west)+(-0.5, 0)$</span>) node[branch]{} |- (outputv);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu|-W2) -- (W2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputu|-W3) -- (W3.west);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub2.east) -- (sub1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub1.east) -- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left](z){<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">\draw</span>[->] (W3.east) -- (output3)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">3$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[above] at (W2-|w){<span class="org-font-latex-math">$u</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>[above] at (W3-|w){<span class="org-font-latex-math">$u</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>[above] at (outputv-|z){<span class="org-font-latex-math">$v$</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="org7b3470a" class="figure">
|
||
|
<p><img src="figs/comp_filter_three_hinf_gen_plant.png" alt="comp_filter_three_hinf_gen_plant.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 18: </span>Generalized plant for the \(\mathcal{H}_\infty\) synthesis of three complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="outline-container-org10ffb09" class="outline-2">
|
||
|
<h2 id="org10ffb09"><span class="section-number-2">19.</span> Architecture for \(\mathcal{H}_\infty\) synthesis of three complementary filters</h2>
|
||
|
<div class="outline-text-2" id="text-19">
|
||
|
<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={5.0cm}{4.5cm}, fill=black!10!white] (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">3(s)$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputw) at (<span class="org-font-latex-math">$(P.south west)!0.8!(P.north west) + (-0.7, 0)$</span>);
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (inputu) at (<span class="org-font-latex-math">$(P.south west)!0.4!(P.north west) + (-0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output1) at (<span class="org-font-latex-math">$(P.south east)!0.8!(P.north east) + (0.7, 0)$</span>);
|
||
|
<span class="org-font-latex-sedate">\coordinate</span>[] (output2) at (<span class="org-font-latex-math">$(P.south east)!0.55!(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.3!(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.1!(P.north east) + (0.7, 0)$</span>);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 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(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, left=1.4 of output3] (W3){<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">3(s)$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of W1] (sub1) {};
|
||
|
<span class="org-font-latex-sedate">\node</span>[addb={+}{}{}{}{-}, left=of sub1] (sub2) {};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\node</span>[block, below=0.3 of P] (H) {<span class="org-font-latex-math">$</span><span class="org-font-latex-sedate"><span class="org-keyword"><span class="org-font-latex-math">\begin</span></span></span><span class="org-font-latex-math">{</span><span class="org-function-name"><span class="org-font-latex-math">bmatrix</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(s) \\ H</span><span class="org-font-latex-math"><span class="org-font-latex-script-char">_</span></span><span class="org-font-latex-math">3(s)</span><span class="org-font-latex-sedate"><span class="org-keyword"><span class="org-font-latex-math">\end</span></span></span><span class="org-font-latex-math">{</span><span class="org-function-name"><span class="org-font-latex-math">bmatrix</span></span><span class="org-font-latex-math">}$</span>};
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (inputw) node[above right](w){<span class="org-font-latex-math">$w$</span>} -- (sub2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W3-|sub1)node[branch]{} -- (sub1.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W2-|sub2)node[branch]{} -- (sub2.south);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(sub2.west)+(-0.5, 0)$</span>) node[branch]{} |- (outputv) |- (H.east);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(H.south west)!0.7!(H.north west)$</span>) -| (inputu|-W2) -- (W2.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (<span class="org-font-latex-math">$(H.south west)!0.3!(H.north west)$</span>) -| (<span class="org-font-latex-math">$(inputu|-W3)+(0.4, 0)$</span>) -- (W3.west);
|
||
|
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub2.east) -- (sub1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (sub1.east) -- (W1.west);
|
||
|
<span class="org-font-latex-sedate">\draw</span>[->] (W1.east) -- (output1)node[above left](z){<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">\draw</span>[->] (W3.east) -- (output3)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">3$</span>};
|
||
|
<span class="org-font-latex-sedate">\node</span>[above] at (W2-|w){<span class="org-font-latex-math">$u</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>[above] at (W3-|w){<span class="org-font-latex-math">$u</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>[above] at (outputv-|z){<span class="org-font-latex-math">$v$</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="org71495ac" class="figure">
|
||
|
<p><img src="figs/comp_filter_three_hinf_fb.png" alt="comp_filter_three_hinf_fb.png" />
|
||
|
</p>
|
||
|
<p><span class="figure-number">Figure 19: </span>Generalized plant with the synthesized filter for the \(\mathcal{H}_\infty\) synthesis of three complementary filters</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="postamble" class="status">
|
||
|
<p class="author">Author: Thomas Dehaeze</p>
|
||
|
<p class="date">Created: 2021-09-01 mer. 10:15</p>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|