Sei sulla pagina 1di 35

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERIA EN GEOLOGIA, MINAS, PETRLEOS Y AMBIENTAL


CARRERA DE INGENIERIA EN PETRLEOS
COMPUTACIN APLICADA A LA INGENIERA
NOMBRE: JOEL OLEAS

PROFESOR: Ing. NSTOR


VALDOSPINOS Ms Sc.

CURSO: SEXTO

FECHA: 02/07/2015

PRUEBA PARCIAL :2DO


HEMISEMESTRE

NOTA:

TEMA:
Macro desarrollado en VISUAL BASIC para determinar el factor de friccin
OBEJETIVO GENERAL
Desarrollar programa que desarrolle valor del factor de friccin con datos
previamente especificados.
OBJETIVOS ESPECFICOS

Crear un macro en visual BASIC


Especificar las variables a utilizar.
Escribir el lugar donde se deben imprimir los resultados y los titulos
Programar paso a paso para que el programa nos pida valores de caudal,

dimetro,API, temperatura. Adems de escoger el material de la tubera.


Desarrollar el programa para que nos en dos diferentes unidades algunos

variables e indique el valor de los mismos en ventanas emergentes


Concatenar la informacin para que nos de el valor del factor de friccin

con los datos obtenidos.


Correr el programa con CTRL + O.

INTRODUCCIN

Una macro son un conjunto de instrucciones que sirven para automatizar


procesos. Refirindonos a excel, supongamos que realizamos frecuentemente la
accin de seleccionar un rango para aplicarle negrita, cambio de fuente y
centrado. En lugar de hacer estas acciones manualmente, se puede elaborar una
macro e invocarla para que ejecute los tres procesos automticamente.
Es decir un macro es un supercomando.un comando que , en un nico paso
realiza 9lo que, normalmente requerira de muchas operaciones.permite agilizar y
automatizar aun mas el trabajo con Excel.
MARCO TEORICO

Visual Basic
Es un ambiente grfico de desarrollo de aplicaciones para el sistema operativo
Microsoft Windows. Las aplicaciones creadas con Visual Basic estn basadas en
objetos y son manejadas por eventos. Visual Basic se deriva del lenguaje Basic, el
cual es un lenguaje de programacin estructurado. Sin embargo, Visual Basic
emplea un modelo de programacin manejada por eventos.
Las Aplicaciones Procedurales
En las aplicaciones tradicionales o procedurales, es la aplicacin quien controla
que porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La
ejecucin de la aplicacin se inicia con la primera lnea de cdigo, y sigue una ruta
predefinida a travs de la aplicacin, llamando procedimientos segn sea
necesario.
Las Aplicaciones Manejadas por Eventos
En las aplicaciones manejadas por eventos, la ejecucin no sigue una ruta
predefinida. En vez de esto, se ejecutan diferentes secciones de cdigo en
respuesta a eventos. Los eventos se desencadenan por acciones del usuario, por
mensajes del sistema o de otras aplicaciones. La secuencia de eventos determina
la secuencia en que el cdigo se ejecuta. Es por esto que la ruta que sigue el
cdigo de la aplicacin es diferente cada vez que se ejecuta el programa.
Una parte esencial de la programacin manejada por eventos es el escribir cdigo
que responda a los posibles eventos que pueden ocurrir en una aplicacin. Visual
Basic facilita la implementacin del modelo de programacin manejada por
eventos.
Caractersticas Generales de Visual-Basic

Visual-Basic es una herramienta de diseo de aplicaciones para Windows, en la


que estas se desarrollan en una gran parte a partir del diseo de una interface
grfica. En una aplicacin Visual - Basic, el programa est formado por una parte
de cdigo puro, y otras partes asociadas a los objetos que forman la interface
grfica.
Es por tanto un trmino medio entre la programacin tradicional, formada por una
sucesin lineal de cdigo estructurado, y la programacin orientada a objetos.
Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por
completo a uno de esos dos tipos de programacin, debemos inventar una palabra
que la defina: PROGRAMACION VISUAL.
La creacin de un programa bajo Visual Basic lleva los siguientes pasos:

Creacin de un interface de usuario. Este interface ser la principal va de


