Aller au contenu

Analyse modale

Problème généralisé aux valeurs propres

Pour analyser les vibrations libres d’un milieu continu, celui-ci est discrétisé dans l’espace et modélisé comme un système à plusieurs degrés de liberté constitué de masses concentrées, comme illustré à la figure 2.3.1. Pour un problème de vibration libre non amortie, l’équation gouvernante (équation du mouvement) est la suivante.

\[\begin{equation} M \ddot{u} + K u = 0 \label{eq:2.3.1} \end{equation}\]

Ici, \(u\) est le vecteur des déplacements généralisés, \(M\) la matrice de masse et \(K\) la matrice de rigidité. Soit \(\omega\) la pulsation propre, soient \(a\) et \(b\) des constantes arbitraires qui ne sont pas simultanément nulles, et soit \(x\) un vecteur. Définissons la fonction

\[\begin{equation} u(t) = (a \sin \omega t + b \cos \omega t ) x \label{eq:2.3.2} \end{equation}\]

Sa dérivée seconde est

\[\begin{equation} \ddot{u}(t) = -\omega^2 (a \sin \omega t + b \cos \omega t) x \label{eq:2.3.3} \end{equation}\]

En substituant l’équation \(\eqref{eq:2.3.2}\) et l’équation \(\eqref{eq:2.3.3}\) dans l’équation \(\eqref{eq:2.3.1}\), on obtient

\[\begin{equation} M \ddot{u} + K u = (a \sin \omega t + b \cos \omega t) (K-\omega^2 M) x = 0 \label{eq:2.3.4} \end{equation}\]

On obtient ainsi la relation ci-dessus.

Pour une vibration non triviale, \(a \sin \omega t + b \cos \omega t\) n’est pas identiquement nul. Par conséquent,

\[ (K-\omega^2M)x=0 \]

On obtient donc la relation ci-dessus. En posant alors \(\lambda=\omega^2\), il vient

\[\begin{equation} K x = \lambda M x \label{eq:2.3.5} \end{equation}\]

On obtient ainsi l’équation ci-dessus.

Le scalaire \(\lambda\) est appelé valeur propre, le vecteur \(x\) vecteur propre, et le problème représenté par l’équation \(\eqref{eq:2.3.5}\) problème généralisé aux valeurs propres.

La pulsation propre \(\omega\) est obtenue à partir de la valeur propre \(\lambda=\omega^2\), et le vecteur propre correspondant \(x\) représente un mode de vibration.

Exemple de système à plusieurs degrés de liberté en vibration libre non amortie

Figure 2.3.1 Exemple de système à plusieurs degrés de liberté en vibration libre non amortie

Propriétés et hypothèses sur les matrices

Pour le problème généralisé aux valeurs propres \(Kx=\lambda Mx\) obtenu à la section précédente, ce manuel suppose que les matrices considérées sont symétriques. Pour les matrices complexes, cela correspond à des matrices hermitiennes ; pour les matrices réelles, à des matrices symétriques.

Soit \(k_{ij}\) l’élément \(ij\) de la matrice \(K\). La propriété hermitienne s’écrit

\[\begin{equation} k_{ij} = \bar{k}_{ji} \label{eq:2.3.6} \end{equation}\]

\(\bar{k}_{ji}\) est le conjugué complexe de \(k_{ji}\). Pour les matrices réelles, cette relation devient \(k_{ij}=k_{ji}\).

Une matrice réelle symétrique \(H\) est dite définie positive si, pour tout vecteur non nul \(x\),

\[\begin{equation} x^{t} H x > 0 \label{eq:2.3.7} \end{equation}\]

l’inégalité ci-dessus est satisfaite. Dans ce cas, toutes les valeurs propres de \(H\) sont positives.

Dans un problème structurel aux valeurs propres, la matrice de masse \(M\) est généralement considérée comme définie positive. En revanche, selon les conditions de contrainte, la matrice de rigidité \(K\) peut être semi-définie positive et posséder des valeurs propres nulles correspondant aux modes de corps rigide.

Itération inverse décalée

Dans la pratique de l’analyse structurelle par éléments finis, toutes les valeurs propres ne sont généralement pas nécessaires ; quelques valeurs propres de bas ordre suffisent souvent. HEC-MW est destiné aux problèmes de grande taille, pour lesquels les matrices sont grandes et extrêmement creuses, avec de nombreux éléments nuls. Il est donc important de calculer efficacement les valeurs propres des modes de bas ordre en tenant compte de ces caractéristiques.

Pour un décalage \(\sigma\), si \(-\sigma\) n’est pas une valeur propre et si \(K+\sigma M\) est non singulière, l’équation \(\eqref{eq:2.3.5}\) peut être transformée comme suit.

