lunes, 12 de diciembre de 2022

Poniendo en práctica los consejos

En esta nueva entrada se pone en práctica los consejos para realizar una interfaz gráfica que se proporcionaron en la entrada anterior, para este ejemplo se utiliza el código de pozo de agua.

El primer paso es tener muy bien definido lo que se quiere realizar, por lo que se utiliza la entrada  llamada “Pozo de Agua Código” fue subida hace tiempo atrás.

El segundo paso es saber que recibe el programa para poder funcionar y lo que devuelve.
 
El programa requiere de las siguientes entradas:
 
Indice Producción en bpd/psia, Diámetro TP en  in, Presión Fondo F Pozo en psi, Presión Fondo E Pozo en psi, Presión Cabeza Pozo en psi, Viscosidad Agua en cp, Rugosidad en in, Densidad Agua, Longitud Pozo en m, Angulo Pozo en ° y Gasto Agua en  bpd.
 
El programa devuelve lo siguiente:
 
Presión de fondo o la presión de cabeza, todo depende de lo que se busque.
 
Para este punto se propone colocar dos labelframe titulados entradas y salidas, con el fin de guiar al usuario a través la interfaz que se ha realizado, como se muestra en la siguiente figura.




El tercer paso es hacer un diseño fácil e intuitivo para el usuario, por lo cual se propone la siguiente distribución.




La venta cuenta con tres recuadros de importancia, el recuadro principal es el llamado Entradas dado que en este recuadro se ingresan todos los datos pertinentes para realizar los cálculos correspondientes, se continua con el recuadro de Opciones el cual informa al usuario que puede realizar además de calcular el valor buscado y por último el recuadro de Salidas en el que se muestra el valor requerido por el usuario.

Se puede apreciar que se han colocado los mínimos botones que se pueden usar en una ventana de estas características, el primer botón hace alusión a las unidades que admite el programa y las que pude devolver al usuario, el segundo botón guarda los datos en una hoja de Excel la cual funciona como base de datos, el tercer botón permite llamar datos guardados en la base de datos, el cuarto botón borra la base de datos sin mayor complicación, el quinto botón limpia los recuadros de Entradas y Salidas, el sexto botón permite calcular lo requerido por el usuario y por último se observa el botón Atrás el cual elimina la ventana.   

Con este ejemplo se disipa un poco las tinieblas que hay alrededor de la creación de la interfaz gráfica, cabe recalcar que todo depende de la creatividad de cada persona y de la mera experiencia posea.

sábado, 26 de noviembre de 2022

Consejos para Realizar una Interfaz

 En esta entrada se aborda un tema poco tratado a lo largo del blog, dicho tema es la creación de la interfaz gráfica, para ello surgen diferentes preguntas como: ¿Por qué se debe crear una interfaz?, ¿Qué debe de llevar la interfaz?, ¿Cómo se sabe que la interfaz es útil para el usuario?, etc.
 
Este tema es bastante extenso y complicado de abordar dado a la diversidad de pensamiento y creatividad de cada persona, por lo anterior se proporcionan algunos consejos que se han obtenido a lo largo del tiempo. Tenga en mente que no tengo la razón absoluta y es mi experiencia obtenida a lo largo de 4 años como programador.
 
Antes de comenzar con los consejos se han de aclarar las preguntas planteadas anteriormente. Empezando con la primera pregunta, ¿Por qué se debe crear una interfaz?, esta pregunta es relativamente sencilla de responder dado a que no todas las personas saben programar o poseen un buen dominio de la computación, por lo que se busca facilitar el uso de los programas a esas personas que no saben mucho de programación. Continuando con la segunda, ¿Qué debe de llevar la interfaz?, como respuesta se puede decir que depende, ya que la interfaz puede ser robusta o sencilla según las necesidades del programador y del usuario, en sí la sencillez de la interfaz dependerá de la habilidad de programador. Algo que se sabe es que entre más sencillo sea el programa para el usuario el programador trabajo demasiado para que así sea. Por ultimo ¿Cómo se sabe que la interfaz es útil para el usuario?, esta pregunta es muy importante dado que el programador busca que más usuarios usen sus creaciones, esto supone un mayor ingreso económico al programador, por lo que debe buscar el balance entre satisfacer al público y seguir su instinto en la creación de los programas. Por ello  tiene que poner atención a las personas que utilizan los programas, escuchando con criterio las propuestas, separando las propuestas viables y las que no lo son, evitando caer en las complacencias y el egoísmo. 
 
A continuación se proporcionan los pasos que sigo para crear una interfaz gráfica.
 
