nass-micro-station-measurem.../modal-analysis/mathematical_model.org

137 lines
5.2 KiB
Org Mode

#+TITLE: Modal Analysis - Derivation of Mathematical Models
:DRAWER:
#+STARTUP: overview
#+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="../css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
#+HTML_MATHJAX: align: center tagside: right font: TeX
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:shell :eval no-export
#+PROPERTY: header-args:latex :headers '("\\usepackage{tikz}" "\\usepackage{import}" "\\import{$HOME/MEGA/These/LaTeX/}{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 raw replace :buffer no
#+PROPERTY: header-args:latex+ :eval no-export
#+PROPERTY: header-args:latex+ :exports both
#+PROPERTY: header-args:latex+ :mkdirp yes
#+PROPERTY: header-args:latex+ :output-dir figs
:END:
* Type of Model
The model that we want to obtain is a *multi-body model*.
It is composed of several *solid bodies connected with springs and dampers*.
The solid bodies are represented with different colors on figure [[fig:nass_solidworks]].
In the simscape model, the solid bodies are:
- the granite (1 or 2 solids)
- the translation stage
- the tilt stage
- the spindle and slip-ring
- the hexapod
#+name: fig:nass_solidworks
#+caption: CAD view of the ID31 Micro-Station
#+attr_html: :width 800px
[[file:img/nass_solidworks.png]]
However, each of the DOF of the system may not be relevant for the modes present in the frequency band of interest.
For instance, the translation stage may not vibrate in the Z direction for all the modes identified. Then, we can block this DOF and this simplifies the model.
The modal identification done here will thus permit us to determine *which DOF can be neglected*.
* TODO Extract Physical Matrices
cite:wang11_extrac_real_modes_physic_matric
Let's recall that:
\[ \Lambda = \begin{bmatrix}
s_1 & & 0 \\
& \ddots & \\
0 & & s_N
\end{bmatrix}_{N \times N}; \quad \Psi = \begin{bmatrix}
& & \\
\{\psi_1\} & \dots & \{\psi_N\} \\
& &
\end{bmatrix}_{M \times N} ; \quad A = \begin{bmatrix}
a_1 & & 0 \\
& \ddots & \\
0 & & a_N
\end{bmatrix}_{N \times N}; \]
\begin{align}
M &= \frac{1}{2} \left[ \text{Re}(\Psi A^{-1} \Lambda \Psi^T ) \right]^{-1} \\
C &= -2 M \text{Re}(\Psi A^{-1} \Lambda^2 A^{-1} \Psi^T ) M \\
K &= -\frac{1}{2} \left[ \text{Re}(\Psi \Lambda^{-1} A^{-1} \Psi^T) \right]^{-1}
\end{align}
#+begin_src matlab
psi = eigen_vec_CoM;
a = modal_a_M;
lambda = eigen_val_M;
M = 0.5*inv(real(psi*inv(a)*lambda*psi'));
C = -2*M*real(psi*inv(a)*lambda^2*inv(a)*psi')*M;
K = -0.5*inv(real(psi*inv(lambda)*inv(a)*psi'));
#+end_src
From cite:ewins00_modal
\begin{align}
[M] &= [\Phi]^{-T} [I] [\Phi]^{-1} \\
[K] &= [\Phi]^{-T} [\lambda_r^2] [\Phi]^{-1}
\end{align}
* Some notes about constraining the number of degrees of freedom
We want to have the two eigen matrices.
They should have the same size $n \times n$ where $n$ is the number of modes as well as the number of degrees of freedom.
Thus, if we consider 21 modes, we should restrict our system to have only 21 DOFs.
Actually, we are measured 6 DOFs of 6 solids, thus we have 36 DOFs.
From the mode shapes animations, it seems that in the frequency range of interest, the two marbles can be considered as one solid.
We thus have 5 solids and 30 DOFs.
In order to determine which DOF can be neglected, two solutions seems possible:
- compare the mode shapes
- compare the FRFs
The question is: in which base (frame) should be express the modes shapes and FRFs?
Is it meaningful to compare mode shapes as they give no information about the amplitudes of vibration?
| Stage | Motion DOFs | Parasitic DOF | Total DOF | Description of DOF |
|---------+-------------+---------------+-----------+--------------------|
| Granite | 0 | 3 | 3 | |
| Ty | 1 | 2 | 3 | Ty, Rz |
| Ry | 1 | 2 | 3 | Ry, |
| Rz | 1 | 2 | 3 | Rz, Rx, Ry |
| Hexapod | 6 | 0 | 6 | Txyz, Rxyz |
|---------+-------------+---------------+-----------+--------------------|
| | 9 | 9 | 18 | |
#+TBLFM: $4=vsum($2..$3)
#+TBLFM: @>$2..$>=vsum(@I..@II)