\[\begin{equation} (K + \sigma M)^{-1} M x = \frac{1}{\lambda+\sigma} x \label{eq:2.3.8} \end{equation}\]

Cette transformation laisse le vecteur propre \(x\) inchangé et envoie la valeur propre \(\lambda\) sur \(1/(\lambda+\sigma)\).

Par conséquent, plus \(\lambda\) est proche de \(-\sigma\), plus la valeur absolue de la valeur propre transformée est grande. Dans un problème structurel aux valeurs propres, \(\lambda \geq 0\) et \(\sigma \geq 0\) ; la plus petite valeur propre est donc envoyée sur celle dont la valeur absolue est la plus grande. En exploitant cette propriété et en appliquant à l’équation \(\eqref{eq:2.3.8}\) une méthode itérative qui tend à converger d’abord vers les valeurs propres de grande valeur absolue, on peut obtenir efficacement les valeurs propres de bas ordre dans l’ordre croissant.

Cette méthode est appelée itération inverse décalée.

Pour les analyses avec contraintes, FrontISTR fixe \(\sigma = 0\), et l’équation \(\eqref{eq:2.3.8}\) devient \(K^{-1} M x = \frac{1}{\lambda} x\), c’est-à-dire une itération inverse sans décalage. Dans une analyse libre-libre sans contrainte, \(K\) est singulière parce qu’elle possède des valeurs propres nulles correspondant aux modes de corps rigide ; attribuer une valeur positive à \(\sigma\) régularise \(K+\sigma M\). La valeur de \(\sigma\) est spécifiée par SIGMA dans !EIGEN.

Méthode de Lanczos

Justification du choix (comparaison avec la méthode de Jacobi)

La méthode de Jacobi est une méthode classique bien connue.

Elle est efficace lorsque la matrice est petite et dense. Cependant, comme les matrices traitées par HEC-MW sont grandes et creuses, cette méthode n’est pas retenue ; la méthode itérative de Lanczos est utilisée à la place.

Algorithme et caractéristiques

Proposée par C. Lanczos dans les années 1950, cette méthode est un algorithme de tridiagonalisation d’une matrice et présente les caractéristiques suivantes.

  • C’est une méthode itérative qui permet de poursuivre le calcul tout en conservant le caractère creux de la matrice.
  • Ses opérations sont principalement des produits matrice-vecteur, ce qui la rend bien adaptée à la parallélisation.
  • Elle convient bien à la décomposition géométrique du domaine associée aux maillages d’éléments finis.
  • Elle permet des calculs efficaces en limitant le nombre de valeurs propres ou la plage de modes à déterminer.

La méthode de Lanczos part d’un vecteur initial, construit successivement des vecteurs orthogonaux et détermine une base d’un sous-espace de Krylov.

En arithmétique à précision finie, les erreurs d’arrondi peuvent entraîner une perte d’orthogonalité des vecteurs. Pour limiter cet effet, l’implémentation de FrontISTR réorthogonalise chaque vecteur par rapport aux vecteurs de base de Lanczos déjà obtenus.

Interprétation géométrique (sous-espace de Krylov)

En appliquant les changements de variables suivants à l’équation \(\eqref{eq:2.3.8}\),

\[ A = (K + \sigma M)^{-1} M \]
\[\begin{equation} \frac{1}{\lambda+\sigma}= \zeta \label{eq:2.3.9} \end{equation}\]

le problème peut être réécrit sous la forme

\[\begin{equation} A x = \zeta x \label{eq:2.3.10} \end{equation}\]

On obtient ainsi l’équation ci-dessus.

Pour un vecteur non nul arbitraire \(q_0\),

\[ q_0,\ Aq_0,\ A^2q_0,\ldots,A^{m-1}q_0 \]

l’espace engendré par ces vecteurs,

\[ \mathcal{K}_m(A,q_0) = \operatorname{span} \{q_0,Aq_0,A^2q_0,\ldots,A^{m-1}q_0\} \]

est appelé sous-espace de Krylov.

La méthode de Lanczos construit successivement une base de ce sous-espace de Krylov.

FrontISTR utilise le produit scalaire suivant associé à la matrice de masse \(M\)

\[ \langle x,y\rangle_M = x^T M y \]

pour orthonormaliser la base. Le produit scalaire \(\langle x,y\rangle\) et la norme \(\|x\|\) représentés dans les figures suivantes sont interprétés, dans les calculs de FrontISTR, comme ce produit scalaire associé à \(M\) et la norme associée à \(M\) correspondante

\[ \|x\|_M=\sqrt{x^T M x} \]