1.- Lo primero que debe hacer es tener el programa ya definido, cómo es esto, bueno se debe tener una idea clara de lo que se quiere hacer.
2.- Ubicar lo que necesita el programa para funcionar y lo que devuelve.
3.- Realizar un diseño intuitivo y fácil de utilizar. Esto se realiza dividiendo la ventana en cajas u otra cosa que le haga saber al usuario los espacios y las opciones que puede utilizar. En los códigos que se han subido al blog se observa el uso de este tema, Labelframes.
4.- Evite colocar muchos botones u opciones que confundan al usuario es mejor ser sencillo y conciso al momento de realizar la interfaz.
5.- Comience por hacer programas sencillos en los que se ingresen números, se seleccione un botón y devuelva un resultado, con el tiempo podrá ir agregando más cuestiones como limpiar datos o guardar los mismos.
 
Estos fueron algunos consejos que me han ayudado para realizar los programas que hay en el blog, sé que me falta mucho camino que recorrer pero sigo buscando formas de mejorar. Por último, no olvide que la práctica hace al maestro, no deje de intentar lo que se proponga y continué aprendiendo.

sábado, 12 de noviembre de 2022

Flujo Miltifásico Pozo de Agua Código

En esta entrada se muestra el código del cálculo de las caídas de presión en el pozo de agua.
 
import math as MATE
  
# Datos
 
Indice_Produccion = 15      # bpd/psia
Diametro_TP = 2             # in
Presion_Fondo_F_Pozo = 800  # psi
Presion_Fondo_E_Pozo = 850  # psi
Presion_Cabeza_Pozo = 0     # psi
Viscosidad_Agua = 1         # cp
Rugosidad = 0.0006          # in
Densidad_Agua = 1           #
Longitud_Pozo = 250         # m
Angulo_Pozo = 90            # ° es un pozo vertical
Gasto_Agua = 0              # bpd
 
Longitud_Pozo = Longitud_Pozo*3.2808
Angulo_Pozo = MATE.radians(Angulo_Pozo)
 
# Cálculo de los pozos
 
if Presion_Cabeza_Pozo == 0:
 
    Gasto_Agua = Indice_Produccion*(Presion_Fondo_E_Pozo-Presion_Fondo_F_Pozo)
 
elif Presion_Cabeza_Pozo != 0:
 
    Gasto_Agua = Indice_Produccion*(Presion_Fondo_E_Pozo-Presion_Cabeza_Pozo)
 
else:
 
    print("La opción no existe")
 
Gradiente_Elevacion = 0.433*Densidad_Agua*Longitud_Pozo*MATE.sin(Angulo_Pozo)
 
Reynolds = 92.2*(Gasto_Agua*Densidad_Agua)/(Diametro_TP*Viscosidad_Agua)
 
fD0 = 0.01
 
fD0 = (-2*MATE.log10((Rugosidad/(3.715*Diametro_TP))+(2.514/(Reynolds*MATE.sqrt(fD0)))))**-2
 
Error = 1
 
while Error > 1E-20:
 
    fD = (-2*MATE.log10((Rugosidad/(3.715*Diametro_TP))+(2.514/(Reynolds*MATE.sqrt(fD0)))))**-2
 
    Error = abs(fD0-fD)/(fD0)
 
    fD0 = fD
 
Gradiente_Friccion = ((1.147*10**-5)*fD0*1*(Gasto_Agua**2)*Longitud_Pozo)/(Diametro_TP**5)
 
Gradiente_Total = Gradiente_Elevacion+Gradiente_Friccion
 
if Presion_Cabeza_Pozo == 0:
 
    Presion_Cabeza_Pozo = Presion_Fondo_F_Pozo-Gradiente_Total
 
elif Presion_Cabeza_Pozo != 0:
 
    Presion_Fondo_F_Pozo = Presion_Cabeza_Pozo+Gradiente_Total
 
else:
 
    print("La opción no existe")
 
print(Presion_Cabeza_Pozo,Presion_Fondo_F_Pozo,Gradiente_Total,Gradiente_Elevacion,Gradiente_Friccion,Gasto_Agua)  

miércoles, 2 de noviembre de 2022

Flujo Multifásico Pozo de Agua

En esta entrada se aborda el pozo de agua, el cual es uno de los pozos más sencillos que hay debido a las propiedades del agua. En la presente entrada se trae un ejemplo con el cual explicar cómo se calculan las caídas de presión en un pozo de agua. Para este ejemplo se tienen las siguientes consideraciones: Índice de producción de 15 bpd/psia, un diámetro de 2 pulgadas, presión de fondo fluyendo de 800 psi, presión de fondo estática de 850 psi, la viscosidad se considera como un cp, la rugosidad de la tubería es de 0.0006 pulgadas, el pozo tiene una longitud de 250 m y un ángulo de 90 grados. Con los datos anteriores obtener la presión en la cabeza del pozo.

Para comenzar se debe de obtener el Gasto del agua.


