Rework figures, add colors
This commit is contained in:
480
tikz/index.org
480
tikz/index.org
@@ -6,56 +6,184 @@
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||
|
||||
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{/home/thomas/Cloud/thesis/papers/dehaeze19_desig_compl_filte/tikz/}{config.tex}")
|
||||
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/thesis/papers/dehaeze21_desig_compl_filte/tikz/}{config.tex}")
|
||||
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
||||
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
||||
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
||||
#+PROPERTY: header-args:latex+ :results raw replace :buffer no
|
||||
#+PROPERTY: header-args:latex+ :results file raw replace
|
||||
#+PROPERTY: header-args:latex+ :buffer no
|
||||
#+PROPERTY: header-args:latex+ :eval no-export
|
||||
#+PROPERTY: header-args:latex+ :exports both
|
||||
#+PROPERTY: header-args:latex+ :mkdirp yes
|
||||
#+PROPERTY: header-args:latex+ :noweb yes
|
||||
#+PROPERTY: header-args:latex+ :output-dir figs
|
||||
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
||||
:END:
|
||||
|
||||
Configuration file is accessible [[file:config.org][here]].
|
||||
|
||||
* Fig 1: Sensor Fusion Architecture
|
||||
* Sensor Model
|
||||
#+begin_src latex :file sensor_model.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[addb](add1){};
|
||||
\node[block, right=0.8 of add1](G1){$G_1(s)$};
|
||||
|
||||
\draw[->] ($(add1.west)+(-0.7, 0)$) node[above right]{$x$} -- (add1.west);
|
||||
\draw[<-] (add1.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (add1.east) -- (G1.west);
|
||||
\draw[->] (G1.east) -- ++(0.7, 0) node[above left]{$\tilde{x}_1$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||||
\node[below left] at (sensor1.north east) {Sensor 1};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_model
|
||||
#+caption: Basic Sensor Model
|
||||
#+RESULTS:
|
||||
[[file:figs/sensor_model.png]]
|
||||
|
||||
* Sensor Model with calibration
|
||||
#+begin_src latex :file sensor_model_calibrated.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[addb](add1){};
|
||||
\node[block, right=0.8 of add1](G1){$G_1(s)$};
|
||||
\node[block, right=0.8 of G1](G1inv){$\hat{G}_1^{-1}(s)$};
|
||||
|
||||
\draw[->] ($(add1.west)+(-0.7, 0)$) node[above right]{$x$} -- (add1.west);
|
||||
\draw[<-] (add1.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (add1.east) -- (G1.west);
|
||||
\draw[->] (G1.east) -- (G1inv.west) node[above left]{$\tilde{x}_1$};
|
||||
\draw[->] (G1inv.east) -- ++(0.8, 0) node[above left]{$\hat{x}_1$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(add1.west |- G1inv.south) (n1.north -| G1inv.east)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||||
\node[below left] at (sensor1cal.north east) {Calibration};
|
||||
|
||||
\node[fit={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||||
\node[below left] at (sensor1.north east) {Sensor 1};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_model_calibrated
|
||||
#+caption: Calibrated Sensor
|
||||
#+RESULTS:
|
||||
[[file:figs/sensor_model_calibrated.png]]
|
||||
|
||||
* Sensor Model with Uncertainty
|
||||
#+begin_src latex :file sensor_model_uncertainty.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (input) at (0,0) {};
|
||||
\node[block, above right= 0.4 and 0.4 of input](W1){$w_1(s)$};
|
||||
\node[block, right=0.4 of W1](delta1){$\Delta_1(s)$};
|
||||
\node[addb] (addu) at ($(delta1.east|-input) + (0.4, 0)$) {};
|
||||
\node[addb, right=0.4 of addu] (addn) {};
|
||||
\node[block, right=0.4 of addn] (G1) {$\hat{G}_1(s)$};
|
||||
\node[block, right=0.8 of G1](G1inv){$\hat{G}_1^{-1}(s)$};
|
||||
|
||||
\draw[->] ($(input)+(-0.7, 0)$) node[above right]{$x$} -- (addu);
|
||||
\draw[->] (input.center) |- (W1.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (delta1.east) -| (addu.north);
|
||||
\draw[->] (addu.east) -- (addn.west);
|
||||
\draw[->] (addn.east) -- (G1.west);
|
||||
\draw[<-] (addn.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (G1.east) -- (G1inv.west) node[above left]{$\tilde{x}_1$};
|
||||
\draw[->] (G1inv.east) -- ++(0.8, 0) node[above left]{$\hat{x}_1$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(input.west |- G1inv.south) (delta1.north -| G1inv.east)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||||
\node[below left] at (sensor1cal.north east) {Calibration};
|
||||
|
||||
\node[fit={(input.west |- G1.south) (delta1.north -| G1.east)}, fill=black!20!white, draw, inner sep=3pt] (sensor1) {};
|
||||
\node[below left] at (sensor1.north east) {Sensor 1};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_model_uncertainty
|
||||
#+caption: Input Uncertainty
|
||||
#+RESULTS:
|
||||
[[file:figs/sensor_model_uncertainty.png]]
|
||||
|
||||
* Sensor Model with Uncertainty - Simplified
|
||||
#+begin_src latex :file sensor_model_uncertainty_simplified.pdf
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (input) at (0,0) {};
|
||||
\node[block, above right= 0.4 and 0.4 of input](W1){$w_1(s)$};
|
||||
\node[block, right=0.4 of W1](delta1){$\Delta_1(s)$};
|
||||
\node[addb] (addu) at ($(delta1.east|-input) + (0.4, 0)$) {};
|
||||
\node[addb, right=0.4 of addu] (addn) {};
|
||||
|
||||
\draw[->] ($(input)+(-0.7, 0)$) node[above right]{$x$} -- (addu);
|
||||
\draw[->] (input.center) |- (W1.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (delta1.east) -| (addu.north);
|
||||
\draw[->] (addu.east) -- (addn.west);
|
||||
\draw[<-] (addn.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (addn.east) -- ++(0.9, 0) node[above left]{$\hat{x}_1$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(input.west |- addu.south) ($(delta1.north -| addn.east) + (0.1, 0.3)$)}, fill=black!10!white, draw, inner sep=6pt] (sensor1cal) {};
|
||||
\node[below left] at (sensor1cal.north east) {Calibrated Sensor};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_model_uncertainty_simplified
|
||||
#+caption: Input Uncertainty
|
||||
#+RESULTS:
|
||||
[[file:figs/sensor_model_uncertainty_simplified.png]]
|
||||
|
||||
* Sensor Fusion Architecture
|
||||
#+begin_src latex :file fusion_super_sensor.pdf :tangle figs/fusion_super_sensor.tex
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
\node[block, above right=0.5 and 0.5 of x](G1){$G_1(s)$};
|
||||
\node[block, below right=0.5 and 0.5 of x](G2){$G_2(s)$};
|
||||
\node[addb, right=0.8 of G1](add1){};
|
||||
\node[addb, right=0.8 of G2](add2){};
|
||||
\node[block, right=0.8 of add1](H1){$H_1(s)$};
|
||||
\node[block, right=0.8 of add2](H2){$H_2(s)$};
|
||||
\node[addb, right=5 of x](add){};
|
||||
\definecolor{myblue}{rgb}{0, 0.447, 0.741}
|
||||
\definecolor{myred}{rgb}{0.8500, 0.325, 0.098}
|
||||
|
||||
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (G1.west);
|
||||
\draw[->] (x.center) |- (G2.west);
|
||||
\draw[->] (G1.east) -- (add1.west);
|
||||
\draw[->] (G2.east) -- (add2.west);
|
||||
\draw[<-] (add1.north) -- ++(0, 0.8)node[below right](n1){$n_1$};
|
||||
\draw[<-] (add2.north) -- ++(0, 0.8)node[below right](n2){$n_2$};
|
||||
\draw[->] (add1.east) -- (H1.west);
|
||||
\draw[->] (add2.east) -- (H2.west);
|
||||
\draw[->] (H1) -| (add.north);
|
||||
\draw[->] (H2) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
\node[addb, above right=0.8 and 0.5 of x](add1){};
|
||||
\node[addb, below right=0.8 and 0.5 of x](add2){};
|
||||
\node[block, right=0.8 of add1](G1){$G_1(s)$};
|
||||
\node[block, right=0.8 of add2](G2){$G_2(s)$};
|
||||
\node[block, right=0.8 of G1](G1inv){$\hat{G}_1^{-1}(s)$};
|
||||
\node[block, right=0.8 of G2](G2inv){$\hat{G}_2^{-2}(s)$};
|
||||
\node[block, right=0.8 of G1inv](H1){$H_1(s)$};
|
||||
\node[block, right=0.8 of G2inv](H2){$H_2(s)$};
|
||||
\node[addb, right=7 of x](add){};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={($(G2.south-|x)+(-0.2, -0.3)$) ($(n1.north east-|add.east)+(0.2, 0.3)$)}, fill=black!10!white, draw, dashed, inner sep=0pt] (supersensor) {};
|
||||
\node[below left] at (supersensor.north east) {Super Sensor};
|
||||
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (add1.west);
|
||||
\draw[->] (x.center) |- (add2.west);
|
||||
\draw[<-] (add1.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (add1.east) -- (G1.west);
|
||||
\draw[->] (G1.east) -- (G1inv.west) node[above left]{$\tilde{x}_1$};
|
||||
\draw[->] (G1inv.east) -- (H1.west) node[above left]{$\hat{x}_1$};
|
||||
\draw[<-] (add2.north) -- ++(0, 0.7)node[below right](n2){$n_2$};
|
||||
\draw[->] (add2.east) -- (G2.west);
|
||||
\draw[->] (G2.east) -- (G2inv.west) node[above left]{$\tilde{x}_2$};
|
||||
\draw[->] (G2inv.east) -- (H2.west) node[above left]{$\hat{x}_2$};
|
||||
\draw[->] (H1) -| (add.north);
|
||||
\draw[->] (H2) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
|
||||
\node[fit={($(G1.south west)+(-0.3, -0.1)$) ($(n1.north east)+(0.0, 0.1)$)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor1) {};
|
||||
\node[below right] at (sensor1.north west) {Sensor 1};
|
||||
\node[fit={($(G2.south west)+(-0.3, -0.1)$) ($(n2.north east)+(0.0, 0.1)$)}, fill=black!20!white, draw, dashed, inner sep=0pt] (sensor2) {};
|
||||
\node[below right] at (sensor2.north west) {Sensor 2};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(G2.south-|x) (n1.north-|add.east)}, fill=black!10!white, draw, inner sep=9pt] (supersensor) {};
|
||||
\node[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
\node[fit={(add1.west |- G1inv.south) (n1.north -| G1inv.east)}, fill=myblue!20!white, draw, inner sep=6pt] (sensor1cal) {};
|
||||
\node[below left] at (sensor1cal.north east) {Calibration};
|
||||
\node[fit={(add1.west |- G1.south) (n1.north -| G1.east)}, fill=myblue!30!white, draw, inner sep=3pt] (sensor1) {};
|
||||
\node[below left] at (sensor1.north east) {Sensor 1};
|
||||
|
||||
\node[fit={(add2.west |- G2inv.south) (n2.north -| G2inv.east)}, fill=myred!20!white, draw, inner sep=6pt] (sensor2cal) {};
|
||||
\node[below left] at (sensor2cal.north east) {Calibration};
|
||||
\node[fit={(add2.west |- G2.south) (n2.north -| G2.east)}, fill=myred!30!white, draw, inner sep=3pt] (sensor2) {};
|
||||
\node[below left] at (sensor2.north east) {Sensor 2};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:fusion_super_sensor
|
||||
@@ -63,42 +191,61 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/fusion_super_sensor.png]]
|
||||
|
||||
* Fig 2: Sensor fusion architecture with sensor dynamics uncertainty
|
||||
#+begin_src latex :file sensor_fusion_dynamic_uncertainty.pdf :tangle figs/sensor_fusion_dynamic_uncertainty.tex
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
\node[addb, above right=0.8 and 4 of x](add1){};
|
||||
\node[addb, below right=0.8 and 4 of x](add2){};
|
||||
\node[block, above left=0.2 and 0.1 of add1](delta1){$\Delta_1(s)$};
|
||||
\node[block, above left=0.2 and 0.1 of add2](delta2){$\Delta_2(s)$};
|
||||
\node[block, left=0.5 of delta1](W1){$w_1(s)$};
|
||||
\node[block, left=0.5 of delta2](W2){$w_2(s)$};
|
||||
\node[block, right=0.5 of add1](H1){$H_1(s)$};
|
||||
\node[block, right=0.5 of add2](H2){$H_2(s)$};
|
||||
\node[addb, right=6 of x](add){};
|
||||
* Sensor fusion architecture with sensor dynamics uncertainty
|
||||
#+begin_src latex :file sensor_fusion_dynamic_uncertainty.pdf :tangle figs/fusion_super_sensor.tex
|
||||
\definecolor{myblue}{rgb}{0, 0.447, 0.741}
|
||||
\definecolor{myred}{rgb}{0.8500, 0.325, 0.098}
|
||||
|
||||
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (add1.west);
|
||||
\draw[->] (x.center) |- (add2.west);
|
||||
\draw[->] ($(add1-|W1.west)+(-0.5, 0)$)node[branch](S1){} |- (W1.west);
|
||||
\draw[->] ($(add2-|W2.west)+(-0.5, 0)$)node[branch](S1){} |- (W2.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (W2.east) -- (delta2.west);
|
||||
\draw[->] (delta1.east) -| (add1.north);
|
||||
\draw[->] (delta2.east) -| (add2.north);
|
||||
\draw[->] (add1.east) -- (H1.west);
|
||||
\draw[->] (add2.east) -- (H2.west);
|
||||
\draw[->] (H1.east) -| (add.north);
|
||||
\draw[->] (H2.east) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
\begin{tikzpicture}
|
||||
\node[branch] (x) at (0, 0);
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[block, fit={($(W1.north-|S1)+(-0.2, 0.2)$) ($(add1.south east)+(0.2, -0.3)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor1) {};
|
||||
\node[above right] at (sensor1.south west) {Sensor 1};
|
||||
\node[block, fit={($(W2.north-|S1)+(-0.2, 0.2)$) ($(add2.south east)+(0.2, -0.3)$)}, fill=black!20!white, dashed, inner sep=0pt] (sensor2) {};
|
||||
\node[above right] at (sensor2.south west) {Sensor 2};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
\node[branch, above right=0.9 and 0.3 of x] (input1) {};
|
||||
\node[branch, below right=0.9 and 0.3 of x] (input2) {};
|
||||
\node[block, above right= 0.4 and 0.4 of input1](W1){$w_1(s)$};
|
||||
\node[block, above right= 0.4 and 0.4 of input2](W2){$w_2(s)$};
|
||||
\node[block, right=0.4 of W1](delta1){$\Delta_1(s)$};
|
||||
\node[block, right=0.4 of W2](delta2){$\Delta_2(s)$};
|
||||
\node[addb] (addu1) at ($(delta1.east|-input1) + (0.4, 0)$) {};
|
||||
\node[addb] (addu2) at ($(delta2.east|-input2) + (0.4, 0)$) {};
|
||||
\node[addb, right=0.4 of addu1] (addn1) {};
|
||||
\node[addb, right=0.4 of addu2] (addn2) {};
|
||||
\node[block, right=0.9 of addn1](H1){$H_1(s)$};
|
||||
\node[block, right=0.9 of addn2](H2){$H_2(s)$};
|
||||
|
||||
\node[addb, right=7 of x](add){};
|
||||
|
||||
|
||||
\draw[] ($(x)+(-0.7, 0)$) node[above right]{$x$} -- (x.center);
|
||||
\draw[->] (x.center) |- (addu1.west);
|
||||
\draw[->] (x.center) |- (addu2.west);
|
||||
\draw[->] (input1.center) |- (W1.west);
|
||||
\draw[->] (W1.east) -- (delta1.west);
|
||||
\draw[->] (delta1.east) -| (addu1.north);
|
||||
\draw[->] (addu1.east) -- (addn1.west);
|
||||
\draw[<-] (addn1.north) -- ++(0, 0.7)node[below right](n1){$n_1$};
|
||||
\draw[->] (input2.center) |- (W2.west);
|
||||
\draw[->] (W2.east) -- (delta2.west);
|
||||
\draw[->] (delta2.east) -| (addu2.north);
|
||||
\draw[->] (addu2.east) -- (addn2.west);
|
||||
\draw[<-] (addn2.north) -- ++(0, 0.7)node[below right](n2){$n_2$};
|
||||
|
||||
\draw[->] (addn1.east) -- (H1.west) node[above left]{$\hat{x}_1$};
|
||||
\draw[->] (addn2.east) -- (H2.west) node[above left]{$\hat{x}_2$};
|
||||
\draw[->] (H1) -| (add.north);
|
||||
\draw[->] (H2) -| (add.south);
|
||||
\draw[->] (add.east) -- ++(0.7, 0) node[above left]{$\hat{x}$};
|
||||
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit={(addn2.south-|x) (delta1.north-|add.east)}, fill=black!10!white, draw, inner sep=9pt] (supersensor) {};
|
||||
\node[below left] at (supersensor.north east) {Super Sensor};
|
||||
|
||||
\node[fit={(input1.west |- addu1.south) ($(delta1.north -| addn1.east) + (0.1, 0.0)$)}, fill=myblue!20!white, draw, inner sep=6pt] (sensor1cal) {};
|
||||
\node[below left] at (sensor1cal.north east) {Sensor 1};
|
||||
|
||||
\node[fit={(input2.west |- addu2.south) ($(delta2.north -| addn1.east) + (0.1, 0.0)$)}, fill=myred!20!white, draw, inner sep=6pt] (sensor2cal) {};
|
||||
\node[below left] at (sensor2cal.north east) {Sensor 2};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:sensor_fusion_dynamic_uncertainty
|
||||
@@ -106,40 +253,44 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/sensor_fusion_dynamic_uncertainty.png]]
|
||||
|
||||
* Fig 3: Uncertainty set of the super sensor dynamics
|
||||
* Uncertainty set of the super sensor dynamics
|
||||
#+begin_src latex :file uncertainty_set_super_sensor.pdf :tangle figs/uncertainty_set_super_sensor.tex :exports both
|
||||
\begin{tikzpicture}
|
||||
\begin{scope}[shift={(4, 0)}]
|
||||
\definecolor{myblue}{rgb}{0, 0.447, 0.741}
|
||||
\definecolor{myred}{rgb}{0.8500, 0.325, 0.098}
|
||||
|
||||
% Uncertainty Circle
|
||||
\node[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||||
\path[draw, dotted] (0, 0) circle [radius=1.0];
|
||||
\path[draw, dashed] (135:1.0) circle [radius=0.8];
|
||||
\begin{tikzpicture}
|
||||
\begin{scope}[shift={(4, 0)}]
|
||||
|
||||
% Center of Circle
|
||||
\node[below] at (0, 0){$1$};
|
||||
% Uncertainty Circle
|
||||
\node[draw, circle, fill=black!20!white, minimum size=3.6cm] (c) at (0, 0) {};
|
||||
\path[draw, fill=myblue!20!white] (0, 0) circle [radius=1.0];
|
||||
\path[draw, fill=myred!20!white] (135:1.0) circle [radius=0.8];
|
||||
\path[draw, dashed] (0, 0) circle [radius=1.0];
|
||||
|
||||
\draw[<->, dashed] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||||
\draw[<->, dashed] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(90:0.8);
|
||||
% Center of Circle
|
||||
\node[below] at (0, 0){$1$};
|
||||
|
||||
\node[] (l1) at (2, 1.5) {$|w_1 H_1|$};
|
||||
\draw[->, dashed, out=-90, in=0] (l1.south) to (r1);
|
||||
\draw[<->] (0, 0) node[branch]{} -- coordinate[midway](r1) ++(45:1.0);
|
||||
\draw[<->] (135:1.0)node[branch]{} -- coordinate[midway](r2) ++(135:0.8);
|
||||
|
||||
\node[] (l2) at (-2.5, 1.5) {$|w_2 H_2|$};
|
||||
\draw[->, dashed, out=0, in=-180] (l2.east) to (r2);
|
||||
\node[] (l1) at (2, 1.5) {$|w_1 H_1|$};
|
||||
\draw[->, out=-90, in=0] (l1.south) to (r1);
|
||||
|
||||
\draw[<->, dashed] (0, 0) -- coordinate[near end](r3) ++(200:1.8);
|
||||
\node[] (l3) at (-2.5, -1.5) {$|w_1 H_1| + |w_2 H_2|$};
|
||||
\draw[->, dashed, out=90, in=-90] (l3.north) to (r3);
|
||||
\end{scope}
|
||||
\node[] (l2) at (-3.2, 1.2) {$|w_2 H_2|$};
|
||||
\draw[->, out=0, in=-180] (l2.east) to (r2);
|
||||
|
||||
% Real and Imaginary Axis
|
||||
\draw[->] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
|
||||
\draw[->] (0, -1.7) -- (0, 1.7) node[below left]{Im};
|
||||
\draw[<->] (0, 0) -- coordinate[near end](r3) ++(200:1.8);
|
||||
\node[] (l3) at (-2.5, -1.5) {$|w_1 H_1| + |w_2 H_2|$};
|
||||
\draw[->, out=90, in=-90] (l3.north) to (r3);
|
||||
\end{scope}
|
||||
|
||||
\draw[dashed] (0, 0) -- (tangent cs:node=c,point={(0, 0)},solution=2);
|
||||
\draw[dashed] (1, 0) arc (0:28:1) node[midway, right]{$\Delta \phi$};
|
||||
\end{tikzpicture}
|
||||
% Real and Imaginary Axis
|
||||
\draw[->] (-0.5, 0) -- (7.0, 0) node[below left]{Re};
|
||||
\draw[->] (0, -1.7) -- (0, 1.7) node[below left]{Im};
|
||||
|
||||
\draw[dashed] (0, 0) -- (tangent cs:node=c,point={(0, 0)},solution=2);
|
||||
\draw[dashed] (1, 0) arc (0:28:1) node[midway, right]{$\Delta \phi$};
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:uncertainty_set_super_sensor
|
||||
@@ -147,33 +298,33 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/uncertainty_set_super_sensor.png]]
|
||||
|
||||
* Fig 4: Architecture used for $\mathcal{H}_\infty$ synthesis of complementary filters
|
||||
* Architecture used for $\mathcal{H}_\infty$ synthesis of complementary filters
|
||||
#+begin_src latex :file h_infinity_robust_fusion.pdf :tangle figs/h_infinity_robust_fusion.tex :exports both
|
||||
\begin{tikzpicture}
|
||||
\node[block={4.0cm}{2.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
\node[above] at (P.north) {$P(s)$};
|
||||
\begin{tikzpicture}
|
||||
\node[block={4.0cm}{3.0cm}, fill=black!10!white] (P) {};
|
||||
\node[above] at (P.north) {$P(s)$};
|
||||
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputw) at ($(P.south west)!0.75!(P.north west) + (-0.7, 0)$);
|
||||
\coordinate[] (inputu) at ($(P.south west)!0.35!(P.north west) + (-0.7, 0)$);
|
||||
|
||||
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output1) at ($(P.south east)!0.75!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (output2) at ($(P.south east)!0.35!(P.north east) + ( 0.7, 0)$);
|
||||
\coordinate[] (outputv) at ($(P.south east)!0.1!(P.north east) + ( 0.7, 0)$);
|
||||
|
||||
\node[block, left=1.4 of output1] (W1){$W_1(s)$};
|
||||
\node[block, left=1.4 of output2] (W2){$W_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=of W1] (sub) {};
|
||||
\node[block, left=1.4 of output1] (W1){$W_1(s)$};
|
||||
\node[block, left=1.4 of output2] (W2){$W_2(s)$};
|
||||
\node[addb={+}{}{}{}{-}, left=of W1] (sub) {};
|
||||
|
||||
\node[block, below=0.3 of P] (H2) {$H_2(s)$};
|
||||
\node[block, below=0.3 of P] (H2) {$H_2(s)$};
|
||||
|
||||
\draw[->] (inputw) node[above right]{$w$} -- (sub.west);
|
||||
\draw[->] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (W2.west);
|
||||
\draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
\draw[->] (sub.east) -- (W1.west);
|
||||
\draw[->] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
|
||||
\draw[->] (W1.east) -- (output1)node[above left]{$z_1$};
|
||||
\draw[->] (W2.east) -- (output2)node[above left]{$z_2$};
|
||||
\end{tikzpicture}
|
||||
\draw[->] (inputw) node[above right]{$w$} -- (sub.west);
|
||||
\draw[->] (H2.west) -| ($(inputu)+(0.35, 0)$) node[above]{$u$} -- (W2.west);
|
||||
\draw[->] (inputu-|sub) node[branch]{} -- (sub.south);
|
||||
\draw[->] (sub.east) -- (W1.west);
|
||||
\draw[->] ($(sub.west)+(-0.6, 0)$) node[branch]{} |- ($(outputv)+(-0.35, 0)$) node[above]{$v$} |- (H2.east);
|
||||
\draw[->] (W1.east) -- (output1)node[above left]{$z_1$};
|
||||
\draw[->] (W2.east) -- (output2)node[above left]{$z_2$};
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:h_infinity_robust_fusion
|
||||
@@ -181,98 +332,7 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/h_infinity_robust_fusion.png]]
|
||||
|
||||
* Fig 5: Magnitude of a weighting function generated using the proposed formula
|
||||
#+begin_src matlab :exports none :results none
|
||||
s = zpk('s');
|
||||
|
||||
freqs = logspace(-1, 2, 500);
|
||||
|
||||
n = 2;
|
||||
w0 = 2*pi*10;
|
||||
G0 = 1e-3;
|
||||
G1 = 10;
|
||||
Gc = 2;
|
||||
|
||||
W = (((1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (G0/Gc)^(1/n))/((1/G1)^(1/n)*(1/w0)*sqrt((1-(G0/Gc)^(2/n))/(1-(Gc/G1)^(2/n)))*s + (1/Gc)^(1/n)))^n;
|
||||
|
||||
T = table(freqs', ...
|
||||
abs(squeeze(freqresp(W, freqs, 'Hz'))), ...
|
||||
'VariableNames', {'freqs', 'ampl'});
|
||||
writetable(T, '../matlab/mat/weight_formula.csv');
|
||||
#+end_src
|
||||
|
||||
|
||||
#+begin_src latex :file weight_formula.pdf :tangle figs/weight_formula.tex :exports both
|
||||
\setlength\fwidth{6.5cm}
|
||||
\setlength\fheight{3.5cm}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[%
|
||||
width=1.0\fwidth,
|
||||
height=1.0\fheight,
|
||||
at={(0.0\fwidth, 0.0\fheight)},
|
||||
scale only axis,
|
||||
xmode=log,
|
||||
xmin=0.1,
|
||||
xmax=100,
|
||||
xtick={0.1,1,10, 100},
|
||||
xminorticks=true,
|
||||
ymode=log,
|
||||
ymin=0.0005,
|
||||
ymax=20,
|
||||
ytick={0.001, 0.01, 0.1, 1, 10},
|
||||
yminorticks=true,
|
||||
ylabel={Magnitude},
|
||||
xlabel={Frequency [Hz]},
|
||||
xminorgrids,
|
||||
yminorgrids,
|
||||
]
|
||||
|
||||
\addplot [color=black, line width=1.5pt, forget plot]
|
||||
table [x=freqs, y=ampl, col sep=comma] {/home/thomas/Cloud/thesis/papers/dehaeze19_desig_compl_filte/matlab/matweight_formula.csv};
|
||||
|
||||
\addplot [color=black, dashed, line width=1.5pt]
|
||||
table[row sep=crcr]{%
|
||||
1 10\\
|
||||
100 10\\
|
||||
};
|
||||
\addplot [color=black, dashed, line width=1.5pt]
|
||||
table[row sep=crcr]{%
|
||||
0.1 0.001\\
|
||||
3 0.001\\
|
||||
};
|
||||
|
||||
\addplot [color=black, line width=1.5pt]
|
||||
table[row sep=crcr]{%
|
||||
0.1 1\\
|
||||
100 1\\
|
||||
};
|
||||
|
||||
\addplot [color=black, dashed, line width=1.5pt]
|
||||
table[row sep=crcr]{%
|
||||
10 2\\
|
||||
10 1\\
|
||||
};
|
||||
|
||||
\node[below] at (2, 10) {$G_\infty$};
|
||||
\node[above] at (2, 0.001) {$G_0$};
|
||||
|
||||
\node[branch] at (10, 2){};
|
||||
\draw[dashed, line cap=round] (7, 2) -- (20, 2) node[right]{$G_c$};
|
||||
\draw[dashed, line cap=round] (10, 2) -- (10, 1) node[below]{$\omega_c$};
|
||||
|
||||
\node[right] at (3, 0.1) {$+n$};
|
||||
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
#+end_src
|
||||
|
||||
#+name: fig:weight_formula
|
||||
#+caption: Magnitude of a weighting function generated using the proposed formula ([[./figs/weight_formula.png][png]], [[./figs/weight_formula.pdf][pdf]], [[./figs/weight_formula.tex][tex]]).
|
||||
#+RESULTS:
|
||||
[[file:figs/weight_formula.png]]
|
||||
|
||||
* Fig 6: Frequency response of the weighting functions and complementary filters obtained using $\mathcal{H}_\infty$ synthesis
|
||||
* Frequency response of the weighting functions and complementary filters obtained using $\mathcal{H}_\infty$ synthesis
|
||||
#+begin_src latex :file hinf_synthesis_results.pdf :tangle figs/hinf_synthesis_results.tex :exports both
|
||||
\setlength\fwidth{6.5cm}
|
||||
\setlength\fheight{6cm}
|
||||
@@ -348,7 +408,7 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/hinf_synthesis_results.png]]
|
||||
|
||||
* Fig 7: Architecture for $\mathcal{H}_\infty$ synthesis of three complementary filters
|
||||
* Architecture for $\mathcal{H}_\infty$ synthesis of three complementary filters
|
||||
#+begin_src latex :file comp_filter_three_hinf.pdf :tangle figs/comp_filter_three_hinf.tex
|
||||
\begin{tikzpicture}
|
||||
\node[block={5.0cm}{3.5cm}, fill=black!20!white, dashed] (P) {};
|
||||
@@ -393,7 +453,7 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/comp_filter_three_hinf.png]]
|
||||
|
||||
* Fig 8: Frequency response of the weighting functions and three complementary filters obtained using $\mathcal{H}_\infty$ synthesis
|
||||
* Frequency response of the weighting functions and three complementary filters obtained using $\mathcal{H}_\infty$ synthesis
|
||||
#+begin_src latex :file hinf_three_synthesis_results.pdf :tangle figs/hinf_three_synthesis_results.tex :exports both
|
||||
\setlength\fwidth{6.5cm}
|
||||
\setlength\fheight{6cm}
|
||||
@@ -482,7 +542,7 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/hinf_three_synthesis_results.png]]
|
||||
|
||||
* Fig 9: Specifications and weighting functions magnitude used for $\mathcal{H}_\infty$ synthesis
|
||||
* Specifications and weighting functions magnitude used for $\mathcal{H}_\infty$ synthesis
|
||||
#+begin_src latex :file ligo_weights.pdf :tangle figs/ligo_weights.tex :exports both
|
||||
\setlength\fwidth{6.5cm}
|
||||
\setlength\fheight{3.2cm}
|
||||
@@ -557,7 +617,7 @@ Configuration file is accessible [[file:config.org][here]].
|
||||
#+RESULTS:
|
||||
[[file:figs/ligo_weights.png]]
|
||||
|
||||
* Fig 10: Comparison of the FIR filters (solid) with the filters obtained with $\mathcal{H}_\infty$ synthesis (dashed)
|
||||
* Comparison of the FIR filters (solid) with the filters obtained with $\mathcal{H}_\infty$ synthesis (dashed)
|
||||
#+begin_src latex :file comp_fir_ligo_hinf.pdf :tangle figs/comp_fir_ligo_hinf.tex :exports both
|
||||
\setlength\fwidth{6.5cm}
|
||||
\setlength\fheight{6.8cm}
|
||||
|
Reference in New Issue
Block a user