comunicacin hombre mquina, tanto para salida de datos como para
entrada. Ser necesario partir de una ventana - Formulario - a la que le
iremos aadiendo los controles necesarios.
Definicin de las propiedades de los controles - Objetos - que hayamos
colocado en ese formulario. Estas propiedades determinarn la forma
esttica de los controles, es decir, como son los controles y para qu sirven.
Generacin del cdigo asociado a los eventos que ocurran a estos objetos.
A la respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) le
llamamos Procedimiento, y deber generarse de acuerdo a las necesidades
del programa.
Generacin del cdigo del programa. Un programa puede hacerse
solamente con la programacin de los distintos procedimientos que
acompaan a cada objeto. Sin embargo, VB ofrece la posibilidad de
establecer un cdigo de programa separado de estos eventos. Este cdigo
puede introducirse en unos bloques llamados Mdulos, en otros bloques
llamados Funciones, y otros llamados Procedimientos. Estos
Procedimientos no responden a un evento acaecido a un objeto, sino que
responden a un evento producido durante la ejecucin del programa.

Fluido: los fluidos son sustancias capaces de "fluir" y que se adaptan a la forma
de los recipientes que los contienen.
Presin de un fluido: la presin de un fluido se transmite con igual intensidad
en todas direcciones y acta normalmente a cualquier superficie plana. En el
mismo plano horizontal, el valor de la presin de un lquido es igual en
cualquier punto.
Viscosidad: la viscosidad de un fluido es aquella propiedad que determina la
cantidad de resistencia opuesta a las fuerzas cortantes. La viscosidad se debe
primordialmente a las interacciones entre las molculas del fluido.
En un fluido newtoniano, el gradiente de velocidad es obviamente proporcional
al esfuerzo constante. Esta constante de proporcionalidad es la viscosidad, y
se define mediante la ecuacin:

Efecto de la Rugosidad: se sabe desde hace mucho tiempo que, para el flujo
turbulento y para un determinado nmero de Reynolds, una tubera rugosa, da un
factor de friccin mayor que en una tubera lisa. Por consiguiente si se pulimenta
una tubera rugosa, el factor de friccin disminuye y llega un momento en que si se
sigue pulimentndola, no se reduce ms el factor de friccin para un determinado
nmero de Reynolds.
Flujo Laminar y Turbulento: a velocidades bajas los fluidos tienden a moverse sin
mezcla lateral, y las capas contiguas se deslizan mas sobre otras. No existen
corrientes transversales ni torbellinos. A este tipo de rgimen se le llama flujo
Laminar. En el flujo laminar las partculas fluidas se mueven segn trayectorias
paralelas, formando el conjunto de ellas capas o lminas. Los mdulos de las
velocidades de capas adyacentes no tienen el mismo valor.
A velocidades superiores aparece la turbulencia, formndose torbellinos. En el
flujo turbulento las partculas fluidas se mueven en forma desordenada en todas
las direcciones.
Ecuacin General Del Flujo de Fluidos: el flujo de fluido en tuberas siempre est
acompaado del rozamiento de las partculas del fluido entre si, y
consecuentemente, por la prdida de energa disponible, es decir, tiene que existir
una prdida de presin en el sentido del flujo
Frmula de Darcy-Weisbach: la frmula de Darcy-Weisbah, es la frmula bsica
para el clculo de las prdidas de carga en las tuberas y conductos. La ecuacin
es la siguiente:

La ecuacin de Darcy es vlida


tanto para flujo laminar como
para flujo turbulento de cualquier lquido en una tubera. Sin embargo, puede
suceder que debido a velocidades extremas, la presin corriente abajo disminuya
de tal manera que llegue a igualar, la presin de vapor del lquido, apareciendo el
fenmeno conocido como cavitacin y los caudales. Con el debido razonamiento
se puede aplicar a tubera de dimetro constante o de diferentes dimetros por la
que pasa un fluido donde la densidad permanece razonablemente constante a
travs de una tubera recta, ya sea horizontal, vertical o inclinada. Para tuberas
verticales, inclinada o de dimetros variables, el cambio de presin debido a
cambios en la elevacin, velocidad o densidad del fluido debe hacerse de acuerdo
a la ecuacin de Bernoulli.

Factor de friccin: la frmula de Darcy puede ser deducida por el anlisis


