Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Charriage sur l’Arbogne : grain, rugosité et diagramme de Shields

Pour travailler de manière interactive : Open In Colab, ou télécharger le paquet de l’exercice (fichier zip) et l’ouvrir en local avec JupyterLab.

Le paquet contient trois fichiers qui doivent rester dans le même dossier :

Fichier, contenu


bedload-exercise.ipynb charriage.pyLe code technique : formulaire de Meyer-Peter & Müller (MPM), contrôle et figures hecras-arbogne.csv= l’hydraulique de 16 profils HEC-RAS 1D de l’Arbogne à Dompierre (FR) pour Q = 25 m3^3/s

Tâche : votre expertise est demandée pour analyser le risque d’alluvionnement dans letronçon revitalisé de l’Arbogne. Un collège vous a fourni l’hydraulique (1D) de 16 profils sur 890 m. Où le gravier s’arrête-t-il, et que se passe-t-il quand la vendation freine l’éveil ?

Structure de l’exercice

partiequi travaille
Ipréparation : charger le script et les donnéesdonné : exécuter les cellules
IIdonnées : granulométrie, rugosités kstk_{st}, seuil τ∗,cr\tau_{*,cr}vous : compléter deux listes
IIIéquations : rapport de rugosité k′k' et rugosité critique kst,crk_{st,cr}vous : compléter deux lignes de code
IVrésultats : calcul MPM, diagramme de Shields, profils actifsdonné : exécuter et interpréter

Il n’est pas nécessaire de savoir programmer. Une cellule s’exécute avec Maj + Entrée (Shift + Enter). Les endroits à compléter sont marqués par le commentaire # >>> À COMPLÉTER : remplacez chaque texte ">>> COMPLETER" (guillemets compris) par votre valeur ou votre équation. Dans le code, les nombres décimaux s’écrivent avec un point (0.047 et non 0,047).


Partie I : préparation

La cellule suivante charge le script charriage.py sous le nom abrégé ch. Sur Google Colab, elle télécharge d’abord le script et les données. Cette cellule ne contient pas de matière du cours.

import sys, urllib.request
if "google.colab" in sys.modules:  # uniquement sur Google Colab
    for f in ("charriage.py", "hecras-arbogne.csv"):
        urllib.request.urlretrieve(f"https://raw.githubusercontent.com/hydro-informatics/charriage-arbogne/main/{f}", f)

import charriage as ch
ch.lire_hecras()

Le tableau affiche, pour chaque profil (de l’amont vers l’aval), la station, le débit, les côtes du fond et de l’eau, la pente de la ligne d’énergie JeJ_e, le rayon hydraulique RhR_h et la hauteur d’eau hh. La pente JeJ_e passe de 0,0042 à l’amont à 0,0007 à l’aval : c’est là que le gravier risque de se déposer.


Partie II : données

Tâche 1 : granulométrie et rugosité

Deux courbes granulométriques décrivent l’Arbogne (analyse en ligne selon Fehr, mars 2014) :

  • « Sable (fin) » pour estimer l’apport de l’amont ;

  • « Gravier (complet) » pour caractériser le lit en place.

Trois diamètres caractéristiques suffisent pour l’exercice :

courbe granulométriquedmd_m [mm]d84d_{84} [mm]
« Sable (fin) »0,23pas nécessaire
« Gravier (complet) »8,8813,56
  • dmd_m du sable représente l’apport fin qui transite ;

  • dmd_m du gravier représente le gravier en transit ;

  • d84d_{84} du gravier représente le lit en place (pavage) et fixe la rugosité de grain krk_r.

Reportez ces valeurs, en millimètres, dans la liste melanges. Attention : en Python, la virgule décimale devient un point (0,23 s’écrit 0.23). L’ordre compte : d’abord le sable, puis le gravier (le dernier mélange de la liste représente le lit).

Reportez ensuite dans la liste k_st les deux coefficients de Strickler kstk_{st} [m1/3^{1/3}/s] à comparer, du plus lisse au plus rugueux :

  1. sans végétation : l’écoulement reste dans le lit en gravier (état de référence) ;

  2. avec végétation : la crue déborde dans la plaine inondable, densément végétalisée.

La liste peut contenir d’autres valeurs : chaque kstk_{st} ajouté devient un cas de rugosité supplémentaire.

# >>> À COMPLÉTER : diamètres caractéristiques en mm
#             nom                   d_m               d_84
melanges = [["Sable (fin)",         ">>> COMPLETER"],
            ["Gravier (complet)",   ">>> COMPLETER",  ">>> COMPLETER"]]

# >>> À COMPLÉTER : coefficients de Strickler k_st [m^(1/3)/s], sans végétation en premier
k_st = [">>> COMPLETER", ">>> COMPLETER"]

Seuil de mise en mouvement τ∗,cr\tau_{*,cr}

MPM a été calibré avec τ∗,cr\tau_{*,cr} = 0,047, valeur utilisée dans tout l’exercice. La liste tau_cr accepte tout sauf plusieurs valeurs, par exemple pour tester la sensibilité du résultat au seuil (voir le devoir). Pour cela, supprimez le # devant la deuxième ligne : chaque figure annonce toutes les valeurs de la liste.

Note : τ∗,cr\tau_{*,cr} ne se mesure pas. On le choisit dans une plage (environ 0,03 à 0,07 pour du gravier) et on l’annonce avec le résultat.

tau_cr = [0.047]
# tau_cr = [0.030, 0.040, 0.047, 0.056, 0.070]   # variante, pas utilisée dans l'exercice

Partie III : équations

Tâche 2 : rapport de rugosité k′k'

