diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..a06e566
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,3 @@
+*.pdf binary
+*.svg binary
+*.mat binary
diff --git a/.gitignore b/.gitignore
index 6b7e1a4..d7a02f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,3 @@
-mat/
-figures/
ltximg/
slprj/
matlab/slprj/
diff --git a/preamble.tex b/preamble.tex
index d18dbd9..adafd1c 100644
--- a/preamble.tex
+++ b/preamble.tex
@@ -1,137 +1,16 @@
-\usepackage{float}
+\usepackage[ %
+ acronym, % Separate acronyms and glossary
+ toc, % appear in ToC
+ automake, % auto-use the makeglossaries command (requires shell-escape)
+ nonumberlist, % don't back reference pages
+ nogroupskip, % don't group by letter
+ nopostdot % don't add a dot at the end of each element
+]{glossaries}
-\usepackage{caption,tabularx,booktabs}
-\usepackage{bm}
+\usepackage[stylemods=longextra]{glossaries-extra}
-\usepackage{xpatch} % Recommanded for biblatex
-\usepackage[ % use biblatex for bibliography
- backend=biber, % use biber backend (bibtex replacement) or bibtex
- style=ieee, % bib style
- hyperref=true, % activate hyperref support
- backref=true, % activate backrefs
- isbn=false, % don't show isbn tags
- url=false, % don't show url tags
- doi=false, % don't show doi tags
- urldate=long, % display type for dates
- maxnames=3, %
- minnames=1, %
- maxbibnames=5, %
- minbibnames=3, %
- maxcitenames=2, %
- mincitenames=1 %
- ]{biblatex}
+\setabbreviationstyle[acronym]{long-short}
+\setglossarystyle{long-name-desc}
-\setlength\bibitemsep{1.1\itemsep}
-
-% \renewcommand*{\bibfont}{\footnotesize}
-
-\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}
-\preto\Gin@extensions{gif,}
-\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png}
-\makeatother
-
-\usepackage{hyperref}
-\hypersetup{
- colorlinks = true,
- allcolors = my-blue
-}
-
-\usepackage{hypcap}
+\makeindex
+\makeglossaries
diff --git a/preamble_extra.tex b/preamble_extra.tex
new file mode 100644
index 0000000..98cfc04
--- /dev/null
+++ b/preamble_extra.tex
@@ -0,0 +1,134 @@
+\usepackage{float}
+\usepackage{enumitem}
+
+\usepackage{caption,tabularx,booktabs}
+\usepackage{bm}
+
+\usepackage{xpatch} % Recommanded for biblatex
+\usepackage[ % use biblatex for bibliography
+ backend=biber, % use biber backend (bibtex replacement) or bibtex
+ style=ieee, % bib style
+ hyperref=true, % activate hyperref support
+ backref=true, % activate backrefs
+ isbn=false, % don't show isbn tags
+ url=false, % don't show url tags
+ doi=false, % don't show doi tags
+ urldate=long, % display type for dates
+ maxnames=3, %
+ minnames=1, %
+ maxbibnames=5, %
+ minbibnames=3, %
+ maxcitenames=2, %
+ mincitenames=1 %
+ ]{biblatex}
+
+\setlength\bibitemsep{1.1\itemsep}
+
+\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}
+\preto\Gin@extensions{gif,}
+\DeclareGraphicsRule{.gif}{png}{.png}{\noexpand\Gin@base.png}
+\makeatother
+
+\usepackage{hyperref}
+\hypersetup{
+ colorlinks = true,
+ allcolors = my-blue
+}
+
+\usepackage{hypcap}
diff --git a/simscape-nano-hexapod.org b/simscape-nano-hexapod.org
index c130f17..c1fef26 100644
--- a/simscape-nano-hexapod.org
+++ b/simscape-nano-hexapod.org
@@ -15,7 +15,8 @@
#+LaTeX_CLASS: scrreprt
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]
-#+LaTeX_HEADER_EXTRA: \input{preamble.tex}
+#+LATEX_HEADER: \input{preamble.tex}
+#+LATEX_HEADER_EXTRA: \input{preamble_extra.tex}
#+LATEX_HEADER_EXTRA: \bibliography{simscape-nano-hexapod.bib}
#+BIND: org-latex-bib-compiler "biber"
@@ -44,12 +45,6 @@
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
:END:
-#+begin_export html
-
- This report is also available as a pdf.
-
-#+end_export
-
#+latex: \clearpage
* Build :noexport:
@@ -96,41 +91,237 @@
#+END_SRC
* Notes :noexport:
+** Notes
+Prefix is =nhexa=
Based on:
+- [ ] Stewart platform presentation: [[file:~/Cloud/meetings/group-meetings-me/2020-01-27-Stewart-Platform-Simscape/2020-01-27-Stewart-Platform-Simscape.org]]
- [ ] Add some sections from here: [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/index.org]]
For instance:
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/stewart-architecture.org][stewart architecture]]
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/stewart_platform.org::+TITLE: Stewart Platform - Simscape Model]]
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org][kinematic study]]
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/identification.org][stewart platform - dynamics]]
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org][cubic configuration]]
- [ ] Look at the [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org][NASS 2020 report]]
+ Sections 5.1, 5.4
- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/amplified_piezoelectric_stack.org][amplified_piezoelectric_stack]] (Just use 2DoF here)
-- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/nano_hexapod.org][nano_hexapod]] (it seems this report is already after the detailed design phase)
+- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/nano_hexapod.org][nano_hexapod]] (it seems this report is already after the detailed design phase: yes but some parts could be interesting)
- [ ] Should the study of effect of flexible joints be included here?
+- [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-vibration-isolation.org
+
+Questions:
+- [ ] The APA model should maybe not be used here, same for the nice top and bottom plates. Here the detailed design is not yet performed
+
+** TODO [#A] Copy relevant parts of reports
+
+- [ ] Stewart platform presentation: [[file:~/Cloud/meetings/group-meetings-me/2020-01-27-Stewart-Platform-Simscape/2020-01-27-Stewart-Platform-Simscape.org]]
+- [ ] Add some sections from here: [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/index.org]]
+ For instance:
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/stewart-architecture.org][stewart architecture]]
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/stewart_platform.org::+TITLE: Stewart Platform - Simscape Model]]
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org][kinematic study]]
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/identification.org]]
+ Effect of joints stiffnesses
+ - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org][cubic configuration]]
+- [ ] Look at the [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org][NASS 2020 report]]
+ Sections 5.1, 5.4
+- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/amplified_piezoelectric_stack.org][amplified_piezoelectric_stack]] (Just use 2DoF here)
+- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/nano_hexapod.org][nano_hexapod]] (it seems this report is already after the detailed design phase: yes but some parts could be interesting)
+- [ ] Should the study of effect of flexible joints be included here?
+- [X] file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-vibration-isolation.org
+
+** DONE [#A] Make a nice outline
+CLOSED: [2025-02-05 Wed 17:45]
+
+*Introduction*
+- Choice of architecture to do 5DoF control
+- Stewart platform
+- Need to model the active vibration platform
+- Control
+
+*1 - Active Vibration Platforms*:
+Introduction:
+Maybe no sections, just a review discussing several aspect of the platforms.
+1. Review of active vibration platforms (focused on Synchrotron applications)
+2. Serial and Parallel Architecture: advantages and disadvantages of both
+3. Which architecture => Parallel manipulator? Why *Stewart platform*?
+
+*2 - The Stewart Platform*:
+Introduction: some history about Stewart platform and why it is so used
+1. Architecture (plates, struts, joints)
+2. Kinematics and Jacobian
+4. Static Analysis
+5. Dynamic Analysis: very complex => multi-body model
+ For instance, compute the plant for massless struts and perfect joints (will be compared with Simscape model).
+ But say that if we want to model more complex cases, it becomes impractical (cite papers).
+
+*3 - Multi-Body model of the Stewart platform*:
+Introduction: Complex dynamics => analytical formulas can be complex => Choose to study the dynamics using a multi-body model
+1. Model definition: (Matlab Toolbox), frames, inertias of parts, stiffnesses, struts, etc...
+2. Joints: perfect 2dof/3dof (+ mass-less)
+3. Actuators: APA + Encoder (mass-less)
+4. Nano-Hexapod: definition of each part + Plant with defined inputs/outputs (force sensor, relative displacement sensor, etc...)
+ Compare with analytical formulas (see number of states)
+
+*4 - Control of the Stewart Platform*:
+Introduction: MIMO control => much more complex than SISO control because of interaction. Possible to ignore interaction when good decoupling (important to have tools to study interaction)
+1. Centralized and Decentralized Control
+2. Decoupling Control / Choice of control space file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
+ Estimate coupling: RGA
+ - Jacobian matrices, CoK, CoM, control in the frame of the struts, ...
+ - Discussion of cubic architecture (quick, as it is going to be in detailed in chapter 2)
+ - SVD, Modal, ...
+3. Active Damping: decentralized IFF
+ Guaranteed stability?
+ For decentralized control: "MIMO root locus"
+ How to optimize the added damping to all modes?
+4. HAC-LAC
+ Stability of closed-loop: Nyquist (main advantage: possible to do with experimental FRF)
+
+*Conclusion*:
+- Configurable Stewart platform model
+- Will be included in the multi-body model of the micro-station => nass multi body model
+
+** DONE [#A] Location of this report in the complete thesis
+CLOSED: [2025-02-05 Wed 16:04]
+
+*Before the report* (assumptions):
+- Uniaxial model: no stiff actuator, HAC-LAC strategy
+- Rotating model:
+ Soft actuators are problematic due to gyroscopic effects
+ Use moderately stiff (1um/N).
+ IFF can be applied with APA architecture
+- Model of Micro-station is ready
+
+*In this report*:
+- Goal: build a flexible (i.e. configurable) multi-body model of a Stewart platform that will be used in the next section to perform dynamical analysis and simulate experiments with the complete NASS
+- Here, I propose to work with "perfect" stewart platforms:
+ - almost mass-less struts
+ - joints with zero stiffness in free DoFs (i.e. 2-DoF and 3-DoF joints)
+- Presentation of Stewart platforms (Literature review about stewart platforms will be done in chapter 2)
+- Presentation of the Simscape model
+
+*After the report* (NASS-Simscape):
+- nano-hexapod on top of micro-station
+- control is performed
+- simulations => validation of the concept
+
+** TODO [#C] First time in the report that we speak about MIMO control ? Or maybe next section!
+
+Maybe should introduce:
+- "MIMO" Root locus
+- "MIMO" Nyquist plot / characteristic loci
+
+Or should this be in annexes?
+
+Maybe say that in this phd-thesis, the focus is not on the control.
+I tried multiple architectures (complementary filters, etc.), but the focus is not on that.
+
+** QUES [#C] Cubic architecture should be the topic here or in the detailed design?
+
+I suppose that it should be in the detailed design phase.
+(Review about Stewart platform design should be made in Chapter two.)
+
+Here, just use simple control architecture for general validation (and not optimization).
+
+** QUES [#C] Should I make a review of control strategies?
+
+Yes it seems to good location for review related to control.
+
+Jacobian matrix.
+Control is the frame of the struts, in the cartesian frame (CoM, CoK), modal control, etc...
+
+[[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org][file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org]]
+
+** TODO [#C] Compare simscape =linearize= and analytical formula
+
+- [X] OK for $\omega=0$ (using just the Stiffness matrix)
+- [ ] Should add the mass matrix and compare for all frequencies
+
+The analytical dynamic model is taken from cite:taghirad13_paral
+
+** TODO [#C] Output the cubic configuration with clear display of the cube and center of the cube
+
+[[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/cubic-configuration.org][cubic configuration]]
+
+** TODO [#C] Make sure the Simulink file for the Stewart platform is working well
+
+It should be the exact model reference that will be included in the NASS model.
+
+** TODO [#C] Maybe make an appendix to present the developed toolbox?
* Introduction :ignore:
-Goal of this report is:
-- show what is an hexapod, how we can define its geometry, stiffness, etc...
-- Some kinematics: stiffness matrix, mass matrix, etc...
-- talk about cubic architecture?
+Introduction:
+- Choice of architecture to do 5DoF control (Section ref:sec:nhexa_platform_review)
+- Stewart platform (Section ref:sec:nhexa_stewart_platform)
+ Show what is an hexapod, how we can define its geometry, stiffness, etc...
+ Some kinematics: stiffness matrix, mass matrix, etc...
+- Need to model the active vibration platform: multi-body model (Section ref:sec:nhexa_model)
+ Explain what we want to capture with this model
+ Key elements (plates, joints, struts): for now simplistic model (rigid body elements, perfect joints, ...), but in next section, FEM will be used
+- Control (Section ref:sec:nhexa_control)
-#+name: tab:simscape_nhexapod_section_matlab_code
-#+caption: Report sections and corresponding Matlab files
-#+attr_latex: :environment tabularx :width 0.6\linewidth :align lX
-#+attr_latex: :center t :booktabs t
-| *Sections* | *Matlab File* |
-|------------------+--------------------------|
-| Section ref:sec: | =simscape_nhexapod_1_.m= |
-
-* Nano-Hexapod Kinematics
-:PROPERTIES:
-:HEADER-ARGS:matlab+: :tangle matlab/.m
-:END:
-<>
+* Active Vibration Platforms
+<>
** Introduction :ignore:
+*Goals*:
+- Explain why Stewart platform architecture is chosen
+- Explain what is a Stewart platform (quickly as it will be shown in details in the next section)
+- Quick review of active vibration platforms (5 or 6DoF)
+
+Active vibration platform with 5DoF or 6DoF?
+Synchrotron applications?
+
+
+- Literature review? (*maybe more suited for chapter 2*)
+ - file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org
+ - Talk about flexible joint? Maybe not so much as it should be topic of second chapter.
+ Just say that we must of flexible joints that can be defined as 3 to 6DoF joints, and it will be optimize in chapter 2.
+- [[cite:&taghirad13_paral]]
+- For some systems, just XYZ control (stack stages), example: holler
+- For other systems, Stewart platform (ID16a), piezo based
+- Examples of Stewart platforms for general vibration control, some with Piezo, other with Voice coil. IFF, ...
+ Show different geometry configuration
+- DCM: tripod?
+
+** Active vibration control of sample stages
+
+[[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/nass-introduction.org::*Review of stages with online metrology for Synchrotrons][Review of stages with online metrology for Synchrotrons]]
+
+- [ ] Talk about external metrology?
+- [ ] Talk about control architecture?
+- [ ] Comparison with the micro-station / NASS
+
+** Serial and Parallel Manipulators
+
+*Goal*:
+- Explain why a parallel manipulator is here preferred
+- Compact, 6DoF, higher control bandwidth, linear, simpler
+
+- Show some example of serial and parallel manipulators
+
+- A review of Stewart platform will be given in Chapter related to the detailed design of the Nano-Hexapod
+
+* The Stewart platform
+:PROPERTIES:
+:HEADER-ARGS:matlab+: :tangle matlab/nhexa_1_stewart_platform.m
+:END:
+<>
+** Introduction :ignore:
+
+# Most of this section is based on [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/kinematic-study.org][kinematic-study.org]]
+
+- Some history about Stewart platforms
+- What is so special and why it is so used in different fields: give examples
+ Explain advantages compared to serial architecture
+- Little review (very quick: two extreme sizes, piezo + voice coil)
+ Complete review of Stewart platforms will be made in Chapter 2
+- Presentation of tools used to analyze the properties of the Stewart platform => useful for design and control
+
+
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<>
@@ -152,8 +343,254 @@ Goal of this report is:
<>
#+end_src
+** Mechanical Architecture
+<>
+
+file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/stewart-architecture.org
+
+Presentation of the typical architecture
+- Explain the different frames, etc...
+- explain key elements:
+ - two plates
+ - joints
+ - actuators
+
+Make well defined notations.
+- {F}, {M}
+- si, li, ai, bi, etc.
+
+- [ ] Make figure with defined frames, joints, etc...
+ Maybe can use this figure as an example:
+ [[file:/home/thomas/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A0-nass-introduction/figs/introduction_stewart_du14.svg]]
+
+** Kinematic Analysis
+<>
+*** Inverse Kinematics
+
+*** Forward Kinematics
+
+*** Jacobian Matrix
+
+- Velocity Loop Closure
+- Static Forces
+
+*** Singularities
+
+- Briefly mention singularities, and say that for small stroke, it is not an issue, the Jacobian matrix may be considered constant
+
+** Static Analysis
+<>
+
+How stiffness varies with orientation of struts.
+Same with stroke?
+Or maybe in the detailed chapter?
+
+** Dynamic Analysis
+<>
+
+Very complex => multi-body model
+For instance, compute the plant for massless struts and perfect joints (will be compared with Simscape model).
+But say that if we want to model more complex cases, it becomes impractical (cite papers).
+
+** Conclusion
+:PROPERTIES:
+:UNNUMBERED: t
+:END:
+
+All depends on the geometry.
+Reasonable choice of geometry is made in chapter 1.
+Optimization of the geometry will be made in chapter 2.
+
+* Multi-Body Model
+:PROPERTIES:
+:HEADER-ARGS:matlab+: :tangle matlab/nhexa_2_model.m
+:END:
+<>
+** Introduction :ignore:
+
+*Goal*:
+- Study the dynamics of Stewart platform
+- Instead of working with complex analytical models: a multi-body model is used.
+ Complex because has to model the inertia of the struts.
+ Cite papers that tries to model the stewart platform analytically
+ Advantage: it will be easily included in the model of the NASS
+
+- Mention the Toolbox (maybe make a DOI for that)
+
+- [ ] Have a table somewhere that summarizes the main characteristics of the nano-hexapod model
+ - location of joints
+ - size / mass of platforms, etc...
+
+** Matlab Init :noexport:ignore:
+#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
+<>
+#+end_src
+
+#+begin_src matlab :exports none :results silent :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :tangle no :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :eval no :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :noweb yes
+<>
+#+end_src
+
+** Model Definition
+<>
+
+- [ ] Make a schematic of the definition process (for instance knowing the ai, bi points + {A} and {B} allows to compute Jacobian, etc...)
+
+- What is important for the model:
+ - Inertia of plates and struts
+ - Positions of joints / Orientation of struts
+ - Definition of frames (for Jacobian, stiffness analysis, etc...)
+
+Then, several things can be computed:
+- Kinematics, stiffness, platform mobility, dynamics, etc...
+
+
+- Joints: can be 2dof to 6dof
+- Actuators: can be modelled as wanted
+
+** Nano Hexapod
+<>
+
+Start simple:
+- Perfect joints, massless actuators
+
+Joints: perfect 2dof/3dof (+ mass-less)
+Actuators: APA + Encoder (mass-less)
+- k = 1N/um
+- Force sensor
+
+Definition of each part + Plant with defined inputs/outputs (force sensor, relative displacement sensor, etc...)
+
+** Model Dynamics
+<>
+
+- If all is perfect (mass-less struts, perfect joints, etc...), maybe compare analytical model with simscape model?
+- Say something about the model order
+ Model order is 12, and that we can compute modes from matrices M and K, compare with the Simscape model
+- Compare with analytical formulas (see number of states)
+
+** Conclusion
+:PROPERTIES:
+:UNNUMBERED: t
+:END:
+
+- Validation of multi-body model in a simple case
+- Possible to increase the model complexity when required
+ - If considered 6dof joint stiffness, model order increases
+ - Can have an effect on IFF performances: [[cite:&preumont07_six_axis_singl_stage_activ]]
+ - Conclusion: during the conceptual design, we consider a perfect, but will be taken into account later
+ - Optimization of the Flexible joint will be performed in Chapter 2.2
+- MIMO system: how to control? => next section
+
+* Control of Stewart Platforms
+:PROPERTIES:
+:HEADER-ARGS:matlab+: :tangle matlab/nhexa_3_control.m
+:END:
+<>
+** Introduction :ignore:
+
+MIMO control: much more complex than SISO control because of interaction.
+Possible to ignore interaction when good decoupling is achieved.
+Important to have tools to study interaction
+Different ways to try to decouple a MIMO plant.
+
+Reference book: [[cite:&skogestad07_multiv_feedb_contr]]
+
+** Matlab Init :noexport:ignore:
+#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
+<>
+#+end_src
+
+#+begin_src matlab :exports none :results silent :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :tangle no :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :eval no :noweb yes
+<>
+#+end_src
+
+#+begin_src matlab :noweb yes
+<>
+#+end_src
+
+** Centralized and Decentralized Control
+<>
+
+- Explain what is centralized and decentralized:
+ - linked to the sensor position relative to the actuators
+ - linked to the fact that sensors and actuators pairs are "independent" or each other (related to the control architecture, not because there is no coupling)
+- When can decentralized control be used and when centralized control is necessary?
+ Study of interaction: RGA
+
+** Choice of the control space
+<>
+
+- [ ] file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org
+
+- Jacobian matrices, CoK, CoM, control in the frame of the struts, SVD, Modal, ...
+- Combined CoM and CoK => Discussion of cubic architecture ? (quick, as it is going to be in detailed in chapter 2)
+- Explain also the link with the setpoint: it is interesting to have the controller in the frame of the performance variables
+ Also speak about disturbances? (and how disturbances can be mixed to different outputs due to control and interaction)
+- Table that summarizes the trade-off for each strategy
+- Say that in this study, we will do the control in the frame of the struts for simplicity (even though control in the cartesian frame was also tested)
+
+** Active Damping with Decentralized IFF
+<>
+
+Guaranteed stability: [[cite:&preumont08_trans_zeros_struc_contr_with]]
+- [ ] I think there is another paper about that
+
+For decentralized control: "MIMO root locus" can be used to estimate the damping / optimal gain
+Poles and converging towards /transmission zeros/
+
+How to optimize the added damping to all modes?
+- [ ] Add some papers citations
+
+Compute:
+- [ ] Plant dynamics
+- [ ] Root Locus
+
+** MIMO High-Authority Control - Low-Authority Control
+<>
+
+Compute:
+- [ ] compare open-loop and damped plant (outputs are the encoders)
+- [ ] Implement decentralized control?
+- [ ] Check stability:
+ - Characteristic Loci: Eigenvalues of $G(j\omega)$ plotted in the complex plane
+ - Generalized Nyquist Criterion: If $G(s)$ has $p_0$ unstable poles, then the closed-loop system with return ratio $kG(s)$ is stable if and only if the characteristic loci of $kG(s)$, taken together, encircle the point $-1$, $p_0$ times anti-clockwise, assuming there are no hidden modes
+- [ ] Show some performance metric? For instance compliance?
+
+** Conclusion
+:PROPERTIES:
+:UNNUMBERED: t
+:END:
+
+
* Conclusion
-<>
+:PROPERTIES:
+:UNNUMBERED: t
+:END:
+<>
+
+- Configurable Stewart platform model
+- Will be included in the multi-body model of the micro-station => nass multi body model
+- Control: complex problem, try to use simplest architecture
* Bibliography :ignore:
#+latex: \printbibliography[heading=bibintoc,title={Bibliography}]