dimensional con la excepcin del factor de friccin f, que debe ser determinado
experimentalmente. El factor de friccin para condiciones de flujo laminar es de
(Re < 2000) es funcin sola del numero de Reynolds, mientras que para flujo
turbulento (Re > 4000) es tambin funcin del tipo de pared de tubera.
Zona Crtica: la regin que se conoce como la zona critica, es la que aparece entre
los nmeros de Reynolds de 200 a 4000. En esta regin el flujo puede ser tanto
laminar como turbulento, dependiendo de varios factores: estos incluyen cambios
de la seccin, de direccin del flujo y obstrucciones tales como vlvulas corriente
arriba de la zona considerada. El factor de Friccin en esta regin es
indeterminado y tiene lmites ms bajos si el flujo es laminar y ms altos si el flujo
es turbulento.
Para los nmeros de Reynolds superiores a 4000, las condiciones de flujo vuelven
a ser ms estables y pueden establecerse factores de rozamiento definitivos. Esto
es importante, ya que permite al ingeniero determinar las caractersticas del flujo
de cualquier fluido que se mueva por una tubera, suponiendo conocidas la
viscosidad, la densidad en las condiciones de flujo.
Factor De Friccin Flujo Laminar (Re < 2000)
Factor De Friccin Para Flujo Turbulento (Re >4000)
Cuando el flujo es turbulento el factor de friccin no solo depende del nmero de
Reynolds, sino tambin de Rugosidad relativas de las paredes de la tubera, e/D,
es decir, la rugosidad de las paredes de la tubera (e) comparadas con el dimetro
de la tubera (D). Para tuberas muy lisas, como las de latn extruido o el vidrio, el
factor de friccin disminuye ms rpidamente con el aumento del nmero de
Reynolds, que para tubera con paredes ms rugosas.
Como el tipo de la superficie interna de la tubera comercial es prcticamente
independiente del dimetro, la rugosidad de las paredes tiene mayor efecto en el
factor de friccin para dimetros pequeos. En consecuencia las tuberas de
pequeo dimetro se acercan a la condicin de gran rugosidad y en general tienen
mayores factores de friccin que las tuberas del mismo material pero de mayores
dimetros.
Para flujo Laminar la ecuacin de friccin puede ordenarse como sigue.

b.- Para flujo Turbulento hay diferentes ecuaciones para cada caso:
1.- Para flujo turbulento en tuberas rugosas o lisas las leyes de resistencia
universales pueden deducirse a partir de:

DESARROLLO

Cells.Font.Name = "ARIAL"

'escribir una variable "DIM"


Dim CAUDAL As Single
Dim CAUDALMC As Single
Dim DIAMETROTUBERIA As Single
Dim DIAMETROTUBERIAM As Single
Dim AREA As Single
Dim unidadesC As Single
Dim BARRILESPORDIA As Single
Dim MATERIAL As Single
Dim VELOCIDAD As Single
Dim CAUDALV As Single
Dim API As Single
Dim PESOES As Single
Dim UNIDADEST As Single
Dim TEMPERATURA As Single
Dim T As Single
Dim TF As Single

Dim UC As Single

Range("a1").Value = "VARIABLE"
Range("b1").Value = "MAGNITUD"
Range("c1").Value = "UNIDADES"
Range("a1").Font.Color = RGB(255, 0, 0)
Range("b1").Font.Color = RGB(255, 0, 0)

Range("c1").Font.Color = RGB(255, 0, 0)
Range("a2").Value = "CAUDAL MC"
Range("a3").Value = "CAUDAL BPD"
Range("A4").Value = "DIAMETRO DE LA TUBERIA PLG"
Range("A5").Value = "DIAMETRO DE LA TUBERIA M"
Range("C5").Value = "METROS"
Range("A6") = "AREA"
Range("C6").Value = "METROS^2"
Range("A7").Value = "MATERIAL"
Range("A8").Value = "RUGOSIDAD ABSOLUTA"
Range("C8").Value = "METROS"
Range("A9").Value = "VELOCIDAD"
Range("C9").Value = "METROS/SEGUNDOS"
Range("A1", ["A18"]).HorizontalAlignment = xlCenter
Range("B1", ["B18"]).HorizontalAlignment = xlCenter
Range("C1", ["C18"]).HorizontalAlignment = xlCenter
Range("A10").Value = "PETROLEO"
Range("C10").Value = "GRADOS API"
Range("A11").Value = "PESO ESPECIFICO"
Range("A12").Value = "TEMPERATURA C"
Range("A13").Value = "TEMPERATURA F"
Range("a14").Value = "VISCOSIDAD DINAMICA"
Range("c14").Value = "cstk"
Range("a15").Value = "VISCOSIDAD ABSOLUTA"
Range("c15").Value = "cP"
Range("a16").Value = "NUMERO DE REYNOLDS"
Range("a17").Value = "FACTOR DE FRICCION CALCULADO"

'CHR(13) nos ayuda a concatenar la siguiente linea

