619 lines
25 KiB
Org Mode
619 lines
25 KiB
Org Mode
#+TITLE: Simscape Model - Nano Hexapod
|
|
:DRAWER:
|
|
#+LANGUAGE: en
|
|
#+EMAIL: dehaeze.thomas@gmail.com
|
|
#+AUTHOR: Dehaeze Thomas
|
|
|
|
#+HTML_LINK_HOME: ../index.html
|
|
#+HTML_LINK_UP: ../index.html
|
|
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
|
#+HTML_HEAD: <script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
|
|
|
#+BIND: org-latex-image-default-option "scale=1"
|
|
#+BIND: org-latex-image-default-width ""
|
|
|
|
#+LaTeX_CLASS: scrreprt
|
|
#+LaTeX_CLASS_OPTIONS: [a4paper, 10pt, DIV=12, parskip=full, bibliography=totoc]
|
|
#+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"
|
|
|
|
#+PROPERTY: header-args:matlab :session *MATLAB*
|
|
#+PROPERTY: header-args:matlab+ :comments org
|
|
#+PROPERTY: header-args:matlab+ :exports none
|
|
#+PROPERTY: header-args:matlab+ :results none
|
|
#+PROPERTY: header-args:matlab+ :eval no-export
|
|
#+PROPERTY: header-args:matlab+ :noweb yes
|
|
#+PROPERTY: header-args:matlab+ :mkdirp yes
|
|
#+PROPERTY: header-args:matlab+ :output-dir figs
|
|
#+PROPERTY: header-args:matlab+ :tangle no
|
|
|
|
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/Cloud/tikz/org/}{config.tex}")
|
|
#+PROPERTY: header-args:latex+ :imagemagick t :fit yes
|
|
#+PROPERTY: header-args:latex+ :iminoptions -scale 100% -density 150
|
|
#+PROPERTY: header-args:latex+ :imoutoptions -quality 100
|
|
#+PROPERTY: header-args:latex+ :results file raw replace
|
|
#+PROPERTY: header-args:latex+ :buffer no
|
|
#+PROPERTY: header-args:latex+ :tangle no
|
|
#+PROPERTY: header-args:latex+ :eval no-export
|
|
#+PROPERTY: header-args:latex+ :exports results
|
|
#+PROPERTY: header-args:latex+ :mkdirp yes
|
|
#+PROPERTY: header-args:latex+ :output-dir figs
|
|
#+PROPERTY: header-args:latex+ :post pdf2svg(file=*this*, ext="png")
|
|
:END:
|
|
|
|
#+latex: \clearpage
|
|
|
|
* Build :noexport:
|
|
#+NAME: startblock
|
|
#+BEGIN_SRC emacs-lisp :results none :tangle no
|
|
(add-to-list 'org-latex-classes
|
|
'("scrreprt"
|
|
"\\documentclass{scrreprt}"
|
|
("\\chapter{%s}" . "\\chapter*{%s}")
|
|
("\\section{%s}" . "\\section*{%s}")
|
|
("\\subsection{%s}" . "\\subsection*{%s}")
|
|
("\\paragraph{%s}" . "\\paragraph*{%s}")
|
|
))
|
|
|
|
|
|
;; Remove automatic org heading labels
|
|
(defun my-latex-filter-removeOrgAutoLabels (text backend info)
|
|
"Org-mode automatically generates labels for headings despite explicit use of `#+LABEL`. This filter forcibly removes all automatically generated org-labels in headings."
|
|
(when (org-export-derived-backend-p backend 'latex)
|
|
(replace-regexp-in-string "\\\\label{sec:org[a-f0-9]+}\n" "" text)))
|
|
(add-to-list 'org-export-filter-headline-functions
|
|
'my-latex-filter-removeOrgAutoLabels)
|
|
|
|
;; Remove all org comments in the output LaTeX file
|
|
(defun delete-org-comments (backend)
|
|
(loop for comment in (reverse (org-element-map (org-element-parse-buffer)
|
|
'comment 'identity))
|
|
do
|
|
(setf (buffer-substring (org-element-property :begin comment)
|
|
(org-element-property :end comment))
|
|
"")))
|
|
(add-hook 'org-export-before-processing-hook 'delete-org-comments)
|
|
|
|
;; Use no package by default
|
|
(setq org-latex-packages-alist nil)
|
|
(setq org-latex-default-packages-alist nil)
|
|
|
|
;; Do not include the subtitle inside the title
|
|
(setq org-latex-subtitle-separate t)
|
|
(setq org-latex-subtitle-format "\\subtitle{%s}")
|
|
|
|
(setq org-export-before-parsing-hook '(org-ref-glossary-before-parsing
|
|
org-ref-acronyms-before-parsing))
|
|
#+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: 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:
|
|
|
|
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)
|
|
|
|
* Active Vibration Platforms
|
|
<<sec:nhexa_platform_review>>
|
|
** 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:
|
|
<<sec:nhexa_stewart_platform>>
|
|
** 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)
|
|
<<matlab-dir>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none :results silent :noweb yes
|
|
<<matlab-init>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :tangle no :noweb yes
|
|
<<m-init-path>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :eval no :noweb yes
|
|
<<m-init-path-tangle>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :noweb yes
|
|
<<m-init-other>>
|
|
#+end_src
|
|
|
|
** Mechanical Architecture
|
|
<<ssec:nhexa_stewart_platform_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
|
|
<<ssec:nhexa_stewart_platform_kinematics>>
|
|
**** 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
|
|
<<ssec:nhexa_stewart_platform_static>>
|
|
|
|
How stiffness varies with orientation of struts.
|
|
Same with stroke?
|
|
Or maybe in the detailed chapter?
|
|
|
|
** Dynamic Analysis
|
|
<<ssec:nhexa_stewart_platform_dynamics>>
|
|
|
|
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:
|
|
<<sec:nhexa_model>>
|
|
** 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)
|
|
<<matlab-dir>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none :results silent :noweb yes
|
|
<<matlab-init>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :tangle no :noweb yes
|
|
<<m-init-path>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :eval no :noweb yes
|
|
<<m-init-path-tangle>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :noweb yes
|
|
<<m-init-other>>
|
|
#+end_src
|
|
|
|
** Model Definition
|
|
<<ssec:nhexa_model_def>>
|
|
|
|
- [ ] 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
|
|
<<ssec:nhexa_model_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
|
|
<<ssec:nhexa_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:
|
|
<<sec:nhexa_control>>
|
|
** 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)
|
|
<<matlab-dir>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :exports none :results silent :noweb yes
|
|
<<matlab-init>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :tangle no :noweb yes
|
|
<<m-init-path>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :eval no :noweb yes
|
|
<<m-init-path-tangle>>
|
|
#+end_src
|
|
|
|
#+begin_src matlab :noweb yes
|
|
<<m-init-other>>
|
|
#+end_src
|
|
|
|
** Centralized and Decentralized Control
|
|
<<ssec:nhexa_control_centralized_decentralized>>
|
|
|
|
- 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
|
|
<<ssec:nhexa_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
|
|
<<ssec:nhexa_control_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
|
|
<<ssec:nhexa_control_hac_lac>>
|
|
|
|
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:
|
|
<<sec:nhexa_conclusion>>
|
|
|
|
- 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}]
|
|
|
|
* Helping Functions :noexport:
|
|
** Initialize Path
|
|
#+NAME: m-init-path
|
|
#+BEGIN_SRC matlab
|
|
%% Path for functions, data and scripts
|
|
addpath('./matlab/mat/'); % Path for data
|
|
addpath('./matlab/'); % Path for scripts
|
|
#+END_SRC
|
|
|
|
#+NAME: m-init-path-tangle
|
|
#+BEGIN_SRC matlab
|
|
%% Path for functions, data and scripts
|
|
addpath('./mat/'); % Path for data
|
|
#+END_SRC
|
|
|
|
** Initialize other elements
|
|
#+NAME: m-init-other
|
|
#+BEGIN_SRC matlab
|
|
%% Colors for the figures
|
|
colors = colororder;
|
|
#+END_SRC
|