sábado, 11 de noviembre de 2023

PYTHON_ POTENCIA DE UNA BOMBA

CALCULO DE LA POTENCIA DE UNA BOMBA

Elaborar un código en Python que calcula la potencia de una bomba, de acuerdo a las siguientes condiciones. Se tiene un sistema de tuberías que transporta agua a 25°C, en la parte inferior del tanque de almacenamiento inicial se encuentra una válvula de bola totalmente abierta que une al tanque con la tubería de acero galvanizado (galvanización ordinaria) de 2 pulgadas cédula 80 de diámetro y 3 metros de largo, al final del tubo se encuentra una reducción, la tubería ahora es de 1.5 pulgadas cédula 80 y 1.5 m de largo. En este punto, el fluido entra a la bomba, la tubería después de la bomba tiene un diámetro de 1 pulgada cédula 80 y 1 m de largo, ésta se une mediante un codo de 90° roscado a otro tramo de tubería de 5 m de de largo, seguido de otro codo de 90° roscado y 2 m de tubería, se utiliza un tercer codo de 90° y 1 m de tubería el cual termina en el tanque de almacenamiento final. Los tanques de almacenamiento se encuentran a presión de 1 atmósfera. El caudal del sistema es de 0.00166 metro cúbico/s.
CODIGO PYTHON ELABORADO POR ChatGPT
https://colab.research.google.com/drive/1phZj0zKr02u8TE5M64L8V9lyP35-yjiQ#scrollTo=-NQakLp5kFua&line=55&uniqifier=1

import math
# Datos proporcionados
Q = 0.00166 # Caudal en m³/s
g = 9.81 # Aceleración de la gravedad en m/s²
rho = 997 # Densidad del agua a 25°C en kg/m³
viscosity_water = 8.9e-4 # Viscosidad del agua a 25°C en Pa.s (kg/m.s)
pipe_roughness = 0.15e-3 # Rugosidad del acero galvanizado en m (promedio)

# Función para calcular el área transversal y la velocidad para un diámetro dado
def calculate_area_velocity(diameter, Q):
    area = math.pi * (diameter / 2) ** 2
    velocity = Q / area
    return area, velocity

# Función para calcular el factor de fricción de Swamee-Jain
def calculate_friction_factor(Re, D, k, nu):
    f = 0.25 / (math.log10(k / (3.7 * D) + 5.74 / Re**0.9))**2
    return f

# Función para calcular el número de Reynolds
def calculate_reynolds_number(v, D, nu):
    Re = v * D / nu
    return Re

# Función para calcular la pérdida de carga por fricción
def calculate_friction_loss(f, L, D, v):
    hf = f * (L / D) * (v**2) / (2 * g)
    return hf

# Cálculo de factores y pérdidas para cada sección de tubería
def pipeline_loss_calculations(diameters, lengths, Q, nu, k):
    total_friction_loss = 0
    for size, diameter in diameters.items():
        area, velocity = calculate_area_velocity(diameter, Q)
        Re = calculate_reynolds_number(velocity, diameter, nu)
        f = calculate_friction_factor(Re, diameter, k, nu)
        hf = calculate_friction_loss(f, lengths[size], diameter, velocity)
        total_friction_loss += hf
        print(f"{size} section - Area: {area:.5f} m², Velocity: {velocity:.5f} m/s, Re: {Re:.2f}, f: {f:.5f}, hf: {hf:.5f} m")
    return total_friction_loss

# Longitudes y diámetros de las tuberías
diameters_inch = [2, 1.5, 1] # En pulgadas
lengths_m = [3, 1.5, 8] # Longitud total para la de 1 pulgada considerando todos los tramos después de la bomba
diameters_m = [d * 0.0254 for d in diameters_inch] # Conversión a metros
sections = ['2_inch', '1.5_inch', '1_inch']
diameters = dict(zip(sections, diameters_m))
lengths = dict(zip(sections, lengths_m))

# Pérdidas adicionales en accesorios, expresados como longitudes equivalentes en metros
additional_lengths = {'valve': 2, 'reducer': 1, 'elbow': 9} # 3 codos con 3 veces el diámetro como longitud equivalente

# Agregamos las longitudes adicionales a las longitudes reales
for accessory, length in additional_lengths.items():
    lengths['1_inch'] += length # Sumamos las longitudes equivalentes de los accesorios a la tubería de 1 pulgada

# Eficiencia típica de la bomba
efficiency = 0.70

# Cálculo de la pérdida de carga total y la potencia de la bomba
total_friction_loss = pipeline_loss_calculations(diameters, lengths, Q, viscosity_water/rho, pipe_roughness)
power_required = (rho * g * Q * total_friction_loss) / (efficiency * 1000) # Convertimos vatios a kilovatios

print(f"Total Friction Loss: {total_friction_loss:.5f} m")
print(f"Power Required: {power_required:.5f} kW")


2_inch section - Area: 0.00203 m², Velocity: 0.81901 m/s, Re: 46607.91, f:0.02900, hf: 0.05856 m, 1.5_inch section - Area: 0.00114 m², Velocity:1.45602 m/s, Re: 62143.88, f: 0.03031, hf: 0.12893 m, 1_inch section - Area: 0.00051 m², Velocity: 3.27605 m/s, Re: 93215.82, f: 0.03312, hf: 14.26700 m

Total Friction Loss: 14.45448 m 

Power Required: 0.33526 kW





No hay comentarios.:

Publicar un comentario