unidadesC = InputBox("INGRESE 1 PARA CAUDAL BARRILESPORDIA" &


Chr(13) & "INGRESE 2 PARA CAUDAL M^3/S", "INGRESO DE DATOS")

If unidadesC = "1" Then


CAUDAL = InputBox("INGRESAR EL CAUDAL" & Chr(13) & "EN BARRILES
POR DIA", "INGRESO DE DATOS")
Range("B2").Value = CAUDAL
Range("C2").Value = "BARRILES/DIA"
MsgBox ("EL CAUDAL ES =" & Round(CAUDAL * 42 * 3.785 / (1000 *
86400), 4) & "m3/s")
CAUDALMC = CAUDAL * 42 * 3.785 / (1000 * 86400)
Range("B3").Value = CAUDALMC
Range("C3").Value = "M ^ 3 / S"

Else: unidadesC = "2"


CAUDAL = InputBox("INGRESE EL CAUDAL" & Chr(13) & "EN METROS
CUBICOS POR SEGUNDO", "INGRESO DE DATOS")
Range("B2").Value = CAUDAL
Range("C2").Value = "METROS^3/S"
MsgBox ("EL CAUDAL ES =" & Round(CAUDAL * 1000 * 86400 / (42 *
3.785), 4) & "BARRILESPORDIA")
CAUDALMC = CAUDAL
BARRILESPORDIA = CAUDAL * 1000 * 86400 / (42 * 3.785)
Range("B3").Value = BARRILESPORDIA
Range("C3").Value = "BARRILES/DIA"

End If

UNIDADESD = InputBox("INGRESE 1 PARA DIAMETRO EN PG" & Chr(13) &


"INGRESE 2 PARA DIAMETRO EN M", "INGRESO DE DATOS")

If UNIDADESD = "1" Then


DIAMETROTUBERIA = InputBox("INGRESAR EL VALOR DEL" & Chr(13) &
"DIAMETRO DE LA TUBERIA EN PG", "INGRESO DE DATOS")
Range("C4").Value = "PULGADAS"
Range("B4").Value = DIAMETROTUBERIA

DIAMETROTUBERIAM = DIAMETROTUBERIA * 0.0254


Range("B5") = DIAMETROTUBERIAM
MsgBox ("EL AREA DE LA TUBERIA ES =" &
Round(((WorksheetFunction.Pi) / 4) * (DIAMETROTUBERIAM) *
(DIAMETROTUBERIAM), 4) & " M2")
AREA = ((WorksheetFunction.Pi) / 4) * (DIAMETROTUBERIAM) *
(DIAMETROTUBERIAM)
Range("B6").Value = AREA
Else: UNIDADESD = "2"
DIAMETROTUBERIA = InputBox("INGRESAR EL VALOR DEL" & Chr(13) &
"DIAMETRO DE LA TUBERIA EN M", "INGRESO DE DATOS")
Range("C4").Value = "METROS"
Range("B4").Value = DIAMETROTUBERIAM
DIAMETROTUBERIA = DIAMETROTUBERIAM / 0.0254
Range("B5") = DIAMETROTUBERIA
MsgBox ("EL AREA DE LA TUBERIA ES =" &
Round(((WorksheetFunction.Pi) / 4) * (DIAMETROTUBERIAM) *
(DIAMETROTUBERIAM), 4) & " M2")
AREA = ((WorksheetFunction.Pi) / 4) * (DIAMETROTUBERIAM) *
(DIAMETROTUBERIAM)
Range("B6").Value = AREA
End If
'RUGOSIDAD Y MATERIALES
MATERIAL = InputBox("INGRESE 1 PARA ACERO" & Chr(13) & "INGRESE 2
PARA ASBESTO CEMENTO" & Chr(13) & "NGRESE 3 PARA PLASTICO" &
Chr(13) & "INGRESE 4 PARA COBRE" & Chr(13) & "INGRESE 5 PARA
VIDRIO" & Chr(13) & "INGRESE 6 PARA CUERO" & Chr(13) & "INGRESE 7
PARA HIERRO FUNDIDO NUEVO" & Chr(13) & "INGRESE 8 PARA HIERRO
FUNDIDO SEMIOXIDADO" & Chr(13) & "INGRESE 9 PARA HORMIGON",
"INGRESO DE DATOS")

If MATERIAL = "1" Then


Range("B7").Value = "ACERO"
Range("B8").Value = 0.00007
MsgBox ("LA RUGOSIDAD ES " & "0,0007")

ElseIf MATERIAL = "2" Then

Range("B7").Value = "ASBESTO CEMENTO"


Range("B8").Value = 0.025
MsgBox ("LA RUGOSIDAD ES " & "0,025")

ElseIf MATERIAL = "3" Then


Range("B7").Value = "PLASTICO"
Range("B8").Value = 0.15
MsgBox ("LA RUGOSIDAD ES " & "0,15")

ElseIf MATERIAL = "4" Then


Range("B7").Value = "COBRE"
Range("B8").Value = 0.15
MsgBox ("LA RUGOSIDAD ES " & "0,15")

ElseIf MATERIAL = "5" Then


Range("B7").Value = "VIDRIO"
Range("B8").Value = 0.15
MsgBox ("LA RUGOSIDAD ES " & "0,15")

ElseIf MATERIAL = "6" Then


Range("B7").Value = "CUERO"
Range("B8").Value = 0.15
MsgBox ("LA RUGOSIDAD ES " & "0,15")

ElseIf MATERIAL = "7" Then


Range("B7").Value = "HIERRO FUNDIDO NUEVO"
Range("B8").Value = 0.008
MsgBox ("LA RUGOSIDAD ES " & "0,008")

ElseIf MATERIAL = "8" Then


Range("B7").Value = "HIERRO FUNDIDO SEMIOXIDADO"
Range("B8").Value = 0.0125

MsgBox ("LA RUGOSIDAD ES " & "0,0125")

ElseIf MATERIAL = "9" Then


Range("B7").Value = "HORMIGON"
Range("B8").Value = 0.6
MsgBox ("LA RUGOSIDAD ES " & "0,6")
End If

'VELOCIDAD
VELOCIDAD = CAUDALMC / AREA
Range("B9").Value = VELOCIDAD
MsgBox ("LA VELOCIDAD ES = " & Round(VELOCIDAD, 9) & "m/s")

'API DEL PETROLEO

API = InputBox("INGRESAR EL GRADO API" & Chr(13) & "DEL PETROLEO",


"INGRESO DE DATOS")
Range("B10").Value = API

'PESO ESPECIFICO DEL PETROLEO

PESOES = 141.5 / (131.5 + API) * 1000


Range("B11").Value = PESOES
Range("c11").Value = ("KILOGRAMOS/METROSCUBICOS")
'TEMPERATURA
UNIDADEST = InputBox("INGRESE 1 PARA TEMPERATURA EN CENTIGRADOS" &
Chr(13) & "INGRESE 2 TEMPERATURA EN FARENHEIT", "INGRESO DE
DATOS")

If UNIDADEST = "1" Then

TEMPERATURA = InputBox("INGRESAR LA TEMPERATURA" & Chr(13) & "EN


CENTIGRADOS", "INGRESO DE DATOS")

Range("C12").Value = "CENTIGRADOS"
Range("B12").Value = TEMPERATURA
TF = (TEMPERATURA + 32) * 9 / 5
Range("B13").Value = TEMPERATURA
Range("C13").Value = "FARENHEIT"

Else: UNIDADEST = "2"

TEMPERATURA = InputBox("INGRESAR LA TEMPERATURA" & Chr(13) & "EN


FARENHEIT", "INGRESO DE DATOS")
Range("C13").Value = "FAERNHEIT"
Range("B13").Value = TEMPERATURA
T = (TEMPERATURA - 32) * (5 / 9)
Range("B12").Value = T
Range("C12").Value = "CENTIGRADOS"
End If

'VISCOSIDAD :(

If API >= 12 And API <= 13.99 Then

If T >= 40 And T <= 69.99 Then


UC = (5 * T * T) - (620 * T) + 19800
Range("B14").Value = UC

ElseIf T >= 70 And T <= 99.99 Then


UC = (0.3 * T ^ 2 - 60 * T + 3080)
Range("B14").Value = UC

ElseIf T >= 100 And T <= 129.99 Then


UC = (0.045 * T ^ 2 - 11.95 * T + 820)

Range("B14").Value = UC

ElseIf T >= 130 And T <= 159.99 Then


UC = (0.015 * (T) ^ 2 - 0.65 * T + 375)
Range("B14").Value = UC

ElseIf T < 40 And T > 160 Then


MsgBox ("INGRESE UN VALOR ACORDE DE TEMPERTURA")

End If

ElseIf API >= 14 And API <= 15.99 Then

If T >= 30 And T <= 59.99 Then


UC = 5 * (T) ^ 2 - 500 * T + 13000
Range("B14").Value = UC

ElseIf T >= 60 And T <= 89.99 Then


UC = 0.3 * T ^ 2 - 50 * T + 2170
Range("B14").Value = UC

ElseIf T >= 90 And T <= 119.99 Then


UC = 0.05 * T ^ 2 - 11.6 * T + 699
Range("B14").Value = UC

ElseIf T >= 120 And T <= 139.99 Then


UC = -0.5 * (T) + 80
Range("B14").Value = UC

ElseIf T >= 140 And T <= 159.99 Then


UC = -0.3 * T + 54
Range("B14").Value = UC

ElseIf T < 60 And T > 160 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 16 And API <= 17.99 Then

If T >= 20 And T <= 39.99 Then


UC = -115 * (T) + 4300
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.575 * T ^ 2 - 71.25 * T + 2330
Range("B14").Value = UC

ElseIf T >= 70 And T <= 99.99 Then


UC = 0.06 * (T) ^ 2 - 11.7 * T + 600
Range("B14").Value = UC

ElseIf T >= 100 And T <= 129.99 Then


UC = 0.0125 * (T) ^ 2 - 3.275 * T + 226.5
Range("B14").Value = UC

ElseIf T >= 130 And T <= 159.99 Then


UC = 0.0015 * T ^ 2 - 0.595 * T + 62.4
Range("B14").Value = UC

ElseIf T < 20 And T > 160 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 18 And API <= 19.99 Then

If T >= 0 And T <= 29.99 Then


UC = 5.57 * T ^ 2 - 277.5 * T + 4000
Range("B14").Value = UC

ElseIf T >= 30 And T <= 59.99 Then


UC = 0.5 * T ^ 2 - 52.5 * T + 1475
Range("B14").Value = UC

ElseIf T >= 60 And T <= 89.99 Then


UC = 0.065 * T ^ 2 - 10.95 * T + 488
Range("B14").Value = UC

ElseIf T >= 90 And T <= 119.99 Then


UC = 0.01 * T ^ 2 - 2.4 * T + 155
Range("B14").Value = UC

ElseIf T >= 120 And T <= 149.99 Then


UC = -0.15 * T + 27
Range("B14").Value = UC

ElseIf T < 0 And T > 150 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 20 And API <= 21.99 Then

If T >= -10 And T <= 0 Then


UC = -285 * T + 1150
Range("B14").Value = UC

ElseIf T >= 0.1 And T <= 39.99 Then


UC = 0.75 * T ^ 2 - 52.5 * T + 1050
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.175 * T ^ 2 - 21.25 * T + 680
Range("B14").Value = UC

ElseIf T >= 70 And T <= 109.99 Then


UC = 0.01 * T ^ 2 - 2.2 * T + 130
Range("B14").Value = UC

ElseIf T >= 110 And T <= 139.99 Then


UC = 0.002 * T ^ 2 - 0.061 * T + 50.9
Range("B14").Value = UC

ElseIf T >= 140 And T <= 159.99 Then


UC = -0.06 * T + 12.8
Range("B14").Value = UC

ElseIf T < -10 And T > 160 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC
End If

ElseIf API >= 22 And API <= 23.99 Then

If T >= -20 And T <= 19.99 Then


UC = -0.175 * (T) ^ 3 + 3.25 * T ^ 2 - 40 * T + 500
Range("B14").Value = UC

ElseIf T >= 20 And T <= 49.99 Then


UC = 0.13 * T ^ 2 - 12 * T + 318
Range("B14").Value = UC

ElseIf T >= 50 And T <= 79.99 Then


UC = 0.025 * T ^ 2 - 3.75 * T + 155
Range("B14").Value = UC

ElseIf T >= 80 And T <= 109.99 Then


UC = 0.0025 * (T) ^ 2 - 0.675 * T + 49.5
Range("B14").Value = UC

ElseIf T >= 110 And T <= 129.99 Then


UC = -0.095 * T + 16.2
Range("B14").Value = UC

ElseIf T >= 130 And T <= 159.99 Then


UC = -0.06 * T + 11.8
Range("B14").Value = UC

ElseIf T < -20 And T > 160 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC
End If

ElseIf API >= 24 And API <= 25.99 Then

If T >= -20 And T <= 9.99 Then

UC = -2.15 * (T) ^ 2 - 5.5 * T + 230


Range("B14").Value = UC

ElseIf T >= 10 And T <= 39.99 Then


UC = 0.2 * T ^ 2 - 12 * T + 220
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.02 * T ^ 2 - 2.7 * T + 103
Range("B14").Value = UC

ElseIf T >= 70 And T <= 99.99 Then


UC = 0.0025 * T ^ 2 - 0.575 * T + 38
Range("B14").Value = UC

ElseIf T >= 100 And T <= 119.99 Then


UC = -0.09 * T + 14.2
Range("B14").Value = UC

ElseIf T >= 120 And T <= 139.99 Then


UC = -0.09 * T + 13.8
Range("B14").Value = UC

ElseIf T < -20 And T > 140 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 26 And API <= 27.99 Then

If T >= -20 And T <= 9.99 Then

UC = 0.9 * (T) ^ 2 - T + 120


Range("B14").Value = UC

ElseIf T >= 10 And T <= 39.99 Then


UC = 0.04 * T ^ 2 - 3.4 * T + 90
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.01 * T ^ 2 - 1.4 * T + 57
Range("B14").Value = UC

ElseIf T >= 70 And T <= 89.99 Then


UC = 0.008 * (T) ^ 2 + 1.06 * T - 28
Range("B14").Value = UC

ElseIf T >= 90 And T <= 129.99 Then


UC = -3E-17 * T ^ 2 - 0.06 * T + 9.8
Range("B14").Value = UC

ElseIf T < -20 And T > 130 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 28 And API <= 29.99 Then

If T >= -20 And T <= 9.99 Then


UC = 1.3375 * T ^ 2 + 19.125 * T + 67.5
Range("B14").Value = UC

ElseIf T >= 10 And T <= 39.99 Then

UC = 0.035 * T ^ 2 - 2.35 * T + 55
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.0025 * T ^ 2 - 0.475 * T + 26
Range("B14").Value = UC

ElseIf T >= 70 And T <= 89.99 Then


UC = -0.14 * T + 15.3
Range("B14").Value = UC

ElseIf T >= 90 And T <= 109.99 Then


UC = -0.06 * T + 9
Range("B14").Value = UC

ElseIf T < -20 And T > 110 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 30 And API <= 31.99 Then

If T >= -10 And T <= 29.99 Then


UC = 0.0008 * T ^ 3 + 0.055 * T ^ 2 - 1.6667 * T + 32
Range("B14").Value = UC

ElseIf T >= 30 And T <= 59.99 Then


UC = 0.008 * T ^ 2 - 0.89 * T + 30.5
Range("B14").Value = UC

ElseIf T >= 60 And T <= 89.99 Then

UC = 0.001 * T ^ 2 - 0.21 * T + 13.5


Range("B14").Value = UC

ElseIf T < -10 And T > 90 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 32 And API <= 33.99 Then

If T >= -20 And T <= 9.99 Then


UC = 0.025 * T ^ 2 - 0.25 * T + 13
Range("B14").Value = UC

ElseIf T >= 10 And T <= 39.99 Then


UC = 0.01 * T ^ 2 - 0.5 * T + 13
Range("B14").Value = UC

ElseIf T >= 40 And T <= 69.99 Then


UC = 0.001 * T ^ 2 - 0.16 * T + 9
Range("B14").Value = UC

ElseIf T < -20 And T > 70 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC
End If

ElseIf API >= 34 And API <= 35.99 Then

If T >= -20 And T <= 19.99 Then


UC = -0.0005 * T ^ 3 + 0.01 * T ^ 2 - 0.45 * T + 13

Range("B14").Value = UC

ElseIf T >= 20 And T <= 39.99 Then


UC = -0.16 * T + 10
Range("B14").Value = UC

ElseIf T >= 40 And T <= 59.99 Then


UC = -0.07 * T + 6.9
Range("B14").Value = UC

ElseIf T < -20 And T > 60 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC

End If

ElseIf API >= 36 And API <= 37.99 Then

If T >= -10 And T <= 19.99 Then


UC = 0.0075 * T ^ 2 - 0.275 * T + 8.5
Range("B14").Value = UC

ElseIf T >= 20 And T <= 49.99 Then


UC = 0.0015 * T ^ 2 - 0.175 * T + 7.8
Range("B14").Value = UC

ElseIf T < -10 And T > 50 Then


Range("B14").Value = "INGRESE UN VALOR ACORDE"

End If

ElseIf API >= 38 And API <= 39.99 Then

If T >= -20 And T <= 9.99 Then


UC = 0.0085 * T ^ 2 - 0.145 * T + 6.2
Range("B14").Value = UC

ElseIf T >= 10 And T <= 39.99 Then


UC = 0.002 * T ^ 2 - 0.16 * T + 6.2
Range("B14").Value = UC

ElseIf T < -20 And T > 40 Then


UC = "INGRESE UN VALOR ACORDE"
Range("B14").Value = UC
End If

ElseIf API >= 40 And API <= 41.99 Then

If T >= -20 And T <= 0 Then


UC = -0.22 * T + 3.6
Range("B14").Value = UC

ElseIf T >= 0.1 And T <= 10 Then


UC = -0.09 * T + 4.4
Range("B14").Value = UC

ElseIf T < -20 And T > 10.1 Then


UC = ("INGRESE UN VALOR ACORDE")
Range("B14").Value = UC

End If

End If

Dim rugosidadABS, diametro, numreynolds, viscosidadABS,


denominador As Double
Dim factorasumido, factorcalculado, factorfri, factorfrimedio As
Double

viscosidadABS = (UC * PESOES) / 1000


Range("B15").Value = viscosidadABS
MsgBox ("la viscosidad absoluta =" & Round((UC * PESOES) / 1000) &
"cP")

numreynolds = VELOCIDAD * DIAMETROTUBERIAM / (UC / 1000000)


Range("B16").Value = numreynolds

If numreynolds <= 2000 Then


factorfri = 64 / numreynolds
Range("B17").Value = factorfri
End If

If numreynolds > 2000 Then


MsgBox ("ES FLUJO TURBULENTO")
factorfrimedio = 0.01
Do
factorasumido = factorfrimedio
denominador = -2 * Log((MATERIAL / 3.7 * DIAMETROTUBERIAM)) +
(2.51 / numreynolds * ((factorasumido) ^ 0.5))
factorcalculado = 1 / (denominador * denominador)
factorfrimedio = factorcalculado
If Abs(factorcalculado - factorfrimedio) > 0.000001 Then
factorfrimedio = factorcalculado
End If
Loop Until Abs(factorcalculado - factorasumido) < 0.000001
Range("b17").Value = factorcalculado
End If

End Sub

EJERCICIO

Ejecutamos el programa con CTRL+ O

Una vez ejecutado escogemos en metros cbicos o en barriles por dia con 1 o 2

Elegimos en nuestro caso barriles por dia e ingresamos 300000 BPD

Una vez ingresado el caudal el programa nos da el caudal en las unidades que no se
escogieron. Para este caso en metros cbicos

En el siguiente paso escogemos las unidades para el dimetro de la tubera con 1


escogemos en pulgadas y con 2 en metros. Nuestro caso 1(pulgadas).

Inmediatamente se abre la ventana para colocar el valor del dimetro en pulgadas, y este
es de 14 pulgadas.

Ingresado una vez este valor el programa nos da automticamente el valor del rea de la
tubera y tambin nos lo presenta en una ventana.

La siguiente ventana del programa es elegir el material. Escogemos el cobre que es la


opcin 1.

Y automticamente nos indica el valor de la rugosidad de dicho material en una ventana.

Automticamente nos indica el valor de la velocidad en una ventana emergente, y en


unidades de metros por segundo.

El siguiente paso es ingresar el valor del API en el rango establecido caso contrario dara
un mensaje de error. Para nuestro caso API 24.

La siguiente ventana del programa nos pide escoger las unidades de la temperatura, para
nuestro caso es 2 que Farenheit

La temperatura de nuestro problema es 80 F y colocamos el valor en la


ventana.

Con estos valores ingresados el programa nos da el valor de la viscosidad


absoluta en centipoise en una ventana.

Y con todos estos valores tambien nos indica el numero de reynolds y el tipo de
flujo que tendria.

Y asi automaticamente el programa nos indica el valor del factor de friccin y


todos los resultados en conjunto.

CONCLUSIONES
Las variables definidas pueden ser definidas de manera entera o singular
(integer y single).
Para los colores se utiliza las funcin Font.colot con la combinacin de los
colores que son rojo,azul y verde.
Para que aparesca las ventanas emergentes se utiliza el inputbox
El if es una funcin que nos permite seleccionar un valor o funcin que
queramos o la otra dependiendo de la necesidad indicada
La funcin loop until nos permite realizar la funcin hasta que se cumpla la
condicin

RECOMENDACIONES

Para realizar un programa de manera adecuada es necesario conocer las


funciones de visual basic y como ingresarlas
Se debe realizar primero un algoritmo del programa, antes de proceder a la
sintaxis del programa.

BIBLIOGRAFIA

http://dmcritchie.mvps.org/excel/colors.htm
Jaln, J.(2000).Aprenda visual Basic 6.0. Universidad de Navarra.

Potrebbero piacerti anche