1.1. Modélisation d’un treillis par éléments finis#
1.1.1. Introduction#
On se propose d’étudier la modélisation d’un treillis par éléments finis. Un treillis est un assemblage de poutres métalliques (voir figure ci-dessous).
On suppose que l’assemblage subit uniquement des efforts de compression (ou extension) sans effet de flexion.
1.1.2. Etude d’une poutre seule#
Pour une poutre de longueur L , de coefficient d’élasticité E et de section S, l’équation d’équilibre statique s’écrit (en notant \(u(x)\) le déplacement)
A cette équation, il faut ajouter 2 conditions aux limites:
soit des conditions d’encastrement (condition de Dirichlet):
\(u=0\)soit des conditions de force imposée (condition de Neuman):
\(ES\frac{\partial u}{\partial x}=F\)
Dans la suite on supposera que l’on impose 2 conditions de force en \(x=0\) et \(x=l\).
1.1.2.1. Formulation éléments finis#
Soit \(\delta u\) un déplacement virtuel licite (i.e. vérifiant les C.L. de Dirichlet), la formulation faible s’écrit:
On cherche une solution approchée \(u^{h}\) en utilisant une approximation avec des éléments finis \(P^{1}\) sur un maillage d’un seul élément \(e_{1}=[0,l]\)
où \(\Phi_{1}(x)\) et \(\Phi_{2}(x)\) sont les fonctions base associées aux deux noeuds du maillage \(P_{1}(x=0)\) et \(P_{2}(x=l)\)
La formulation Galerkin s’écrit, en prenant pour fonction test \(\delta u^{h}\), les fonctions de base \(\Phi_{1}(x)\) et \(\Phi_{2}(x)\) :
c’est un système linéaire 2x2
\(\mathbf{K}\) est la matrice de rigidité qui vaut pour des éléments \(P^{1}\) de longueur \(h\)
1.1.2.2. Cas d’une poutre incliné d’un angle \(\alpha\)#
Dans les axes \((\chi,\xi)\) liés à la barre, le déplacement \(u\) est donné par les équations précédentes et le déplacement \(v\) n’est associé à aucune équation. Le système linéaire sur \(u\) et \(v\) s’écrit:
Pour passer dans le repère fixe, il faut introduire la matrice de changement de repère:
ce qui permet d’écrire le déplacement dans \((\chi,\xi)\) en fonction du déplacement dans \((x,y)\)
et de projeter les forces de \((\chi,\xi)\) dans \((x,y)\)
ce qui conduit au système linéaire dans \((x,y)\)
1.1.3. BE étude du treillis#
Un treillis est un assemblage de \(Ne\) poutres reliées en \(Nn\) noeuds. On veut déterminer les déplacements \((u_{x},u_{y})\) de chaque noeuds, ainsi que les contraintes dans les poutres.
1.1.3.1. étude statique#
Le modèle discret consiste à écrire le système linéaire
où \(U\) est le vecteur déplacement de \((2\,Nn)\) réels, et \(\mathcal{K}\) la matrice de rigidité et \(\mathcal{B}\) le second membre (forces appliquées)
1.1.3.1.1. Algorithme:#
Assemblage de la matrice \(\mathcal{K}\) (boucle sur les barres)
Calcul du second membre \(\mathcal{B}\) (forces appliquées)
Conditions aux limites (Dirichlet, Neuman)
Résolution du système linaire
1.1.3.1.2. Structure de données#
Description du treillis de \(Ne\) barres et \(Nn\) noeuds:
tableau de coordonnées des noeuds \(X\) vecteur \((2Nn)\) réels
graphe du treillis (table de connection) \(G\) tableau \((2,Ne)\) entiers
conditions aux limites aux noeuds \(CL\) tableau \((Nn)\) entiers
(code = type de CL 0 rien, 1 u=0, 2 v=0, 3 u,v=0, 4 Fe)Forces extérieures \(Fe\) tableau \(2Nn\) réels
1.1.3.1.3. Implémentation en python#
utilisation de numpy et de structure (classe)
vecteur réel
X=array([0.2,0.3,0.5])
X=array([0.2,0.3,0.5],dtype=float)vecteur entier
I=array([1,3,4],dtype=int)matrice
A=array([[1,2],[3,4]])concatenation
concatenate((A,B))
concatenate((A,B),axis=1)
hstack((A,B))
vstack((A,B))
vstack((hstack((A,B)),hstack((B,A))))manipulation
transpose(A)adressage indirecte
A[ix_([1,0],[2,1])]resolution système lineaire
linalg.solve(A,B)valeurs propres
D,V=linalg.eig(A)inverse
linalg.inv(A)
1.1.3.2. étude dynamique#
Pour une poutre de longueur L , de coefficient d’élasticité E et de section S, l’équation d’équilibre dynamique s’écrit (en notant \(u(x,t)\) le déplacement)
Matrice élémentaire de masse
Pour le treillis, en vibration libre, on doit résoudre le système d’EDO linéaire:
Ce qui conduit à un problème aux valeurs propres pour la matrice \(A\):