respectivement.

Appliquons à un vecteur arbitraire \(q_0\) la transformation linéaire définie par la matrice \(A\), comme illustré à la figure 2.3.2.

Transformation linéaire de \(q_0\) par la matrice \(A\)

Figure 2.3.2 Transformation linéaire de \(q_0\) par la matrice \(A\)

Le vecteur transformé est orthogonalisé dans l’espace engendré par ce vecteur et le vecteur initial. Plus précisément, on effectue l’orthogonalisation de Gram-Schmidt illustrée à la figure 2.3.3. Notons \(r_1\) le vecteur obtenu ; sa normalisation donne \(q_1\).

Vecteur \(q_1\) orthogonal à \(q_0\)

Figure 2.3.3 Vecteur \(q_1\) orthogonal à \(q_0\)

La même procédure permet d’obtenir \(q_2\) à partir de \(q_1\). Dans ce cas, \(q_2\) est orthogonal à la fois à \(q_1\) et à \(q_0\), comme illustré à la figure 2.3.4.

Vecteur \(q_2\) orthogonal à \(q_1\) et à \(q_0\)

Figure 2.3.4 Vecteur \(q_2\) orthogonal à \(q_1\) et à \(q_0\)

De cette manière, la méthode de Lanczos construit successivement une base orthonormée du sous-espace de Krylov. En théorie, la symétrie du problème aux valeurs propres permet d’exprimer cette itération sous la forme d’une récurrence à trois termes faisant intervenir les vecteurs de base les plus récents.

L’implémentation de FrontISTR effectue toutefois une réorthogonalisation par rapport aux vecteurs de base de Lanczos déjà obtenus au moyen du produit scalaire associé à \(M\), afin de limiter la perte d’orthogonalité due à l’arithmétique à précision finie.

Tridiagonalisation

Dans l’itération de Lanczos de FrontISTR, les vecteurs de base sont orthonormalisés par rapport au produit scalaire associé à \(M\) décrit à la section précédente, de sorte que

\[ q_i^T M q_j = \delta_{ij} \]

la relation ci-dessus est satisfaite.

En utilisant la matrice \(A\) de l’équation \(\eqref{eq:2.3.10}\), l’itération théorique de Lanczos s’écrit

\[\begin{equation} A q_i = \beta_i q_{i-1} + \alpha_i q_i + \beta_{i+1} q_{i+1} \label{eq:2.3.11} \end{equation}\]

sous la forme de la récurrence à trois termes ci-dessus.

On définit d’abord \(\alpha_i\) par

\[ \alpha_i = q_i^T M A q_i \]

On définit ensuite le résidu provisoire par

\[ \tilde{r}_{i+1} = Aq_i - \beta_i q_{i-1} - \alpha_i q_i \]

Le résidu provisoire est ainsi défini.

Afin de limiter la perte d’orthogonalité due à l’arithmétique à précision finie, l’implémentation de FrontISTR réorthogonalise \(\tilde{r}_{i+1}\) par rapport aux vecteurs de base de Lanczos déjà obtenus, au moyen du produit scalaire associé à \(M\). Si \(r_{i+1}\) désigne le résidu après réorthogonalisation, alors

\[\begin{equation} \beta_{i+1} = \sqrt{r_{i+1}^T M r_{i+1}}, \qquad q_{i+1} = \frac{r_{i+1}}{\beta_{i+1}} \label{eq:2.3.12} \end{equation}\]

les relations ci-dessus sont satisfaites.

Regroupons les \(m\) vecteurs de base obtenus par l’itération de Lanczos dans

\[ Q_m=[q_0,q_1,\ldots,q_{m-1}] \]

Après un nombre fini d’itérations de Lanczos, on a alors

\[\begin{equation} A Q_m = Q_m T_m + \beta_m q_m e_m^T \label{eq:2.3.13} \end{equation}\]

la relation ci-dessus.

Ici, \(e_m\) est le vecteur unité de dimension \(m\) dont la \(m\)-ième composante vaut 1, et

\[\begin{equation} T_m= \begin{pmatrix} \alpha_0 & \beta_1 & & &\\ \beta_1 & \alpha_1 & \beta_2 & &\\ & \ddots & \ddots & \ddots &\\ & & \beta_{m-2} & \alpha_{m-2}& \beta_{m-1}\\ & & & \beta_{m-1} & \alpha_{m-1} \end{pmatrix} \label{eq:2.3.14} \end{equation}\]

est une matrice tridiagonale symétrique.

Ainsi, les valeurs propres du problème initial de grande taille peuvent être approchées en calculant les valeurs propres de la matrice tridiagonale \(T_m\).

Rubriques connexes