Se continúa, con el cálculo del gradiente de elevación.


Continuando, se calcula con el número de Reynolds.


Una vez obtenidos los parámetros anteriores se procede a calcular el factor de fricción, para ello se propone un factor de fricción inicial de 0.01.


Con este factor se obtiene el factor de fricción cero, con este factor de fricción se ingresa a un proceso iterativo en el cual repetirá hasta el error sea menor a 1*10^-6.



Si no se cumple con error el factor de fricción se convierte en el factor de fricción cero con el cual se vuelve entrar al proceso iterativo.


Con el factor de fricción se calcula el gradiente de fricción.


Con ambos gradientes se obtiene el gradiente total de la caída de presión en el pozo.


Para finalizar se calcula la presión en la cabeza del pozo.


Se debe de tener cuidado con las unidades al momento de trabajar con las ecuaciones anteriores, además se puede despejar las variables con el fin de obtener otros parámetros.

miércoles, 12 de octubre de 2022

Flujo Multifásico Ecuaciones 2

En esta entrada se continúa con las ecuaciones de importancia para la obtención de las caídas de presión, cabe recalcar que estas ecuaciones son relevantes para el flujo multifásico hablando en términos de pozo de agua, gas y aceite.
La primera ecuación que tendremos en cuenta es el Factor de Fricción. Este factor ha sido correlacionado con el número de Reynolds y la rugosidad relativa en la tubería.

  

Para obtener el valor de la fricción, es necesario determinar el régimen de flujo presente en la tubería. Para determinar el régimen de flujo se utiliza el número de Reynolds.
 

Número de Reynolds

Régimen

N_Re < 2300

Laminar

N_Re > 3100

Turbulento


Para cada uno de los regímenes se utilizan diferentes ecuaciones:

Para flujo laminar en una sola fase, el factor de fricción depende exclusivamente del número de Reynolds, y está dado por la siguiente expresión:

  Para el flujo turbulento, el factor de fricción está dado por la ecuación de Colebrook y White

 

 f es el factor de fricción en [adim]
E es la rugosidad absoluta en [pg]
d es el diámetro de la tubería en [pg]
Nre es el número de Reynolds en [adim]
Fs es el factor de fricción supuesto [adim]
 
Para obtener f, se hace un procedimiento iterativo.
 
Primer paso - suponer una fs, se propone un valor de 0.01
Segundo paso - con el valor de f obtenido en el primer paso, se vuelve a calcular f
Tercer paso – se realiza el mismo procedimiento hasta que converja con un porcentaje menor o igual a 0.0001.

 

La siguiente ecuación es el número de Reynolds, Nre, la cual es un parámetro adimensional e indica el tipo de régimen de flujo.

 

 Dónde:

 
NRe es el número de Reynolds en [adim]
p es la densidad del fluido en [kg/m^3]
v es la velocidad del fluido en [m/s]
d es el diámetro de la tubería en [m]
M es la viscosidad del fluido en [kg/m*s]

 

 Dónde:

 
NRe es el número de Reynolds en [adim]
p es la densidad del fluido en [lbm/ft^3]
v es la velocidad del fluido en [ft/s]
d es el diámetro de la tubería en [ft]
M es la viscosidad del fluido en [cp]

 Dónde:

NRe es el número de Reynolds en [adim]
p es la densidad de la mezcla sin resbalamiento en [lbm/ft^3]
v es la velocidad de la mezcla en [ft/s]
d es el diámetro de la tubería en [ft]
M es la viscosidad de la mezcla sin resbalamiento en [cp]


Como se puede apreciar el número de Reynolds depende de la velocidad del fluido, el diámetro de la tubería y la viscosidad del fluido.
La tercera ecuación es la rugosidad, la rugosidad absoluta es la medida del grado de imperfecciones de la superficie interna de la tubería.
Para tuberías comerciales, la rugosidad absoluta, considera valores entre 0.0006 y 0.0008 [pg]
Para tuberías de producción, considera un valor de 0.0006 [pg] y para líneas superficiales se tiene el intervalo de 0.0006 a 0.00075 [pg]
También hay que tomar en cuenta el Diagrama de Mody, este determina el valor de f en tuberías de rugosidad comercial. Es importante conocer la rugosidad relativa que se da por la siguiente expresión:

Los tipos de flujos se dan de la siguiente manera:
Para NRe < 2300 se refiere a un flujo laminar y f depende solamente del número de Reynolds.
Para NRe > 3100 se refiere un flujo turbulento y f depende de NRe y de E/d
Para 2300 < NRe < 3100 se refiere a la zona de transición y se aproxima con la siguiente ecuación: 

