Deformación térmica y esfuerzos de tensión usando python

Поділитися
Вставка
  • Опубліковано 11 січ 2025

КОМЕНТАРІ •

  • @jgabrielfranco308
    @jgabrielfranco308  Місяць тому

    # Definir las funciones para el cálculo de la deformación térmica lineal, volumétrica y la tensión térmica
    def deformacion_lineal(L0, coef_expansion_lineal, delta_T):
    """
    Calcula la deformación lineal térmica.

    L0: Longitud inicial (m)
    coef_expansion_lineal: Coeficiente de expansión térmica lineal (°C^-1)
    delta_T: Cambio de temperatura (°C)

    Retorna la deformación lineal en metros.
    """
    return L0 * coef_expansion_lineal * delta_T
    def deformacion_volumetrica(V0, coef_expansion_volumetrica, delta_T):
    """
    Calcula la deformación volumétrica térmica.

    V0: Volumen inicial (m^3)
    coef_expansion_volumetrica: Coeficiente de expansión térmica volumétrica (°C^-1)
    delta_T: Cambio de temperatura (°C)

    Retorna la deformación volumétrica en metros cúbicos.
    """
    return V0 * coef_expansion_volumetrica * delta_T
    def tension_termica(E, delta_epsilon):
    """
    Calcula la tensión térmica debido a la restricción térmica.

    E: Módulo de elasticidad (Pa)
    delta_epsilon: Deformación volumétrica debido a la temperatura (adimensional)

    Retorna la tensión térmica en Pascales (Pa).
    """
    return E * delta_epsilon
    # Coeficientes de expansión térmica (en °C^-1) para algunos metales y materiales comunes
    # Estos valores son aproximados
    metales_y_materiales = {
    "Acero": {
    "lineal": 12e-6,
    "volumetrica": 36e-6,
    "E": 210e9 # Módulo de elasticidad en Pa
    },
    "Aluminio": {
    "lineal": 22e-6,
    "volumetrica": 66e-6,
    "E": 70e9 # Módulo de elasticidad en Pa
    },
    "Cobre": {
    "lineal": 16.5e-6,
    "volumetrica": 49.5e-6,
    "E": 110e9 # Módulo de elasticidad en Pa
    },
    "Plomo": {
    "lineal": 29e-6,
    "volumetrica": 87e-6,
    "E": 14e9 # Módulo de elasticidad en Pa
    },
    "Oro": {
    "lineal": 14e-6,
    "volumetrica": 42e-6,
    "E": 70e9 # Módulo de elasticidad en Pa
    },
    "Hierro": {
    "lineal": 11e-6,
    "volumetrica": 33e-6,
    "E": 210e9 # Módulo de elasticidad en Pa
    },
    "Titanio": {
    "lineal": 8.6e-6,
    "volumetrica": 25.8e-6,
    "E": 116e9 # Módulo de elasticidad en Pa
    },
    "Níquel": {
    "lineal": 13e-6,
    "volumetrica": 39e-6,
    "E": 200e9 # Módulo de elasticidad en Pa
    },
    "Hormigón": {
    "lineal": 10e-6,
    "volumetrica": 30e-6,
    "E": 30e9 # Módulo de elasticidad en Pa (aproximado)
    },
    "Madera": {
    "lineal": 4.0e-6, # Típico para maderas duras
    "volumetrica": 12e-6,
    "E": 12e9 # Módulo de elasticidad en Pa (aproximado para madera dura)
    },
    "Epoxi": {
    "lineal": 50e-6, # Epoxi típico
    "volumetrica": 150e-6,
    "E": 3.5e9 # Módulo de elasticidad en Pa (aproximado para epoxi)
    },
    }
    # Solicitar los datos al usuario
    print("Selecciona el tipo de material:")
    for i, metal in enumerate(metales_y_materiales.keys(), 1):
    print(f"{i}. {metal}")
    # Entrada de tipo de material
    metal_choice = int(input("
    Ingresa el número correspondiente al material: ")) - 1
    material_selected = list(metales_y_materiales.keys())[metal_choice]
    # Entrada de longitud, volumen y cambio de temperatura
    L0 = float(input("Ingresa la longitud inicial (en metros): "))
    V0 = float(input("Ingresa el volumen inicial (en metros cúbicos): "))
    delta_T = float(input("Ingresa el cambio de temperatura (en °C): "))
    # Calcular la deformación térmica y la tensión térmica para el material seleccionado
    propiedades = metales_y_materiales[material_selected]
    # Calcular la deformación lineal y volumétrica
    deformacion_lineal_result = deformacion_lineal(L0, propiedades["lineal"], delta_T)
    deformacion_volumetrica_result = deformacion_volumetrica(V0, propiedades["volumetrica"], delta_T)
    # Calcular la deformación con restricción térmica
    # Considerando una restricción térmica (suponiendo que hay restricción total de expansión)
    delta_epsilon = propiedades["volumetrica"] * delta_T * (1 - 2 * 0.3) # Suponemos un Poisson de 0.3
    tension_termica_result = tension_termica(propiedades["E"], delta_epsilon)
    # Imprimir resultados
    print(f"
    Resultados para el material {material_selected}:")
    print(f" Deformación lineal: {deformacion_lineal_result*1000:.6f} mm") # Convertir a milímetros
    print(f" Deformación volumétrica: {deformacion_volumetrica_result*1e6:.6f} cm³") # Convertir a mm³
    print(f" Tensión térmica: {tension_termica_result/1e6:.2f} MPa") # Convertir a MPa