From 0046a091f6aedcc9ce6c84039b7d16a0c6e2bc14 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Thu, 6 Feb 2025 16:35:41 +0100 Subject: [PATCH] Rework outline --- .gitattributes | 3 + .gitignore | 2 - preamble.tex | 147 ++--------------------- preamble_extra.tex | 134 +++++++++++++++++++++ simscape-nass.org | 288 +++++++++++++++++++++++++++++++++++++++++---- 5 files changed, 414 insertions(+), 160 deletions(-) create mode 100644 .gitattributes create mode 100644 preamble_extra.tex 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-nass.org b/simscape-nass.org index d6db83c..234827d 100644 --- a/simscape-nass.org +++ b/simscape-nass.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-nass.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,191 @@ #+END_SRC * Notes :noexport: +** Notes +Prefix is =nass= The goals of this report are: -- ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/positioning_error.org][positioning_error]]): Explain how the NASS control is made (computation of the wanted position, measurement of the sample position, computation of the errors) -- ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_experiment.org][uncertainty_experiment]]): Effect of experimental conditions on the plant (payload mass, Ry position, Rz position, Rz velocity, etc...) -- Determination of the optimal stiffness for the hexapod actuators: [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_optimal_stiffness.org][uncertainty_optimal_stiffness]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/optimal_stiffness_disturbances.org][optimal_stiffness_disturbances]], [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org][state-of-thesis-2020]] -- Explain why HAC-LAC strategy is nice (maybe already explained earlier) ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control.org][control]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-vibration-isolation.org][hexapod - vibration isolation]]) -- How to apply/optimize IFF on an hexapod? ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control_active_damping.org][control_active_damping]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-active-damping.org][active damping for stewart platforms]]) -- ([[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org][decoupling-strategies]]): Decoupling strategies for HAC? -- Validation of the concept using simulations: - - [ ] Find where this simulation in OL/CL is made +- [X] ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/positioning_error.org][positioning_error]]): Explain how the NASS control is made (computation of the wanted position, measurement of the sample position, computation of the errors) +- [X] ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_experiment.org][uncertainty_experiment]]): Effect of experimental conditions on the plant (payload mass, Ry position, Rz position, Rz velocity, etc...) +- [ ] Determination of the *optimal stiffness* for the hexapod actuators: + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_optimal_stiffness.org][uncertainty_optimal_stiffness]] + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/optimal_stiffness_disturbances.org][optimal_stiffness_disturbances]] + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org][state-of-thesis-2020]] + - [ ] [[file:/home/thomas/Cloud/meetings/group-meetings-me/2020-04-06-NASS-Design/2020-04-06-NASS-Design.org][group-meeting-optimal-stiffness]] + Should this be in this report? *This should be in chapter 2* +- [X] Explain why HAC-LAC strategy is nice (*It was already explained in uniaxial model*) + - [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control.org][different control architectures]] + - [X] [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-vibration-isolation.org][hexapod - vibration isolation]] +- [X] How to apply/optimize IFF on an hexapod? ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control_active_damping.org][control_active_damping]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-active-damping.org][active damping for stewart platforms]]) +- [X] ([[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org][decoupling-strategies]]): Decoupling strategies for HAC? (maybe also in previous report) + *Will be in chapter 2* +- [X] Validation of the concept using simulations: + - [X] Find where this simulation in OL/CL is made (maybe for the conference?) + It was re-made for micro-station validation. Will just have to do the same simulation but with nano-hexapod in closed-loop - Tomography experiment (maybe also Ty scans) - Open VS Closed loop results - *Conclusion*: concept validation nano hexapod architecture with APA decentralized IFF + centralized HAC +- In this section simple control (in the frame of the struts) +- Justify future used control architecture (control in the frame of the struts? Need to check what was done in ID31 tests) +- Table that compares different approaches (specify performances in different DoF, same plans on the diagonal, etc...) +- Literature review about Stewart platform control? +*In chapter 2: Special section about MIMO control, complementary filters, etc...* + +** Outline +*** Control Kinematics + +- Explain how the position error can be expressed in the frame of the nano-hexapod +- ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/positioning_error.org][positioning_error]]): Explain how the NASS control is made (computation of the wanted position, measurement of the sample position, computation of the errors) +- Control architecture, block diagram + +*** LAC + +- How to apply/optimize IFF on an hexapod? ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control_active_damping.org][control_active_damping]], [[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-active-damping.org][active damping for stewart platforms]]) +- Robustness to payload mass +- Root Locus +- Damping optimization + +*** HAC + +- ([[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_experiment.org][uncertainty_experiment]]): Effect of experimental conditions on the plant (payload mass, Ry position, Rz position, Rz velocity, etc...) +- Determination of the *optimal stiffness* for the hexapod actuators: + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_optimal_stiffness.org][uncertainty_optimal_stiffness]] + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/optimal_stiffness_disturbances.org][optimal_stiffness_disturbances]] + - [ ] [[file:~/Cloud/work-projects/ID31-NASS/documents/state-of-thesis-2020/index.org][state-of-thesis-2020]] + - [ ] [[file:/home/thomas/Cloud/meetings/group-meetings-me/2020-04-06-NASS-Design/2020-04-06-NASS-Design.org][group-meeting-optimal-stiffness]] +- Effect of micro-station compliance +- Effect of IFF +- Effect of payload mass +- Decoupled plant +- Controller design + +*** Simulations + +- Take into account disturbances, metrology sensor noise. Maybe say here that we don't take in account other noise sources as they will be optimized latter (detail design phase) +- Tomography + lateral scans (same as what was done in open loop [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A4-simscape-micro-station/simscape-micro-station.org::*Simulation of Scientific Experiments][here]]) +- Validation of concept + +** DONE Old Outline +CLOSED: [2024-11-07 Thu 16:19] +*** Introduction :ignore: + +Discussion of: +- Transformation matrices / control architecture (computation of the position error in the frame of the nano-hexapod) +- Control of parallel architectures +- Control in the frame of struts or cartesian? +- Effect of rotation on IFF? => APA +- HAC-LAC +- New noise budgeting? + +*** Control Kinematics + +- Explain how the position error can be expressed in the frame of the nano-hexapod +- block diagram +- Explain how to go from external metrology to the frame of the nano-hexapod + +*** High Authority Control - Low Authority Control (HAC-LAC) + +- general idea +- case for parallel manipulator: decentralized LAC + centralized HAC + +*** Decoupling Strategies for parallel manipulators +[[file:~/Cloud/research/matlab/decoupling-strategies/svd-control.org::+TITLE: Diagonal control using the SVD and the Jacobian Matrix][study]] + +- Jacobian matrices, CoK, CoM, ... +- Discussion of cubic architecture +- SVD, Modal, ... + +*** Decentralized Integral Force Feedback (LAC) + +- Root Locus +- Damping optimization + +*** Decoupled Dynamics + +- Centralized HAC +- Control in the frame of the struts +- Effect of IFF + +*** Centralized Position Controller (HAC) + +- Decoupled plant +- Controller design + +*** Time domain simulations + +Goal: validation of the concept +- Take into account disturbances, sensor noise, etc... +- Tomography + lateral scans (same as what was done in open loop [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A4-simscape-micro-station/simscape-micro-station.org::*Simulation of Scientific Experiments][here]]) + +** TODO [#A] Merge the micro-station model with the nano-hexapod model +** TODO [#B] Rework the Simulink file + +- [ ] Change the variable names to make things consistent +- [ ] Rework the org files to match the new variable names + +** DONE [#A] Where to discuss the necessity of estimated Rz? +CLOSED: [2025-02-06 Thu 16:35] + +One big advantage of doing the control in the cartesian plane, is that we don't need the estimation of nano-hexapod Rz, therefore we don't need the encoders anymore! + +Maybe this should be done *here*. +Here it can be reminded when doing the control in the cartesian frame. + +** CANC [#C] What performance metric can we use? :@christophe: +CLOSED: [2024-11-12 Tue 09:22] +- State "CANC" from "QUES" [2024-11-12 Tue 09:22] +This can be nice to have a (scalar) performance metric that can be used for optimization. + +In cite:hauge04_sensor_contr_space_based_six, a (scalar) performance metric representing the 6dof transmissibility is used. + +** DONE [#C] Identify the sensibility to disturbances without the nano-hexapod and save the results +CLOSED: [2024-11-07 Thu 09:20] +This can then be used to compare with obtained performance with the nano-hexapod. + +This should be done in the ustation report (A4). + * Introduction :ignore: +From last sections: +- Uniaxial: No stiff nano-hexapod (should also demonstrate that here) +- Rotating: No soft nano-hexapod, Decentralized IFF can be used robustly by adding parallel stiffness -#+name: tab:simscape_nass_section_matlab_code +In this section: +- Take the model of the nano-hexapod with stiffness 1um/N +- Apply decentralized IFF +- Apply HAC-LAC +- Check robustness to payload change +- Simulation of experiments + +#+name: tab:nass_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_nass_1_a | =simscape_nass_1_.m= | +| *Sections* | *Matlab File* | +|--------------------------+---------------| +| Section ref:sec:nass_1_a | =nass_1_.m= | - -* Section 1 +* Control Kinematics :PROPERTIES: -:HEADER-ARGS:matlab+: :tangle matlab/simscape_nass_1.m +:HEADER-ARGS:matlab+: :tangle matlab/nass_1_kinematics.m :END: -<> +<> ** Introduction :ignore: +- Explain how the position error can be expressed in the frame of the nano-hexapod +- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/positioning_error.org][positioning_error]]: Explain how the NASS control is made (computation of the wanted position, measurement of the sample position, computation of the errors) +- Control architecture, block diagram + +- Schematic with micro-station + nass + metrology + control system +- Zoom in the control system with blocs +- Then explain all the blocs +- Say that there are many control strategies. + It will be the topic of chapter 2.3. + Here, we start with something simple: control in the frame of the struts + ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> @@ -168,8 +313,103 @@ load('uniaxial_micro_station_parameters.mat') #+end_src +** Micro Station Kinematics + +- from ref:ssec:ustation_kinematics, computation of the wanted sample pose from the setpoint of each stage. + +** Computation of the sample's pose error + +From metrology (here supposed to be perfect 6-DoF), compute the sample's pose error. +Has to invert the homogeneous transformation. + +** Position error in the frame of the nano-hexapod + +Explain how to compute the errors in the frame of the struts (rotating) + +* Decentralized Active Damping +:PROPERTIES: +:HEADER-ARGS:matlab+: :tangle matlab/nass_2_active_damping.m +:END: +<> +** Introduction :ignore: + +- How to apply/optimize IFF on an hexapod? () +- Robustness to payload mass +- Root Locus +- Damping optimization + +- [ ][[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/control_active_damping.org][control_active_damping]] +- [ ][[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/control-active-damping.org][active damping for stewart platforms]] +- [ ][[file:~/Cloud/work-projects/ID31-NASS/matlab/stewart-simscape/org/bibliography.org::*Vibration Control and Active Damping][Vibration Control and Active Damping]] + +** IFF Plant + +- Show how it changes with the payload mass (1, 25, 50) +- Effect of rotation (1rpm, 60rpm) + +** Controller Design + +- Apply IFF +- Show Root Locus +- Choose optimal gain. + Here in MIMO, cannot have optimal damping for all modes. (there is a paper that tries to optimize that) +- Show robustness to change of payload (loci?) +- Reference to paper showing stability in MIMO for decentralized IFF + +** Sensitivity to disturbances + +- Compute transfer functions from spindle vertical error to sample vertical error with IFF (and compare without the NASS) +- Same for horizontal +- Maybe noise budgeting, but may be complex in MIMO... + +* Centralized Active Vibration Control +:PROPERTIES: +:HEADER-ARGS:matlab+: :tangle matlab/nass_3_hac.m +:END: +<> +** Introduction :ignore: + +- [ ] [[file:~/Cloud/work-projects/ID31-NASS/matlab/nass-simscape/org/uncertainty_experiment.org][uncertainty_experiment]]: Effect of experimental conditions on the plant (payload mass, Ry position, Rz position, Rz velocity, etc...) +- Effect of micro-station compliance +- Effect of IFF +- Effect of payload mass +- Decoupled plant +- Controller design + +From control kinematics: +- Talk about issue of not estimating Rz from external metrology? (maybe could be nice to discuss that during the experiments!) +- Show what happens is Rz is not estimated (for instance supposed equaled to zero => increased coupling) + +** HAC Plant + +- Compute transfer function from u to dL (with IFF applied) + +** Effect of Payload mass + +- Show effect of payload mass + rotation + +** Controller design + +- Show robustness with Loci + +** Sensitivity to disturbances + +- Compute transfer functions from spindle vertical error to sample vertical error with HAC-IFF + Compare without the NASS, and with just IFF +- Same for horizontal +- Maybe noise budgeting, but may be complex in MIMO... + +** Tomography experiment + +- With HAC-IFF, perform tomography experiment, and compare with open-loop + +- Take into account disturbances, metrology sensor noise. Maybe say here that we don't take in account other noise sources as they will be optimized latter (detail design phase) +- Tomography + lateral scans (same as what was done in open loop [[file:~/Cloud/work-projects/ID31-NASS/phd-thesis-chapters/A4-simscape-micro-station/simscape-micro-station.org::*Simulation of Scientific Experiments][here]]) +- Validation of concept + * Conclusion -<> +<> + * Bibliography :ignore: #+latex: \printbibliography[heading=bibintoc,title={Bibliography}]