• Aucun résultat trouvé

Radeava xai e ED2 dé

N/A
N/A
Protected

Academic year: 2022

Partager "Radeava xai e ED2 dé"

Copied!
14
0
0

Texte intégral

(1)

EDP2

Modélisation par

Eléments Finis

d'une poutre en traction

compression

Nicolas Bonneel et Elise Durand

4ème année Génie mathématique et modélisation

Année 2004-2005

(2)

Introduction 2

1 Calcul de la solutionexacte 3

2 Programme de résolution par éléments nis 6

2.1 Cas général . . . 6

2.2 Application ànotre poutre . . . 7

3 Conclusion 14

(3)

On cherche à résoudre un problème de poutre en traction-compression,

dont ledéplacement peutêtrecalculépar :

−(EAu 0 ) 0 (x) + c(x).u(x) = F (x)

Le problème étudié est une poutre unidimensionnelle composée de deux

matériaux distincts ayant des propriétés constantes, que l'on décomposera

enN éléments etpour lesquelson appliquera laméthodedes élémentsnis.

On comparera ensuite le résultat obtenu avec la solution analytique et on

calculera l'erreuret letauxde convergence dela méthode employée.

1 Calcul de la solution exacte

Le problème général s'écrit :

−(EAu 0 ) 0 (x) + c(x).u(x) = F (x)

Ainsi,on déduit lesdeuxéquations de notre problème:

−a 0 u 00 = F 0

six

≤ L

2

(1)

a 1 u 00 − c 1 u = 0

si x

≥ L

2

(2)

L'équation (1)nouspermetd'écrire :

−a 0 u 00 = F 0 ⇒ u 0 (x) = − F a 0

0 .x + α

⇒ u(x) = − 2a F 0

0 .x 2 + α.x + β

α

et

β

sont desconstantes.

Lesconditions auxlimitesen x=0 etx=

L

2

nousimposent :

u(0) = 0 ⇒ β = 0 u( L 2 ) = − 8a F 0

0 .L 2 + α. L 2 ⇒ α = (Λ + 8a F 0

0 .L 2 ). L 2

avec

Λ = u( L 2 )

Onobtient donc :

u(x) = − F 0

2a 0 .x(x − L 2 ) + 2Λ

L .x

(3)

Pour

L

2 ≤ x ≤ L

ona :

a 1 u 00 − c 1 u = 0 ⇒ u 00a c 1

1 .u = 0

⇒ u(x) = A.e q c

1

a 1 + B.e q c

1 a 1

(4)

(4)

Détermination desconstantes

Pourdéterminerlesconstantesonutiliseleraccorddesforcesélastiques

enx=

L

2

etlaconditionà lalimite

x = L

.

Onobtient un systèmede 3équations à 3inconnues :

A.e q c

1 a 1

L

2 + B.e q c

1 a 1

L

2 − Λ = 0 A.e

q c

a 1 1 L

.(k + r c 1

a 1

.a 1 ) + B.e q c

a 1 1 L

(k − r c 1

a 1

.a 1 ) = 0

A.e q c

1 a 1

L 2 .

r c 1

a 1

.a 1 − B.e q c

1 a 1

L 2 r c 1

a 1

.a 1 − Λ. 2a 0

L = − F 0 L 4

Cesystèmesera résolusousMatlab:

function [A B Lambda] = poutre_analytique(a0,a1,c0,c1,L,k,F0);

a=(c1/a1)^0.5;

M = [ exp(a*L/2) exp(-a*L/2) -1 ;

exp(a*L)*(k+a*a1) exp(-a*L)*(k-a*a1) 0 ;

a1*a*exp(a*L/2) -a1*a*exp(-a*L/2) -2*a0/L];

P = [ 0 ;

0 ;

-F0*L/4 ];

S = M\P;

A = S(1);

B = S(2);

Lambda = S(3);

On écrit ensuite un programme qui plotte la solution exacte de la

poutre:

L = 5;

k = 0.05;

a0 = 2;

a1 = 1;

c0 = 0;

c1 = 0.05;

F0 = -3;

n = 501;

x=linspace(0,L, n);

(5)

N0 = find(x<=L/2);

N1 = find(x>L/2);

v = zeros(size(x));

v(N0) = -F0*x(N0).*(x(N0)-L/2)./(2.*a0) + 2*Lambda.*x(N0)./L;

v(N1) = A*exp(a*x(N1)) + B*exp(-a*x(N1));

plot(x, v,'r');

Onobtient lerésultat suivant :

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5 0

Fig. 1 Solution exacte

Onvoit qu'il existe un point d'inexion un peu avant le centre de la

poutre quiest le lieu de ladiscontinuité. Ceciseproduit parce quela