Dónde:
fc es el factor de fricción calculado en [adim]
E es la rugosidad absoluta en [pg o ft]
D es el diámetro de la tubería en [pg o ft]
NRe es el número de Reynolds en [adim]
fs es el factor de fricción supuesto en [adim]


Para obtener f, se hace un procedimiento iterativo.


Primer paso - suponer una fs, se propone un valor de 0.01
Segundo paso - con el valor de f obtenido en el primer paso, se vuelve a calcular f
Tercer paso – se realiza el mismo procedimiento hasta que converja con un porcentaje menor o igual a 0.0001.

miércoles, 5 de octubre de 2022

Flujo Multifásico Ecuaciones 1

En esta entrada y en las siguientes se repasan ecuaciones que son relevantes en el flujo multifásico y que se deben de tener en cuenta a lo largo del cálculo de la caída de presión en el pozo. En esta entrada se presenta el gradiente de presión debido a la fricción y sus variantes, las cuales son la ecuación de Darcy y la ecuación de Fanning.

Gradiente de presión debido a la fricción

Las caídas de presión debido a la fricción, se generan por las paredes internas de la tubería y son fundamentales para el análisis de las caídas de presión totales.
Las ecuaciones que se muestran a continuación son utilizadas para determinar las caídas de presión por fricción a lo largo de una tubería con la velocidad media del fluido.

Ecuación de Darcy

  

(∆p/∆L)_f es el gradiente de presión debido a la fricción [lbf/ft^2/ft]
f es el factor de fricción [adim]
p es la densidad del fluido [lbm/ft^3]
v es la velocidad del fluido [ft/s]
gc es el factor de conversión gravitacional = 32.2 [lbm]
d es el diámetro de la tubería [ft]

 
Ecuación de Fanning

 
 Donde


Teniendo así lo siguiente
 
 

(∆p/∆L)_f es el gradiente de presión debido a la fricción [lbf/ft^2/ft]
f es el factor de fricción [adim]
p es la densidad del fluido [lbm/ft^3]
v es la velocidad del fluido [ft/s]
gc es el factor de conversión gravitacional = 32.2 [lbm]
d es el diámetro de la tubería [ft]
rh es el diámetro de la tubería [ft]


miércoles, 21 de septiembre de 2022

Ecuación General de Energía

Para dar comienzo con el tema de flujo multifásico se debe de conocer las siguientes ecuaciones y conceptos: Ecuación General de Energía, Ecuación de Darcy, Ecuación de Fanning, Factor de Fricción, Número de Reynold, Diagrama de Moody.
En esta entrada se aborda la ecuación general de energía, la cual gobierna el flujo a través de una tubería, la ecuación se obtiene a partir de un balance de la energía asociada a la unidad de masa de un fluido, el cual pasa a través de un elemento aislado del sistema.

Tomando en cuenta la ley de la conservación de la energía:
 
 
Dónde:

E1 es la energía por unidad de masa, en la posición uno [lbf*ft/lbm]
E2 es la energía por unidad de masa, en la posición dos [lbf*ft/lbm]
DeltaWf son las pérdidas de energía por fricción
DeltaWs son las pérdidas de energía por trabajo externo
 
La energía por unidad de masa se compone de las siguientes energías:

Energía de expansión

  
Dónde:

Ee es la energía de expansión en [lbf*ft/lbm]
P es la presión en [lbf/ft^2]
V es el volumen especifico en [ft^3/lbm]
 
Energía potencial

  
Dónde:
 
Ep es la energía  potencial en [lbf*ft/lbm]
g es la gravedad siendo esta 32.2 [ft/s^2]
gc es el Factor de conversión gravitacional siendo 32.2 [lbm*ft/lbf*s^2]
h es la altura [ft]
 
Energía cinética

  
Ek es la energía cinética en [lbf*ft/lbm]
v es la velocidad [ft/s]
gc es el factor de conversión gravitacional = 32.2 [lbm*ft/lbf*s^2]

Al sustituir las expresiones anteriores en la Ley de la conservación de la energía se obtiene lo siguiente:


 

Dónde:
 
V es el volumen específico medio del fluido. 

 
Al considerar despreciable las pérdidas de energía por trabajo externo y seguir los siguientes pasos se desarrolla la expresión.
 
Al multiplicar 

 Por 

 
Se obtiene lo siguiente


 


Desarrollando la ecuación: 

 
Considerando positiva la caída de presión en la dirección de flujo, se tiene:

En términos de gradientes se obtiene lo siguiente:

 

 Dónde:
 
(∆p/∆L)_T es el gradiente de presión total
(∆p/∆L)_e es el gradiente de presión debido a la elevación
(∆p/∆L)_ac es el gradiente de presión debido a la aceleración
(∆p/∆L)_f es e gradientes de presión debido a la fricción
 
En los pozos verticales, la caída de presión por elevación es el componente más importante