r3.03.01 Dualisation des conditions aux limites#
Résumé :
On explique le principe des multiplicateurs de Lagrange pour résoudre les systèmes linéaires sous contraintes affines issues de l’imposition des conditions aux limites de type cinématique. La matrice de rigidité obtenue n’étant plus définie positive, certains algorithmes de résolution deviennent donc inutilisables. On cherche donc une technique pour pouvoir continuer à utiliser l’algorithme de factorisation \({\mathit{LDL}}^{T}\) sans permutation et sans élimination. La technique proposée est celle des « doubles Lagrange » (utilisée dans le code Castem2000). On démontre que cette technique est efficace. On donne quelques indications sur le conditionnement des matrices obtenues par cette technique.
Le problème de la recherche des modes propres des systèmes contraints est ensuite examiné. On montre qu’une solution possible est d’ajouter les conditions aux limites dualisées à la matrice de rigidité et de ne pas toucher à la matrice de masse.
Table des matières
Dualisation des conditions aux limites cinématiques, principe des multiplicateurs de Lagrange#
Objectifs#
La méthode de discrétisation par éléments finis amène à résoudre de nombreux systèmes linéaires.
Souvent un tel système peut être considéré comme l’expression algébrique d’un problème de minimisation d’une fonctionnelle quadratique positive \(J({\vector{u}})\) où \({\vector{u}}\) appartient à \({\setR}^{n}\) ou \(n\) est le nombre d’inconnues nodales tout en étant contraint par un certain nombre de relations affines \({B}_{i}({\vector{u}})-{d}_{i}=0\) (conditions aux limites de type Dirichlet).
B’est à ce problème de minimisation sous contraintes affines que l’on s’intéresse ici. Dans la suite du document, on prendra comme exemple le cas (et le vocabulaire) de la mécanique statique linéaire. On parlera de matrice de rigidité et de vecteur déplacement mais la technique proposée reste valable pour les problèmes d’évolution thermique, en linéaire ou non-linéaire.
Soit le problème discrétisé:
où \(J({\vector{u}})\) est une forme quadratique (comme l’énergie potentielle totale) que l’on écrit
\(\tensTwo{A}\) est une matrice symétrique positive (soit \(\left( \tensTwo{A} \, \vector{u}, \vector{u} \right) \ge 0 \quad \forall {\vector{u}}\)) mais pas forcément définie (c’est-à-dire que \(\tensTwo{A} \, \vector{u}=\vectorZero\) est possible pour \({\vector{u}} \ne \vectorZero\) )
On note \(V\) l’espace des déplacements cinématiquement admissibles, c’est un sous espace affine de \({\setR}^{n}\).
Ce problème discret est résolu numériquement en exprimant que la « dérivée » de \(J({\vector{u}})\) dans \(V\) est nulle. On est alors ramené à résoudre un système linéaire d’équations.
Le problème est de « dériver » \(J({\vector{u}})\) dans \(V \subset {\setR}^{n}\) .
En général, pour des raisons pratiques, l’expression de \(J({\vector{u}})\) est calculée dans la base de tous les déplacements nodaux (sans tenir compte des contraintes) : \({\vector{u}}\) appartient alors à \({\setR}^{n}\) où \(n\) est le nombre total d’inconnues nodales.
Si \(V\) est un sous espace vectoriel de \({\setR}^{n}\) engendré par les \((n-p)\) déplacements nodaux de base, la dérivation de \(J({\vector{u}})\) dans \(V\) se fait très simplement : il suffit d“« oublier » dans la matrice \(\tensTwo{A}\) et le vecteur \(\vector{b}\) les lignes et colonnes correspondants aux degrés de liberté (ddl) supprimés (\(\vectorCmp{u}{i}=0\)).
Si les degrés de liberté contraints ne sont pas mis à zéro mais affectés à une valeur donnée \(\vectorCmp{u}{i}={d}_{i}\), il faut modifier \(\vector{b}\) .
Enfin si les contraintes « mixent » les ddl entre eux (relations linéaires entre inconnues) il faut modifier \(\tensTwo{A}\) et \(\vector{b}\) .
Le principe des multiplicateurs de Lagrange permet de résoudre le problème sans toucher aux matrices \(\tensTwo{A}\) et \(\vector{b}\). Le prix à payer est une augmentation du nombre d’inconnues dans le système à résoudre.
Au lieu de résoudre le problème dans l’espace \(V\) de dimension \(n-p\), on le résout dans l’espace \({\setR}^{n+p}\), les inconnues supplémentaires notées \({\lambda}_{i}\) étant appelées multiplicateurs de Lagrange.
Principe et justification#
Reprenons le problème précédent en explicitant l’espace \(V\)
Problème 1:
Les \({B}_{i}\) sont des formes linéaires sur \({\setR}^{n}\) , les \({d}_{i}\) sont des constantes données. On suppose de plus que les p formes \({B}_{i}\) sont indépendantes entre elles : la dimension de l’espace engendré par les \({B}_{i}\) est \(p\) .
On peut montrer (Cf. [Annexe: démonstrations de quelques résultats]) que ce problème est équivalent au suivant:
Problème 2:
Réécrivons le problème 2 autrement :
Problème 3:
Les deux dernières équations montrent (en identifiant \({\setR}^{n}\) et son dual) que:
\(\forall i , \quad {B}_{i}\) est orthogonal à \({V}_{0}\)
\((\tensTwo{A} \, \vector{u}-\vector{b})\) est orthogonal à \({V}_{0}\)
\({V}_{0}\) est le sous espace vectoriel de \({\setR}^{n}\) orthogonal à \({B}_{i}\) (\({V}_{0}\) est de dimension \((n-p)\) car les \(p\) conditions \({B}_{i}\) sont supposées indépendantes).
Puisque la décomposition de \({\setR}^{n}\) en somme directe de deux sous-espaces orthogonaux est unique, on en déduit que \((\tensTwo{A} \, \vector{u}-b)\) appartient à l’espace vectoriel engendré par les \({B}_{i}\) .
Il existe donc une famille de scalaires \({\lambda}_{i}\) appelés multiplicateurs de Lagrange tels que:
où l’on note \(\vector{B}_i\) la représentation discrèete de la forme linéaire \({B}_{i}\). Cette égalité est vraie dans \({\setR}^{n}\)
Le problème 3 devient alors :
Problème 4:
La réciproque (\(\text{Pb4} \Rightarrow \text{Pb3}\)) est évidente.
S’il existe des \({\lambda}_{i}\) tels que:
alors
Le problème 4 est le problème cherché. On dira que c’est le problème avec conditions cinématiques dualisées. Matriciellement on peut l’écrire:
avec
avec les vecteurs \({\vector{u}}\in {\setR}^{n}\), \(\vector{\lambda} \in {\setR}^{p}\) et \(\vector{X} \in {\setR}^{n+p}\). Et les matrices \(\tensTwo{A} \in {\setR}^{n} \times {\setR}^{n}\), \(\tensTwo{B} \in {\setR}^{p} \times {\setR}^{n}\) et \(\tensTwo{K} \in {\setR}^{n+p} \times {\setR}^{n+p}\).
On s’aperçoit que ce système peut être obtenu en cherchant à rendre extrémale la fonctionnelle:
Cette fonctionnelle est appelée le Lagrangien du problème initial. L’intérêt principal de cette méthode est de s’affranchir des contraintes: \(\vector{u}\) et \(\vector{\lambda}\) sont cherchés dans \({\setR}^{n}\) et \({\setR}^{p}\) (\(\vector{X}\) dans \({\setR}^{n+p}\) ).
Les coefficients \({\lambda}_{i}\) sont appelés coefficients de Lagrange du problème (on dira parfois les « Lagrange »).
Inconvénients de cette dualisation#
On voit d’après l’expression du Lagrangien que la matrice \(\tensTwo{K}\) n’est plus positive (ce qui était le cas de \(A\) ). En effet:
La perte de la positivité de la matrice \(\tensTwo{K}\) entraîne que la résolution du système \(\tensTwo{K} \vector{X}=\vector{F}\) ne peut plus se faire en général par les algorithmes classiques de gradient ou, par la factorisation de Cholesky. L’algorithme de factorisation \(LDL^{T}\) sans permutation des lignes et colonnes n’est plus garanti non plus.
Illustrons le problème sur un exemple.
Exemple 1#
Un ressort de raideur \(k\) relie deux nœuds \({N}_{1}\) et \({N}_{2}\)
Fig. 128 Exemple 1 du système discret à résoudre#
Les deux inconnues sont \({u}_{1}\), \({u}_{2}\) et les deux forces modales sont \({f}_{1}\) et \({f}_{2}\). Avec les notations du paragraphe précédent, la taille du système est notée \(n=2\). La matrice de rigidité s’écrit donc
On ajoute une contrainte \(\alpha {u}_{1}+\beta {u}_{2}=\gamma\) (on a donc \(p=1\)). Le problème dualisé s’écrit:
Avec la numérotation des inconnues suivantes repérée par \(\discVect{X^{1}}\):
La matrice et le second membre s’écrivent:
- Rappel de la condition nécessaire et suffisante pour que l’algorithme \(LDL^{T}-{SP}\) (sans permutation) fonctionne
Notons \({K}_{i}\) la sous-matrice de \({\tensTwo{K}}\) formée des \(i\) premières lignes et colonnes de \(\tensTwo{K}\). (Si \(\tensTwo{K}\) est d’ordre \(n\) alors \({\tensTwo{K}}_{n} = K\) et \({\tensTwo{K}}_{1}=[{k}_{11}]\) ). Il n’y aura pas de pivot nul dans l’algorithme \(LDL^{T}-{SP}\) si, et seulement si, \({\tensTwo{K}}_{i}\) est inversible pour tout \(i\) compris entre \(1\) et \(n\). On notera cette condition : cond1
La matrice \(\tensTwo{K^{1}}\) ci-dessus est écrite avec comme numérotation des inconnues, l’ordre des composantes de \(\discVect{X^{1}}\):
alors la sous-matrice \({\tensTwo{K^{1}}}_{2}\) telle que
ne vérifie pas la condition cond1.
Prenons maintenant une autre numérotation telle que
alors la matrice \(\tensTwo{K^{2}}\) s’écrit
la sous-matrice \({\tensTwo{K^{2}}}_{1}\) ne vérifie pas la condition cond1.
Prenons maintenant une autre numérotation telle que
La matrice de rigidité dans cette numérotation s’écrit
Les trois sous-matrices ont pour déterminant
Bien entendu, \(k\) est supposé strictement positif (raideur du ressort). La matrice \({\tensTwo{K^3}}_{3}\) n’est inversible que si \(\alpha + \beta \ne 0\) . Le cas \(\alpha +\beta =0\) correspond en effet à un « mauvais » blocage physique : la condition \({u}_{1}-{u}_{2}=\text{cte}\) ne bloque pas les « mouvements de corps rigide » pour \(\tensTwo{A}\) (sans énergie).
Pour que le problème global ait une solution unique, il faut en effet que les conditions \({\tensTwo{B}}_{i} \vector{u}={\vector{d}}_{i}\) engendrent un espace de déplacements admissibles qui ne contienne aucun des mouvements de corps rigide de \(\tensTwo{A}\) .
Avec les notations du paragraphe précédent on écrira:
On supposera dans la suite du document que cette condition est vérifiée. C’est‑à‑dire que les contraintes \({\tensTwo{B}}_{i}\) bloquent au moins les mouvements de corps rigide de \(\tensTwo{A}\) (elles peuvent être plus nombreuses bien sûr). Lorsque cette condition est vérifiée et que les conditions \({{\tensTwo{B}}_{i}\) sont indépendantes entre elles, on dira que le problème est physiquement bien posé.
Et donc la matrice \({\tensTwo{K^3}}_{2}\) n’est inversible que si \(\alpha \ne 0\). Au final, on voit donc que la numérotation \(\left({u}_{1},\lambda ,{u}_{2}\right)\) vérifie la condition cond1 si \(\alpha \ne 0\) .
Si le blocage \({{\alpha u}}_{1}+{{\beta u}}_{2}=\gamma\) se réduit à:
alors ça marche. Par contre si
alors ça ne fonctionne pas.
La symétrie du problème montre que pour pouvoir traiter le problème \((\alpha ,\beta )=(0,1)\) il faut numéroter \(\left({u}_{2},\lambda ,{u}_{1} \right)\) .
De cet exemple très simple, on peut tirer quelques conclusions générales (toutes négatives):
si on numérote tous les \({\lambda}_{i}\) après les \({u}_{i} et si :math:\)tensTwo{A}` est singulière, la condition cond1 ne sera pas vérifiée pour \({\tensTwo{K}}_{i}=\tensTwo{A}\) ,
soit une condition \(\tensTwo{B} \vector{u}= \vector{d}\) et \(\lambda\) le multiplicateur de Lagrange associé. L’équation \(\tensTwo{B} \vector{u}= \vector{d}\) ne fait pas, en général, intervenir toutes les inconnues \({u}_{i}\) : l’équation contraint certains degrés de liberté. Si \(\lambda\) est numéroté avant les ddl qu’il contraint la condition cond1 ne sera pas vérifiée. En effet regardons la sous matrice \({\tensTwo{K}}_{j}\) où \(j\) est le numéro de l’équation donnant \(\lambda\) .
Soit une structure physique qui, par malchance, est « retenue par son dernier ddl physique » c’est-à-dire telle que si on ne bloque pas ce ddl, la matrice est singulière, et telle que si on le bloque la matrice est inversible. L’utilisation d’un degré de liberté de Lagrange \(\lambda\) pour ce blocage est impossible. En effet, si on numérote \(\lambda\) avant le dernier degré de liberté physique, il y aura un pivot nul au niveau de \(\lambda\) , et si on le numérote après (donc en tout dernier degré de liberté), la matrice \({\tensTwo{K}}_{n-1}\) ne sera pas inversible puisque le blocage n’est pas encore pris en compte. On verra au que la technique des « double lagrange » permet de résoudre ce problème.
Pour finir ce paragraphe nous pouvons faire la remarque suivante: Si \(\tensTwo{K}\) est inversible, on sait qu’il existe une numérotation des inconnues permettant de factoriser \(\tensTwo{K}\) par \(LDL^{T}\) . Cette numérotation est par exemple celle résultant de l’algorithme \(LDL^{T}\) avec permutation (pivot maximal par exemple). Mais cette renumérotation ne concerne que les lignes de la matrice ; il y a donc perte de la symétrie de \(\tensTwo{K}\) . Il suffit de considérer l’exemple suivant.
Exemple 2#
On pose
et
avec la numérotation \(\left({u},\lambda \right)\) .
\(\tensTwo{K}\) est bien inversible, mais il n’existe aucune permutation commune des lignes et colonnes de \(\tensTwo{K}\) permettant une résolution par \(LDL^{T}\) .
Toutes ces remarques montrent que la dualisation proposée dans ce paragraphe ne permet pas d’utiliser \(LDL^{T}-{SP}\) de manière générale.
Principe des « doubles Lagrange »#
Méthodologie#
La méthode proposée ici est celle mise en œuvre dans le code CASTEM (communication personnelle de Thierry Charras et Pierre Verpeaux). Une présentation intuitive pourrait en être la suivante:
On voit que le problème dualisé a des termes nuls sur la diagonale : ceux correspondants aux degrés de liberté de Lagrange. Cette propriété se remarque aussi sur le Lagrangien : il n’y a pas de termes quadratiques en \(\vector{\lambda}\) .
Cette nullité des termes diagonaux empêche certaines permutations de lignes et colonnes : on ne peut placer un Lagrange avant les degrés de liberté physiques qu’il contraint.
L’idée est alors de décomposer chaque coefficient de Lagrange \(\vector{\lambda}\) en deux parties égales \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\). L’équation \(\tensTwo{B} \vector{u}=\vector{d}\) est alors remplacée par:
où \(\alpha\) est une constante non nulle.
Montrons l’équivalence de l’ancien problème et du nouveau:
Problème 1 : « simple Lagrange »
Trouver:
tels que :
On a les équivalences suivantes
\(\alpha\) est une constante \(\ne 0\)
D’où le problème équivalent au précédent:
Problème 2 : « double Lagrange »
Trouver:
tels que
Le nouveau problème peut s’écrire:
avec:
et
Le problème correspond à rendre extrémale la fonctionnelle:
On peut montrer (Cf Annexe 2) que si on observe une certaine règle de numérotation des inconnues, et en choisissant la constante \(\alpha >0\) , la matrice \(\tensTwo{K^{\prime}}\) vérifie la condition cond1.
Cette règle est la suivante:
Soit une relation de blocage \(\tensTwo{B} \vector{u}-\vector{d}=0\) , il lui correspond 2 multiplicateurs de Lagrange \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\) . Cette relation fait intervenir un certain nombre de degrés de liberté physiques.
- Règle \({R}_{0}\) :
Pour chaque relation de blocage, il faut placer \({\vector{\lambda}}^{1}\) avant le premier degré de liberté physique contraint et \({\vector{\lambda}}^{2}\) après le dernier degré de liberté physique contraint. Pour diminuer l’occupation mémoire de la matrice \(\tensTwo{K}\) , il faut chercher à minimiser la largeur de bande. C’est ce que l’on fait dans en « encadrant » les relations « au plus près » : \({\vector{\lambda}}^{1}\) est placé juste avant le premier degré de liberté contraint, \({\vector{\lambda}}^{2}\) est placé juste après le dernier ddl contraint.
Illustration#
Soit un problème à 4 degrés de liberté physiques \(\left( {u}_{1}, {u}_{2}, {u}_{3}, {u}_{4} \right)\) .
Ce système est soumis à 2 conditions:
appelons \(\left({\lambda}_{1}^{1},{\lambda}_{1}^{2} \right)\) les deux degrés de liberté de Lagrange associés à la première condition et \(\left({\lambda}_{2}^{1},{\lambda}_{2}^{2} \right)\) ceux associés à la deuxième condition.
En supposant que les degrés de liberté physiques aient été numérotés dans l’ordre \(\left( {u}_{1}, {u}_{2}, {u}_{3}, {u}_{4} \right)\), la numérotation totale des degrés de liberté retenue est alors \(\left( {\lambda}_{1}^{1},{u}_{1},{\lambda}_{2}^{1},{u}_{2}, {u}_{3} , {\lambda}_{1}^{2},{u}_{4},{\lambda}_{2}^{2} \right)\).
\({\lambda}_{1}^{1}\) et \({\lambda}_{1}^{2}\) encadrent « au plus près » les degrés de liberté contraints (\({u}_{1}\) et \({u}_{3}\)), tandis que \({\lambda}_{2}^{1}\) et \({\lambda}_{1}^{2}\) encadrent « au plus près » les degrés de liberté contraints (\({u}_{2}\) et \({u}_{4}\)).
La technique des « doubles Lagrange » associée à la règle \({R}_{0}\) permet donc de résoudre tout système linéaire physiquement bien posé avec l’algorithme de \(LD{L}^{T}\) sans permutation. La démonstration suppose néanmoins que la matrice \(\tensTwo{A}\) soit symétrique et positive (pas forcément définie).
- Remarque
Les hypothèses \(\tensTwo{A}\) symétrique et \(\tensTwo{A}\) positive sont nécessaires pour utiliser \({{LDL}}^{T}\) (ou \({LU}\)) sans permutation comme le montrent les deux contre-exemples suivants:
\({A}_{1}=\left[\begin{array}{cc}0& 1\\ 1& 0\end{array}\right]\) est symétrique mais non positive
\({A}_{2}=\left[\begin{array}{cc}0& 1\\ -1& 1\end{array}\right]\) est positive mais non symétrique
Avantage supplémentaire#
On va montrer dans ce paragraphe que la technique des « doubles Lagrange » peut permettre de résoudre économiquement une série de problèmes qui ne différeraient que par leurs conditions aux limites cinématiques (par exemple une zone de contact variable).
- Remarque
Cette possibilité n’est pas utilisée actuellement dans le code.
Soit un système avec contraintes \(\tensTwo{K} \vector{X}=\vector{F}\) . Écrivons ce système en faisant ressortir une contrainte particulière (ce calcul reste évidemment valable lorsqu’il y a plusieurs contraintes) \(\tensTwo{C} \vector{u}-\vector{d}=\vectorZero\). Pour simplifier l’écriture, on choisit \(\alpha =1\) .
Soit:
\({\vector{\lambda}}^{1}\) le premier degré de liberté de Lagrange associé à la contrainte
\({\vector{\lambda}}^{2}\) le deuxième degré de liberté de Lagrange associé à la contrainte
\(\vector{U}=\vector{X}-\left\lbrace {\vector{\lambda}}^{1},{\vector{\lambda}}^{2}\right\rbrace\)
\(\tensTwo{\tilde{K}}\) la matrice \(\tensTwo{K}\) projetée sur vector{U} et \(\vector{b}\) le vecteur \(\vector{F}\) projeté sur \(\vector{U}\)
Alors le système s’écrit avec ces variables:
Changeons le coefficient situé dans cette matrice à la position \(({\vector{\lambda}}^{2},{\vector{\lambda}}^{2})\) de \(-1\) à \(3\) et écrivons le nouveau système
Ce dernier système est découplé: on peut résoudre la troisième équation pour obtenir \(\vector{U}\) puis calculer \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\) .
On remarque que la résolution de cette troisième équation correspond au problème initial sans la contrainte \(\tensTwo{C} \vector{u}-\vector{d}=\vectorZero\) . Les valeurs de \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\) n’ont alors plus la même signification physique. En d’autres termes, le système \((S)\) a la même solution en \(U\) que le sous-système \(\tensTwo{\tilde{K}} \vector{U} = \vector{b}\) ; les deux inconnues supplémentaires \({\vector{\lambda}}^{1}\) et \({\vector{\lambda}}^{2}\) ne perturbent pas la solution en \(\vector{U}\) . Le système total peut paraître de taille supérieure \((+2)\) à ce qui est nécessaire, mais informatiquement, cela peut être très commode
En effet, imaginons maintenant que nous sachions à l’avance que certaines relations cinématiques sont susceptibles d’être relâchées. Numérotons les \({\vector{\lambda}}^{2}\) associés à ces relations en fin de système. Nous pouvons alors trianguler partiellement une fois pour toutes le système en s’arrêtant avant ces ddl. La partie de la matrice triangulée est la plus importante en volume : tous les degrés de liberté physiques et tous les \({\vector{\lambda}}^{1}\) . Lorsqu’un problème concret se pose, c’est-à-dire lorsque l’on connaît la liste des relations linéaires actives, il suffit de mettre à jour les dernières lignes de la matrice (\(-\alpha\) si la relation est active, \(3 \, \alpha\) si elle ne l’est pas). On peut alors terminer la triangulation et résoudre le problème économiquement.
Remarque sur le conditionnement du système#
Lorsque l’on regarde l’expression de la matrice que l’on va finalement factoriser \(\tensTwo{\tilde{K}}\), on voit que ses différentes sous-matrices \(\tensTwo{A}\) , \(\tensTwo{B}\) , \(\alpha \tensTwoUnit\) peuvent être d’ordre de grandeur très différents. On sait qu’en général cette situation n’est pas favorable numériquement (précision limitée des ordinateurs).
Il faut remarquer que les équations de liaison \(\tensTwo{C} \vector{u}-\vector{d}=\vectorZero\) peuvent être multipliées par une constante arbitraire \(\beta\) sans changer le problème. De plus, nous avons vu que les matrices \(\alpha \tensTwoUnit\) étaient également arbitraires \(\alpha >0\) . Nous disposons donc de deux paramètres permettant de « régler » le conditionnement de la matrice.
Nous ne ferons pas de démonstration générale mais nous nous contentons d’examiner le cas le plus trivial qui soit : un ressort, un ddl, une liaison.
La matrice \(\tensTwo{\tilde{K}}\) s’écrit si \(k\) est la rigidité du ressort:
Le conditionnement de cette matrice est lié à la dispersion de ses valeurs propres \({m}_{i}\) :
Calculons le polynôme caractéristique de \(\tensTwo{\tilde{K}}\) :
\(k\) est la valeur propre du système non contraint. Cette valeur propre est l’ordre de grandeur recherché pour \(\left({\mu}_{1},{\mu}_{2},{\mu}_{3}\right)\) .
On remarque que \({\mu}_{1}<0\), \({\mu}_{3}<0\) et \({\mu}_{2}>0\) c’est-à-dire que les deux valeurs propres ajoutées par les coefficients de Lagrange sont négatives (c’est d’ailleurs à cause de cela que \(LD{L}^{T}-{SP}\) n’est pas garanti sans précautions).
On cherche à obtenir des valeurs propres d’un même ordre de grandeur:
Ce qui se traduit par
On voit que si \(\beta << k\) alors \({\mu}_{3} \simeq 0\) et \({\mu}_{2} \simeq k\), ce n’est pas le résultat cherché. Si \(\beta >> k\) , alors \(\vert {\mu}_{2}\vert \simeq \vert {\mu}_{3} \vert \simeq \sqrt{2} \beta \simeq \vert {\mu}_{1} \vert\)
Les trois valeurs propres sont alors en valeur absolue de l’ordre de \(\beta\) qui est une constante arbitraire très grande devant \(k\). Cette solution n’est pas celle que l’on retiendra car la valeur \(k\) est dans le cas général (à grand nombre de degrés de liberté) d’un ordre de grandeur comparable aux autres valeurs propres du système.
On choisira plutôt \(\beta = \alpha \simeq k\)
Pratiquement, on choisit une valeur de \(\alpha\) unique pour tout le système. Cette valeur est la moyenne des valeurs extrémales des termes diagonaux associés aux degrés de liberté physiques : \((\min({a}_{ii})+\max({a}_{ii}))/2\). De plus, on prend \(\beta =\alpha\) .
Modes propres et paramètres de Lagrange#
Introduction#
Ce paragraphe veut répondre aux deux questions suivantes: * Q1: Quel est le système de valeurs (et vecteurs) propres réduit à résoudre lorsqu’un modèle mécanique est soumis à des contraintes cinématiques linéaires homogènes ? * Q2: Quel est le modèle dualisé (avec paramètres de Lagrange) équivalent ou précédent ?
Problème mécanique à résoudre#
On suppose un système mécanique déjà discrétisé par éléments finis.
Les inconnues nodales sont notées \(\vector{U}=\left\lbrace {u}_{i}\right \rbrace_{(i=1,n)}\) .
Les déplacements nodaux ne sont pas tous indépendants: il existe \(p < n\) relations linéaires homogènes entre ces déplacements: \(\tensTwo{B}_{j} \, \vector{U} = \vectorZero \text{ pour } j=1,\cdots,p\) .
Ces relations linéaires sont indépendantes entre elles, c’est-à-dire que le rang de la matrice \(\tensTwo{B}\) contenant les coefficients des \(p\) relations linéaires est \(p\).
Soit \(\tensTwo{K}\) la matrice de rigidité du système mécanique sans contraintes. et \(\tensTwo{M}\) la matrice de masse du système mécanique sans contraintes.
Quel est le système aux valeurs propres à résoudre pour trouver les modes propres de la structure contrainte ?
Système réduit#
Remarquons que si l’on écrit les relations linéaires cinématiques sous la forme:
où \(\tensTwo{B}\) est une matrice \(p \times n\) et \(\vector{U}\) est le vecteur des inconnues nodales avec \(\vector{U} \in \setR^{n}\).
alors la relation est aussi valable pour les vitesses.
De plus, si \(\tensTwo{B}\) est de rang \(p\) , alors il existe une sous-matrice carrée de \(\tensTwo{B}\) de rang \(p\) . Notons \(\tensTwo{B}_{1}\) cette sous-matrice.
Faisons alors une partition des inconnues de \(\vector{U}\) en \(\vector{U}_{1}\) et \(\vector{U}_{2}\) tels que:
avec \(\vector{U}_{1}\in {\setR}^{p}\), \(\vector{U}_{2}\in {\setR}^{n-p}\), \(\tensTwo{B}_{1} \in p \times p\) et \(\tensTwo{B}_{2} \in p \times (n-p)\).
Les relations linéaires peuvent alors s’écrire:
ce qui permet d’exprimer les inconnues \(\vector{U}_{1}\) en fonction de \(\vector{U}_{2}\) puisque \(\tensTwo{B}_{1}\) est inversible.
Matrice de rigidité réduite#
L’énergie de déformation élastique de la structure discrétisée non contrainte est \({W}_{\text{def}}=\frac{1}{2} \left( \transpose{\vector{U}}\tensTwo{K} \, \vector{U} \right)\) . Si l’on partitionne la matrice \(\tensTwo{K}\) de la même manière que l’on a partitionné \(\vector{U}\) , on obtient:
alors:
Introduisons alors les contraintes linéaires
avec:
On voit donc que l’on a exprimé l’énergie de déformation de la structure réduite comme une forme bilinéaire de \(\vector{U}_{2}\) . Les inconnues nodales de \(\vector{U}_{1}\) ont été éliminées . Les inconnues nodales \(\vector{U}_{2}\) ne sont plus contraintes .
Matrice de masse réduite#
Adoptons la même partition pour la matrice de masse \(\tensTwo{M}\). Nous pouvons écrire
Le même calcul que précédemment nous conduit alors à l’expression suivante de l’énergie cinétique
avec:
Système aux valeurs propres#
Le système à résoudre pour trouver les modes (et les fréquences) propres de la structure contrainte consiste à trouver les \((n-p) \left({\vector{X}}_{i},{\omega}_{i}^{2} \right)\in {\setR}^{n-p} \times \setR\) tels que
Si on applique au cas des degrés de libertés bloqués, on a
d’où: \(\tensTwo{\tilde{K}}_{2}=\tensTwo{K}_{2}\) et \(\tensTwo{\tilde{M}}_{2}=\tensTwo{M}_{2}\), c’est-à-dire qu’il suffit « d’oublier » dans \(\tensTwo{K}\) et \(\tensTwo{M}\) les lignes et colonnes correspondant aux degrés de liberté bloqués.
Système dualisé#
Nous avons vu que la prise en compte des coefficients de Lagrange (doubles) dans une matrice \(\tensTwo{A}\) conduisait à la matrice \(\tensTwo{A}^{\prime}\) :
où \(\tensTwo{B}\) est la matrice des conditions cinématiques (\(\tensTwo{B} \vector{U}=\vectorZero\)) , \(\alpha \in {\setR}^{+}\) arbitraire et \(\alpha \ne 0\), \(\beta \in \setR\) arbitraire et \(\beta \ne 0\).
Appliquons la dualisation des conditions aux limites aux matrices \(\tensTwo{K}\) et \(\tensTwo{M}\) , en partitionnant les degrés de liberté en \(\vector{X}_{1}\) et \(\vector{X}_{2}\) comme au paragraphe précédent. Nous obtenons le problème aux valeurs propres suivant:
pour une pulsation propre \(\omega\) et un vecteur propre \(\vector{X}\) de ce système, on peut écrire:
avec: \(\tensTwo{\tilde{K}}_{i}=\tensTwo{K}_{i}-{\omega}^{2}\tensTwo{M}_{i}\), \(\beta ={\beta}_{k}-{\omega}^{2}{\beta}_{m}\) et \(\alpha ={\alpha}_{k}-{\omega}^{2}{\alpha}_{m}\).
Le système \((S)\) est d’ordre \(n+2p\) si \(n\) est le nombre de ddls physiques et \(p\) le nombre de relations cinématique .
Le polynôme caractéristique en \({\omega}^{2}\) est a priori de degré \(n+2p\) . Son terme de plus haut degré vaut: \(\prod_{i=1}^{n}(-{m}_{i})\cdot {(+{\alpha}_{m})}^{2p}\) si \({m}_{i}\) est le i-ème terme diagonal de \(\tensTwo{M}\) .
On voit donc que si \({\alpha}_{m} \ne 0\) , le terme de plus haut degré est \(\ne 0\) (car les \({m}_{i}\) sont \(>0\) ) et donc le système dualisé \((S)\) a plus de valeurs propres que le système réduit: \((n-p)\) . Les deux systèmes ne sont donc pas équivalents.
Choisissons \({\alpha}_{m}={\beta}_{m}=0\). Alors on à partir de la troisième et la quatrième équation
puis, à partir de la première équation
en injectant dans la deuxième équation
avec
On constate que les définitions de \({\tilde{K}}_{2}\) et \({\tilde{M}}_{2}\) sont identiques à celles données par le système non-dualisé.
On voit donc que tout vecteur propre \(\vector{X}_{2}\) du système dualisé est aussi vecteur propre du système réduit (avec la même pulsation propre) si on le projette sur l’espace \(\vector{U}_{2}\). Réciproquement, tout vecteur propre \(\vector{X}_{2}\) du problème réduit peut être prolongé en un vecteur propre du système dualisé \(\transpose{\vector{X}}=\left[\transpose{\vector{X}_{1}},\transpose{\vector{X}_{2}},\transpose{\vector{\lambda}},\transpose{\vector{\lambda}_{2}}\right]\) .
avec :
Les deux systèmes sont donc équivalents, ils ont les mêmes modes propres et les mêmes valeurs propres. Le système dualisé, bien que de dimension supérieure au système réduit, n’a pas plus de valeurs propres que le système réduit (la dimension de l’espace propre est la même).
- Conclusion
Le système dualisé est équivalent au système réduit dès que l’on choisit \({\alpha}_{m}={\beta}_{m}=0\), c’est‑à‑dire si on prend la matrice de rigidité dualisée mais que l’on ne modifie pas la matrice de masse.
Exemple#
On reprend le système suivant.
Fig. 129 Exemple 1 du système discret à résoudre#
Les matrice de rigidité et de masse s’écrivent
On lui ajoute la liaison cinématique \(\alpha {u}_{1}+\beta {u}_{2}=0\) avec \(\alpha \ne 0\). Sans cette liaison cinématique, les deux pulsations propres sont \({\omega}^{2}=0\), associée au mode rigide, et \({\omega}^{2}=\frac{2k}{m}\), associée au mode déformable. On note \(\gamma =\frac{\beta}{\alpha}\).
Les matrices de rigidité du système réduit (par élimination du degré de liberté \({u}_{1}\) ) s’écrivent alors \({K}_{1}=k\), \({K}_{2}=k\) et \({K}_{12} = -k\). Et pour les matrices de masse \({M}_{1}=m\), \({M}_{2}=m\) et \({M}_{12}=0\). On a aussi \({B}_{1}=\alpha\) et \({B}_{2}=\beta\).
On a donc
et
d’où l’expression suivante de la pulsation
et \({X}_{2}=1\).
On constate que la valeur propre du système contraint \({\tilde{\omega}}^{2}\) dépend du rapport \(\gamma =\frac{\beta}{\alpha}\) et elle respecte bien l’encadrement entre les deux valeurs propres du système non contraint. En effet, on a:
Si \(\gamma =0,{\tilde{\omega}}^{2}=\frac{k}{m}\) (cas du ressort encastré-libre)
Si \(\gamma =1,{\tilde{\omega}}^{2}=\frac{2k}{m}\) (le mode rigide est bloqué)
Si \(\gamma \to \infty ,{\tilde{\omega}}^{2} \to \frac{k}{m}\) (cas du ressort encastré-libre)
Choisissons \(\alpha=\beta=1\) pour simplifier et écrivons le système dualisé :
Les valeurs propres de ce système sont :
On constate que l’on retrouve la valeur propre pertinente (la quatrième), mais que l’on trouve aussi trois valeurs propres parasites dues à la non nullité de \({\alpha}_{m}\) et \({\beta}_{m}\) .
Si on choisit \({\alpha}_{m}={\beta}_{m}=0\), le calcul montre que le polynôme caractéristique est de degré 1 et que sa seule solution est :
qui est la solution cherchée (mode rigide bloqué).
Conclusions#
Si \(\tensTwo{K}\) et \(\tensTwo{M}\) sont les matrices de rigidité et de masse d’un système non-contraint et si les contraintes linéaires peuvent être écrites sous la forme
avec \({\tensTwo{B}}_{1}\) inversible. Alors les modes propres de la structure contrainte sont ceux du système réduit:
Le système dualisé (doubles Lagrange) qui s’écrit:
avec comme inconnues
et pour matrices
et
a alors les mêmes solutions que le système réduit.
Annexe: démonstrations de quelques résultats#
Problèmes équivalents#
Soit le problème \((Pb1)\):
\(V\) est un sous-espace affine de \({\setR}^{n}=\left\lbrace \vector{u} \in {\setR}^{n}\text{ tel que }\tensTwo{\tensTwo{B}}_i \vector{u}-\vector{d}_i= \vector{0}, \, \forall i=1,p \right\rbrace\). \(\tensTwo{A}\) et \(b\) sont définis sur \({\setR}^{n}\) et \(\tensTwo{A}\) est une matrice symétrique positive d’ordre \(n\) .
Soit le problème \((Pb2)\):
avec l’espace \(V=\left\lbrace \vector{u} \in {\setR}^{n} \text{ tel que }\tensTwo{\tensTwo{B}}_i \vector{u}-\vector{d}_i= \vectorZero, \,\forall i=1,p\right\rbrace\) et \({V}_{0}=\left\lbrace {v}_{0}\in {\setR}^{n}\text{ tel que }\tensTwo{\tensTwo{B}}_i \vector{u}=\vectorZero, \, \forall i=1,p\right\rbrace\)
On va montrer que les deux problèmes précédents sont équivalents.
Remarquons tout d’abord que le problème \((Pb2)\) est équivalent au problème \((Pb2^{\prime})\).
avec l’espace \(V=\left\lbrace \vector{u} \in {\setR}^{n}\text{ tel que }\tensTwo{\tensTwo{B}}_i \vector{u}-\vector{d}_i=\vectorZero \,\forall i=1,p\right\rbrace\). Il y a en effet bijection entre l’ensemble des \(\left\lbrace \left(\vector{v}-\vector{u}\right) , \vector{u} \in V , \vector{v} \in V \right\rbrace\) et l’ensemble \({V}_{0}\) .
Montrons que le problème \((Pb2^{\prime})\) est équivalent au problème \((Pb1)\).
Soit \(\vector{u}\) solution de \((Pb2^{\prime})\). Alors \(\forall \vector{v} \in V\):
Calculons maintenant la dérivée de \(J(\vector{u})\). On a:
Soit \(\vector{u}\) la solution de \((Pb1)\), alors \(\forall \vector{v} \in V\) et \({\vector{v}}_{0}\in {V}_{0}\) on pose \({\vector{v}}_{0}=\vector{v}-\vector{u}\). Alors on a:
On voit que \(J^{\prime}(\vector{u})\) qui est une forme linéaire sur \({V}_{0}\) doit être systématiquement positive. Ceci n’est possible que si cette forme est identiquement nulle.
On en conclut que:
Démonstration de la règle \({R}_{0}\)#
Définitions et notations#
\(\tensTwo{A}\) est la matrice de rigidité sans contrainte de taille \(\left({n}^{\prime} \times n \right)\) (symétrique et positive). \(\tensTwo{B}\) est la matrice de blocage telle que \(\tensTwo{B} \vector{u}-\vector{d}=\vectorZero\) avec \(\tensTwo{B}\) la matrice de taille matrice \(\left( {n}^{\prime} \times p \right)\) (avec \(p<n\)).
\(\vector{u}\) est le vecteur des degrés de liberté physiques dans \({\setR}^{n}\), \(\vector{\lambda}^{1}\) est le vecteur des premiers degrés de liberté de Lagrange dans \({\setR}^{p}\) et \(\vector{\lambda}^{2}\) est le vecteur des deuxièmes degrés de liberté de Lagrange dans \({\setR}^{p}\).
On note \(\vector{x}\) le vecteur des inconnues \(\left( \vector{u}, \vector{\lambda}^{1}, \vector{\lambda}^{2} \right) \in {\setR}^{n}\times {\setR}^{p} \times {\setR}^{p}\). On note:
\(\discVect{U}\) l’ensemble des degrés de liberté physiques,
\(\discVect{\Lambda}^{1}\) l’ensemble des premiers degrés de liberté de Lagrange,
\(\discVect{\Lambda}^{2}\) l’ensemble des deuxièmes degrés de liberté de Lagrange.
\(\alpha \in {\setR}^{+}\) des coefficients
\(\discMatr{K}\) la matrice d’ordre \(2p+n\), symétrique telle que
La matrice \(\discMatr{K}\) écrite ci-dessus correspond à une certaine numérotation des inconnues \(\discVect{X} = \left( \discVect{U}, \discVect{\Lambda}^{1}, \discVect{\Lambda}^{2}\). La véritable matrice \(\discMatr{K}\) dont on cherche à montrer qu’elle est factorisable par \(LDL^{T}\) sans permutation n’est pas écrite avec cette numérotation. La seule règle de numérotation prise en compte est la suivante:
- Règle \({R}_{0}\)
Pour chaque relation de blocage, il faut placer \({\vector{\lambda}}^{1}\) avant le premier degré de liberté physique contraint et \({\vector{\lambda}}^{2}\) après le dernier degré de liberté physique contraint. Pour diminuer l’occupation mémoire de la matrice \(\tensTwo{K}\) , il faut chercher à minimiser la largeur de bande. C’est ce que l’on fait dans en « encadrant » les relations « au plus près » : \({\vector{\lambda}}^{1}\) est placé juste avant le premier degré de liberté contraint, \({\vector{\lambda}}^{2}\) est placé juste après le dernier ddl contraint.
Démonstration#
Les deux degrés de liberté de Lagrange associés à une équation de liaison \({\tensTwo{B}}_{i} \vector{U}-\vector{d}_i= \vectorZero\) encadrent les ddl physiques contraints par cette équation. Par la suite, pour simplifier l’écriture, on prendra \(\alpha=1\).
On cherche à montrer que toute sous matrice \(\discMatr{K}_{i}\) de \(\discMatr{K}\) est inversible. Soit une sous-matrice \(\discMatr{K}_{i}\) donnée. Elle correspond à un partage des degrés de liberté : ceux de rang \(\le i\) , ceux de rang \(\ge i\) .
Nous noterons:
\({\tilde{U}}\) le sous-ensemble de l’ensemble \({U}\) correspondant aux degrés de liberté de rang \(\le i\) .
\({\tilde{\tilde{U}}}\) le sous-ensemble de l’ensemble \({U}\) correspondant aux degrés de liberté de rang \(> i\) .
\({L}_{1}\) est l’ensemble des couples \((\vector{\lambda}_{1}^{1},\vector{\lambda}_{1}^{2})\) tels que \(\rank(\vector{\lambda}_{1}^{1}) < \rank(\vector{\lambda}_{1}^{2}) \le i\). Cet ensemble peut se séparer en deux sous-ensembles
\({L}_{3}\) est l’ensemble des couples \((\vector{\lambda}_{3}^{1},\vector{\lambda}_{3}^{2})\) tels que \(i<\rank(\vector{\lambda}_{3}^{1}) < \rank({\vector\lambda}_{3}^{2})\). Cet ensemble peut se séparer en deux sous-ensembles
\({L}_{2}\) est l’ensemble des couples \((\vector{\lambda}_{2}^{1},\vector{\lambda}_{2}^{2})\) tels que \(\rank(\vector{\lambda}_{2}^{1}) \le i< \rank(\vector{\lambda}_{2}^{2})\). Cet ensemble peut se séparer en deux sous-ensembles
L’ensemble résultant \(L\) s’écrit donc
La matrice \(\tensTwo{B}\) peut se découper en trois parties \(\tensTwo{B}_1\), \(\tensTwo{B}_2\) et \(\tensTwo{B}_3\) correspondant au découpage \(({L}_{1},{L}_{2},{L}_{3})\). Chaque matrice \({\tensTwo{B}}_{i}\) peut se découper en deux parties \(\tensTwo{\tilde{B}}_{i}\) correspondant au découpage \((\vector{\tilde{U}},\vector{\tilde{\tilde{U}}})\).
La matrice \(\tensTwo{A}\) peut se découper en quatre parties correspondant au découpage \((\vector{\tilde{U}},\vector{\tilde{\tilde{U}}})\).
À l’aide de ces notations, le problème à résoudre est de montrer que la matrice \(\discMatr{K}_{i}\) est inversible.
Cette matrice correspond au vecteur \({\discVect{X}}_{i}=\left\lbrace\begin{array}{c} \vector{\lambda}_{1}^{1}\\ \vector{\lambda}_{1}^{2}\\ \vector{\lambda}_{2}^{1}\\ \vector{\tilde{U}} \end{array}\right \rbrace\). Il faut montrer que:
Ce problème est équivalent à :
Cas général
On suppose que \({\tilde{U}} \ne \varnothing\), \({L}_{1} \ne \varnothing\) et \({L}_{2}\ne \varnothing\). Alors le problème \((S)\) s’écrit
et donc
De cette équation, on en déduit:
Comme \({\tensTwo{\tilde{B}}}_{1} \vector{\tilde{u}} = \transpose{\vector{\tilde{u}}} \transpose{\tensTwo{\tilde{B}}_{1}} = \vectorZero\), on obtient:
et donc en redéveloppant:
Or \(\tensTwo{\tilde{A}}\) est symétrique positive (comme sous-matrice d’une matrice positive) et \(\transpose{\tensTwo{\tilde{B}}_{2}}{\tensTwo{\tilde{B}}}_{2}\) est aussi une matrice symétrique positive, donc cette somme ne peut être nulle que si les deux termes sont nuls.
De la première équation, on a \({\tensTwo{\tilde{B}}_{2}} \vector{\tilde{u}}= \vectorZero\) et donc \(\vector{\lambda}_{2}^{1}=\vectorZero\). Pour la seconde équation, comme \(\tensTwo{\tilde{A}}\) est une matrice positive, on veut montrer que
Prolongeons \(\vector{\tilde{u}}\) sur \({\setR}^{n}\) par \(\vector{\tilde{\tilde{u}}}=\vectorZero\). On a donc \(\vector{u}=\left( \vector{\tilde{u}}, \vector{\tilde{\tilde{u}}} \right)\).
On a
Les deux premières lignes sont nulles du fait des résultats précédents. De plus, \(\tensTwo{{\tilde{B}}}_{3}=\tensTwoZero\) car sinon, il existerait des ddl de \(\vector{\tilde{u}}\) contraints par des équations non encore prises en compte ( de rang \(>i\) ) ce qui est contraire à la règle \({R}_{0}\).
Le prolongement \(\vector{u}\) de \(\vector{\tilde{u}}\) est donc dans les noyaux de \(\tensTwo{A}\) et \(\tensTwo{B}\) . On va montrer qu’il est alors nul. Reprenons le problème avec les « simples Lagrange ».
On pose \(\vector{u}_{0} \ne \vectorZero\) tel que \({\tensTwo{A} \, \vector{u}}_{0}= \vectorZero\) et \({\tensTwo{C} \, \vector{u}}_{0}= \vectorZero\) . Si \({u}_{1}\) est solution de \(({S}_{2})\), on voit qu’alors \(\vector{u}_{1}+\mu \, \vector{u}_{0}\) est aussi solution. Ce qui est impossible car nous supposons notre problème est physiquement bien posé.
On en conclut que \(\vector{u}=\vectorZero \Rightarrow \vector{\tilde{u}} = \vectorZero\) .
Il ne reste plus qu’à démontrer que \(\vector{\lambda}_{1}^{1}=\vectorZero\). On repart de l’équation
On vient de démontrer que \(\vector{\tilde{u}} = \vectorZero\) . On a donc plus que
De la même façon que la règle \({R}_{0}\) imposant \(\tensTwo{\tilde{B}}_{3}=\tensTwoZero\) , on voit que \(\tensTwo{\tilde{\tilde{\tensTwo{B}}}}_{1}=\tensTwoZero\).
Raisonnons par l’absurde: si \(\vector{\lambda}_{1}^{1}\ne \vectorZero\) est tel que \(\transpose{\tensTwo{B}}_{1} \vector{\lambda}_{1}^{1}=\vectorZero\) , c’est qu’il existe une combinaison linéaire des lignes de \({\tensTwo{B}}_{1}\) qui est nulle, ce qui est contradictoire avec le fait que les lignes de \({\tensTwo{B}}_{1}\) sont indépendantes les unes des autres (problème physique bien posé). Donc on a bien \(\vector{\lambda}_{1}^{1}=\vectorZero\).
Cas particulier
Lorsque l’un (ou plus) des ensembles \(\tilde{U}\), \({L}_{1}\) , \({L}_{2}\) est vide, le système \((S)\) se simplifie. On peut vérifier que les raisonnements que l’on a fait dans le cas général, permettent de démontrer des résultats analogues.