Vous êtes sur la page 1sur 9

Université Badji Mokhtar Annaba

Faculté des sciences de l’ingénieur


Département de Génie Civil
2011/2012

TP du module MEF
Master1 / STRUCTURE

Responsable du TP : K. DJEGHABA

TP de MEF- Master1, option Structure Page 1


Objectif : le but de ce TP est de se familiariser avec le calcul d’un point vu pratique
(programmation) avec la méthode des éléments finis.
Le calcul par éléments finis utilisant essentiellement le calcul matriciel, une séance pour la
manipulation du calcul matriciel sur machine est nécessaire. Le TP se fera sur machine avec
le logiciel le mieux adapté pour le calcul matriciel : logiciel MatLab.

Connaissances requises : Une connaissance des bases théoriques d’algèbre linéaire


élémentaire et plus particulièrement du calcul matriciel, est nécessaire.
Les étudiants ayant des lacunes dans ce domaine doivent se mettre à niveau.

Planning des TP (séance de 4h)

1er Séance TP: (Pas de rapport à rendre)


> Premiers pas avec Matlab et son environnement

Exécution de commande MatLab en mode ligne


Application : Manipulation du calcul matriciel sur machine, et se familiariser avec les
commandes et instructions du logiciel

2eme Séance TP: (Pas de rapport à rendre)


Apprendre à écrire un script (un programme) en langage Matlab.
Application : écrire un programme calculant à partir d’un état de contraintes, les contraintes
sur n’import quelle plan, ainsi que les contraintes principales (en 2D et 3D)

3eme Séance TP: (ce TP donne lieu à un rapport)


Calcul d’une structure en treillis avec l’élément fini de Barre à deux nœuds (traction /
compression) –
Application : Ebauche d’un programme général pour calcul de treillis

4eme Séance TP: (ce TP donne lieu à un rapport)


Calcul d’une structure de poutre console avec l’élément de poutre de flexion à deux nœuds
Application : Améliorer le programme précédent et inclure aussi le calcul par éléments
poutre

5eme Séance TP: (ce TP donne lieu à un rapport)


Calcul d’une structure de portique avec l’élément de poutre de flexion à deux nœuds

6eme Séance TP:


Finalisation du programme débuté en séance 3, 4, et 5
(rendre un rapport sur l’écriture d’un programme générale EF de poutre avec soutenance)

TP de MEF- Master1, option Structure Page 2


Séance TP n° 1
Le logiciel Matlab consiste en un langage interprété qui s'exécute dans une fenêtre dite d'exécution.
L'intérêt de Matlab tient, d'une part, à sa simplicité d'utilisation : pas de compilation, déclaration
implicite des variables utilisées et, d'autre part, à sa richesse fonctionnelle : arithmétique matricielle et
nombreuses fonctions de haut niveau dans divers domaines (analyse numérique, statistique,
commande optimale, représentation graphique, ...). Il est à noter que toutes les commandes sont en
anglais et l'aide en ligne également !
On peut utiliser Matlab, soit en mode en ligne, c'est-à-dire saisir des commandes dans la fenêtre
d'exécution au fur et à mesure, soit en mode programmation, en écrivant dans des fichiers séparés
(*.m) l'enchaînement des commandes. Ces fichiers s'appellent des scripts et on les construit à l'aide de
n'importe quel éditeur.(de préférence utiliser l’éditeur intégré à l’environnement MatLab lui-même)
Le mode en ligne permet d'obtenir des résultats simples qui ne sont pas sauvegardés. Le mode
programmation, (à l’aide d’un fichier sauvegarder d’extension *.m) quant à lui, permet de développer
des applications très complexes.
Lancement du logiciel MatLab(version utilise actuellement R2009a)

En double cliquant sur le l’icône Matlab


Répertoire de
travail (courant).
On obtient l’affichage (par défaut) avec les principales fenêtres : Qu’il faut choisir
avant de commencer
à travailler
s

>> Endroit ou se trouve


le curseur (Prompt) qui Fenêtre affichant les
permet d’écrire les valeurs des variables
commandes Matlab à et constantes durant
Affichage du exécuter
Contenu du l’exécution et gardés
répertoire en mémoire
(courant) de
travail.
Fenêtre
principale
d’exécution de
commandes
Fenêtre affichant
l’historique des
commande

Première utilisation MatLab


Première règle pour la bonne utilisation de Matlab : créer un répertoire ou un dossier de
travail personnel (comme par exp « TP-MEF-M1S » dans l’exemple précédent) et le rendre

TP de MEF- Master1, option Structure Page 3


comme répertoire courant. On placera tous les fichiers de travail dans ce répertoire pour
pouvoir les retrouver et surtout permettre à Matlab de les exécuter. (Important : Matlab
exécute par défaut les fichiers qui sont dans le répertoire courant )

Consulter pour l’aide le document qui vous est fourni des commandes principales de Matlab

Application mode exécution ligne :

1- Création de matrice

