Add text about multi-body model

This commit is contained in:
Thomas Dehaeze 2020-04-27 16:45:01 +02:00
parent 595f7cabbb
commit 9b7508c762
6 changed files with 452 additions and 255 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

BIN
figs/open_loop_sim.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 KiB

BIN
figs/open_loop_sim_zoom.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

BIN
figs/simscape_picture.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

File diff suppressed because it is too large Load Diff

109
index.org
View File

@ -642,49 +642,102 @@ This should however not change the conclusion of this study nor significantly ch
<<sec:multi_body_model>> <<sec:multi_body_model>>
** Introduction :ignore: ** Introduction :ignore:
https://tdehaeze.github.io/nass-simscape/ As was shown during the modal analysis (Section [[sec:micro_station_dynamics]]), the micro-station behaves as multiple rigid bodies (granite, translation stage, tilt stage, spindle, hexapod) with some discrete flexibility between those solid bodies.
Multi-Body model Thus, a *multi-body model* is perfect to represent such dynamics.
** Validity of the model To do so, we use the Matlab's [[https://www.mathworks.com/products/simscape.html][Simscape]] toolbox.
The mass/inertia of each stage is automatically computed from the geometry and the density of the materials. A small summary of the multi-body Simscape is available [[https://tdehaeze.github.io/nass-simscape/simscape.html][here]] and each of the modeled stage is described [[https://tdehaeze.github.io/nass-simscape/simscape_subsystems.html][here]].
The stiffness of each joint is first set to measured values or stiffness from data sheets. ** Multi-Body model
The mass/inertia of each stage is automatically computed from the imported geometry and the material's density.
The (6dof) stiffness between two solid bodies is first guessed from either measurements of data-sheets.
Then, the values of the stiffness and damping of each joint is manually tuned until the obtained dynamics is sufficiently close to the measured dynamics. Then, the values of the stiffness and damping of each joint is manually tuned until the obtained dynamics is sufficiently close to the measured dynamics.
The 3D representation of the simscape model is shown in Figure [[fig:simscape_picture]].
We could, from the measurement, automatically extract the stiffness and damping values, we this would have required a lot of work and having a perfect match is not required here. #+name: fig:simscape_picture
#+caption: 3D representation of the simscape model
[[file:figs/simscape_picture.png]]
Comparison model - measurements : https://tdehaeze.github.io/nass-simscape/identification.html ** Validity of the model's dynamics
It is very difficult the tune the dynamics of such model as there are more than 50 parameters and many curves to compare between the model and the measurements.
The comparison of three of the Frequency Response Functions are shown in Figure [[fig:identification_comp_top_stages]].
Most of the other measured FRFs and identified transfer functions from the multi-body model have the same level of matching.
We believe that the model is representing the micro-station dynamics with sufficient precision for the current analysis.
#+name: fig:identification_comp_top_stages #+name: fig:identification_comp_top_stages
#+caption: Figure caption #+caption: Frequency Response function from Hammer force in the X,Y and Z directions to the X,Y and Z displacements of the micro-hexapod's top platform. The measurements are shown in blue and the Model in red.
[[file:figs/identification_comp_top_stages.png]] [[file:figs/identification_comp_top_stages.png]]
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:
- 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
Then, using the model, we can
- perform simulation of experiments in presence of disturbances
- measure the motion of the solid-bodies
- identify the dynamics from inputs (forces, imposed displacement) to outputs (measured motion, force sensor, etc.) which will be useful for the nano-hexapod and control design
- include a multi-body model of the nano-hexapod and closed-loop simulations
** Wanted position of the sample and position error ** Wanted position of the sample and position error
For the control of the nano-hexapod, we need to now the sample position error (the motion to be compensated) in the frame of the nano-hexapod.
From the reference position of each stage, we can compute the wanted pose of the sample with respect to the granite. To do so, we need to perform several computations (summarized in Figure [[fig:control-schematic-nass]]):
This is done with multiple transformation matrices. - First, we need to determine the actual *wanted pose* (3 translations and 3 rotations) of the sample with respect to the granite.
This is determined from the wanted motion of each micro-station stage.
Then, from the measurement of the metrology corresponding to the position of the sample with respect to the granite, we can compute the position error of the sample expressed in a frame fixed to the nano-hexapod. Each wanted stage motion is represented by an homogeneous transformation matrix (explain [[http://planning.cs.uiuc.edu/node111.html][here]]), then these matrices are combined to give to total wanted motion of the sample with respect to the granite.
- Then, we need to determine the *actual pose* of the sample with respect to the granite.
This will be performed by several interferometers and several computation will be required to compute the pose of the sample from the interferometers measurements.
However we here directly measure the 3 translations and 3 rotations of the sample using a special simscape block.
- Finally, we need to compare the wanted pose with the measured pose to compute the position error of the sample.
This position error can be expressed in the frame of the granite, or in the frame of the (rotating) nano-hexapod.
Both computation are performed.
#+name: fig:control-schematic-nass #+name: fig:control-schematic-nass
#+caption: Figure caption #+caption: Figure caption
[[file:figs/control-schematic-nass.png]] [[file:figs/control-schematic-nass.png]]
Measurement of the sample's position - conversion of positioning error in the frame of the Nano-hexapod for control: https://tdehaeze.github.io/nass-simscape/positioning_error.html More details about these computations are accessible [[https://tdehaeze.github.io/nass-simscape/positioning_error.html][here]].
** Simulation of Experiments ** Simulation of Experiments
Now that the Now that the dynamics of the model is tuned and the disturbances included in the model, we can perform simulation of experiments.
- dynamics of the model is tuned
- disturbances are included in the model
We can perform simulation of experiments. We first do a simulation where the nano-hexapod is considered to be a solid-body to estimate the sample's motion that we have without an control.
https://tdehaeze.github.io/nass-simscape/experiments.html An animation of the obtained motion is shown in Figure [[fig:open_loop_sim]].
A zoom in the micro-meter ranger on the sample's location is shown in Figure [[fig:open_loop_sim_zoom]].
[[fig:exp_scans_rz_dist]] Two frames are displayed:
- a non-rotating frame that corresponds to the wanted position of the sample.
Note that here this frame is moving with the granite.
- a rotating frame that corresponds to the actual pose of the sample
#+name: fig:open_loop_sim
#+caption: Tomography Experiment using the Simscape Model
[[file:figs/open_loop_sim.gif]]
#+name: fig:open_loop_sim_zoom
#+caption: Tomography Experiment using the Simscape Model - Zoom on the sample's position (the full vertical scale is $\approx 10 \mu m$)
[[file:figs/open_loop_sim_zoom.gif]]
The position error of the sample with respect to the granite are shown in Figure [[fig:exp_scans_rz_dist]].
It is shown that the X-Y-Z position errors are in the micro-meter range.
For the rotation around X and Y, the errors are quite small.
This is explained by the fact that no torque disturbances is considered in the model.
For the vertical rotation, this is due to the fact that we suppose perfect rotation of the Spindle, and anyway, no measurement of the sample with respect to the granite is made by the interferometers.
#+name: fig:exp_scans_rz_dist #+name: fig:exp_scans_rz_dist
#+caption: Position error of the Sample with respect to the granite during a Tomography Experiment with included disturbances #+caption: Position error of the Sample with respect to the granite during a Tomography Experiment with included disturbances
@ -692,10 +745,14 @@ https://tdehaeze.github.io/nass-simscape/experiments.html
** Conclusion ** Conclusion
#+begin_important #+begin_important
Possible to study many effects. The multi-body model developed using Simscape is shown to be sufficiently close to the micro-station dynamics.
Extraction of transfer function like $G$ and $G_d$.
Simulation of experiments to validate performance. It makes possible to:
- study many effects such as the change of dynamics due to the rotation, the sample mass, etc.
- extract transfer function like $G$ and $G_d$
- simulate experiments to validate performance
This model will be used in the next sections to help the design of the nano-hexapod, to develop the robust control architecture and to perform simulation in order to validate.
#+end_important #+end_important
* Optimal Nano-Hexapod Design * Optimal Nano-Hexapod Design
@ -775,9 +832,11 @@ https://tdehaeze.github.io/nass-simscape/optimal_stiffness_control.html
** Simulation of Tomography Experiments ** Simulation of Tomography Experiments
<<sec:tomography_experiment>> <<sec:tomography_experiment>>
- Make several animations #+name: fig:closed_loop_sim_zoom
- [ ] One of a tomography experiment where we see all the station rotating #+caption: Figure caption
- [ ] A zoom on at the nano-meter level to see how the wanted position is moving [[file:figs/closed_loop_sim_zoom.gif]]
** Conclusion ** Conclusion
* Further notes * Further notes