Update based on Maxim's remarks

This commit is contained in:
Thomas Dehaeze 2020-06-23 15:49:09 +02:00
parent 7d99b58bba
commit 4c033102b2
11 changed files with 2240 additions and 746 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

BIN
figs/ecs_apa_01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

976
ieeetr.bst Normal file
View File

@ -0,0 +1,976 @@
% Copyright (C) 1985, 1988, 2010 Howard Trickey and Oren Patashnik.
% Unlimited copying and redistribution of this file are permitted as long as
% it is unmodified. Modifications (and redistribution of modified versions)
% are also permitted, but only if the resulting file is renamed.
%
% IEEE Transactions bibliography style (8-Dec-10 version)
% numeric labels, order-of-reference, IEEE abbreviations,
% quotes around article titles, commas separate all fields
% except after book titles and before "notes". Otherwise,
% much like the "plain" family, from which this is adapted.
%
% History
% 9/30/85 (HWT) Original version, by Howard Trickey.
% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
% 12/ 8/10 (OP&HWT) Clarify license.
ENTRY
{ address
author
booktitle
chapter
edition
editor
howpublished
institution
journal
key
month
note
number
organization
pages
publisher
school
series
title
type
volume
year
}
{}
{ label }
INTEGERS { output.state before.all mid.sentence after.quote after.sentence
after.quoted.block after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.quote :=
#3 'after.sentence :=
#4 'after.quoted.block :=
#5 'after.block :=
}
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.quote =
{ " " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ output.state after.quoted.block =
{ write$
newline$
"\newblock " write$
}
{ add.period$ " " * write$ }
if$
}
if$
}
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem{" write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}
FUNCTION {blank.sep}
{ after.quote 'output.state :=
}
FUNCTION {fin.entry}
{ output.state after.quoted.block =
'skip$
'add.period$
if$
write$
newline$
}
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ output.state after.quote =
{ after.quoted.block 'output.state := }
{ after.block 'output.state := }
if$
}
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "{\em " swap$ * "}" * }
if$
}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " {\em et~al.}" * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names }
if$
}
FUNCTION {format.editors}
{ editor empty$
{ "" }
{ editor format.names
editor num.names$ #1 >
{ ", eds." * }
{ ", ed." * }
if$
}
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
{ "``" title "t" change.case$ * ",''" * }
if$
}
FUNCTION {format.title.p}
{ title empty$
{ "" }
{ "``" title "t" change.case$ * ".''" * }
if$
}
FUNCTION {n.dashify}
{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}
FUNCTION {format.date}
{ year empty$
{ month empty$
{ "" }
{ "there's a month but no year in " cite$ * warning$
month
}
if$
}
{ month empty$
'year
{ month " " * year * }
if$
}
if$
}
FUNCTION {format.btitle}
{ title emphasize
}
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
{ "~" }
{ " " }
if$
swap$ * *
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ "vol.~" volume *
series empty$
'skip$
{ " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ output.state mid.sentence =
{ "no.~" }
{ "No.~" }
if$
number *
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}
FUNCTION {format.edition}
{ edition empty$
{ "" }
{ edition "l" change.case$ "~ed." * }
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
{ "pp.~" pages n.dashify * }
{ "p.~" pages * }
if$
}
if$
}
FUNCTION {format.volume}
{ volume empty$
{ "" }
{ "vol.~" volume * }
if$
}
FUNCTION {format.number}
{ number empty$
{ "" }
{ "no.~" number * }
if$
}
FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ "ch.~" chapter * }
{ type "l" change.case$ chapter tie.or.space.connect }
if$
pages empty$
'skip$
{ ", " * format.pages * }
if$
}
if$
}
FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ "in " booktitle emphasize *
editor empty$
'skip$
{ " (" * format.editors * ")" * }
if$
}
if$
}
FUNCTION {format.thesis.type}
{ type empty$
'skip$
{ pop$
output.state after.block =
{ type "t" change.case$ }
{ type "l" change.case$ }
if$
}
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.tr.number}
{ type empty$
{ "Tech. Rep." }
'type
if$
number empty$
{ "l" change.case$ }
{ number tie.or.space.connect }
if$
}
FUNCTION {format.addr.pub}
{ publisher empty$
{ "" }
{ address empty$
{ "" }
{ address ": " * }
if$
publisher *
}
if$
}
FUNCTION {format.paddress}
{ address empty$
{ "" }
{ "(" address * ")" * }
if$
}
FUNCTION {format.article.crossref}
{ key empty$
{ journal empty$
{ "need key or journal for " cite$ * " to crossref " * crossref *
warning$
""
}
{ "in {\em " journal * "\/}" * }
if$
}
{ "in " key * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.crossref.editor}
{ editor #1 "{vv~}{ll}" format.name$
editor num.names$ duplicate$
#2 >
{ pop$ " {\em et~al.}" * }
{ #2 <
'skip$
{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ " {\em et~al.}" * }
{ " and " * editor #2 "{vv~}{ll}" format.name$ * }
if$
}
if$
}
if$
}
FUNCTION {format.book.crossref}
{ volume empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
"In "
}
{ "Vol.~" volume *
" of " *
}
if$
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
"" *
}
{ "{\em " * series * "\/}" * }
if$
}
{ key * }
if$
}
{ format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
""
}
{ "in {\em " booktitle * "\/}" * }
if$
}
{ "in " key * }
if$
}
{ "in " format.crossref.editor * }
if$
" \cite{" * crossref * "}" *
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
blank.sep
crossref missing$
{ journal emphasize "journal" output.check
format.volume output
month empty$
{ format.number output }
'skip$
if$
format.pages output
format.date "year" output.check
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
new.block
format.number.series output
format.addr.pub "publisher" output.check
}
{ new.block
format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
title empty$
{ "empty title in " cite$ * warning$
howpublished new.sentence.checka
}
{ howpublished empty$ not
address empty$ month empty$ year empty$ and and
or
{ format.title.p output.nonnull }
{ format.title output.nonnull }
if$
blank.sep
}
if$
howpublished output
address output
format.date output
new.block
note output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check }
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.chapter.pages "chapter and pages" output.check
new.block
format.number.series output
format.addr.pub "publisher" output.check
}
{ format.chapter.pages "chapter and pages" output.check
new.block
format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
blank.sep
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.chapter.pages output
format.addr.pub "publisher" output.check
format.edition output
format.date "year" output.check
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
new.block
note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
blank.sep
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.paddress output
format.pages output
organization output
publisher output
format.date "year" output.check
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
new.block
note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
author empty$
{ organization empty$
'skip$
{ organization output.nonnull
address output
}
if$
}
{ format.authors output.nonnull }
if$
format.btitle "title" output.check
author empty$
{ organization empty$
{ address new.block.checka
address output
}
'skip$
if$
}
{ organization address new.block.checkb
organization output
address output
}
if$
format.edition output
format.date output
new.block
note output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
blank.sep
"Master's thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
title empty$
{ howpublished new.sentence.checka }
{ howpublished empty$ not
month empty$ year empty$ and
or
{ format.title.p output.nonnull }
{ format.title output.nonnull }
if$
blank.sep
}
if$
howpublished output
format.date output
new.block
note output
fin.entry
empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
format.btitle "title" output.check
new.block
"PhD thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
editor empty$
{ organization output }
{ format.editors output.nonnull }
if$
format.btitle "title" output.check
format.bvolume output
format.number.series output
format.paddress output
editor empty$
'skip$
{ organization output }
if$
publisher output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
format.title "title" output.check
blank.sep
format.tr.number output.nonnull
institution "institution" output.check
address output
format.date "year" output.check
new.block
note output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
format.title.p "title" output.check
blank.sep
note "note" output.check
format.date output
fin.entry
}
FUNCTION {default.type} { misc }
MACRO {jan} {"Jan."}
MACRO {feb} {"Feb."}
MACRO {mar} {"Mar."}
MACRO {apr} {"Apr."}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"Aug."}
MACRO {sep} {"Sept."}
MACRO {oct} {"Oct."}
MACRO {nov} {"Nov."}
MACRO {dec} {"Dec."}
MACRO {acmcs} {"ACM Computing Surveys"}
MACRO {acta} {"Acta Informatica"}
MACRO {cacm} {"Communications ACM"}
MACRO {ibmjrd} {"IBM J. Research and Development"}
MACRO {ibmsj} {"IBM Systems~J."}
MACRO {ieeese} {"IEEE Trans. Software Engineering"}
MACRO {ieeetc} {"IEEE Trans. Computers"}
MACRO {ieeetcad}
{"IEEE Trans. Computer-Aided Design"}
MACRO {ipl} {"Information Processing Letters"}
MACRO {jacm} {"J.~ACM"}
MACRO {jcss} {"J.~Computer and System Sciences"}
MACRO {scp} {"Science of Computer Programming"}
MACRO {sicomp} {"SIAM J. Computing"}
MACRO {tocs} {"ACM Trans. Computer Systems"}
MACRO {tods} {"ACM Trans. Database Systems"}
MACRO {tog} {"ACM Trans. Graphics"}
MACRO {toms} {"ACM Trans. Mathematical Software"}
MACRO {toois} {"ACM Trans. Office Information Systems"}
MACRO {toplas} {"ACM Trans. Programming Languages and Systems"}
MACRO {tcs} {"Theoretical Computer Science"}
READ
STRINGS { longest.label }
INTEGERS { number.label longest.label.width }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#1 'number.label :=
#0 'longest.label.width :=
}
FUNCTION {longest.label.pass}
{ number.label int.to.str$ 'label :=
number.label #1 + 'number.label :=
label width$ longest.label.width >
{ label 'longest.label :=
label width$ 'longest.label.width :=
}
'skip$
if$
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" longest.label * "}" * write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}