[A] = A = [1 2 3] matriceligne( ou transposé d' un vecteur) : taille( 1x3)


1
[B] = {B} = 2 matricecolonnede taille(3x1)ou vecteurd e taille(3)
3

[C] = 
1 2
 matricede carréede ( 2x2)
 3 4
1 2 3
[D] = 4 5 6 matricede carréede ( 3x3)
7 8 9
1 2
[E] = 3 4 matricede carréede ( 2x3)
5 6

[F] = 
1 2 3
 matricede carréede ( 3x3)
4 5 6
2- Différentes opérations sur les matrices
a. Somme de matrice
b. Transposée d’une matrice
c. Déterminant d’une matrice
d. Inverse d’une matrice
e. Produit d’une matrice par un scalaire
f. Produit de deux matrices
g. Valeur propre d’une matrice

Voir document des principales commandes de Matlab

TP de MEF- Master1, option Structure Page 4


Séance TP n° 2 :
But : exécution de plusieurs commande simultané >> il s’agit de se familiariser avec l’écriture
d’un script avec Matlab : c.a.d écrire une suite de commandes ou d’instructions Matlab et les
sauvegarder dans un fichier dans le but d’en faire une exécution en bloc. Le script ou
programme de Matlab à pour extension nomfichier.m
Évidemment l’avantage d’avoir un script et de pouvoir le rappeler et modifier les éventuelles
erreurs en cas de nécessite sans pour cela réécrire toutes les instructions

TP de MEF- Master1, option Structure Page 5


Séance TP n° 3

Le but est de construire un programme général par EF pouvant calculer tout


type de structures composées de l’élément de barre :
Remarque : ce TP se fera progressivement sur les séances restantes, un compte rendu sera
exigé à la fin du semestre et son évaluation est conditionnée par une soutenance.

Travail demandé :
Ecrire un programme en MatLab pour Calculer pour une structure formée de barre
 Les déplacements aux nœuds
 Les Réactions Aux appuis
 Les efforts dans les Eléments

Orientation : suivre l’ Organigramme de la structure d’un programme par élément finis


présenté en séance de TP.

Pour avoir un model de calcul pour le test pour notre programme, nous utiliserons l’exemple
de la structure suivante

20 t 20 t

10 t

4m

4m 4m 4m 4m

Donnees :
Toutes les barres sont en Acier avec une section en IPE100
Eacier= 2,1 . 107 t/m2
Section = 10,3232 .10-4 m2
Inertie = 1,71012 .10-6 m4

TP de MEF- Master1, option Structure Page 6


Conseil pour débuter l’écriture du programme :
La première chose à faire pour commencer l’écriture d’un programme par élément finis
( ou tout autre programme en général) est le choix des noms, du types et enfin de la taille des
variables qui seront utilisées dans ce programme.
• Nom : Vous pouvez choisir les noms que vous voulez pour vos variables, mais il est
préférable, pour la lisibilité du programme d’utiliser des noms simple mais
significatifs (parlants)
• Type : Le type doit être adéquat pour la variable à utiliser (entière, réelle, chaine de
caractère….)
• Taille ; s’assurer de la taille convenable (scalaire, vecteur, matrice)
Exemple : pour les nœuds de la structure :
Variable du nombre de nœuds ( nom = nnod, taille = scalaire, type : entier
Pour les coordonnées des nœuds :
nom = coord, taille = matrice de taille (nnod,2) , type : réelle

il y a dans le tableau suivant une proposition pour toutes les variables nécessaires pour la
bonne implémentation du programme :
DONNEES GENERALES à lire : information générale sur la structure
Variable Type et Taille Désignation
nnod scalaire Nombre de nœuds de la modélisation
nelt scalaire Nombre d’éléments de la modélisation
nbloc scalaire Nombre de blocage de ddl
ncha scalaire Nombre de charge
DONNEES DETAILLEES à lire : information sur les caractéristiques géométriques et physiques et sur la
connexion dans la modélisation
Remarque : le problème étant dans notre cas plan ( 2D), les coordonnée sont x et y et donc la taille du tableau des
coordonnée et de 2
L’élément utilisé étant une élément de barre à 2 nœuds
Variables Type et Taille Désignation
coord(i,j) Matrice de taille Tableau contenant les coordonnées des nœuds de la structure
(nnod x2) i=1, ….nnod
j= 1,2 (1 pour x et 2 pour y) car le Problème est Plan (2D)
ex : coord( i , 1) = abscisse du nœud i (x)
coord( i , 2) = ordonnée du nœud i (y)
conex(i,j) Matrice de taille Tableau contenant les connexions des éléments de la modélisation
(nelt x2) i=1,….,nelt
j=1..2 ( nœud 1 ou nœud 2) cas d’un élément à 2 nœuds
exemple : pour un élément « i »
conex( i , 1) = numéro du nœud 1(local) dans la repère global
conex( i , 2) = numéro du nœud 2 (local) dans la repère global
E(i) vecteur de taille (nelt) Modules d’élasticité des éléments
E(i) = module d’élasticité de l’élément i
S(i) vecteur de taille (nelt) Section des éléments
exp : S(i) = section de l’élément i
numb(i) vecteurs de taille numb : vecteur contenant les numéros des nœuds bloqués
dirb(i) (nbloc) dirb : vecteur contenant les numéros des directions bloquées
exemple :
numb( i) = numéro du nœud bloqué du iieme blocage
dirb(i) = numéro de la direction bloquée du nœud numb(i)
(dirb(i) = 1 ou 2 (direction u bloquée = 1
direction v bloquée = 2
Numch(i) Vecteurs de taille numch : vecteur contenant le numéro du nœud chargé
Dirch(i) (ncha) dirch : vecteur contenant le numéro de la direction chargée
Vch(i) vch : vecteur contenant la valeur de la charge
exemple :
numch( i) = numéro du nœud chargé de la iieme charge

TP de MEF- Master1, option Structure Page 7


dirch(i) = numéro de la direction chargée du nœud numch(i)
(dirch(i) = 1 ou 2 (direction u chargée = 1
direction v chargée = 2
vch(i) = intensité de la charge pour l nœud numch(i) dans la
direction dirch(i)

VARIABLES A CREER pour le CALCUL et les RESULTATS


variables Taille Désignation
Variables au niveau élémentaire (par éléments)
Kel(i,j) Matrice de taille Matrice de rigidité de l’élément barre dans le repère local (xy)
(4 x4 )
Keg(i,j) Matrice de taille Matrice de rigidité de l’élément de dans le repère global (XY)
(4x4)
R(i,j) Matrice de taille Matrice de rotation de passage du repère global > le local pour
(4 x4 ) l’élément de barre
Uel(i) Vecteur de taille (4) Vecteur déplacement de l’élément dans le repère local
Ueg(i) Vecteur de taille (4) Vecteur déplacement de l’élément dans le repère global
Eff(i) Vecteur de taille (4) Vecteur effort dans l’élément dans le repère local (xy)
Variables au niveau globale ( pour la structure)
KG(I,J) Matrice de taille Matrice de rigidité de l’élément de barre après assemblage dans le
(2*nnod x 2*nnod) repère global (XY)
F(I) Vecteur de taille Vecteur force nodale dans le repère global (XY)
(2*nnod)
U(I) Vecteur de taille Vecteur déplacements nodal dans le repère global (XY)
(2*nnod)
React(I) Vecteur de taille Vecteur réaction React(I) = réaction dans la position bloquée I
(nbloc)

Conseil pour la lecture des données :


Vous pouvez écrire les données du problème dans un fichier data.m en les affectant
directement aux variables que vous avez choisis.
Ce fichier pourra être lu directement par votre programme Matlab. Pour cela, il suffit
d’écrire le nom de ce fichier (sans l’extension .m) à l’endroit de votre programme ou vous
devez lire les données et ainsi il pourra être lu comme une séquence d’instruction
Exemple
On ouvre un fichier sous Matlab avec le nom par exemple de :
data.m ( ce fichier sert de fichier de données pour chaque structure à calculer)
%DONNEES GENERALES
nnod=5
nelt=7
nbloc=4
ncha=3
% DONNEES DETAILLEES PAR NŒUDS EET PAR ELEMENTS
% coordonnées x et y par nœuds
coord=[ 0 0 ;
4 0;
…..
…]
% connexions par éléments
conex=[ 1 2 ;
23;
…..
…]
……..
Etc…….pour la suite des données

TP de MEF- Master1, option Structure Page 8


On sauvegarde le fichier. Ce fichier servira de fichier de données pour le problème traité. Il
sera évidemment modifié selon la structure à calculer

Pour la suite …. on ouvre un nouveau fichier qui va contenir notre programme général de
calcul des structures à barre et qu’on nomme par exemple :

treillis.m

% Programme principal de calcul par élément finis de barre de % structures de type treillis

% Lecture des données


% Matlab va ouvrir le fichier data et lire son contenu
Data % fichier de données
………………………….
………………………………
% construction de Kel
for i=1 :nelt
Kel= …….

End
% assemblage des éléments
…………………………….
……………………………..
% conditions au limites
…………………………….
……………………………..
% résolution de K u = F
…………………………….
……………………………..

etc. pour la suite du programme

Remarque : comme ce fichier sera progressivement complété et amélioré sur plusieurs


séances pour le rendre complètement fonctionnel comme programme général lors de sa
remise, il est demandé aux étudiants de veiller à sauvegarder à chaque fin de séance de
TP leurs fichiers de travail pour les séances suivantes sur leurs propres supports (flash
disque, clé USB etc…). car la sauvegarde des fichiers laissés dans les disques durs des
Micro-ordinateurs du département n’est pas garantie, Ces fichiers peuvent êtres
manipulés ou même effacés par d’autres utilisateurs de la salle des Micros.

TP de MEF- Master1, option Structure Page 9