Vai al contenuto

Analisi modale

Problema agli autovalori generalizzato

Per analizzare le vibrazioni libere di un mezzo continuo, questo viene discretizzato nello spazio e modellato come un sistema a più gradi di libertà con masse concentrate, come mostrato nella Figura 2.3.1. Per un problema di vibrazione libera non smorzata, l’equazione governante (equazione del moto) è la seguente.

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

Qui \(u\) è il vettore degli spostamenti generalizzati, \(M\) è la matrice di massa e \(K\) è la matrice di rigidezza. Sia \(\omega\) la pulsazione naturale, siano \(a\) e \(b\) costanti arbitrarie non entrambe nulle e sia \(x\) un vettore. Si definisce la funzione

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

La sua derivata seconda è

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

Sostituendo l’Equazione \(\eqref{eq:2.3.2}\) e l’Equazione \(\eqref{eq:2.3.3}\) nell’Equazione \(\eqref{eq:2.3.1}\), si ottiene

\[\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}\]

Si ottiene così la relazione precedente.

Per una vibrazione non banale, \(a \sin \omega t + b \cos \omega t\) non è identicamente nullo. Pertanto,

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

si ottiene la relazione precedente. Ponendo quindi \(\lambda=\omega^2\), risulta

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

Si ottiene così l’equazione precedente.

Lo scalare \(\lambda\) è detto autovalore, il vettore \(x\) è detto autovettore e il problema espresso dall’Equazione \(\eqref{eq:2.3.5}\) è detto problema agli autovalori generalizzato.

La pulsazione naturale \(\omega\) si ricava dall’autovalore \(\lambda=\omega^2\), mentre l’autovettore corrispondente \(x\) rappresenta un modo di vibrare.

Esempio di sistema a più gradi di libertà per vibrazione libera non smorzata

Figura 2.3.1 Esempio di sistema a più gradi di libertà per vibrazione libera non smorzata

Proprietà e ipotesi delle matrici

Per il problema agli autovalori generalizzato \(Kx=\lambda Mx\) ottenuto nella sezione precedente, questo manuale assume che le matrici considerate siano simmetriche. Nel caso di matrici complesse, ciò corrisponde a matrici hermitiane; nel caso di matrici reali, a matrici simmetriche.

Sia \(k_{ij}\) l’elemento \(ij\) della matrice \(K\). La proprietà hermitiana si esprime come

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

dove \(\bar{k}_{ji}\) è il complesso coniugato di \(k_{ji}\). Per le matrici reali, questa relazione diventa \(k_{ij}=k_{ji}\).

Una matrice reale simmetrica \(H\) è definita positiva se, per ogni vettore non nullo \(x\),

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

vale la disuguaglianza precedente. In questo caso, tutti gli autovalori di \(H\) sono positivi.

In un problema strutturale agli autovalori, la matrice di massa \(M\) è normalmente considerata definita positiva. La matrice di rigidezza \(K\), invece, può essere semidefinita positiva a seconda dei vincoli e può avere autovalori nulli corrispondenti ai modi di corpo rigido.

Iterazione inversa con shift

Nell’analisi strutturale pratica mediante il metodo degli elementi finiti, in genere non sono necessari tutti gli autovalori; spesso sono sufficienti pochi autovalori di ordine basso. HEC-MW è concepito per problemi su larga scala, nei quali le matrici sono grandi ed estremamente sparse, con molti elementi nulli. È quindi importante calcolare in modo efficiente gli autovalori dei modi di ordine basso tenendo conto di queste caratteristiche.

Per uno shift \(\sigma\), se \(-\sigma\) non è un autovalore e \(K+\sigma M\) è non singolare, l’Equazione \(\eqref{eq:2.3.5}\) può essere trasformata come segue.

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

Questa trasformazione lascia invariato l’autovettore \(x\) e mappa l’autovalore \(\lambda\) in \(1/(\lambda+\sigma)\).

Di conseguenza, quanto più \(\lambda\) è vicino a \(-\sigma\), tanto maggiore è il valore assoluto dell’autovalore trasformato. In un problema strutturale agli autovalori, \(\lambda \geq 0\) e \(\sigma \geq 0\); pertanto, l’autovalore più basso viene mappato nell’autovalore di valore assoluto maggiore. Sfruttando questa proprietà, applicando all’Equazione \(\eqref{eq:2.3.8}\) un metodo iterativo che tende a convergere prima verso gli autovalori di grande valore assoluto, gli autovalori di ordine basso possono essere ottenuti in modo efficiente in ordine crescente.

Questo metodo è detto iterazione inversa con shift.

Nelle analisi con vincoli, FrontISTR imposta \(\sigma = 0\), e l’Equazione \(\eqref{eq:2.3.8}\) diventa \(K^{-1} M x = \frac{1}{\lambda} x\), ossia un’iterazione inversa senza shift. In un’analisi libera-libera senza vincoli, \(K\) è singolare perché possiede autovalori nulli corrispondenti ai modi di corpo rigido; assegnare un valore positivo a \(\sigma\) regolarizza \(K+\sigma M\). Il valore di \(\sigma\) è specificato mediante SIGMA in !EIGEN.

Metodo di Lanczos

Motivazione dell’uso (confronto con il metodo di Jacobi)

Il metodo di Jacobi è un metodo classico ben noto.

