Travaux Pratique de la MEF
Chapitre 5 : Calculs des structures par MEF sous Matlab
Pr. Yassine EL HALOUI Filière : 4GC
Cours MEF
1. Introduction
Environnement MATLAB
La fenêtre La fenêtre
La fenêtre Command La fenêtre
Workspace Command
Current Folder Window History
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 2
Cours MEF
1. Introduction
Première interaction avec MATLAB :
Le moyen le plus simple pour utiliser MATLAB est d’écrire directement dans la fenêtre de commande (Command Window)
juste après le curseur (prompt) >>
Pour calculer une expression mathématique il suffit de l’écrire comme ceci :
>> 5+6 Puis on clique sur la touche Entrer pour voir le résultat.
ans =
11
Si nous voulons qu’une expression soit calculée mais sans afficher le résultat, on ajoute un point virgule ‘;’ à la fin de
l’expression comme suit :
>> 5+6 ;
>>
Pour créer une variable on utilise la structure simple :
nom_variable = valeur
sans se préoccuper du type de la variable.
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 3
Cours MEF
1. Introduction
Première interaction avec MATLAB :
Par exemple:
>> a = 5;
>> b = ‘bonjour’;
C’est un point essentiel du langage Matlab, il permet d’utiliser dynamiquement les variables et même de leurs changer de type
au cours du programme.
L’opération La signification
+ L’addition
- La soustraction
* La multiplication
/ La division
\ La division gauche (ou la division inverse)
^ La puissance
‘ Le transposé
( ) Les parenthèses spécifient l’ordre d’évaluation
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 4
Cours MEF
1. Introduction
Les nombres en MATLAB :
Le type Exemples
Entier 5 -83
Réel en notation décimale 0.0205 3.1415926
Réel en notation scientifique 1.60210e-20 (1.60210x10-20)
üPour afficher davantage de chiffres utiliser la commande
format long (14 chiffres après la virgule).
üPour retourner à l’affichage par défaut, utiliser la
commande format short.
üPour afficher uniquement 02 chiffres après la virgule,
utiliser la commande format bank.
üPour afficher les nombres sous forme d’une ration, utiliser
la commande format rat.
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 5
Cours MEF
1. Introduction
Les variable en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 6
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 7
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 8
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 9
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 10
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 11
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 12
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 13
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 14
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 15
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 16
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 17
Cours MEF
1. Introduction
Les matrice en MATLAB :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 18
Cours MEF
1. Introduction
Boucle for
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 19
Cours MEF
1. Introduction
Boucle for
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 20
Cours MEF
1. Introduction
Boucle for
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 21
Cours MEF
1. Introduction
Les entrées /sorties
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 22
Cours MEF
2. Fichiers SCRIPT et FUNCTION
File => New => Script / function
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 23
Cours MEF
2. Fichiers SCRIPT et FUNCTION
Exemple Script : Ecrire un Script qui permet de calculer la rigidité k d’une barre
Résultat :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 24
Cours MEF
2. Fichiers SCRIPT et FUNCTION
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 25
Cours MEF
2. Fichiers SCRIPT et FUNCTION
Exemple fonction : Ecrire une fonction qui permet de saisir les valeur de E, A et L et puis calculer la rigidité k d’une barre
Ou écrire la commende de la fonction
dans un Script
Résultat :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 26
Cours MEF
2. Fichiers SCRIPT et FUNCTION
Exemple script contient une fonction :
Ou écrire la commende de la fonction
dans un Script
Résultat :
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 27
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script (puis une fonction) permet de :
• Saisir par l’utilisateur des valeurs de E, L et A (ou S)
æ E.S E.S ö
æ 11 12 ö
K K ç - ÷
• Calcul de ki =EA/L K = çç ÷÷ = ç L L ÷ : matrice de rigidité
K K
è 21 22 ø ç -ç E .S E .S ÷÷
• Remplir la matrice k è L L ø
Solution :
Script Function
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 28
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script (puis une fonction) permet de :
• Saisir par l’utilisateur des valeurs de E, L, A et theta
• Calcul de ki =EA/L, cos , sin
• Remplir la matrice k
Solution :
function k = kelementrotation
(E,A,L, theta)
E=input ('Saisir une valeur de E :
');
A=input ('Saisir une valeur de A :
');
L=input ('Saisir une valeur de L :
');
theta=input ('Saisir une valeur de
theta en degree : ');
x = theta*pi/180;
C = cos(x);
S = sin(x);
k = E*A/L*[C*C C*S -C*C -C*S ; C*S
S*S -C*S -S*S ; -C*C -C*S C*C C*S;-
C*S -S*S C*S S*S] ;
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 29
Cours MEF
3. Calculs des structures barre par Matlab
æ E.S E.S ö
æK K ö ç - ÷
Ecrire un script qui permet de : K = çç 11 12 ÷÷ = ç L L ÷ : matrice de rigidité
è K 21 K 22 ø çç - E.S E.S ÷÷
• Saisir par l’utilisateur des valeurs de Ei, Li, Ai d’une structure de n barres è L L ø
• Calcul de ki =EiAi/Li
• Remplir la matrice ki de chaque élément de la structure
Solution :
clear all
NB=input ('Saisir le nombre de barres de la structure: ');
%NB est le nombre des barres de la structure
for t = 1:NB
str=sprintf('Entrer E de la barre (%d) en SI: ',t);
E(t) = input(str);
str=sprintf('Entrer L de la barre (%d) en SI: ',t);
L(t) = input(str);
str=sprintf('Entrer A de la barre (%d) en SI: ',t);
A(t) = input(str);
ki=E(t)*A(t)/L(t);
k{t}=[ki -ki ;-ki ki]
end
E,A,L,k
%affichage des k
for i=1:NB
k{i}
end
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 30
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet de :
• Saisir par l’utilisateur des valeurs de Ei, Li, Ai et tetha i d’une structure de n barres
• Calcul de ki =EiAi/Li , cos , sin
• Remplir la matrice ki de chaque élément de la structure
Solution :
clear all
NB=input ('Saisir le nombre de barres de la structure: ');
%NB est le nombre des barres de la structure
for t = 1:NB
str=sprintf('Entrer E de la barre (%d) en SI: ',t);
E(t) = input(str);
str=sprintf('Entrer L de la barre (%d) en SI: ',t);
L(t) = input(str);
str=sprintf('Entrer A de la barre (%d) en SI: ',t);
A(t) = input(str);
str=sprintf('Entrer theta de la barre (%d) en SI: ',t);
theta(t) = input(str);
x = theta(t)*pi/180;
C = cos(x);
S = sin(x);
m=[C*C C*S -C*C -C*S ; C*S S*S -C*S -S*S ; -C*C -C*S C*C C*S;-C*S -
S*S C*S S*S];
k{t} = E(t)*A(t)/L(t)*m;
end
E,A,L,theta,k
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 31
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet d’assembler les matrices
des éléments (matrice élément à l’échelle globale) pour
déterminer la matrice globale de la structure
Solution :
Pour le faire, on va réaliser tout d’abord un petit programme pour enregistrer les numéros des nœuds de chaque barre :
%on aura besoin des num?ro des noeuds
n=[];
for t = 1:NB
str1=sprintf('Entrer le premier neud de la barre (%d) en SI: ',t);
str2=sprintf('Entrer le deuxieme neud de la barre (%d) en SI: ',t);
crdb1(t)=input(str1);
crdb2(t)=input(str2);
n{t}=[crdb1(t) crdb2(t)];
end
%pour affichage
for t=1:NB
n{t}
end
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 32
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet d’assembler les matrices
des éléments (matrice élément à l’échelle globale) pour
déterminer la matrice globale de la structure
Solution :
%calcul de la matrice globale
K=zeros(2*NN,2*NN);
%NN est le nombre des noeuds de la structure
for t=1:NB
x = theta(t)*pi/180;
C = cos(x);
S = sin(x);
m=[C*C C*S -C*C -C*S ; C*S S*S -C*S -S*S ; -C*C -
C*S C*C C*S;-C*S -S*S C*S S*S];
k{t} = E(t)*A(t)/L(t)*m;
fn=2*n{t}(1)-1;
sn=2*n{t}(2)-1;
K(fn:fn+1,fn:fn+1)=K(fn:fn+1,fn:fn+1)+k{t}(1:2,1:
2);
K(fn:fn+1,sn:sn+1)=K(fn:fn+1,sn:sn+1)+k{t}(1:2,3:
4);
K(sn:sn+1,fn:fn+1)=K(sn:sn+1,fn:fn+1)+k{t}(3:4,1:
2);
K(sn:sn+1,sn:sn+1)=K(sn:sn+1,sn:sn+1)+k{t}(3:4,3:
4);
end
K
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 33
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet d’isoler un sous matrice de la matrice globale K dont les déplacements est inconnus
Solution :
%C.L
K=rand(8,8) % rand genere une matrice aleatoire
NLIC=[];
NLIC=input('Saisir les numeros des lignes de U dont
la valeur est inconnue');
Ku=K;
Ku=Ku([NLIC],[NLIC]); %foltrage de la matrice
Ku
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 34
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet de résoudre un système F=Ku. Avec u est l’inconnu,
saisir un vecteur contient les forces connues puis calculer u (utiliser K-1) dont les déplacements est inconnus
Solution :
%calcul des di
U=[];
F=[];
F=input('Saisir la valeur des forces dont le
deplacement Ui est determine ');
U=inv(Ku)*F';%Ku est le sousmatrice d?termin? a
l??tape pr?c?dente
U
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 35
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet de calculer les forces inconnues.
Saisir le vecteur du déplacement
Solution :
%calcul des Fi
U=[];
F=[];
U=input('Saisir le vecteur U ');
U=U';
K=rand(4,4)
F=K*U % la matrice K globale est connue
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 36
Cours MEF
3. Calculs des structures barre par Matlab
Ecrire un script qui permet de calculer la contrainte dans la barre.
Solution :
%calcul de la contrainte pour chaque barre
% donnees de chaque barre
NB=input ('Saisir le nombre de barres de la structure: ');
for t = 1:NB
str=sprintf('Entrer E de la barre (%d) en SI: ',t); E(t) = input(str);
end
for t = 1:NB
str=sprintf('Entrer L de la barre (%d) en SI: ',t);L(t) = input(str);
end
for t = 1:NB
str=sprintf('Entrer A de la barre (%d) en SI: ',t);A(t) = input(str);
end
for t = 1:NB
str=sprintf('Entrer theta de la barre (%d) en SI: ',t);theta(t) = input(str);
end
for t = 1:NB
f=[]; % f est le vecteur de forces locales
str=sprintf('Saisir le vecteur u de la barre (%d): ',t);
u = input(str); u=u';
x = theta(t)*pi/180;
C = cos(x);
S = sin(x);
f = E(t)*A(t)/L(t)*[-C -S C S]* u;
f
Sigma =f/A(t)
end
Yassine EL HALOUI Chapitre 5 : Calculs des structures par MEF sous Matlab 37