6 Photoélasticité
On étudie dans ce TP la répartition des contraintes dans un essai de flexion trois points. L’objectif est de faire une comparaison entre trois modèles et une expérience. Les approches de modélisation seront:
- Une modèle de poutre d’Euler–Bernoulli
- Une approche 2D par fonction de Airy
- Une simulation par éléments finis
L’approche expérimentale consistera en un essai de flexion 3 points sur du plastique acrylique (type Plexiglass, ou poly methyl-methacrylate, PMMA). Ce matériau a la propriété d’être bi-réfringeant. Avec un montage optique approprié, détaillé ci-dessous, il est possible d’observer directement l’intensité des contraintes dans le matériau, et donc d’avoir une mesure expérimentale du champ de contraintes.
6.1 Modèle de poutre
| \(E\) | \(\nu\) |
|---|---|
| 3.3 GPa | 0.34 |
Les échantillons sont de longueur \(L\) = 10 cm, de hauteur \(h\) = 2 cm et de largeur \(b\) = 1 cm. On a donc \(A = b h\) et \(I = bh^3/12\). On applique une force \(F\) = 100 N.
Contrairement au TD, nous choisissons l’origine \(x_1 = 0\) au milieu de la poutre.
La résolution du TD a donné les efforts internes suivants sur le tronçon \(x_1 < 0\):
\[ \begin{aligned}T(x_1) & = -\frac{F}{2}\\ M(x_1) & = \frac{F}{2}\left(\frac{L}{2} + x_1\right)\end{aligned}\]
Pour le tronçon \(x_1 > 0\), on a:
\[ \begin{aligned}T(x_1) & = \frac{F}{2}\\ M(x_1) & = \frac{F}{2}\left(\frac{L}{2} - x_1\right)\end{aligned}\]
- Calculez la contrainte longitudinale \(\sigma_{11}(x_1, x_2)\) dans le tronçon \(x_1 > 0\), en fonction de \(b\) et \(h\). Où se situe la contrainte longitudinale maximale ?
- Calculez la contrainte de cisaillement moyenne (dans la hauteur) \(\tau(x_1)\) dans ce même tronçon.
6.2 Modèle 2D
On remarque que le problème de flexion 3 points est symétrique, on propose donc de résoudre uniquement le tronçon \(x_1 > 0\), avec une condition de symétrie qui revient à imposer \(u_1(0, x_2) = 0\), \(\forall x_2\), comme l’indique la figure ci-dessous.
On pose la fonction de Airy suivante :
\[\phi(x_1, x_2) = \frac{Fx_2^3}{bh^3}\left(x_1 - \frac{L}{2}\right) - \frac{3Fx_1x_2}{4bh}\]
En contraintes planes:
- Vérifiez que \(\phi\) est bi-harmonique
- Calculez les composantes du tenseur des contraintes
- Vérifiez que ce tenseur des contraintes satisfait les conditions limites:
- Bord inférieur libre
- Bord supérieur libre
- Bord droit libre
- Résultante des contraintes de cisaillement en \(x_1 = 0\) égale à la force appliquée.
- Comparez \(\sigma_{11}\) avec le modèle d’Euler-Bernoulli
- Comparez la contrainte de cisaillement maximale avec la contrainte moyenne du modèle de poutre. Quel est la valeur du ratio de ces contraintes ?
Puisque l’on fait une comparaison avec des éléments finis en 2D, on utiliser Python et matplotlib pour afficher les composantes du tenseur des contraintes.
import numpy as np
import matplotlib.pyplot as plt
L = 10.
F = 100.
b = 1.
h = 2.
def plot_contrainte(ax, composante, nom_contrainte="", unite_contrainte=""):
# Espace de coordonnées
x1 = np.linspace(0, L/2, 100)
x2 = np.linspace(-h/2, h/2, 20)
x1, x2 = np.meshgrid(x1, x2, indexing='ij')
# Contrainte
s = composante(x1, x2)
# Affichage des contours
im = ax.contourf(x1, x2, s, cmap='Blues')
cb = ax.get_figure().colorbar(im, ax=ax)
# Esthétique à faire:
# - Mettre les titres des axes et unités
# - Mettre le nom de la contrainte affichée et unité
def sigma_11(x1, x2):
return ...
def sigma_12(x1, x2):
return ...
fig, axs = plt.subplots(2, 1, sharex=True)
plot_contrainte(axs[0], sigma_11,
nom_contrainte="$\\sigma_{11}$", unite_contrainte="???")
plot_contrainte(axs[1], sigma_12,
nom_contrainte="$\\sigma_{12}$", unite_contrainte="???")- Implémentez les fonctions
sigma_11etsigma_12dans un notebook Jupyter. - Modifiez la fonction
plot_contraintepour faire apparaître le titre des axes et le l’échelle de couleur, ainsi que les unités. - Implémentez une fonction
plot_contrainte_1dqui affiche sur le même graphe les contraintes \(\sigma_{11}\) et \(\sigma_{12}\) selon \(x_2\) en \(x_1 = 0\) (graphe à une dimension avecax.plot).
6.3 Modèle éléments finis
On met en place une simulation par éléments finis de la poutre à la Figure 6.2. Pour cela un notebook jupyter est à votre disposition.
- Télécharger le notebook et l’uploader sur le JupyterHub de Moodle.
- Télécharger l’archive zip du code éléments finis et l’uploader sur le JupyterHub.
- Dans JupyterHub:
Fichier > Nouveau > Nouveau Terminal, puis tapez la commandeunzip wombat.zip. - Ouvrir le notebook et suivre les instructions à l’intérieur.