Change pdf output and rename files
This commit is contained in:
parent
3ef8b604c5
commit
282a5bac04
1828
index.html
Normal file
1828
index.html
Normal file
File diff suppressed because it is too large
Load Diff
114
preamble.tex
Normal file
114
preamble.tex
Normal file
@ -0,0 +1,114 @@
|
||||
\usepackage{float}
|
||||
|
||||
\usepackage{caption,tabularx,booktabs}
|
||||
|
||||
\usepackage{biblatex}
|
||||
|
||||
\usepackage{fontawesome}
|
||||
|
||||
\usepackage{caption}
|
||||
\usepackage{subcaption}
|
||||
|
||||
\captionsetup[figure]{labelfont=bf}
|
||||
\captionsetup[subfigure]{labelfont=bf}
|
||||
\captionsetup[listing]{labelfont=bf}
|
||||
\captionsetup[table]{labelfont=bf}
|
||||
|
||||
\usepackage{xcolor}
|
||||
|
||||
\definecolor{my-blue}{HTML}{6b7adb}
|
||||
\definecolor{my-pale-blue}{HTML}{e6e9f9}
|
||||
\definecolor{my-red}{HTML}{db6b6b}
|
||||
\definecolor{my-pale-red}{HTML}{f9e6e6}
|
||||
\definecolor{my-green}{HTML}{6bdbb6}
|
||||
\definecolor{my-pale-green}{HTML}{e6f9f3}
|
||||
\definecolor{my-yellow}{HTML}{dbd26b}
|
||||
\definecolor{my-pale-yellow}{HTML}{f9f7e6}
|
||||
\definecolor{my-orange}{HTML}{dba76b}
|
||||
\definecolor{my-pale-orange}{HTML}{f9f0e6}
|
||||
\definecolor{my-grey}{HTML}{a3a3a3}
|
||||
\definecolor{my-pale-grey}{HTML}{f0f0f0}
|
||||
\definecolor{my-turq}{HTML}{6bc7db}
|
||||
\definecolor{my-pale-turq}{HTML}{e6f6f9}
|
||||
|
||||
\usepackage{inconsolata}
|
||||
|
||||
\usepackage[newfloat=true, chapter]{minted}
|
||||
\usemintedstyle{autumn}
|
||||
|
||||
\setminted{frame=lines,breaklines=true,tabsize=4,fontsize=\scriptsize,autogobble=true,labelposition=topline,bgcolor=my-pale-grey}
|
||||
\setminted[matlab]{label=Matlab}
|
||||
\setminted[latex]{label=LaTeX}
|
||||
\setminted[bash]{label=Bash}
|
||||
\setminted[python]{label=Python}
|
||||
\setminted[text]{label=Results}
|
||||
\setminted[md]{label=Org Mode}
|
||||
|
||||
\setmintedinline{fontsize=\normalsize,bgcolor=my-pale-grey}
|
||||
|
||||
\usepackage[most]{tcolorbox}
|
||||
|
||||
\tcbuselibrary{minted}
|
||||
|
||||
\newtcolorbox{seealso}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=See Also}
|
||||
\newtcolorbox{hint}{ enhanced,breakable,colback=my-pale-grey,colframe=my-grey,fonttitle=\bfseries,title=Hint}
|
||||
\newtcolorbox{definition}{enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Definition}
|
||||
\newtcolorbox{important}{ enhanced,breakable,colback=my-pale-red, colframe=my-red, fonttitle=\bfseries,title=Important}
|
||||
\newtcolorbox{exampl}[1][]{ enhanced,breakable,colback=my-pale-green,colframe=my-green,fonttitle=\bfseries,title=Example,#1}
|
||||
\newtcolorbox{exercice}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Exercice}
|
||||
\newtcolorbox{question}{ enhanced,breakable,colback=my-pale-yellow,colframe=my-yellow,fonttitle=\bfseries,title=Question}
|
||||
\newtcolorbox{answer}{ enhanced,breakable,colback=my-pale-turq,colframe=my-turq,fonttitle=\bfseries,title=Answer}
|
||||
\newtcolorbox{summary}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Summary}
|
||||
\newtcolorbox{note}{ enhanced,breakable,colback=my-pale-blue,colframe=my-blue,fonttitle=\bfseries,title=Note}
|
||||
\newtcolorbox{caution}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Caution}
|
||||
\newtcolorbox{warning}{ enhanced,breakable,colback=my-pale-orange,colframe=my-orange,fonttitle=\bfseries,title=Warning}
|
||||
|
||||
\newtcolorbox{my-quote}[1]{%
|
||||
colback=my-pale-grey,
|
||||
grow to right by=-10mm,
|
||||
grow to left by=-10mm,
|
||||
boxrule=0pt,
|
||||
boxsep=0pt,
|
||||
breakable,
|
||||
enhanced jigsaw,
|
||||
borderline west={4pt}{0pt}{my-grey}}
|
||||
|
||||
\renewenvironment{quote}{\begin{my-quote}}{\end{my-quote}}
|
||||
|
||||
\newtcolorbox{my-verse}[1]{%
|
||||
colback=my-pale-grey,
|
||||
grow to right by=-10mm,
|
||||
grow to left by=-10mm,
|
||||
boxrule=0pt,
|
||||
boxsep=0pt,
|
||||
breakable,
|
||||
enhanced jigsaw,
|
||||
borderline west={4pt}{0pt}{my-grey}}
|
||||
|
||||
\renewenvironment{verse}{\begin{my-verse}}{\end{my-verse}}
|
||||
|
||||
\usepackage{environ}% http://ctan.org/pkg/environ
|
||||
\NewEnviron{aside}{%
|
||||
\marginpar{\BODY}
|
||||
}
|
||||
|
||||
\renewenvironment{verbatim}{\VerbatimEnvironment\begin{minted}[]{text}}{\end{minted}}
|
||||
|
||||
\usepackage{soul}
|
||||
\sethlcolor{my-pale-grey}
|
||||
|
||||
\let\OldTexttt\texttt
|
||||
\renewcommand{\texttt}[1]{{\ttfamily\hl{\mbox{\,#1\,}}}}
|
||||
|
||||
\makeatletter
|
||||
\preto\Gin@extensions{png,}
|
||||
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
|
||||
\makeatother
|
||||
|
||||
\usepackage{hyperref}
|
||||
\hypersetup{
|
||||
colorlinks = true,
|
||||
allcolors = my-blue
|
||||
}
|
||||
|
||||
\usepackage{hypcap}
|
@ -29,24 +29,12 @@
|
||||
|
||||
#+BIND: org-latex-image-default-option "scale=1"
|
||||
#+BIND: org-latex-image-default-width ""
|
||||
#+BIND: org-latex-bib-compiler "biber"
|
||||
|
||||
#+OPTIONS: toc:2
|
||||
|
||||
#+LATEX_CLASS: cleanreport
|
||||
#+LATEX_CLASS_OPTIONS: [tocnp, secbreak, minted]
|
||||
|
||||
#+LATEX_HEADER_EXTRA: \usepackage[cache=false]{minted}
|
||||
#+LATEX_HEADER_EXTRA: \usemintedstyle{autumn}
|
||||
#+LATEX_HEADER_EXTRA: \setminted[matlab]{linenos=true, breaklines=true, tabsize=4, fontsize=\scriptsize, autogobble=true}
|
||||
|
||||
#+LATEX_HEADER: \newcommand{\authorFirstName}{Thomas}
|
||||
#+LATEX_HEADER: \newcommand{\authorLastName}{Dehaeze}
|
||||
#+LATEX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
|
||||
|
||||
#+LATEX_HEADER_EXTRA: \makeatletter
|
||||
#+LATEX_HEADER_EXTRA: \preto\Gin@extensions{png,}
|
||||
#+LATEX_HEADER_EXTRA: \DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
|
||||
#+LATEX_HEADER_EXTRA: \makeatother
|
||||
|
||||
#+LaTeX_CLASS: scrreprt
|
||||
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full]
|
||||
#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
|
||||
#+LATEX_HEADER_EXTRA: \addbibresource{ref.bib}
|
||||
:END:
|
||||
|
||||
@ -2531,6 +2519,4 @@ This Matlab function is accessible [[file:src/plotPhaseUncertainty.m][here]].
|
||||
#+end_src
|
||||
|
||||
* Bibliography :ignore:
|
||||
bibliography:ref.bib
|
||||
|
||||
#+latex: \printbibliography
|
||||
|
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
% Created 2021-02-02 mar. 18:51
|
||||
% Created 2021-02-02 mar. 19:10
|
||||
% Intended LaTeX compiler: pdflatex
|
||||
\documentclass[tocnp, secbreak, minted]{cleanreport}
|
||||
\documentclass[a4paper, 10pt, DIV=12, parskip=full]{scrreprt}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{graphicx}
|
||||
@ -20,16 +20,7 @@
|
||||
\usepackage{tabularx}
|
||||
\usepackage{array}
|
||||
\usepackage{siunitx}
|
||||
\newcommand{\authorFirstName}{Thomas}
|
||||
\newcommand{\authorLastName}{Dehaeze}
|
||||
\newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
|
||||
\usepackage[cache=false]{minted}
|
||||
\usemintedstyle{autumn}
|
||||
\setminted[matlab]{linenos=true, breaklines=true, tabsize=4, fontsize=\scriptsize, autogobble=true}
|
||||
\makeatletter
|
||||
\preto\Gin@extensions{png,}
|
||||
\DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
|
||||
\makeatother
|
||||
\input{preamble.tex}
|
||||
\addbibresource{ref.bib}
|
||||
\author{Dehaeze Thomas}
|
||||
\date{\today}
|
||||
@ -62,8 +53,8 @@ This document is divided into the following sections:
|
||||
\item Section \ref{sec:optimal_sensor_fusion}: Optimal sensor fusion is performed using the \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis
|
||||
\end{itemize}
|
||||
|
||||
\section{Experimental Setup}
|
||||
\label{sec:org946e8f3}
|
||||
\chapter{Experimental Setup}
|
||||
\label{sec:org2eab8ee}
|
||||
\label{sec:experimental_setup}
|
||||
|
||||
The goal of this experimental setup is to experimentally merge inertial sensors.
|
||||
@ -136,15 +127,15 @@ Force Sensor electronics:
|
||||
\item high pass filter: 1st order at 30kHz
|
||||
\end{itemize}
|
||||
|
||||
\section{First identification of the system}
|
||||
\label{sec:org9f0c4bc}
|
||||
\chapter{First identification of the system}
|
||||
\label{sec:org8c87e73}
|
||||
\label{sec:first_identification}
|
||||
In this section, a first identification of each elements of the system is performed.
|
||||
This include the dynamics from the actuator to the force sensor, interferometer and inertial sensors.
|
||||
|
||||
Each of the dynamics is compared with the dynamics identified form a Simscape model.
|
||||
\subsection{Load Data}
|
||||
\label{sec:org1fb8239}
|
||||
\section{Load Data}
|
||||
\label{sec:orged7fae1}
|
||||
The data is loaded in the Matlab workspace.
|
||||
\begin{minted}[]{matlab}
|
||||
id_ol = load('identification_noise_bis.mat', 'd', 'acc_1', 'acc_2', 'geo_1', 'geo_2', 'f_meas', 'u', 't');
|
||||
@ -161,8 +152,8 @@ Then, any offset is removed.
|
||||
id_ol.u = detrend(id_ol.u, 0);
|
||||
\end{minted}
|
||||
|
||||
\subsection{Excitation Signal}
|
||||
\label{sec:org94ea93c}
|
||||
\section{Excitation Signal}
|
||||
\label{sec:org8b54688}
|
||||
The generated voltage used to excite the system is a white noise and can be seen in Figure \ref{fig:excitation_signal_first_identification}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -171,8 +162,8 @@ The generated voltage used to excite the system is a white noise and can be seen
|
||||
\caption{\label{fig:excitation_signal_first_identification}Voltage excitation signal}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Identified Plant}
|
||||
\label{sec:org2786526}
|
||||
\section{Identified Plant}
|
||||
\label{sec:org3c04eac}
|
||||
The transfer function from the excitation voltage to the mass displacement and to the force sensor stack voltage are identified using the \texttt{tfestimate} command.
|
||||
|
||||
\begin{minted}[]{matlab}
|
||||
@ -199,8 +190,8 @@ The bode plots of the obtained dynamics are shown in Figures \ref{fig:force_sens
|
||||
\caption{\label{fig:displacement_sensor_bode_plot}Bode plot of the dynamics from excitation voltage to displacement of the mass as measured by the interferometer}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Simscape Model - Comparison}
|
||||
\label{sec:org38a7789}
|
||||
\section{Simscape Model - Comparison}
|
||||
\label{sec:orgfbeadc5}
|
||||
A simscape model representing the test-bench has been developed.
|
||||
The same transfer functions as the one identified using the test-bench can be obtained thanks to the simscape model.
|
||||
|
||||
@ -223,8 +214,8 @@ It is shown that there is a good agreement between the model and the experiment.
|
||||
\caption{\label{fig:simscape_comp_disp_plant}Comparison of the dynamics from excitation voltage to measured mass displacement - Identified dynamics and Simscape Model}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Integral Force Feedback}
|
||||
\label{sec:org47d5680}
|
||||
\section{Integral Force Feedback}
|
||||
\label{sec:org5839beb}
|
||||
The force sensor stack can be used to damp the system.
|
||||
This makes the system easier to excite properly without too much amplification near resonances.
|
||||
|
||||
@ -269,8 +260,8 @@ This shows that the Integral Force Feedback architecture effectively damps the f
|
||||
\caption{\label{fig:iff_ol_cl_identified_simscape_comp}Comparison of the open-loop and closed-loop (IFF) dynamics for both the real identification and the Simscape one}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Inertial Sensors}
|
||||
\label{sec:orgfc5acd9}
|
||||
\section{Inertial Sensors}
|
||||
\label{sec:org8d9fa37}
|
||||
In order to estimate the dynamics of the inertial sensor (the transfer function from the ``absolute'' displacement to the measured voltage), the following experiment can be performed:
|
||||
\begin{itemize}
|
||||
\item The mass is excited such that is relative displacement as measured by the interferometer is much larger that the ground ``absolute'' motion.
|
||||
@ -328,15 +319,15 @@ The obtained dynamics of the accelerometer are compared in Figure \ref{fig:comp_
|
||||
\caption{\label{fig:comp_dynamics_geophone}Comparison of the measured geophone dynamics}
|
||||
\end{figure}
|
||||
|
||||
\section{Optimal IFF Development}
|
||||
\label{sec:orgb6f0a44}
|
||||
\chapter{Optimal IFF Development}
|
||||
\label{sec:org0fdc9f6}
|
||||
\label{sec:integral_force_feedback}
|
||||
In this section, a proper identification of the transfer function from the force actuator to the force sensor is performed.
|
||||
Then, an optimal IFF controller is developed and applied experimentally.
|
||||
|
||||
The damped system is identified to verified the effectiveness of the added method.
|
||||
\subsection{Load Data}
|
||||
\label{sec:orgd2c4449}
|
||||
\section{Load Data}
|
||||
\label{sec:org478ca36}
|
||||
The experimental data is loaded and any offset is removed.
|
||||
\begin{minted}[]{matlab}
|
||||
id_ol = load('identification_noise_bis.mat', 'd', 'acc_1', 'acc_2', 'geo_1', 'geo_2', 'f_meas', 'u', 't');
|
||||
@ -352,8 +343,8 @@ The experimental data is loaded and any offset is removed.
|
||||
id_ol.u = detrend(id_ol.u, 0);
|
||||
\end{minted}
|
||||
|
||||
\subsection{Experimental Data}
|
||||
\label{sec:orge97f045}
|
||||
\section{Experimental Data}
|
||||
\label{sec:org705ead9}
|
||||
The transfer function from force actuator to force sensors is estimated.
|
||||
|
||||
The coherence shown in Figure \ref{fig:iff_identification_coh} shows that the excitation signal is good enough.
|
||||
@ -382,8 +373,8 @@ The obtained dynamics is shown in Figure \ref{fig:iff_identification_bode_plot}.
|
||||
\caption{\label{fig:iff_identification_bode_plot}Bode plot of the identified IFF plant}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Model of the IFF Plant}
|
||||
\label{sec:orge4307c5}
|
||||
\section{Model of the IFF Plant}
|
||||
\label{sec:orge2595c0}
|
||||
In order to plot the root locus for the IFF control strategy, a model of the identified plant is developed.
|
||||
|
||||
It consists of several poles and zeros are shown below.
|
||||
@ -406,8 +397,8 @@ The comparison of the identified dynamics and the developed model is done in Fig
|
||||
\caption{\label{fig:iff_plant_model}IFF Plant + Model}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Root Locus and optimal Controller}
|
||||
\label{sec:orgb8dd861}
|
||||
\section{Root Locus and optimal Controller}
|
||||
\label{sec:org3cf82e8}
|
||||
Now, the root locus for the Integral Force Feedback strategy is computed and shown in Figure \ref{fig:iff_root_locus}.
|
||||
|
||||
Note that the controller used is not a pure integrator but rather a first order low pass filter with a cut-off frequency set at 2Hz.
|
||||
@ -423,8 +414,8 @@ The controller that yield maximum damping (shown by the red cross in Figure \ref
|
||||
Kiff_opt = 102/(s + 2*pi*2);
|
||||
\end{minted}
|
||||
|
||||
\subsection{Verification of the achievable damping}
|
||||
\label{sec:orgb0f79ca}
|
||||
\section{Verification of the achievable damping}
|
||||
\label{sec:org32eb089}
|
||||
A new identification is performed with the IFF control strategy applied to the system.
|
||||
|
||||
Data is loaded and offset removed.
|
||||
@ -465,8 +456,8 @@ The obtained coherence is shown in Figure \ref{fig:Gd_identification_iff_coheren
|
||||
\caption{\label{fig:Gd_identification_iff_bode_plot}Coherence for the transfer function from F to d, with and without IFF}
|
||||
\end{figure}
|
||||
|
||||
\section{Generate the excitation signal}
|
||||
\label{sec:org043d407}
|
||||
\chapter{Generate the excitation signal}
|
||||
\label{sec:org45b7b7f}
|
||||
\label{sec:optimal_excitation}
|
||||
In order to properly estimate the dynamics of the inertial sensor, the excitation signal must be properly chosen.
|
||||
|
||||
@ -483,8 +474,8 @@ To determine the perfect voltage signal to be generated, we need two things:
|
||||
\item not saturate the sensor signals
|
||||
\item provide enough signal/noise ratio (good coherence) in the frequency band of interest (\textasciitilde{}0.5Hz to 3kHz)
|
||||
\end{itemize}
|
||||
\subsection{Transfer function from excitation signal to displacement}
|
||||
\label{sec:orgc386ade}
|
||||
\section{Transfer function from excitation signal to displacement}
|
||||
\label{sec:org91cbb90}
|
||||
Let's first estimate the transfer function from the excitation signal in [V] to the generated displacement in [m] as measured by the inteferometer.
|
||||
|
||||
\begin{minted}[]{matlab}
|
||||
@ -512,8 +503,8 @@ Approximate transfer function from voltage output to generated displacement when
|
||||
\caption{\label{fig:Gd_plant_estimation}Estimation of the transfer function from the excitation signal to the generated displacement}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Motion measured during Huddle test}
|
||||
\label{sec:org34b9217}
|
||||
\section{Motion measured during Huddle test}
|
||||
\label{sec:org75df0bc}
|
||||
We now compute the PSD of the measured motion by the inertial sensors during the huddle test.
|
||||
\begin{minted}[]{matlab}
|
||||
ht = load('huddle_test.mat', 'd', 'acc_1', 'acc_2', 'geo_1', 'geo_2', 'f_meas', 'u', 't');
|
||||
@ -586,12 +577,12 @@ We can now generate the voltage signal that will generate the wanted motion.
|
||||
\caption{\label{fig:optimal_exc_signal_time}Generated excitation signal}
|
||||
\end{figure}
|
||||
|
||||
\section{Identification of the Inertial Sensors Dynamics}
|
||||
\label{sec:org8247cdc}
|
||||
\chapter{Identification of the Inertial Sensors Dynamics}
|
||||
\label{sec:orgcc056c7}
|
||||
\label{sec:inertial_sensor_dynamics}
|
||||
Using the excitation signal generated in Section \ref{sec:optimal_excitation}, the dynamics of the inertial sensors are identified.
|
||||
\subsection{Load Data}
|
||||
\label{sec:org672e9e4}
|
||||
\section{Load Data}
|
||||
\label{sec:orge1aa902}
|
||||
Both the measurement data during the identification test and during an ``huddle test'' are loaded.
|
||||
\begin{minted}[]{matlab}
|
||||
id = load('identification_noise_opt_iff.mat', 'd', 'acc_1', 'acc_2', 'geo_1', 'geo_2', 'f_meas', 'u', 't');
|
||||
@ -616,8 +607,8 @@ Both the measurement data during the identification test and during an ``huddle
|
||||
id.f_meas = detrend(id.f_meas, 0);
|
||||
\end{minted}
|
||||
|
||||
\subsection{Compare PSD during Huddle and and during identification}
|
||||
\label{sec:org5c0ada4}
|
||||
\section{Compare PSD during Huddle and and during identification}
|
||||
\label{sec:org5e81ca2}
|
||||
The Power Spectral Density of the measured motion during the huddle test and during the identification test are compared in Figures \ref{fig:comp_psd_huddle_test_identification_acc} and \ref{fig:comp_psd_huddle_test_identification_geo}.
|
||||
|
||||
\begin{minted}[]{matlab}
|
||||
@ -654,8 +645,8 @@ The Power Spectral Density of the measured motion during the huddle test and dur
|
||||
\caption{\label{fig:comp_psd_huddle_test_identification_geo}Comparison of the PSD of the measured motion during the Huddle test and during the identification}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Compute transfer functions}
|
||||
\label{sec:org410c99d}
|
||||
\section{Compute transfer functions}
|
||||
\label{sec:org8059f91}
|
||||
The transfer functions from the motion as measured by the interferometer (and that should represent the absolute motion of the mass) to the inertial sensors are estimated:
|
||||
\begin{minted}[]{matlab}
|
||||
[tf_acc1_est, f] = tfestimate(id.d, id.acc_1, win, [], [], 1/Ts);
|
||||
@ -697,12 +688,12 @@ The model and identified dynamics show good agreement (Figures \ref{fig:id_senso
|
||||
\caption{\label{fig:id_sensor_dynamics_geophones}Identified dynamics of the geophones}
|
||||
\end{figure}
|
||||
|
||||
\section{Inertial Sensor Noise and the \(\mathcal{H}_2\) Synthesis of complementary filters}
|
||||
\label{sec:org24cccda}
|
||||
\chapter{Inertial Sensor Noise and the \(\mathcal{H}_2\) Synthesis of complementary filters}
|
||||
\label{sec:orgbc08fc3}
|
||||
\label{sec:inertial_sensor_noise}
|
||||
In this section, the noise of the inertial sensors (geophones and accelerometers) is estimated.
|
||||
\subsection{Load Data}
|
||||
\label{sec:org3669b51}
|
||||
\section{Load Data}
|
||||
\label{sec:org967725e}
|
||||
As before, the identification data is loaded and any offset if removed.
|
||||
\begin{minted}[]{matlab}
|
||||
id = load('identification_noise_opt_iff.mat', 'd', 'acc_1', 'acc_2', 'geo_1', 'geo_2', 'f_meas', 'u', 't');
|
||||
@ -717,8 +708,8 @@ As before, the identification data is loaded and any offset if removed.
|
||||
id.f_meas = detrend(id.f_meas, 0);
|
||||
\end{minted}
|
||||
|
||||
\subsection{ASD of the Measured displacement}
|
||||
\label{sec:orgb545abb}
|
||||
\section{ASD of the Measured displacement}
|
||||
\label{sec:org46e2c6e}
|
||||
The Power Spectral Density of the displacement as measured by the interferometer and the inertial sensors is computed.
|
||||
\begin{minted}[]{matlab}
|
||||
Ts = id.t(2) - id.t(1);
|
||||
@ -747,8 +738,8 @@ The obtained ASD in \(m/\sqrt{Hz}\) is shown in Figure \ref{fig:measure_displace
|
||||
\caption{\label{fig:measure_displacement_all_sensors}ASD of the measured displacement as measured by all the sensors}
|
||||
\end{figure}
|
||||
|
||||
\subsection{ASD of the Sensor Noise}
|
||||
\label{sec:orge92b139}
|
||||
\section{ASD of the Sensor Noise}
|
||||
\label{sec:org39f2454}
|
||||
The noise of a sensor can be estimated using two identical sensors by computing:
|
||||
\begin{itemize}
|
||||
\item the Power Spectral Density of the measured motion by the two sensors
|
||||
@ -784,8 +775,8 @@ The ASD of obtained noises are compared with the ASD of the measured signals in
|
||||
\caption{\label{fig:noise_inertial_sensors_comparison}Comparison of the computed ASD of the noise of the two inertial sensors}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Noise Model}
|
||||
\label{sec:org7fd73d1}
|
||||
\section{Noise Model}
|
||||
\label{sec:orgc2ba23b}
|
||||
Transfer functions are adjusted in order to fit the ASD of the sensor noises (expressed in \([m/s/\sqrt{Hz}]\) for more easy fitting).
|
||||
|
||||
These transfer functions are defined below and compared with the measured ASD in Figure \ref{fig:noise_models_velocity}.
|
||||
@ -800,8 +791,8 @@ These transfer functions are defined below and compared with the measured ASD in
|
||||
\caption{\label{fig:noise_models_velocity}ASD of the velocity noise measured by the sensors and the noise models}
|
||||
\end{figure}
|
||||
|
||||
\subsection{\(\mathcal{H}_2\) Synthesis of the Complementary Filters}
|
||||
\label{sec:orgc1953b2}
|
||||
\section{\(\mathcal{H}_2\) Synthesis of the Complementary Filters}
|
||||
\label{sec:org79826d9}
|
||||
We now wish to synthesize two complementary filters to merge the geophone and the accelerometer signal in such a way that the fused signal has the lowest possible RMS noise.
|
||||
|
||||
To do so, we use the \(\mathcal{H}_2\) synthesis where the transfer functions representing the noise density of both sensors are used as weights.
|
||||
@ -826,8 +817,8 @@ The obtained complementary filters are shown in Figure \ref{fig:complementary_fi
|
||||
\caption{\label{fig:complementary_filters_velocity_H2}Obtained Complementary Filters}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Results}
|
||||
\label{sec:org3e27ebd}
|
||||
\section{Results}
|
||||
\label{sec:org1260a50}
|
||||
Finally, the signals of both sensors are merged using the complementary filters and the super sensor noise is estimated and compared with the individual sensor noises in Figure \ref{fig:super_sensor_noise_asd_velocity}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -853,13 +844,13 @@ Finally, the Cumulative Power Spectrum is computed and compared in Figure \ref{f
|
||||
\caption{\label{fig:super_sensor_noise_cas_velocity}Cumulative Power Spectrum of the Sensor Noise (velocity)}
|
||||
\end{figure}
|
||||
|
||||
\section{Inertial Sensor Dynamics Uncertainty and the \(\mathcal{H}_\infty\) Synthesis of complementary filters}
|
||||
\label{sec:org18f6d67}
|
||||
\chapter{Inertial Sensor Dynamics Uncertainty and the \(\mathcal{H}_\infty\) Synthesis of complementary filters}
|
||||
\label{sec:orgf41d7c1}
|
||||
\label{sec:inertial_sensor_uncertainty}
|
||||
When merging two sensors, it is important to be sure that we correctly know the sensor dynamics near the merging frequency.
|
||||
Thus, identifying the uncertainty on the sensor dynamics is quite important to perform a robust merging.
|
||||
\subsection{Load Data}
|
||||
\label{sec:org5d94970}
|
||||
\section{Load Data}
|
||||
\label{sec:org5adcc7b}
|
||||
Data is loaded and offset is removed.
|
||||
|
||||
\begin{minted}[]{matlab}
|
||||
@ -875,8 +866,8 @@ Data is loaded and offset is removed.
|
||||
id.f_meas = detrend(id.f_meas, 0);
|
||||
\end{minted}
|
||||
|
||||
\subsection{Compute the dynamics of both sensors}
|
||||
\label{sec:org69af94a}
|
||||
\section{Compute the dynamics of both sensors}
|
||||
\label{sec:org74a5ed1}
|
||||
The dynamics of inertial sensors are estimated (in \([V/m]\)).
|
||||
\begin{minted}[]{matlab}
|
||||
Ts = id.t(2) - id.t(1);
|
||||
@ -903,8 +894,8 @@ The (nominal) models of the inertial sensors from the absolute displacement to t
|
||||
|
||||
These models are very simplistic models, and we then take into account the un-modelled dynamics with dynamical uncertainty.
|
||||
|
||||
\subsection{Dynamics uncertainty estimation}
|
||||
\label{sec:org8c17435}
|
||||
\section{Dynamics uncertainty estimation}
|
||||
\label{sec:org5ba11de}
|
||||
Weights representing the dynamical uncertainty of the sensors are defined below.
|
||||
\begin{minted}[]{matlab}
|
||||
w_acc = createWeight('n', 2, 'G0', 10, 'G1', 0.2, 'Gc', 1, 'w0', 6*2*pi) * ...
|
||||
@ -928,8 +919,8 @@ The measured dynamics are compared with the modelled one as well as the modelled
|
||||
\caption{\label{fig:dyn_uncertainty_geo}Modeled dynamical uncertainty and meaured dynamics of the geophones}
|
||||
\end{figure}
|
||||
|
||||
\subsection{\(\mathcal{H}_\infty\) Synthesis of Complementary Filters}
|
||||
\label{sec:orgefb73b5}
|
||||
\section{\(\mathcal{H}_\infty\) Synthesis of Complementary Filters}
|
||||
\label{sec:org719855a}
|
||||
A last weight is now defined that represents the maximum dynamical uncertainty that is allowed for the super sensor.
|
||||
\begin{minted}[]{matlab}
|
||||
wu = inv(createWeight('n', 2, 'G0', 0.7, 'G1', 0.3, 'Gc', 0.4, 'w0', 3*2*pi) * ...
|
||||
@ -984,8 +975,8 @@ The bode plot of the obtained complementary filters is shown in Figure
|
||||
\caption{\label{fig:h_infinity_obtained_complementary_filters}Bode plot of the obtained complementary filters using the \(\mathcal{H}_\infty\) synthesis}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Obtained Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org1f65afd}
|
||||
\section{Obtained Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org467a55a}
|
||||
The obtained super sensor dynamical uncertainty is shown in Figure \ref{fig:super_sensor_uncertainty_h_infinity}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -994,11 +985,11 @@ The obtained super sensor dynamical uncertainty is shown in Figure \ref{fig:supe
|
||||
\caption{\label{fig:super_sensor_uncertainty_h_infinity}Obtained Super sensor dynamics uncertainty}
|
||||
\end{figure}
|
||||
|
||||
\section{Optimal and Robust sensor fusion using the \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||
\label{sec:orgbc2335a}
|
||||
\chapter{Optimal and Robust sensor fusion using the \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||
\label{sec:org37f1a9c}
|
||||
\label{sec:optimal_sensor_fusion}
|
||||
\subsection{Noise and Dynamical uncertainty weights}
|
||||
\label{sec:orgc6785ad}
|
||||
\section{Noise and Dynamical uncertainty weights}
|
||||
\label{sec:orgbc4a9e6}
|
||||
\begin{minted}[]{matlab}
|
||||
N_acc = (s/(2*pi*2000) + 1)^2/(s + 0.1*2*pi)/(s + 1e3*2*pi)/(1 + s/2/pi/1e3); % [m/sqrt(Hz)]
|
||||
N_geo = 4e-4*((s + 2*pi)/(2*pi*200) + 1)/(s + 1e3*2*pi)/(1 + s/2/pi/1e3); % [m/sqrt(Hz)]
|
||||
@ -1034,8 +1025,8 @@ And the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is performed.
|
||||
H_acc = 1 - H_geo;
|
||||
\end{minted}
|
||||
|
||||
\subsection{Obtained Super Sensor Noise}
|
||||
\label{sec:orgaab21f6}
|
||||
\section{Obtained Super Sensor Noise}
|
||||
\label{sec:org074377b}
|
||||
\begin{minted}[]{matlab}
|
||||
freqs = logspace(0, 4, 1000);
|
||||
PSD_Sgeo = abs(squeeze(freqresp(N_geo, freqs, 'Hz'))).^2;
|
||||
@ -1050,16 +1041,16 @@ And the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis is performed.
|
||||
\caption{\label{fig:psd_sensors_htwo_hinf_synthesis}Power Spectral Density of the Super Sensor obtained with the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Obtained Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org7c783d3}
|
||||
\section{Obtained Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org3d908c9}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[scale=1]{figs/super_sensor_dynamical_uncertainty_Htwo_Hinf.png}
|
||||
\caption{\label{fig:super_sensor_dynamical_uncertainty_Htwo_Hinf}Super sensor dynamical uncertainty (solid curve) when using the mixed \(\mathcal{H}_2/\mathcal{H}_\infty\) Synthesis}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Experimental Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:org9d88724}
|
||||
\section{Experimental Super Sensor Dynamical Uncertainty}
|
||||
\label{sec:orgfb4a53c}
|
||||
The super sensor dynamics is shown in Figure \ref{fig:super_sensor_optimal_uncertainty}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -1068,8 +1059,8 @@ The super sensor dynamics is shown in Figure \ref{fig:super_sensor_optimal_uncer
|
||||
\caption{\label{fig:super_sensor_optimal_uncertainty}Inertial Sensor dynamics as well as the super sensor dynamics}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Experimental Super Sensor Noise}
|
||||
\label{sec:org96d37f0}
|
||||
\section{Experimental Super Sensor Noise}
|
||||
\label{sec:orgaa2a032}
|
||||
The obtained super sensor noise is shown in Figure \ref{fig:super_sensor_optimal_noise}.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
@ -1078,11 +1069,11 @@ The obtained super sensor noise is shown in Figure \ref{fig:super_sensor_optimal
|
||||
\caption{\label{fig:super_sensor_optimal_noise}ASD of the super sensor obtained using the \(\mathcal{H}_2/\mathcal{H}_\infty\) synthesis}
|
||||
\end{figure}
|
||||
|
||||
\section{Matlab Functions}
|
||||
\label{sec:org5109d75}
|
||||
\chapter{Matlab Functions}
|
||||
\label{sec:org895c065}
|
||||
\label{sec:matlab_functions}
|
||||
\subsection{\texttt{createWeight}}
|
||||
\label{sec:orgf435513}
|
||||
\section{\texttt{createWeight}}
|
||||
\label{sec:org94e9cbb}
|
||||
\label{sec:createWeight}
|
||||
|
||||
This Matlab function is accessible \href{src/createWeight.m}{here}.
|
||||
@ -1129,8 +1120,8 @@ This Matlab function is accessible \href{src/createWeight.m}{here}.
|
||||
end
|
||||
\end{minted}
|
||||
|
||||
\subsection{\texttt{plotMagUncertainty}}
|
||||
\label{sec:orgff4d677}
|
||||
\section{\texttt{plotMagUncertainty}}
|
||||
\label{sec:orgc1c3060}
|
||||
\label{sec:plotMagUncertainty}
|
||||
|
||||
This Matlab function is accessible \href{src/plotMagUncertainty.m}{here}.
|
||||
@ -1176,8 +1167,8 @@ This Matlab function is accessible \href{src/plotMagUncertainty.m}{here}.
|
||||
end
|
||||
\end{minted}
|
||||
|
||||
\subsection{\texttt{plotPhaseUncertainty}}
|
||||
\label{sec:orgacbe668}
|
||||
\section{\texttt{plotPhaseUncertainty}}
|
||||
\label{sec:orgf8a75f6}
|
||||
\label{sec:plotPhaseUncertainty}
|
||||
|
||||
This Matlab function is accessible \href{src/plotPhaseUncertainty.m}{here}.
|
||||
@ -1228,7 +1219,5 @@ This Matlab function is accessible \href{src/plotPhaseUncertainty.m}{here}.
|
||||
end
|
||||
\end{minted}
|
||||
|
||||
\bibliography{ref}
|
||||
|
||||
\printbibliography
|
||||
\end{document}
|
||||
|
Loading…
Reference in New Issue
Block a user