forceest transmise de la premiere poutre à la seconde poutre au lieu

deles déformerà leurinterface.

Demême,oncalculeladérivéeanalytiquement qu'onmultiplieparEA

pour avoirsigma, leseorts internes d'élasticité:

s = zeros(size(x));

s(N0) = (-F0*x(N0)./a0 + (Lambda + F0*L^2/(8*a0))*(2/L))*a0;

s(N1) = (A*a*exp(a*x(N1)) - B*a*exp(-a*x(N1)))*a1;

(6)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−7

−6

−5

−4

−3

−2

−1 0 1

Fig.2 Eorts d'élasticité

2 Programme de résolution par éléments nis

2.1 Cas général

Pour obtenir ledéplacement u delapoutreauxpointsde discrétisation,

onrésoud lesystèmetridiagonal suivant :

d 1 c 1

c 1 d 2 c 2

c 2 d 3

.

.

.

.

.

. .

.

.

c N − 1

c N − 1 d N

 u 1

u 2

u 3

.

.

.

u N

=

 b 1

b 2

b 3

.

.

.

b N

avec pour e=1,...,(N-1) :

d e = ( E [e h 1] A [e 1]

e − 1 + E [e] h A [e]

e ) + ( c e−1/2 4 h e−1 + c e+1/2 4 h e ) d N = E [N−1] h A [N−1]

N − 1 + c N 1/2 4 h N−1 + k c e = − E [e] h A [e]

e + c e+1/2 4 h e b e = ( F e−1/2 2 h e−1 + F e+1/2 2 h e ) b N = F N−1/2 2 h N 1

Pour cela,ona créélafonction Matlabsuivante:

(7)

de = zeros(1,N );

ce = zeros(1,N-1);

be = zeros(1,N );

de(1:N-1)=(EA(1:N-1)./h(1:N-1) + EA(2:N)./h(2:N)) + (c(1:N-1).* ...

h(1:N-1)/4 + c(2:N).*h(2:N)/4);

ce(1:N-1) = -EA(2:N)./h(2:N) + c(2:N).*h(2:N)/4;

de(N)=EA(N)./h(N) + c(N).*h(N)/4 + k;

be(1:N-1) = F(1:N-1).*h(1:N-1)/2 + F(2:N).*h(2: ...

N)/2;

be(N) = F(N)*h(N)/2;

A = sparse(N,N);

for i=1:N

A(i,i) = de(i);

end;

for i=1:N-1

A(i,i+1)=ce(i);

A(i+1,i)=ce(i);

end;

