Modélisation et simulation de la déformation d'une pièce de tissu soumise à un champ de forces sept.23 I. Le problème traité, Mise en équation Le problème traité, Mise en équation 1. Généralités, hypothèses et notations Soit N un ensemble de n noeuds ou masses numérotés dans R d (ici d = 2 ou 3). Par commodité, les noeuds seront notés indiérement i ou n i, confondant un noeud et son numéro. De même, s'il n'y a pas ambiguité, on notera de la même manière l'ensemble N et son cardinal, N. Chaque noeud i possède un ensemble V i N de voisins et on note V i = V i {i} Chaque noeud i est relié à l'ensemble de ses voisins par des ressorts R ij de raideur k ij variable. Pour simuler le comportement d'une pièce de tissu, sous l'action d'un champ de forces, on suppose que chaque noeud i est soumis à une force extérieure F i, i N, éventuellement nulle. i N on note X i = (x i, y i, z i ) R 3 la position générique (disons à une itération ou un instant générique) du noeud i. On pose (i, j) N 2, La notation X ij = X j X j X ij = X j X j Xi = ( x i, yi, zi ) R 3 désigne la position du let à l'équilibre, en l'absence de toute force extérieure, tous les ressorts étant supposés à leur longueur de référence. Soit la position initiale du noeud i. Dans la suite on suppose que Xi = ( x i, yi, zi ) R 3 i N, X i = X i La longueur de référence des ressorts est donnée par les distance X ij = X j Xi, 1 i, j N 1
(1.1) (1.2) Pour 1 i N, j V i la force exercée sur le noeud i par le ressort R ij de raideur k ij, est notée Φ ij et dirigée de i vers j par le vecteur normalisé u ij = Xij X ij et proportionnelle à l'allongement X ij X ij. Elle vérie donc : ( Φ ij (X) = k ij Xij X ) X ij ij X ij ) X ij = k ij X ij (1 X ij Partition de N : on suppose que certains noeuds ont une position xée. On note D l'ensemble des noeuds xes (ou noeuds de Dirichlet) et L = N \ D l'ensemble des autres noeuds (appelés noeuds libres). L'ensemble N des noeuds admet donc la partition naturelle 1 : (1.3) N = L D ce qui se traduit sur les variables par le partitionnement suivant : X = (X L, X D ) F = (F L, F D ) En chaque noeud, i on connaît : soit la position X i = Xi si i D soit la force extérieure F i = Fi qui s'y applique, lorsque i L. Les inconnues du problème sont les positions X i, i L des noeuds libres et les forces extérieures F i (X), i D des noeuds xes (réactions des supports). 2. Mise en équations 2.1. Par noeud. t R + désigne le temps, et G R 3 le centre de masse de l'ensemble des noeuds considérés. On suppose le mouvement soumis à des forces visqueuses. Plus précisément, une particule se déplaçant à la vitesse Ẋ (t) sera soumise à la force βẋ (t), β >. La loi fondamentale de la dynamique appliquée au noeud i s'écrit alors : (2.1) Φ ij (X (t)) + F i (X (t)) βẋi (t) = m i Ẍ i (t) j V i 1 On pourrait également considérer qu'un noeud est libre de se déplacer dans une direction Ox par exemple, et xe dans les deux autres directions. Dans ce cas, il y a lieu de distinguer plusieurs partitions de N = L x D x = L y D y = L z D z
En utilisant l'expression [1.1] de Φ ij, on établit, pour chaque noeud i : i N, m i Ẍ i = ) X ij k ij X ij (1 + F i βẋi X j Vi ij = ( ) X ij k ij (X j X i ) 1 + F i βẋi X ij j V i d'où (2.2) i N, m i Ẍ i = ) X ij k ij (1 X j ) X k ij (1 ij X i + F i βẋi X ij X ij j V i 2.2. Ecriture matricielle. On pose A = A ( X ) où A (X) R N,N est dénie par : X k ij ij X A ij (X) = ij si i j X k il il X il si i = j et A (X) = L'équation [2.2] devient alors : l V i j V i A (X) A (X) A (X) (2.3) A (X) X A X + F (X) = MẌ + βẋ 3N,3N R Où M = M M M 3N,3N R avec M = diag (m i, i N ) R N,N est la matrice diagonale des masses élémentaires Le système non linéaire [2.3] peut se séparer en trois équations découplées : on pose X = (x, y, z) t ( R N ) 3 F = (f, g, h) t ( R N ) 3 et on obtient : (2.4) A (X) x A x + f (X) = Mẍ + βẋ A (X) y A y + g (X) = Mÿ + βẏ A (X) z A z + h (X) = M z + βż 2.3. Propriétés des matrices A (X). Compte tenu du partitionnement (1.3) des noeuds, on écrit les matrices A et A (X), par blocs suivant le modèle : ( ) AL A (2.5) A = LD A DL A D Notons que A LD = A t DL puisque A et A (X) sont symétriques. On a de plus les propriétés : La matrice A (X) est non inversible et (1, 1,..., 1) t Ker (A (X)) A (X) est positive au sens où u R N, A (X).u, u Sp (A (X)) R + A L est inversible car à diagonale fortement dominante, si D. A L est symétrique dénie positive.
Proof. A (X) est symétrique, le spectre de A (X) est donc réel. La relation A ii (X) = j V A i ij (X) montre que (1, 1,..., 1) t est vecteur propre associé à la valeur propre. A n'est donc pas inversible. De plus j Vi, A ij (X) < et A ii (X) > donc r i = A ii (X) = j V A i ij (X) Le i -ième disque de Gershgorin est D i = {z C, z A ii (X) r i } = {z C, z r i r i } Le spectre de A est inclus (théorème de Gershgorin) dans D = i D i, on en déduit que Sp (A (X)) R +. Si D la matrice A L est distincte de A et en supprimant les lignes et les colonnes de A, on supprime des coecients A ij <, l'égalité A ii = j V A i ij devient inégalité stricte pour A L : ( A L )ii > ( ) j V A i,j / D L. La matrice A ij L est donc à diagonale fortement dominante, elle est donc dénie positive. Réécriture de (2.4) par blocs Examinons maintenant chacun des termes de ces équations (2.4) : En réécrivant la première des équations de base de (2.4) par bloc, suivant la partition N = L D, on obtient : [A (X) x] L [ A x ] L + f L (X) = [Mẍ + βẋ] L [A (X) x] D [ A x ] D + f D (X) = [Mẍ + βẋ] D en décomposant partiellement ces deux équations suivant les blocs de A, et en tenant compte des conditions (1 et 1), il vient : (2.6) (2.7) [A (X) x] L A Lx L A LDx D + fl = M L ẍ L + βẋ L [A (X) x] D [ A x ] + f D D (X) = 3. Résolution des équations de l'équilibre A l'équilibre, Ẋ= (ẋ, ẏ, ż) = et Ẍ = (ẍ, ÿ, z) = l'équation (2.3) : suggère un algorithme de point xe du type A (X) X A X + F (X) = A X n+1 = A n X n + F n Bien sûr, A n'est pas inversible, on utilise donc les équations par blocs, composante par composante (2.6,2.7), qui permettent le calcul des inconnues x L et f D (3.1) (3.2) [A (X) x] L A Lx L A LDx D + fl = [A (X) x] D [ A x ] + f D D (X) = et l'algorithme de point xe suggéré pour le calcul de x L et f D devient : x n+1 L = ( A ) 1 ( L [A n x n ] L A LDx D + fl ) f n+1 D = [ A n+1 x n+1] [ A x n+1] D D 3.1. Algorithme. Algorithme équilibre positions de référence données (x, y, z) = ( x, y, z ) positions initiales (x, y, z) = ( x, y, z ) = ( x, y, z ) assembler A,A = A forces extérieures données (f, g, h) = ( f, g, h ) forces intérieures (ϕ, ψ, θ) = (,, ) forces résiduelles (R x, R y, R z ) = (f, g, h) + (ϕ, ψ, θ) r = R x 2 + R y 2 + R z 2 tant que (r/r > ɛ) résoudre A L x = (R x) L A L y = (R y) L A L z = (R z) L assembler A
forces intérieures :(ϕ, ψ, θ) = (Ax, Ay, Az) ( A x, A y, A z ) forces extérieures : (f, g, h) D = (ϕ, ψ, θ) D forces résiduelles : (R x, R y, R z ) = (f, g, h) + (ϕ, ψ, θ) résidu : r = R x 2 + R y 2 + R z 2 fin tant que Cet algorithme (voir 4.1) se révèle relativement lent mais très stable. 4. Résolution des équations de la dynamique Dans cette partie, on s'intéresse au même problème, d'un point de vue dynamique. La mise en équations du problème dynamique a été faite ci-dessus, cf [2.3] et [2.4]. Dans ce cas, bien sûr Ẋ= (ẋ, ẏ, ż) et Ẍ = (ẍ, ÿ, z) L'algorithme de point xe utilisé pour le calcul de l'équilibre s'étant montré très stable, nous allons tenter de le modier pour prendre en compte les termes d'inertie et de viscosité. Un pas de temps dt et un entier n étant xés, on approche Ẋ (n.dt) := Ẋn et Ẍ (n.dt) := Ẍn par diérences nies centrées d'ordre 2 : Ẋ n = Xn+1 X n 1 2dt + O ( dt 2) Ẍ n = Xn+1 2X n + X n 1 dt 2 + O ( dt 2) L'idée de point xe qui nous a guidé jusqu'alors peut s'étendre de la manière suivante : A n x n A x n+1 + f n = devient A n x n A x n+1 + f n = Mẍ n + βẋ n soit, ou encore : A x n+1 = A n x n + f n M ( x n+1 dt 2 2x n + x n 1) β ( x n+1 x n 1) 2dt (4.1) ( A + M dt 2 + β ) 2dt I x n+1 = A n x n + f n + M ( 2x n dt 2 x n 1) + β 2dt xn 1 On eectue alors une décomposition par blocs analogue à celle utilisée en (??), appliquée à la matrice A + M dt I. Des résultats numériques sont donnés dans 4.3 2 + β 2dt II. Résultats numériques Résultats numériques 4.1. A l'équilibre, résultats numériques en 2d. le test d'arrêt des itérations porte sur le rapport des normes euclidiennes du résidu : r n r < 1 avec r n = ( A A n) X n + F (X) 2
Figure 4.1. Une piece de tissu (8X8 noeuds) champ de forces uniforme sur une partie de la frontière (itération 41). (a) position initiale et let déformé ln(rn/r) 1 12 14 5 1 15 2 25 3 35 4 itération (b) Log du résidu
Figure 4.2. Une piece de tissu (15X15 noeuds) champ de forces non uniforme. 1 Test 1 Test 2 Test 3 3 5 7 9 1 1 2 3 4 5 6 7 8 Une pièce de tissu en 2d. Dans simulation suivante, dans les mêmes conditions que précédement, on a imposé un comportement non élastique au tissu. Les coecients d'élasticité k ij dépendent du signe de X ij X ij : k ij > si X ij > Xij (élastique en élongation) et k ij = si X ij X ij (pas de résistance en compression). A noter cette simulation produit des images avec une apparence 3d réalistes, les temps d'exécution étant drastiquement réduits par rapport à une vraie simulation 3d.
Figure 4.3. Une piece de tissu (15X15 noeuds) champ de forces non uniforme. 1 Cas test 1 Cas test 2 Cas test 3 3 5 7 2 4 6 8 1 12 14 16 18 2 Un prol de parapente en 2d.
Figure 4.4. Déformation d'un prol de parapente : bord de fuite xé. Position Initiale Itération 21 -.5-1 -1.5-2 -2.5-3 -3.5 2 4 6 8 1 12 14 16 18 2 Figure 4.6. Cas test 1 : une piece de tissu (15X15 noeuds) soumise à son propre poids et lestée dans sa partie basse, xé en partie haute. On note la présence d'ondulations réalistes au bas de la pièce, (penser à un drapé de rideau).
Figure 4.5. Déformation d'un prol de parapente : bord de fuite libre. Position initiale Itération 4 1 3 5 7 5 1 15 2 25 3 35 4 Fig. 4.7. cas test 2 : la même pièce de tissu sans poids, une force extérieure tire sur un bord, le bord vis à vis est xé.
No Fig. 4.8. cas test 3 : la même pièce de tissu avec poids, une force extérieure tire sur un coin, le coin vis à vis est xé. 1-1 -2-3 -4-5 -6-7 -8-9 -1 2 4
Fig. 4.9. cas test 4 : la même pièce de tissu avec poids, une force extérieure tire sur un coin, le coin vis à vis est xé. -1-2 -3-4 -5-6 -7-8 -9-1
Fig. 4.1. cas test 5 : deux vues de la même pièce, xée à un coin, soumise à son poids. Il n'y a probablement pas unicité de la solution à l'équilibre. 4.2. Calcul de l'équilibre, résultats numériques en 3d. 4.3. Dynamique, résultats numériques en 3d.
Figure 4.11. La piece de tissu est soumise xée sur le bord (à droite sur la gure), soumise à son propre poids plus une force de 3 newtons, répartie sur trois noeuds du le bord opposé. Cas tire 2. Caractéristiques t [, 25], ɛ = 1 5 m t = 225 g, K i = 3.5 1.5 3.5 7 7 3.5 1.5 3.5 test d'arret : w c < ɛ 2 ou t > t max ou r < ɛ dt β it r t final w c w cg 5. 5 1.5e 2 25 3.5e 6 2.7e 6.5 5 3.e 3 25 5.e 7 5.1e 8.5 5 1.9e 4 25 5.2e 9 2.8e 11.1 1868 3.13e 5 18.7 1.e 12 4.9e 15.5 314 1.e 5 18 2.2e 8 2.7e 11.1 12474 9.9e 6 12.5 7.6e 6 5.6e 6 5. 1 3 5 1.5e 2 25 3.5e 6 2.7e 6.5 1 3 5 3.e 3 25 5.1e 7 5.2e 8.5 1 3 5 1.9e 4 25 5.3e 9 2.9e 11.1 1 3 1656 2.1e 5 16.6 1.e 1 1.5e 14.5 1 5 1.9e 4 25. 5.2e 9 2.7e 11.1 1 1868 2.1e 5 18.7 1.e 1 4.9e 15
Figure 4.12. cas tire 2, énergie cinétique totale en fonction du temps, pour diverses valeurs du pas de temps et du coecient d'amortissement. Cas TIRE2, dt=.5 s 4 2 1 12 Energie cinétique Beta=1.e 3 Beta=. 5 1 15 2 4 2 1 12 Energie cinétique Cas TIRE2, dt=.5 s 4 2 1 12 Beta=.1 Beta=. 5 1 15 2 25 Energie cinétique, cas tire2, dt=.1s Beta=1.e 3 Beta=1.e Beta=. 2 4 6 8 1 12 4 2 1 12 Energie cinétique Cas TIRE2, dt=.5 s 4 2 1 12 Energie cinétique Cas TIRE2, dt=5 s Beta=.1 Beta=. Beta=1.e Beta=. 5 1 15 2 25 5 1 15 2 25 3 Energie cinétique en fonction du temps
Figure 4.13. tombe 1, deux vues, et l'historique de l'énergie cinétique pour diérentes valeurs du pas de temps. beta=.1 4 2 dt=.5 s dt=.1 s dt=.5 s Log(Wc) 1 12 5 1 15 2 25 t Cas tombe1.