From 69610c954792fa6a2faec634ec6c7a32c59e4448 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Wed, 3 Jul 2019 13:54:33 +0200 Subject: [PATCH] Reorganization of the modal-analysis folder --- modal-analysis/index.html | Bin 595496 -> 10652 bytes modal-analysis/index.org | 1477 +--------------- modal-analysis/mathematical_model.html | Bin 0 -> 10340 bytes modal-analysis/mathematical_model.org | 40 + modal-analysis/measurement.html | Bin 0 -> 595305 bytes modal-analysis/measurement.org | 1491 +++++++++++++++++ ...es_analysis.html => modal_extraction.html} | Bin 114653 -> 114900 bytes ...odes_analysis.org => modal_extraction.org} | 2 +- 8 files changed, 1537 insertions(+), 1473 deletions(-) create mode 100644 modal-analysis/mathematical_model.html create mode 100644 modal-analysis/mathematical_model.org create mode 100644 modal-analysis/measurement.html create mode 100644 modal-analysis/measurement.org rename modal-analysis/{modes_analysis.html => modal_extraction.html} (96%) rename modal-analysis/{modes_analysis.org => modal_extraction.org} (99%) diff --git a/modal-analysis/index.html b/modal-analysis/index.html index 9de54e114c3bd5a5b38fb5735d282f6d26e276f5..a5a970e19bf6f2d261d9dc7a7c76182b3987a360 100644 GIT binary patch delta 370 zcmZ3nMrBU$gxCD$x(3Dyxv52Z3Wmm3rp6P0Et68nPg5w#NLBE3F*a22%}g%J*9|U7 zEXmBz+q{5royuej&C}Vq)!67~7}{}h*%a7ug#Zo7%}+_pQAo^7%&9ESEXJa(7-F5 KPTwfXSq=bT8i7Xu literal 595496 zcmeFadwUxva$a$MjXT!<(Y0K-lEhiuMCxhYm z;%Vzrb<(<= !p1yncuJbPFOr{s7uf9KhuWIqsYvqsanSQ4; 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 -d6}gZF6Ojd$PsDf|MiO>xDVy>H$;^y%siZT(p9 z37gEL?+}^x=GU*^vi|^vn7r4l^rf$7B}ybK%IgW&cIl){y`RpnS$?<_6g*u&`5w^U zSWKbf^}{-JS^pR9cVfSv%dNxZjGi*-oqT_C6!Ps~+=E=+jio;oU(XJ{{Y&~_)S->~;Dg+g z^to1#t)9hh`yfJ7UR-}|m(4nLkM{Lt*XxH>nPmN63xn4KbmUj>>*K$A%M0m!sXwQC zCXOZg+Rgs8F+WD4hxw%~ehwbHzk6}pQ|N~@R|C-_YrE$gKNE*ut*Jv++;u z)2mqQ#j94bu>TyNPu@;{5w7jhu}``~H#1Bwn1iZIZ%g47qD3eLAK6Ev$s}KDBpGWedZ%uJ!mm4#6IFN4*`+I8J zU)kmMexv73-Z%gCkaPZZY;sGqdIIw?lK<@Bo4*D~F|ABpS<6K<-k9# z+q?&3eOo>2r-EPp2ZNJ^12d_up%-?oLbbdb>zm;P=UN;$v^-YF9$T^@+8bdn8IynQ#<L#&Sr9YcQ)N*ctfJ+dGE(>yu;pK;kfFW=eC}32z$nJ zCFkN2ZyhFO?!AY8%t~92RlKsx^V!nt5s+Ho?+Ps#?yhJ@_20=sy7BqP5Al}pdiq&% zqX(Ofo_sog*RwozZw_Y>Tck}R8^>W;% z3uBw#>SEdL;2xfQb@by`h_~RIzZKU#5XkMTm_!2ckG38N7(BF2lDzKKmOr&BiraY zFZpwf?yKJ1ukr5R6G@spy4^PPoz)qgq3?|DV+`FB%Vebhy4X?9 z>&D^hz21*WhwVpNy?ZYoZ=Ov_G3=k~-p@T5>6>??sd%r!_$SCEp7;OK=KL!J)2Hs0 zn6v5+FLhn-ZiuA%{2{6St15-Ja$=tYY0C2t^l^h~Otv@4kf`b73xBCM8L8ty@Bm-<*V~`y)8!`7z@qm% z=3%HTfhX!6j^1D2#4(o|$UHmv&1gP8oxEFgrMWJ~KR@dJZ}C6#<)iKp)M_KZJ?=f} zYUsy*M^P;{;g+#$J?`sW2+EH?e*E~J1Bkckp>}7~9bHy3=>#^HKXh^8dS&!MBP5dmVnRTsuz2`L@H) z`mybYpS8u%=(~UW+jmbz5QHbXIwq6(V!1lW>~##f?2bWyLM;YBi|EAjo5}fk*82`j z%-p&~WvK2YX&pVj*!xM$&ckb!7URFiu{8_>8cU|D88a!WZ7GMg(*}d8`d~0Aj&rtL z_lH=l|9N<#u6b{5e5}EGU%d8)fBfoqqp$uje%*d^et9<5yqp*QH9g|vXX?F>-oW6D zZl9{%0d9g5H2cxokDE@Mee3g0*}Q6!ty`b^vF%%*s$-)+NWbY(Ia*2= z_UWxw_byozK|Yd4oXaEr)c({px|b&P(vM};-(Fit zO6|F>8N0MzUe$RUeLWtX&D%H65C27qRpxn7R*5w3%|v0wC)z_&TKsmWE+(hX4{v=) zySH9F=xPLCPcGhejqINv${(JLSA%)-fB*B}U#5v`lG4>LT~QQidi>v)Zx2V~^X2nH z__yyTr^~bFheeWH{(LxkBDQ#PDgW>Cu5qt^{d%AH4_C9wvZq>YZEe*1jgY!DIr@*k z{l~w`=0*4LCo<0ynXdd<`nP;oneS3wku)m)F#7t{i8Pdv?kMNyqw|%4r5)(26KS3; zePqVVb*F1-lXEVuQ&z2IZqB*Ln^=yV`{O@WJ$qdB$A7Fz=q?&>8G8M)j#R-1}L;cuYOD&|;s5Gx#o9d{8q3(^2{&p$qBPWRdvnww6Z$FDxtv; z*Kbrmd@5&y4p0774l*v=)2E{jGe=2zlvbnvZr>e`lICe5`w%M-=vRJ{W;*gUnb+aT zHI&bm%gd)vo~-|FHa~u!9gFpzygqAR|M-8THPLfHy!0TKasAiT_od$9_~bSO9Q=QwsGzF= diff --git a/modal-analysis/index.org b/modal-analysis/index.org index 8b8b6f8..f68e0a4 100644 --- a/modal-analysis/index.org +++ b/modal-analysis/index.org @@ -1,4 +1,4 @@ -#+TITLE: Modal Analysis +#+TITLE: Modal Analysis of the ID31 Micro-Station :DRAWER: #+STARTUP: overview @@ -18,1476 +18,9 @@ #+HTML_HEAD: #+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 :END: -* Goal -The goal is to experimentally extract a *Spatial Model* (mass, damping, stiffness) of the structure (shown on figure [[fig:nass_picture]]) in order to tune the Multi-Body model. - -#+name: fig:nass_picture -#+caption: Picture of the ID31 Micro-Station. (1) Granite (2) Translation Stage (3) Tilt Stage (4) Hexapod (5) Dummy Mass -#+attr_html: :width 500px -[[file:img/nass_picture.png]] - -The procedure is represented on figure [[fig:vibration_analysis_procedure]] where we go from left to right. - -#+name: fig:vibration_analysis_procedure -#+caption: Vibration Analysis Procedure -#+attr_html: :width 400px -[[file:img/vibration_analysis_procedure.png]] - -First, we obtain a *Response Model* (Frequency Response Functions) from measurements. -This is further converted into a *Modal Model* (Natural Frequencies and Mode Shapes). -Finally, this is converted into a *Spatial Model* with the Mass/Damping/Stiffness matrices. - - -Theses matrices will be used to tune the Simscape (multi-body) model. - -The modes we want to identify are those in the frequency range between 0Hz and 150Hz. - -* 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*. - -* Instrumentation Used -In order to perform to Modal Analysis and to obtain first a Response Model, the following devices are used: -- An *acquisition system* (OROS) with 24bits ADCs (figure [[fig:oros]]) -- 3 tri-axis *Accelerometers* (figure [[fig:accelero_M393B05]]) with parameters shown on table [[tab:accelero_M393B05]] -- An *Instrumented Hammer* with various Tips (figure [[fig:instrumented_hammer]]) (figure [[fig:hammer_tips]]) - -#+name: fig:oros -#+caption: Acquisition system: OROS -#+attr_html: :width 500px -[[file:img/instrumentation/oros.png]] - -The acquisition system permits to auto-range the inputs (probably using variable gain amplifiers) the obtain the maximum dynamic range. -This is done before each measurement. -Anti-aliasing filters are also included in the system. - -#+name: fig:accelero_M393B05 -#+caption: Accelerometer used: M393B05 -#+attr_html: :width 500px -[[file:img/instrumentation/accelero_M393B05.png]] - -#+name: tab:accelero_M393B05 -#+caption: 393B05 Accelerometer Data Sheet -| Sensitivity | 10V/g | -| Measurement Range | 0.5 g pk | -| Broadband Resolution | 0.000004 g rms | -| Frequency Range | 0.7 to 450Hz | -| Resonance Frequency | > 2.5kHz | - -Tests have been conducted to determine the most suitable Hammer tip. -This has been found that the softer tip gives the best results. -It excites more the low frequency range where the coherence is low, the overall coherence was improved. - -#+name: fig:instrumented_hammer -#+caption: Instrumented Hammer -#+attr_html: :width 500px -[[file:img/instrumentation/instrumented_hammer.png]] - -#+name: fig:hammer_tips -#+caption: Hammer tips -#+attr_html: :width 500px -[[file:img/instrumentation/hammer_tips.png]] - -The accelerometers are glued on the structure. - -* Structure Preparation and Test Planning -** Structure Preparation -All the stages are turned ON. -This is done for two reasons: -- Be closer to the real dynamic of the station in used -- If the control system of stages are turned OFF, this would results in very low frequency modes un-identifiable with the current setup, and this will also decouple the dynamics which would not be the case in practice -This is critical for the translation stage and the spindle as their is no stiffness in the free DOF (air-bearing for the spindle for instance). - -The alternative would have been to mechanically block the stages with screws, but this may result in changing the modes. - -The stages turned ON are: -- Translation Stage -- Tilt Stage -- Spindle and Slip-Ring -- Hexapod - - -The top part representing the NASS and the sample platform have been removed in order to reduce the complexity of the dynamics and also because this will be further added in the model inside Simscape. - -All the stages are moved to their zero position (Ty, Ry, Rz, Slip-Ring, Hexapod). - -All other elements have been remove from the granite such as another heavy positioning system. - -** Test Planing -The goal is to identify the full $N \times N$ FRF matrix (where $N$ is the number of degree of freedom of the system). - -However, the principle of reciprocity states that: -\[ H_{jk} = \frac{X_j}{F_k} = H_{kj} = \frac{X_k}{F_j} \] -Thus, only one column or one line of the matrix has to be identified. - -Either we choose to identify $\frac{X_k}{F_i}$ or $\frac{X_i}{F_k}$ for any chosen $k$ and for $i = 1,\ ...,\ N$. - -We here choose to identify $\frac{X_i}{F_k}$ for practical reasons: -- it is easier to glue the accelerometers on some stages than to excite this particular stage with the Hammer - -The measurement thus consists of: -- always excite the structure at the same location with the Hammer -- Move the accelerometers to measure all the DOF of the structure - -** Location of the Accelerometers -4 tri-axis accelerometers are used for each solid body. - -Only 2 could have been used as only 6DOF have to be measured, however, we have chosen to have some *redundancy*. - -This could also help us identify measurement problems or flexible modes is present. - -The position of the accelerometers are: -- 4 on the first granite -- 4 on the second granite (figure [[fig:accelerometers_granite2_overview]]) -- 4 on top of the translation stage (figure [[fig:accelerometers_ty_overview]]) -- 4 on top of the tilt stage -- 4 on top of the spindle -- 4 on top of the hexapod (figure [[fig:accelerometers_hexa_overview]]) - -#+name: fig:accelerometers_granite2_overview -#+caption: Accelerometers located on the top granite -#+attr_html: :width 500px -[[file:img/accelerometers/accelerometers_granite2_overview.jpg]] - -#+name: fig:accelerometers_ty_overview -#+caption: Accelerometers located on top of the translation stage -#+attr_html: :width 500px -[[file:img/accelerometers/accelerometers_ty_overview.jpg]] - -#+name: fig:accelerometers_hexa_overview -#+caption: Accelerometers located on the Hexapod -#+attr_html: :width 500px -[[file:img/accelerometers/accelerometers_hexa_overview.jpg]] - -** Hammer Impacts -Only 3 impact points are used. - -The impact points are shown on figures [[fig:hammer_x]], [[fig:hammer_y]] and [[fig:hammer_z]]. - -#+name: fig:hammer_x -#+caption: Hammer Blow in the X direction -#+attr_html: :width 300px -[[file:img/impacts/hammer_x.gif]] - -#+name: fig:hammer_y -#+caption: Hammer Blow in the Y direction -#+attr_html: :width 300px -[[file:img/impacts/hammer_y.gif]] - -#+name: fig:hammer_z -#+caption: Hammer Blow in the Z direction -#+attr_html: :width 300px -[[file:img/impacts/hammer_z.gif]] - -* Signal Processing -The measurements are averaged 10 times (figure [[fig:general_parameters]]) corresponding to 10 hammer impacts. - -#+name: fig:general_parameters -#+caption: General Acquisition Settings -#+attr_html: :width 500px -[[file:img/parameters/general_parameters.jpg]] - -Windowing is used on the force response signals. - -A boxcar window (figure [[fig:window_force]]) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless. - -An exponential window (figure [[fig:window_response]]) is used for the response signal as we are measuring transient signals and most of the information is located at the beginning of the signal. - -#+name: fig:window_force -#+caption: Window used for the force signal -#+attr_html: :width 500px -[[file:img/parameters/window_force.jpg]] - -#+name: fig:window_response -#+caption: Window used for the response signal -#+attr_html: :width 500px -[[file:img/parameters/window_response.jpg]] - -* Frequency Response Functions and Coherence Results -** 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 - -** Load Data -#+begin_src matlab - meas1_raw = load('modal_analysis/raw_data/Measurement1.mat'); -#+end_src - -** Raw Force Data -#+begin_src matlab :exports none - time = linspace(0, meas1_raw.Track1_X_Resolution*length(meas1_raw.Track1), length(meas1_raw.Track1)); - figure; - plot(time, meas1_raw.Track1); - xlabel('Time [s]'); - ylabel('Force [N]'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/raw_data_force.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:raw_data_force -#+CAPTION: Raw Force Data from Hammer Blow -[[file:figs/raw_data_force.png]] - -#+begin_src matlab :exports none - xlim([22.1, 22.3]); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/raw_data_force_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:raw_data_force_zoom -#+CAPTION: Raw Force Data from Hammer Blow - Zoom -[[file:figs/raw_data_force_zoom.png]] - -** Raw Response Data -#+begin_src matlab :exports none - figure; - plot(time, meas1_raw.Track2); - xlabel('Time [s]'); - ylabel('Acceleration [m/s2]'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/raw_data_acceleration.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:raw_data_acceleration -#+CAPTION: Raw Acceleration Data from Accelerometer -[[file:figs/raw_data_acceleration.png]] - -#+begin_src matlab :exports none - xlim([22.1, 22.5]); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/raw_data_acceleration_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:raw_data_acceleration_zoom -#+CAPTION: Raw Acceleration Data from Accelerometer - Zoom -[[file:figs/raw_data_acceleration_zoom.png]] - -** Load Data -#+begin_src matlab - meas1 = load('modal_analysis/frf_coh/Measurement1.mat'); -#+end_src - -** FRF and Coherence Results -#+begin_src matlab :exports none - figure; - ax1 = subplot(2, 1, 1); - plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_AvXSpc_2_1_RMS_Y_Mod); - set(gca, 'XTickLabel',[]); - ylabel('Magnitude'); - - ax2 = subplot(2, 1, 2); - plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_AvXSpc_2_1_RMS_Y_Phas); - ylim([-180, 180]); - yticks([-180, -90, 0, 90, 180]); - xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); - - linkaxes([ax1,ax2],'x'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/frf_result_example.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:frf_result_example -#+CAPTION: Example of one measured FRF -[[file:figs/frf_result_example.png]] - -#+begin_src matlab :exports none - figure; - plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_Coh_2_1_RMS_Y_Val); - xlabel('Frequency [Hz]'); - ylabel('Coherence'); -#+end_src - -#+HEADER: :tangle no :exports results :results none :noweb yes -#+begin_src matlab :var filepath="figs/coh_result_example.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:coh_result_example -#+CAPTION: Example of one measured Coherence -[[file:figs/coh_result_example.png]] - -* Mode Shapes -Multiple modal extraction techniques can be used (SIMO, MIMO, narrow band, wide band, ...). -First preliminary results on 10 identified modes are presented here. - -#+name: fig:mode1 -#+caption: Mode 1 -[[file:img/modes/mode1.gif]] - -#+name: fig:mode2 -#+caption: Mode 2 -[[file:img/modes/mode2.gif]] - -#+name: fig:mode3 -#+caption: Mode 3 -[[file:img/modes/mode3.gif]] - -#+name: fig:mode4 -#+caption: Mode 4 -[[file:img/modes/mode4.gif]] - -#+name: fig:mode5 -#+caption: Mode 5 -[[file:img/modes/mode5.gif]] - -#+name: fig:mode6 -#+caption: Mode 6 -[[file:img/modes/mode6.gif]] - -#+name: fig:mode7 -#+caption: Mode 7 -[[file:img/modes/mode7.gif]] - -#+name: fig:mode8 -#+caption: Mode 8 -[[file:img/modes/mode8.gif]] - -#+name: fig:mode9 -#+caption: Mode 9 -[[file:img/modes/mode9.gif]] - -#+name: fig:mode10 -#+caption: Mode 10 -[[file:img/modes/mode10.gif]] - -* Obtained Modal Matrices -From the modal analysis software, we can export the obtained *eigen matrices*: -\[ \begin{bmatrix} - \omega_1^2 & & 0 \\ - & \ddots & \\ - 0 & & \omega_n^2 -\end{bmatrix}; \quad \Psi = \begin{bmatrix} - & & \\ - \{\psi_1\} & \dots & \{\psi_n\} \\ - & & -\end{bmatrix} \] - -where $\bar{\omega}_r^2$ is the $r^\text{th}$ eigenvalue squared and $\{\phi\}_r$ is a description of the corresponding *mode shape*. - -The file containing the eigen frequencies and mode shapes are shown below (for the first mode). - -#+begin_src bash :results output :exports results :eval no-export - sed 80q modal_analysis/modes_propres_narband.asc -#+end_src - -#+RESULTS: -#+begin_example -Created by N-Modal -Estimator: cmif -18-Jun-19 16:31:25 - - -Mode 1 -freq = 11.11191Hz -damp = 10.51401% -modal A = 8.52879e+003-2.29043e+003i -modal B = -9.64203e+004-6.08978e+005i -Mode matrix of local coordinate [DOF: Re IM] - 1X+: -9.34637e-002 4.52445e-002 - 1Y+: 2.33790e-001 1.41439e-003 - 1Z+: -1.73754e-002 6.02449e-003 - 2X+: -7.42108e-002 3.91543e-002 - 2Y+: 2.41566e-001 -1.44869e-003 - 2Z+: -5.99285e-003 2.10370e-003 - 4X+: -1.02163e-001 2.79561e-002 - 4Y+: 2.29048e-001 2.89782e-002 - 4Z+: -2.85130e-002 1.77132e-004 - 5X+: -8.77132e-002 3.34081e-002 - 5Y+: 2.14182e-001 2.14655e-002 - 5Z+: -1.54521e-002 1.26682e-002 - 6X+: -7.90143e-002 2.42583e-002 - 6Y+: 2.20669e-001 2.12738e-002 - 6Z+: 4.60755e-002 4.96406e-003 - 7X+: -7.79654e-002 2.58385e-002 - 7Y+: 2.06861e-001 3.48019e-002 - 7Z+: -1.78311e-002 -1.29704e-002 - 8X+: -8.49357e-002 3.55200e-002 - 8Y+: 2.07470e-001 3.59745e-002 - 8Z+: -7.66974e-002 -3.19813e-003 - 9X+: -7.38565e-002 1.95146e-002 - 9Y+: 2.17403e-001 2.01550e-002 - 9Z+: -1.77073e-002 -3.46414e-003 - 10X+: -7.77587e-002 2.36700e-002 - 10Y+: 2.35654e-001 -2.14540e-002 - 10Z+: 7.94165e-002 -2.45897e-002 - 11X+: -8.17972e-002 2.20583e-002 - 11Y+: 2.20906e-001 -4.30164e-003 - 11Z+: -5.60520e-003 3.10187e-003 - 12X+: -8.64261e-002 3.66022e-002 - 12Y+: 2.15000e-001 -5.74661e-003 - 12Z+: -1.22622e-001 4.11767e-002 - 13X+: -4.25169e-002 1.56602e-002 - 13Y+: 5.31036e-002 -1.73951e-002 - 13Z+: -4.07130e-002 1.26884e-002 - 14X+: -3.85032e-002 1.29431e-002 - 14Y+: 5.36716e-002 -1.80868e-002 - 14Z+: 1.00367e-001 -3.48798e-002 - 15X+: -4.25524e-002 1.46363e-002 - 15Y+: 5.19668e-002 -1.69744e-002 - 15Z+: 5.89747e-003 -2.32428e-003 - 16X+: -4.31268e-002 1.38332e-002 - 16Y+: 5.07545e-002 -1.53045e-002 - 16Z+: -1.04172e-001 3.17984e-002 - 17X+: -2.69757e-002 9.07955e-003 - 17Y+: 3.07837e-002 -9.44663e-003 - 17Z+: -7.63502e-003 1.68203e-003 - 18X+: -3.00097e-002 9.23966e-003 - 18Y+: 2.83585e-002 -8.97747e-003 - 18Z+: 1.52467e-001 -4.78675e-002 - 19X+: -2.70223e-002 6.16478e-003 - 19Y+: 3.06149e-002 -6.25382e-003 - 19Z+: -4.84888e-003 1.93970e-003 - 20X+: -2.90976e-002 7.13184e-003 - 20Y+: 3.36738e-002 -7.30875e-003 - 20Z+: -1.66902e-001 3.93419e-002 - 3X+: -9.40720e-002 3.93724e-002 - 3Y+: 2.52307e-001 0.00000e+000 - 3Z+: -1.53864e-002 -9.25720e-004 - 21X+: -7.91940e-002 4.39648e-002 - 21Y+: 2.04567e-001 9.49987e-003 - 21Z+: -1.56087e-002 7.08838e-003 - 22X+: -1.01070e-001 3.13534e-002 - 22Y+: 1.92270e-001 1.80423e-002 - 22Z+: 2.93053e-003 -1.97308e-003 - 23X+: -8.86455e-002 4.29906e-002 - 23Z+: -3.38351e-002 1.81362e-003 - 23Y-: -1.90862e-001 -2.53414e-002 -#+end_example - -* Compute the Modal Model -** 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 - -** Position of the accelerometers -There are 23 accelerometers: -- 4 on the bottom granite -- 4 on the top granite -- 4 on top of the translation stage -- 4 on the tilt stage -- 3 on top of the spindle -- 4 on top of the hexapod - -The coordinates defined in the software are displayed below. - -#+begin_src bash :results output :exports results :eval no-export - sed -n 18,40p modal_analysis/acc_coordinates.txt | tac -- -#+end_src - -#+RESULTS: -#+begin_example - 1 1.0000e-001 1.0000e-001 1.1500e+000 0 Top - 2 1.0000e-001 -1.0000e-001 1.1500e+000 0 Top - 3 -1.0000e-001 -1.0000e-001 1.1500e+000 0 Top - 4 -1.0000e-001 1.0000e-001 1.1500e+000 0 Top - 5 4.0000e-001 4.0000e-001 9.5000e-001 0 inner - 6 4.0000e-001 -4.0000e-001 9.5000e-001 0 inner - 7 -4.0000e-001 -4.0000e-001 9.5000e-001 0 inner - 8 -4.0000e-001 4.0000e-001 9.5000e-001 0 inner - 9 5.0000e-001 5.0000e-001 9.0000e-001 0 outer - 10 5.0000e-001 -5.0000e-001 9.0000e-001 0 outer - 11 -5.0000e-001 -5.0000e-001 9.0000e-001 0 outer - 12 -5.0000e-001 5.0000e-001 9.0000e-001 0 outer - 13 5.5000e-001 5.5000e-001 5.5000e-001 0 top - 14 5.5000e-001 -5.5000e-001 5.5000e-001 0 top - 15 -5.5000e-001 -5.5000e-001 5.5000e-001 0 top - 16 -5.5000e-001 5.5000e-001 5.5000e-001 0 top - 17 9.5000e-001 9.5000e-001 4.0000e-001 0 low - 18 9.5000e-001 -9.5000e-001 4.0000e-001 0 low - 19 -9.5000e-001 -9.5000e-001 4.0000e-001 0 low - 20 -9.5000e-001 9.5000e-001 4.0000e-001 0 low - 21 2.0000e-001 2.0000e-001 8.5000e-001 0 bot - 22 0.0000e+000 -2.0000e-001 8.5000e-001 0 bot - 23 -2.0000e-001 2.0000e-001 8.5000e-001 0 bot -#+end_example - -#+name: tab:acc_location -#+caption: Location of each Accelerometer (using the normal coordinate frame with X aligned with the X ray) -| *Node number* | *Solid Body* | *Location* | *X* | *Y* | *Z* | -|---------------+-------------------+------------+-------+-------+------| -| 1 | Hexapod - Top | -X/-Y | -0.10 | -0.10 | 1.15 | -| 2 | | -X/+Y | -0.10 | 0.10 | 1.15 | -| 3 | | +X/+Y | 0.10 | 0.10 | 1.15 | -| 4 | | +X/-Y | 0.10 | -0.10 | 1.15 | -|---------------+-------------------+------------+-------+-------+------| -| 5 | Tilt - Top | -X/-Y | -0.40 | -0.40 | 0.95 | -| 6 | | -X/+Y | -0.40 | 0.40 | 0.95 | -| 7 | | +X/+Y | 0.40 | 0.40 | 0.95 | -| 8 | | +X/-Y | 0.40 | -0.40 | 0.95 | -|---------------+-------------------+------------+-------+-------+------| -| 9 | Translation - Top | -X/-Y | -0.50 | -0.50 | 0.90 | -| 10 | | -X/+Y | -0.50 | 0.50 | 0.90 | -| 11 | | +X/+Y | 0.50 | 0.50 | 0.90 | -| 12 | | +X/-Y | 0.50 | -0.50 | 0.90 | -|---------------+-------------------+------------+-------+-------+------| -| 13 | Top Granite | -X/-Y | -0.55 | -0.50 | 0.55 | -| 14 | | -X/+Y | -0.55 | 0.50 | 0.55 | -| 15 | | +X/+Y | 0.55 | 0.50 | 0.55 | -| 16 | | +X/-Y | 0.55 | -0.50 | 0.55 | -|---------------+-------------------+------------+-------+-------+------| -| 17 | Bottom Granite | -X/-Y | -0.95 | -0.90 | 0.40 | -| 18 | | -X/+Y | -0.95 | 0.90 | 0.40 | -| 19 | | +X/+Y | 0.95 | 0.90 | 0.40 | -| 20 | | +X/-Y | 0.95 | -0.90 | 0.40 | -|---------------+-------------------+------------+-------+-------+------| -| 21 | Spindle - Top | -X/-Y | -0.20 | -0.20 | 0.85 | -| 22 | | +0/+Y | 0.00 | 0.20 | 0.85 | -| 23 | | +X/-Y | 0.20 | -0.20 | 0.85 | - -** Define positions of the accelerometers on matlab -We define the X-Y-Z position of each sensor. -Each line corresponds to one accelerometer, X-Y-Z position in meter. -#+begin_src matlab - positions = [... - -0.10, -0.10, 1.15 ; ... - -0.10, 0.10, 1.15 ; ... - 0.10, 0.10, 1.15 ; ... - 0.10, -0.10, 1.15 ; ... - -0.40, -0.40, 0.95 ; ... - -0.40, 0.40, 0.95 ; ... - 0.40, 0.40, 0.95 ; ... - 0.40, -0.40, 0.95 ; ... - -0.50, -0.50, 0.90 ; ... - -0.50, 0.50, 0.90 ; ... - 0.50, 0.50, 0.90 ; ... - 0.50, -0.50, 0.90 ; ... - -0.55, -0.50, 0.55 ; ... - -0.55, 0.50, 0.55 ; ... - 0.55, 0.50, 0.55 ; ... - 0.55, -0.50, 0.55 ; ... - -0.95, -0.90, 0.40 ; ... - -0.95, 0.90, 0.40 ; ... - 0.95, 0.90, 0.40 ; ... - 0.95, -0.90, 0.40 ; ... - -0.20, -0.20, 0.85 ; ... - 0.00, 0.20, 0.85 ; ... - 0.20, -0.20, 0.85 ]; -#+end_src - - -#+begin_src matlab - figure; - hold on; - fill3(positions(1:4, 1), positions(1:4, 2), positions(1:4, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(5:8, 1), positions(5:8, 2), positions(5:8, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(9:12, 1), positions(9:12, 2), positions(9:12, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(13:16, 1), positions(13:16, 2), positions(13:16, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(17:20, 1), positions(17:20, 2), positions(17:20, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(21:23, 1), positions(21:23, 2), positions(21:23, 3), 'k', 'FaceAlpha', 0.5) - hold off; -#+end_src - -** Import the modal vectors on matlab -*** Mode1 -#+begin_src bash :results output :exports none :eval no-export - sed -n 12,80p modal_analysis/modes_propres_narband.asc -#+end_src - -#+RESULTS: -#+begin_example - 1X+: -9.34637e-002 4.52445e-002 - 1Y+: 2.33790e-001 1.41439e-003 - 1Z+: -1.73754e-002 6.02449e-003 - 2X+: -7.42108e-002 3.91543e-002 - 2Y+: 2.41566e-001 -1.44869e-003 - 2Z+: -5.99285e-003 2.10370e-003 - 4X+: -1.02163e-001 2.79561e-002 - 4Y+: 2.29048e-001 2.89782e-002 - 4Z+: -2.85130e-002 1.77132e-004 - 5X+: -8.77132e-002 3.34081e-002 - 5Y+: 2.14182e-001 2.14655e-002 - 5Z+: -1.54521e-002 1.26682e-002 - 6X+: -7.90143e-002 2.42583e-002 - 6Y+: 2.20669e-001 2.12738e-002 - 6Z+: 4.60755e-002 4.96406e-003 - 7X+: -7.79654e-002 2.58385e-002 - 7Y+: 2.06861e-001 3.48019e-002 - 7Z+: -1.78311e-002 -1.29704e-002 - 8X+: -8.49357e-002 3.55200e-002 - 8Y+: 2.07470e-001 3.59745e-002 - 8Z+: -7.66974e-002 -3.19813e-003 - 9X+: -7.38565e-002 1.95146e-002 - 9Y+: 2.17403e-001 2.01550e-002 - 9Z+: -1.77073e-002 -3.46414e-003 - 10X+: -7.77587e-002 2.36700e-002 - 10Y+: 2.35654e-001 -2.14540e-002 - 10Z+: 7.94165e-002 -2.45897e-002 - 11X+: -8.17972e-002 2.20583e-002 - 11Y+: 2.20906e-001 -4.30164e-003 - 11Z+: -5.60520e-003 3.10187e-003 - 12X+: -8.64261e-002 3.66022e-002 - 12Y+: 2.15000e-001 -5.74661e-003 - 12Z+: -1.22622e-001 4.11767e-002 - 13X+: -4.25169e-002 1.56602e-002 - 13Y+: 5.31036e-002 -1.73951e-002 - 13Z+: -4.07130e-002 1.26884e-002 - 14X+: -3.85032e-002 1.29431e-002 - 14Y+: 5.36716e-002 -1.80868e-002 - 14Z+: 1.00367e-001 -3.48798e-002 - 15X+: -4.25524e-002 1.46363e-002 - 15Y+: 5.19668e-002 -1.69744e-002 - 15Z+: 5.89747e-003 -2.32428e-003 - 16X+: -4.31268e-002 1.38332e-002 - 16Y+: 5.07545e-002 -1.53045e-002 - 16Z+: -1.04172e-001 3.17984e-002 - 17X+: -2.69757e-002 9.07955e-003 - 17Y+: 3.07837e-002 -9.44663e-003 - 17Z+: -7.63502e-003 1.68203e-003 - 18X+: -3.00097e-002 9.23966e-003 - 18Y+: 2.83585e-002 -8.97747e-003 - 18Z+: 1.52467e-001 -4.78675e-002 - 19X+: -2.70223e-002 6.16478e-003 - 19Y+: 3.06149e-002 -6.25382e-003 - 19Z+: -4.84888e-003 1.93970e-003 - 20X+: -2.90976e-002 7.13184e-003 - 20Y+: 3.36738e-002 -7.30875e-003 - 20Z+: -1.66902e-001 3.93419e-002 - 3X+: -9.40720e-002 3.93724e-002 - 3Y+: 2.52307e-001 0.00000e+000 - 3Z+: -1.53864e-002 -9.25720e-004 - 21X+: -7.91940e-002 4.39648e-002 - 21Y+: 2.04567e-001 9.49987e-003 - 21Z+: -1.56087e-002 7.08838e-003 - 22X+: -1.01070e-001 3.13534e-002 - 22Y+: 1.92270e-001 1.80423e-002 - 22Z+: 2.93053e-003 -1.97308e-003 - 23X+: -8.86455e-002 4.29906e-002 - 23Z+: -3.38351e-002 1.81362e-003 - 23Y-: -1.90862e-001 -2.53414e-002 -#+end_example - -#+begin_src matlab - mode1 = [... - -9.34637e-002+j*4.52445e-002, +2.33790e-001+j*1.41439e-003, -1.73754e-002+j*6.02449e-003; - -7.42108e-002+j*3.91543e-002, +2.41566e-001-j*1.44869e-003, -5.99285e-003+j*2.10370e-003; - -9.40720e-002+j*3.93724e-002, +2.52307e-001+j*0.00000e+000, -1.53864e-002-j*9.25720e-004; - -1.02163e-001+j*2.79561e-002, +2.29048e-001+j*2.89782e-002, -2.85130e-002+j*1.77132e-004; - -8.77132e-002+j*3.34081e-002, +2.14182e-001+j*2.14655e-002, -1.54521e-002+j*1.26682e-002; - -7.90143e-002+j*2.42583e-002, +2.20669e-001+j*2.12738e-002, +4.60755e-002+j*4.96406e-003; - -7.79654e-002+j*2.58385e-002, +2.06861e-001+j*3.48019e-002, -1.78311e-002-j*1.29704e-002; - -8.49357e-002+j*3.55200e-002, +2.07470e-001+j*3.59745e-002, -7.66974e-002-j*3.19813e-003; - -7.38565e-002+j*1.95146e-002, +2.17403e-001+j*2.01550e-002, -1.77073e-002-j*3.46414e-003; - -7.77587e-002+j*2.36700e-002, +2.35654e-001-j*2.14540e-002, +7.94165e-002-j*2.45897e-002; - -8.17972e-002+j*2.20583e-002, +2.20906e-001-j*4.30164e-003, -5.60520e-003+j*3.10187e-003; - -8.64261e-002+j*3.66022e-002, +2.15000e-001-j*5.74661e-003, -1.22622e-001+j*4.11767e-002; - -4.25169e-002+j*1.56602e-002, +5.31036e-002-j*1.73951e-002, -4.07130e-002+j*1.26884e-002; - -3.85032e-002+j*1.29431e-002, +5.36716e-002-j*1.80868e-002, +1.00367e-001-j*3.48798e-002; - -4.25524e-002+j*1.46363e-002, +5.19668e-002-j*1.69744e-002, +5.89747e-003-j*2.32428e-003; - -4.31268e-002+j*1.38332e-002, +5.07545e-002-j*1.53045e-002, -1.04172e-001+j*3.17984e-002; - -2.69757e-002+j*9.07955e-003, +3.07837e-002-j*9.44663e-003, -7.63502e-003+j*1.68203e-003; - -3.00097e-002+j*9.23966e-003, +2.83585e-002-j*8.97747e-003, +1.52467e-001-j*4.78675e-002; - -2.70223e-002+j*6.16478e-003, +3.06149e-002-j*6.25382e-003, -4.84888e-003+j*1.93970e-003; - -2.90976e-002+j*7.13184e-003, +3.36738e-002-j*7.30875e-003, -1.66902e-001+j*3.93419e-002; - -7.91940e-002+j*4.39648e-002, +2.04567e-001+j*9.49987e-003, -1.56087e-002+j*7.08838e-003; - -1.01070e-001+j*3.13534e-002, +1.92270e-001+j*1.80423e-002, +2.93053e-003-j*1.97308e-003; - -8.86455e-002+j*4.29906e-002, +1.90862e-001+j*2.53414e-002, -3.38351e-002+j*1.81362e-003]; -#+end_src - -*** Mode2 -#+begin_src bash :results output :exports none :eval no-export - sed -n 88,156p modal_analysis/modes_propres_narband.asc -#+end_src - -#+RESULTS: -#+begin_example - 1X+: 7.56931e-002 3.61548e-002 - 1Y+: 2.07574e-001 1.69205e-004 - 1Z+: 1.29733e-002 -6.78426e-004 - 2X+: 8.58732e-002 2.54470e-002 - 2Y+: 2.07117e-001 -1.31755e-003 - 2Z+: -2.13788e-003 -1.24974e-002 - 4X+: 7.09825e-002 3.66313e-002 - 4Y+: 2.09969e-001 1.11484e-002 - 4Z+: 9.19478e-003 3.47272e-002 - 5X+: 6.23935e-002 1.02488e-002 - 5Y+: 2.30687e-001 -3.58416e-003 - 5Z+: 3.27122e-002 -5.85468e-002 - 6X+: 7.61163e-002 -2.43630e-002 - 6Y+: 2.26743e-001 -1.15334e-002 - 6Z+: -6.20205e-003 -1.21742e-001 - 7X+: 8.01824e-002 -1.94769e-002 - 7Y+: 1.97485e-001 4.50105e-002 - 7Z+: -2.21170e-002 9.77052e-002 - 8X+: 6.19294e-002 8.15075e-003 - 8Y+: 2.03864e-001 4.45835e-002 - 8Z+: 2.55133e-002 1.36137e-001 - 9X+: 4.38135e-002 7.30537e-002 - 9Y+: 2.28426e-001 -6.58868e-003 - 9Z+: 1.16313e-002 5.09427e-004 - 10X+: 5.45770e-002 4.34251e-002 - 10Y+: 2.50823e-001 0.00000e+000 - 10Z+: -4.63460e-002 -4.76868e-002 - 11X+: 5.50987e-002 4.26178e-002 - 11Y+: 2.29394e-001 5.78236e-002 - 11Z+: 1.90158e-002 1.09139e-002 - 12X+: 4.98867e-002 7.30190e-002 - 12Y+: 2.07871e-001 4.57750e-002 - 12Z+: 6.69433e-002 9.00315e-002 - 13X+: 2.48819e-002 3.03222e-002 - 13Y+: -2.56046e-002 -3.34132e-002 - 13Z+: 2.13260e-002 2.58544e-002 - 14X+: 2.45706e-002 2.60221e-002 - 14Y+: -2.57723e-002 -3.35612e-002 - 14Z+: -5.71282e-002 -6.61562e-002 - 15X+: 2.68196e-002 2.83888e-002 - 15Y+: -2.57263e-002 -3.29627e-002 - 15Z+: -2.11722e-003 -3.37239e-003 - 16X+: 2.51442e-002 3.32558e-002 - 16Y+: -2.54372e-002 -3.25062e-002 - 16Z+: 5.65780e-002 7.64142e-002 - 17X+: 1.62437e-002 1.94534e-002 - 17Y+: -1.31293e-002 -2.05924e-002 - 17Z+: 1.05274e-003 3.59474e-003 - 18X+: 1.83431e-002 2.03836e-002 - 18Y+: -1.16818e-002 -1.86334e-002 - 18Z+: -8.66632e-002 -1.08216e-001 - 19X+: 1.62553e-002 1.79588e-002 - 19Y+: -1.28857e-002 -1.90512e-002 - 19Z+: 6.25653e-003 4.97733e-003 - 20X+: 1.63830e-002 2.03943e-002 - 20Y+: -1.48941e-002 -2.11717e-002 - 20Z+: 8.68045e-002 1.16491e-001 - 3X+: 8.17201e-002 2.36079e-002 - 3Y+: 2.15927e-001 1.61300e-002 - 3Z+: -5.48456e-004 2.55691e-002 - 21X+: 6.79204e-002 -5.55513e-002 - 21Y+: 2.32871e-001 2.33389e-002 - 21Z+: 1.34345e-002 -2.31815e-002 - 22X+: 4.02414e-002 -8.38957e-002 - 22Y+: 2.35273e-001 2.73256e-002 - 22Z+: -8.51632e-003 -7.49635e-003 - 23X+: 6.18293e-002 -5.99671e-002 - 23Z+: 1.63533e-002 6.09161e-002 - 23Y-: -2.37693e-001 -4.34204e-002 -#+end_example - -#+begin_src matlab - mode2 = [... - +7.56931e-002+j*3.61548e-002, +2.07574e-001+j*1.69205e-004, +1.29733e-002-j*6.78426e-004; - +8.58732e-002+j*2.54470e-002, +2.07117e-001-j*1.31755e-003, -2.13788e-003-j*1.24974e-002; - +8.17201e-002+j*2.36079e-002, +2.15927e-001+j*1.61300e-002, -5.48456e-004+j*2.55691e-002; - +7.09825e-002+j*3.66313e-002, +2.09969e-001+j*1.11484e-002, +9.19478e-003+j*3.47272e-002; - +6.23935e-002+j*1.02488e-002, +2.30687e-001-j*3.58416e-003, +3.27122e-002-j*5.85468e-002; - +7.61163e-002-j*2.43630e-002, +2.26743e-001-j*1.15334e-002, -6.20205e-003-j*1.21742e-001; - +8.01824e-002-j*1.94769e-002, +1.97485e-001+j*4.50105e-002, -2.21170e-002+j*9.77052e-002; - +6.19294e-002+j*8.15075e-003, +2.03864e-001+j*4.45835e-002, +2.55133e-002+j*1.36137e-001; - +4.38135e-002+j*7.30537e-002, +2.28426e-001-j*6.58868e-003, +1.16313e-002+j*5.09427e-004; - +5.45770e-002+j*4.34251e-002, +2.50823e-001+j*0.00000e+000, -4.63460e-002-j*4.76868e-002; - +5.50987e-002+j*4.26178e-002, +2.29394e-001+j*5.78236e-002, +1.90158e-002+j*1.09139e-002; - +4.98867e-002+j*7.30190e-002, +2.07871e-001+j*4.57750e-002, +6.69433e-002+j*9.00315e-002; - +2.48819e-002+j*3.03222e-002, -2.56046e-002-j*3.34132e-002, +2.13260e-002+j*2.58544e-002; - +2.45706e-002+j*2.60221e-002, -2.57723e-002-j*3.35612e-002, -5.71282e-002-j*6.61562e-002; - +2.68196e-002+j*2.83888e-002, -2.57263e-002-j*3.29627e-002, -2.11722e-003-j*3.37239e-003; - +2.51442e-002+j*3.32558e-002, -2.54372e-002-j*3.25062e-002, +5.65780e-002+j*7.64142e-002; - +1.62437e-002+j*1.94534e-002, -1.31293e-002-j*2.05924e-002, +1.05274e-003+j*3.59474e-003; - +1.83431e-002+j*2.03836e-002, -1.16818e-002-j*1.86334e-002, -8.66632e-002-j*1.08216e-001; - +1.62553e-002+j*1.79588e-002, -1.28857e-002-j*1.90512e-002, +6.25653e-003+j*4.97733e-003; - +1.63830e-002+j*2.03943e-002, -1.48941e-002-j*2.11717e-002, +8.68045e-002+j*1.16491e-001; - +6.79204e-002-j*5.55513e-002, +2.32871e-001+j*2.33389e-002, +1.34345e-002-j*2.31815e-002; - +4.02414e-002-j*8.38957e-002, +2.35273e-001+j*2.73256e-002, -8.51632e-003-j*7.49635e-003; - +6.18293e-002-j*5.99671e-002, +2.37693e-001+j*4.34204e-002, +1.63533e-002+j*6.09161e-002] -#+end_src - -*** Mode3 -#+begin_src bash :results output :exports none :eval no-export - sed -n 164,232p modal_analysis/modes_propres_narband.asc -#+end_src - -#+RESULTS: -#+begin_example - 1X+: 1.34688e-001 -6.65071e-002 - 1Y+: 1.55316e-002 1.01277e-002 - 1Z+: -5.88466e-002 1.14294e-002 - 2X+: 1.53934e-001 -9.76990e-003 - 2Y+: 7.17487e-003 1.11925e-002 - 2Z+: -4.57205e-002 7.26573e-003 - 4X+: 1.37298e-001 -5.24661e-002 - 4Y+: 1.19427e-003 -5.39240e-002 - 4Z+: -1.25915e-002 5.38133e-003 - 5X+: 2.43192e-001 -3.17374e-002 - 5Y+: -2.15730e-001 -7.69941e-004 - 5Z+: -1.56268e-001 1.44118e-002 - 6X+: -7.27705e-002 -3.54943e-003 - 6Y+: -2.47706e-001 2.66480e-003 - 6Z+: -1.21590e-001 1.06054e-002 - 7X+: -7.25870e-002 -4.62024e-003 - 7Y+: 2.27073e-001 -3.69315e-002 - 7Z+: 1.22611e-001 -6.67337e-003 - 8X+: 2.32731e-001 -2.85516e-002 - 8Y+: 2.35389e-001 -3.81905e-002 - 8Z+: 5.35574e-002 4.30394e-004 - 9X+: 2.64170e-001 -2.67367e-002 - 9Y+: -2.56227e-001 3.97957e-005 - 9Z+: -1.95398e-001 2.23549e-002 - 10X+: -1.66953e-002 -7.95698e-003 - 10Y+: -2.66547e-001 -2.17687e-002 - 10Z+: 1.56278e-002 2.23786e-003 - 11X+: -3.42364e-002 -9.30205e-003 - 11Y+: 2.52340e-001 -7.47237e-003 - 11Z+: -9.51643e-004 3.64798e-003 - 12X+: 2.97574e-001 0.00000e+000 - 12Y+: 2.23170e-001 -1.37831e-002 - 12Z+: 1.06266e-001 2.30324e-003 - 13X+: 2.67178e-002 -4.15723e-004 - 13Y+: 6.75423e-003 -2.18428e-003 - 13Z+: -1.69423e-002 3.12395e-003 - 14X+: -1.12283e-002 2.86316e-004 - 14Y+: 5.08225e-003 -2.14053e-003 - 14Z+: 2.18339e-002 -3.25204e-003 - 15X+: -1.17948e-002 6.82873e-004 - 15Y+: 1.94914e-002 -2.42151e-003 - 15Z+: 2.68660e-003 -2.92104e-004 - 16X+: 1.19490e-002 1.72236e-005 - 16Y+: 1.83552e-002 -2.71289e-003 - 16Z+: -2.70914e-002 4.84164e-003 - 17X+: 1.00173e-002 -5.80552e-005 - 17Y+: -3.87262e-003 -1.19607e-003 - 17Z+: -8.53809e-003 1.48424e-003 - 18X+: -1.22262e-002 5.13096e-004 - 18Y+: -5.73905e-003 -1.07659e-003 - 18Z+: 3.51730e-002 -6.13814e-003 - 19X+: -1.43735e-002 -4.78552e-004 - 19Y+: 2.31135e-002 -6.30554e-004 - 19Z+: 1.80171e-003 -1.98835e-004 - 20X+: 9.17792e-003 5.36661e-004 - 20Y+: 2.18969e-002 -5.81759e-004 - 20Z+: -3.72117e-002 5.35813e-003 - 3X+: 1.61551e-001 1.65478e-002 - 3Y+: -4.12527e-004 -5.60909e-002 - 3Z+: -9.00640e-003 3.50754e-003 - 21X+: 3.38754e-002 -3.38703e-002 - 21Y+: -2.20843e-002 2.78581e-002 - 21Z+: -8.79541e-002 -3.67473e-003 - 22X+: 3.93064e-002 4.69476e-002 - 22Y+: -1.69132e-002 -1.04606e-002 - 22Z+: -1.85351e-002 1.33750e-003 - 23X+: 3.60396e-002 -2.46238e-002 - 23Z+: 3.57722e-003 3.64827e-003 - 23Y-: 1.92038e-002 6.65895e-002 -#+end_example - -#+begin_src matlab - mode3 = [... - +1.34688e-001-j*6.65071e-002, +1.55316e-002+j*1.01277e-002, -5.88466e-002+j*1.14294e-002; - +1.53934e-001-j*9.76990e-003, +7.17487e-003+j*1.11925e-002, -4.57205e-002+j*7.26573e-003; - +1.61551e-001+j*1.65478e-002, -4.12527e-004-j*5.60909e-002, -9.00640e-003+j*3.50754e-003; - +1.37298e-001-j*5.24661e-002, +1.19427e-003-j*5.39240e-002, -1.25915e-002+j*5.38133e-003; - +2.43192e-001-j*3.17374e-002, -2.15730e-001-j*7.69941e-004, -1.56268e-001+j*1.44118e-002; - -7.27705e-002-j*3.54943e-003, -2.47706e-001+j*2.66480e-003, -1.21590e-001+j*1.06054e-002; - -7.25870e-002-j*4.62024e-003, +2.27073e-001-j*3.69315e-002, +1.22611e-001-j*6.67337e-003; - +2.32731e-001-j*2.85516e-002, +2.35389e-001-j*3.81905e-002, +5.35574e-002+j*4.30394e-004; - +2.64170e-001-j*2.67367e-002, -2.56227e-001+j*3.97957e-005, -1.95398e-001+j*2.23549e-002; - -1.66953e-002-j*7.95698e-003, -2.66547e-001-j*2.17687e-002, +1.56278e-002+j*2.23786e-003; - -3.42364e-002-j*9.30205e-003, +2.52340e-001-j*7.47237e-003, -9.51643e-004+j*3.64798e-003; - +2.97574e-001+j*0.00000e+000, +2.23170e-001-j*1.37831e-002, +1.06266e-001+j*2.30324e-003; - +2.67178e-002-j*4.15723e-004, +6.75423e-003-j*2.18428e-003, -1.69423e-002+j*3.12395e-003; - -1.12283e-002+j*2.86316e-004, +5.08225e-003-j*2.14053e-003, +2.18339e-002-j*3.25204e-003; - -1.17948e-002+j*6.82873e-004, +1.94914e-002-j*2.42151e-003, +2.68660e-003-j*2.92104e-004; - +1.19490e-002+j*1.72236e-005, +1.83552e-002-j*2.71289e-003, -2.70914e-002+j*4.84164e-003; - +1.00173e-002-j*5.80552e-005, -3.87262e-003-j*1.19607e-003, -8.53809e-003+j*1.48424e-003; - -1.22262e-002+j*5.13096e-004, -5.73905e-003-j*1.07659e-003, +3.51730e-002-j*6.13814e-003; - -1.43735e-002-j*4.78552e-004, +2.31135e-002-j*6.30554e-004, +1.80171e-003-j*1.98835e-004; - +9.17792e-003+j*5.36661e-004, +2.18969e-002-j*5.81759e-004, -3.72117e-002+j*5.35813e-003; - +3.38754e-002-j*3.38703e-002, -2.20843e-002+j*2.78581e-002, -8.79541e-002-j*3.67473e-003; - +3.93064e-002+j*4.69476e-002, -1.69132e-002-j*1.04606e-002, -1.85351e-002+j*1.33750e-003; - +3.60396e-002-j*2.46238e-002, -1.92038e-002-j*6.65895e-002, +3.57722e-003+j*3.64827e-003]; -#+end_src - -*** Mode4 -#+begin_src bash :results output :exports none :eval no-export - sed -n 240,308p modal_analysis/modes_propres_narband.asc -#+end_src - -#+RESULTS: -#+begin_example - 1X+: -1.02501e-001 -1.43802e-001 - 1Y+: -1.07971e-001 5.61418e-004 - 1Z+: 1.87145e-001 -1.03605e-001 - 2X+: -9.44764e-002 -1.36856e-001 - 2Y+: -1.04428e-001 5.27790e-003 - 2Z+: 1.60710e-001 -7.74212e-002 - 4X+: -9.17242e-002 -1.36656e-001 - 4Y+: -1.34249e-001 -1.03884e-002 - 4Z+: 1.92123e-001 -1.25627e-001 - 5X+: 1.05875e-002 -1.03886e-001 - 5Y+: -8.26338e-002 3.58498e-002 - 5Z+: 2.55819e-001 -6.94290e-003 - 6X+: -4.58970e-002 -1.33904e-002 - 6Y+: -9.41660e-002 4.99682e-002 - 6Z+: 1.28276e-001 4.59685e-002 - 7X+: -6.01521e-002 -1.30165e-002 - 7Y+: 2.56439e-003 -6.78141e-002 - 7Z+: 5.03428e-002 -1.59420e-001 - 8X+: -1.00895e-002 -8.80550e-002 - 8Y+: 1.26327e-002 -8.14444e-002 - 8Z+: 1.59506e-001 -2.05360e-001 - 9X+: -3.04658e-003 -1.57921e-001 - 9Y+: -8.23501e-002 4.82748e-002 - 9Z+: 1.69315e-001 1.22804e-002 - 10X+: -8.25875e-002 -7.31038e-002 - 10Y+: -1.08668e-001 3.56364e-002 - 10Z+: 8.28567e-002 -4.49596e-003 - 11X+: -1.06792e-001 -6.95394e-002 - 11Y+: 3.77195e-002 -7.65410e-002 - 11Z+: 8.00590e-003 -2.32461e-002 - 12X+: -4.84292e-002 -1.45790e-001 - 12Y+: 1.03862e-002 -7.31212e-002 - 12Z+: 1.78122e-001 -1.00939e-001 - 13X+: -3.49891e-002 -6.20969e-003 - 13Y+: -1.18504e-002 -1.94225e-002 - 13Z+: 4.13007e-002 7.67087e-003 - 14X+: -3.55795e-002 1.16708e-003 - 14Y+: -1.68128e-002 -1.82344e-002 - 14Z+: 3.92416e-002 -3.64434e-002 - 15X+: -3.45304e-002 3.78185e-003 - 15Y+: -7.62559e-003 -2.24241e-002 - 15Z+: 6.28286e-003 -1.32711e-002 - 16X+: -9.95646e-003 -6.04395e-003 - 16Y+: -8.73465e-003 -2.20807e-002 - 16Z+: 3.56946e-002 1.69231e-002 - 17X+: -9.32661e-003 -5.51944e-003 - 17Y+: -1.91087e-002 -9.09191e-003 - 17Z+: 4.04981e-002 8.38685e-004 - 18X+: -2.84456e-002 4.02762e-003 - 18Y+: -2.20044e-002 -8.86197e-003 - 18Z+: 4.43051e-002 -5.21033e-002 - 19X+: -3.27019e-002 3.59765e-003 - 19Y+: 2.93163e-003 -2.05064e-002 - 19Z+: -1.77289e-002 -1.29477e-002 - 20X+: -1.08474e-002 -5.78419e-003 - 20Y+: 3.86759e-003 -1.91642e-002 - 20Z+: 2.10135e-002 3.18051e-002 - 3X+: -9.11657e-002 -1.36611e-001 - 3Y+: -1.78165e-001 -3.47193e-002 - 3Z+: 2.37121e-001 -4.96494e-002 - 21X+: -1.34808e-002 -9.69121e-003 - 21Y+: 1.25218e-002 -2.71411e-002 - 21Z+: 2.76673e-001 0.00000e+000 - 22X+: 1.96744e-003 4.90797e-003 - 22Y+: -9.82609e-004 -3.31065e-002 - 22Z+: 1.79246e-001 -3.33238e-002 - 23X+: -1.08728e-002 -8.80278e-003 - 23Z+: 2.30814e-001 -8.33151e-002 - 23Y-: 1.15217e-002 4.01143e-002 -#+end_example - -#+begin_src matlab - mode4 = [... - -1.02501e-001-j*1.43802e-001, -1.07971e-001+j*5.61418e-004, +1.87145e-001-j*1.03605e-001; - -9.44764e-002-j*1.36856e-001, -1.04428e-001+j*5.27790e-003, +1.60710e-001-j*7.74212e-002; - -9.11657e-002-j*1.36611e-001, -1.78165e-001-j*3.47193e-002, +2.37121e-001-j*4.96494e-002; - -9.17242e-002-j*1.36656e-001, -1.34249e-001-j*1.03884e-002, +1.92123e-001-j*1.25627e-001; - +1.05875e-002-j*1.03886e-001, -8.26338e-002+j*3.58498e-002, +2.55819e-001-j*6.94290e-003; - -4.58970e-002-j*1.33904e-002, -9.41660e-002+j*4.99682e-002, +1.28276e-001+j*4.59685e-002; - -6.01521e-002-j*1.30165e-002, +2.56439e-003-j*6.78141e-002, +5.03428e-002-j*1.59420e-001; - -1.00895e-002-j*8.80550e-002, +1.26327e-002-j*8.14444e-002, +1.59506e-001-j*2.05360e-001; - -3.04658e-003-j*1.57921e-001, -8.23501e-002+j*4.82748e-002, +1.69315e-001+j*1.22804e-002; - -8.25875e-002-j*7.31038e-002, -1.08668e-001+j*3.56364e-002, +8.28567e-002-j*4.49596e-003; - -1.06792e-001-j*6.95394e-002, +3.77195e-002-j*7.65410e-002, +8.00590e-003-j*2.32461e-002; - -4.84292e-002-j*1.45790e-001, +1.03862e-002-j*7.31212e-002, +1.78122e-001-j*1.00939e-001; - -3.49891e-002-j*6.20969e-003, -1.18504e-002-j*1.94225e-002, +4.13007e-002+j*7.67087e-003; - -3.55795e-002+j*1.16708e-003, -1.68128e-002-j*1.82344e-002, +3.92416e-002-j*3.64434e-002; - -3.45304e-002+j*3.78185e-003, -7.62559e-003-j*2.24241e-002, +6.28286e-003-j*1.32711e-002; - -9.95646e-003-j*6.04395e-003, -8.73465e-003-j*2.20807e-002, +3.56946e-002+j*1.69231e-002; - -9.32661e-003-j*5.51944e-003, -1.91087e-002-j*9.09191e-003, +4.04981e-002+j*8.38685e-004; - -2.84456e-002+j*4.02762e-003, -2.20044e-002-j*8.86197e-003, +4.43051e-002-j*5.21033e-002; - -3.27019e-002+j*3.59765e-003, +2.93163e-003-j*2.05064e-002, -1.77289e-002-j*1.29477e-002; - -1.08474e-002-j*5.78419e-003, +3.86759e-003-j*1.91642e-002, +2.10135e-002+j*3.18051e-002; - -1.34808e-002-j*9.69121e-003, +1.25218e-002-j*2.71411e-002, +2.76673e-001+j*0.00000e+000; - +1.96744e-003+j*4.90797e-003, -9.82609e-004-j*3.31065e-002, +1.79246e-001-j*3.33238e-002; - -1.08728e-002-j*8.80278e-003, -1.15217e-002-j*4.01143e-002, +2.30814e-001-j*8.33151e-002]; -#+end_src - -*** All modes -#+begin_src matlab -mode_shapes = zeros(23, 3, 10); - -mode_shapes(:, :, 1) = [... --9.34637e-002+j*4.52445e-002, +2.33790e-001+j*1.41439e-003, -1.73754e-002+j*6.02449e-003; --7.42108e-002+j*3.91543e-002, +2.41566e-001-j*1.44869e-003, -5.99285e-003+j*2.10370e-003; --9.40720e-002+j*3.93724e-002, +2.52307e-001+j*0.00000e+000, -1.53864e-002-j*9.25720e-004; --1.02163e-001+j*2.79561e-002, +2.29048e-001+j*2.89782e-002, -2.85130e-002+j*1.77132e-004; --8.77132e-002+j*3.34081e-002, +2.14182e-001+j*2.14655e-002, -1.54521e-002+j*1.26682e-002; --7.90143e-002+j*2.42583e-002, +2.20669e-001+j*2.12738e-002, +4.60755e-002+j*4.96406e-003; --7.79654e-002+j*2.58385e-002, +2.06861e-001+j*3.48019e-002, -1.78311e-002-j*1.29704e-002; --8.49357e-002+j*3.55200e-002, +2.07470e-001+j*3.59745e-002, -7.66974e-002-j*3.19813e-003; --7.38565e-002+j*1.95146e-002, +2.17403e-001+j*2.01550e-002, -1.77073e-002-j*3.46414e-003; --7.77587e-002+j*2.36700e-002, +2.35654e-001-j*2.14540e-002, +7.94165e-002-j*2.45897e-002; --8.17972e-002+j*2.20583e-002, +2.20906e-001-j*4.30164e-003, -5.60520e-003+j*3.10187e-003; --8.64261e-002+j*3.66022e-002, +2.15000e-001-j*5.74661e-003, -1.22622e-001+j*4.11767e-002; --4.25169e-002+j*1.56602e-002, +5.31036e-002-j*1.73951e-002, -4.07130e-002+j*1.26884e-002; --3.85032e-002+j*1.29431e-002, +5.36716e-002-j*1.80868e-002, +1.00367e-001-j*3.48798e-002; --4.25524e-002+j*1.46363e-002, +5.19668e-002-j*1.69744e-002, +5.89747e-003-j*2.32428e-003; --4.31268e-002+j*1.38332e-002, +5.07545e-002-j*1.53045e-002, -1.04172e-001+j*3.17984e-002; --2.69757e-002+j*9.07955e-003, +3.07837e-002-j*9.44663e-003, -7.63502e-003+j*1.68203e-003; --3.00097e-002+j*9.23966e-003, +2.83585e-002-j*8.97747e-003, +1.52467e-001-j*4.78675e-002; --2.70223e-002+j*6.16478e-003, +3.06149e-002-j*6.25382e-003, -4.84888e-003+j*1.93970e-003; --2.90976e-002+j*7.13184e-003, +3.36738e-002-j*7.30875e-003, -1.66902e-001+j*3.93419e-002; --7.91940e-002+j*4.39648e-002, +2.04567e-001+j*9.49987e-003, -1.56087e-002+j*7.08838e-003; --1.01070e-001+j*3.13534e-002, +1.92270e-001+j*1.80423e-002, +2.93053e-003-j*1.97308e-003; --8.86455e-002+j*4.29906e-002, -3.38351e-002+j*1.81362e-003, +1.90862e-001+j*2.53414e-002]; - -mode_shapes(:, :, 2) = [... -+7.56931e-002+j*3.61548e-002, +2.07574e-001+j*1.69205e-004, +1.29733e-002-j*6.78426e-004; -+8.58732e-002+j*2.54470e-002, +2.07117e-001-j*1.31755e-003, -2.13788e-003-j*1.24974e-002; -+8.17201e-002+j*2.36079e-002, +2.15927e-001+j*1.61300e-002, -5.48456e-004+j*2.55691e-002; -+7.09825e-002+j*3.66313e-002, +2.09969e-001+j*1.11484e-002, +9.19478e-003+j*3.47272e-002; -+6.23935e-002+j*1.02488e-002, +2.30687e-001-j*3.58416e-003, +3.27122e-002-j*5.85468e-002; -+7.61163e-002-j*2.43630e-002, +2.26743e-001-j*1.15334e-002, -6.20205e-003-j*1.21742e-001; -+8.01824e-002-j*1.94769e-002, +1.97485e-001+j*4.50105e-002, -2.21170e-002+j*9.77052e-002; -+6.19294e-002+j*8.15075e-003, +2.03864e-001+j*4.45835e-002, +2.55133e-002+j*1.36137e-001; -+4.38135e-002+j*7.30537e-002, +2.28426e-001-j*6.58868e-003, +1.16313e-002+j*5.09427e-004; -+5.45770e-002+j*4.34251e-002, +2.50823e-001+j*0.00000e+000, -4.63460e-002-j*4.76868e-002; -+5.50987e-002+j*4.26178e-002, +2.29394e-001+j*5.78236e-002, +1.90158e-002+j*1.09139e-002; -+4.98867e-002+j*7.30190e-002, +2.07871e-001+j*4.57750e-002, +6.69433e-002+j*9.00315e-002; -+2.48819e-002+j*3.03222e-002, -2.56046e-002-j*3.34132e-002, +2.13260e-002+j*2.58544e-002; -+2.45706e-002+j*2.60221e-002, -2.57723e-002-j*3.35612e-002, -5.71282e-002-j*6.61562e-002; -+2.68196e-002+j*2.83888e-002, -2.57263e-002-j*3.29627e-002, -2.11722e-003-j*3.37239e-003; -+2.51442e-002+j*3.32558e-002, -2.54372e-002-j*3.25062e-002, +5.65780e-002+j*7.64142e-002; -+1.62437e-002+j*1.94534e-002, -1.31293e-002-j*2.05924e-002, +1.05274e-003+j*3.59474e-003; -+1.83431e-002+j*2.03836e-002, -1.16818e-002-j*1.86334e-002, -8.66632e-002-j*1.08216e-001; -+1.62553e-002+j*1.79588e-002, -1.28857e-002-j*1.90512e-002, +6.25653e-003+j*4.97733e-003; -+1.63830e-002+j*2.03943e-002, -1.48941e-002-j*2.11717e-002, +8.68045e-002+j*1.16491e-001; -+6.79204e-002-j*5.55513e-002, +2.32871e-001+j*2.33389e-002, +1.34345e-002-j*2.31815e-002; -+4.02414e-002-j*8.38957e-002, +2.35273e-001+j*2.73256e-002, -8.51632e-003-j*7.49635e-003; -+6.18293e-002-j*5.99671e-002, +1.63533e-002+j*6.09161e-002, +2.37693e-001+j*4.34204e-002]; - -mode_shapes(:, :, 3) = [... -+1.34688e-001-j*6.65071e-002, +1.55316e-002+j*1.01277e-002, -5.88466e-002+j*1.14294e-002; -+1.53934e-001-j*9.76990e-003, +7.17487e-003+j*1.11925e-002, -4.57205e-002+j*7.26573e-003; -+1.61551e-001+j*1.65478e-002, -4.12527e-004-j*5.60909e-002, -9.00640e-003+j*3.50754e-003; -+1.37298e-001-j*5.24661e-002, +1.19427e-003-j*5.39240e-002, -1.25915e-002+j*5.38133e-003; -+2.43192e-001-j*3.17374e-002, -2.15730e-001-j*7.69941e-004, -1.56268e-001+j*1.44118e-002; --7.27705e-002-j*3.54943e-003, -2.47706e-001+j*2.66480e-003, -1.21590e-001+j*1.06054e-002; --7.25870e-002-j*4.62024e-003, +2.27073e-001-j*3.69315e-002, +1.22611e-001-j*6.67337e-003; -+2.32731e-001-j*2.85516e-002, +2.35389e-001-j*3.81905e-002, +5.35574e-002+j*4.30394e-004; -+2.64170e-001-j*2.67367e-002, -2.56227e-001+j*3.97957e-005, -1.95398e-001+j*2.23549e-002; --1.66953e-002-j*7.95698e-003, -2.66547e-001-j*2.17687e-002, +1.56278e-002+j*2.23786e-003; --3.42364e-002-j*9.30205e-003, +2.52340e-001-j*7.47237e-003, -9.51643e-004+j*3.64798e-003; -+2.97574e-001+j*0.00000e+000, +2.23170e-001-j*1.37831e-002, +1.06266e-001+j*2.30324e-003; -+2.67178e-002-j*4.15723e-004, +6.75423e-003-j*2.18428e-003, -1.69423e-002+j*3.12395e-003; --1.12283e-002+j*2.86316e-004, +5.08225e-003-j*2.14053e-003, +2.18339e-002-j*3.25204e-003; --1.17948e-002+j*6.82873e-004, +1.94914e-002-j*2.42151e-003, +2.68660e-003-j*2.92104e-004; -+1.19490e-002+j*1.72236e-005, +1.83552e-002-j*2.71289e-003, -2.70914e-002+j*4.84164e-003; -+1.00173e-002-j*5.80552e-005, -3.87262e-003-j*1.19607e-003, -8.53809e-003+j*1.48424e-003; --1.22262e-002+j*5.13096e-004, -5.73905e-003-j*1.07659e-003, +3.51730e-002-j*6.13814e-003; --1.43735e-002-j*4.78552e-004, +2.31135e-002-j*6.30554e-004, +1.80171e-003-j*1.98835e-004; -+9.17792e-003+j*5.36661e-004, +2.18969e-002-j*5.81759e-004, -3.72117e-002+j*5.35813e-003; -+3.38754e-002-j*3.38703e-002, -2.20843e-002+j*2.78581e-002, -8.79541e-002-j*3.67473e-003; -+3.93064e-002+j*4.69476e-002, -1.69132e-002-j*1.04606e-002, -1.85351e-002+j*1.33750e-003; -+3.60396e-002-j*2.46238e-002, +3.57722e-003+j*3.64827e-003, -1.92038e-002-j*6.65895e-002]; - -mode_shapes(:, :, 4) = [... --1.02501e-001-j*1.43802e-001, -1.07971e-001+j*5.61418e-004, +1.87145e-001-j*1.03605e-001; --9.44764e-002-j*1.36856e-001, -1.04428e-001+j*5.27790e-003, +1.60710e-001-j*7.74212e-002; --9.11657e-002-j*1.36611e-001, -1.78165e-001-j*3.47193e-002, +2.37121e-001-j*4.96494e-002; --9.17242e-002-j*1.36656e-001, -1.34249e-001-j*1.03884e-002, +1.92123e-001-j*1.25627e-001; -+1.05875e-002-j*1.03886e-001, -8.26338e-002+j*3.58498e-002, +2.55819e-001-j*6.94290e-003; --4.58970e-002-j*1.33904e-002, -9.41660e-002+j*4.99682e-002, +1.28276e-001+j*4.59685e-002; --6.01521e-002-j*1.30165e-002, +2.56439e-003-j*6.78141e-002, +5.03428e-002-j*1.59420e-001; --1.00895e-002-j*8.80550e-002, +1.26327e-002-j*8.14444e-002, +1.59506e-001-j*2.05360e-001; --3.04658e-003-j*1.57921e-001, -8.23501e-002+j*4.82748e-002, +1.69315e-001+j*1.22804e-002; --8.25875e-002-j*7.31038e-002, -1.08668e-001+j*3.56364e-002, +8.28567e-002-j*4.49596e-003; --1.06792e-001-j*6.95394e-002, +3.77195e-002-j*7.65410e-002, +8.00590e-003-j*2.32461e-002; --4.84292e-002-j*1.45790e-001, +1.03862e-002-j*7.31212e-002, +1.78122e-001-j*1.00939e-001; --3.49891e-002-j*6.20969e-003, -1.18504e-002-j*1.94225e-002, +4.13007e-002+j*7.67087e-003; --3.55795e-002+j*1.16708e-003, -1.68128e-002-j*1.82344e-002, +3.92416e-002-j*3.64434e-002; --3.45304e-002+j*3.78185e-003, -7.62559e-003-j*2.24241e-002, +6.28286e-003-j*1.32711e-002; --9.95646e-003-j*6.04395e-003, -8.73465e-003-j*2.20807e-002, +3.56946e-002+j*1.69231e-002; --9.32661e-003-j*5.51944e-003, -1.91087e-002-j*9.09191e-003, +4.04981e-002+j*8.38685e-004; --2.84456e-002+j*4.02762e-003, -2.20044e-002-j*8.86197e-003, +4.43051e-002-j*5.21033e-002; --3.27019e-002+j*3.59765e-003, +2.93163e-003-j*2.05064e-002, -1.77289e-002-j*1.29477e-002; --1.08474e-002-j*5.78419e-003, +3.86759e-003-j*1.91642e-002, +2.10135e-002+j*3.18051e-002; --1.34808e-002-j*9.69121e-003, +1.25218e-002-j*2.71411e-002, +2.76673e-001+j*0.00000e+000; -+1.96744e-003+j*4.90797e-003, -9.82609e-004-j*3.31065e-002, +1.79246e-001-j*3.33238e-002; --1.08728e-002-j*8.80278e-003, +2.30814e-001-j*8.33151e-002, -1.15217e-002-j*4.01143e-002]; - -mode_shapes(:, :, 5) = [... -+3.55328e-001+j*0.00000e+000, +6.67612e-002+j*5.48020e-002, +3.03237e-002+j*5.29473e-004; -+3.16372e-001-j*3.84091e-002, +5.27472e-002+j*5.88474e-002, +2.86305e-002-j*1.74805e-002; -+3.00803e-001-j*1.36309e-002, +7.04883e-002+j*1.24492e-001, +7.23329e-002+j*2.33738e-002; -+3.32527e-001-j*2.26876e-004, +9.82263e-002+j*1.20397e-001, +9.86580e-002+j*3.55048e-002; -+4.96498e-002+j*2.31008e-002, +9.79716e-002+j*1.42500e-002, -1.15121e-001-j*3.59085e-002; -+1.41924e-001+j*2.16209e-002, +8.76030e-002+j*6.39650e-003, -8.75727e-002-j*3.71261e-002; -+1.41522e-001+j*1.96964e-002, -1.01959e-001+j*4.10992e-004, +2.14744e-001+j*4.91249e-002; -+4.33170e-002+j*1.84481e-002, -8.24640e-002+j*3.42475e-003, +2.32281e-001+j*5.40699e-002; -+1.47782e-001+j*4.93091e-002, +8.75397e-002+j*7.75318e-004, -6.80833e-002-j*9.72902e-003; -+2.00055e-001+j*3.81689e-002, +8.06886e-002+j*1.19008e-002, -1.40810e-002-j*1.12625e-002; -+1.96526e-001+j*3.87737e-002, -8.42766e-002+j*9.20233e-003, +1.02951e-001+j*3.37680e-002; -+1.25035e-001+j*4.67796e-002, -8.81307e-002+j*5.81039e-004, +7.94320e-002+j*2.19736e-002; -+2.03946e-002+j*2.50162e-002, +7.93788e-002-j*1.40794e-002, -4.15470e-002+j*4.95855e-004; -+6.56876e-002-j*2.14826e-002, +8.21523e-002-j*1.94792e-002, +3.44089e-002+j*2.32727e-003; -+5.98960e-002-j*2.17160e-002, +4.74914e-002+j*2.31386e-002, +3.58704e-002+j*1.13591e-003; -+1.91580e-002+j*2.15329e-002, +5.14631e-002+j*1.70019e-002, -3.90820e-002-j*9.20853e-003; -+8.98876e-003+j*2.56390e-002, +7.93497e-002-j*2.34846e-002, -5.61039e-002-j*3.03271e-003; -+5.72051e-002-j*2.29477e-002, +8.76985e-002-j*2.73606e-002, +5.13896e-002+j*8.58341e-003; -+6.71099e-002-j*2.67997e-002, +1.80119e-002+j*4.02601e-002, +6.40092e-002+j*7.11273e-003; -+1.48349e-002+j*2.57533e-002, +1.35189e-002+j*3.69351e-002, -3.31024e-002-j*1.65471e-002; -+2.52156e-002-j*4.65138e-003, +7.94380e-004+j*1.56790e-002, +1.01067e-002-j*3.35468e-003; -+3.30841e-002+j*6.73531e-003, +1.69827e-004+j*9.48996e-003, +8.16746e-002+j*1.39885e-002; -+2.91404e-002-j*2.43138e-003, +1.38761e-001+j*3.67410e-002, -4.17833e-003+j*8.35629e-004]; - -mode_shapes(:, :, 6) = [... -+3.76055e-001-j*2.00477e-002, -2.18528e-002-j*2.46738e-001, -2.01369e-002-j*2.48481e-002; -+3.73870e-001-j*6.46353e-002, -3.66940e-002-j*2.49113e-001, -9.20410e-002-j*2.72520e-002; -+3.71070e-001-j*4.42411e-003, +5.79596e-002-j*2.58311e-001, +2.62275e-003+j*9.26708e-003; -+3.82440e-001+j*0.00000e+000, +3.30266e-002-j*2.08256e-001, +7.22558e-002+j*1.47204e-002; --3.73785e-003+j*3.81592e-002, +4.74482e-002+j*5.41354e-002, -5.78227e-002-j*8.70215e-002; -+6.08721e-002+j*7.20835e-002, +5.73258e-002+j*5.38176e-002, -3.34121e-002-j*8.54509e-002; -+5.96968e-002+j*8.31733e-002, -7.64618e-002-j*4.19504e-002, +3.48953e-002+j*4.79635e-002; --1.41532e-003+j*3.79318e-002, -6.79853e-002-j*3.88324e-002, +6.64542e-002+j*9.20955e-002; -+2.96044e-002+j*7.83613e-002, +4.91378e-002+j*4.74080e-002, -2.15758e-002-j*5.51292e-002; -+3.52566e-002+j*1.00976e-001, +4.16302e-002+j*5.95793e-002, -1.83944e-002-j*5.09313e-002; -+3.49287e-002+j*1.10404e-001, -5.46487e-002-j*3.95054e-002, +1.88545e-002+j*3.82156e-002; -+1.70173e-002+j*8.68762e-002, -5.52511e-002-j*4.46179e-002, +7.63555e-003+j*6.17646e-002; --8.22469e-004-j*1.81402e-002, -1.96193e-003-j*2.76646e-002, -1.97033e-003+j*1.06615e-002; --1.16438e-003-j*2.68725e-002, -1.11909e-003-j*2.38894e-002, +1.50332e-003+j*1.31644e-002; --1.77060e-003-j*2.77807e-002, -1.01121e-003-j*2.37147e-002, -2.45798e-003-j*1.41886e-002; --1.85500e-003-j*2.20304e-002, -4.77462e-004-j*2.19932e-002, -6.85097e-003-j*7.04903e-003; --6.77197e-004-j*1.56812e-002, -2.19412e-003-j*2.65284e-002, +3.96653e-004+j*2.95178e-002; --1.14513e-003-j*1.99551e-002, -2.35828e-003-j*2.88909e-002, +3.70211e-003+j*2.02423e-002; --1.16798e-003-j*2.31638e-002, -4.75969e-004-j*2.23413e-002, -2.07031e-003-j*3.41651e-002; --1.99807e-004-j*2.09301e-002, -2.40560e-004-j*1.78264e-002, -9.91090e-003-j*3.12664e-002; -+9.69966e-003+j*2.95222e-002, -1.19231e-002+j*5.23077e-003, -9.79113e-003-j*4.50715e-002; -+1.36018e-002+j*2.24850e-002, -9.79427e-003+j*9.84679e-003, +2.18456e-002-j*1.57858e-002; -+1.09214e-002+j*2.93115e-002, +2.43859e-002+j*3.35745e-002, -1.07735e-002+j*1.21178e-002]; - -mode_shapes(:, :, 7) = [... -+4.18739e-001-j*2.21696e-002, +6.52636e-002-j*1.29498e-001, -1.90337e-002+j*9.61505e-003; -+4.27024e-001-j*3.03566e-002, +4.22791e-002-j*1.32892e-001, -1.65941e-002+j*2.17638e-002; -+4.66694e-001+j*1.38778e-017, +7.51273e-002-j*1.57468e-001, -2.91618e-002+j*4.11516e-002; -+4.18867e-001+j*2.39590e-002, +7.51007e-002-j*1.13378e-001, -7.11238e-003+j*2.72692e-002; --3.26299e-002+j*2.12910e-002, -4.80710e-002+j*8.82799e-002, +5.82558e-002-j*9.16159e-002; --4.61031e-002+j*8.08300e-002, -2.80650e-002+j*7.37925e-002, +3.54903e-002-j*3.02341e-002; --5.14543e-002+j*7.23863e-002, +1.91387e-002-j*7.65710e-002, -3.92182e-002+j*5.06089e-002; --3.35647e-002+j*2.16695e-002, +1.88798e-002-j*6.19822e-002, -5.08508e-002+j*8.78653e-002; --4.93941e-002+j*6.46940e-002, -2.90637e-002+j*7.66360e-002, +5.24626e-002-j*6.16359e-002; --5.85364e-002+j*5.59044e-002, -2.63581e-002+j*5.43466e-002, +2.90174e-002-j*3.98049e-002; --6.07978e-002+j*5.54585e-002, +3.16828e-002-j*8.54810e-002, -3.44914e-002-j*4.03684e-003; --6.18120e-002+j*7.90821e-002, +2.38807e-002-j*5.62399e-002, -5.04609e-002+j*3.27008e-002; -+1.57670e-002-j*3.20728e-003, -5.98007e-003-j*3.10416e-003, -1.67104e-003-j*1.59089e-003; -+1.79638e-002-j*7.40235e-003, -8.20109e-003-j*2.36675e-004, -1.69812e-003+j*1.67596e-003; -+1.87809e-002-j*8.55724e-003, -2.81069e-003-j*3.03393e-003, -5.71319e-003-j*2.26161e-003; -+1.88829e-002-j*8.50228e-003, -5.28373e-003-j*2.52386e-003, -1.48737e-002-j*5.08140e-003; -+2.28380e-002-j*7.51769e-003, -7.57170e-003-j*2.75553e-003, -6.10380e-003+j*5.15562e-003; -+2.08600e-002-j*6.11732e-003, -4.73105e-003-j*3.30979e-003, -2.51369e-003+j*5.42921e-003; -+2.00008e-002-j*5.92617e-003, -3.50988e-003-j*4.55853e-003, -5.43701e-003-j*6.57229e-003; -+2.28149e-002-j*8.22905e-003, -4.83167e-003-j*3.10509e-003, -2.10958e-002-j*1.33421e-002; --1.83145e-002+j*2.76844e-002, +5.61668e-003-j*1.41226e-002, +2.20876e-002-j*2.27446e-002; --5.42112e-003+j*2.22444e-002, -4.20426e-005-j*8.78901e-003, +5.54714e-003+j*2.71564e-002; --1.70108e-002+j*2.83751e-002, -1.44473e-002+j*4.50880e-002, -5.26736e-003-j*5.75716e-003]; - -mode_shapes(:, :, 8) = [... --1.40928e-001+j*1.28570e-001, +2.95471e-001-j*1.35692e-001, -6.61656e-002+j*2.95705e-002; --1.56673e-001+j*5.19030e-002, +3.08231e-001-j*1.41453e-001, -9.70918e-002+j*4.95018e-002; --1.72505e-001+j*2.26273e-002, +3.97224e-001-j*2.77556e-017, -1.29223e-001+j*4.47412e-002; --1.69978e-001+j*1.16284e-001, +3.37516e-001+j*7.69873e-003, -8.49480e-002+j*2.17071e-002; -+5.38303e-004-j*3.59916e-003, -6.72455e-002-j*2.06230e-002, +2.66448e-002+j*4.10505e-002; --7.96526e-003-j*7.76851e-002, -2.63530e-002-j*3.75474e-002, -1.05984e-001+j*9.32474e-002; -+4.72518e-002-j*1.00199e-001, -5.50664e-002+j*1.50246e-001, -8.50976e-002+j*2.78531e-002; -+7.58419e-003-j*8.61594e-003, -9.02101e-002+j*1.58224e-001, +6.03081e-002-j*1.24162e-001; -+2.99027e-002-j*5.27128e-002, -8.80464e-002-j*2.99113e-004, +9.02851e-002-j*3.99771e-002; -+3.23132e-002-j*5.87278e-002, +3.81174e-002-j*3.69992e-002, +1.16643e-002+j*6.21068e-002; -+5.79795e-002-j*8.33565e-002, -1.22448e-003+j*8.81473e-002, +8.40150e-002-j*1.16264e-002; -+1.35399e-002-j*3.80303e-002, -9.58200e-002+j*1.46531e-001, +1.06769e-001-j*8.97034e-002; -+5.34299e-004+j*1.35179e-002, +8.71327e-004-j*6.41448e-003, +3.33208e-002-j*2.12545e-002; --2.79263e-004+j*5.08578e-003, -1.45476e-003-j*7.65161e-003, +6.98235e-002-j*2.45395e-002; --9.22822e-005+j*7.03205e-003, -5.62836e-003-j*2.79991e-003, +3.99717e-002-j*8.30891e-003; -+1.87833e-002+j*3.26772e-003, -4.86774e-003-j*4.32297e-003, +5.97375e-002-j*1.77542e-002; -+1.14169e-002+j*5.70930e-003, -8.23489e-003-j*4.53684e-003, +3.14016e-002-j*2.50637e-002; -+1.15995e-003+j*5.79180e-003, -6.69740e-003-j*4.66433e-003, +8.17695e-002-j*2.78384e-002; -+5.23838e-004+j*6.46432e-003, +3.36104e-003-j*4.42572e-003, +3.64589e-002+j*5.74796e-004; -+1.57042e-002+j*5.94177e-003, -1.49670e-003-j*4.22955e-003, +8.68520e-002-j*1.43981e-002; -+8.00706e-004-j*2.91734e-002, +1.20708e-002+j*4.24081e-002, -5.91796e-002+j*4.00346e-002; --1.91799e-003-j*1.37294e-002, +9.85285e-003+j*3.17934e-002, -1.78010e-001+j*7.91267e-002; -+3.57271e-003-j*3.09959e-002, -5.77781e-002-j*1.27957e-002, +1.31025e-002+j*1.92303e-002]; - -mode_shapes(:, :, 9) = [... -+1.58897e-002+j*3.23763e-002, -1.23332e-001-j*3.20376e-002, +6.78860e-002-j*1.28743e-002; -+5.67179e-003+j*4.26539e-002, -1.20726e-001-j*4.15603e-002, +7.66846e-002-j*1.24290e-002; -+2.24198e-002+j*3.45953e-002, -1.03213e-001-j*4.97049e-002, +5.49175e-002-j*5.50883e-003; -+2.68792e-002+j*2.97222e-002, -1.17598e-001-j*3.13791e-002, +5.59736e-002-j*1.71122e-002; -+1.39733e-002-j*1.56260e-002, +1.43952e-001+j*2.28119e-002, -4.56377e-003+j*4.88790e-002; --2.18507e-002-j*1.25664e-002, +6.15387e-002-j*6.31793e-003, +3.05342e-002+j*3.24595e-002; --7.85412e-003-j*1.85600e-002, +1.25733e-001+j*1.77063e-002, +5.34635e-002+j*4.72260e-003; --1.10454e-002-j*2.13217e-002, +1.26440e-001+j*1.96001e-002, -5.62624e-002-j*1.07192e-002; -+5.84467e-003-j*4.07134e-002, +5.16711e-003+j*4.70857e-002, -1.93010e-001+j*6.79213e-003; -+5.31962e-002-j*1.11322e-002, +3.23294e-001-j*2.12981e-002, +2.14310e-001+j*4.85898e-003; --2.44580e-002-j*1.33220e-002, +4.08800e-001+j*2.09082e-002, +5.11454e-001+j*0.00000e+000; --2.51332e-002-j*1.42719e-003, +8.97105e-002+j*4.85852e-002, -1.27426e-001-j*9.59723e-003; --2.08176e-003+j*1.37185e-002, -3.99530e-002+j*2.11895e-002, -1.17813e-001+j*7.60972e-002; --1.34824e-002+j*7.11258e-003, -4.19473e-002+j*1.83590e-002, -2.07198e-002-j*2.51991e-002; --6.84747e-003+j*8.45921e-003, -3.33872e-002+j*1.71496e-002, +6.99867e-002-j*6.93158e-002; --2.64313e-002+j*5.08903e-003, -3.03569e-002+j*1.29946e-002, -1.39115e-001+j*5.72459e-002; --2.90186e-002+j*1.48257e-002, -5.55429e-002+j*2.74156e-002, -1.62035e-001+j*8.04187e-002; --2.05855e-002+j*1.11922e-002, -6.58789e-002+j*3.20524e-002, -1.02263e-002-j*4.24087e-002; --1.40204e-002+j*8.01102e-003, -5.72647e-002+j*2.37484e-002, +1.75053e-001-j*9.63667e-002; --3.50818e-002+j*1.41152e-002, -5.19701e-002+j*2.31951e-002, -1.15951e-001+j*2.91582e-002; --5.78005e-003-j*7.05841e-003, +8.29016e-002+j*1.36984e-002, +4.03470e-003+j*4.03325e-002; --1.39928e-002-j*1.14088e-002, +8.05288e-002+j*1.51031e-002, +1.12255e-002+j*3.21224e-002; --1.02276e-002-j*8.35724e-003, -4.89246e-003+j*1.67800e-002, +7.80514e-002+j*1.53467e-002]; - -mode_shapes(:, :, 10) = [... -+3.33349e-002-j*4.89606e-003, -8.67138e-002-j*1.69402e-002, +2.87366e-002-j*1.66842e-002; -+2.95730e-002-j*6.10477e-004, -9.24590e-002-j*1.92562e-002, +5.21162e-002-j*1.31811e-002; -+3.26966e-002+j*1.03975e-002, -8.55682e-002-j*4.71847e-002, +3.99404e-002+j*8.59358e-003; -+3.45452e-002-j*3.05951e-003, -7.73823e-002-j*2.32199e-002, +2.30960e-002-j*7.49928e-003; --3.72461e-003-j*5.40336e-003, +1.80151e-001-j*1.42898e-002, -8.63921e-003+j*1.95638e-002; --1.11285e-002-j*2.22175e-003, +6.92355e-002-j*1.24144e-002, +8.02097e-002-j*6.81531e-003; --2.99885e-002-j*4.21951e-004, +8.19709e-002+j*1.22484e-002, +3.97531e-002+j*1.33874e-002; --1.59231e-002-j*3.96929e-003, +9.31295e-002+j*9.75532e-003, -4.01947e-002-j*5.17841e-003; --7.32828e-003-j*2.93496e-002, +4.39909e-002+j*1.25298e-002, -8.87525e-002+j*2.05359e-002; -+8.20167e-002+j*6.86693e-004, +4.25475e-001-j*2.36494e-002, +3.37034e-001-j*2.44199e-002; --2.68694e-002+j*3.82921e-003, +4.79292e-001+j*1.35903e-002, +5.06762e-001+j*0.00000e+000; -+1.40565e-002-j*5.41957e-003, +1.17563e-001+j*2.50398e-002, -5.97219e-002+j*5.92813e-004; -+2.30939e-002+j*1.16755e-002, +4.11136e-003+j*1.65726e-002, +2.41863e-002+j*5.06658e-002; --4.92960e-003+j*9.24082e-003, -5.44667e-003+j*1.41983e-002, -3.73537e-002-j*1.87263e-002; -+9.68682e-003+j*1.11791e-002, -5.13436e-003+j*1.29205e-002, -4.88765e-002-j*4.97821e-002; --1.66711e-003+j*1.03280e-002, +9.57955e-004+j*1.28350e-002, +3.30268e-002+j*5.44211e-002; -+5.90540e-003+j*1.67113e-002, +1.34280e-002+j*2.62111e-002, +4.38613e-002+j*7.17028e-002; -+4.97752e-003+j*1.47634e-002, +1.56773e-002+j*3.16026e-002, -5.27493e-002-j*3.38315e-002; -+2.83485e-003+j*1.14816e-002, +9.80676e-003+j*2.51504e-002, -6.78645e-002-j*9.90875e-002; -+5.62294e-003+j*1.84035e-002, +1.03717e-002+j*2.37801e-002, +2.58497e-002+j*3.75352e-002; --8.75236e-003-j*4.71723e-003, +6.99107e-002+j*1.51894e-002, +3.46273e-002+j*1.48547e-002; --1.72822e-002-j*8.75192e-003, +6.96759e-002+j*1.59783e-002, +8.07917e-002+j*1.97809e-002; --1.29601e-002-j*5.61834e-003, +1.76126e-002+j*4.62761e-003, +6.64667e-002+j*1.61199e-002]; -#+end_src - -** Define a point for each solid body -We define accelerometer indices used to define the motion of each solid body (2 3-axis accelerometer are enough). -#+begin_src matlab - stages = [17, 19; % Bottom Granite - 13, 15; % Top Granite - 9, 11; % Ty - 5, 7; % Ry - 21, 22; % Spindle - 1, 3]; % Hexapod -#+end_src - -We define the origin point ${}^AO_B$ of the solid body $\{B\}$. -Here we choose the middle point between the two accelerometers. -This could be define differently (for instance by choosing the center of mass). -#+begin_src matlab - AOB = zeros(3, size(stages, 1)); - - for i = 1:size(stages, 1) - AOB(:, i) = mean(positions(stages(i, :), 1:3))'; - end -#+end_src - -Then we compute the positions of the sensors with respect to the previously defined origin for the frame $\{B\}$: ${}^BP_1$ and ${}^BP_2$. -#+begin_src matlab - BP1 = zeros(3, size(stages, 1)); - BP2 = zeros(3, size(stages, 1)); - - for i = 1:size(stages, 1) - BP1(:, i) = positions(stages(i, 1), 1:3)' - AOB(:, i); - BP2(:, i) = positions(stages(i, 2), 1:3)' - AOB(:, i); - end -#+end_src - -Let's define one absolute frame $\{A\}$ and one frame $\{B\}$ fixed w.r.t. the solid body. -We note ${}^AO_B$ the position of origin of $\{B\}$ expressed in $\{A\}$. - -We are measuring with the accelerometers the absolute motion of points $P_1$ and $P_2$: ${}^Av_{P_1}$ and ${}^Av_{P_2}$. - -Let's note ${}^BP_1$ and ${}^BP_2$ the (known) coordinates of $P_1$ and $P_2$ expressed in the frame $\{B\}$. - -Then we have: -\begin{align} - {}^Av_{P_1} &= {}^Av_{O_B} + {}^A\Omega^\times {}^AR_B {}^BP_1 \\ - {}^Av_{P_2} &= {}^Av_{O_B} + {}^A\Omega^\times {}^AR_B {}^BP_2 -\end{align} - -And we obtain -\begin{align} - {}^A\Omega^\times {}^AR_B &= \left( {}^Av_{P_2} - {}^Av_{P_1} \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1}\\ - {}^Av_{O_B} &= {}^Av_{P_1} - \left( {}^Av_{P_2} - {}^Av_{P_1} \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1} {}^BP_1 -\end{align} - -#+begin_src matlab - AVOB = zeros(3, size(stages, 1)); - ARB = zeros(3, 3, size(stages, 1)); - for i = 1:size(stages, 1) - AVOB(:, i) = mode1(stages(i, 1), :)' - (mode1(stages(i, 2), :)' - mode1(stages(i, 1), :)')*pinv(BP2(:, i) - BP1(:, i))*BP1(:, i); - ARB(:, :, i) = (mode1(stages(i, 2), :)' - mode1(stages(i, 1), :)')*pinv(BP2(:, i) - BP1(:, i)); - end -#+end_src - -** Argand Diagram -For mode 1 - -#+begin_src matlab - figure; - hold on; - for i=1:size(mode1, 1) - plot([0, real(mode1(i, 1))], [0, imag(mode1(i, 1))], '-k') - plot([0, real(mode1(i, 2))], [0, imag(mode1(i, 2))], '-k') - plot([0, real(mode1(i, 3))], [0, imag(mode1(i, 3))], '-k') - - % plot([0, real(mode2(i, 1))], [0, imag(mode2(i, 1))], '-r') - % plot([0, real(mode2(i, 2))], [0, imag(mode2(i, 2))], '-r') - % plot([0, real(mode2(i, 3))], [0, imag(mode2(i, 3))], '-r') - - % plot([0, real(mode3(i, 1))], [0, imag(mode3(i, 1))], '-b') - % plot([0, real(mode3(i, 2))], [0, imag(mode3(i, 2))], '-b') - % plot([0, real(mode3(i, 3))], [0, imag(mode3(i, 3))], '-b') - end - - for i=1:size(AVOB, 2) - plot([0, real(AVOB(1, i))], [0, imag(AVOB(1, i))], '-r') - plot([0, real(AVOB(2, i))], [0, imag(AVOB(2, i))], '-r') - plot([0, real(AVOB(3, i))], [0, imag(AVOB(3, i))], '-r') - end - - % ang=0:0.01:2*pi; - % radius1 = max(max(sqrt(real(mode1).^2+imag(mode1).^2))); - % plot(radius1*cos(ang), radius1*sin(ang), '-k'); - - % radius2 = max(max(sqrt(real(mode2).^2+imag(mode2).^2))); - % plot(radius2*cos(ang), radius2*sin(ang), '-r'); - - % radius3 = max(max(sqrt(real(mode3).^2+imag(mode3).^2))); - % plot(radius3*cos(ang), radius3*sin(ang), '-b'); - - hold off; - axis manual equal -#+end_src - -** TEST: animate first mode -#+begin_src matlab - figure; - hold on; - fill3(positions(1:4, 1), positions(1:4, 2), positions(1:4, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(5:8, 1), positions(5:8, 2), positions(5:8, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(9:12, 1), positions(9:12, 2), positions(9:12, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(13:16, 1), positions(13:16, 2), positions(13:16, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(17:20, 1), positions(17:20, 2), positions(17:20, 3), 'k', 'FaceAlpha', 0.5) - fill3(positions(21:23, 1), positions(21:23, 2), positions(21:23, 3), 'k', 'FaceAlpha', 0.5) - hold off; -#+end_src - -#+NAME: fig:mode_shapes -#+HEADER: :tangle no :exports results :results value file raw replace :noweb yes -#+begin_src matlab - rec = polyshape([-2 -2 2 2],[-3 3 3 -3]); - h = figure; - filename = 'figs/mode_shapes.gif'; - n = 20; - - for i = 1:n - axis manual equal - - Dm = real(V(1:3, 5)*cos(2*pi*i/n)); - rec_i = rotate(rec, 180/pi*Dm(3)); - rec_i = translate(rec_i, 10*Dm(1), 10*Dm(2)); - plot(rec_i); - - xlim([-3, 3]); ylim([-4, 4]); - - set(h, 'visible', 'off'); - set(h, 'pos', [0, 0, 500, 500]); - drawnow; - - % Capture the plot as an image - frame = getframe(h); - im = frame2im(frame); - [imind,cm] = rgb2ind(im,256); - - % Write to the GIF File - if i == 1 - imwrite(imind,cm,filename,'gif','DelayTime',0.1,'Loopcount',inf); - else - imwrite(imind,cm,filename,'gif','DelayTime',0.1,'WriteMode','append'); - end - end - - set(h, 'visible', 'on'); - ans = filename; -#+end_src - -** From 6 translations to translation + rotation -Let's define one absolute frame $\{A\}$ and one frame $\{B\}$ fixed w.r.t. the solid body. -We note ${}^AO_B$ the position of origin of $\{B\}$ expressed in $\{A\}$. - -We are measuring with the accelerometers the absolute motion of points $P_1$ and $P_2$: ${}^AP_1$ and ${}^AP_2$. - -Let's note ${}^BP_1$ and ${}^BP_2$ the (known) coordinates of $P_1$ and $P_2$ expressed in the frame $\{B\}$. - -Then we have: -\begin{align} - {}^AP_1 &= {}^AO_B + {}^AR_B {}^BP_1 \\ - {}^AP_2 &= {}^AO_B + {}^AR_B {}^BP_2 -\end{align} - -And we obtain -\begin{align} - {}^AR_B &= \left( {}^AP_2 - {}^AP_1 \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1}\\ - {}^AO_B &= {}^Av_{P_1} - \left( {}^AP_2 - {}^AP_1 \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1} {}^BP_1 -\end{align} - -* Problem with AirLoc System -4 Airloc Levelers are used for the granite (figure [[fig:airloc]]). - -#+name: fig:airloc -#+caption: AirLoc used for the granite (2120-KSKC) -#+attr_html: :width 500px -[[file:img/airloc/IMG_20190618_155522.jpg]] - -They are probably *not well leveled* so that could explain the first modes at 11Hz and 17Hz. - -* Spatial Mode Extraction +The modal analysis of the ID31 Micro-station consists of several parts: +- [[file:measurement.org][Frequency Response Measurements]] +- [[file:modal_extraction.org][Modal Parameter Extraction]] +- [[file:mathematical_model.org][Derivation of Mathematical Model]] diff --git a/modal-analysis/mathematical_model.html b/modal-analysis/mathematical_model.html new file mode 100644 index 0000000000000000000000000000000000000000..462171df9458310ecd245e7acb633e6f789892ae GIT binary patch literal 10340 zcmbtaZFAc;68^4Vfhuzo+chOSzD^tYrKiYF?2aA#ETwI(b8`cckOZ3~7!s7MaTL(=h(ojV*9iKK!Jqmtm{(ROr z`R@F-H+X+{!6q8~ckfb2YFgLC%#<>2O;K>_RQT!y;czIfYgG$&eT zopyURo3&;~EtQYkgZuUqX*ndZ>Ss_GnO3BuCVDfSz_7G9^(Z)e`SPWeYqFS=og!^A zuy+<;q(ktC3=abK;^6RQaPVVraKsXkx7guP=Z7N}1Ry6ubBsx6f%s6$>1ng4QY}&) z4Ca|=ve15=Hnn)tZ8GaPobbF5`qcV{wQD6QPsC|+D#a{Qxn2>S$w*I5BQces2+YSm zld05_$3YSDSezaU-?UT zK9*@PR9dT~!&)yya?JiD9Yr~`YQ91X8)43ZLVgq-%yuNp#OcN|%!C|IbcYR99JvgY zAzEdfgUSM}A_Y@FS>X{+WITs{m8v4+p*TjQ#47KwTtt;bq*C!U660Kmw35kksdB03 zU+zcc2z+#F+@txJ-1vzNdH6WaRhdRXWzRDqz-3&rY4n==Gak{R@30ryQzc=Y_|w7P zs_)uosmc=`*PY8m6q+X)`mZ}33i`)o2p(tA3eyjxmx9;+#l{fiG$S;O%Kxz#VS*5w z>bPz)EFE@0CawjPAygfbE|N7aS<_|Zs-{Yp)xR2?B)g)@#_HFYwW+F#b309#7Lmsi zVNr!~Btpz1t?Uk45N*%TGDS`uV#Q_q>{*tJ>I1SX0sfNa#*Sxo!DKDk(W#%c;U9sS z0tVXHCo}m&mBXeEJItO~p<)@aXJHuH^)OUVK{4TxnswL_==Falq>S_;WPZxDmHAwt zDcCfMNt^ML(NLRyXcjw~D)U-J9#$s85!frqMY)LKtf{bFE!9nBA>k<7T-g-R;>Br1 zd&s)l&QOfh!U2&ivY2Bjr&z9)hDC>b2%nU?YTsO3vx%&Urn}&f0?Z7o3a(|t!dGyk zW!d!oFvj|I&7IId7e=#%!7`;#Iwps;_t-VIgOZO$!7`CEv(fXk#1UaOVN5uAG~mTN z$+Xg9sjoWWI_!D3CO%(8i4~eXdf8`>4r9;9)~lFcV{Jw6`|nw#M3Fw%Y^L%@oQAB| z@2{I0#_FNWy@vKI$>|-Zk+=VT-(fuWv7I|ik<^^~7!AQ?R@%qWCrAHBJei%xg<>1jcEZ#r~mGBu8Mvi$@X1z8)?u z$rXr2G+vG7W%Nxf$q{(qQ|~PNf_9hHJN?91gt^SL!;Y;)JozlY<^%D&%e>X>YeR9_ zw@j61l49f$nMxzCB^AxpUV2?}UAi7YmKgJ)PxDQ8aNT|7=uL_cNu!tDP#ks@a%9}~ zW?E;;*hg-M4BE)L}H zYWjw=jn~XTDeQLoAO2v+2 zit=DeIBIcFG0)CO zS7Wa+eIhs=n9%UKrB5+K(YSd6h+#T@Cy4X(EnBN%E*Lz`jgN#G{XrU@`m|fz&U_w zFqOu0++ne@7AudHwCOUAhGZCVrWMOdZFP}|^)X>1@I6i){GblOHx{4+>{&~IhrC#< z#O|bn;+&1ivhP7Tt(JB&m-?*?ndrX=0#FR?&@Ob7KNbe zaPEv}TNdKUJ%E*E6X{caZYYjsLi>EogmXHqGV*d>ox6;HAHyhXtNyH*tWz86i0g@6WH&w zzHcZFyAHjEquFKj=lh%4KJr7rkXxF;Mkag2nYowIUc+SD%;#W%sq)#j0Z(RjAToeIJn9>|BptKDd zVbI$g(?WsAV66z2RAUhXC;Ma~d0~0AfzX7m#0N@o3 zi4>KoRKav&%jpKuAegpqF6l@}B0+hAo{%ITw;GL}%I0SOU^~5Cs^-54sHD$c17l)+ zHPSQe6znzCJ3Tn=%6XHp~miP|s~ zmmoQsQ-dkjnadCA*aW%8Zf22ba>F~hW4u4SjiI=7%xxEfu= ze!Ci6-o6{K?%Vh5x9)U(QWp~~C!By|wb@v``M(*!!`xh{z50{h1${{8Q5-Q0> zxX{SBz|3`#aV~G5K$;Q>^c9zT>-Sm`$DnCFVg*6Yp#Qi}j%Xx&zA{EC?ga(>gNWM^ zt#NA~hjJ2hMvHu#$B~1$m9@_SWiH0gsp}Hxyb1W2_gsA z;zn)H-}h1WQd4A`kqIuDhH;4iH_`1Z1_T)r^LO{x=p04-@q|vta00!d%p?|2L9xkr zNKmx#U{B?_D5!owE3I!v2=AH2D4@+OMVtD5ZW%VJW%#+p(rN%m`Rr4V1pw2-3cjq5 z-P?3W#3I3ymuR&j&{-#5Z-sE zmCSCH(lAon3OTUpUJNvwgrU#2Qo~!|KsKFmSqF9J){0i>u)EDr+oVuf9=jrHuBomS zAnn=8i=!0(Zt>D+^v!Pa_yZoNzjdE1oV4b;+S!g4>#9nR$1h%X==u|9g2@`%b>3ih zcbt^%>S5MUMRR;2aYSgGHa$tCd0fP+cz+agyaj76GYW~<6i+PzX_{y3-5on=b38`+ zFWw`qiCk_IxxBr(utFzo7;(0+gsumOLh}yokeS%PgC}~M)%;73vnGc$YU*M+T7q=U zgATmTqS&D +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: + +#+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: diff --git a/modal-analysis/measurement.html b/modal-analysis/measurement.html new file mode 100644 index 0000000000000000000000000000000000000000..e373cd84f751b0cce35b91039ba2fdf82c509c22 GIT binary patch literal 595305 zcmeFadwUxva$a$MjXT!<(Y0K-lEhiuMCxhYm z;%Vzrb<(<= !p1yncuJbPFOr{s7uf9KhuWIqsYvqsanSQ4; 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%0Ai$4YSx=Bf06R!{r^RM2 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 literal 0 HcmV?d00001 diff --git a/modal-analysis/measurement.org b/modal-analysis/measurement.org new file mode 100644 index 0000000..f2b50d3 --- /dev/null +++ b/modal-analysis/measurement.org @@ -0,0 +1,1491 @@ +#+TITLE: Modal Analysis - Measurement +: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: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: +#+HTML_HEAD: + +#+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 +:END: + +* Goal +The goal is to experimentally extract a *Spatial Model* (mass, damping, stiffness) of the structure (shown on figure [[fig:nass_picture]]) in order to tune the Multi-Body model. + +#+name: fig:nass_picture +#+caption: Picture of the ID31 Micro-Station. (1) Granite (2) Translation Stage (3) Tilt Stage (4) Hexapod (5) Dummy Mass +#+attr_html: :width 500px +[[file:img/nass_picture.png]] + +The procedure is represented on figure [[fig:vibration_analysis_procedure]] where we go from left to right. + +#+name: fig:vibration_analysis_procedure +#+caption: Vibration Analysis Procedure +#+attr_html: :width 400px +[[file:img/vibration_analysis_procedure.png]] + +First, we obtain a *Response Model* (Frequency Response Functions) from measurements. +This is further converted into a *Modal Model* (Natural Frequencies and Mode Shapes). +Finally, this is converted into a *Spatial Model* with the Mass/Damping/Stiffness matrices. + + +Theses matrices will be used to tune the Simscape (multi-body) model. + +The modes we want to identify are those in the frequency range between 0Hz and 150Hz. + +* 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*. + +* Instrumentation Used +In order to perform to Modal Analysis and to obtain first a Response Model, the following devices are used: +- An *acquisition system* (OROS) with 24bits ADCs (figure [[fig:oros]]) +- 3 tri-axis *Accelerometers* (figure [[fig:accelero_M393B05]]) with parameters shown on table [[tab:accelero_M393B05]] +- An *Instrumented Hammer* with various Tips (figure [[fig:instrumented_hammer]]) (figure [[fig:hammer_tips]]) + +#+name: fig:oros +#+caption: Acquisition system: OROS +#+attr_html: :width 500px +[[file:img/instrumentation/oros.png]] + +The acquisition system permits to auto-range the inputs (probably using variable gain amplifiers) the obtain the maximum dynamic range. +This is done before each measurement. +Anti-aliasing filters are also included in the system. + +#+name: fig:accelero_M393B05 +#+caption: Accelerometer used: M393B05 +#+attr_html: :width 500px +[[file:img/instrumentation/accelero_M393B05.png]] + +#+name: tab:accelero_M393B05 +#+caption: 393B05 Accelerometer Data Sheet +| Sensitivity | 10V/g | +| Measurement Range | 0.5 g pk | +| Broadband Resolution | 0.000004 g rms | +| Frequency Range | 0.7 to 450Hz | +| Resonance Frequency | > 2.5kHz | + +Tests have been conducted to determine the most suitable Hammer tip. +This has been found that the softer tip gives the best results. +It excites more the low frequency range where the coherence is low, the overall coherence was improved. + +#+name: fig:instrumented_hammer +#+caption: Instrumented Hammer +#+attr_html: :width 500px +[[file:img/instrumentation/instrumented_hammer.png]] + +#+name: fig:hammer_tips +#+caption: Hammer tips +#+attr_html: :width 500px +[[file:img/instrumentation/hammer_tips.png]] + +The accelerometers are glued on the structure. + +* Structure Preparation and Test Planning +** Structure Preparation +All the stages are turned ON. +This is done for two reasons: +- Be closer to the real dynamic of the station in used +- If the control system of stages are turned OFF, this would results in very low frequency modes un-identifiable with the current setup, and this will also decouple the dynamics which would not be the case in practice +This is critical for the translation stage and the spindle as their is no stiffness in the free DOF (air-bearing for the spindle for instance). + +The alternative would have been to mechanically block the stages with screws, but this may result in changing the modes. + +The stages turned ON are: +- Translation Stage +- Tilt Stage +- Spindle and Slip-Ring +- Hexapod + + +The top part representing the NASS and the sample platform have been removed in order to reduce the complexity of the dynamics and also because this will be further added in the model inside Simscape. + +All the stages are moved to their zero position (Ty, Ry, Rz, Slip-Ring, Hexapod). + +All other elements have been remove from the granite such as another heavy positioning system. + +** Test Planing +The goal is to identify the full $N \times N$ FRF matrix (where $N$ is the number of degree of freedom of the system). + +However, the principle of reciprocity states that: +\[ H_{jk} = \frac{X_j}{F_k} = H_{kj} = \frac{X_k}{F_j} \] +Thus, only one column or one line of the matrix has to be identified. + +Either we choose to identify $\frac{X_k}{F_i}$ or $\frac{X_i}{F_k}$ for any chosen $k$ and for $i = 1,\ ...,\ N$. + +We here choose to identify $\frac{X_i}{F_k}$ for practical reasons: +- it is easier to glue the accelerometers on some stages than to excite this particular stage with the Hammer + +The measurement thus consists of: +- always excite the structure at the same location with the Hammer +- Move the accelerometers to measure all the DOF of the structure + +** Location of the Accelerometers +4 tri-axis accelerometers are used for each solid body. + +Only 2 could have been used as only 6DOF have to be measured, however, we have chosen to have some *redundancy*. + +This could also help us identify measurement problems or flexible modes is present. + +The position of the accelerometers are: +- 4 on the first granite +- 4 on the second granite (figure [[fig:accelerometers_granite2_overview]]) +- 4 on top of the translation stage (figure [[fig:accelerometers_ty_overview]]) +- 4 on top of the tilt stage +- 4 on top of the spindle +- 4 on top of the hexapod (figure [[fig:accelerometers_hexa_overview]]) + +#+name: fig:accelerometers_granite2_overview +#+caption: Accelerometers located on the top granite +#+attr_html: :width 500px +[[file:img/accelerometers/accelerometers_granite2_overview.jpg]] + +#+name: fig:accelerometers_ty_overview +#+caption: Accelerometers located on top of the translation stage +#+attr_html: :width 500px +[[file:img/accelerometers/accelerometers_ty_overview.jpg]] + +#+name: fig:accelerometers_hexa_overview +#+caption: Accelerometers located on the Hexapod +#+attr_html: :width 500px +[[file:img/accelerometers/accelerometers_hexa_overview.jpg]] + +** Hammer Impacts +Only 3 impact points are used. + +The impact points are shown on figures [[fig:hammer_x]], [[fig:hammer_y]] and [[fig:hammer_z]]. + +#+name: fig:hammer_x +#+caption: Hammer Blow in the X direction +#+attr_html: :width 300px +[[file:img/impacts/hammer_x.gif]] + +#+name: fig:hammer_y +#+caption: Hammer Blow in the Y direction +#+attr_html: :width 300px +[[file:img/impacts/hammer_y.gif]] + +#+name: fig:hammer_z +#+caption: Hammer Blow in the Z direction +#+attr_html: :width 300px +[[file:img/impacts/hammer_z.gif]] + +* Signal Processing +The measurements are averaged 10 times (figure [[fig:general_parameters]]) corresponding to 10 hammer impacts. + +#+name: fig:general_parameters +#+caption: General Acquisition Settings +#+attr_html: :width 500px +[[file:img/parameters/general_parameters.jpg]] + +Windowing is used on the force response signals. + +A boxcar window (figure [[fig:window_force]]) is used for the force signal as once the impact on the structure is done, the measured signal is meaningless. + +An exponential window (figure [[fig:window_response]]) is used for the response signal as we are measuring transient signals and most of the information is located at the beginning of the signal. + +#+name: fig:window_force +#+caption: Window used for the force signal +#+attr_html: :width 500px +[[file:img/parameters/window_force.jpg]] + +#+name: fig:window_response +#+caption: Window used for the response signal +#+attr_html: :width 500px +[[file:img/parameters/window_response.jpg]] + +* Frequency Response Functions and Coherence Results +** 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 + +** Load Data +#+begin_src matlab + meas1_raw = load('modal_analysis/raw_data/Measurement1.mat'); +#+end_src + +** Raw Force Data +#+begin_src matlab :exports none + time = linspace(0, meas1_raw.Track1_X_Resolution*length(meas1_raw.Track1), length(meas1_raw.Track1)); + figure; + plot(time, meas1_raw.Track1); + xlabel('Time [s]'); + ylabel('Force [N]'); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/raw_data_force.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:raw_data_force +#+CAPTION: Raw Force Data from Hammer Blow +[[file:figs/raw_data_force.png]] + +#+begin_src matlab :exports none + xlim([22.1, 22.3]); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/raw_data_force_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:raw_data_force_zoom +#+CAPTION: Raw Force Data from Hammer Blow - Zoom +[[file:figs/raw_data_force_zoom.png]] + +** Raw Response Data +#+begin_src matlab :exports none + figure; + plot(time, meas1_raw.Track2); + xlabel('Time [s]'); + ylabel('Acceleration [m/s2]'); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/raw_data_acceleration.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:raw_data_acceleration +#+CAPTION: Raw Acceleration Data from Accelerometer +[[file:figs/raw_data_acceleration.png]] + +#+begin_src matlab :exports none + xlim([22.1, 22.5]); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/raw_data_acceleration_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:raw_data_acceleration_zoom +#+CAPTION: Raw Acceleration Data from Accelerometer - Zoom +[[file:figs/raw_data_acceleration_zoom.png]] + +** Load Data +#+begin_src matlab + meas1 = load('modal_analysis/frf_coh/Measurement1.mat'); +#+end_src + +** FRF and Coherence Results +#+begin_src matlab :exports none + figure; + ax1 = subplot(2, 1, 1); + plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_AvXSpc_2_1_RMS_Y_Mod); + set(gca, 'XTickLabel',[]); + ylabel('Magnitude'); + + ax2 = subplot(2, 1, 2); + plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_AvXSpc_2_1_RMS_Y_Phas); + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + xlabel('Frequency [Hz]'); ylabel('Phase [deg]'); + + linkaxes([ax1,ax2],'x'); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/frf_result_example.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:frf_result_example +#+CAPTION: Example of one measured FRF +[[file:figs/frf_result_example.png]] + +#+begin_src matlab :exports none + figure; + plot(meas1.FFT1_AvSpc_2_RMS_X_Val, meas1.FFT1_Coh_2_1_RMS_Y_Val); + xlabel('Frequency [Hz]'); + ylabel('Coherence'); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/coh_result_example.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:coh_result_example +#+CAPTION: Example of one measured Coherence +[[file:figs/coh_result_example.png]] + +* Mode Shapes +Multiple modal extraction techniques can be used (SIMO, MIMO, narrow band, wide band, ...). +First preliminary results on 10 identified modes are presented here. + +#+name: fig:mode1 +#+caption: Mode 1 +[[file:img/modes/mode1.gif]] + +#+name: fig:mode2 +#+caption: Mode 2 +[[file:img/modes/mode2.gif]] + +#+name: fig:mode3 +#+caption: Mode 3 +[[file:img/modes/mode3.gif]] + +#+name: fig:mode4 +#+caption: Mode 4 +[[file:img/modes/mode4.gif]] + +#+name: fig:mode5 +#+caption: Mode 5 +[[file:img/modes/mode5.gif]] + +#+name: fig:mode6 +#+caption: Mode 6 +[[file:img/modes/mode6.gif]] + +#+name: fig:mode7 +#+caption: Mode 7 +[[file:img/modes/mode7.gif]] + +#+name: fig:mode8 +#+caption: Mode 8 +[[file:img/modes/mode8.gif]] + +#+name: fig:mode9 +#+caption: Mode 9 +[[file:img/modes/mode9.gif]] + +#+name: fig:mode10 +#+caption: Mode 10 +[[file:img/modes/mode10.gif]] + +* Obtained Modal Matrices +From the modal analysis software, we can export the obtained *eigen matrices*: +\[ \begin{bmatrix} + \omega_1^2 & & 0 \\ + & \ddots & \\ + 0 & & \omega_n^2 +\end{bmatrix}; \quad \Psi = \begin{bmatrix} + & & \\ + \{\psi_1\} & \dots & \{\psi_n\} \\ + & & +\end{bmatrix} \] + +where $\bar{\omega}_r^2$ is the $r^\text{th}$ eigenvalue squared and $\{\phi\}_r$ is a description of the corresponding *mode shape*. + +The file containing the eigen frequencies and mode shapes are shown below (for the first mode). + +#+begin_src bash :results output :exports results :eval no-export + sed 80q modal_analysis/modes_propres_narband.asc +#+end_src + +#+RESULTS: +#+begin_example +Created by N-Modal +Estimator: cmif +18-Jun-19 16:31:25 + + +Mode 1 +freq = 11.11191Hz +damp = 10.51401% +modal A = 8.52879e+003-2.29043e+003i +modal B = -9.64203e+004-6.08978e+005i +Mode matrix of local coordinate [DOF: Re IM] + 1X+: -9.34637e-002 4.52445e-002 + 1Y+: 2.33790e-001 1.41439e-003 + 1Z+: -1.73754e-002 6.02449e-003 + 2X+: -7.42108e-002 3.91543e-002 + 2Y+: 2.41566e-001 -1.44869e-003 + 2Z+: -5.99285e-003 2.10370e-003 + 4X+: -1.02163e-001 2.79561e-002 + 4Y+: 2.29048e-001 2.89782e-002 + 4Z+: -2.85130e-002 1.77132e-004 + 5X+: -8.77132e-002 3.34081e-002 + 5Y+: 2.14182e-001 2.14655e-002 + 5Z+: -1.54521e-002 1.26682e-002 + 6X+: -7.90143e-002 2.42583e-002 + 6Y+: 2.20669e-001 2.12738e-002 + 6Z+: 4.60755e-002 4.96406e-003 + 7X+: -7.79654e-002 2.58385e-002 + 7Y+: 2.06861e-001 3.48019e-002 + 7Z+: -1.78311e-002 -1.29704e-002 + 8X+: -8.49357e-002 3.55200e-002 + 8Y+: 2.07470e-001 3.59745e-002 + 8Z+: -7.66974e-002 -3.19813e-003 + 9X+: -7.38565e-002 1.95146e-002 + 9Y+: 2.17403e-001 2.01550e-002 + 9Z+: -1.77073e-002 -3.46414e-003 + 10X+: -7.77587e-002 2.36700e-002 + 10Y+: 2.35654e-001 -2.14540e-002 + 10Z+: 7.94165e-002 -2.45897e-002 + 11X+: -8.17972e-002 2.20583e-002 + 11Y+: 2.20906e-001 -4.30164e-003 + 11Z+: -5.60520e-003 3.10187e-003 + 12X+: -8.64261e-002 3.66022e-002 + 12Y+: 2.15000e-001 -5.74661e-003 + 12Z+: -1.22622e-001 4.11767e-002 + 13X+: -4.25169e-002 1.56602e-002 + 13Y+: 5.31036e-002 -1.73951e-002 + 13Z+: -4.07130e-002 1.26884e-002 + 14X+: -3.85032e-002 1.29431e-002 + 14Y+: 5.36716e-002 -1.80868e-002 + 14Z+: 1.00367e-001 -3.48798e-002 + 15X+: -4.25524e-002 1.46363e-002 + 15Y+: 5.19668e-002 -1.69744e-002 + 15Z+: 5.89747e-003 -2.32428e-003 + 16X+: -4.31268e-002 1.38332e-002 + 16Y+: 5.07545e-002 -1.53045e-002 + 16Z+: -1.04172e-001 3.17984e-002 + 17X+: -2.69757e-002 9.07955e-003 + 17Y+: 3.07837e-002 -9.44663e-003 + 17Z+: -7.63502e-003 1.68203e-003 + 18X+: -3.00097e-002 9.23966e-003 + 18Y+: 2.83585e-002 -8.97747e-003 + 18Z+: 1.52467e-001 -4.78675e-002 + 19X+: -2.70223e-002 6.16478e-003 + 19Y+: 3.06149e-002 -6.25382e-003 + 19Z+: -4.84888e-003 1.93970e-003 + 20X+: -2.90976e-002 7.13184e-003 + 20Y+: 3.36738e-002 -7.30875e-003 + 20Z+: -1.66902e-001 3.93419e-002 + 3X+: -9.40720e-002 3.93724e-002 + 3Y+: 2.52307e-001 0.00000e+000 + 3Z+: -1.53864e-002 -9.25720e-004 + 21X+: -7.91940e-002 4.39648e-002 + 21Y+: 2.04567e-001 9.49987e-003 + 21Z+: -1.56087e-002 7.08838e-003 + 22X+: -1.01070e-001 3.13534e-002 + 22Y+: 1.92270e-001 1.80423e-002 + 22Z+: 2.93053e-003 -1.97308e-003 + 23X+: -8.86455e-002 4.29906e-002 + 23Z+: -3.38351e-002 1.81362e-003 + 23Y-: -1.90862e-001 -2.53414e-002 +#+end_example + +* Compute the Modal Model +** 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 + +** Position of the accelerometers +There are 23 accelerometers: +- 4 on the bottom granite +- 4 on the top granite +- 4 on top of the translation stage +- 4 on the tilt stage +- 3 on top of the spindle +- 4 on top of the hexapod + +The coordinates defined in the software are displayed below. + +#+begin_src bash :results output :exports results :eval no-export + sed -n 18,40p modal_analysis/acc_coordinates.txt | tac -- +#+end_src + +#+RESULTS: +#+begin_example + 1 1.0000e-001 1.0000e-001 1.1500e+000 0 Top + 2 1.0000e-001 -1.0000e-001 1.1500e+000 0 Top + 3 -1.0000e-001 -1.0000e-001 1.1500e+000 0 Top + 4 -1.0000e-001 1.0000e-001 1.1500e+000 0 Top + 5 4.0000e-001 4.0000e-001 9.5000e-001 0 inner + 6 4.0000e-001 -4.0000e-001 9.5000e-001 0 inner + 7 -4.0000e-001 -4.0000e-001 9.5000e-001 0 inner + 8 -4.0000e-001 4.0000e-001 9.5000e-001 0 inner + 9 5.0000e-001 5.0000e-001 9.0000e-001 0 outer + 10 5.0000e-001 -5.0000e-001 9.0000e-001 0 outer + 11 -5.0000e-001 -5.0000e-001 9.0000e-001 0 outer + 12 -5.0000e-001 5.0000e-001 9.0000e-001 0 outer + 13 5.5000e-001 5.5000e-001 5.5000e-001 0 top + 14 5.5000e-001 -5.5000e-001 5.5000e-001 0 top + 15 -5.5000e-001 -5.5000e-001 5.5000e-001 0 top + 16 -5.5000e-001 5.5000e-001 5.5000e-001 0 top + 17 9.5000e-001 9.5000e-001 4.0000e-001 0 low + 18 9.5000e-001 -9.5000e-001 4.0000e-001 0 low + 19 -9.5000e-001 -9.5000e-001 4.0000e-001 0 low + 20 -9.5000e-001 9.5000e-001 4.0000e-001 0 low + 21 2.0000e-001 2.0000e-001 8.5000e-001 0 bot + 22 0.0000e+000 -2.0000e-001 8.5000e-001 0 bot + 23 -2.0000e-001 2.0000e-001 8.5000e-001 0 bot +#+end_example + +#+name: tab:acc_location +#+caption: Location of each Accelerometer (using the normal coordinate frame with X aligned with the X ray) +| *Node number* | *Solid Body* | *Location* | *X* | *Y* | *Z* | +|---------------+-------------------+------------+-------+-------+------| +| 1 | Hexapod - Top | -X/-Y | -0.10 | -0.10 | 1.15 | +| 2 | | -X/+Y | -0.10 | 0.10 | 1.15 | +| 3 | | +X/+Y | 0.10 | 0.10 | 1.15 | +| 4 | | +X/-Y | 0.10 | -0.10 | 1.15 | +|---------------+-------------------+------------+-------+-------+------| +| 5 | Tilt - Top | -X/-Y | -0.40 | -0.40 | 0.95 | +| 6 | | -X/+Y | -0.40 | 0.40 | 0.95 | +| 7 | | +X/+Y | 0.40 | 0.40 | 0.95 | +| 8 | | +X/-Y | 0.40 | -0.40 | 0.95 | +|---------------+-------------------+------------+-------+-------+------| +| 9 | Translation - Top | -X/-Y | -0.50 | -0.50 | 0.90 | +| 10 | | -X/+Y | -0.50 | 0.50 | 0.90 | +| 11 | | +X/+Y | 0.50 | 0.50 | 0.90 | +| 12 | | +X/-Y | 0.50 | -0.50 | 0.90 | +|---------------+-------------------+------------+-------+-------+------| +| 13 | Top Granite | -X/-Y | -0.55 | -0.50 | 0.55 | +| 14 | | -X/+Y | -0.55 | 0.50 | 0.55 | +| 15 | | +X/+Y | 0.55 | 0.50 | 0.55 | +| 16 | | +X/-Y | 0.55 | -0.50 | 0.55 | +|---------------+-------------------+------------+-------+-------+------| +| 17 | Bottom Granite | -X/-Y | -0.95 | -0.90 | 0.40 | +| 18 | | -X/+Y | -0.95 | 0.90 | 0.40 | +| 19 | | +X/+Y | 0.95 | 0.90 | 0.40 | +| 20 | | +X/-Y | 0.95 | -0.90 | 0.40 | +|---------------+-------------------+------------+-------+-------+------| +| 21 | Spindle - Top | -X/-Y | -0.20 | -0.20 | 0.85 | +| 22 | | +0/+Y | 0.00 | 0.20 | 0.85 | +| 23 | | +X/-Y | 0.20 | -0.20 | 0.85 | + +** Define positions of the accelerometers on matlab +We define the X-Y-Z position of each sensor. +Each line corresponds to one accelerometer, X-Y-Z position in meter. +#+begin_src matlab + positions = [... + -0.10, -0.10, 1.15 ; ... + -0.10, 0.10, 1.15 ; ... + 0.10, 0.10, 1.15 ; ... + 0.10, -0.10, 1.15 ; ... + -0.40, -0.40, 0.95 ; ... + -0.40, 0.40, 0.95 ; ... + 0.40, 0.40, 0.95 ; ... + 0.40, -0.40, 0.95 ; ... + -0.50, -0.50, 0.90 ; ... + -0.50, 0.50, 0.90 ; ... + 0.50, 0.50, 0.90 ; ... + 0.50, -0.50, 0.90 ; ... + -0.55, -0.50, 0.55 ; ... + -0.55, 0.50, 0.55 ; ... + 0.55, 0.50, 0.55 ; ... + 0.55, -0.50, 0.55 ; ... + -0.95, -0.90, 0.40 ; ... + -0.95, 0.90, 0.40 ; ... + 0.95, 0.90, 0.40 ; ... + 0.95, -0.90, 0.40 ; ... + -0.20, -0.20, 0.85 ; ... + 0.00, 0.20, 0.85 ; ... + 0.20, -0.20, 0.85 ]; +#+end_src + + +#+begin_src matlab + figure; + hold on; + fill3(positions(1:4, 1), positions(1:4, 2), positions(1:4, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(5:8, 1), positions(5:8, 2), positions(5:8, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(9:12, 1), positions(9:12, 2), positions(9:12, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(13:16, 1), positions(13:16, 2), positions(13:16, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(17:20, 1), positions(17:20, 2), positions(17:20, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(21:23, 1), positions(21:23, 2), positions(21:23, 3), 'k', 'FaceAlpha', 0.5) + hold off; +#+end_src + +** Import the modal vectors on matlab +*** Mode1 +#+begin_src bash :results output :exports none :eval no-export + sed -n 12,80p modal_analysis/modes_propres_narband.asc +#+end_src + +#+RESULTS: +#+begin_example + 1X+: -9.34637e-002 4.52445e-002 + 1Y+: 2.33790e-001 1.41439e-003 + 1Z+: -1.73754e-002 6.02449e-003 + 2X+: -7.42108e-002 3.91543e-002 + 2Y+: 2.41566e-001 -1.44869e-003 + 2Z+: -5.99285e-003 2.10370e-003 + 4X+: -1.02163e-001 2.79561e-002 + 4Y+: 2.29048e-001 2.89782e-002 + 4Z+: -2.85130e-002 1.77132e-004 + 5X+: -8.77132e-002 3.34081e-002 + 5Y+: 2.14182e-001 2.14655e-002 + 5Z+: -1.54521e-002 1.26682e-002 + 6X+: -7.90143e-002 2.42583e-002 + 6Y+: 2.20669e-001 2.12738e-002 + 6Z+: 4.60755e-002 4.96406e-003 + 7X+: -7.79654e-002 2.58385e-002 + 7Y+: 2.06861e-001 3.48019e-002 + 7Z+: -1.78311e-002 -1.29704e-002 + 8X+: -8.49357e-002 3.55200e-002 + 8Y+: 2.07470e-001 3.59745e-002 + 8Z+: -7.66974e-002 -3.19813e-003 + 9X+: -7.38565e-002 1.95146e-002 + 9Y+: 2.17403e-001 2.01550e-002 + 9Z+: -1.77073e-002 -3.46414e-003 + 10X+: -7.77587e-002 2.36700e-002 + 10Y+: 2.35654e-001 -2.14540e-002 + 10Z+: 7.94165e-002 -2.45897e-002 + 11X+: -8.17972e-002 2.20583e-002 + 11Y+: 2.20906e-001 -4.30164e-003 + 11Z+: -5.60520e-003 3.10187e-003 + 12X+: -8.64261e-002 3.66022e-002 + 12Y+: 2.15000e-001 -5.74661e-003 + 12Z+: -1.22622e-001 4.11767e-002 + 13X+: -4.25169e-002 1.56602e-002 + 13Y+: 5.31036e-002 -1.73951e-002 + 13Z+: -4.07130e-002 1.26884e-002 + 14X+: -3.85032e-002 1.29431e-002 + 14Y+: 5.36716e-002 -1.80868e-002 + 14Z+: 1.00367e-001 -3.48798e-002 + 15X+: -4.25524e-002 1.46363e-002 + 15Y+: 5.19668e-002 -1.69744e-002 + 15Z+: 5.89747e-003 -2.32428e-003 + 16X+: -4.31268e-002 1.38332e-002 + 16Y+: 5.07545e-002 -1.53045e-002 + 16Z+: -1.04172e-001 3.17984e-002 + 17X+: -2.69757e-002 9.07955e-003 + 17Y+: 3.07837e-002 -9.44663e-003 + 17Z+: -7.63502e-003 1.68203e-003 + 18X+: -3.00097e-002 9.23966e-003 + 18Y+: 2.83585e-002 -8.97747e-003 + 18Z+: 1.52467e-001 -4.78675e-002 + 19X+: -2.70223e-002 6.16478e-003 + 19Y+: 3.06149e-002 -6.25382e-003 + 19Z+: -4.84888e-003 1.93970e-003 + 20X+: -2.90976e-002 7.13184e-003 + 20Y+: 3.36738e-002 -7.30875e-003 + 20Z+: -1.66902e-001 3.93419e-002 + 3X+: -9.40720e-002 3.93724e-002 + 3Y+: 2.52307e-001 0.00000e+000 + 3Z+: -1.53864e-002 -9.25720e-004 + 21X+: -7.91940e-002 4.39648e-002 + 21Y+: 2.04567e-001 9.49987e-003 + 21Z+: -1.56087e-002 7.08838e-003 + 22X+: -1.01070e-001 3.13534e-002 + 22Y+: 1.92270e-001 1.80423e-002 + 22Z+: 2.93053e-003 -1.97308e-003 + 23X+: -8.86455e-002 4.29906e-002 + 23Z+: -3.38351e-002 1.81362e-003 + 23Y-: -1.90862e-001 -2.53414e-002 +#+end_example + +#+begin_src matlab + mode1 = [... + -9.34637e-002+j*4.52445e-002, +2.33790e-001+j*1.41439e-003, -1.73754e-002+j*6.02449e-003; + -7.42108e-002+j*3.91543e-002, +2.41566e-001-j*1.44869e-003, -5.99285e-003+j*2.10370e-003; + -9.40720e-002+j*3.93724e-002, +2.52307e-001+j*0.00000e+000, -1.53864e-002-j*9.25720e-004; + -1.02163e-001+j*2.79561e-002, +2.29048e-001+j*2.89782e-002, -2.85130e-002+j*1.77132e-004; + -8.77132e-002+j*3.34081e-002, +2.14182e-001+j*2.14655e-002, -1.54521e-002+j*1.26682e-002; + -7.90143e-002+j*2.42583e-002, +2.20669e-001+j*2.12738e-002, +4.60755e-002+j*4.96406e-003; + -7.79654e-002+j*2.58385e-002, +2.06861e-001+j*3.48019e-002, -1.78311e-002-j*1.29704e-002; + -8.49357e-002+j*3.55200e-002, +2.07470e-001+j*3.59745e-002, -7.66974e-002-j*3.19813e-003; + -7.38565e-002+j*1.95146e-002, +2.17403e-001+j*2.01550e-002, -1.77073e-002-j*3.46414e-003; + -7.77587e-002+j*2.36700e-002, +2.35654e-001-j*2.14540e-002, +7.94165e-002-j*2.45897e-002; + -8.17972e-002+j*2.20583e-002, +2.20906e-001-j*4.30164e-003, -5.60520e-003+j*3.10187e-003; + -8.64261e-002+j*3.66022e-002, +2.15000e-001-j*5.74661e-003, -1.22622e-001+j*4.11767e-002; + -4.25169e-002+j*1.56602e-002, +5.31036e-002-j*1.73951e-002, -4.07130e-002+j*1.26884e-002; + -3.85032e-002+j*1.29431e-002, +5.36716e-002-j*1.80868e-002, +1.00367e-001-j*3.48798e-002; + -4.25524e-002+j*1.46363e-002, +5.19668e-002-j*1.69744e-002, +5.89747e-003-j*2.32428e-003; + -4.31268e-002+j*1.38332e-002, +5.07545e-002-j*1.53045e-002, -1.04172e-001+j*3.17984e-002; + -2.69757e-002+j*9.07955e-003, +3.07837e-002-j*9.44663e-003, -7.63502e-003+j*1.68203e-003; + -3.00097e-002+j*9.23966e-003, +2.83585e-002-j*8.97747e-003, +1.52467e-001-j*4.78675e-002; + -2.70223e-002+j*6.16478e-003, +3.06149e-002-j*6.25382e-003, -4.84888e-003+j*1.93970e-003; + -2.90976e-002+j*7.13184e-003, +3.36738e-002-j*7.30875e-003, -1.66902e-001+j*3.93419e-002; + -7.91940e-002+j*4.39648e-002, +2.04567e-001+j*9.49987e-003, -1.56087e-002+j*7.08838e-003; + -1.01070e-001+j*3.13534e-002, +1.92270e-001+j*1.80423e-002, +2.93053e-003-j*1.97308e-003; + -8.86455e-002+j*4.29906e-002, +1.90862e-001+j*2.53414e-002, -3.38351e-002+j*1.81362e-003]; +#+end_src + +*** Mode2 +#+begin_src bash :results output :exports none :eval no-export + sed -n 88,156p modal_analysis/modes_propres_narband.asc +#+end_src + +#+RESULTS: +#+begin_example + 1X+: 7.56931e-002 3.61548e-002 + 1Y+: 2.07574e-001 1.69205e-004 + 1Z+: 1.29733e-002 -6.78426e-004 + 2X+: 8.58732e-002 2.54470e-002 + 2Y+: 2.07117e-001 -1.31755e-003 + 2Z+: -2.13788e-003 -1.24974e-002 + 4X+: 7.09825e-002 3.66313e-002 + 4Y+: 2.09969e-001 1.11484e-002 + 4Z+: 9.19478e-003 3.47272e-002 + 5X+: 6.23935e-002 1.02488e-002 + 5Y+: 2.30687e-001 -3.58416e-003 + 5Z+: 3.27122e-002 -5.85468e-002 + 6X+: 7.61163e-002 -2.43630e-002 + 6Y+: 2.26743e-001 -1.15334e-002 + 6Z+: -6.20205e-003 -1.21742e-001 + 7X+: 8.01824e-002 -1.94769e-002 + 7Y+: 1.97485e-001 4.50105e-002 + 7Z+: -2.21170e-002 9.77052e-002 + 8X+: 6.19294e-002 8.15075e-003 + 8Y+: 2.03864e-001 4.45835e-002 + 8Z+: 2.55133e-002 1.36137e-001 + 9X+: 4.38135e-002 7.30537e-002 + 9Y+: 2.28426e-001 -6.58868e-003 + 9Z+: 1.16313e-002 5.09427e-004 + 10X+: 5.45770e-002 4.34251e-002 + 10Y+: 2.50823e-001 0.00000e+000 + 10Z+: -4.63460e-002 -4.76868e-002 + 11X+: 5.50987e-002 4.26178e-002 + 11Y+: 2.29394e-001 5.78236e-002 + 11Z+: 1.90158e-002 1.09139e-002 + 12X+: 4.98867e-002 7.30190e-002 + 12Y+: 2.07871e-001 4.57750e-002 + 12Z+: 6.69433e-002 9.00315e-002 + 13X+: 2.48819e-002 3.03222e-002 + 13Y+: -2.56046e-002 -3.34132e-002 + 13Z+: 2.13260e-002 2.58544e-002 + 14X+: 2.45706e-002 2.60221e-002 + 14Y+: -2.57723e-002 -3.35612e-002 + 14Z+: -5.71282e-002 -6.61562e-002 + 15X+: 2.68196e-002 2.83888e-002 + 15Y+: -2.57263e-002 -3.29627e-002 + 15Z+: -2.11722e-003 -3.37239e-003 + 16X+: 2.51442e-002 3.32558e-002 + 16Y+: -2.54372e-002 -3.25062e-002 + 16Z+: 5.65780e-002 7.64142e-002 + 17X+: 1.62437e-002 1.94534e-002 + 17Y+: -1.31293e-002 -2.05924e-002 + 17Z+: 1.05274e-003 3.59474e-003 + 18X+: 1.83431e-002 2.03836e-002 + 18Y+: -1.16818e-002 -1.86334e-002 + 18Z+: -8.66632e-002 -1.08216e-001 + 19X+: 1.62553e-002 1.79588e-002 + 19Y+: -1.28857e-002 -1.90512e-002 + 19Z+: 6.25653e-003 4.97733e-003 + 20X+: 1.63830e-002 2.03943e-002 + 20Y+: -1.48941e-002 -2.11717e-002 + 20Z+: 8.68045e-002 1.16491e-001 + 3X+: 8.17201e-002 2.36079e-002 + 3Y+: 2.15927e-001 1.61300e-002 + 3Z+: -5.48456e-004 2.55691e-002 + 21X+: 6.79204e-002 -5.55513e-002 + 21Y+: 2.32871e-001 2.33389e-002 + 21Z+: 1.34345e-002 -2.31815e-002 + 22X+: 4.02414e-002 -8.38957e-002 + 22Y+: 2.35273e-001 2.73256e-002 + 22Z+: -8.51632e-003 -7.49635e-003 + 23X+: 6.18293e-002 -5.99671e-002 + 23Z+: 1.63533e-002 6.09161e-002 + 23Y-: -2.37693e-001 -4.34204e-002 +#+end_example + +#+begin_src matlab + mode2 = [... + +7.56931e-002+j*3.61548e-002, +2.07574e-001+j*1.69205e-004, +1.29733e-002-j*6.78426e-004; + +8.58732e-002+j*2.54470e-002, +2.07117e-001-j*1.31755e-003, -2.13788e-003-j*1.24974e-002; + +8.17201e-002+j*2.36079e-002, +2.15927e-001+j*1.61300e-002, -5.48456e-004+j*2.55691e-002; + +7.09825e-002+j*3.66313e-002, +2.09969e-001+j*1.11484e-002, +9.19478e-003+j*3.47272e-002; + +6.23935e-002+j*1.02488e-002, +2.30687e-001-j*3.58416e-003, +3.27122e-002-j*5.85468e-002; + +7.61163e-002-j*2.43630e-002, +2.26743e-001-j*1.15334e-002, -6.20205e-003-j*1.21742e-001; + +8.01824e-002-j*1.94769e-002, +1.97485e-001+j*4.50105e-002, -2.21170e-002+j*9.77052e-002; + +6.19294e-002+j*8.15075e-003, +2.03864e-001+j*4.45835e-002, +2.55133e-002+j*1.36137e-001; + +4.38135e-002+j*7.30537e-002, +2.28426e-001-j*6.58868e-003, +1.16313e-002+j*5.09427e-004; + +5.45770e-002+j*4.34251e-002, +2.50823e-001+j*0.00000e+000, -4.63460e-002-j*4.76868e-002; + +5.50987e-002+j*4.26178e-002, +2.29394e-001+j*5.78236e-002, +1.90158e-002+j*1.09139e-002; + +4.98867e-002+j*7.30190e-002, +2.07871e-001+j*4.57750e-002, +6.69433e-002+j*9.00315e-002; + +2.48819e-002+j*3.03222e-002, -2.56046e-002-j*3.34132e-002, +2.13260e-002+j*2.58544e-002; + +2.45706e-002+j*2.60221e-002, -2.57723e-002-j*3.35612e-002, -5.71282e-002-j*6.61562e-002; + +2.68196e-002+j*2.83888e-002, -2.57263e-002-j*3.29627e-002, -2.11722e-003-j*3.37239e-003; + +2.51442e-002+j*3.32558e-002, -2.54372e-002-j*3.25062e-002, +5.65780e-002+j*7.64142e-002; + +1.62437e-002+j*1.94534e-002, -1.31293e-002-j*2.05924e-002, +1.05274e-003+j*3.59474e-003; + +1.83431e-002+j*2.03836e-002, -1.16818e-002-j*1.86334e-002, -8.66632e-002-j*1.08216e-001; + +1.62553e-002+j*1.79588e-002, -1.28857e-002-j*1.90512e-002, +6.25653e-003+j*4.97733e-003; + +1.63830e-002+j*2.03943e-002, -1.48941e-002-j*2.11717e-002, +8.68045e-002+j*1.16491e-001; + +6.79204e-002-j*5.55513e-002, +2.32871e-001+j*2.33389e-002, +1.34345e-002-j*2.31815e-002; + +4.02414e-002-j*8.38957e-002, +2.35273e-001+j*2.73256e-002, -8.51632e-003-j*7.49635e-003; + +6.18293e-002-j*5.99671e-002, +2.37693e-001+j*4.34204e-002, +1.63533e-002+j*6.09161e-002] +#+end_src + +*** Mode3 +#+begin_src bash :results output :exports none :eval no-export + sed -n 164,232p modal_analysis/modes_propres_narband.asc +#+end_src + +#+RESULTS: +#+begin_example + 1X+: 1.34688e-001 -6.65071e-002 + 1Y+: 1.55316e-002 1.01277e-002 + 1Z+: -5.88466e-002 1.14294e-002 + 2X+: 1.53934e-001 -9.76990e-003 + 2Y+: 7.17487e-003 1.11925e-002 + 2Z+: -4.57205e-002 7.26573e-003 + 4X+: 1.37298e-001 -5.24661e-002 + 4Y+: 1.19427e-003 -5.39240e-002 + 4Z+: -1.25915e-002 5.38133e-003 + 5X+: 2.43192e-001 -3.17374e-002 + 5Y+: -2.15730e-001 -7.69941e-004 + 5Z+: -1.56268e-001 1.44118e-002 + 6X+: -7.27705e-002 -3.54943e-003 + 6Y+: -2.47706e-001 2.66480e-003 + 6Z+: -1.21590e-001 1.06054e-002 + 7X+: -7.25870e-002 -4.62024e-003 + 7Y+: 2.27073e-001 -3.69315e-002 + 7Z+: 1.22611e-001 -6.67337e-003 + 8X+: 2.32731e-001 -2.85516e-002 + 8Y+: 2.35389e-001 -3.81905e-002 + 8Z+: 5.35574e-002 4.30394e-004 + 9X+: 2.64170e-001 -2.67367e-002 + 9Y+: -2.56227e-001 3.97957e-005 + 9Z+: -1.95398e-001 2.23549e-002 + 10X+: -1.66953e-002 -7.95698e-003 + 10Y+: -2.66547e-001 -2.17687e-002 + 10Z+: 1.56278e-002 2.23786e-003 + 11X+: -3.42364e-002 -9.30205e-003 + 11Y+: 2.52340e-001 -7.47237e-003 + 11Z+: -9.51643e-004 3.64798e-003 + 12X+: 2.97574e-001 0.00000e+000 + 12Y+: 2.23170e-001 -1.37831e-002 + 12Z+: 1.06266e-001 2.30324e-003 + 13X+: 2.67178e-002 -4.15723e-004 + 13Y+: 6.75423e-003 -2.18428e-003 + 13Z+: -1.69423e-002 3.12395e-003 + 14X+: -1.12283e-002 2.86316e-004 + 14Y+: 5.08225e-003 -2.14053e-003 + 14Z+: 2.18339e-002 -3.25204e-003 + 15X+: -1.17948e-002 6.82873e-004 + 15Y+: 1.94914e-002 -2.42151e-003 + 15Z+: 2.68660e-003 -2.92104e-004 + 16X+: 1.19490e-002 1.72236e-005 + 16Y+: 1.83552e-002 -2.71289e-003 + 16Z+: -2.70914e-002 4.84164e-003 + 17X+: 1.00173e-002 -5.80552e-005 + 17Y+: -3.87262e-003 -1.19607e-003 + 17Z+: -8.53809e-003 1.48424e-003 + 18X+: -1.22262e-002 5.13096e-004 + 18Y+: -5.73905e-003 -1.07659e-003 + 18Z+: 3.51730e-002 -6.13814e-003 + 19X+: -1.43735e-002 -4.78552e-004 + 19Y+: 2.31135e-002 -6.30554e-004 + 19Z+: 1.80171e-003 -1.98835e-004 + 20X+: 9.17792e-003 5.36661e-004 + 20Y+: 2.18969e-002 -5.81759e-004 + 20Z+: -3.72117e-002 5.35813e-003 + 3X+: 1.61551e-001 1.65478e-002 + 3Y+: -4.12527e-004 -5.60909e-002 + 3Z+: -9.00640e-003 3.50754e-003 + 21X+: 3.38754e-002 -3.38703e-002 + 21Y+: -2.20843e-002 2.78581e-002 + 21Z+: -8.79541e-002 -3.67473e-003 + 22X+: 3.93064e-002 4.69476e-002 + 22Y+: -1.69132e-002 -1.04606e-002 + 22Z+: -1.85351e-002 1.33750e-003 + 23X+: 3.60396e-002 -2.46238e-002 + 23Z+: 3.57722e-003 3.64827e-003 + 23Y-: 1.92038e-002 6.65895e-002 +#+end_example + +#+begin_src matlab + mode3 = [... + +1.34688e-001-j*6.65071e-002, +1.55316e-002+j*1.01277e-002, -5.88466e-002+j*1.14294e-002; + +1.53934e-001-j*9.76990e-003, +7.17487e-003+j*1.11925e-002, -4.57205e-002+j*7.26573e-003; + +1.61551e-001+j*1.65478e-002, -4.12527e-004-j*5.60909e-002, -9.00640e-003+j*3.50754e-003; + +1.37298e-001-j*5.24661e-002, +1.19427e-003-j*5.39240e-002, -1.25915e-002+j*5.38133e-003; + +2.43192e-001-j*3.17374e-002, -2.15730e-001-j*7.69941e-004, -1.56268e-001+j*1.44118e-002; + -7.27705e-002-j*3.54943e-003, -2.47706e-001+j*2.66480e-003, -1.21590e-001+j*1.06054e-002; + -7.25870e-002-j*4.62024e-003, +2.27073e-001-j*3.69315e-002, +1.22611e-001-j*6.67337e-003; + +2.32731e-001-j*2.85516e-002, +2.35389e-001-j*3.81905e-002, +5.35574e-002+j*4.30394e-004; + +2.64170e-001-j*2.67367e-002, -2.56227e-001+j*3.97957e-005, -1.95398e-001+j*2.23549e-002; + -1.66953e-002-j*7.95698e-003, -2.66547e-001-j*2.17687e-002, +1.56278e-002+j*2.23786e-003; + -3.42364e-002-j*9.30205e-003, +2.52340e-001-j*7.47237e-003, -9.51643e-004+j*3.64798e-003; + +2.97574e-001+j*0.00000e+000, +2.23170e-001-j*1.37831e-002, +1.06266e-001+j*2.30324e-003; + +2.67178e-002-j*4.15723e-004, +6.75423e-003-j*2.18428e-003, -1.69423e-002+j*3.12395e-003; + -1.12283e-002+j*2.86316e-004, +5.08225e-003-j*2.14053e-003, +2.18339e-002-j*3.25204e-003; + -1.17948e-002+j*6.82873e-004, +1.94914e-002-j*2.42151e-003, +2.68660e-003-j*2.92104e-004; + +1.19490e-002+j*1.72236e-005, +1.83552e-002-j*2.71289e-003, -2.70914e-002+j*4.84164e-003; + +1.00173e-002-j*5.80552e-005, -3.87262e-003-j*1.19607e-003, -8.53809e-003+j*1.48424e-003; + -1.22262e-002+j*5.13096e-004, -5.73905e-003-j*1.07659e-003, +3.51730e-002-j*6.13814e-003; + -1.43735e-002-j*4.78552e-004, +2.31135e-002-j*6.30554e-004, +1.80171e-003-j*1.98835e-004; + +9.17792e-003+j*5.36661e-004, +2.18969e-002-j*5.81759e-004, -3.72117e-002+j*5.35813e-003; + +3.38754e-002-j*3.38703e-002, -2.20843e-002+j*2.78581e-002, -8.79541e-002-j*3.67473e-003; + +3.93064e-002+j*4.69476e-002, -1.69132e-002-j*1.04606e-002, -1.85351e-002+j*1.33750e-003; + +3.60396e-002-j*2.46238e-002, -1.92038e-002-j*6.65895e-002, +3.57722e-003+j*3.64827e-003]; +#+end_src + +*** Mode4 +#+begin_src bash :results output :exports none :eval no-export + sed -n 240,308p modal_analysis/modes_propres_narband.asc +#+end_src + +#+RESULTS: +#+begin_example + 1X+: -1.02501e-001 -1.43802e-001 + 1Y+: -1.07971e-001 5.61418e-004 + 1Z+: 1.87145e-001 -1.03605e-001 + 2X+: -9.44764e-002 -1.36856e-001 + 2Y+: -1.04428e-001 5.27790e-003 + 2Z+: 1.60710e-001 -7.74212e-002 + 4X+: -9.17242e-002 -1.36656e-001 + 4Y+: -1.34249e-001 -1.03884e-002 + 4Z+: 1.92123e-001 -1.25627e-001 + 5X+: 1.05875e-002 -1.03886e-001 + 5Y+: -8.26338e-002 3.58498e-002 + 5Z+: 2.55819e-001 -6.94290e-003 + 6X+: -4.58970e-002 -1.33904e-002 + 6Y+: -9.41660e-002 4.99682e-002 + 6Z+: 1.28276e-001 4.59685e-002 + 7X+: -6.01521e-002 -1.30165e-002 + 7Y+: 2.56439e-003 -6.78141e-002 + 7Z+: 5.03428e-002 -1.59420e-001 + 8X+: -1.00895e-002 -8.80550e-002 + 8Y+: 1.26327e-002 -8.14444e-002 + 8Z+: 1.59506e-001 -2.05360e-001 + 9X+: -3.04658e-003 -1.57921e-001 + 9Y+: -8.23501e-002 4.82748e-002 + 9Z+: 1.69315e-001 1.22804e-002 + 10X+: -8.25875e-002 -7.31038e-002 + 10Y+: -1.08668e-001 3.56364e-002 + 10Z+: 8.28567e-002 -4.49596e-003 + 11X+: -1.06792e-001 -6.95394e-002 + 11Y+: 3.77195e-002 -7.65410e-002 + 11Z+: 8.00590e-003 -2.32461e-002 + 12X+: -4.84292e-002 -1.45790e-001 + 12Y+: 1.03862e-002 -7.31212e-002 + 12Z+: 1.78122e-001 -1.00939e-001 + 13X+: -3.49891e-002 -6.20969e-003 + 13Y+: -1.18504e-002 -1.94225e-002 + 13Z+: 4.13007e-002 7.67087e-003 + 14X+: -3.55795e-002 1.16708e-003 + 14Y+: -1.68128e-002 -1.82344e-002 + 14Z+: 3.92416e-002 -3.64434e-002 + 15X+: -3.45304e-002 3.78185e-003 + 15Y+: -7.62559e-003 -2.24241e-002 + 15Z+: 6.28286e-003 -1.32711e-002 + 16X+: -9.95646e-003 -6.04395e-003 + 16Y+: -8.73465e-003 -2.20807e-002 + 16Z+: 3.56946e-002 1.69231e-002 + 17X+: -9.32661e-003 -5.51944e-003 + 17Y+: -1.91087e-002 -9.09191e-003 + 17Z+: 4.04981e-002 8.38685e-004 + 18X+: -2.84456e-002 4.02762e-003 + 18Y+: -2.20044e-002 -8.86197e-003 + 18Z+: 4.43051e-002 -5.21033e-002 + 19X+: -3.27019e-002 3.59765e-003 + 19Y+: 2.93163e-003 -2.05064e-002 + 19Z+: -1.77289e-002 -1.29477e-002 + 20X+: -1.08474e-002 -5.78419e-003 + 20Y+: 3.86759e-003 -1.91642e-002 + 20Z+: 2.10135e-002 3.18051e-002 + 3X+: -9.11657e-002 -1.36611e-001 + 3Y+: -1.78165e-001 -3.47193e-002 + 3Z+: 2.37121e-001 -4.96494e-002 + 21X+: -1.34808e-002 -9.69121e-003 + 21Y+: 1.25218e-002 -2.71411e-002 + 21Z+: 2.76673e-001 0.00000e+000 + 22X+: 1.96744e-003 4.90797e-003 + 22Y+: -9.82609e-004 -3.31065e-002 + 22Z+: 1.79246e-001 -3.33238e-002 + 23X+: -1.08728e-002 -8.80278e-003 + 23Z+: 2.30814e-001 -8.33151e-002 + 23Y-: 1.15217e-002 4.01143e-002 +#+end_example + +#+begin_src matlab + mode4 = [... + -1.02501e-001-j*1.43802e-001, -1.07971e-001+j*5.61418e-004, +1.87145e-001-j*1.03605e-001; + -9.44764e-002-j*1.36856e-001, -1.04428e-001+j*5.27790e-003, +1.60710e-001-j*7.74212e-002; + -9.11657e-002-j*1.36611e-001, -1.78165e-001-j*3.47193e-002, +2.37121e-001-j*4.96494e-002; + -9.17242e-002-j*1.36656e-001, -1.34249e-001-j*1.03884e-002, +1.92123e-001-j*1.25627e-001; + +1.05875e-002-j*1.03886e-001, -8.26338e-002+j*3.58498e-002, +2.55819e-001-j*6.94290e-003; + -4.58970e-002-j*1.33904e-002, -9.41660e-002+j*4.99682e-002, +1.28276e-001+j*4.59685e-002; + -6.01521e-002-j*1.30165e-002, +2.56439e-003-j*6.78141e-002, +5.03428e-002-j*1.59420e-001; + -1.00895e-002-j*8.80550e-002, +1.26327e-002-j*8.14444e-002, +1.59506e-001-j*2.05360e-001; + -3.04658e-003-j*1.57921e-001, -8.23501e-002+j*4.82748e-002, +1.69315e-001+j*1.22804e-002; + -8.25875e-002-j*7.31038e-002, -1.08668e-001+j*3.56364e-002, +8.28567e-002-j*4.49596e-003; + -1.06792e-001-j*6.95394e-002, +3.77195e-002-j*7.65410e-002, +8.00590e-003-j*2.32461e-002; + -4.84292e-002-j*1.45790e-001, +1.03862e-002-j*7.31212e-002, +1.78122e-001-j*1.00939e-001; + -3.49891e-002-j*6.20969e-003, -1.18504e-002-j*1.94225e-002, +4.13007e-002+j*7.67087e-003; + -3.55795e-002+j*1.16708e-003, -1.68128e-002-j*1.82344e-002, +3.92416e-002-j*3.64434e-002; + -3.45304e-002+j*3.78185e-003, -7.62559e-003-j*2.24241e-002, +6.28286e-003-j*1.32711e-002; + -9.95646e-003-j*6.04395e-003, -8.73465e-003-j*2.20807e-002, +3.56946e-002+j*1.69231e-002; + -9.32661e-003-j*5.51944e-003, -1.91087e-002-j*9.09191e-003, +4.04981e-002+j*8.38685e-004; + -2.84456e-002+j*4.02762e-003, -2.20044e-002-j*8.86197e-003, +4.43051e-002-j*5.21033e-002; + -3.27019e-002+j*3.59765e-003, +2.93163e-003-j*2.05064e-002, -1.77289e-002-j*1.29477e-002; + -1.08474e-002-j*5.78419e-003, +3.86759e-003-j*1.91642e-002, +2.10135e-002+j*3.18051e-002; + -1.34808e-002-j*9.69121e-003, +1.25218e-002-j*2.71411e-002, +2.76673e-001+j*0.00000e+000; + +1.96744e-003+j*4.90797e-003, -9.82609e-004-j*3.31065e-002, +1.79246e-001-j*3.33238e-002; + -1.08728e-002-j*8.80278e-003, -1.15217e-002-j*4.01143e-002, +2.30814e-001-j*8.33151e-002]; +#+end_src + +*** All modes +#+begin_src matlab +mode_shapes = zeros(23, 3, 10); + +mode_shapes(:, :, 1) = [... +-9.34637e-002+j*4.52445e-002, +2.33790e-001+j*1.41439e-003, -1.73754e-002+j*6.02449e-003; +-7.42108e-002+j*3.91543e-002, +2.41566e-001-j*1.44869e-003, -5.99285e-003+j*2.10370e-003; +-9.40720e-002+j*3.93724e-002, +2.52307e-001+j*0.00000e+000, -1.53864e-002-j*9.25720e-004; +-1.02163e-001+j*2.79561e-002, +2.29048e-001+j*2.89782e-002, -2.85130e-002+j*1.77132e-004; +-8.77132e-002+j*3.34081e-002, +2.14182e-001+j*2.14655e-002, -1.54521e-002+j*1.26682e-002; +-7.90143e-002+j*2.42583e-002, +2.20669e-001+j*2.12738e-002, +4.60755e-002+j*4.96406e-003; +-7.79654e-002+j*2.58385e-002, +2.06861e-001+j*3.48019e-002, -1.78311e-002-j*1.29704e-002; +-8.49357e-002+j*3.55200e-002, +2.07470e-001+j*3.59745e-002, -7.66974e-002-j*3.19813e-003; +-7.38565e-002+j*1.95146e-002, +2.17403e-001+j*2.01550e-002, -1.77073e-002-j*3.46414e-003; +-7.77587e-002+j*2.36700e-002, +2.35654e-001-j*2.14540e-002, +7.94165e-002-j*2.45897e-002; +-8.17972e-002+j*2.20583e-002, +2.20906e-001-j*4.30164e-003, -5.60520e-003+j*3.10187e-003; +-8.64261e-002+j*3.66022e-002, +2.15000e-001-j*5.74661e-003, -1.22622e-001+j*4.11767e-002; +-4.25169e-002+j*1.56602e-002, +5.31036e-002-j*1.73951e-002, -4.07130e-002+j*1.26884e-002; +-3.85032e-002+j*1.29431e-002, +5.36716e-002-j*1.80868e-002, +1.00367e-001-j*3.48798e-002; +-4.25524e-002+j*1.46363e-002, +5.19668e-002-j*1.69744e-002, +5.89747e-003-j*2.32428e-003; +-4.31268e-002+j*1.38332e-002, +5.07545e-002-j*1.53045e-002, -1.04172e-001+j*3.17984e-002; +-2.69757e-002+j*9.07955e-003, +3.07837e-002-j*9.44663e-003, -7.63502e-003+j*1.68203e-003; +-3.00097e-002+j*9.23966e-003, +2.83585e-002-j*8.97747e-003, +1.52467e-001-j*4.78675e-002; +-2.70223e-002+j*6.16478e-003, +3.06149e-002-j*6.25382e-003, -4.84888e-003+j*1.93970e-003; +-2.90976e-002+j*7.13184e-003, +3.36738e-002-j*7.30875e-003, -1.66902e-001+j*3.93419e-002; +-7.91940e-002+j*4.39648e-002, +2.04567e-001+j*9.49987e-003, -1.56087e-002+j*7.08838e-003; +-1.01070e-001+j*3.13534e-002, +1.92270e-001+j*1.80423e-002, +2.93053e-003-j*1.97308e-003; +-8.86455e-002+j*4.29906e-002, -3.38351e-002+j*1.81362e-003, +1.90862e-001+j*2.53414e-002]; + +mode_shapes(:, :, 2) = [... ++7.56931e-002+j*3.61548e-002, +2.07574e-001+j*1.69205e-004, +1.29733e-002-j*6.78426e-004; ++8.58732e-002+j*2.54470e-002, +2.07117e-001-j*1.31755e-003, -2.13788e-003-j*1.24974e-002; ++8.17201e-002+j*2.36079e-002, +2.15927e-001+j*1.61300e-002, -5.48456e-004+j*2.55691e-002; ++7.09825e-002+j*3.66313e-002, +2.09969e-001+j*1.11484e-002, +9.19478e-003+j*3.47272e-002; ++6.23935e-002+j*1.02488e-002, +2.30687e-001-j*3.58416e-003, +3.27122e-002-j*5.85468e-002; ++7.61163e-002-j*2.43630e-002, +2.26743e-001-j*1.15334e-002, -6.20205e-003-j*1.21742e-001; ++8.01824e-002-j*1.94769e-002, +1.97485e-001+j*4.50105e-002, -2.21170e-002+j*9.77052e-002; ++6.19294e-002+j*8.15075e-003, +2.03864e-001+j*4.45835e-002, +2.55133e-002+j*1.36137e-001; ++4.38135e-002+j*7.30537e-002, +2.28426e-001-j*6.58868e-003, +1.16313e-002+j*5.09427e-004; ++5.45770e-002+j*4.34251e-002, +2.50823e-001+j*0.00000e+000, -4.63460e-002-j*4.76868e-002; ++5.50987e-002+j*4.26178e-002, +2.29394e-001+j*5.78236e-002, +1.90158e-002+j*1.09139e-002; ++4.98867e-002+j*7.30190e-002, +2.07871e-001+j*4.57750e-002, +6.69433e-002+j*9.00315e-002; ++2.48819e-002+j*3.03222e-002, -2.56046e-002-j*3.34132e-002, +2.13260e-002+j*2.58544e-002; ++2.45706e-002+j*2.60221e-002, -2.57723e-002-j*3.35612e-002, -5.71282e-002-j*6.61562e-002; ++2.68196e-002+j*2.83888e-002, -2.57263e-002-j*3.29627e-002, -2.11722e-003-j*3.37239e-003; ++2.51442e-002+j*3.32558e-002, -2.54372e-002-j*3.25062e-002, +5.65780e-002+j*7.64142e-002; ++1.62437e-002+j*1.94534e-002, -1.31293e-002-j*2.05924e-002, +1.05274e-003+j*3.59474e-003; ++1.83431e-002+j*2.03836e-002, -1.16818e-002-j*1.86334e-002, -8.66632e-002-j*1.08216e-001; ++1.62553e-002+j*1.79588e-002, -1.28857e-002-j*1.90512e-002, +6.25653e-003+j*4.97733e-003; ++1.63830e-002+j*2.03943e-002, -1.48941e-002-j*2.11717e-002, +8.68045e-002+j*1.16491e-001; ++6.79204e-002-j*5.55513e-002, +2.32871e-001+j*2.33389e-002, +1.34345e-002-j*2.31815e-002; ++4.02414e-002-j*8.38957e-002, +2.35273e-001+j*2.73256e-002, -8.51632e-003-j*7.49635e-003; ++6.18293e-002-j*5.99671e-002, +1.63533e-002+j*6.09161e-002, +2.37693e-001+j*4.34204e-002]; + +mode_shapes(:, :, 3) = [... ++1.34688e-001-j*6.65071e-002, +1.55316e-002+j*1.01277e-002, -5.88466e-002+j*1.14294e-002; ++1.53934e-001-j*9.76990e-003, +7.17487e-003+j*1.11925e-002, -4.57205e-002+j*7.26573e-003; ++1.61551e-001+j*1.65478e-002, -4.12527e-004-j*5.60909e-002, -9.00640e-003+j*3.50754e-003; ++1.37298e-001-j*5.24661e-002, +1.19427e-003-j*5.39240e-002, -1.25915e-002+j*5.38133e-003; ++2.43192e-001-j*3.17374e-002, -2.15730e-001-j*7.69941e-004, -1.56268e-001+j*1.44118e-002; +-7.27705e-002-j*3.54943e-003, -2.47706e-001+j*2.66480e-003, -1.21590e-001+j*1.06054e-002; +-7.25870e-002-j*4.62024e-003, +2.27073e-001-j*3.69315e-002, +1.22611e-001-j*6.67337e-003; ++2.32731e-001-j*2.85516e-002, +2.35389e-001-j*3.81905e-002, +5.35574e-002+j*4.30394e-004; ++2.64170e-001-j*2.67367e-002, -2.56227e-001+j*3.97957e-005, -1.95398e-001+j*2.23549e-002; +-1.66953e-002-j*7.95698e-003, -2.66547e-001-j*2.17687e-002, +1.56278e-002+j*2.23786e-003; +-3.42364e-002-j*9.30205e-003, +2.52340e-001-j*7.47237e-003, -9.51643e-004+j*3.64798e-003; ++2.97574e-001+j*0.00000e+000, +2.23170e-001-j*1.37831e-002, +1.06266e-001+j*2.30324e-003; ++2.67178e-002-j*4.15723e-004, +6.75423e-003-j*2.18428e-003, -1.69423e-002+j*3.12395e-003; +-1.12283e-002+j*2.86316e-004, +5.08225e-003-j*2.14053e-003, +2.18339e-002-j*3.25204e-003; +-1.17948e-002+j*6.82873e-004, +1.94914e-002-j*2.42151e-003, +2.68660e-003-j*2.92104e-004; ++1.19490e-002+j*1.72236e-005, +1.83552e-002-j*2.71289e-003, -2.70914e-002+j*4.84164e-003; ++1.00173e-002-j*5.80552e-005, -3.87262e-003-j*1.19607e-003, -8.53809e-003+j*1.48424e-003; +-1.22262e-002+j*5.13096e-004, -5.73905e-003-j*1.07659e-003, +3.51730e-002-j*6.13814e-003; +-1.43735e-002-j*4.78552e-004, +2.31135e-002-j*6.30554e-004, +1.80171e-003-j*1.98835e-004; ++9.17792e-003+j*5.36661e-004, +2.18969e-002-j*5.81759e-004, -3.72117e-002+j*5.35813e-003; ++3.38754e-002-j*3.38703e-002, -2.20843e-002+j*2.78581e-002, -8.79541e-002-j*3.67473e-003; ++3.93064e-002+j*4.69476e-002, -1.69132e-002-j*1.04606e-002, -1.85351e-002+j*1.33750e-003; ++3.60396e-002-j*2.46238e-002, +3.57722e-003+j*3.64827e-003, -1.92038e-002-j*6.65895e-002]; + +mode_shapes(:, :, 4) = [... +-1.02501e-001-j*1.43802e-001, -1.07971e-001+j*5.61418e-004, +1.87145e-001-j*1.03605e-001; +-9.44764e-002-j*1.36856e-001, -1.04428e-001+j*5.27790e-003, +1.60710e-001-j*7.74212e-002; +-9.11657e-002-j*1.36611e-001, -1.78165e-001-j*3.47193e-002, +2.37121e-001-j*4.96494e-002; +-9.17242e-002-j*1.36656e-001, -1.34249e-001-j*1.03884e-002, +1.92123e-001-j*1.25627e-001; ++1.05875e-002-j*1.03886e-001, -8.26338e-002+j*3.58498e-002, +2.55819e-001-j*6.94290e-003; +-4.58970e-002-j*1.33904e-002, -9.41660e-002+j*4.99682e-002, +1.28276e-001+j*4.59685e-002; +-6.01521e-002-j*1.30165e-002, +2.56439e-003-j*6.78141e-002, +5.03428e-002-j*1.59420e-001; +-1.00895e-002-j*8.80550e-002, +1.26327e-002-j*8.14444e-002, +1.59506e-001-j*2.05360e-001; +-3.04658e-003-j*1.57921e-001, -8.23501e-002+j*4.82748e-002, +1.69315e-001+j*1.22804e-002; +-8.25875e-002-j*7.31038e-002, -1.08668e-001+j*3.56364e-002, +8.28567e-002-j*4.49596e-003; +-1.06792e-001-j*6.95394e-002, +3.77195e-002-j*7.65410e-002, +8.00590e-003-j*2.32461e-002; +-4.84292e-002-j*1.45790e-001, +1.03862e-002-j*7.31212e-002, +1.78122e-001-j*1.00939e-001; +-3.49891e-002-j*6.20969e-003, -1.18504e-002-j*1.94225e-002, +4.13007e-002+j*7.67087e-003; +-3.55795e-002+j*1.16708e-003, -1.68128e-002-j*1.82344e-002, +3.92416e-002-j*3.64434e-002; +-3.45304e-002+j*3.78185e-003, -7.62559e-003-j*2.24241e-002, +6.28286e-003-j*1.32711e-002; +-9.95646e-003-j*6.04395e-003, -8.73465e-003-j*2.20807e-002, +3.56946e-002+j*1.69231e-002; +-9.32661e-003-j*5.51944e-003, -1.91087e-002-j*9.09191e-003, +4.04981e-002+j*8.38685e-004; +-2.84456e-002+j*4.02762e-003, -2.20044e-002-j*8.86197e-003, +4.43051e-002-j*5.21033e-002; +-3.27019e-002+j*3.59765e-003, +2.93163e-003-j*2.05064e-002, -1.77289e-002-j*1.29477e-002; +-1.08474e-002-j*5.78419e-003, +3.86759e-003-j*1.91642e-002, +2.10135e-002+j*3.18051e-002; +-1.34808e-002-j*9.69121e-003, +1.25218e-002-j*2.71411e-002, +2.76673e-001+j*0.00000e+000; ++1.96744e-003+j*4.90797e-003, -9.82609e-004-j*3.31065e-002, +1.79246e-001-j*3.33238e-002; +-1.08728e-002-j*8.80278e-003, +2.30814e-001-j*8.33151e-002, -1.15217e-002-j*4.01143e-002]; + +mode_shapes(:, :, 5) = [... ++3.55328e-001+j*0.00000e+000, +6.67612e-002+j*5.48020e-002, +3.03237e-002+j*5.29473e-004; ++3.16372e-001-j*3.84091e-002, +5.27472e-002+j*5.88474e-002, +2.86305e-002-j*1.74805e-002; ++3.00803e-001-j*1.36309e-002, +7.04883e-002+j*1.24492e-001, +7.23329e-002+j*2.33738e-002; ++3.32527e-001-j*2.26876e-004, +9.82263e-002+j*1.20397e-001, +9.86580e-002+j*3.55048e-002; ++4.96498e-002+j*2.31008e-002, +9.79716e-002+j*1.42500e-002, -1.15121e-001-j*3.59085e-002; ++1.41924e-001+j*2.16209e-002, +8.76030e-002+j*6.39650e-003, -8.75727e-002-j*3.71261e-002; ++1.41522e-001+j*1.96964e-002, -1.01959e-001+j*4.10992e-004, +2.14744e-001+j*4.91249e-002; ++4.33170e-002+j*1.84481e-002, -8.24640e-002+j*3.42475e-003, +2.32281e-001+j*5.40699e-002; ++1.47782e-001+j*4.93091e-002, +8.75397e-002+j*7.75318e-004, -6.80833e-002-j*9.72902e-003; ++2.00055e-001+j*3.81689e-002, +8.06886e-002+j*1.19008e-002, -1.40810e-002-j*1.12625e-002; ++1.96526e-001+j*3.87737e-002, -8.42766e-002+j*9.20233e-003, +1.02951e-001+j*3.37680e-002; ++1.25035e-001+j*4.67796e-002, -8.81307e-002+j*5.81039e-004, +7.94320e-002+j*2.19736e-002; ++2.03946e-002+j*2.50162e-002, +7.93788e-002-j*1.40794e-002, -4.15470e-002+j*4.95855e-004; ++6.56876e-002-j*2.14826e-002, +8.21523e-002-j*1.94792e-002, +3.44089e-002+j*2.32727e-003; ++5.98960e-002-j*2.17160e-002, +4.74914e-002+j*2.31386e-002, +3.58704e-002+j*1.13591e-003; ++1.91580e-002+j*2.15329e-002, +5.14631e-002+j*1.70019e-002, -3.90820e-002-j*9.20853e-003; ++8.98876e-003+j*2.56390e-002, +7.93497e-002-j*2.34846e-002, -5.61039e-002-j*3.03271e-003; ++5.72051e-002-j*2.29477e-002, +8.76985e-002-j*2.73606e-002, +5.13896e-002+j*8.58341e-003; ++6.71099e-002-j*2.67997e-002, +1.80119e-002+j*4.02601e-002, +6.40092e-002+j*7.11273e-003; ++1.48349e-002+j*2.57533e-002, +1.35189e-002+j*3.69351e-002, -3.31024e-002-j*1.65471e-002; ++2.52156e-002-j*4.65138e-003, +7.94380e-004+j*1.56790e-002, +1.01067e-002-j*3.35468e-003; ++3.30841e-002+j*6.73531e-003, +1.69827e-004+j*9.48996e-003, +8.16746e-002+j*1.39885e-002; ++2.91404e-002-j*2.43138e-003, +1.38761e-001+j*3.67410e-002, -4.17833e-003+j*8.35629e-004]; + +mode_shapes(:, :, 6) = [... ++3.76055e-001-j*2.00477e-002, -2.18528e-002-j*2.46738e-001, -2.01369e-002-j*2.48481e-002; ++3.73870e-001-j*6.46353e-002, -3.66940e-002-j*2.49113e-001, -9.20410e-002-j*2.72520e-002; ++3.71070e-001-j*4.42411e-003, +5.79596e-002-j*2.58311e-001, +2.62275e-003+j*9.26708e-003; ++3.82440e-001+j*0.00000e+000, +3.30266e-002-j*2.08256e-001, +7.22558e-002+j*1.47204e-002; +-3.73785e-003+j*3.81592e-002, +4.74482e-002+j*5.41354e-002, -5.78227e-002-j*8.70215e-002; ++6.08721e-002+j*7.20835e-002, +5.73258e-002+j*5.38176e-002, -3.34121e-002-j*8.54509e-002; ++5.96968e-002+j*8.31733e-002, -7.64618e-002-j*4.19504e-002, +3.48953e-002+j*4.79635e-002; +-1.41532e-003+j*3.79318e-002, -6.79853e-002-j*3.88324e-002, +6.64542e-002+j*9.20955e-002; ++2.96044e-002+j*7.83613e-002, +4.91378e-002+j*4.74080e-002, -2.15758e-002-j*5.51292e-002; ++3.52566e-002+j*1.00976e-001, +4.16302e-002+j*5.95793e-002, -1.83944e-002-j*5.09313e-002; ++3.49287e-002+j*1.10404e-001, -5.46487e-002-j*3.95054e-002, +1.88545e-002+j*3.82156e-002; ++1.70173e-002+j*8.68762e-002, -5.52511e-002-j*4.46179e-002, +7.63555e-003+j*6.17646e-002; +-8.22469e-004-j*1.81402e-002, -1.96193e-003-j*2.76646e-002, -1.97033e-003+j*1.06615e-002; +-1.16438e-003-j*2.68725e-002, -1.11909e-003-j*2.38894e-002, +1.50332e-003+j*1.31644e-002; +-1.77060e-003-j*2.77807e-002, -1.01121e-003-j*2.37147e-002, -2.45798e-003-j*1.41886e-002; +-1.85500e-003-j*2.20304e-002, -4.77462e-004-j*2.19932e-002, -6.85097e-003-j*7.04903e-003; +-6.77197e-004-j*1.56812e-002, -2.19412e-003-j*2.65284e-002, +3.96653e-004+j*2.95178e-002; +-1.14513e-003-j*1.99551e-002, -2.35828e-003-j*2.88909e-002, +3.70211e-003+j*2.02423e-002; +-1.16798e-003-j*2.31638e-002, -4.75969e-004-j*2.23413e-002, -2.07031e-003-j*3.41651e-002; +-1.99807e-004-j*2.09301e-002, -2.40560e-004-j*1.78264e-002, -9.91090e-003-j*3.12664e-002; ++9.69966e-003+j*2.95222e-002, -1.19231e-002+j*5.23077e-003, -9.79113e-003-j*4.50715e-002; ++1.36018e-002+j*2.24850e-002, -9.79427e-003+j*9.84679e-003, +2.18456e-002-j*1.57858e-002; ++1.09214e-002+j*2.93115e-002, +2.43859e-002+j*3.35745e-002, -1.07735e-002+j*1.21178e-002]; + +mode_shapes(:, :, 7) = [... ++4.18739e-001-j*2.21696e-002, +6.52636e-002-j*1.29498e-001, -1.90337e-002+j*9.61505e-003; ++4.27024e-001-j*3.03566e-002, +4.22791e-002-j*1.32892e-001, -1.65941e-002+j*2.17638e-002; ++4.66694e-001+j*1.38778e-017, +7.51273e-002-j*1.57468e-001, -2.91618e-002+j*4.11516e-002; ++4.18867e-001+j*2.39590e-002, +7.51007e-002-j*1.13378e-001, -7.11238e-003+j*2.72692e-002; +-3.26299e-002+j*2.12910e-002, -4.80710e-002+j*8.82799e-002, +5.82558e-002-j*9.16159e-002; +-4.61031e-002+j*8.08300e-002, -2.80650e-002+j*7.37925e-002, +3.54903e-002-j*3.02341e-002; +-5.14543e-002+j*7.23863e-002, +1.91387e-002-j*7.65710e-002, -3.92182e-002+j*5.06089e-002; +-3.35647e-002+j*2.16695e-002, +1.88798e-002-j*6.19822e-002, -5.08508e-002+j*8.78653e-002; +-4.93941e-002+j*6.46940e-002, -2.90637e-002+j*7.66360e-002, +5.24626e-002-j*6.16359e-002; +-5.85364e-002+j*5.59044e-002, -2.63581e-002+j*5.43466e-002, +2.90174e-002-j*3.98049e-002; +-6.07978e-002+j*5.54585e-002, +3.16828e-002-j*8.54810e-002, -3.44914e-002-j*4.03684e-003; +-6.18120e-002+j*7.90821e-002, +2.38807e-002-j*5.62399e-002, -5.04609e-002+j*3.27008e-002; ++1.57670e-002-j*3.20728e-003, -5.98007e-003-j*3.10416e-003, -1.67104e-003-j*1.59089e-003; ++1.79638e-002-j*7.40235e-003, -8.20109e-003-j*2.36675e-004, -1.69812e-003+j*1.67596e-003; ++1.87809e-002-j*8.55724e-003, -2.81069e-003-j*3.03393e-003, -5.71319e-003-j*2.26161e-003; ++1.88829e-002-j*8.50228e-003, -5.28373e-003-j*2.52386e-003, -1.48737e-002-j*5.08140e-003; ++2.28380e-002-j*7.51769e-003, -7.57170e-003-j*2.75553e-003, -6.10380e-003+j*5.15562e-003; ++2.08600e-002-j*6.11732e-003, -4.73105e-003-j*3.30979e-003, -2.51369e-003+j*5.42921e-003; ++2.00008e-002-j*5.92617e-003, -3.50988e-003-j*4.55853e-003, -5.43701e-003-j*6.57229e-003; ++2.28149e-002-j*8.22905e-003, -4.83167e-003-j*3.10509e-003, -2.10958e-002-j*1.33421e-002; +-1.83145e-002+j*2.76844e-002, +5.61668e-003-j*1.41226e-002, +2.20876e-002-j*2.27446e-002; +-5.42112e-003+j*2.22444e-002, -4.20426e-005-j*8.78901e-003, +5.54714e-003+j*2.71564e-002; +-1.70108e-002+j*2.83751e-002, -1.44473e-002+j*4.50880e-002, -5.26736e-003-j*5.75716e-003]; + +mode_shapes(:, :, 8) = [... +-1.40928e-001+j*1.28570e-001, +2.95471e-001-j*1.35692e-001, -6.61656e-002+j*2.95705e-002; +-1.56673e-001+j*5.19030e-002, +3.08231e-001-j*1.41453e-001, -9.70918e-002+j*4.95018e-002; +-1.72505e-001+j*2.26273e-002, +3.97224e-001-j*2.77556e-017, -1.29223e-001+j*4.47412e-002; +-1.69978e-001+j*1.16284e-001, +3.37516e-001+j*7.69873e-003, -8.49480e-002+j*2.17071e-002; ++5.38303e-004-j*3.59916e-003, -6.72455e-002-j*2.06230e-002, +2.66448e-002+j*4.10505e-002; +-7.96526e-003-j*7.76851e-002, -2.63530e-002-j*3.75474e-002, -1.05984e-001+j*9.32474e-002; ++4.72518e-002-j*1.00199e-001, -5.50664e-002+j*1.50246e-001, -8.50976e-002+j*2.78531e-002; ++7.58419e-003-j*8.61594e-003, -9.02101e-002+j*1.58224e-001, +6.03081e-002-j*1.24162e-001; ++2.99027e-002-j*5.27128e-002, -8.80464e-002-j*2.99113e-004, +9.02851e-002-j*3.99771e-002; ++3.23132e-002-j*5.87278e-002, +3.81174e-002-j*3.69992e-002, +1.16643e-002+j*6.21068e-002; ++5.79795e-002-j*8.33565e-002, -1.22448e-003+j*8.81473e-002, +8.40150e-002-j*1.16264e-002; ++1.35399e-002-j*3.80303e-002, -9.58200e-002+j*1.46531e-001, +1.06769e-001-j*8.97034e-002; ++5.34299e-004+j*1.35179e-002, +8.71327e-004-j*6.41448e-003, +3.33208e-002-j*2.12545e-002; +-2.79263e-004+j*5.08578e-003, -1.45476e-003-j*7.65161e-003, +6.98235e-002-j*2.45395e-002; +-9.22822e-005+j*7.03205e-003, -5.62836e-003-j*2.79991e-003, +3.99717e-002-j*8.30891e-003; ++1.87833e-002+j*3.26772e-003, -4.86774e-003-j*4.32297e-003, +5.97375e-002-j*1.77542e-002; ++1.14169e-002+j*5.70930e-003, -8.23489e-003-j*4.53684e-003, +3.14016e-002-j*2.50637e-002; ++1.15995e-003+j*5.79180e-003, -6.69740e-003-j*4.66433e-003, +8.17695e-002-j*2.78384e-002; ++5.23838e-004+j*6.46432e-003, +3.36104e-003-j*4.42572e-003, +3.64589e-002+j*5.74796e-004; ++1.57042e-002+j*5.94177e-003, -1.49670e-003-j*4.22955e-003, +8.68520e-002-j*1.43981e-002; ++8.00706e-004-j*2.91734e-002, +1.20708e-002+j*4.24081e-002, -5.91796e-002+j*4.00346e-002; +-1.91799e-003-j*1.37294e-002, +9.85285e-003+j*3.17934e-002, -1.78010e-001+j*7.91267e-002; ++3.57271e-003-j*3.09959e-002, -5.77781e-002-j*1.27957e-002, +1.31025e-002+j*1.92303e-002]; + +mode_shapes(:, :, 9) = [... ++1.58897e-002+j*3.23763e-002, -1.23332e-001-j*3.20376e-002, +6.78860e-002-j*1.28743e-002; ++5.67179e-003+j*4.26539e-002, -1.20726e-001-j*4.15603e-002, +7.66846e-002-j*1.24290e-002; ++2.24198e-002+j*3.45953e-002, -1.03213e-001-j*4.97049e-002, +5.49175e-002-j*5.50883e-003; ++2.68792e-002+j*2.97222e-002, -1.17598e-001-j*3.13791e-002, +5.59736e-002-j*1.71122e-002; ++1.39733e-002-j*1.56260e-002, +1.43952e-001+j*2.28119e-002, -4.56377e-003+j*4.88790e-002; +-2.18507e-002-j*1.25664e-002, +6.15387e-002-j*6.31793e-003, +3.05342e-002+j*3.24595e-002; +-7.85412e-003-j*1.85600e-002, +1.25733e-001+j*1.77063e-002, +5.34635e-002+j*4.72260e-003; +-1.10454e-002-j*2.13217e-002, +1.26440e-001+j*1.96001e-002, -5.62624e-002-j*1.07192e-002; ++5.84467e-003-j*4.07134e-002, +5.16711e-003+j*4.70857e-002, -1.93010e-001+j*6.79213e-003; ++5.31962e-002-j*1.11322e-002, +3.23294e-001-j*2.12981e-002, +2.14310e-001+j*4.85898e-003; +-2.44580e-002-j*1.33220e-002, +4.08800e-001+j*2.09082e-002, +5.11454e-001+j*0.00000e+000; +-2.51332e-002-j*1.42719e-003, +8.97105e-002+j*4.85852e-002, -1.27426e-001-j*9.59723e-003; +-2.08176e-003+j*1.37185e-002, -3.99530e-002+j*2.11895e-002, -1.17813e-001+j*7.60972e-002; +-1.34824e-002+j*7.11258e-003, -4.19473e-002+j*1.83590e-002, -2.07198e-002-j*2.51991e-002; +-6.84747e-003+j*8.45921e-003, -3.33872e-002+j*1.71496e-002, +6.99867e-002-j*6.93158e-002; +-2.64313e-002+j*5.08903e-003, -3.03569e-002+j*1.29946e-002, -1.39115e-001+j*5.72459e-002; +-2.90186e-002+j*1.48257e-002, -5.55429e-002+j*2.74156e-002, -1.62035e-001+j*8.04187e-002; +-2.05855e-002+j*1.11922e-002, -6.58789e-002+j*3.20524e-002, -1.02263e-002-j*4.24087e-002; +-1.40204e-002+j*8.01102e-003, -5.72647e-002+j*2.37484e-002, +1.75053e-001-j*9.63667e-002; +-3.50818e-002+j*1.41152e-002, -5.19701e-002+j*2.31951e-002, -1.15951e-001+j*2.91582e-002; +-5.78005e-003-j*7.05841e-003, +8.29016e-002+j*1.36984e-002, +4.03470e-003+j*4.03325e-002; +-1.39928e-002-j*1.14088e-002, +8.05288e-002+j*1.51031e-002, +1.12255e-002+j*3.21224e-002; +-1.02276e-002-j*8.35724e-003, -4.89246e-003+j*1.67800e-002, +7.80514e-002+j*1.53467e-002]; + +mode_shapes(:, :, 10) = [... ++3.33349e-002-j*4.89606e-003, -8.67138e-002-j*1.69402e-002, +2.87366e-002-j*1.66842e-002; ++2.95730e-002-j*6.10477e-004, -9.24590e-002-j*1.92562e-002, +5.21162e-002-j*1.31811e-002; ++3.26966e-002+j*1.03975e-002, -8.55682e-002-j*4.71847e-002, +3.99404e-002+j*8.59358e-003; ++3.45452e-002-j*3.05951e-003, -7.73823e-002-j*2.32199e-002, +2.30960e-002-j*7.49928e-003; +-3.72461e-003-j*5.40336e-003, +1.80151e-001-j*1.42898e-002, -8.63921e-003+j*1.95638e-002; +-1.11285e-002-j*2.22175e-003, +6.92355e-002-j*1.24144e-002, +8.02097e-002-j*6.81531e-003; +-2.99885e-002-j*4.21951e-004, +8.19709e-002+j*1.22484e-002, +3.97531e-002+j*1.33874e-002; +-1.59231e-002-j*3.96929e-003, +9.31295e-002+j*9.75532e-003, -4.01947e-002-j*5.17841e-003; +-7.32828e-003-j*2.93496e-002, +4.39909e-002+j*1.25298e-002, -8.87525e-002+j*2.05359e-002; ++8.20167e-002+j*6.86693e-004, +4.25475e-001-j*2.36494e-002, +3.37034e-001-j*2.44199e-002; +-2.68694e-002+j*3.82921e-003, +4.79292e-001+j*1.35903e-002, +5.06762e-001+j*0.00000e+000; ++1.40565e-002-j*5.41957e-003, +1.17563e-001+j*2.50398e-002, -5.97219e-002+j*5.92813e-004; ++2.30939e-002+j*1.16755e-002, +4.11136e-003+j*1.65726e-002, +2.41863e-002+j*5.06658e-002; +-4.92960e-003+j*9.24082e-003, -5.44667e-003+j*1.41983e-002, -3.73537e-002-j*1.87263e-002; ++9.68682e-003+j*1.11791e-002, -5.13436e-003+j*1.29205e-002, -4.88765e-002-j*4.97821e-002; +-1.66711e-003+j*1.03280e-002, +9.57955e-004+j*1.28350e-002, +3.30268e-002+j*5.44211e-002; ++5.90540e-003+j*1.67113e-002, +1.34280e-002+j*2.62111e-002, +4.38613e-002+j*7.17028e-002; ++4.97752e-003+j*1.47634e-002, +1.56773e-002+j*3.16026e-002, -5.27493e-002-j*3.38315e-002; ++2.83485e-003+j*1.14816e-002, +9.80676e-003+j*2.51504e-002, -6.78645e-002-j*9.90875e-002; ++5.62294e-003+j*1.84035e-002, +1.03717e-002+j*2.37801e-002, +2.58497e-002+j*3.75352e-002; +-8.75236e-003-j*4.71723e-003, +6.99107e-002+j*1.51894e-002, +3.46273e-002+j*1.48547e-002; +-1.72822e-002-j*8.75192e-003, +6.96759e-002+j*1.59783e-002, +8.07917e-002+j*1.97809e-002; +-1.29601e-002-j*5.61834e-003, +1.76126e-002+j*4.62761e-003, +6.64667e-002+j*1.61199e-002]; +#+end_src + +** Define a point for each solid body +We define accelerometer indices used to define the motion of each solid body (2 3-axis accelerometer are enough). +#+begin_src matlab + stages = [17, 19; % Bottom Granite + 13, 15; % Top Granite + 9, 11; % Ty + 5, 7; % Ry + 21, 22; % Spindle + 1, 3]; % Hexapod +#+end_src + +We define the origin point ${}^AO_B$ of the solid body $\{B\}$. +Here we choose the middle point between the two accelerometers. +This could be define differently (for instance by choosing the center of mass). +#+begin_src matlab + AOB = zeros(3, size(stages, 1)); + + for i = 1:size(stages, 1) + AOB(:, i) = mean(positions(stages(i, :), 1:3))'; + end +#+end_src + +Then we compute the positions of the sensors with respect to the previously defined origin for the frame $\{B\}$: ${}^BP_1$ and ${}^BP_2$. +#+begin_src matlab + BP1 = zeros(3, size(stages, 1)); + BP2 = zeros(3, size(stages, 1)); + + for i = 1:size(stages, 1) + BP1(:, i) = positions(stages(i, 1), 1:3)' - AOB(:, i); + BP2(:, i) = positions(stages(i, 2), 1:3)' - AOB(:, i); + end +#+end_src + +Let's define one absolute frame $\{A\}$ and one frame $\{B\}$ fixed w.r.t. the solid body. +We note ${}^AO_B$ the position of origin of $\{B\}$ expressed in $\{A\}$. + +We are measuring with the accelerometers the absolute motion of points $P_1$ and $P_2$: ${}^Av_{P_1}$ and ${}^Av_{P_2}$. + +Let's note ${}^BP_1$ and ${}^BP_2$ the (known) coordinates of $P_1$ and $P_2$ expressed in the frame $\{B\}$. + +Then we have: +\begin{align} + {}^Av_{P_1} &= {}^Av_{O_B} + {}^A\Omega^\times {}^AR_B {}^BP_1 \\ + {}^Av_{P_2} &= {}^Av_{O_B} + {}^A\Omega^\times {}^AR_B {}^BP_2 +\end{align} + +And we obtain +\begin{align} + {}^A\Omega^\times {}^AR_B &= \left( {}^Av_{P_2} - {}^Av_{P_1} \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1}\\ + {}^Av_{O_B} &= {}^Av_{P_1} - \left( {}^Av_{P_2} - {}^Av_{P_1} \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1} {}^BP_1 +\end{align} + +#+begin_src matlab + AVOB = zeros(3, size(stages, 1)); + ARB = zeros(3, 3, size(stages, 1)); + for i = 1:size(stages, 1) + AVOB(:, i) = mode1(stages(i, 1), :)' - (mode1(stages(i, 2), :)' - mode1(stages(i, 1), :)')*pinv(BP2(:, i) - BP1(:, i))*BP1(:, i); + ARB(:, :, i) = (mode1(stages(i, 2), :)' - mode1(stages(i, 1), :)')*pinv(BP2(:, i) - BP1(:, i)); + end +#+end_src + +** Argand Diagram +For mode 1 + +#+begin_src matlab + figure; + hold on; + for i=1:size(mode1, 1) + plot([0, real(mode1(i, 1))], [0, imag(mode1(i, 1))], '-k') + plot([0, real(mode1(i, 2))], [0, imag(mode1(i, 2))], '-k') + plot([0, real(mode1(i, 3))], [0, imag(mode1(i, 3))], '-k') + + % plot([0, real(mode2(i, 1))], [0, imag(mode2(i, 1))], '-r') + % plot([0, real(mode2(i, 2))], [0, imag(mode2(i, 2))], '-r') + % plot([0, real(mode2(i, 3))], [0, imag(mode2(i, 3))], '-r') + + % plot([0, real(mode3(i, 1))], [0, imag(mode3(i, 1))], '-b') + % plot([0, real(mode3(i, 2))], [0, imag(mode3(i, 2))], '-b') + % plot([0, real(mode3(i, 3))], [0, imag(mode3(i, 3))], '-b') + end + + for i=1:size(AVOB, 2) + plot([0, real(AVOB(1, i))], [0, imag(AVOB(1, i))], '-r') + plot([0, real(AVOB(2, i))], [0, imag(AVOB(2, i))], '-r') + plot([0, real(AVOB(3, i))], [0, imag(AVOB(3, i))], '-r') + end + + % ang=0:0.01:2*pi; + % radius1 = max(max(sqrt(real(mode1).^2+imag(mode1).^2))); + % plot(radius1*cos(ang), radius1*sin(ang), '-k'); + + % radius2 = max(max(sqrt(real(mode2).^2+imag(mode2).^2))); + % plot(radius2*cos(ang), radius2*sin(ang), '-r'); + + % radius3 = max(max(sqrt(real(mode3).^2+imag(mode3).^2))); + % plot(radius3*cos(ang), radius3*sin(ang), '-b'); + + hold off; + axis manual equal +#+end_src + +** TEST: animate first mode +#+begin_src matlab + figure; + hold on; + fill3(positions(1:4, 1), positions(1:4, 2), positions(1:4, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(5:8, 1), positions(5:8, 2), positions(5:8, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(9:12, 1), positions(9:12, 2), positions(9:12, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(13:16, 1), positions(13:16, 2), positions(13:16, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(17:20, 1), positions(17:20, 2), positions(17:20, 3), 'k', 'FaceAlpha', 0.5) + fill3(positions(21:23, 1), positions(21:23, 2), positions(21:23, 3), 'k', 'FaceAlpha', 0.5) + hold off; +#+end_src + +#+NAME: fig:mode_shapes +#+HEADER: :tangle no :exports results :results value file raw replace :noweb yes +#+begin_src matlab + rec = polyshape([-2 -2 2 2],[-3 3 3 -3]); + h = figure; + filename = 'figs/mode_shapes.gif'; + n = 20; + + for i = 1:n + axis manual equal + + Dm = real(V(1:3, 5)*cos(2*pi*i/n)); + rec_i = rotate(rec, 180/pi*Dm(3)); + rec_i = translate(rec_i, 10*Dm(1), 10*Dm(2)); + plot(rec_i); + + xlim([-3, 3]); ylim([-4, 4]); + + set(h, 'visible', 'off'); + set(h, 'pos', [0, 0, 500, 500]); + drawnow; + + % Capture the plot as an image + frame = getframe(h); + im = frame2im(frame); + [imind,cm] = rgb2ind(im,256); + + % Write to the GIF File + if i == 1 + imwrite(imind,cm,filename,'gif','DelayTime',0.1,'Loopcount',inf); + else + imwrite(imind,cm,filename,'gif','DelayTime',0.1,'WriteMode','append'); + end + end + + set(h, 'visible', 'on'); + ans = filename; +#+end_src + +** From 6 translations to translation + rotation +Let's define one absolute frame $\{A\}$ and one frame $\{B\}$ fixed w.r.t. the solid body. +We note ${}^AO_B$ the position of origin of $\{B\}$ expressed in $\{A\}$. + +We are measuring with the accelerometers the absolute motion of points $P_1$ and $P_2$: ${}^AP_1$ and ${}^AP_2$. + +Let's note ${}^BP_1$ and ${}^BP_2$ the (known) coordinates of $P_1$ and $P_2$ expressed in the frame $\{B\}$. + +Then we have: +\begin{align} + {}^AP_1 &= {}^AO_B + {}^AR_B {}^BP_1 \\ + {}^AP_2 &= {}^AO_B + {}^AR_B {}^BP_2 +\end{align} + +And we obtain +\begin{align} + {}^AR_B &= \left( {}^AP_2 - {}^AP_1 \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1}\\ + {}^AO_B &= {}^Av_{P_1} - \left( {}^AP_2 - {}^AP_1 \right) \left( {}^BP_2 - {}^BP_1 \right)^{-1} {}^BP_1 +\end{align} + +* Problem with AirLoc System +4 Airloc Levelers are used for the granite (figure [[fig:airloc]]). + +#+name: fig:airloc +#+caption: AirLoc used for the granite (2120-KSKC) +#+attr_html: :width 500px +[[file:img/airloc/IMG_20190618_155522.jpg]] + +They are probably *not well leveled* so that could explain the first modes at 11Hz and 17Hz. diff --git a/modal-analysis/modes_analysis.html b/modal-analysis/modal_extraction.html similarity index 96% rename from modal-analysis/modes_analysis.html rename to modal-analysis/modal_extraction.html index e419250df129ea0d5f50042a8247bbb7e4695f06..48bc2fdc88be743968b1c77688792408419773fd 100644 GIT binary patch delta 1161 zcmaJ>&x;gC7^Mu`C9{Z#8ql~>Gi1%~&TLQ3RCi4^Y(~tQUywv0dy1e|cUNaeXSSD_ z(a{_dgJ@ElaE7RHpyPumMzs)ZSwB1Zd-cYMz}CMkGzRjQ{c6!qu8xD zOehOZOpW7!1&oRSzMa}RYE^_|3%gKfCafNO11^|baLozqimE`RxC1LrT`nrHzxWZh zsFIvZ_`Yaj9tcahHTbhgao|-wmkJmw?awjC_o#3SbqCItcfggBz=GSBuzmQuWE+m< z_|%2*=~=^b7~>Qcrav=8&8Jep&1pXBM~7ij7U~rXWYL7T%}Ff1TCFN9XqkI9x{e?C zibps%$!yqKl@cagWqLEu111q2Ev`i<5-WQL5F6dA+cGnDkV$Y363i gQSbisPm!IykN6hpQ%P>oKYbnDiGDo&;0Efw05tn;Qvd(} delta 969 zcmX|=OK8Q-=}=&}?+i|FiWckGu8f1=9o6oX?fUG z;M~k0tSKc-n646+!MCb{ebY9Lz=htLijz#=GkqAZoxqkJ7)+z^qULrH-?x1$EDsY^ zf$o(a7^!cUh#nG~!O8mJE=_Zpq3emRDR6sz4}5NJgD**rO*VUr*loyhMSH3g=5aAMl8eOs z)Kj?0#oSpg1{VS4=fr<6mD;iJ8q#et-+^bcnK!*sW;%Q%a_)cZHa1Dc04AGqYdQ-! z)hNUAz3*5xe3u$Q{Oo>&@*fzVKY~4zQDPIgGk;79X`q@q{G8vJr(}0N_~2EZmoId~ z(8D=VkgsiqU5}m=gXfLs5b(z3$3{m%0vB^CxY&5UwFL__(kqKN9YWl`a!77X8A+~O z7PMs2t@XEClIf+)i0Nf9pI*Gw{N0y>!;f?_h|6FFTF^ diff --git a/modal-analysis/modes_analysis.org b/modal-analysis/modal_extraction.org similarity index 99% rename from modal-analysis/modes_analysis.org rename to modal-analysis/modal_extraction.org index 37b230f..b8bdc0a 100644 --- a/modal-analysis/modes_analysis.org +++ b/modal-analysis/modal_extraction.org @@ -1,4 +1,4 @@ -#+TITLE: Modal Analysis +#+TITLE: Modal Analysis - Modal Parameter Extraction :DRAWER: #+STARTUP: overview