1439
index.html

File diff suppressed because it is too large Load Diff

169
index.org
View File

@ -30,7 +30,9 @@
#+LATEX_HEADER_EXTRA: \DeclareGraphicsRule{.png}{pdf}{.pdf}{\noexpand\Gin@base.pdf}
#+LATEX_HEADER_EXTRA: \makeatother
#+LATEX_HEADER: \addbibresource{ref.bib}
#+LATEX_HEADER_EXTRA: \bibliographystyle{ieeetr}
#+LATEX_HEADER_EXTRA: \addbibresource{ref.bib}
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
@ -90,6 +92,7 @@ This should highlight the challenges of the required combined performance and ro
In Section [[sec:noise_budget]] is introduced the *dynamic error budgeting* which is a powerful tool that allows to derive the total error in a dynamic system from multiple disturbance sources.
This tool will be widely used throughout this study to both predict the performances and identify the effects that do limit the performances.
It is very well described in cite:monkhorst04_dynam_error_budget.
** Feedback System
<<sec:feedback>>
@ -115,6 +118,8 @@ The use of feedback control as several advantages and pitfalls that are listed b
Feedback control can destabilize a stable plant.
Thus the /robustness/ properties of the feedback system must be carefully guaranteed
Very good introduction to feedback control are given in cite:lurie12_class and cite:skogestad07_multiv_feedb_contr.
*** Simplified Feedback Control Diagram for the NASS
Let's consider the block diagram shown in Figure [[fig:classical_feedback_small]] where the signals are:
- $y$: the relative position of the sample with respect to the granite (the quantity to be controlled)
@ -173,7 +178,7 @@ It is common to define the following two transfer functions:
S &= \frac{1}{1 + GK} \\
T &= \frac{GK}{1 + GK}
\end{align}
where $S$ is called the sensibility transfer function and $T$ the transmissibility transfer function.
where $S$ is called the sensitivity transfer function and $T$ the transmissibility (or complementary sensitivity) transfer function.
And the position error can be rewritten as:
\begin{equation}
@ -248,7 +253,7 @@ It is shown that $|S|$ and $|T|$ exhibit different behaviors depending on the fr
#+name: fig:h-infinity-2-blocs-constrains
#+attr_latex: :width 0.8\linewidth
#+caption: Typical shapes and constrain of the Sensibility and Transmibility closed-loop transfer functions
#+caption: Typical shapes and constrain of the Sensitivity and Transmibility closed-loop transfer functions
#+RESULTS:
[[file:figs/h-infinity-2-blocs-constrains.png]]
@ -318,16 +323,16 @@ One can also integrate the infinitesimal power $S_{xx}(\omega)d\omega$ over a fi
The *Cumulative Power Spectrum* is the cumulative integral of the Power Spectral Density starting from $0\ \text{Hz}$ with increasing frequency:
\begin{equation}
CPS_x(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2
CPS_{+_x}(f) = \int_0^f S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2
\end{equation}
The Cumulative Power Spectrum taken at frequency $f$ thus represent the power in the signal in the frequency band $0$ to $f$.
The Cumulative Power Spectrum $CPS_{+}$ taken at frequency $f$ thus represent the power in the signal in the frequency band $0$ to $f$.
An alternative definition of the Cumulative Power Spectrum can be used where the PSD is integrated from $f$ to $\infty$:
\begin{equation}
CPS_x(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2
CPS_{-_x}(f) = \int_f^\infty S_{xx}(\nu) d\nu \quad [\text{unit of } x]^2
\end{equation}
And thus $CPS_x(f)$ represents the power in the signal $x$ for frequencies above $f$.
And thus $CPS_{-_x}(f)$ represents the power in the signal $x$ for frequencies above $f$.
The Cumulative Power Spectrum is generally shown as a function of frequency, and is used to identify the critical modes in a design, at which the effort should be targeted.
It can also helps to determine at which frequencies the effect of disturbances must be reduced, and thus the approximate required control bandwidth.
@ -336,7 +341,7 @@ A typical Cumulative Power Spectrum is shown in figure [[fig:preumont18_cas_plot
#+name: fig:preumont18_cas_plot
#+attr_latex: :width 0.6\linewidth
#+caption: Cumulative Power Spectrum in open-loop and closed-loop for increasing gains (taken from cite:preumont18_vibrat_contr_activ_struc_fourt_edition)
#+caption: Cumulative Power Spectrum $CPS_{-}$ in open-loop and closed-loop for increasing gains (taken from cite:preumont18_vibrat_contr_activ_struc_fourt_edition)
[[file:figs/preumont18_cas_plot.jpg]]
*** Modification of a signal's PSD when going through a dynamical system
@ -548,7 +553,7 @@ The measurements are presented in more detail in [[https://tdehaeze.github.io/me
** Ground Motion
<<sec:ground_motion>>
Ground motion can easily be estimated using an inertial sensor with sufficient sensitivity.
Ground motion can easily be estimated using an inertial sensor with sufficient resolution.
To verify that the inertial sensors are sensitive enough, a Huddle test has been performed (Figure [[fig:geophones]]).
The details of the Huddle Test can be found [[https://tdehaeze.github.io/meas-analysis/huddle-test-geophones/index.html][here]].
@ -559,7 +564,7 @@ The details of the Huddle Test can be found [[https://tdehaeze.github.io/meas-an
[[file:figs/geophones.jpg]]
The measured Power Spectral Density of the ground motion at the ID31 floor is compared with other measurements performed at ID09 and at CERN.
The low frequency differences between the ground motion at ID31 and ID09 is just due to the fact that for the later measurement, the low frequency sensitivity of the inertial sensor was not taken into account.
The low frequency differences between the ground motion at ID31 and ID09 is just due to the fact that for the later measurement, the low frequency dynamics of the inertial sensor was not taken into account.
#+name: fig:ground_motion_compare
#+attr_latex: :width 0.7\linewidth
@ -681,7 +686,7 @@ It is shown that the motion induced by translation stage scans and spindle rotat
#+name: fig:dist_effect_relative_motion_cas
#+attr_latex: :width 0.7\linewidth
#+caption: Cumulative Amplitude Spectrum of the motion error due to disturbances
#+caption: Cumulative Amplitude Spectrum $CAS_{-}$ of the motion error due to disturbances
[[file:figs/dist_effect_relative_motion_cas.png]]
From Figure [[fig:dist_effect_relative_motion_cas]], required bandwidth can be estimated by seeing that $10\ nm [rms]$ motion is induced by the perturbations above 100Hz.
@ -765,7 +770,7 @@ We believe that the model is representing the micro-station dynamics sufficient
More detailed comparison between the model and the measured dynamics is performed [[https://tdehaeze.github.io/nass-simscape/identification.html][here]].
Now that the multi-body model dynamics as been tuned, the following elements are included:
Now that the multi-body model dynamics has been tuned, the following elements are included:
- Actuators to perform the motion of each stage (translation, tilt, spindle, hexapod)
- Sensors to measure the motion of each stage and the relative motion of the sample with respect to the granite (metrology system)
- Disturbances such as ground motion and stage's vibrations
@ -912,6 +917,8 @@ The main disadvantage of Stewart platforms is the small workspace when compare t
A Matlab toolbox to study and design Stewart Platforms has been developed and used for the design of the nano-hexapod.
The source code is accessible [[https://github.com/tdehaeze/stewart-simscape][here]] and the documentation [[https://tdehaeze.github.io/stewart-simscape/][here]].
Extensive analysis of parallel manipulator, and in particular the Stewart platform is given in cite:skogestad07_multiv_feedb_contr.
** Optimal Stiffness to reduce the effect of disturbances
<<sec:optimal_stiff_dist>>
@ -934,7 +941,7 @@ The same conclusion is made for vibrations of the translation stage.
#+name: fig:opt_stiff_sensitivity_Frz
#+attr_latex: :width 0.8\linewidth
#+caption: Sensitivity to Spindle vertical motion error to the vertical error position of the sample
#+caption: Sensibility to Spindle vertical motion error to the vertical error position of the sample
[[file:figs/opt_stiff_sensitivity_Frz.png]]
*** Sensibility to ground motion
@ -950,7 +957,7 @@ It will be suggested in Section [[sec:soft_granite]] that using soft mounts for
#+name: fig:opt_stiff_sensitivity_Dw
#+attr_latex: :width 0.8\linewidth
#+caption: Sensitivity to Ground motion to the position error of the sample
#+caption: Sensibility to Ground motion to the position error of the sample
[[file:figs/opt_stiff_sensitivity_Dw.png]]
*** Dynamic Noise Budgeting considering all the disturbances
@ -987,7 +994,7 @@ It can be observe on the Cumulative amplitude spectrum of the vertical error mot
#+name: fig:opt_stiff_cas_dz_tot
#+attr_latex: :width 0.8\linewidth
#+caption: Cumulative Amplitude Spectrum of the Sample vertical position error due to all considered perturbations for multiple nano-hexapod stiffnesses
#+caption: Cumulative Amplitude Spectrum $CAS_{-}$ of the Sample vertical position error due to all considered perturbations for multiple nano-hexapod stiffnesses. The dashed back line corresponds to the wanted $10nm\,rms$ of residual motion.
[[file:figs/opt_stiff_cas_dz_tot.png]]
** Optimal Stiffness to reduce the plant uncertainty
@ -1342,10 +1349,8 @@ Stiffness properties of the Stewart platform can then be estimated from the arch
Equations eqref:eq:jacobian_L, eqref:eq:jacobian_F and eqref:eq:jacobian_K can be used to see how the maneuverability, the force authority and the stiffness of the Stewart platform are changing with a the geometry (position of the joints and orientation of the legs).
The effects of two changes in the manipulator's geometry are summarized in Table [[tab:effect_legs_jacobian]].
These results could have been easily deduced with some basics of mechanics, but they can be easily quantified thanks to the Kinematic and Jacobian analysis.
The nano-hexapod geometry and further be optimized in terms of stiffness and stroke using the presented tools.
The effects of two changes in the manipulator's geometry, namely the position and orientation of the legs, are summarized in Table [[tab:effect_legs_jacobian]].
These results could have been easily deduced based on some mechanical principles, but thanks to the kinematic analysis, they can be quantified.
#+name: tab:effect_legs_jacobian
#+attr_latex: :environment tabularx :width \linewidth :align lXX
@ -1368,12 +1373,14 @@ The nano-hexapod geometry and further be optimized in terms of stiffness and str
| Vertical rotation stroke | $\nearrow$ | $\searrow$ |
| Horizontal rotation stroke | $\searrow$ | $\searrow$ |
Even tough Table [[tab:effect_legs_jacobian]] can be used to optimize the nano-hexapod's geometry, the available space for the nano-hexapod is too small to obtain a significant impact on the manipulator's stiffness and stroke.
*** Cubic Architecture
:PROPERTIES:
:UNNUMBERED: t
:END:
A very popular choice of Stewart platform architecture, especially for vibration isolation, is the *Cubic architecture*.
A very popular choice of Stewart platform architecture in the scientific literature, especially for vibration isolation, is the *Cubic architecture*.
The cubic architecture is quite specific in the sense that the active struts are arranged in a mutually orthogonal configuration connecting the corners of a cube (Figure [[fig:3d-cubic-stewart-aligned]]).
@ -1392,6 +1399,7 @@ The cubic configuration also puts much restriction on the position and orientati
For these reasons, the cubic configuration is not recommended for the nano-hexapod.
#+end_important
cite:preumont07_six_axis_singl_stage_activ and cite:li01_simul_fault_vibrat_isolat_point are good resources about the Cubic architecture for vibration isolation.
Separate study of the cubic architecture is performed [[https://tdehaeze.github.io/stewart-simscape/cubic-configuration.html][here]].
*** Effect of Flexible Joints
@ -1461,6 +1469,65 @@ For instance, the flexible joint used for the ID16 nano-hexapod have the followi
The effects of flexible joints stiffness on the dynamics have been studied and requirements on the flexible joints have been derived.
#+end_important
** Flexible Elements
<<sec:flexible_elements>>
*** Introduction :ignore:
The multi-body model of the micro-station as well as of the nano-hexapod are composed of solid bodies connected with springs and dampers.
This is valid for the micro-station are shown by the measurements in Section [[sec:micro_station_dynamics]] but this may not be the case for the nano-hexapod.
In order to take into account the flexibility of some of the nano-hexapod mechanical parts, some tools have been developed to integrate flexible elements into a Simscape model.
The procedure is as follow:
- import the geometry into Ansys
- mesh the element and select the nodes of interest (interface with other elements, points where forces should be applied or displacement measure)
- select the number of modes to take into account
- apply a Guyan Reduction that computes the reduced mass and stiffness matrices
- import into Matlab the mass matrix, stiffness matrix as well as the coordinates of the interface nodes
- import the matrices into Simscape. The flexible element can then be interfaced with other simscape elements
Mainly two elements will be modeled using this technique: the flexible joints and the amplified piezoelectric actuators.
*** Flexible Piezoelectric actuators
In order to test this modeling technique, some tests have been performed on a flexible piezoelectric stack actuator.
The APA95ML from Cedrat has been sketched into Ansys and the interface nodes chosen as shown in Figure [[fig:amplified_piezo_interface_nodes]].
The top and bottom nodes are used as interface nodes to connect to other mechanical parts of the nano-hexapod.
The ten interface nodes along the piezo stack are used to apply forces into the stack.
#+name: fig:amplified_piezo_interface_nodes
#+attr_latex: :width 0.6\linewidth
#+caption: Geometry of the amplified piezoelectric actuator (APA95ML) as well as the chosen interface nodes
[[file:figs/amplified_piezo_interface_nodes.png]]
The reduced mass and stiffness matrices are exported using Ansys and imported into Matlab.
The actuator is included in a Simscape model, and the dynamics from forces applied by the piezo stack to the vertical displacement of the amplified structure is identified using Simscape and compare with an harmonic response using Ansys (Figure [[fig:dynamics_force_disp_comp_anasys]]).
#+name: fig:dynamics_force_disp_comp_anasys
#+attr_latex: :width 0.9\linewidth
#+caption: Comparison of the obtained dynamics using Simscape with the harmonic response analysis using Ansys
[[file:figs/dynamics_force_disp_comp_anasys.png]]
A payload with a mass of 10kg is then added both in the Simscape model and in Ansys and the dynamic is identified again and compared (Figure [[fig:dynamics_force_disp_comp_anasys]]).
The dynamics obtained with Simscape and Ansys are very close to each other which validate the fact that we can interface the flexible element with other Simscape parts.
*** Test Bench
A test bench is planned to validate the presented modelling technique.
The DCM's fast jack test bench will be slightly modified to integrate the APA95ML actuator (already available).
The idea is to identify the transfer functions from forces applied by the stack actuator to the vertical displacement as what done both using Simscape and Ansys.
This test bench requires very little work and will permit to gain much confident on the modelling technique used as well as on the dynamics of amplified piezoelectric actuators.
*** Design Methodology
During all the mechanical design of the nano-hexapod, it is planned to use the presented modelling technique to ensure that no parasitic modes will be problematic for the control part.
More specifically, it is wanted that both the flexible joints and the amplified piezoelectric actuators do not introduce parasitic modes in the dynamics to be controlled up to 200Hz.
This flexible modeling technique is thus a very important element during the mechanical design of the nano-hexapod.
** Conclusion
#+begin_important
In Section [[sec:optimal_stiff_dist]], it has been concluded that a nano-hexapod stiffness below $10^5-10^6\,[N/m]$ helps reducing the high frequency vibrations induced by all sources of disturbances considered.
@ -1582,7 +1649,7 @@ To see why Integral Force Feedback should not be applied to damp the nano-hexapo
The platform main resonance frequency is $\omega_0$ and the rotation speed is $\omega$.
Root Locus plots for Integral Force Feedback and Direct Velocity Feedback are shown in Table [[fig:root_locus_rotation_active_damping]].
Root Locus plots for Integral Force Feedback and Direct Velocity Feedback are shown in Figure [[fig:root_locus_rotation_active_damping]].
These plots show the evolution of the system's poles in the complex plane as a function of the control gain.
#+name: fig:root_locus_rotation_active_damping
@ -1609,12 +1676,12 @@ A pole with a positive real part corresponds to an unstable system, and thus the
[[file:figs/preumont18_effect_damping.jpg]]
Coming back to the Root Locus in Table [[fig:root_locus_rotation_active_damping]], it can be seen that:
Coming back to the Root Locus in Figure [[fig:root_locus_rotation_active_damping]], it can be seen that:
- For Direct Velocity Feedback:
- The system's poles are staying in the left half plane which means guaranteed stability
- Arbitrary damping can be added to the system's resonances
- For Integral Force Feedback:
- For non null rotation speed, and whatever the control gain is, a pole is located in the right part of the complex plane, showing that the closed-loop system is unstable
- For non-null rotation speed, and whatever the control gain is, a pole is located in the right part of the complex plane, showing that the closed-loop system is unstable
- Limited damping can be added to the system
Similar observations are made using the Simscape model of the NASS, and this shows why Direct Velocity Feedback is the most suitable active damping technique for the NASS.
@ -1870,13 +1937,14 @@ The differences of a control in the leg space and in the task space are summariz
#+attr_latex: :environment tabularx :width \linewidth :align lXX
#+attr_latex: :center t :booktabs t :float t
#+caption: Comparison of a control in the leg space and in the task space
| | Control in the *leg space* | Control in the *task space* |
|---------------------------+-----------------------------------+------------------------------------------------------------------------------------|
| *Plant Meaning* | $\delta\mathcal{L}_i/\tau_i$ | $\delta\mathcal{X}_i/\mathcal{F}_i$ |
| *Obtained Decoupling* | Decoupled at DC | Dynamical decoupling except few terms |
| *Diagonal Elements* | Identical with all the Resonances | Different, resonances are cancel out |
| *Mechanical Architecture* | Architecture Independent | Better with Cubic Architecture |
| *Advantages* | One controller to be designed | Possible to have different controllers in different directions as some may be more |
| | Control in the *leg space* | Control in the *task space* |
|---------------------------+-----------------------------------+-------------------------------------------------|
| *Plant Meaning* | $\delta\mathcal{L}_i/\tau_i$ | $\delta\mathcal{X}_i/\mathcal{F}_i$ |
| *Obtained Decoupling* | Decoupled at DC | Dynamical decoupling except few terms |
| *Diagonal Elements* | Identical with all the Resonances | Different, resonances are cancel out |
| *Mechanical Architecture* | Architecture Independent | Better with Cubic Architecture |
| *Advantages* | One controller to be designed | Possible to have different controllers for each |
| | | direction as the requirements are not the same |
Both control architecture have been applied and the control in the *leg space* appears to be simpler to apply and have good robustness properties.
@ -1967,7 +2035,7 @@ Several observations can be made:
#+name: fig:opt_stiff_hac_dvf_L_cas_disp_error
#+attr_latex: :width 0.8\linewidth
#+caption: Cumulative Amplitude Spectrum of the position error in Open Loop (black) and with the HAC-LAC controller for three payload masses
#+caption: Cumulative Amplitude Spectrum $CAS_{-}$ of the position error in Open Loop (black) and with the HAC-LAC controller for three payload masses
[[file:figs/opt_stiff_hac_dvf_L_cas_disp_error.png]]
*** Time Domain Analysis
@ -2035,7 +2103,7 @@ The disturbance causing this constant force is the centrifugal force induced by
The relative motions of the nano-hexapod's legs is shown in Figure [[fig:opt_stiff_hac_dvf_Dh_offset_dL]] and are in the micro-meter range.
#+name: fig:opt_stiff_hac_dvf_Dh_offset_dL
#+attr_latex: :width 0.8\linewidth
#+attr_latex: :width 0.5\linewidth
#+caption: Relative displacement of the nano-hexapod's legs
[[file:figs/opt_stiff_hac_dvf_Dh_offset_dL.png]]
@ -2075,7 +2143,7 @@ Peak values of the forces are appearing when the translation stage changes the d
The relative motions of the nano-hexapod's legs is shown in Figure [[fig:opt_stiff_hac_dvf_Dy_scans_dL]] and are again in the micro-meter range.
#+name: fig:opt_stiff_hac_dvf_Dy_scans_dL
#+attr_latex: :width 0.8\linewidth
#+attr_latex: :width 0.5\linewidth
#+caption: Relative displacement of the nano-hexapod's legs
[[file:figs/opt_stiff_hac_dvf_Dy_scans_dL.png]]
@ -2220,6 +2288,24 @@ Thus, an actuator stroke of $\pm 50 \mu m$ would be quite safe.
Note that a piezoelectric stack have a maximum strain of $0.1\%$.
A piezo stack with a stroke of $\pm 50\,[\mu m]$ will have a length size of $\approx 100\,[mm]$ making it difficult to integrate in the nano-hexapod.
Some amplified piezoelectric actuators that fulfill the requirements are listed in Table [[tab:piezo_act_models]].
The actuators that seems the most suited will be modeled using a FE software and integrated into the Simscape model as explained in Section [[sec:flexible_elements]].
Simulation will be performed with the chosen actuator to make sure that the obtained performance is acceptable.
#+name: tab:piezo_act_models
#+caption: List of some amplified piezoelectric actuators that could be used for the nano-hexapod
#+attr_latex: :environment tabularx :width \linewidth :align llXXXXXX
#+attr_latex: :center t :booktabs t :float t
| | Specification | [[https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html][APA150M]] | [[https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html][APA400MML]] | [[https://www.cedrat-technologies.com/en/products/actuators/amplified-piezo-actuators.html][APA300ML]] | [[https://www.dynamic-structures.com/product/fpa-0500e-p-1036][FPA-0500E-P-1036]] | [[https://www.dynamic-structures.com/product/fpa-0300e][FPA-0300E-S-0536]] | [[https://www.dynamic-structures.com/product/fpa-0150e-s-0518][FPA-0150E-S-0518]] |
|---------------+---------------------+---------+-----------+----------+------------------+------------------+------------------|
| Stroke | $> 100\, [\mu m]$ | 187 | 368 | 304 | 432 | 240 | 132 |
| Stiffness | $0.1-1\, [N/\mu m]$ | 0.7 | 0.55 | 1.8 | 0.87 | 0.58 | 0.8 |
| Resolution | $< 2\, [nm]$ | 2 | 4 | 3 | | | |
| Blocked Force | $> 100\, [N]$ | 127 | 201 | 546 | 376 | 139 | 106 |
| Height | $< 50\, [mm]$ | 22 | 24 | 30 | 27 | 16 | 15 |
| Price | | | | | 2300$ | 1400$ | 890$ |
*** Sensors
:PROPERTIES:
:UNNUMBERED: t
@ -2252,12 +2338,26 @@ Characteristics of those sensors are shown in Table [[tab:characteristics_relati
| Interferometer | 300 kHz | 0.1 nm rms | 10 cm | -250,100 °C |
| Encoder | DC-1 MHz | 1 nm rms | 7-27 mm | 0,40 °C |
Two sensor technologies seem the most adapted to the nano-hexapod: the eddy current sensor and the capacitive sensor.
They both exhibit few nanometers of resolution over a stroke of $100\,[\mu m]$ and a sufficient bandwidth.
Cedrat proposes to integrate Eddy Current Sensors in their amplified piezoelectric actuator as shown in Figure [[fig:ecs_apa_01]].
An alternative could be to use the capacitive sensors such as the very compact [[https://www.physikinstrumente.com/en/products/sensors-components-accessories/d-015-d-050-d-100-capacitive-sensors-500200/#specification][D-100]] proposed by PI.
#+name: fig:ecs_apa_01
#+attr_latex: :width 0.8\linewidth
#+caption: Eddy Current Sensors integrated into a Cedrat's amplified piezoelectric actuator
[[file:figs/ecs_apa_01.jpg]]
*** Architecture
:PROPERTIES:
:UNNUMBERED: t
:END:
** Sensor Noise introduced by the Metrology
As explained in section [[sec:nano_hexapod_architecture]] the orientation of the legs and position of the joints are very much constrained by the limited height of the nano-hexapod.
* Sensor Noise introduced by the Metrology
<<sec:sensor_noise_metrology>>
During all this study, the measurement of the relative position of the sample with respect to the granite was considered to be perfect, that is to say *noiseless* and with *infinite bandwidth*.
@ -2350,7 +2450,6 @@ This is foreseen to give better performances and robustness.
Realistic simulations of scientific experiments were carried out validating the concept.
* Bibliography :ignore:
bibliographystyle:unsrt
bibliography:ref.bib
#+latex: \printbibliography

BIN
index.pdf

Binary file not shown.

363
index.tex

File diff suppressed because it is too large Load Diff

39
ref.bib
View File

@ -80,3 +80,42 @@
measurement},
year = 2011,
}
@book{skogestad07_multiv_feedb_contr,
author = {Skogestad, Sigurd and Postlethwaite, Ian},
title = {Multivariable Feedback Control: Analysis and Design},
year = {2007},
publisher = {John Wiley},
isbn = {9780470011683},
tags = {favorite},
}
@phdthesis{monkhorst04_dynam_error_budget,
author = {Wouter Monkhorst},
school = {Delft University},
title = {Dynamic Error Budgeting, a design approach},
year = {2004},
}
@book{lurie12_class,
author = {Lurie, B. J},
title = {Classical feedback control : with MATLAB and Simulink},
year = 2012,
publisher = {CRC Press},
address = {Boca Raton, FL},
isbn = 9781439897461,
tags = {favorite},
}
@phdthesis{li01_simul_fault_vibrat_isolat_point,
author = {Li, Xiaochun},
school = {University of Wyoming},
title = {Simultaneous, Fault-tolerant Vibration Isolation and
Pointing Control of Flexure Jointed Hexapods},
year = 2001,
tags = {parallel robot},
}