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

@ -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 \] \[ \{\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 * Modal Complexity
Complexity of one mode 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]].
#+begin_src matlab
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; mod_i = 1;
i_max = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i))); i_max = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)));
radius = max(abs(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'); plot(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)), 'ko');
hold off; hold off;
xlabel('Real Part'); ylabel('Imaginary Part'); xlabel('Real Part'); ylabel('Imaginary Part');
title(sprintf('Mode %i', mod_i));
axis manual equal axis manual equal
#+end_src #+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes #+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>> <<plt-matlab>>
#+end_src #+end_src
#+NAME: fig:modal_complexity #+NAME: fig:modal_complexity_small
#+CAPTION: Modal Complexity of one mode #+CAPTION: Modal Complexity of one mode with small complexity
[[file:figs/modal_complexity.png]] [[file:figs/modal_complexity_small.png]]
Complexity function of the mode order. #+begin_src matlab :export none
#+begin_src matlab 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); modes_complexity = zeros(mod_n, 1);
for mod_i = 1:mod_n for mod_i = 1:mod_n
i = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i))); i = convhull(real(eigen_vector_M(:, mod_i)), imag(eigen_vector_M(:, mod_i)));