È efficace quando la matrice è piccola e densa. Tuttavia, poiché le matrici trattate da HEC-MW sono grandi e sparse, il metodo di Jacobi non viene adottato; al suo posto si utilizza il metodo iterativo di Lanczos.

Algoritmo e caratteristiche

Proposto da C. Lanczos negli anni Cinquanta, questo metodo è un algoritmo per tridiagonalizzare una matrice e presenta le seguenti caratteristiche.

  • È un metodo iterativo e consente di eseguire il calcolo mantenendo sparsa la matrice.
  • Le sue operazioni consistono principalmente in prodotti matrice-vettore, il che lo rende adatto alla parallelizzazione.
  • È adatto alla decomposizione geometrica del dominio associata alle mesh a elementi finiti.
  • Consente calcoli efficienti limitando il numero di autovalori o l’intervallo di modi da determinare.

Il metodo di Lanczos parte da un vettore iniziale, costruisce successivamente vettori ortogonali e determina una base per un sottospazio di Krylov.

Nell’aritmetica a precisione finita, gli errori di arrotondamento possono causare la perdita di ortogonalità dei vettori. Per ridurre questo effetto, l’implementazione di FrontISTR riortogonalizza ogni vettore rispetto ai vettori della base di Lanczos già ottenuti.

Interpretazione geometrica (sottospazio di Krylov)

Applicando le seguenti trasformazioni di variabile all’Equazione \(\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}\]

il problema può essere riscritto come

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

Si ottiene così l’equazione precedente.

Per un vettore arbitrario non nullo \(q_0\),

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

lo spazio generato da questi vettori,

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

è detto sottospazio di Krylov.

Il metodo di Lanczos costruisce successivamente una base di questo sottospazio di Krylov.

FrontISTR utilizza il seguente prodotto scalare associato alla matrice di massa \(M\)

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

per ortonormalizzare la base. Il prodotto scalare \(\langle x,y\rangle\) e la norma \(\|x\|\) mostrati nelle figure seguenti sono interpretati nei calcoli di FrontISTR come questo prodotto scalare associato a \(M\) e la corrispondente norma associata a \(M\)

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

rispettivamente.

Si applica al vettore arbitrario \(q_0\) la trasformazione lineare definita dalla matrice \(A\), come mostrato nella Figura 2.3.2.

Trasformazione lineare di \(q_0\) mediante la matrice \(A\)

Figura 2.3.2 Trasformazione lineare di \(q_0\) mediante la matrice \(A\)

Il vettore trasformato viene ortogonalizzato nello spazio generato da esso e dal vettore originale. In particolare, si esegue l’ortogonalizzazione di Gram-Schmidt mostrata nella Figura 2.3.3. Sia \(r_1\) il vettore risultante; normalizzandolo si ottiene \(q_1\).

Vettore \(q_1\) ortogonale a \(q_0\)

Figura 2.3.3 Vettore \(q_1\) ortogonale a \(q_0\)

Con lo stesso procedimento si ottiene \(q_2\) da \(q_1\). In questo caso, \(q_2\) è ortogonale sia a \(q_1\) sia a \(q_0\), come mostrato nella Figura 2.3.4.

Vettore \(q_2\) ortogonale a \(q_1\) e a \(q_0\)

Figura 2.3.4 Vettore \(q_2\) ortogonale a \(q_1\) e a \(q_0\)

In questo modo, il metodo di Lanczos costruisce successivamente una base ortonormale del sottospazio di Krylov. In teoria, la simmetria del problema agli autovalori consente di esprimere questa iterazione come una ricorrenza a tre termini che utilizza i vettori di base più recenti.

Tuttavia, l’implementazione di FrontISTR riortogonalizza ogni vettore rispetto ai vettori della base di Lanczos già ottenuti usando il prodotto scalare associato a \(M\), per ridurre la perdita di ortogonalità causata dall’aritmetica a precisione finita.

Tridiagonalizzazione

Nell’iterazione di Lanczos di FrontISTR, i vettori di base sono ortonormalizzati rispetto al prodotto scalare associato a \(M\) descritto nella sezione precedente, quindi

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

vale la relazione precedente.

Usando la matrice \(A\) dell’Equazione \(\eqref{eq:2.3.10}\), l’iterazione teorica di Lanczos è espressa da

\[\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}\]

la ricorrenza a tre termini precedente.

Per prima cosa, si definisce \(\alpha_i\) mediante

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

Successivamente, si definisce il residuo provvisorio come

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

In questo modo è definito il residuo provvisorio.

Per ridurre la perdita di ortogonalità causata dall’aritmetica a precisione finita, l’implementazione di FrontISTR riortogonalizza \(\tilde{r}_{i+1}\) rispetto ai vettori della base di Lanczos già ottenuti, usando il prodotto scalare associato a \(M\). Se \(r_{i+1}\) è il residuo dopo la riortogonalizzazione, allora

\[\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}\]

valgono le relazioni precedenti.

Raggruppando gli \(m\) vettori di base ottenuti dall’iterazione di Lanczos in

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

dopo un numero finito di iterazioni di Lanczos vale

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

la relazione precedente.

Qui \(e_m\) è il vettore unitario di dimensione \(m\) la cui componente \(m\)-esima è 1, e

\[\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}\]

è una matrice tridiagonale simmetrica.

Pertanto, gli autovalori del problema originale su larga scala possono essere approssimati calcolando gli autovalori della matrice tridiagonale \(T_m\).

Argomenti correlati