MPM ne compare pas au seuil toute la contrainte de cisaillement τ∗\tau_*, mais seulement la part qui agit sur les grains. Une partie de l’énergie est dissipée par les formes du lit, la végétation et les berges. Le rapport de rugosité k′k' corrige τ∗\tau_* en conséquence :

Φ=8 (k′ τ∗−τ∗,cr)3/2avecτ∗=Rh Je(s−1) d\Phi = 8\,\left(k'\,\tau_* - \tau_{*,cr}\right)^{3/2} \qquad \text{avec} \qquad \tau_* = \frac{R_h\,J_e}{(s-1)\,d}
  k′=(kstkr)3/2≤1  ouˋkr=26d841/6\boxed{\;k' = \left(\frac{k_{st}}{k_r}\right)^{3/2} \le 1\;} \qquad \text{où} \qquad k_r = \frac{26}{d_{84}^{1/6}}
  • kstk_{st} : coefficient de Strickler total du tronçon (la liste k_st de la tâche 1) ;

  • krk_r : coefficient de Strickler de grain d’un lit plat, calculé par charriage.py avec d84d_{84} du gravier en mètres.

Complétez la ligne marquée. En Python, la puissance s’écrit ** : par exemple, a3/2a^{3/2} s’écrit a ** (3 / 2).

def rapport_rugosite(k_st, k_r):
    # >>> À COMPLÉTER : k' = (k_st / k_r)^(3/2)
    return ">>> COMPLETER"

Tâche 3 : rugosité critique kst,crk_{st,cr}

Plus la vendation freine l’écran, plus kstk_{st} minuscule, et avec lui la contrainte efficace k′ τ∗k'\,\tau_*. Un profil cesse de transporteur quand k′ τ∗=τ∗,crk'\,\tau_* = \tau_{*,cr}. En remplaçant k′k' par sa définition et en résolvant pour kstk_{st}, on obtient la rugosité critique de chaque profil :

  kst,cr=kr(τ∗,crτ∗)2/3  \boxed{\;k_{st,cr} = k_r \left(\frac{\tau_{*,cr}}{\tau_*}\right)^{2/3}\;}

Un profil transporte tant que kst>kst,crk_{st} > k_{st,cr}. C’est cette équation qui permet de tracer le nombre de profils actifs quand la rugosité augmentée. Complétez la ligne bleue.

def k_st_critique(tau, k_r, tau_cr):
    # >>> À COMPLÉTER : k_st,cr = k_r * (tau_cr / tau)^(2/3)
    return ">>> COMPLETER"

Contrôle

Exécutez cette cellule après chaque tâche. [OK] Signifie que la valeur correspond à la présentation, [XX] qu’elle est fausse, [ ] qu’elle n’est pas encore complète. Corrigez pouvez ré-exécutez la cellule de la tâche et cellule-ci.

ch.verifier(melanges, k_st, rapport_rugosite, k_st_critique)

Partie IV : résultats

Calcul MPM sur les 16 profils

charriage.py croise vos données et applique MPM à chaque profil : chaque cas de rugosité de la liste k_st est calculé pour les deux classes de grain.

graince qu’il représentecas de rugosité
gravier, dmd_mle gravier en transitsans et avec végétation
sable, dmd_ml’apport fin de l’amontsans et avec végétation
gravier, d84d_{84}le lit en place, pavésans végétation seulement

Le tableau résume, pour chaque combinaison, le rapport de rugosité k′k', le nombre de profils qui transportent encore (Φ>0\Phi > 0), ainsi que le plus grand Φ\Phi et le plus grand charriage qbq_b [kg/(s⋅\cdotm)] du tronçon.

resultats = ch.calculer(melanges, k_st, tau_cr, rapport_rugosite)
ch.resume(resultats)

Question : pourquoi Φ\Phi = 0 sur certains profils ? Et pourquoi le sable est-il transporté partout ?

Diagramme de Boucliers

Le diagramme compare les deux cas de rugosité, sans génétation (écoulement dans le lit) et avec génétation (crue débardante dans la plaine inondable), pour les deux classes de grain, gravier et sable. Chaque point est un profil. L’axe vertical est la contrainte efficace sur les grains k′ τ∗k'\,\tau_*, cellule que MPM compare à τ∗,cr\tau_{*,cr}. Sous la courbe de Shields critique, il n’y a pas de charriage.

  • couleur : cas de rugosité (bleu sans vendation, rouge avec vendation) ;

  • ** symbole** : classe de grain (rond : gravier ; triangle : sable) ;

  • Taille : Φ\Phi, une décennie par classe (le plus grand Φ\Phi donne le plus grand marqueur).

ch.diagramme_shields(resultats)

Note : avec dmd_m = 0,23 mm, le sable est hors du domaine de validité de MPM (environ 0,4 à 30 mm). Son résultat n’est qu’un ordre de grandeur.

Questions : la ventilation place-t-elle le gravier et le sable de la même poignée ? Pour quelle classe de grain la vendation fait-elle passer les points sous la courbe ?

Profils actifs quand la rugosité augmentée

La figure suivante fait diminuer kstk_{st} pas à pas (de gauche à droite, la vendation augmentée) et compte, pour le gravier, les profils où kst>kst,crk_{st} > k_{st,cr}. Les lignes verticales sont vos valeurs de la liste k_st. L’extension totale est le kstk_{st} sous lequel plus un profil ne transporte.

ch.profils_actifs(melanges, k_st, tau_cr, k_st_critique)

Questions :

  1. Entre quelles valeurs de kstk_{st} le charriage du gravier s’est-il complété ?

  2. Alluvionnement ou érosion : lequel des deux paramètres, le grain ou la rugosité, fait basculer le résultat ?