8.4. Modélisation EF d’une plaque en traction#
Marc BUFFAT, dpt mécanique, Université Claude Bernard Lyon 1
Mise à disposition selon les termes de la Licence Creative Commons
Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 2.0 France.
%matplotlib inline
%autosave 300
from numpy import *
import matplotlib.pyplot as plt
from IPython.core.display import HTML
Autosaving every 300 seconds
On considère le problème de calcul en contrainte plane d’une plaque rectangulaire \(L\times H\) encastrée à une extrémité et soumis à des efforts extérieurs \(\overrightarrow{F}\)
8.4.1. Mise en equation#
Les équations d’équilibre d’un solide soumis à des contraintes planes s’écrivent:
où \(\sigma\) est le tenseur des contraintes, qui est lié au taux de déformation \(\varepsilon\) à travers la loi de comportement. Soient \((u,v)\) les déplacements, on a donc:
avec la loi de comportement de l’élasticité linéaire pour un problème de contraintes planes, où \(E\) est le module d’élasticité du matériau et \(\nu\) le coefficient de Poisson.:
Les conditions aux limites sont :
déplacements fixés: \(u=0, v=0\) en \(x=0\) (frontière \(\Gamma_{0}\))
contraintes imposées: \(\sigma_{x}.n_{x}=F\) ou \(\tau_{xy}.n_{x}=0\) en \(x=L\) (frontière \(\Gamma_{1}\))
frontières libres en \(y=0\) et \(y=H\)
8.4.2. Formulation faible (exercice)#
Ecrire la formulation faible du problème et montrez que l’on peut l’écrire sous forme matricielle
En déduire la formulation variationnelle
8.4.3. Formulation variationnelle#
L’énergie totale du système s’écrit:
et le travail des forces extérieures (sur \(\Gamma_{1}\)) partie de la frontière de \(\Omega\) où on impose une contrainte \(F\) (\(\Gamma=\partial\Omega=\Gamma_{1}+\Gamma_{0}\))
La solution équilibre \(\overrightarrow{u}=(u,v)\) est obtenu lorsque l’énergie potentielle totale \(L=E-W\) est minimale pour tous les déplacements virtuels licites (i.e. vérifiant les conditions aux limites cinématiques)
L’énergie potentiel \(L(u,v)\) est minimale si sa variation \(\delta L\) est nulle pour toute variation \((\delta u,\delta v)\) de \((u,v)\) licites, i.e.:
soit
8.4.4. Approximation par éléments finis#
Soit \(T^{h}\) une triangulation de \(\Omega\) associé à une approximation \(P^{1}\). Soient \(n_{e}\) le nombre de triangles, \(nn\) le nombre total de noeuds, et \(n_{0}\) le nombre de noeuds sur la frontière \(\Gamma_{0}\)
Le nombre de ddl du problème est \(2(nn-n_{0})=2.n_{1}\) et en notant \(\phi_{i}\) la base E.F. on a:
Les variations \(\delta \overrightarrow{u}\) associées sont pour chaque noeud i:
et le système de \(2n_1\) équations s’écrit:
8.4.4.1. Fonctions de Forme#
Sur un element \(l\), de sommets \(\{P_{1},P_{2},P_{3}\}\), l’approximation élément finis s’écrit en fonction de 3 fonctions de forme \(N_p(x,y)\) des des valeurs aux 3 sommets \((n_1,n_2,n_3)\):
Les fonctions de forme de l’élément \(\{N_{1}(x,y),N_{2}(x,y),N_{3}(x,y)\}\) vérifient les conditions:
La fonction \(N_{1}(x,y)\) a pour expression:
avec
Les autres sont obtenues par permutation circulaire.
L’aire du triangle est égale à
Le gradient \(\nabla N_1\) de \(N_1\) est constant et s’écrit
8.4.5. Matrice et second membre élémentaire#
Sur un élément, le déplacement \(\{\overrightarrow{u}\}\) s’écrit
Le taux de déformation \(\{\overrightarrow{\varepsilon}\}\) sur un élément s’écrit
avec
d’ou la contrainte \(\{\overrightarrow{\sigma}\}\)
8.4.5.1. Matrice élémentaire#
La matrice de rigidité du système est donc la matrice 6*6
Pour un élément triangulaire la matrice \([B]\) est constante et la matrice élémentaire \(K^{e}\) s’écrit:
8.4.5.2. Second membre élémentaire#
Le vecteur second membre élémentaire \(B^{e}\) n’apparait que sur les éléments ayant un coté sur \(\Gamma_{1}\).
Soient \(\{n_{1},n_{2}\}\) les 2 sommets de l’élément sur la frontière (dans le sens trigonométrique), les intégrales de bord s’écrivent:
Le vecteur \(B^{e}\) est donc de dimension 4.
8.4.6. Assemblage#
Algorithme d’assemblage de la matrice A
Algorithme
A=0
pour l de 1 à Ne # boucle sur les elements
# calcul de la matrice élémentaire 6*6 Ke
Pour i de 1 à 3
Pour j de 1 à 3
ni=Tbc[l,i]
nj=Tbc[l,j] # numerotation globale
A[2*ni-1,2*nj-1]=Ke[2i-1,2j-1]
A[2*ni-1,2*nj] =Ke[2i-1,2j]
A[2*ni,2*nj-1] =Ke[2i,2j-1]
A[2*ni,2*nj] =Ke(2i,2j)
Fin j
Fin i
Fin l
Les conditions aux limites sont de 2 types:
Dirichlet: on fixe la valeur du déplacement dans le \(2^{nd}\)menbre, on annulle la ligne correspondante dans la matrice A, et on fixe la diagonale à 1
Neuman: on calcul la contribution des intégrales de bord dans le second membre
8.4.7. Exécution code Python#
%run plaque.py
Maillage nom plaque.msh
Nn,Ne= 12 12
Xmin/max Ymin/max= -0.5 0.5 -0.25 0.25
Verification calcul gradient
surface 0.4999999999999999 err= 8.881784197001252e-16 0.0
Verification assemblage 6.4373016357421875e-06 1.341104507446289e-05
U= (12,) 0.0 9.871523126485717e-08 1e-07
V= (12,) -7.931238146249413e-09 7.93123818567599e-09 7.5e-09
<Figure size 640x480 with 0 Axes>