u = [0; A\(be')];

2.2 Application à notre poutre

On créé une fonction qui initialise la poutre en fonction du nombre

d'éléments souhaités etdescoecientsqui les caractérisent. Ondistinguera

le cas où N est pair pour lequel la discontinuité au milieu de la poutre est

exacte, ducas où N estimpair pour lequel lepoint central serala moyenne

deses voisins.

function [EA, c, h, F] = prepare(N,L,k,a0,a1,c0,c1,F0)

if (mod(N,2)==0)

(8)

c=[linspace(c0,c0,N/2) linspace(c1,c1,N/2)];

h=linspace(L/N,L/N,N);

EA=[linspace(a0,a0,N/2) linspace(a1,a1,N/2)];

else

F=[ linspace(F0,F0, (N-1)/2) F0/2 zeros(1,(N-1)/2)];

c=[linspace(c0,c0,(N-1)/2) (c0+c1)/2 linspace(c1,c1,(N-1)/2)];

h=linspace(L/N,L/N,N);

EA=[linspace(a0,a0,(N-1)/2) (a0+a1)/2 linspace(a1,a1,(N-1)/2)];

end

Cette fonction renvoie donc les coecients EA, c et F de chaque poutre,

ainsiqueleur tailleh (ici,on gardera hconstant).

On applique les fonctions "prepare" et "poutre" pour N=4 et les

coecientsfournis. Onobtient lerésultat suivant :

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5 0

Fig. 3 Solutionapprochée pour 4poutres élémentairesetSolution exacte

(9)

Onfait demême avec N =5:

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5 0

Fig. 4 Solutionapprochée pour 5poutres élémentairesetSolution exacte

On remarque que la solution approchée s'éloigne de la solution exacte

carlasolution exactea été calculéepour un discontinuitée parfaiteen

L 2

et

nonpour une "discontinuité approchée".

(10)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5 0

Fig.5Solutionapprochéepour10poutresélémentairesetSolution exacte

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

−4

−3.5

−3

−2.5

−2

−1.5

−1

−0.5 0

Fig.6Solutionapprochéepour11poutresélémentairesetSolution exacte

(11)

exacte,etla solutionesttoujours meilleure pour N pair.

Oncalcule ensuitel'erreur relative par lanorme

L 2

:

Z b

a

f (x) 2 dx ≈ b − a N .

N − 1

X

i=0

f 2 (a + (i + 1

2 ) ∗ ( b − a N ))

avec ici f(x) = u(x)-v(x) où u est la solution approchée et v la solution

exacte (ici

b − a

N = h

se simplie car h est constant et que l'on calcule une

erreur relative,donc unquotient desnormes):

numerateur = 0;

denominateur = 0;

for i=1:N-1

numerateur = numerateur + ((u(i)+u(i+1))/2 - v(i))^2;

denominateur = denominateur+v(i)^2;

end

erreur=sqrt(numerateur/denominateur)

avec u la solution obtenue par les éléments nis, et v la solution exacte

calculée sur les N points au centre de chaque poutre. On itère sur les N

poutres,etonprendlavaleurdelasolutionexacteetapprochéeaumilieude

chaque poutre. Onfera attention pour les Nimpair à évaluer EA au centre

de lapoutre commela moyenne desEA des deux éléments voisins (pour le

calculde lasolutionexactesur peu depointsau lieu des500 points).

En itérant sur les N pairs de 4 à 20, on obtient la courbe log-log suivante,

montrant une droite de pente 2.0715 évaluée par la commande polyval,

correspondant à l'ordre du schéma. L'erreur relative calculée s'étend de

0.26% pour N=20 à6.46% pourN=4.

(12)

10 −0.6 10 −0.5 10 −0.4 10 −0.3 10 −0.2 10 −0.1 10 0 10 −3

10 −2 10 −1

Fig.7 loglog(L/N, erreur)

Parailleurs,pourlesNimpairsde5à21,onobtientunepentede1.7938,

ce qui montre que le schéma est moinsbon pour les N impairs (il converge

pluslentement):

10 0 10 −3

10 −2 10 −1

Fig.8 loglog(L/N, erreur)

(13)

numerateur = 0;

denominateur = 0;

for i=1:N-1

numerateur = numerateur + ((EA(i)*(u(i+1)-u(i)))/h(i) - s(i))^2;

denominateur = denominateur+s(i)^2;

end

erreur=sqrt(numerateur/denominateur)

avec s la valeur de sigma calculée analytiquement au centre de chaque

poutre, et u la valeur du déplacement sur chaque poutre (donc

u i+1 − u i h

donnera ladérivée au centre de lapoutre à l'ordre 2 saufpour le cas de la

Nièmepoutreoùelle donnera ladérivée décentrée à gauche à l'ordre1).

Onobtient pour le casN pair (de4 à 20 par pasde 4) une droite de pente

1.9738(= ordrede convergence sursigma)

10 −0.6 10 −0.5 10 −0.4 10 −0.3 10 −0.2 10 −0.1 10 0 10 −5

10 −4 10 −3 10 −2

Fig.9 loglog(L/N, erreur)

(14)

10 0 10 −2

10 −1 10 0

Fig.10 loglog(L/N,erreur)

3 Conclusion

On a pu observer que la méthode des éléments nis nous donnait une

solutionexacteauxpointsdediscrétisationpourlecasNpair(puisquepour

lecasNimpair,ladiscontinuitéaumilieudelapoutren'apuqu'êtreappro-

chée par une moyenne). Deplus, on remarque que lasolutionen tout point

converge à l'ordre 2 pour le cas N pair et 1.8 pour le cas N impair, et que

leseortsd'élasticitéconvergent àl'ordre2 pourlecasNpairet1.5pour le

casN impair(enutilisant laméthodedes pointsmilieux).

Danslecasgénéral,ons'évertueraàprendreunnombrepairdepoutrespour

éviterd'approximer ladiscontinuité aucentre.

Références

Documents relatifs

Montrer que toute famille de veteurs ontenue dans une famille libre est aussi.. une

[r]

Revenons à la démonstration de la proposition. Supposons d'abord que z appartienne au do- maine fondamental D. La série onverge uni-.. Les fontions d'Eisenstein sont des

Érire sous la forme d'une puissane de 10 puis donner l'ériture déimale de es nombres :.

Université Paris Desartes.

(ar- rêtez). Charles fit un saut, rentra la tête dans ses épaules et dit en se retournant: ah ! c'est vous, vous m'avez fait bien peur. Vendredi 24 juin. du matin, nous nous

Le ompilateur doit traduire un programme soure, érit dans un langage de programmation.. donné, en un

Nous avons vu, pour l'instant, omment le miroproesseur a aès aux registres et à la mé-..