Add few notes about modal complexity

This commit is contained in:
Thomas Dehaeze 2019-07-03 09:08:35 +02:00
parent b7d2f5c614
commit f3ad689baa
3 changed files with 42 additions and 9 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -137,7 +137,7 @@ The obtained mode frequencies and damping are shown below.
* Positions of the sensors
We process the file exported from the =modal= software containing the positions of the sensors using =bash=.
#+begin_src bash :results none
cat modal_analysis_updated/id31_nanostation_modified.cfg | grep NODES -A 23 | sed '/\s\+[0-9]\+/!d' | sed 's/\(.*\)\s\+0\s\+.\+/\1/' > mat/acc_pos.txt
cat modal_analysis_updated/id31_nanostation_modified.cfg | grep NODES -A 23 | sed '/\s\+[0-9]\+/!d' | sed 's/\(.*\)\s\+0\s\+.\+/\1/' > mat/acc_pos.txt
#+end_src
We then import that on =matlab=, and sort them.
@ -339,8 +339,15 @@ We want to obtain the two following matrices:
\[ \{\psi_1\} = \begin{Bmatrix} \psi_{1_x} & \psi_{2_x} & \dots & \psi_{6_x} & \psi_{1_x} & \dots & \psi_{1\Omega_x} & \dots & \psi_{6\Omega_z} \end{Bmatrix}^T \]
* Modal Complexity
Complexity of one mode
#+begin_src matlab
A method of displaying *modal complexity* is by plotting the elements of the eigenvector on an *Argand diagram*, such as the ones shown in figure [[fig:modal_complexity_small]].
To evaluate the complexity of the modes, we plot a polygon around the extremities of the individual vectors.
The obtained area of this polygon is then compared with the area of the circle which is based on the length of the largest vector element. The resulting ratio is used as an indication of the complexity of the mode.
A little complex mode is shown on figure [[fig:modal_complexity_small]] whereas an highly complex mode is shown on figure [[fig:modal_complexity_high]].
The complexity of all the modes are compared on figure [[fig:modal_complexities]].
#+begin_src matlab :export none
mod_i = 1;
i_max = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)));
radius = max(abs(eigen_vector_M(:, mod_i)));
@ -353,20 +360,46 @@ Complexity of one mode
plot(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)), 'ko');
hold off;
xlabel('Real Part'); ylabel('Imaginary Part');
title(sprintf('Mode %i', mod_i));
axis manual equal
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/modal_complexity.pdf" :var figsize="normal-normal" :post pdf2svg(file=*this*, ext="png")
#+begin_src matlab :var filepath="figs/modal_complexity_small.pdf" :var figsize="normal-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:modal_complexity
#+CAPTION: Modal Complexity of one mode
[[file:figs/modal_complexity.png]]
#+NAME: fig:modal_complexity_small
#+CAPTION: Modal Complexity of one mode with small complexity
[[file:figs/modal_complexity_small.png]]
Complexity function of the mode order.
#+begin_src matlab
#+begin_src matlab :export none
mod_i = 8;
i_max = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)));
radius = max(abs(eigen_vector_M(:, mod_i)));
theta = linspace(0, 2*pi, 100);
figure;
hold on;
plot(radius*cos(theta), radius*sin(theta), '-');
plot(real(eigen_vector_M(i_max, mod_i)), imag(eigen_vector_M(i_max, mod_i)), '-');
plot(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)), 'ko');
hold off;
xlabel('Real Part'); ylabel('Imaginary Part');
title(sprintf('Mode %i', mod_i));
axis manual equal
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/modal_complexity_high.pdf" :var figsize="normal-normal" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+NAME: fig:modal_complexity_high
#+CAPTION: Modal Complexity of one higly complex mode
[[file:figs/modal_complexity_high.png]]
#+begin_src matlab :export none
modes_complexity = zeros(mod_n, 1);
for mod_i = 1:mod_n
i = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)));