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:

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

Figure 6.1: Poutre en flexion trois points
Propriétés du PMMA
\(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.

Avertissement

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}\]

Consigne
  1. 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 ?
  2. 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.

Figure 6.2: Poutre 2D en flexion 3 points, avec condition de symétrie

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}\]

Consigne

En contraintes planes:

  1. Vérifiez que \(\phi\) est bi-harmonique
  2. Calculez les composantes du tenseur des contraintes
  3. 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.
  4. Comparez \(\sigma_{11}\) avec le modèle d’Euler-Bernoulli
  5. 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="???")
Consigne
  1. Implémentez les fonctions sigma_11 et sigma_12 dans un notebook Jupyter.
  2. Modifiez la fonction plot_contrainte pour faire apparaître le titre des axes et le l’échelle de couleur, ainsi que les unités.
  3. Implémentez une fonction plot_contrainte_1d qui affiche sur le même graphe les contraintes \(\sigma_{11}\) et \(\sigma_{12}\) selon \(x_2\) en \(x_1 = 0\) (graphe à une dimension avec ax.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.

Consigne
  1. Télécharger le notebook et l’uploader sur le JupyterHub de Moodle.
  2. Télécharger l’archive zip du code éléments finis et l’uploader sur le JupyterHub.
  3. Dans JupyterHub: Fichier > Nouveau > Nouveau Terminal, puis tapez la commande unzip wombat.zip.
  4. Ouvrir le notebook et suivre les instructions à l’intérieur.