|
import gradio as gr |
|
|
|
def definir_criteres(D, R_prime, A): |
|
return D, R_prime, A |
|
|
|
def calculer_rapport_CE(R_prime, sigma_c, G): |
|
CE = (R_prime / (0.50 * sigma_c)) + 0.5 |
|
return CE |
|
|
|
def determiner_dosage_ciment(CE, A): |
|
C = 400 |
|
return C |
|
|
|
def ajuster_dosage_eau(C, CE, D): |
|
E = C / CE |
|
correction = {5: 0.15, 10: 0.09, 16: 0.04, 25: 0, 40: -0.04, 63: -0.08, 100: -0.12} |
|
E *= (1 + correction.get(D, 0)) |
|
return E |
|
|
|
def definir_courbe_granulaire(D, K, Ks, Kp): |
|
Y = 50 - K + Ks + Kp |
|
X = D / 2 if D <= 40 else (5 + D) / 2 |
|
return X, Y |
|
|
|
def determiner_proportions_granulats(granulats, courbe_reference): |
|
proportions = {} |
|
for granulat in granulats: |
|
proportions[granulat] = 0.5 |
|
return proportions |
|
|
|
def calculer_masse_granulats(gamma, Vc, Vg, proportions, densites): |
|
masses = {} |
|
for granulat, proportion in proportions.items(): |
|
volume = Vg * proportion |
|
masses[granulat] = volume * densites[granulat] |
|
return masses |
|
|
|
def calculer_composition(D, R_prime, A, sigma_c, G, K, Ks, Kp, densite_sable, densite_gravier_5_20, densite_gravier_20_50): |
|
densites = {'sable': densite_sable, 'gravier_5_20': densite_gravier_5_20, 'gravier_20_50': densite_gravier_20_50} |
|
|
|
CE = calculer_rapport_CE(R_prime, sigma_c, G) |
|
C = determiner_dosage_ciment(CE, A) |
|
E = ajuster_dosage_eau(C, CE, D) |
|
X, Y = definir_courbe_granulaire(D, K, Ks, Kp) |
|
|
|
granulats = {'sable': {}, 'gravier_5_20': {}, 'gravier_20_50': {}} |
|
courbe_reference = (X, Y) |
|
proportions = determiner_proportions_granulats(granulats, courbe_reference) |
|
|
|
Vc = C / 3.1 |
|
gamma = 0.835 |
|
Vg = 835 - Vc |
|
masses = calculer_masse_granulats(gamma, Vc, Vg, proportions, densites) |
|
|
|
return f"Dosage en ciment: {C} kg/m³", f"Dosage en eau: {E} L/m³", f"Masses des granulats: {masses}" |
|
|
|
|
|
interface = gr.Interface( |
|
fn=calculer_composition, |
|
inputs=[ |
|
gr.Number(value=40, label="Dimension maximale des granulats (D)"), |
|
gr.Number(value=35, label="Résistance souhaitée (R_prime)"), |
|
gr.Number(value=10, label="Ouvrabilité désirée (A)"), |
|
gr.Number(value=45, label="Résistance moyenne réelle du ciment (sigma_c)"), |
|
gr.Number(value=0.55, label="Coefficient granulaire (G)"), |
|
gr.Number(value=-4, label="Coefficient de correction (K)"), |
|
gr.Number(value=2.8, label="Module de finesse du sable (Ks)"), |
|
gr.Number(value=5, label="Coefficient de correction pompabilité (Kp)"), |
|
gr.Number(value=2.60, label="Densité du sable (kg/L)"), |
|
gr.Number(value=2.55, label="Densité du gravier 5/20 (kg/L)"), |
|
gr.Number(value=2.55, label="Densité du gravier 20/50 (kg/L)") |
|
], |
|
outputs=[ |
|
gr.Textbox(label="Dosage en ciment (kg/m³)"), |
|
gr.Textbox(label="Dosage en eau (L/m³)"), |
|
gr.Textbox(label="Masses des granulats") |
|
], |
|
title="Calcul de la Composition Optimale du Béton (Méthode Dreux-Gorisse)", |
|
description="Entrez les paramètres nécessaires pour calculer la composition optimale du béton." |
|
) |
|
|
|
if __name__ == "__main__": |
|
interface.launch() |
|
|