Você está na página 1de 136

UNIVERSIDAD DE CASTILLA - LA MANCHA

ESCUELA TCNICA SUPERIOR DE INGENIEROS INDUSTRIALES

CIUDAD REAL

PROYECTO FIN DE CARRERA No 10-12-200927

ANLISIS NUMRICO Y COMPROBACIN EXPERIMENTAL DE LAS ECUACIONES BSICAS EN EL TRANSPORTE DE FLUIDOS

Autor: JOS ENRIQUE CABAAS CEBALLOS

Director de proyecto: GONZALO RODRGUEZ PRIETO Noviembre 2010

CAPTULO 1. OBJETIVOS, ANTECEDENTES Y...

Captulo 1

OBJETIVOS, ANTECEDENTES Y MOTIVACIN

El objetivo de este proyecto es crear un programa capaz de analizar la dependencia de la prdida de carga con otras variables elementales de un uido al recorrer una tubera. Concretamente las variables elementales son la presin, la velocidad del uido, la rugosidad y la longitud de la tubera. Hay varios modelos para obtener esta dependencia en rangos distintos de sus variables, por lo que un primer paso es analizar en qu rangos es aplicable cada uno de ellos y asi se ha hecho en este proyecto. Posteriormente y debido a la complejidad de estos modelos, se desarroll un programa informtico, en el que con el conocimiento de algunas variables bsicas de la instalacin, se calculan rpidamente el resto de parmetros usando los diversos modelos con el nimo de establecer una comparacin entre los clculos y los resultados experimentales. La mayoria de los modelos analticos de dinmica de uidos en una tubera fueron obtenidos durante los siglos XIX y XX, poseyendo una complejidad ya mencionada que favorece su sustitucin por modelos numericos informticos, de mayor complejidad y precisin. Sin embargo, estos nuevos programas son todava muy lentos, por lo que para poder realizar algunos

Jos Enrique Cabaas Ceballos

clculos se recurre todava a estos modelos analticos. Adems de estos modelos, tambin se us el conocido Diagrama de Moody, que consiste en una recopilacin experimental de datos sobre diversas tuberas expresados en funcin de variables adimensionales. De los modelos existentes los estudiados en este proyecto han sido:

Ecuacin de Blasius [1] Ecuacin para rgimen laminar [2] Ecuacin de Colebrook [2] Ecuacin de Prandtl [3] Ecuacin de Von Karman-Nikuradse [3] Diagrama de Moody [4] Ecuacin Explcita [5] Ecuacin de Churchill [6]

Por lo tanto en este proyecto se ha desarrollado un programa informtico que facilita resultados numricos sobre las magnitudes principales del desplazamiento de un uido a lo largo de una tubera y sus clculos han sido validados al compararlos tanto con el diagrama de Moody como con datos experimentales obtenidos con una instalacin de estudio hidrodinmico.

Jos Enrique Cabaas Ceballos

1.1. DISTINCIN ENTRE RGIMEN LAMINAR Y...

1.1.

Distincin entre rgimen laminar y turbulento en uidos.

Cuando entre dos partculas uidas en movimiento existe un gradiente de velocidad, una se mueve ms rpido que la otra, se desarrollan fuerzas de friccin que actan tangencialmente a la direccin a las velocidades. stas fuerzas de friccin tratan de introducir un elemento de rotacin entre las partculas en movimiento, pero simultneamente la viscosidad del uido acta en sentido contrario tratando de impedirlo. Dependiendo del valor relativo de estas fuerzas se pueden producir diferentes estados de ujo. Cuando el gradiente de velocidad es bajo, la fuerza de inercia debida al movimiento es mayor que la de friccin, y las partculas se desplazan pero no rotan, o lo hacen pero con muy poca energa. El resultado nal es un movimiento en el cual las partculas siguen trayectorias denidas y para el que todas las partculas que pasan por un punto en el campo del ujo siguen la misma trayectoria. Este tipo de ujo fue identicado por O. Reynolds [8] y se denomina laminar, queriendo signicar con ello que las partculas se desplazan en forma de capas o lminas. Al aumentar el gradiente de velocidad se incrementa la friccin entre partculas vecinas dentro del uido y estas adquieren una energa de rotacin apreciable. La viscosidad pierde su efecto y debido a la rotacin las partculas cambian de trayectoria. Al pasar de unas trayectorias a otras, las partculas chocan entre s y cambian de rumbo de forma errtica. ste tipo de ujo se denomina turbulento. Sus caractersticas principales son:

Las partculas del uido no se mueven siguiendo trayectorias denidas. La accin de la viscosidad es despreciable. Las partculas del uido poseen energa de rotacin apreciable, y se mueven de forma errtica chocando unas con otras.

Jos Enrique Cabaas Ceballos

1.2. EL EXPERIMENTO DE REYNOLDS. As pues y para resumir la distincin entre los diversos regmenes de ujo, cuando las fuerzas de inercia del uido en movimiento son muy bajas, la viscosidad es la fuerza dominante y el ujo es laminar, pero si predominan las fuerzas de inercia el ujo es turbulento. Existe un parmetro adimensional que relaciona estos dos casos, el nmero de Reynolds. Para nmeros de Reynolds bajos el ujo es laminar, y para valores altos el ujo es turbulento. Experimentalmente se ha encontrado que en tubos de seccin circular cuando el nmero de Reynolds pasa de 2400 se inicia la turbulencia en la zona central del tubo, sin embargo este lmite es muy variable y depende de las condiciones de estabilidad del conjunto. Para nmeros de Reynolds mayores de 4000 el ujo es turbulento. Al descender la velocidad se encuentra que para nmeros de Reynolds menores de 2100 el ujo es siempre laminar y cualquier turbulencia que se produzca es eliminada por la accin de la viscosidad. Por lo tanto el paso de ujo laminar a turbulento es un fenmeno gradual en el que inicialmente se produce turbulencia en la zona central del tubo, donde la velocidad es mayor, pero queda una corona de ujo laminar entre las paredes del tubo y el ncleo central. Al aumentar la velocidad media, el espesor de la corona laminar disminuye gradualmente hasta desaparecer totalmente. Esta ltima condicin se consigue a altas velocidades cuando se obtiene turbulencia total en el ujo. Para un ujo entre placas paralelas, si se toma como dimensin caracterstica la separacin de stas, el nmero de Reynolds mximo que garantiza ujo laminar es 1000. Para canales rectangulares anchos y usando como dimensin caracterstica la profundidad, este lmite es de 500; y para esferas con el dimetro como dimensin caracterstica el lmite es la unidad.

1.2.

El experimento de Reynolds.

Osborne Reynolds en 1883 presentaba el siguiente dilema, en uno de sus extensos trabajos[8]: Aunque las ecuaciones de la hidrodinmica sean aplicables al movimiento laminar, o sea sin remolinos, mostrando que entonces la resistencia es proporcional a la velocidad, no haban arrojado hasta ese entonces ninguna luz sobre las circunstancias de las cuales dicho movimiento

Jos Enrique Cabaas Ceballos

1.2. EL EXPERIMENTO DE REYNOLDS. depende. Y, con todo y que en aos recientes estas ecuaciones se haban aplicado a la teora del torbellino, no se haban aplicado en lo absoluto al movimiento del agua que es una masa de remolinos, movimiento turbulento, ni haban ofrecido una pista para descubrir la causa de que la resistencia a tal movimiento vare como el cuadrado de la velocidad y agregaba: Mientras que, cuando se aplican a olas y al movimiento del agua en tubos capilares, los resultados tericos concuerdan con los experimentales, la teora de la hidrodinmica haba fracasado hasta la fecha en proporcionar la ms leve sugerencia acerca del porqu no logra explicar las leyes de la resistencia encontrada por grandes cuerpos que se mueven a travs del agua con velocidades sensiblemente grandes, o por el agua en tuberas bastante anchas. Como expresan los parrafos anteriores, Reynolds buscaba determinar si el movimiento del agua era laminar o turbulento, y dilucidar las inuencias de los parmetros bsicos del uido en el cambio de un rgimen a otro. Se saba que cuando ms viscoso fuera el uido, menos probable es que el movimiento regular o laminar se altere. Por otro lado tanto la velocidad del uido como el tamao del sistema hidrulico son favorables a la inestabilidad, cuanto ms ancho sea el canal y ms grande la velocidad mayor es la probabilidad de remolinos, una indicacin clara de turbulencia. Utilizando el anlisis dimensional y con las ecuaciones fundamentales del movimiento Reynolds comenz a resolver dichas dudas. A presin constante, pens, en las ecuaciones del movimiento de un uido se equilibra el efecto de la inercia, representado por la energa cintica contenida en la unidad de volumen, U 2 , con el efecto de la viscosidad, representado por el esfuerzo de Newton, U/L, donde U es la velocidad media, la viscosidad del fuido y L una longitud caracterstica de la corriente en estudio (el dimetro del tubo por ejemplo). Ambos parmetros dieron origen al siguiente parmetro adimensional llamado Nmero de Reynolds:

U 2 U L Ef ectos de inercia = = Ef ectos viscosos U/L

(1.1)

Es un parmetro capaz de cuanticar la importancia relativa de las acciones mencionadas: Jos Enrique Cabaas Ceballos 6

1.2. EL EXPERIMENTO DE REYNOLDS. un valor pequeo indica que los efectos viscosos prevalecen, con lo que el movimiento ser laminar, mientras que un valor grande, implica que predominan las fuerzas de inercia, por lo que tendremos un comportamiento turbulento. Debe pues existir un valor intermedio que separe los dos regmenes y que identicar la relacin entre velocidad, viscosidad y longitud caracterstica tal que alterando alguna de ellas, se pase de rgimen laminar a turbulento o viceversa. Entonces se propuso determinar bajo qu condiciones experimentales se produce el movimiento laminar y el turbulento. Dado que este ltimo se caracteriza por la presencia de remolinos, la primera idea que se le ocurri fue visualizar con colorante el movimiento de un uido en una tubera transparente. As, us un sifn de vidrio de 6 mm de dimetro (ABC) lleno de agua con una entrada abocinada en A y una vlvula de control en C e introdujo su brazo corto AB en el agua de un vaso V. Por otro lado, instal un depsito de lquido coloreado D, provisto de un tubo EF, tambin de 6 mm, terminado en una angosta boquilla cnica que penetraba en el centro de la boca A. El suministro de este lquido se controlaba por medio de la pinza P como indica la gura 1.1.

Figura 1.1: Sifn utilizado por Reynolds. Imagen adaptada de [10] Luego de dejar todo el sistema lleno de agua durante varias horas, para asegurarse que Jos Enrique Cabaas Ceballos 7

1.2. EL EXPERIMENTO DE REYNOLDS. todo movimiento interno cesara, se abra poco a poco la pinza P. El lquido coloreado sala de la boquilla F, primero adquiriendo la forma de la llama de una vela, luego alargndose, hasta volverse un lamento muy delgado que al desagar por la apertura de la vlvula C se extenda por todo el sifn. A la vlvula C se le daban aperturas siempre mayores, para que aumentara la velocidad del agua en el sifn, y al mismo tiempo se incrementaba el suministro de colorante, a n de que el lamento se mantuviera visible. Contrariamente a lo previsto, con la mxima abertura de la vlvula, este ltimo se mantena todava perfectamente claro y estable a lo largo de todo el tubo, sin el menor asomo de perturbaciones en la corriente. Se prolong el brazo BC hasta casi tocar el suelo para aumentar aun ms la velocidad pero el lamento no se alteraba en lo ms mnimo. Evidentemente el dimetro de 6 milmetros era demasiado reducido por lo que el ujo no pasaba de rgimen laminar a turbulento. Entonces Reynolds decidi usar un tubo de 25,4 milmetros (una pulgada). Pero hacer un sifn de vidrio de este dimetro no era fcil y se le ocurri una solucin mucho ms simple, ver gura 1.2. sta mocicacin se insert en la instalacin de la gura 1.3.

Figura 1.2: Modicacin del sifn utilizado por Reynolds. Imagen adaptada de [10]

Jos Enrique Cabaas Ceballos

1.2. EL EXPERIMENTO DE REYNOLDS.

Figura 1.3: Esquema de la instalacin utilizada por Reynolds. Imagen adaptada de [8]

Jos Enrique Cabaas Ceballos

1.2. EL EXPERIMENTO DE REYNOLDS. El tanque V, de 1,80 metros de largo, medio de ancho y otro tanto de profundidad, se ve levantado 2 metros por encima del suelo, con el fn de alargar considerablemente el brazo vertical de la tubera de hierro que prolongaba, al otro lado de la pared del tanque, el tubo de vidrio AB donde se realizaba el experimento. Para realizar el experimento, tras asegurarse de que el agua en el tanque V estuviese en reposo se permiti al tinte uir muy despacio, y se abri un poco la vlvula C. El lamento coloreado se estableci como antes, g. 1.4.a, y permaneci muy estable al crecer la velocidad hasta que de repente con una leve apertura de la vlvula, en un punto situado ms o menos medio metro antes del tubo de hierro, el lamento se expandi y se mezcl con el agua, hasta llenar el resto del conducto con una nube coloreada, que a primera vista pareca como un tinte uniforme, g 1.4.b. Un examen ms cuidadoso revel la naturaleza de esa nube: moviendo el ojo siguiendo el avance de la corriente, la expansin del lamento coloreado se vi conformada por un movimiento ondulatorio bien denido, g. 1.4.c. Al cerrar la vlvula de nuevo los remolinos desaparecieron y el lamento se reconstituy.

Figura 1.4: Evolucin del ujo. Imagen adaptada de [8] Por lo tanto se produjeron en un mismo tubo los dos regmenes, laminar y turbulento, con slo variar la velocidad. Pero el mismo resultado deba obtenerse al calentar el agua, y as reducir su viscosidad. El cuarto donde se realizaban los experimentos estaba a una temperatura de 8.3 C, y sta era tambin la temperatura del agua. Con un chorro de vapor Reynolds consigui elevarla a 21 C, reduciendo 1.39 veces la viscosidad. Aumentando poco a poco la Jos Enrique Cabaas Ceballos 10

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO... velocidad, determin en ambos casos el valor crtico con el cual empezaba a transformarse el movimiento laminar y encontr que en el segundo caso la velocidad crtica era 1.45 veces menor que en el primero. Aunque esta concordancia fuera aceptable, Reynolds pens que en el tanque calentado se haban manifestado algunas perturbaciones adicionales debido tanto a la diferencia de temperatura entre el tanque y el medio ambiente como al gradiente de temperaturas en el tanque mismo. Reynolds tambin enfri el agua hasta su mxima densidad, 4 C, agregndole hielo. Comprob que en todos los casos existe una velocidad crtica y que vara en proporcin directa con la viscosidad del ujo. Por otro lado, ensayos realizados con otros dos tubos, de distinto dimetro, permitieron concluir que la velocidad crtica mencionada es inversamente proporcional al dimetro del tubo, conrmando as que el ujo laminar se empieza a alterar en un valor denido por el parmetro U L/. Estos ensayos, realizados con sumo cuidado en muchsimas condiciones distintas, le permitieron conrmar que su previsin era correcta; aun cuando llego a la conclusin de que, para ujo turbulento, la resistencia que el conducto ofrece al avance de la corriente no es proporcional al cuadrado de la velocidad, si no a una potencia de exponente 1,72.

1.3.

Mtodos y ecuaciones del movimiento de un uido en una tubera de seccin circular.

En este apartado se van a comentar los modelos estudiados y empleados en este proyecto. Dichos modelos son relaciones experimentales de las distintas variables en el transporte de uidos en una tubera, de forma que se relaciona el nmero de Reynolds con la longitud, dimetro interno y rugosidad de la tubera y el factor de fricin. Estas variables toman la forma de la ecuacion de Darcy-Weisbach [9]:

Jos Enrique Cabaas Ceballos

11

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO...

hf =

L f v2 2Dg

(1.2)

Donde hf es la prdida de carga, L es la longitud de la tubera en metros, f es el factor de friccin, v es la velocidad del uido, D el dimetro interno de la tubera y por ltimo g es la aceleracin de la gravedad. Esta ecuacin relaciona las magnitudes del transporte del uido a travs de la tubera con la prdida de carga. Hay que destacar que dicha prdida de carga tiene dimensiones de longitud y se calcula en metros si se utiliza el Sistema Internacional. Luego tan slo es necesario hallar una forma del factor de fricin para poder hallar la prdida de carga. Para ello se emplean diversos modelos que se especican a continuacin.

1.3.1.

Ecuacin de Blasius.

Blasius en 1911 propone una expresin en la que el factor de friccin viene dado slo como una funcin del nmero de Reynolds [1]. Dicha expresin es vlida para tubos lisos, en los que la rugosidad relativa
r,

(la relacin entre el dimetro y la rugosidad media del tubo) no afecta

al ujo al tapar la subcapa laminar las irregularidades de la tubera. Se puede expresar de la siguiente manera:

f = 0,3164 Re0,25 ,

(1.3)

y como se puede observar es un modelo muy simplicado en el que el factor de friccin slo depende del nmero de Reynolds.

Jos Enrique Cabaas Ceballos

12

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO...

1.3.2.

Ecuacin para rgimen laminar.

Esta ecuacin es la ms sencilla de todas y la nica que se puede deducir de forma analtica, pero slo es vlida en rgimen laminar, es decir, con nmeros de Reynolds por debajo de 4000, si el sistema hidrulico es una tubera de seccin circular. Se escribe como:

f=

64 . Re

(1.4)

1.3.3.

Ecuacin de Colebrook-White.

Esta ecuacin es una de las ms precisas para el clculo del factor de friccin y en un rango ms amplio, pero tiene la desventaja de su complejidad al ser una funcin implcita. Debe resolverse de forma iterativa hasta alcanzar una cota de error aceptable, con el coste computacional y tiempo que ello conlleva. Fue propuesta por Colebrook y White en 1939 [2] y es la ms utilizada por ser la ms precisa y universal. Dicha frmula es:

1 = 2,0 log10 f

3,7065

2,5226 . Re f

(1.5)

1.3.4.

Ecuacin de Prandtl.

La ecuacin de Prandtl es ms sencilla que la anterior, pero a costa de disminuir su rango de validez al eliminar su dependencia con la rugosidad relativa. Fue propuesto en 1930, ampliando el rango de validez del modelo de Blausius [3]. Su forma es la siguiente:

Jos Enrique Cabaas Ceballos

13

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO...

1 = 2,0 log10 f

Re f . 2, 51

(1.6)

1.3.5.

Ecuacin de von Karman-Nikuradse.

Este modelo es aun ms sencillo, ya que como se puede observar no depende del nmero de Reynolds, slo de la rugosidad relativa de la tubera. Fue propuesto en 1933 para poder utilizar una expresin similar a la ecuacin de Prandtl con tuberas rugosas [3]. y su forma es:

1 = 2,0 log10 f

3, 71

(1.7)

1.3.6.

Diagrama de Moody.

Todas las expresiones y ecuaciones anteriores presentan inconvenientes que hacen gravoso su uso, incluso con los avances en computacion y clculo actuales. En 1944 el ingeniero norteamericano Lewis F. Moody trat de solventar este problema con la bsqueda experimental de un diagrama en el que el factor de friccin se viera reejado en funcin tanto del nmero de Reynolds como de la rugosidad relativa de la tubera [4]. El diagrama obtenido, llamado Diagrama de Moody en su nombre, g. 1.5, permanece en uso actualmente. Habitualmente se emplea el Diagrama de Moody para obtener una solucin inicial, que aunque no es lo sucientemente precisa para utilizarla como solucin nal, es vlida para poder realizar iteraciones con la ecuacion de Colebrook-White y llegar rpidamente a la solucin nal con la precisin requerida.

Jos Enrique Cabaas Ceballos

14

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO...

Figura 1.5: Diagrama de Moody. Imagen adaptada de [7]

1.3.7.

Ecuacin Explcita.

Esta ecuacin es uno de los mtodos ms sencillos para solucionar la dependencia de la prdida de carga con la rugosidad y el nmero de Reynolds. Su origen est en realizar una aproximacin numerica del diagrama de Moody, que es vlida en un rango muy amplio de nmeros de Reynolds gracias a la gran cantidad de trminos empleados. Los detalles del procedimiento estn detallados en [5] y su expresin es la siguiente:

1 r = 2,0 log10 3,7065 f 5,0272 4,567 r log10 log10 Re 3,827 Re

0,9924 r

7,7918

5,3326 208,815 + Re

0,9345

, (1.8)

donde Re es el nmero de Reynolds y Jos Enrique Cabaas Ceballos

es la rugosidad relativa de la tubera como en 15

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO... casos anteriores. Como se puede observar a pesar de ser una ecuacin explcita lo que facilita su resolucin de una forma clara , sigue resultando una ecuacin muy compleja.

1.3.8.

Ecuacin de Churchill.

Este modelo fue propuesto por S. W. Churchill en 1977 [6]. Este modelo abarca tanto el rgimen turbulento como el laminar pero requiere una capacidad de clculo muy importante, por lo que es complicado conseguir la precisin necesaria en los clculos implementndolo en un programa de clculo convencional ya que se cometen errores de redondeo y truncado, aportando estas soluciones con un error superior al 50 % por lo que la solucin obtenida no es vlida. Sin embargo utilizando un programa de clculo avanzado como Matlab, se obtienen resultados precisos. Su frmula es la siguiente:

f =8

8 Re

12

1 (A + B )1,5

1/12

(1.9)

donde A y B toman la forma:

A=

2,457 log B=

1 7 0,9 ( Re ) + 0,27 37530 Re


16

16

,
r

(1.10)

Como se aprecia clramente este metodo presenta importantes problemas de clculo debido a los redondeos ya que opera con valores muy prximos a cero. En el clculo del factor de fricin trabaja con valores del orden de (1 104 )12 o lo que es lo mismo 1 1048 . Debido a esta dicultad de operacin, no se ha podido implementar en el programa informtico, aunque se ha estudiado el mtodo mediante el programa Matlab, y se han observado resultados muy similares al modelo de Colebrook para el rgimen turbulento. En el rgimen laminar no se Jos Enrique Cabaas Ceballos 16

1.3. MTODOS Y ECUACIONES DEL MOVIMIENTO... han obtenido resultados concluyentes, debido a que no se han podido conseguir resultados experimentales en esta zona por limitaciones en la instalacin experimental.

Jos Enrique Cabaas Ceballos

17

CAPTULO 2. PROCEDIMIENTO EXPERIMENTAL

Captulo 2

PROCEDIMIENTO EXPERIMENTAL

En este captulo se describe la instalacin experimental y el procedimiento para la toma de medidas necesarias para la evaluacin experimental de la expresiones previamente presentadas. La instalacin experimental se describe en primer lugar, y despus de denir los principales puntos del mtodo para la adquisicin y toma de datos, el captulo naliza con las expresiones empleadas en el clculo del factor de friccin a partor de los datos adquiridos.

2.1.

Instalacin Experimental.

La instalacin experimental est compuesta por una serie de elementos que permiten la circulacin del uido, en este caso agua, de forma controlada a travs de ella. Tambin posee la posibilidad de medir parmetros importantes tales como el caudal y la presin relativa entre distintos puntos de la misma. Esta ltima es equivalente a la caida de presin debida al rozamiento o prdida de carga. As la instalacin posee un sistema experimental anlogo al de los experimentos de Reynolds. Esta instalacin se utiliza para la realizacin de prcticas de diversas asignaturas relacionadas con la mecnica de uidos y se encuentra situada en el laboratorio de Mecnica de Fluidos de la E.T.S.I.I. de Ciudad Real.

Jos Enrique Cabaas Ceballos

18

2.1. INSTALACIN EXPERIMENTAL. La instalacin esta compuesta por los siguientes componentes:

Depsito de agua. Tiene dos funcines, almacenar y recoger el agua utilizada en el experimento de forma que se pueda cuanticar el caudal que atraviesa la instalacin y adems evitar el derroche de agua ya que permite la recirculacin. Bomba hidrulica. Su misin es transportar el agua a travs de la instalacin. La absorbe del depsito y la expulsa a travs de una tubera que recorre la instalacin experimental. Vlvulas. Estos componentes permiten regular el caudal que atraviesa la instalacin, llegando incluso a cortarlo si se encuentra totalmente cerrada. Tubera. Conduce el agua desde la bomba, recorre toda la instalacin pasando por las vlvulas y la retorna al depsito de nuevo. Medidor de presin. Este componente mide la cada de presin entre dos puntos de la tubera de manera que la medida es una presin relativa. Dicha caida de presin es equivalente a la prdida de carga debida al rozamiento del uido con la tubera. Desage. Su funcin es trasladar el agua de la tubera al depsito para poder ser reutilizada.

Su esquema es el de la gura 2.1, donde P es el medidor de presin que mide la presin relativa entre los puntos P1 y P2 separados entre s una distancia L de 0,915 metros. B se corresponde a la bomba hidrulica, D es el depsito de agua y por ltimo V1 es la vlvula sobre la que se acta para regular el caudal.

Jos Enrique Cabaas Ceballos

19

2.2. FUNCIONAMIENTO.

Figura 2.1: Esquema de la instalacin. Imagen adaptada de [9]

2.2.

Funcionamiento.

Antes de la puesta en marcha, se deben inspeccionar algunos elementos para asegurar su correcto funcionamiento y precisin en las medidas efectuadas:

Debemos asegurarnos de que al menos una de las vlvulas est abierta para evitar daos a la bomba y a la instalacin por sobrepresiones. El nivel del depsito de agua debe encontrarse por encima de un nivel mnimo para asegurar un caudal constante y evitar la entrada de aire al sistema. Se debe medir la temperatura ambiente ya que esto afecta directamente a la viscosidad del agua y por tanto a los resultados obtenidos.

Una vez hechas las comprobaciones y medidas anteriores podemos poner en marcha la bomba. Es conveniente esperar unos segundos para alcanzar el rgimen estacionario y a continuacin se puede comenzar con la toma de medidas. Jos Enrique Cabaas Ceballos 20

2.3. TOMA DE MEDIDAS. Los parmetros que se pueden medir entre dos puntos de inters, en nuestro caso dos puntos de una tubera separados en un metro son el caudal de agua que lleva la tubera y la presin relativa entre esos dos puntos. El caudal se mide smplemente mediante un nivel y cronometrando el tiempo que transcurre al cambiar dicho nivel entre diferentes marcas graduadas que se corresponden con un volumen expresado en litros. Por tanto, el caudal se calcula como la relacin entre el volumen de lquido desplazado y el tiempo invertido por la bomba para moverlo:

Q[l/s] =

V [l/s] t

(2.1)

La presin relativa es medida por su relacin con la altura de columna de agua, una conectada a un punto de la instalacin y otra conectada a otro. Esta presin es directamente proporcional a la diferencia de alturas entre las dos columnas, por lo que ser la cantidad a emplear dirctamente como prdida de carga sin realizar ninguna transformacin posterior. Dado que los datos de viscosidad, dimetro interno de la tubera, caudal (volumen desplazado y tiempo invertido) y prdida de carga son datos conocidos, se pueden calcular el nmero de Reynolds, el factor de friccin, la velocidad del uido y la rugosidad efectiva analticamente, usando las ecuaciones correspondientes que relacionan unas variables con las otras. En el procedimiento de toma de datos, las medidas se efectuarn repetidas veces para mejorar la precisin de las mismas y poder tener una cota estadstica del error cometido.

2.3.

Toma de medidas.

Habiendo hecho las comprobaciones necesarias ponemos en funcionamiento la bomba y esperamos el tiempo suciente para que se estabilice el ujo, una vez que se ha alcanzado el rgimen estacionario, podemos comenzar con la toma de datos. De los datos necesarios, el Jos Enrique Cabaas Ceballos 21

2.4. CLCULO DE LOS PARMETROS. dimetro de la tubera es un parmetro conocido y de valor constante e igual a 13,6 mm. La temperatura se puede medir fcilmente mediante un termmetro de laboratorio y tambin es un parmetro invariable. En el momento de la adquisin de datos, se consider un valor de 25o C . La densidad del uido, en nuestro caso agua, tambin se trata de un dato conocido y constante, con un valor de 1000 kg/m3 . Debido a que la temperatura y la densidad son constantes, la viscosidad tambien lo es y su valor es de 1,001 106 m2 /s. Con estos datos ya se puede proceder a medir el caudal y la cada de presin en la seccin de la tubera que hemos escogido para la toma de datos experimentales. Esta toma de datos se hace de la siguiente forma: Una vez alcanzado el rgimen estacionario, se pone el cronmetro a cero e interrumpiendo el paso del agua esperamos a que el nivel del depsito alcance la linea cero de la escala graduada. Ponemos en marcha el cronmetro, y lo paramos cuando el nivel del depsito alcance la siguiente marca graduada de medida del volumen, as mismo anotamos la cada de presin inicial y nal. Repetiremos la toma de medidas aumentando en cada medida una lnea de la escala hasta llegar a la ltima linea de la escala graduada del depsito. Con este procedimiento, obtenemos la primera serie de medidas, la cual debemos repetir varias veces para poder hacer un anlisis estadstico del error. Este procedimiento debe ser repetido para diversas posiciones de la vlvula que regula el caudal que circula por el sistema, de forma que obtendremos medidas para distintos caudales. De esta forma se obtiene una nube de puntos que se puede analizar para comprobar la dependencia del caudal con la perdida de carga mediante el nmero de Reynolds, la viscosidad, el dimetro y la rugosidad de la tubera.

2.4.

Clculo de los parmetros.

Como la prdida de carga es un dato conocido porque lo hemos medido y asociado a un caudal determinado, se puede calcular el factor de friccin empleando la ecuacin de DarcyWeisbach, expresin que proviene de realizar un anlisis dimensional sobre los parmetros de los que depende la prdida de carga [2]:

Jos Enrique Cabaas Ceballos

22

2.4. CLCULO DE LOS PARMETROS.

hf [m] =

f LV 2 [m3 /s2 ] , 2Dg [m2 /s2 ]

(2.2)

donde hf es la prdida de carga en metros, f corresponde al factor de fricin que es un parmetro adimensional, g a la aceleracin de la gravedad que viene expresada en (m/s2 ), D y L corresponden al dimetro y longitud de la tubera respectivamente expresados en metros, y por ltimo V es la velocidad del uido (m/s). Despejando el factor de fricin, podemos observar su carcter adimensional y obtenerlo en funcin de las medidas realizadas anteriormente

f [adimensional] =

2Dghf [m3 /s2 ] . LV 2 [m3 /s2 ]

(2.3)

Para calcular la rugosidad de la tubera, en este proyecto se utiliza la ecuacin de ColebrookWhite:

1 = 2,0 log10 f

3,7065

2,5226 . Re f

(2.4)

Como observamos esta ecuacin es una funcin implcita en el factor de friccin, sin embargo se convierte en una funcin explcita al tener como nica incgnita la rugosidad. Operando y despejando la rugosidad absoluta obtenemos:

= 3,7065 D 10

1 f

2,5226 , Re f

(2.5)

con la rugosidad absoluta de la tubera expresada en metros. Si se pretende calcular la rugosidad relativa para poder emplear el diagrama de Moody y hacer comprobaciones, smplemente hay que dividir entre la longitud caracterstica del sistema, es decir, el dimetro de la tubera en metros tambin para ser dimensionalmente consistente:

Jos Enrique Cabaas Ceballos

23

2.4. CLCULO DE LOS PARMETROS.

r [adimensional ]

[m] . D [m]

(2.6)

Por lo que calculado directamente se obtiene:


r

= 3,7065 10

1 f

2,5226 . Re f

(2.7)

Jos Enrique Cabaas Ceballos

24

CAPTULO 3. RESULTADOS

Captulo 3

RESULTADOS

En este captulo se presentan los resultados obtenidos mediando el mtodo descrito en el captulo anterior y se realiza una comprobacin entre ellos y el diagrama de Moody, concluyendo que los datos se ajustan de manera precisa al diagrama, por lo tanto se puede comparar el resultado obtenido experimentalmente con las diversas ecuaciones presentadas para poder apreciar cul se ajusta mejor a la realidad, lo que se realiza en la ltima seccin del captulo.

3.1.

Comparacin entre los resultados experimentales y el diagrama de Moody.

Una vez realizados los experimentos se ha procedido a su tratamiento estadstico, donde se calculan la media y el error cuadrtico medio, obteniendo los resultados presentados en la tabla 3.1.

Jos Enrique Cabaas Ceballos

25

3.1. COMPARACIN ENTRE LOS RESULTADOS... Los parmetros de la instalacin y el lquido empleado son los siguientes, como ya se haba comentado en el captulo anterior:

Agua: Viscosidad = 1.001106 m2 /s Dimetro interno de la tubera = 13,6 mm Longitud de la tubera = 915 mm

Una vez que se ha calculado tanto el factor de fricin como el nmero de Reynolds, se puede proceder a su representacin grca para su mejor comprensin y poder compararlos con el diagrama de Moody que debe predecir los resultados obtenidos. Los datos obtenidos con la instalacin experimental del laboratorio cubren un reducido rango experimental, g. 3.1, por lo que slo se consigue analizar una pequea parte del diagrama de Moody; sta lnea roja representa los puntos experimentales en la gura 3.2.

Caudal medio (l/s) 0,300 0,003 0,283 0,001 0,263 0,001 0,220 0,002 0,165 0,001 0,114 0,001 0,097 0,001 0,090 0,001

Prdida Velocidad de carga (mm) 380 2 340 2 300 2 220 2 130 2 68 3 50 2 44 2 2,07 1,95 1,81 1,52 1,13 0,78 0,66 0,62 (m/s)

Nmero de

Factor Rugosidad de relativa

Reynolds fricin 28.266 26.521 24.627 20.697 15.434 10.711 9.088 8.437 0,0257 0,0262 0,0268 0,0279 0,0297 0,0320 0,0333 0,0334 0,0008 0,0008 0,0010 0,0010 0,0012 0,0011 0,0012 0,0008

Tabla 3.1: Resultados experimentales Podemos observar como la instalacin experimental del laboratorio tiene unas posibilidades muy reducidas de accin y slo se consigue analizar una pequea parte del diagrama de Jos Enrique Cabaas Ceballos 26

3.1. COMPARACIN ENTRE LOS RESULTADOS...

Figura 3.1: Factor de friccin obtenido experimentalmente frente a nmero de Reynolds.

Jos Enrique Cabaas Ceballos

27

3.1. COMPARACIN ENTRE LOS RESULTADOS... Moody, realzada por el rectngulo rojo de la gura 3.2.

Figura 3.2: Zona estudiada del diagrama de Moody. Se observa clramente cmo los datos experimentales y los predichos por el diagrama de Moody se corresponden con una diferencia muy reducida, del orden del 10 %. As podemos armar que la rugosidad relativa de la tubera posee un lmite superior de 0.001 puesto que estos son los datos que se corresponden con el diagrama de Moody, y su correspondecia con la rugosidad absoluta se calcula fcilmente ya que el dimetro de la tubera es un parmetro conocido. La rugosidad absoluta obtenida es 0,013 0,002 mm. Adems se puede ver cmo la rugosidad se mantiene constante dentro del margen de error, ver g. 3.3, excepto para nmeros de Reynolds bajos, donde se aprecia un pico en la grca. Este resultado es lgico ya que nos encontramos en la zona de transicin entre los regmenes laminar y turbulento, regin para la cual los datos experimentales no son concluyentes debido a la alta dispersin de los mismos y a la dicultad de hallar puntos en esta regin de transicin.

Jos Enrique Cabaas Ceballos

28

3.1. COMPARACIN ENTRE LOS RESULTADOS...

Figura 3.3: Rugosidad relativa obtenida experimentalmente frente al nmero de Reynolds utilizando el modelo de Colebrook.

Jos Enrique Cabaas Ceballos

29

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES...

3.2.

Discusin de las diversas ecuaciones presentadas y su validez.

En esta seccin se compararn grcamente los distintos modelos mencionados anteriormente con los resultados experimentales para poder comprobar el rango de validez de dichos modelos. En la gura 3.4 se graca el factor de friccin frente al nmero de Reynolds para distintas rugosidades. Como se puede apreciar, a medida que el nmero de Reynolds aumenta el factor de friccin disminuye. Esto sucede hasta un valor a partir del cual se mantiene constante, cuando el ujo est totalmente dominado por la rugosidad. Adems se observa como a medida que hacemos que la tubera sea ms lisa, es decir menos rugosa, el factor de friccin se convierte en un valor constante para un nmero de Reynolds cada vez mayor. As, siguiendo una de las curvas del factor de friccin, para bajos nmeros de Reynolds, el factor de friccin es elevado, y a medida que aumenta la turbulencia, es decir el nmero de Reynolds se incrementa, el factor de friccin disminuye hasta alcanzar un valor constante e independiente del nmero de Reynolds. Y este factor de fricin constante depende de la rugosidad de la tubera como ya se haba dicho, ya que para rugosidades altas, es ms grande y se alcanza a nmeros de Reynolds ms bajos.

3.2.1.

Tubera lisa.

En una tubera lisa, el ujo necesita un nmero de Reynolds muy alto para desarrollar completamente la turbulencia, g. 3.5. Analizando los distintos modelos, se ve que la ecuacin de Von Karman-Nikuradse no es vlida en este caso ya que slo se puede aplicar para el ujo turbulento totalmente desarrollado, donde el factor de friccin es independiente del nmero de Reynolds, situacin muy difcil de alcanzar en una tubera lisa. Jos Enrique Cabaas Ceballos 30

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES...

Figura 3.4: Dependencia del factor de friccin con la rugosidad

Jos Enrique Cabaas Ceballos

31

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES... Por otro lado, tanto las ecuaciones explcita,como las de Colebrook y Prandtl s modelizan con precisin el factor de friccin en estas condiciones. Comparando la expresin del rgimen laminar con el resto de modelos, se observan discrepancias signicativas. Esto es debido a que este modelo es especco para rgimen laminar, mientras que los otros son ms generales lo que en estas condiciones de ujo les lleva a cometer errores importantes debido a la dicultad de integrar en un nico modelo el amplio rango de nmeros de Reynolds deseado.

Figura 3.5: Factor de friccin para tubera lisa. Rugosidad relativa 1 108

3.2.2.

Rugosidad relativa de 1 105 .

En este caso nos encontramos con una rugosidad muy pequea, para la cual el ujo turbulento se desarrolla completamente a partir de un nmero de Reynolds en torno a 106 . A partir de este punto el factor de friccin es independiente del nmero de Reynols, g. 3.6. Por otro lado se observa como los modelos de Prandtl, Colebrook y el explcito son coincidentes y una Jos Enrique Cabaas Ceballos 32

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES... vez desarrollado completamente el ujo turbulento, estos modelos tienden asintticamente al modelo de von Karman-Nikuradse. A partir del mismo nmero de Reynolds en el que el ujo turbulento est completamente desarrollado, el modelo de Prandtl deja de ser vlido debido a que no depende del nmero de Reynolds ni de la rugosidad de la tubera.

Figura 3.6: Factor de friccin con una rugosidad relativa de 1 105

3.2.3.

Rugosidad relativa de 1 103 .

La rugosidad sigue tomando importancia a medida que aumenta, lo cual pone a prueba la validez de los modelos. El modelo de Prandtl slo es vlido en la zona laminar, mientras que el de von Karman-Nikuradse se puede emplear en la zona turbulenta una vez que se ha desarrollado completamente el ujo. Por otro lado podemos decir que los modelos de Colebrook y el Explcito tienden asintticamente por los extremos a los modelos de Prandtl y von Karman-Nikuradse, como indica la gura 3.7. Jos Enrique Cabaas Ceballos 33

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES...

Figura 3.7: Factor de friccin con una rugosidad relativa de 1 103

Jos Enrique Cabaas Ceballos

34

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES...

3.2.4.

Rugosidad relativa de 0,01.

En este caso la rugosidad representa un orden de magnitud de un 1 % del dimetro de la tubera. El modelo de Prandtl se puede descartar ya que no es vlido con la excepcion de nmeros de Reynolds realmente pequeos por debajo de 300, g. 3.8, los cuales son complicados de conseguir en las condiciones habituales en el transporte de uidos. El resto de modelos son coincidentes una vez que se ha desarrollado completamente el ujo, en torno a un nmero de Reynolds de 5 104 .

Figura 3.8: Factor de friccin con una rugosidad relativa de 0,01

3.2.5.

Rugosidad relativa de 0,05.

En este caso la rugosidad es macroscpica, apreciable a simple vista. El rgimen turbulento se desarrolla completamente para valores de nmero de Reynolds muy bajos, del orden de 104 . Jos Enrique Cabaas Ceballos 35

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES... El modelo de Prandtl no es vlido ya que fue pensado para tuberas lisas y la rugosidad es un parmetro con gran importancia en este caso, ver g. 3.9. El modelo de von Karman-Nikuradse toma validez una vez desarrollada la turbulencia, como siempre, tendiendo asintticamente a ste ltimo tanto el modelo Explcito como el de Colebrook.

Figura 3.9: Factor de friccin si la rugosidad relativa es de 0,05

3.2.6.

Rugosidad relativa de 1.

Este es un caso hipottico en el cual la rugosidad es del mismo orden de magnitud que el dimetro de la tubera y se aprecia clramente como el modelo de Prandtl no es vlido. Sin embargo, el de von Karman-Nikuradse tiende asintticamente desde un principio al de Colebrook y al Explcito, g. 3.10. Al aumentar la rugosidad el rgimen turbulento se desarrolla completamente para nmeros de Reynolds muy bajos, del orden de 103 .

Jos Enrique Cabaas Ceballos

36

3.2. DISCUSIN DE LAS DIVERSAS ECUACIONES...

Figura 3.10: Factor de friccin con rugosidad relativa de 1

Jos Enrique Cabaas Ceballos

37

3.3. EXPLICACIN DEL PROGRAMA.

3.3.

Explicacin del programa.

El programa informtico se ha desarrollado a partir de las necesidades demandadas: interface visual, sencillez de manejo, empleo de bases de datos con las caractersticas de los uidos y materiales de las tuberas, exibilidad al operar con los datos, presentacin de resultados claros, empleo de distintos modelos de transporte de uidos y comparacin entre los resultados. Lo primero que se program fue la forma de resolver un sistema de ecuaciones capaz de proporcionar los valores de los parmetros de la instalacin de forma que sean cuales quiera tanto los datos conocidos como las incognitas, con la excepcin de la rugosidad que debe ser un parmetro conocido puesto que la nica forma de calcularla es resolver el modelo de Colebrook teniendo como nica incgnita la rugosidad una vez conocidos todos los datos y calculada la prdida de carga y el factor de fricin. Por otro lado, se busc dotar al programa de exibilidad puesto que aunque existe una base de datos de la cual se leen los datos de viscosidad de diferentes uidos y las rugosidades de los distintos materiales en las tuberas, es posible emplear otros parmetros. La exibilidad tambin se hace notable al poder elegir cualquier combinacin de variables para ser incgnitas o parmetros conocidos para calcular los restantes. Por este motivo es necesario desplegar un rbol de variables para tener en cuenta todas las combinaciones posibles y posteriormente, mediante una serie de if anidados se programa su resolucin en funcin de las incgnitas y los parmetros conocidos. Cmo es lgico, algunas combinaciones de variables no son posibles, por lo que el programa advertir este hecho enviando mensajes de error tales como datos insucientes o sistema incompatible. Los resultados del factor de friccin se redondean a 6 cifras signicativas con el objetivo de ser ms manejables. As mismo se presentan los resultados de cada modelo por separado para poder compararlos y posteriormente se elabora una media ponderada de ellos para presentar un factor de fricin medio. La prdida de carga se calcula mediante la ecuacin de DarcyWeisbach empleando este factor de friccin medio. Jos Enrique Cabaas Ceballos 38

3.4. CLCULOS MEDIANTE MATLAB. El programa se ha escrito en Java y su cdigo se presenta en el Anexo B. Del mismo modo se ha elaborado un manual de usuario presentado en el Anexo A.

3.4.

Clculos mediante Matlab.

Los clculos del factor de friccin con diversas rugosidades y los clculos estadsticos presentados en las secciones precedentes se han realizado con el programa Matlab y estan presentados en el Anexo C. Una vez obtenidos los datos experimentales se analizan estadsticamente, calculando la media, el error cuadrtico medio y la desviacin tpica para otener una dispersin del error de las medidas. A su vez se calculan el resto de parmetros y se representan grcamente para su mejor compresin y anlisis. De esta forma se puede representar el factor de friccin y la rugosidad frente al nmero de Reynolds y comparar los resultados con el diagrama de Moody. Por otro lado, se representan grcamente los distintos modelos que explican el comportamiento del transporte de uidos a lo largo de una tubera y se analiza lo que ocurre variando el nmero de Reynolds y la rugosidad de forma independiente, es decir se obtienen curvas de nivel de estas funciones. De esta forma se puede analizar el comportamiento del uido manteniendo todas las variables de las que depende el transporte a lo largo de la tubera constantes y variando slo una, la variable objeto de estudio. Esto se realiza de dos formas, mediante la representacin grca de todos los modelos frente al nmero de Reynolds para una misma rugosidad y analizando un mtodo en todo el rango de nmeros de Reynolds, pero representando grcamente distintas rugosidades, como ya se ha hecho en prrafos anteriores.

Jos Enrique Cabaas Ceballos

39

CAPTULO 4. CONCLUSIONES

Captulo 4

CONCLUSIONES

El transporte de uidos hasta el siglo XIX era un procedimiento totalmente artesanal. Se saba de la existencia de turbulencias, prdidas de carga, etc, pero no se conocan sus causas ni la forma de cuanticarlas, por lo que haba que recurrir a la experiencia y utilizar amplios mrgenes de seguridad en las instalaciones hidrulicas. Los experimentos de Reynolds, Prandtl, Colebrook, White y muchos otros, esclarecieron la compleja naturaleza de estos fenmenos. A pesar de haber conseguido desarrollar unos modelos que predicen el comportamiento del uido bajo diversas condiciones de ujo para poder aplicarlos, hay que tener en cuenta la variabilidad de las medidas, y que estos modelos no dejan de ser aproximaciones a la compleja realidad de comportamiento de los uidos en el transporte, por tanto cometen un error alrededor del 20 % en muchas ocaciones. Los modelos estudiados aproximan el comportamiendo del uido, de forma que el factor de friccin disminuye a medida que aumenta el nmero de Reynolds, hasta alcanzar un valor constante e independiente del nmero de Reynolds un vez desarrollado completamente el rgimen turbulento. Adems, este valor de nmero de Reynolds a partir del cual el factor de friccin permanece constante depende de la rugosidad de la tubera, alcanzando valores mayores a medida que la rugosidad disminuye, es decir la tubera es ms lisa. Todo esto se

Jos Enrique Cabaas Ceballos

40

ha gracado para poder comparar visualmente dichos modelos y comprobar el rango de aplicacin de los mismos. Adems se han ajustado a la misma escala que el diagrama de Moody para tomarlo como referencia. Los experimentos realizados en el laboratorio se corresponden con estos modelos y su precisin. Y, a pesar de intentar mantener todo invariable y esperar el tiempo necesario para alcanzar el rgimen estacionario en el sistema al realizar las mediciones, se observa como hay uctuaciones en los parmetros del sistema. El caudal proporcionado por la bomba oscila debido a oscilaciones en la red elctrica y a que estamos utilizando un depsito de agua de pequeas dimensiones, por lo cual a medida que la bomba extrae agua del sistema, la presin a la entrada de la bomba disminuye. En la modelizacin de la tubera se ha utilizado como hiptesis que su rugosidad es contnua, aleatoria y estable, pero se conoce la existencia de cal y otras sustancias que se adhieren a las paredes de la misma aadiendo rugosidad al sistema que no cumplen estas condiciones. La temperatura tampoco es un factor que permanece constante ya que a medida que la bomba trabaja, hay rozamiento y por tanto se genera calor, el cual es absorbido por el agua aumentando su temperatura. Esta variacin afecta la densidad y viscosidad del uido. Las medidas a su vez tienen una variabilidad intrnseca al ser observadas en escalas graduadas con pequeas oscilaciones y por tanto estn sujetas al error cometido por el observador. Pero a pesar de todas las fuentes de error y variacin en los parmetros medidos, con los resultados obtenidos y una vez tratados estadsticamente, al compararlos con el diagrama de Moody, la referencia en este proyecto, se comete un error por debajo del 10 %. Una vez analizados los modelos, y comparados con los resultados experimentales, se procede a la elaboracin del programa informtico. En l se ponderan los resultados de dichos modelos en funcin de su rango de aplicacin, de tal forma que se obtenga el mejor resultado posible. En este proceso se llega incluso a desechar puntualmente alguno de los modelos a la hora de calcular los parmetros si fuera necesario por encontrarse fuera del rango de aplicacin con las variables dadas. Dicho programa, conocidos algunos datos de la instalacin, calcula el resto de los parmetros, asi como el factor de fricin que predice cada modelo, el Jos Enrique Cabaas Ceballos 41

factor de friccin ponderado y la perdida de carga del sistema, dando avisos en caso de errores puntuales.

Figura 4.1: Resultados experimentales Como se aprecia en la gura 4.1, los modelos de Colebrook y el Explcito son coincidentes entre s y reproducen los datos experimentales elmente en el rango de nmeros de Reynolds que permite estudiar la instalacion hidralica del laboratorio. El modelo de Prandtl tambin se ajusta a los resultados obtenidos pero comete un error mayor que los mtodos anteriores, por lo que este modelo se desecha a la hora de implementar el programa informtico. El modelo para rgimen laminar se encuentra fuera de rango, por lo que no es vlido y es desechado del mismo modo y el modelo de von Karman-Nikuradse vemos que no es aplicable en este rango de nmeros de Reynolds, aunque se ha estudiado que tiende asintticamente a los modelos anteriores para nmeros de Reynolds superiores a 107 . El programa se ha diseado proporcionando cierta exibilidad a la hora de introducir los

Jos Enrique Cabaas Ceballos

42

datos dado que se eligen mediante una lista desplegable extraida de una base de datos. sta base de datos puede modicarse fcilmente en cualquier momento mediante un programa de edicin de texto plano, vase el manual en los apndices. Del mismo modo y a pesar de haber seleccionado alguna de las opciones de la lista desplegable, se pueden cambiar los valores predeterminados para obtener valores de la prdida de carga mas adecuados. Debido a la gran complejidad de los clculos por ser modelos implcitos, se decidi la realizacin del programa informatico para aprovechar la gran capacidad de calculo de cualquier ordenador de sobremesa convencional. Comparando la resolucin de forma tradicional de estos problemas con la resolucin mediante el programa informtico, se observa como se gana en velocidad, precisin del clculo al poder utilizar varios modelos y estar seleccionados segun el rango de aplicacin de los mismos y abilidad al cometer menos errores de clculo que de forma manual. Adems es fcil representar grcamente la solucin obtenida de forma que se pueden analizar los resultados obtenidos y encontrar los posibles errores visualmente.

Jos Enrique Cabaas Ceballos

43

BIBLIOGRAFA

Bibliografa

[1] V. L. Streeter, Mecnica de los uidos, McGraw-Hill (2004). [2] F. White, Mecnica de uidos, McGraw-Hill (2001). [3] Langelandsvik, An evaluation of the friction factor formula based on operational data. Presentado en la conferencia PSIG 2005 (2005). [4] L. F. Moody, Friction factor for pipe ow. Trans. Am. Soc. Mech. Engrs vol. 66, p. 671 (1944). [5] A. Monzn, Short communication: improved explicit equations for estimation of the friction factor in rough and smooth pipes. Chemical Engineering Journal vol. 86 pp. 369-374 (2002). [6] H. M. Hathoot, Unsteady ow through a pipe connecting tow reservoirs. Research Bulletin No. 80, Agric. Res. Center, King Saud Univ., pp. 5-25 (1999). [7] V. T. Chow, Hidrulica de los canales abiertos, McGraw-Hill (2004). [8] O. Reynolds, An experimental investigation of the circumstances which determine whether the motion of water in parallel channels shall be direct or sinuous and of the law of resistance in parallel channels. Royal Society Phil. Trans. vol. 40 is.29 pp.56 (1883). [9] Asociacin Tcnica Espaola de Climatizacin y Refrigeracin (ATECYR), Gua tcnica de seleccin de equipos de transporte de uidos, Ahorro y eciencia energtica en climatizacin , IDAE (Instituto para la Diversicacin y Ahorro de la Energa), vol. 10, 2010. Jos Enrique Cabaas Ceballos 44

BIBLIOGRAFA [10] Iaki Carrascal Mozo. Ciencias Fsicas, Vicens Vives (1988)

Jos Enrique Cabaas Ceballos

45

ANEXO A. MANUAL DEL PROGRAMA DE...

Anexo A

MANUAL DEL PROGRAMA DE CLCULO

A.1.

Aplicaciones.

Este programa informtico ha sido diseado para calcular de forma rpida, sencilla e intuitiva el factor de friccin, la prdida de carga y una serie de parmetros en funcin de unos datos bsicos de la instalacin experimental, tarea que si se realizase a mano sera larga y compleja.

A.2.

Requisitos mnimos de sistema para la instalacin.

RAM: 256 Mb o superior. PROCESADOR: 300 MHz o superior. SISTEMA OPERATIVO: Win2000/XP/2003/Vista/7/Linux/Macintosh. ESPACIO LIBRE EN DISCO DURO: 100 MB.

Jos Enrique Cabaas Ceballos

46

A.3. REQUISITOS DE SOFTWARE.

A.3.

Requisitos de Software.

Es necesario tener instalado una plataforma JDK de Java. NetBeans IDE funciona en el kit de desarrollo de Java SE (JDK), que consta del entorno de ejecucin de Java y de herramientas para desarrolladores para la compilacin, depuracin y ejecucin de aplicaciones escritas en lenguaje Java. Para instalar y ejecutar los paquetes de NetBeans, slo se necesita los entornos de ejecucin de Java 5 6. Puede descargar JDK para la plataforma que desee desde: http://java.sun.com/javase/downloads/index.jsp

A.4.

Instalacin del programa.

Para instalar el programa, slo es necesario descomprimir el archivo DIST.zip y ejecutar el archivo factor_fricion.jar detro del entorno de ejecucin de Java.

A.5.

Introduccin de datos.

Para iniciar la aplicacin, es necesario seleccionar los parmetros conocidos, y el programa informtico calcular el resto de los datos. En el caso de conocer un dato, se debe marcar la casilla correspondiente y escribir el valor a continuacin. Si por el contrario no se conoce, smplemente hay que dejar la casilla desmarcada. Es importante en este punto mencionar que si el dato es un nmero decimal, el

Jos Enrique Cabaas Ceballos

47

A.6. MENSAJES DE ERROR. caracter que separa la parte entera de la decimal es un punto y NO una coma. Hay que puntualizar que el programa SLO utilizar los datos cuya casilla est seleccionada. En caso de estar desactivada, la aplicacin lo considerar una incgnita a calcular aun estando escrita. Algunos datos como son la rugosidad del material de la tuberia, o la densidad y viscosidad del uido, pueden ser seleccionados de una base de datos, la cual esta integrada en la aplicacin mediante listas desplegables. Pero como se ha mencionado anteriormente aun seleccionando el valor de la lista, es necesario marcar dicha casilla para indicar al programa que utilice ese valor y no considere el parmetro como una incgnita a calcular.

A.6.

Mensajes de error.

Para los mensajes de error hay que tener en cuenta que el parmetro de rugosidad absoluta es necesario conocerlo de antemano ya que de otra forma es imposible calcular el factor de fricin por ser una variable independiente. Del mismo modo, se destaca que el resto de los parmetros se podrn calcular a partir de cualquier combinacin de estos tal que se obtenga un sistema compatible determinado, es decir, haya el mismo numero incgnitas que ecuaciones. Por lo tanto si no proporcionamos un sistema compatible determinado, la aplicacin emitir mensajes de error avisando de esta situacin. Si el parmetro de la rugosidad no est seleccionado, entonces la aplicacin avisa mostrando el siguiente mensaje: necesario el dato de rugosidad. Para corregirlo simplemente hay que seleccionar la casilla de dicho parmetro y escribir a continuacin su valor si se conoce, o elegir uno de los materiales de tuberas en la lista desplegable mencionada anteriormente. Otro mensaje de error frecuente es el de: datos insucientes. Esto ocurre porque existen ms incgnitas que ecuaciones. La solucin es aadir los datos que sean necesarios hasta obtener Jos Enrique Cabaas Ceballos 48

A.7. USO. un sistema compatible. Tambin es posible encontrar el error: sistema incompatible. Este error sucede cuando se han seleccionado ms parmetros de los necesarios, de tal forma que hay ms ecuaciones que incognitas y no es posible el clculo debido a las incongruencias. La solucin es eliminar algun parmetro para permitir un grado ms de libertad.

A.7.

Uso.

Tras introducir los datos, y pulsando al botn de calcular, una vez corregidos los errores mencionados anteriormente, aparecer el mensaje: parmetros calculados correctamente. Este mensaje smplemente indica que hemos seleccionado adecuadamente los parmetros para el clculo y las operaciones se han realizado satisfactoriamente, apareciendo impresos los parmentros no conocidos, los factores de friccin segn distintos mtodos de clculo y adems un factor de fricin medio ponderado, asi como la prdida de carga observada para dicho factor de fricin medio.

A.8.

Modicacin de la base de datos.

La base de datos de la aplicacin recoge valores tanto de la rugosidad absoluta de distintos materiales de tuberias, como de viscosidad y densidad de algunos uidos tpicos de trabajo. Estas bases de datos estn escritas con una codicacion ASCII, extensin .txt y su estructura es la siguiente:

materiales:

material1;rugosidad1;material2;rugosidad2; etc

Jos Enrique Cabaas Ceballos

49

A.9. EJEMPLO PRCTICO DE USO DE LA... uidos:

uido1;densidad1;viscosidad1;uido2;densidad2;viscosidad2; etc

De tal forma que si se quiere aadir un nuevo material o uido, simplemente hay que abrir el archivo .txt correspondiente y escribir a continuacin de los datos existentes el nombre del material o uido nuevo seguido de un ; y el valor del campo correspondiente acabado en ; siguiendo la estructura anteriormente descrita, sin espacios en blancos ni saltos de linea y siempre usando las unidades del sistema internacional tal como indica la primera lnea del cdigo.

A.9.

Ejemplo prctico de uso de la aplicacin.

Para que la demostracin sea lo ms completa posible, supondremos los siguientes datos:

Dimetro de la tuberia = 50 mm Nmero de Reynolds = 50.000 Fluido es agua

Si se probase a calcular, aparecer el error dato de rugosidad necesario. La forma de corregirlo es sencilla, se va a resolver en este caso, marcando la casilla que pone rugosidad. A continuacin se procede a escribir su valor.

Rugosidad = 0.046 mm

Una vez solucionado este error, si se intenta calcular de nuevo, aparecer el mensaje datos insucientes. Esto es debido a que aun no hemos introducido los datos necesarios. En esta Jos Enrique Cabaas Ceballos 50

A.9. EJEMPLO PRCTICO DE USO DE LA... ocasin, aadiremos la viscosidad, seleccionandola de la base de datos, la cual se maneja mediante una lista desplegable en la parte superior de la ventana de la aplicacin tal como indica la gura A.1.

Figura A.1: Ejemplo de uso de la base de datos si el uido es agua. Como se mencion anteriormente, aunque hayamos seleccionado el valor, es necesario marcar la casilla correspondiente para que la aplicacin lo tenga en cuenta a la hora de calcular. Llegados a este punto, vemos que se han calculado los valores del caudal de aproximadamente 2 litros por segundo, la velocidad del ujo de 1 metro por segundo, adems se han obtenido los factores de friccin y por ltimo la prdida de carga por metro de tubera de 0.0238 y 0.024 respectivamente como indica la gura A.2. En estas condiciones de ujo la prdida de carga no es signicativa, sin embargo simplemente cambiando el uido por aceite SAE 30, cuya viscosidad es mucho mayor, el valor de la prdida de carga es 1.890 metros por metro de tubera ya que es necesario un caudal de 547 litros por segundo en una tubera de tan slo 50 mm de dimetro.

Jos Enrique Cabaas Ceballos

51

A.9. EJEMPLO PRCTICO DE USO DE LA...

Figura A.2: Ejemplo de resultados obtenidos

Jos Enrique Cabaas Ceballos

52

ANEXO B. CDIGO DEL PROGRAMA...

Anexo B

CDIGO DEL PROGRAMA INFORMTICO

En este apartado se presenta el cdigo fuente de la aplicacin informtica desarrollada para el clculo del factor de friccin, la prdida de carga y las variables de la instalacin hidrulica. El captulo est dividido en varias secciones, donde cada una se corresponde con el chero .java necesario para la aplicacin.

B.1.

Clculos

Esta seccin se corresponde con el archivo del mismo nombre: calculos.java.


1

package factor_friccion; /** Metodos que realizan las operaciones necesarias para gestionar los datos

* de las propiedades del flujo y devuelve como resultado el factor de friccion

*/

Jos Enrique Cabaas Ceballos

53

B.1. CLCULOS

public class calculos { private String nombre; private double densidad; /* km/m3 */ private double viscosidad; /* m2/s */ public calculos(String nom){ this.nombre = nom; } public calculos(String nom, double densidad, double viscosidad){ this.nombre = nom; this.densidad = densidad; this.viscosidad = viscosidad; } public String getNombre(){ return this.nombre; } public void setNombre(String nombre){ this.nombre = nombre; } public double getDensidad(){ return this.densidad; } public void setDensidad(double den){ this.densidad = den; } public double getViscosidad(){ return this.viscosidad; } public void setViscosidad(double vis){ this.viscosidad = vis; } public static double getVelocidad (double q, double D){ double A=3.1415926*D*D*(1e-6)/4;

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

Jos Enrique Cabaas Ceballos

54

B.1. CLCULOS

37

double vel=q/A; return vel; } public static double getReynolds(double L, double vel, double vis) {

38

39

40

41

double Re=L*(1e-3)*vel/vis; return Re; } public static double getViscosidad(double Re, double D, double vel) {

42

43

44

45

double vis=vel*D*1e-3/Re; return vis; } public static double getCaudal(double D,double vel){ double A=3.1415926*D*D*(1e-6)/4; double q=vel*A; return q; } public static double getVel(double Re,double D,double vis){ double vel=Re*vis/(D*1e-3); return vel; } public static double getD(double Re,double vis,double vel){ double D=Re*vis*1000/vel; return D; } public static double getD1(double Re,double vis,double q){ double D=4000*q/(3.1415926*Re*vis); return D; } public static double getD(double q,double vel){ double A=q/vel;

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

Jos Enrique Cabaas Ceballos

55

B.1. CLCULOS

67

double Dm=2*Math.sqrt(A/3.1415926); double D=Dm*1e3; return D; } public static double getMedia(double a,double b,double c,double Re,double e){

68

69

70

71

72

double media = 0; if (e>0.00001){ media=(a+b)/2; } else{ media= (a+b+c)/3; } return media; } //Metodo que resuelve la ecuacion de Colebrook del factor de friccion.

73

74

75

76

77

78

79

80

81

82

public static double getFactor(double Re, double D, double e) { double f,x,X,s,a,b=0; if(Re<=5000) { s=64/Re; } else //if (Re>2100) { x=0.000000000001; do { f=-2.0*Math.log10((e/(D*3.7065))+(2.5226/(Re*Math. sqrt(x))));

83

84

85

86

87

88

89

90

91

92

93

94

95

a=1/(f*f);

Jos Enrique Cabaas Ceballos

56

B.1. CLCULOS

96

X=Math.abs(x-a); s=x; x=x+0.000001; } while(X>0.000001); } return s; } //Metodo que resuelve la ecuacion de explicita del factor de friccin.

97

98

99

100

101

102

103

104

105

public static double getFactor1(double Re, double D, double e) { double f,x,X,s,a,b=0; s=0; if(Re<=5000) { s=64/Re; }

106

107

108

109

110

111

112

113

114

else //if (Re>2100) { if(e==0) { e=0.0000000001; a=-2.0*Math.log10(((e/D)/3.7065)-(5.0272/Re)*Math.log10 (((e/D)/3.827)-(4.567/Re)*Math.log10((Math.pow((e/D) /7.7918,0.9924))+

115

116

117

118

119

120

Math.pow((5.3326/(208.815+Re)),0.9345)))); s=1/(a*a); } else{ a=-2.0*Math.log10(((e/D)/3.7065)-(5.0272/Re)*Math.log10

121

122

123

124

Jos Enrique Cabaas Ceballos

57

B.1. CLCULOS

(((e/D)/3.827)-(4.567/Re)*Math.log10((Math.pow((e/D) /7.7918,0.9924))+
125

Math.pow((5.3326/(208.815+Re)),0.9345)))); s=1/(a*a); } } return s; } //Metodo que resuelve la ecuacion explicita rabe del factor de friccin.

126

127

128

129

130

131

132

public static double getFactor2(double Re, double D, double e) { double f,x,X,s,a,b=0; //a=Math.pow((2.457*Math.log10(1/(Math.pow((7/Re),0.9) +0.27*(e/D)))),16);

133

134

135

136

a=Math.pow((2.457*Math.log(1/((Math.pow((7/Re),0.9))+(0.27*e /D)))),16);

137

b=Math.pow((37530/Re),16); s=8*Math.pow(((Math.pow((8/Re),12))+(1/(Math.pow((a+b),1.5)) )),(1/12));

138

139

System.out.println("a = "+a); System.out.println("b = "+b); //s=8*Math.pow((1/Math.pow((a+b),1.5))+(Math.pow((8/Re),12)) ,(1/12));

140

141

142

//s=8*Math.pow((Math.pow((8/Re),12)+(1/(Math.pow((a+b),1.5)) )),(1/12));

143

return s; } //Metodo que resuelve la ecuacin de Prandtl del factor de friccin.

144

145

146

public static double getFactor3(double Re) {

147

Jos Enrique Cabaas Ceballos

58

B.1. CLCULOS

148

double f,x,X=0; x=0.000000000001; do { f=Math.pow(1/(2*Math.log10((Re*Math.sqrt(x))/2.51)) ,2);

149

150

151

152

153

X=Math.abs(x-f); x=x+0.000001; } while(X>0.000001); return x; } //Metodo que resuelve la ecuacin de Karman-Nikuradse del factor de friccin.

154

155

156

157

158

159

160

public static double getFactor4(double D, double e,double Re) { double f,x,X=0; f=1/Math.pow((-2*Math.log10(e/(3.71*D))),2);

161

162

163

164

165

return f; } //CALCULO DE PERDIDA DE CARGA MEDIANTE ECUACION DARCY-WEISBACH public static double getPC(double D,double vel,double media) { double g=9.81; double PC=media*vel*vel/(2*g*(0.001*D)); return PC; } }

166

167

168

169

170

171

172

173

174

Jos Enrique Cabaas Ceballos

59

B.2. CAMPOS DE LA BASE DE DATOS

B.2.

Campos de la base de datos

Esta seccin se corresponde con el archivo: campos.java


1

package factor_friccion; public class campos { private String nombre; private double rugosidad; /* mm */ public campos(String nom){ this.nombre = nom; } public campos(String nom, this.nombre = nom; this.rugosidad = rugosidad; } public String getNombre(){ return this.nombre; } public void setNombre(String nombre){ this.nombre = nombre; } public double getRugosidad(){ return this.rugosidad; } public void setRugosidad(double vis){ this.rugosidad = vis; } } double rugosidad){

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Jos Enrique Cabaas Ceballos

60

B.3. BASE DE DATOS DE FLUIDOS

B.3.

Base de datos de uidos

Esta seccin se corresponde con el archivo: leeruidos.java


1

package factor_friccion; import java.io.*; public class leerfluidos { public static String[] leerfichero() { File archivo = null; FileReader fr = null; BufferedReader br = null; String linea=null; String z[]=null; try { /* // Apertura del fichero y creacion de BufferedReader para poder

10

11

12

13

14

15

//hacer una lectura comoda (disponer del metodo readLine()) */ archivo = new File ("listafluidos.txt"); fr = new FileReader (archivo); br = new BufferedReader(fr); // Lectura del fichero while((linea=br.readLine())==null) System.out.println(""); } catch(Exception e) { e.printStackTrace(); }

16

17

18

19

20

21

22

23

24

25

26

27

Jos Enrique Cabaas Ceballos

61

B.3. BASE DE DATOS DE FLUIDOS

28

finally { // En el finally cerramos el fichero, para asegurarnos // que se cierra tanto si todo va bien como si salta // una excepcion. try { if( null != fr ) { fr.close(); } } catch (Exception e2) { e2.printStackTrace(); } } int y=0; for(int w=0;w<linea.length();w++) { //recorrer el String linea if (linea.charAt(w) == ;)//condicion de que caracter sea ";"

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

{ y=y+1;//contador de caracteres ";"para poder subdividir linea

51

52

} } String [] W=new String [y];

53

54

55

56

for(int b=0;b<y;b++) {

57

Jos Enrique Cabaas Ceballos

62

B.4. BASE DE DATOS DE MATERIALES DE...

58

W[b]=""; } int a=0; for(int t=0;t<linea.length();t++) { //recorrer el String linea if (linea.charAt(t) != ;) { W[a] = W[a]+ Character.toString(linea.charAt(t)); } else// (linea.charAt(t) == ;) { a=a+1; } }

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

System.out.println("hay "+y+" ; en el archivo");

75

76

return W; } }

77

78

B.4.

Base de datos de materiales de tuberas

Esta seccin se corresponde con el archivo: Leermateriales.java


1

package factor_friccion; import java.io.*; //import java.util.StringTokenizer; public class Leermateriales

Jos Enrique Cabaas Ceballos

63

B.4. BASE DE DATOS DE MATERIALES DE...

{ public static String[] leerfichero() { File archivo = null; FileReader fr = null; BufferedReader br = null; String linea=null; String z[]=null; try { /* // Apertura del fichero y creacion de BufferedReader para poder

10

11

12

13

14

15

16

17

//hacer una lectura comoda (disponer del metodo readLine()) */ archivo = new File ("listamateriales.txt"); fr = new FileReader (archivo); br = new BufferedReader(fr); // Lectura del fichero while((linea=br.readLine())==null) System.out.println(""); } catch(Exception e) { e.printStackTrace(); } finally { // En el finally cerramos el fichero, para asegurarnos // que se cierra tanto si todo va bien como si salta // una excepcion. try

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

Jos Enrique Cabaas Ceballos

64

B.4. BASE DE DATOS DE MATERIALES DE...

36

{ if( null != fr ) { fr.close(); } } catch (Exception e2) { e2.printStackTrace(); } } int y=0; for(int w=0;w<linea.length();w++) { //recorrer el String linea if (linea.charAt(w) == ;)//condicion de que caracter sea ";"

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

{ y=y+1;//contador de caracteres ";"para poder subdividir linea

53

54

} } String [] W=new String [y];

55

56

57

58

for(int b=0;b<y;b++) { W[b]=""; } int a=0; for(int t=0;t<linea.length();t++) { //recorrer el String linea

59

60

61

62

63

64

65

Jos Enrique Cabaas Ceballos

65

B.5. CDIGO DE DE LA INTERFACE GRFICA

66

if (linea.charAt(t) != ;) { W[a] = W[a]+ Character.toString(linea.charAt(t)); } else// (linea.charAt(t) == ;) { a=a+1; } }

67

68

69

70

71

72

73

74

75

76

System.out.println("hay "+y+" ; en el archivo");

77

78

return W; } }

79

80

B.5.

Cdigo de de la interface grca

Esta seccin se corresponde con el archivo: Factor_friccionView.java


1

/* * Factor_friccionView.java */

package factor_friccion;

import org.jdesktop.application.Action; import org.jdesktop.application.ResourceMap; import org.jdesktop.application.SingleFrameApplication; import org.jdesktop.application.FrameView;

10

Jos Enrique Cabaas Ceballos

66

B.5. CDIGO DE DE LA INTERFACE GRFICA

11

import org.jdesktop.application.TaskMonitor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultComboBoxModel; import javax.swing.Timer; import javax.swing.Icon; import javax.swing.JDialog; import javax.swing.JFrame; import java.text.DecimalFormat;

12

13

14

15

16

17

18

19

20

21

/** * The applications main frame. */ public class Factor_friccionView extends FrameView { DecimalFormat formateador = new DecimalFormat("0.000000"); String Z[]=Leermateriales.leerfichero(); int q=Z.length; int y=1+(q/2); public String Nombres[]=new String[y-1]; public String Rug[]=new String[y-1]; String W[]=leerfluidos.leerfichero(); int r=W.length; int p=r/3; public String Nombres1[]=new String[p]; public String Vis[]=new String[p]; public String Den[]=new String[p]; public DefaultComboBoxModel model; public DefaultComboBoxModel model1;

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

public Factor_friccionView(SingleFrameApplication app) { super(app); for (int a=1;a<y-1;a++)

41

42

Jos Enrique Cabaas Ceballos

67

B.5. CDIGO DE DE LA INTERFACE GRFICA

43

{ Nombres[a]=Z[2*a]; Rug[a]=Z[(2*a)+1]; //System.out.print(Nombres[a]); } for (int b=1;b<p-1;b++) { Nombres1[b]=W[3*b]; Vis[b]=W[(3*b)+2]; Den[b]=W[(3*b)+1]; //System.out.print(Nombres[b]); } model = new DefaultComboBoxModel(Nombres); model1 = new DefaultComboBoxModel(Nombres1); initComponents();

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

// status bar initialization - message timeout, idle icon and busy animation, etc

60

ResourceMap resourceMap = getResourceMap(); int messageTimeout = resourceMap.getInteger("StatusBar. messageTimeout");

61

62

messageTimer = new Timer(messageTimeout, new ActionListener () {

63

public void actionPerformed(ActionEvent e) { statusMessageLabel.setText(""); } }); messageTimer.setRepeats(false); int busyAnimationRate = resourceMap.getInteger("StatusBar. busyAnimationRate");

64

65

66

67

68

69

for (int i = 0; i < busyIcons.length; i++) { busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[

70

Jos Enrique Cabaas Ceballos

68

B.5. CDIGO DE DE LA INTERFACE GRFICA

" + i + "]");
71

} busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {

72

73

public void actionPerformed(ActionEvent e) { busyIconIndex = (busyIconIndex + 1) % busyIcons. length;

74

75

statusAnimationLabel.setIcon(busyIcons[busyIconIndex ]);

76

} }); idleIcon = resourceMap.getIcon("StatusBar.idleIcon"); statusAnimationLabel.setIcon(idleIcon); progressBar.setVisible(false);

77

78

79

80

81

82

// connecting action tasks to status bar via TaskMonitor TaskMonitor taskMonitor = new TaskMonitor(getApplication(). getContext());

83

84

taskMonitor.addPropertyChangeListener(new java.beans. PropertyChangeListener() {

85

public void propertyChange(java.beans. PropertyChangeEvent evt) {

86

String propertyName = evt.getPropertyName(); if ("started".equals(propertyName)) { if (!busyIconTimer.isRunning()) { statusAnimationLabel.setIcon(busyIcons[0]); busyIconIndex = 0; busyIconTimer.start(); } progressBar.setVisible(true); progressBar.setIndeterminate(true); } else if ("done".equals(propertyName)) {

87

88

89

90

91

92

93

94

95

Jos Enrique Cabaas Ceballos

69

B.5. CDIGO DE DE LA INTERFACE GRFICA

96

busyIconTimer.stop(); statusAnimationLabel.setIcon(idleIcon); progressBar.setVisible(false); progressBar.setValue(0); } else if ("message".equals(propertyName)) { String text = (String)(evt.getNewValue()); statusMessageLabel.setText((text == null) ? "" : text);

97

98

99

100

101

102

103

messageTimer.restart(); } else if ("progress".equals(propertyName)) { int value = (Integer)(evt.getNewValue()); progressBar.setVisible(true); progressBar.setIndeterminate(false); progressBar.setValue(value); } } }); }

104

105

106

107

108

109

110

111

112

113

114

@Action public void showAboutBox() { if (aboutBox == null) { JFrame mainFrame = Factor_friccionApp.getApplication(). getMainFrame();

115

116

117

118

aboutBox = new Factor_friccionAboutBox(mainFrame); aboutBox.setLocationRelativeTo(mainFrame); } Factor_friccionApp.getApplication().show(aboutBox); }

119

120

121

122

123

124

/** This method is called from within the constructor to * initialize the form.

125

Jos Enrique Cabaas Ceballos

70

B.5. CDIGO DE DE LA INTERFACE GRFICA

126

* WARNING: Do NOT modify this code. The content of this method is

127

* always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

128

129

130

131

132

133

mainPanel = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jTextField4 = new javax.swing.JTextField(); jTextField5 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jComboBox1 = new javax.swing.JComboBox(); jCheckBox1 = new javax.swing.JCheckBox(); jCheckBox2 = new javax.swing.JCheckBox(); jCheckBox3 = new javax.swing.JCheckBox(); jCheckBox4 = new javax.swing.JCheckBox(); jCheckBox5 = new javax.swing.JCheckBox(); jCheckBox6 = new javax.swing.JCheckBox(); jTextField6 = new javax.swing.JTextField(); jTextField7 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jComboBox2 = new javax.swing.JComboBox(); jCheckBox7 = new javax.swing.JCheckBox(); jTextField8 = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel();

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

Jos Enrique Cabaas Ceballos

71

B.5. CDIGO DE DE LA INTERFACE GRFICA

157

jTextField9 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); jTextField11 = new javax.swing.JTextField(); jTextField12 = new javax.swing.JTextField(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jTextField13 = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); jTextField14 = new javax.swing.JTextField(); menuBar = new javax.swing.JMenuBar(); javax.swing.JMenu fileMenu = new javax.swing.JMenu(); javax.swing.JMenuItem exitMenuItem = new javax.swing. JMenuItem();

158

159

160

161

162

163

164

165

166

167

168

169

170

javax.swing.JMenu helpMenu = new javax.swing.JMenu(); javax.swing.JMenuItem aboutMenuItem = new javax.swing. JMenuItem();

171

172

statusPanel = new javax.swing.JPanel(); javax.swing.JSeparator statusPanelSeparator = new javax. swing.JSeparator();

173

174

statusMessageLabel = new javax.swing.JLabel(); statusAnimationLabel = new javax.swing.JLabel(); progressBar = new javax.swing.JProgressBar(); jLabel3 = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); jLabel11 = new javax.swing.JLabel(); jTextField10 = new javax.swing.JTextField();

175

176

177

178

179

180

181

182

mainPanel.setName("mainPanel"); // NOI18N mainPanel.setPreferredSize(new java.awt.Dimension(600, 400)) ;

183

184

Jos Enrique Cabaas Ceballos

72

B.5. CDIGO DE DE LA INTERFACE GRFICA

185

jLabel1.setText("FLUIDOS"); jLabel1.setName("jLabel1"); // NOI18N

186

187

188

jTextField1.setText(""); jTextField1.setEnabled(false); jTextField1.setName("jTextField1"); // NOI18N

189

190

191

192

jTextField2.setText(""); jTextField2.setEnabled(false); jTextField2.setName("jTextField2"); // NOI18N

193

194

195

196

jTextField3.setText(""); jTextField3.setEnabled(false); jTextField3.setName("jTextField3"); // NOI18N

197

198

199

200

jTextField4.setText(""); jTextField4.setEnabled(false); jTextField4.setName("jTextField4"); // NOI18N

201

202

203

204

jTextField5.setText(""); jTextField5.setEnabled(false); jTextField5.setName("jTextField5"); // NOI18N

205

206

207

208

jButton1.setText("CALCULAR"); jButton1.setName("jButton1"); // NOI18N jButton1.addActionListener(new java.awt.event.ActionListener () {

209

210

211

public void actionPerformed(java.awt.event.ActionEvent evt) {

212

jButton1ActionPerformed(evt); } });

213

214

Jos Enrique Cabaas Ceballos

73

B.5. CDIGO DE DE LA INTERFACE GRFICA

215

216

jComboBox1.setModel(model1); jComboBox1.setName("jComboBox1"); // NOI18N jComboBox1.addActionListener(new java.awt.event. ActionListener() {

217

218

219

public void actionPerformed(java.awt.event.ActionEvent evt) {

220

jComboBox1ActionPerformed(evt); } });

221

222

223

224

jCheckBox1.setText("DENSIDAD(kg/m3)"); jCheckBox1.setName("jCheckBox1"); // NOI18N jCheckBox1.addActionListener(new java.awt.event. ActionListener() {

225

226

227

public void actionPerformed(java.awt.event.ActionEvent evt) {

228

jCheckBox1ActionPerformed(evt); } });

229

230

231

232

jCheckBox2.setText("VISCOSIDAD(m2/s)"); jCheckBox2.setName("jCheckBox2"); // NOI18N jCheckBox2.addActionListener(new java.awt.event. ActionListener() {

233

234

235

public void actionPerformed(java.awt.event.ActionEvent evt) {

236

jCheckBox2ActionPerformed(evt); } });

237

238

239

240

jCheckBox3.setText("DIMETRO TUBERIA(mm)");

Jos Enrique Cabaas Ceballos

74

B.5. CDIGO DE DE LA INTERFACE GRFICA

241

jCheckBox3.setName("jCheckBox3"); // NOI18N jCheckBox3.addActionListener(new java.awt.event. ActionListener() {

242

243

public void actionPerformed(java.awt.event.ActionEvent evt) {

244

jCheckBox3ActionPerformed(evt); } });

245

246

247

248

jCheckBox4.setText("RUGOSIDAD(mm)"); jCheckBox4.setName("jCheckBox4"); // NOI18N jCheckBox4.addActionListener(new java.awt.event. ActionListener() {

249

250

251

public void actionPerformed(java.awt.event.ActionEvent evt) {

252

jCheckBox4ActionPerformed(evt); } });

253

254

255

256

jCheckBox5.setText("CAUDAL(m3/s)"); jCheckBox5.setName("jCheckBox5"); // NOI18N jCheckBox5.addActionListener(new java.awt.event. ActionListener() {

257

258

259

public void actionPerformed(java.awt.event.ActionEvent evt) {

260

jCheckBox5ActionPerformed(evt); } });

261

262

263

264

jCheckBox6.setText("REYNOLDS"); jCheckBox6.setName("jCheckBox6"); // NOI18N jCheckBox6.addActionListener(new java.awt.event.

265

266

Jos Enrique Cabaas Ceballos

75

B.5. CDIGO DE DE LA INTERFACE GRFICA

ActionListener() {
267

public void actionPerformed(java.awt.event.ActionEvent evt) {

268

jCheckBox6ActionPerformed(evt); } });

269

270

271

272

jTextField6.setText(""); jTextField6.setEnabled(false); jTextField6.setName("jTextField6"); // NOI18N

273

274

275

276

jTextField7.setText(""); jTextField7.setEnabled(false); jTextField7.setName("jTextField7"); // NOI18N

277

278

279

280

jLabel2.setText(""); jLabel2.setName("jLabel2"); // NOI18N

281

282

283

jLabel4.setText("MATERIAL DE LA TUBERIA"); jLabel4.setName("jLabel4"); // NOI18N

284

285

286

jComboBox2.setModel(model); jComboBox2.setName("jComboBox2"); // NOI18N jComboBox2.addActionListener(new java.awt.event. ActionListener() {

287

288

289

public void actionPerformed(java.awt.event.ActionEvent evt) {

290

jComboBox2ActionPerformed(evt); } });

291

292

293

294

jCheckBox7.setText("VELOCIDAD (m/s)");

Jos Enrique Cabaas Ceballos

76

B.5. CDIGO DE DE LA INTERFACE GRFICA

295

jCheckBox7.setName("jCheckBox7"); // NOI18N jCheckBox7.addActionListener(new java.awt.event. ActionListener() {

296

297

public void actionPerformed(java.awt.event.ActionEvent evt) {

298

jCheckBox7ActionPerformed(evt); } });

299

300

301

302

jTextField8.setText(""); jTextField8.setName("jTextField8"); // NOI18N

303

304

305

jLabel5.setText("f Colebrook"); jLabel5.setName("jLabel5"); // NOI18N

306

307

308

jLabel6.setText("f explcita"); jLabel6.setName("jLabel6"); // NOI18N

309

310

311

jTextField9.setText(""); jTextField9.setName("jTextField9"); // NOI18N

312

313

314

jLabel7.setText(""); jLabel7.setName("jLabel7"); // NOI18N

315

316

317

jTextField11.setText(""); jTextField11.setName("jTextField11"); // NOI18N

318

319

320

jTextField12.setText(""); jTextField12.setName("jTextField12"); // NOI18N

321

322

323

jLabel8.setText("f Prandtl"); jLabel8.setName("jLabel8"); // NOI18N

324

Jos Enrique Cabaas Ceballos

77

B.5. CDIGO DE DE LA INTERFACE GRFICA

325

326

jLabel9.setText("f von Karman-Nikuradse"); jLabel9.setName("jLabel9"); // NOI18N

327

328

329

jTextField13.setText(""); jTextField13.setName("jTextField13"); // NOI18N

330

331

332

jLabel10.setText("factor friccin medio"); jLabel10.setName("jLabel10"); // NOI18N

333

334

335

jLabel12.setText("Prdida de Carga/metro jLabel12.setName("jLabel12"); // NOI18N

(m)");

336

337

338

jTextField14.setText(""); jTextField14.setName("jTextField14"); // NOI18N

339

340

341

javax.swing.GroupLayout mainPanelLayout = new javax.swing. GroupLayout(mainPanel);

342

mainPanel.setLayout(mainPanelLayout); mainPanelLayout.setHorizontalGroup( mainPanelLayout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

343

344

345

.addGroup(mainPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)

346

347

348

.addComponent(jCheckBox7) .addComponent(jCheckBox6) .addGroup(mainPanelLayout.createSequentialGroup ()

349

350

351

.addGroup(mainPanelLayout. createParallelGroup(javax.swing.

Jos Enrique Cabaas Ceballos

78

B.5. CDIGO DE DE LA INTERFACE GRFICA

GroupLayout.Alignment.LEADING)
352

.addGroup(mainPanelLayout. createSequentialGroup()

353

.addGroup(mainPanelLayout. createParallelGroup(javax.swing. GroupLayout.Alignment.TRAILING)

354

.addComponent(jCheckBox1, javax. swing.GroupLayout.Alignment. LEADING)

355

.addComponent(jCheckBox2, javax. swing.GroupLayout.Alignment. LEADING)

356

.addComponent(jCheckBox3, javax. swing.GroupLayout.Alignment. LEADING)

357

.addComponent(jCheckBox4, javax. swing.GroupLayout.Alignment. LEADING)

358

.addComponent(jCheckBox5, javax. swing.GroupLayout.Alignment. LEADING)

359

.addGroup(javax.swing. GroupLayout.Alignment.LEADING , mainPanelLayout. createSequentialGroup()

360

.addComponent(jLabel1, javax .swing.GroupLayout. PREFERRED_SIZE, 71, javax .swing.GroupLayout. PREFERRED_SIZE)

361

.addGap(18, 18, 18) .addComponent(jComboBox1,

362

Jos Enrique Cabaas Ceballos

79

B.5. CDIGO DE DE LA INTERFACE GRFICA

javax.swing.GroupLayout. PREFERRED_SIZE, 136, javax.swing.GroupLayout. PREFERRED_SIZE))


363

.addComponent(jButton1, javax. swing.GroupLayout.Alignment. LEADING, javax.swing. GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout. PREFERRED_SIZE))

364

.addGap(18, 18, 18) .addComponent(jLabel4, javax.swing. GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout. PREFERRED_SIZE))

365

366

.addComponent(jLabel6) .addComponent(jLabel5) .addComponent(jLabel8, javax.swing. GroupLayout.DEFAULT_SIZE, 397, Short. MAX_VALUE)

367

368

369

.addComponent(jLabel9, javax.swing. GroupLayout.DEFAULT_SIZE, 397, Short. MAX_VALUE)

370

.addComponent(jLabel10)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

371

372

.addGroup(mainPanelLayout. createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

373

.addComponent(jLabel7, javax.swing. GroupLayout.DEFAULT_SIZE, 216, Short. MAX_VALUE)

Jos Enrique Cabaas Ceballos

80

B.5. CDIGO DE DE LA INTERFACE GRFICA

374

.addGroup(mainPanelLayout. createParallelGroup(javax.swing. GroupLayout.Alignment.TRAILING, false )

375

.addComponent(jTextField13, javax. swing.GroupLayout.Alignment. LEADING)

376

.addComponent(jTextField8, javax. swing.GroupLayout.Alignment. LEADING)

377

.addComponent(jTextField1, javax. swing.GroupLayout.Alignment. LEADING)

378

.addComponent(jTextField2, javax. swing.GroupLayout.Alignment. LEADING)

379

.addComponent(jTextField3, javax. swing.GroupLayout.Alignment. LEADING)

380

.addComponent(jTextField4, javax. swing.GroupLayout.Alignment. LEADING)

381

.addComponent(jTextField5, javax. swing.GroupLayout.Alignment. LEADING)

382

.addComponent(jTextField6, javax. swing.GroupLayout.Alignment. LEADING)

383

.addComponent(jTextField7, javax. swing.GroupLayout.Alignment. LEADING)

384

.addComponent(jTextField9, javax.

Jos Enrique Cabaas Ceballos

81

B.5. CDIGO DE DE LA INTERFACE GRFICA

swing.GroupLayout.Alignment. LEADING)
385

.addComponent(jTextField11, javax. swing.GroupLayout.Alignment. LEADING)

386

.addComponent(jTextField12, javax. swing.GroupLayout.Alignment. LEADING)

387

.addComponent(jComboBox2, javax. swing.GroupLayout.Alignment. LEADING, 0, 181, Short.MAX_VALUE)

388

.addComponent(jTextField14, javax. swing.GroupLayout.Alignment. LEADING))))

389

.addComponent(jLabel2, javax.swing.GroupLayout. PREFERRED_SIZE, 128, javax.swing.GroupLayout. PREFERRED_SIZE)

390

.addComponent(jLabel12)) .addContainerGap()) ); mainPanelLayout.setVerticalGroup( mainPanelLayout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

391

392

393

394

395

.addGroup(mainPanelLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout. DEFAULT_SIZE, Short.MAX_VALUE)

396

397

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

398

.addComponent(jLabel1, javax.swing.GroupLayout. PREFERRED_SIZE, 37, javax.swing.GroupLayout. PREFERRED_SIZE)

399

.addComponent(jComboBox1, javax.swing.

Jos Enrique Cabaas Ceballos

82

B.5. CDIGO DE DE LA INTERFACE GRFICA

GroupLayout.PREFERRED_SIZE, 26, javax.swing. GroupLayout.PREFERRED_SIZE)


400

.addComponent(jLabel4) .addComponent(jComboBox2, javax.swing. GroupLayout.PREFERRED_SIZE, 29, javax.swing. GroupLayout.PREFERRED_SIZE))

401

402

.addGap(24, 24, 24) .addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

403

404

.addComponent(jCheckBox1) .addComponent(jTextField1, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

405

406

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

407

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

408

.addComponent(jCheckBox2) .addComponent(jTextField2, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

409

410

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

411

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

412

.addComponent(jCheckBox3) .addComponent(jTextField3, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

413

Jos Enrique Cabaas Ceballos

83

B.5. CDIGO DE DE LA INTERFACE GRFICA

414

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

415

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

416

.addComponent(jCheckBox4) .addComponent(jTextField4, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

417

418

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

419

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

420

.addComponent(jCheckBox5) .addComponent(jTextField5, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

421

422

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

423

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

424

.addComponent(jCheckBox6) .addComponent(jTextField6, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

425

426

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)

427

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

428

.addComponent(jCheckBox7)

Jos Enrique Cabaas Ceballos

84

B.5. CDIGO DE DE LA INTERFACE GRFICA

429

.addComponent(jTextField7, javax.swing. GroupLayout.PREFERRED_SIZE, 22, javax.swing. GroupLayout.PREFERRED_SIZE))

430

.addGap(28, 28, 28) .addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

431

432

.addComponent(jButton1, javax.swing.GroupLayout. PREFERRED_SIZE, 35, javax.swing.GroupLayout. PREFERRED_SIZE)

433

.addComponent(jLabel7)) .addGap(34, 34, 34) .addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

434

435

436

.addComponent(jLabel5) .addComponent(jTextField8, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

437

438

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

439

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

440

.addComponent(jLabel6) .addComponent(jTextField9, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

441

442

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

443

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)

444

.addComponent(jTextField11, javax.swing.

Jos Enrique Cabaas Ceballos

85

B.5. CDIGO DE DE LA INTERFACE GRFICA

GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)


445

.addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

446

447

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)

448

.addComponent(jTextField12, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)

449

.addComponent(jLabel9)) .addGap(33, 33, 33) .addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

450

451

452

.addComponent(jTextField13, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)

453

.addComponent(jLabel10)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

454

455

.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)

456

.addComponent(jLabel12) .addComponent(jTextField14, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE))

457

458

.addGap(18, 18, 18) .addComponent(jLabel2, javax.swing.GroupLayout.

459

Jos Enrique Cabaas Ceballos

86

B.5. CDIGO DE DE LA INTERFACE GRFICA

PREFERRED_SIZE, 28, javax.swing.GroupLayout. PREFERRED_SIZE))


460

);

461

462

menuBar.setName("menuBar"); // NOI18N

463

464

org.jdesktop.application.ResourceMap resourceMap = org. jdesktop.application.Application.getInstance( factor_friccion.Factor_friccionApp.class).getContext(). getResourceMap(Factor_friccionView.class);

465

fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N

466

fileMenu.setName("fileMenu"); // NOI18N

467

468

javax.swing.ActionMap actionMap = org.jdesktop.application. Application.getInstance(factor_friccion. Factor_friccionApp.class).getContext().getActionMap( Factor_friccionView.class, this);

469

exitMenuItem.setAction(actionMap.get("quit")); // NOI18N exitMenuItem.setName("exitMenuItem"); // NOI18N fileMenu.add(exitMenuItem);

470

471

472

473

menuBar.add(fileMenu);

474

475

helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N

476

helpMenu.setName("helpMenu"); // NOI18N

477

478

aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N

479

aboutMenuItem.setName("aboutMenuItem"); // NOI18N helpMenu.add(aboutMenuItem);

480

Jos Enrique Cabaas Ceballos

87

B.5. CDIGO DE DE LA INTERFACE GRFICA

481

482

menuBar.add(helpMenu);

483

484

statusPanel.setName("statusPanel"); // NOI18N

485

486

statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

487

488

statusMessageLabel.setName("statusMessageLabel"); // NOI18N

489

490

statusAnimationLabel.setHorizontalAlignment(javax.swing. SwingConstants.LEFT);

491

statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

492

493

progressBar.setName("progressBar"); // NOI18N

494

495

jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N

496

jLabel3.setName("jLabel3"); // NOI18N

497

498

javax.swing.GroupLayout statusPanelLayout = new javax.swing. GroupLayout(statusPanel);

499

statusPanel.setLayout(statusPanelLayout); statusPanelLayout.setHorizontalGroup( statusPanelLayout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

500

501

502

.addComponent(statusPanelSeparator, javax.swing. GroupLayout.DEFAULT_SIZE, 641, Short.MAX_VALUE)

503

.addGroup(statusPanelLayout.createSequentialGroup() .addGroup(statusPanelLayout.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING)

504

Jos Enrique Cabaas Ceballos

88

B.5. CDIGO DE DE LA INTERFACE GRFICA

505

.addGroup(statusPanelLayout. createSequentialGroup()

506

.addContainerGap() .addComponent(statusMessageLabel)) .addGroup(statusPanelLayout. createSequentialGroup()

507

508

509

.addGap(72, 72, 72) .addComponent(jLabel3, javax.swing. GroupLayout.PREFERRED_SIZE, 142, javax. swing.GroupLayout.PREFERRED_SIZE)))

510

511

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED, 267, Short.MAX_VALUE)

512

.addComponent(progressBar, javax.swing.GroupLayout. PREFERRED_SIZE, javax.swing.GroupLayout. DEFAULT_SIZE, javax.swing.GroupLayout. PREFERRED_SIZE)

513

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

514

.addComponent(statusAnimationLabel) .addContainerGap()) ); statusPanelLayout.setVerticalGroup( statusPanelLayout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

515

516

517

518

519

.addGroup(statusPanelLayout.createSequentialGroup() .addComponent(statusPanelSeparator, javax.swing. GroupLayout.PREFERRED_SIZE, 2, javax.swing. GroupLayout.PREFERRED_SIZE)

520

521

.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

522

.addGroup(statusPanelLayout.createParallelGroup( javax.swing.GroupLayout.Alignment.TRAILING)

Jos Enrique Cabaas Ceballos

89

B.5. CDIGO DE DE LA INTERFACE GRFICA

523

.addGroup(statusPanelLayout. createSequentialGroup()

524

.addGroup(statusPanelLayout. createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)

525

.addComponent(statusMessageLabel) .addComponent(statusAnimationLabel) .addComponent(progressBar, javax.swing. GroupLayout.PREFERRED_SIZE, javax. swing.GroupLayout.DEFAULT_SIZE, javax .swing.GroupLayout.PREFERRED_SIZE))

526

527

528

.addGap(3, 3, 3)) .addComponent(jLabel3, javax.swing.GroupLayout. DEFAULT_SIZE, 17, Short.MAX_VALUE)))

529

530

);

531

532

jPanel1.setName("jPanel1"); // NOI18N

533

534

javax.swing.GroupLayout jPanel1Layout = new javax.swing. GroupLayout(jPanel1);

535

jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

536

537

538

.addGap(0, 100, Short.MAX_VALUE) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

539

540

541

542

.addGap(0, 100, Short.MAX_VALUE) );

543

544

Jos Enrique Cabaas Ceballos

90

B.5. CDIGO DE DE LA INTERFACE GRFICA

545

jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N

546

jLabel11.setName("jLabel11"); // NOI18N

547

548

jTextField10.setText(resourceMap.getString("jTextField10. text")); // NOI18N

549

jTextField10.setName("jTextField10"); // NOI18N

550

551

setComponent(mainPanel); setMenuBar(menuBar); setStatusBar(statusPanel); }// </editor-fold> /** Este mtodo recoge los datos y gestiona las operaciones * llamando a los metodos necesarios para calcular el factor de friccion

552

553

554

555

556

557

*/

558

559

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

560

// TODO add your handling code here: double D,e,vis,vel,Re,q,vel1,vel2,Re1,Re2,D1,D2,Den; D=0; e=0; Re=0; vel=0; vis=0; q=0; if(jCheckBox1.isSelected()) { Den = } if(jCheckBox2.isSelected()) Double.parseDouble(jTextField1.getText());

561

562

563

564

565

566

567

568

569

570

571

572

Jos Enrique Cabaas Ceballos

91

B.5. CDIGO DE DE LA INTERFACE GRFICA

573

{ vis = Double.parseDouble(jTextField2.getText());

574

575

if(jCheckBox3.isSelected()) { D = Double.parseDouble(jTextField3.getText());

576

577

578

if(jCheckBox4.isSelected()) { e = Double.parseDouble(jTextField4.getText());

579

580

581

if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

582

583

584

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

585

586

587

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

588

589

590

vel1=calculos.getVelocidad(q,D); vel2=calculos.getVel(Re,D,vis); if(vel1!=vel2) { jLabel7.setText("problemas de compatibilidad!!! necesario desmarcar alguna variable");

591

592

593

594

595

} } else { vel1=calculos.getVelocidad(q,D);

596

597

598

599

Jos Enrique Cabaas Ceballos

92

B.5. CDIGO DE DE LA INTERFACE GRFICA

600

vel2=calculos.getVel(Re,D,vis); if(vel1!=vel2) { jLabel7.setText("sistema incompatible desmarca alguna variable");

601

602

603

604

jTextField7.setText(""+vel1); vel = Double.parseDouble( jTextField7.getText());

605

606

} } } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

607

608

609

610

611

612

613

614

vel1 = Double.parseDouble( jTextField7.getText());

615

vel2=calculos.getVelocidad(q,D); if(vel1!=vel2) { jLabel7.setText("sistema incompatible desmarca alguna variable");

616

617

618

619

jTextField7.setText(""+vel1);

620

621

} Re=calculos.getReynolds(D, vel, vis) ;

622

623

jTextField6.setText(""+Re);

Jos Enrique Cabaas Ceballos

93

B.5. CDIGO DE DE LA INTERFACE GRFICA

624

} else { vel=calculos.getVelocidad(q,D); jTextField7.setText(""+vel); Re=calculos.getReynolds(D, vel, vis) ;

625

626

627

628

629

630

jTextField6.setText(""+Re); } } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

631

632

633

634

635

636

637

638

639

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

640

641

642

Re1=calculos.getReynolds(D, vel, vis );

643

if(Re!=Re1) { jLabel7.setText("problemas de compatibilidad desmarca alguna variable");

644

645

646

} q=calculos.getCaudal(D, vel); jTextField5.setText(""+q); }

647

648

649

Jos Enrique Cabaas Ceballos

94

B.5. CDIGO DE DE LA INTERFACE GRFICA

650

else { vel=calculos.getVel(Re,D,vis); jTextField7.setText(""+vel); q=calculos.getCaudal(D,vel); jTextField5.setText(""+q); } } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

651

652

653

654

655

656

657

658

659

660

661

662

663

q=calculos.getCaudal(D, vel); jTextField5.setText(""+q); Re=calculos.getReynolds(D, vel, vis) ;

664

665

666

jTextField6.setText(""+Re); } else {

667

668

669

670

671

jLabel7.setText("datos insuficientes ");

672

} } } } else { if(jCheckBox5.isSelected())

673

674

675

676

677

678

Jos Enrique Cabaas Ceballos

95

B.5. CDIGO DE DE LA INTERFACE GRFICA

679

{ q = Double.parseDouble(jTextField5.getText ());

680

681

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

682

683

684

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

685

686

687

jLabel7.setText("necesario dato rugosidad");

688

} else { jLabel7.setText("necesario dato rugosidad");

689

690

691

692

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

693

694

695

696

697

698

699

jLabel7.setText("necesario dato rugosidad");

700

} else { jLabel7.setText("necesario dato

701

702

703

Jos Enrique Cabaas Ceballos

96

B.5. CDIGO DE DE LA INTERFACE GRFICA

rugosidad");
704

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

705

706

707

708

709

710

711

712

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

713

714

715

jLabel7.setText("necesario dato rugosidad");

716

} else { jLabel7.setText("necesario dato rugosidad");

717

718

719

720

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

721

722

723

724

725

726

727

jLabel7.setText("necesario dato rugosidad");

728

Jos Enrique Cabaas Ceballos

97

B.5. CDIGO DE DE LA INTERFACE GRFICA

729

else { jLabel7.setText("necesario dato rugosidad");

730

731

732

} } } } } else { if(jCheckBox4.isSelected()) { e = Double.parseDouble(jTextField4.getText());

733

734

735

736

737

738

739

740

741

742

if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

743

744

745

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

746

747

748

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

749

750

751

D1=calculos.getD(Re, vis, vel); D2=calculos.getD(q, vel); if(D1!=D2){ jLabel7.setText("problemas de compatibilidad!!! desmarca alguna variable");

752

753

754

Jos Enrique Cabaas Ceballos

98

B.5. CDIGO DE DE LA INTERFACE GRFICA

755

} D=D2; jTextField3.setText(""+D);

756

757

758

759

} else { D=calculos.getD1(Re, vis, q); jTextField3.setText(""+D); vel=calculos.getVelocidad(q, D); jTextField7.setText(""+vel); } } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

760

761

762

763

764

765

766

767

768

769

770

771

772

773

D=calculos.getD(q, vel); jTextField3.setText(""+D); Re=calculos.getReynolds(D,vel,vis); jTextField6.setText(""+Re); } else { jLabel7.setText("datos insuficientes ");

774

775

776

777

778

779

780

781

} } } else

782

783

784

Jos Enrique Cabaas Ceballos

99

B.5. CDIGO DE DE LA INTERFACE GRFICA

785

{ if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

786

787

788

789

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

790

791

792

D=calculos.getD(Re,vel,vis); jTextField3.setText(""+D); q=calculos.getCaudal(D, vel); jTextField5.setText(""+q); } else { jLabel7.setText("datos insuficientes ");

793

794

795

796

797

798

799

800

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

801

802

803

804

805

806

807

jLabel7.setText("datos insuficientes ");

808

} else { jLabel7.setText("datos insuficientes

809

810

811

Jos Enrique Cabaas Ceballos

100

B.5. CDIGO DE DE LA INTERFACE GRFICA

");
812

} } } } else { if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

813

814

815

816

817

818

819

820

821

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

822

823

824

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

825

826

827

jLabel7.setText("necesario dato rugosidad");

828

} else { jLabel7.setText("necesario dato rugosidad");

829

830

831

832

} } else { if (jCheckBox7.isSelected()) {

833

834

835

836

837

Jos Enrique Cabaas Ceballos

101

B.5. CDIGO DE DE LA INTERFACE GRFICA

838

vel = Double.parseDouble(jTextField7 .getText());

839

jLabel7.setText("necesario dato rugosidad");

840

} else { jLabel7.setText("necesario dato rugosidad");

841

842

843

844

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

845

846

847

848

849

850

851

852

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

853

854

855

jLabel7.setText("necesario dato rugosidad");

856

} else { jLabel7.setText("necesario dato rugosidad");

857

858

859

860

} } else

861

862

Jos Enrique Cabaas Ceballos

102

B.5. CDIGO DE DE LA INTERFACE GRFICA

863

{ if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

864

865

866

867

jLabel7.setText("necesario dato rugosidad");

868

} else { jLabel7.setText("necesario dato rugosidad");

869

870

871

872

} } } } } } else { if(jCheckBox3.isSelected()) { D = Double.parseDouble(jTextField3.getText());

873

874

875

876

877

878

879

880

881

882

883

if(jCheckBox4.isSelected()) { e = Double.parseDouble(jTextField4.getText());

884

885

886

if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

887

888

889

if (jCheckBox6.isSelected()) {

890

Jos Enrique Cabaas Ceballos

103

B.5. CDIGO DE DE LA INTERFACE GRFICA

891

Re = Double.parseDouble(jTextField6. getText());

892

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

893

894

895

vel1=calculos.getVelocidad(q, D); if(vel!=vel1){ jLabel7.setText("problemas de compatibilidad!!! desmarca alguna variable");

896

897

898

} vis=calculos.getViscosidad(Re,D,vel) ;

899

900

jTextField2.setText(""+vis); } else { vel=calculos.getVelocidad(q, D); jTextField7.setText(""+vel); vis=calculos.getViscosidad(Re, D, vel);

901

902

903

904

905

906

907

jTextField2.setText(""+vis);

908

909

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

910

911

912

913

914

915

Jos Enrique Cabaas Ceballos

104

B.5. CDIGO DE DE LA INTERFACE GRFICA

916

jLabel7.setText("datos infuficientes ");

917

} else { jLabel7.setText("datos insuficientes" );

918

919

920

921

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

922

923

924

925

926

927

928

929

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

930

931

932

q=calculos.getCaudal(D, vel); jTextField5.setText(""+q); vis=calculos.getViscosidad(Re, D, vel);

933

934

935

jTextField2.setText(""+vis); } else { jLabel7.setText("datos insuficientes ");

936

937

938

939

940

} }

941

Jos Enrique Cabaas Ceballos

105

B.5. CDIGO DE DE LA INTERFACE GRFICA

942

else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

943

944

945

946

947

jLabel7.setText("datos insuficientes ");

948

} else { jLabel7.setText("datos insuficientes ");

949

950

951

952

} } } } else { if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

953

954

955

956

957

958

959

960

961

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

962

963

964

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

965

966

967

jLabel7.setText("necesario dato

Jos Enrique Cabaas Ceballos

106

B.5. CDIGO DE DE LA INTERFACE GRFICA

rugosidad");
968

} else { jLabel7.setText("necesario dato rugosidad");

969

970

971

972

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

973

974

975

976

977

978

979

jLabel7.setText("necesario dato rugosidad");

980

} else { jLabel7.setText("necesario dato rugosidad");

981

982

983

984

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

985

986

987

988

989

990

991

992

if (jCheckBox7.isSelected()) {

993

Jos Enrique Cabaas Ceballos

107

B.5. CDIGO DE DE LA INTERFACE GRFICA

994

vel = Double.parseDouble(jTextField7 .getText());

995

jLabel7.setText("necesario dato rugosidad");

996

} else { jLabel7.setText("necesario dato rugosidad");

997

998

999

1000

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1001

1002

1003

1004

1005

1006

1007

jLabel7.setText("necesario dato rugosidad");

1008

} else { jLabel7.setText("necesario dato rugosidad");

1009

1010

1011

1012

} } } } } else { if(jCheckBox4.isSelected())

1013

1014

1015

1016

1017

1018

1019

Jos Enrique Cabaas Ceballos

108

B.5. CDIGO DE DE LA INTERFACE GRFICA

1020

{ e = Double.parseDouble(jTextField4.getText());

1021

1022

if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

1023

1024

1025

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

1026

1027

1028

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1029

1030

1031

D=calculos.getD(q, vel); jTextField3.setText(""+D); vis=calculos.getViscosidad(Re, D, vel);

1032

1033

1034

jTextField2.setText(""+vis); } else { jLabel7.setText("datos insuficientes ");

1035

1036

1037

1038

1039

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1040

1041

1042

1043

1044

1045

Jos Enrique Cabaas Ceballos

109

B.5. CDIGO DE DE LA INTERFACE GRFICA

1046

jLabel7.setText("datos insuficientes ");

1047

} else { jLabel7.setText("datos insuficientes ");

1048

1049

1050

1051

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

1052

1053

1054

1055

1056

1057

1058

1059

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1060

1061

1062

jLabel7.setText("datos insuficientes ");

1063

} else { jLabel7.setText("datos insuficientes ");

1064

1065

1066

1067

} } else { if (jCheckBox7.isSelected())

1068

1069

1070

1071

Jos Enrique Cabaas Ceballos

110

B.5. CDIGO DE DE LA INTERFACE GRFICA

1072

{ vel = Double.parseDouble(jTextField7 .getText());

1073

1074

jLabel7.setText("datos insuficientes ");

1075

} else { jLabel7.setText("datos insuficientes ");

1076

1077

1078

1079

} } } } else { if(jCheckBox5.isSelected()) { q = Double.parseDouble(jTextField5.getText ());

1080

1081

1082

1083

1084

1085

1086

1087

1088

if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

1089

1090

1091

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1092

1093

1094

jLabel7.setText("necesario dato rugosidad");

1095

} else

1096

Jos Enrique Cabaas Ceballos

111

B.5. CDIGO DE DE LA INTERFACE GRFICA

1097

{ jLabel7.setText("necesario dato rugosidad");

1098

1099

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1100

1101

1102

1103

1104

1105

1106

jLabel7.setText("necesario dato rugosidad");

1107

} else { jLabel7.setText("necesario dato rugosidad");

1108

1109

1110

1111

} } } else { if (jCheckBox6.isSelected()) { Re = Double.parseDouble(jTextField6. getText());

1112

1113

1114

1115

1116

1117

1118

1119

if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1120

1121

1122

jLabel7.setText("necesario dato

Jos Enrique Cabaas Ceballos

112

B.5. CDIGO DE DE LA INTERFACE GRFICA

rugosidad");
1123

} else { jLabel7.setText("necesario dato rugosidad");

1124

1125

1126

1127

} } else { if (jCheckBox7.isSelected()) { vel = Double.parseDouble(jTextField7 .getText());

1128

1129

1130

1131

1132

1133

1134

jLabel7.setText("necesario dato rugosidad");

1135

} else { jLabel7.setText("necesario dato rugosidad");

1136

1137

1138

1139

} } } } } } if(D!=0&&e!=0&&vel!=0&&q!=0&&Re!=0&&vis!=0){ double f=calculos.getFactor(Re, D, e);//colebrook double s=calculos.getFactor1(Re, D, e);//explicita //double g=Fluido.getFactor2(Re, D, e);//explicita arabe double k=calculos.getFactor3(Re);//prandtl

1140

1141

1142

1143

1144

1145

1146

1147

1148

1149

Jos Enrique Cabaas Ceballos

113

B.5. CDIGO DE DE LA INTERFACE GRFICA

1150

double h=calculos.getFactor4(D,e,Re);//Karman-Nikuradse double m=calculos.getMedia(f,s,k,Re,D);//Media de los factores de friccin

1151

1152

double PC=calculos.getPC(D, vel, m); jTextField14.setText(""+formateador.format(PC)); jTextField8.setText(""+formateador.format(f)); jTextField9.setText(""+formateador.format(s)); jTextField11.setText(""+formateador.format(k)); jTextField12.setText(""+formateador.format(h)); jTextField13.setText(""+formateador.format(m)); jLabel7.setText("PARMETROS CALCULADOS CORRECTAMENTE"); } }

1153

1154

1155

1156

1157

1158

1159

1160

1161

1162

1163

private void jComboBox1ActionPerformed(java.awt.event. ActionEvent evt) {

1164

// TODO add your handling code here: int i = jComboBox1.getSelectedIndex(); try { jTextField1.setText(Den[i]); jTextField2.setText(Vis[i]); } catch(ArrayIndexOutOfBoundsException e) { jLabel7.setText("Dicho fluido no existe"); } }

1165

1166

1167

1168

1169

1170

1171

1172

1173

1174

1175

private void jCheckBox1ActionPerformed(java.awt.event. ActionEvent evt) {

1176

// TODO add your handling code here: jTextField1.setEnabled(jCheckBox1.isSelected()); }

1177

1178

Jos Enrique Cabaas Ceballos

114

B.5. CDIGO DE DE LA INTERFACE GRFICA

1179

1180

private void jCheckBox2ActionPerformed(java.awt.event. ActionEvent evt) {

1181

// TODO add your handling code here: jTextField2.setEnabled(jCheckBox2.isSelected()); }

1182

1183

1184

1185

private void jCheckBox3ActionPerformed(java.awt.event. ActionEvent evt) {

1186

// TODO add your handling code here: jTextField3.setEnabled(jCheckBox3.isSelected()); }

1187

1188

1189

1190

private void jCheckBox4ActionPerformed(java.awt.event. ActionEvent evt) {

1191

// TODO add your handling code here: jTextField4.setEnabled(jCheckBox4.isSelected()); }

1192

1193

1194

1195

private void jCheckBox5ActionPerformed(java.awt.event. ActionEvent evt) {

1196

// TODO add your handling code here: jTextField5.setEnabled(jCheckBox5.isSelected()); }

1197

1198

1199

1200

private void jCheckBox6ActionPerformed(java.awt.event. ActionEvent evt) {

1201

// TODO add your handling code here: jTextField6.setEnabled(jCheckBox6.isSelected()); }

1202

1203

1204

1205

private void jComboBox2ActionPerformed(java.awt.event.

Jos Enrique Cabaas Ceballos

115

B.5. CDIGO DE DE LA INTERFACE GRFICA

ActionEvent evt) {
1206

// TODO add your handling code here: int i = jComboBox2.getSelectedIndex(); try { jTextField4.setText(Rug[i]); } catch(ArrayIndexOutOfBoundsException e) { jLabel7.setText("Dicho material no existe"); } }

1207

1208

1209

1210

1211

1212

1213

1214

1215

1216

private void jCheckBox7ActionPerformed(java.awt.event. ActionEvent evt) {

1217

// TODO add your handling code hre: jTextField7.setEnabled(jCheckBox7.isSelected()); }

1218

1219

1220

1221

// Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JCheckBox jCheckBox2; private javax.swing.JCheckBox jCheckBox3; private javax.swing.JCheckBox jCheckBox4; private javax.swing.JCheckBox jCheckBox5; private javax.swing.JCheckBox jCheckBox6; private javax.swing.JCheckBox jCheckBox7; private javax.swing.JComboBox jComboBox1; private javax.swing.JComboBox jComboBox2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel10; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel12;

1222

1223

1224

1225

1226

1227

1228

1229

1230

1231

1232

1233

1234

1235

Jos Enrique Cabaas Ceballos

116

B.5. CDIGO DE DE LA INTERFACE GRFICA

1236

private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField10; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField12; private javax.swing.JTextField jTextField13; private javax.swing.JTextField jTextField14; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField8; private javax.swing.JTextField jTextField9; private javax.swing.JPanel mainPanel; private javax.swing.JMenuBar menuBar; private javax.swing.JProgressBar progressBar; private javax.swing.JLabel statusAnimationLabel; private javax.swing.JLabel statusMessageLabel; private javax.swing.JPanel statusPanel; // End of variables declaration private final Timer messageTimer; private final Timer busyIconTimer;

1237

1238

1239

1240

1241

1242

1243

1244

1245

1246

1247

1248

1249

1250

1251

1252

1253

1254

1255

1256

1257

1258

1259

1260

1261

1262

1263

1264

1265

1266

1267

Jos Enrique Cabaas Ceballos

117

B.6. FACTOR_FRICCIONAPP.JAVA

1268

private final Icon idleIcon; private final Icon[] busyIcons = new Icon[15]; private int busyIconIndex = 0; private JDialog aboutBox; }

1269

1270

1271

1272

B.6.
1

Factor_friccionApp.java

/* * Factor_friccionApp.java */

package factor_friccion;

import org.jdesktop.application.Application; import org.jdesktop.application.SingleFrameApplication;

10

/** * The main class of the application. */ public class Factor_friccionApp extends SingleFrameApplication {

11

12

13

14

15

/** * At startup create and show the main frame of the application. */ @Override protected void startup() { show(new Factor_friccionView(this)); }

16

17

18

19

20

21

22

/**

Jos Enrique Cabaas Ceballos

118

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

23

* This method is to initialize the specified window by injecting resources.

24

* Windows shown in our application come fully initialized from the GUI

25

* builder, so this additional configuration is not needed. */ @Override protected void configureWindow(java.awt.Window root) { }

26

27

28

29

30

/** * A convenient static getter for the application instance. * @return the instance of Factor_friccionApp */ public static Factor_friccionApp getApplication() { return Application.getInstance(Factor_friccionApp.class); }

31

32

33

34

35

36

37

38

/** * Main method launching the application. */ public static void main(String[] args) { launch(Factor_friccionApp.class, args); } }

39

40

41

42

43

44

B.7.
1

Factor_friccionAboutBox.java

/* * Factor_friccionAboutBox.java */

Jos Enrique Cabaas Ceballos

119

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

package factor_friccion;

import org.jdesktop.application.Action;

public class Factor_friccionAboutBox extends javax.swing.JDialog {

10

11

public Factor_friccionAboutBox(java.awt.Frame parent) { super(parent); initComponents(); getRootPane().setDefaultButton(closeButton); }

12

13

14

15

16

17

@Action public void closeAboutBox() { dispose(); }

18

19

20

21

/** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is

22

23

24

* always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

25

26

27

28

29

closeButton = new javax.swing.JButton(); javax.swing.JLabel appTitleLabel = new javax.swing.JLabel(); javax.swing.JLabel versionLabel = new javax.swing.JLabel(); javax.swing.JLabel appVersionLabel = new javax.swing.JLabel ();

30

31

32

33

javax.swing.JLabel vendorLabel = new javax.swing.JLabel();

Jos Enrique Cabaas Ceballos

120

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

34

javax.swing.JLabel appVendorLabel = new javax.swing.JLabel() ;

35

javax.swing.JLabel appDescLabel = new javax.swing.JLabel(); javax.swing.JLabel imageLabel = new javax.swing.JLabel(); javax.swing.JLabel vendorLabel1 = new javax.swing.JLabel(); javax.swing.JLabel appVendorLabel1 = new javax.swing.JLabel ();

36

37

38

39

40

setDefaultCloseOperation(javax.swing.WindowConstants. DISPOSE_ON_CLOSE);

41

setTitle("CALCULAR FACTOR DE FRICCIN Y PRDIDA DE CARGA"); setModal(true); setName("aboutBox"); // NOI18N setResizable(false);

42

43

44

45

46

javax.swing.ActionMap actionMap = org.jdesktop.application. Application.getInstance(factor_friccion. Factor_friccionApp.class).getContext().getActionMap( Factor_friccionAboutBox.class, this);

47

closeButton.setAction(actionMap.get("closeAboutBox")); // NOI18N

48

closeButton.setName("closeButton"); // NOI18N

49

50

appTitleLabel.setFont(appTitleLabel.getFont().deriveFont( appTitleLabel.getFont().getStyle() | java.awt.Font.BOLD, appTitleLabel.getFont().getSize()+4));

51

appTitleLabel.setText("CALCULAR FACTOR DE FRICCIN EN TUBERAS");

52

appTitleLabel.setName("appTitleLabel"); // NOI18N

53

54

versionLabel.setFont(versionLabel.getFont().deriveFont( versionLabel.getFont().getStyle() | java.awt.Font.BOLD));

Jos Enrique Cabaas Ceballos

121

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

55

org.jdesktop.application.ResourceMap resourceMap = org. jdesktop.application.Application.getInstance( factor_friccion.Factor_friccionApp.class).getContext(). getResourceMap(Factor_friccionAboutBox.class);

56

versionLabel.setText(resourceMap.getString("versionLabel. text")); // NOI18N

57

versionLabel.setName("versionLabel"); // NOI18N

58

59

appVersionLabel.setText(" 1.1 "); appVersionLabel.setName("appVersionLabel"); // NOI18N

60

61

62

vendorLabel.setFont(vendorLabel.getFont().deriveFont( vendorLabel.getFont().getStyle() | java.awt.Font.BOLD));

63

vendorLabel.setText("Autor"); vendorLabel.setName("vendorLabel"); // NOI18N

64

65

66

appVendorLabel.setText("Jos Enrique Cabaas Ceballos"); appVendorLabel.setName("appVendorLabel"); // NOI18N

67

68

69

appDescLabel.setText("A simple Java desktop application based on Swing Application Framework.");

70

appDescLabel.setName("appDescLabel"); // NOI18N

71

72

imageLabel.setIcon(resourceMap.getIcon("imageLabel.icon")); // NOI18N

73

imageLabel.setName("imageLabel"); // NOI18N

74

75

vendorLabel1.setFont(vendorLabel1.getFont().deriveFont( vendorLabel1.getFont().getStyle() | java.awt.Font.BOLD));

76

vendorLabel1.setText("Fecha ltima modidicacin"); vendorLabel1.setName("vendorLabel1"); // NOI18N

77

78

Jos Enrique Cabaas Ceballos

122

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

79

appVendorLabel1.setText("08/03/2010"); appVendorLabel1.setName("appVendorLabel1"); // NOI18N

80

81

82

javax.swing.GroupLayout layout = new javax.swing.GroupLayout (getContentPane());

83

getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout. Alignment.LEADING)

84

85

86

.addGroup(layout.createSequentialGroup() .addComponent(imageLabel) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.LEADING)

87

88

89

90

.addComponent(appTitleLabel) .addComponent(appDescLabel, javax.swing. GroupLayout.DEFAULT_SIZE, 280, Short. MAX_VALUE)

91

92

.addComponent(closeButton, javax.swing. GroupLayout.Alignment.TRAILING)

93

.addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)

94

95

.addComponent(versionLabel) .addComponent(vendorLabel) .addComponent(vendorLabel1)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

96

97

98

99

.addGroup(layout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)

100

.addComponent(appVendorLabel1) .addComponent(appVersionLabel)

101

Jos Enrique Cabaas Ceballos

123

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

102

.addComponent(appVendorLabel)) .addGap(110, 110, 110))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout. Alignment.LEADING)

103

104

105

106

107

108

.addComponent(imageLabel, javax.swing.GroupLayout. PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

109

.addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(appTitleLabel) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

110

111

112

113

.addComponent(appDescLabel) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

114

115

.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)

116

.addComponent(versionLabel) .addComponent(appVersionLabel)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

117

118

119

.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)

120

.addComponent(vendorLabel) .addComponent(appVendorLabel)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)

121

122

123

.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)

Jos Enrique Cabaas Ceballos

124

B.7. FACTOR_FRICCIONABOUTBOX.JAVA

124

.addComponent(vendorLabel1) .addComponent(appVendorLabel1)) .addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED, 33, Short.MAX_VALUE)

125

126

127

.addComponent(closeButton) .addContainerGap()) );

128

129

130

131

pack(); }// </editor-fold>

132

133

134

// Variables declaration - do not modify private javax.swing.JButton closeButton; // End of variables declaration

135

136

137

138

Jos Enrique Cabaas Ceballos

125

ANEXO C. CLCULOS MEDIANTE MATLAB

Anexo C

CLCULOS MEDIANTE MATLAB

En este apndice se exponen los programas de Matlab utilizados para la modelizacin de las ecuaciones, representacion grca y clculo de los parmetros del ujo:

C.1.
1

Tratamiento de los datos experimentales.

%declaracion de constantes:

diametro=13.6e-3; %metros volumen=15; %litros longitud=0.915; %metros viscosidad=1e-6; %m^2/s area=3.1415926*(diametro/2)^2; %m^2 areamm=3.1415926*(diametro*1000/2)^2; %mm^2

10

%definicion de los vectores de los tiempos medidos, y caidas de presion y caudal

11

%calculo de la media y el error cometido(error cuadratico medio, desviacion tipica):

Jos Enrique Cabaas Ceballos

126

C.1. TRATAMIENTO DE LOS DATOS...

12

13

tiempo1=[49.88, 49.43, 49.08, 49.25, 49.13, 49.7, 49.43, 49.63, 49.55, 49.67, 50.58, 50.13, 50.18, 49.91];

14

tmedio1=sum(tiempo1)/length(tiempo1); caudal1=volumen./tiempo1; cmedio1=sum(caudal1)/length(caudal1); p1a=[525,525,525,525,525,525,525,525,525,525,530,530,530,530]; p1b=[140,140,145,145,145,145,145,145,145,145,150,150,150,150]; AP1=p1a-p1b; P1=sum(AP1)/length(AP1); for i=1:length(caudal1) Z1(i)=(caudal1(i)-cmedio1)^2; end ecmc1=sqrt(sum(Z1)/length(caudal1)); for i=1:length(AP1) C1(i)=(AP1(i)-P1)^2; end emcpc1=sqrt(sum(C1)/length(AP1)); epc1=std(AP1); e1=std(tiempo1);

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

tiempo2=[53, 52.89, 52.78, 52.95, 53.13]; tmedio2=sum(tiempo2)/length(tiempo2); caudal2=volumen./tiempo2; cmedio2=sum(caudal2)/length(caudal2); p2a=[525,525,525,525,530]; p2b=[185,185,185,185,185]; AP2=p2a-p2b; P2=sum(AP2)/length(AP2); for i=1:length(caudal2) Z2(i)=(caudal2(i)-cmedio2)^2; end

33

34

35

36

37

38

39

40

41

42

Jos Enrique Cabaas Ceballos

127

C.1. TRATAMIENTO DE LOS DATOS...

43

ecmc2=sqrt(sum(Z2)/length(caudal2)); for i=1:length(AP2) C2(i)=(AP2(i)-P2)^2; end emcpc2=sqrt(sum(C2)/length(AP2)); epc2=std(AP2); e2=std(tiempo2);

44

45

46

47

48

49

50

51

tiempo3=[57.25, 56.7, 56.98, 57.05, 57.13]; tmedio3=sum(tiempo3)/length(tiempo3); caudal3=volumen./tiempo3; cmedio3=sum(caudal3)/length(caudal3); p3a=[520,520,520,520,525]; p3b=[220,220,220,220,220]; AP3=p3a-p3b; P3=sum(AP3)/length(AP3); for i=1:length(caudal3) Z3(i)=(caudal3(i)-cmedio3)^2; end ecmc3=sqrt(sum(Z3)/length(caudal3)); for i=1:length(AP3) C3(i)=(AP3(i)-P3)^2; end emcpc3=sqrt(sum(C3)/length(AP3)); epc3=std(AP3); e3=std(tiempo3);

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

tiempo4=[67.17, 68.48, 67.36, 68.23, 68.01]; tmedio4=sum(tiempo4)/length(tiempo4); caudal4=volumen./tiempo4; cmedio4=sum(caudal4)/length(caudal4); p4a=[510,510,515,510,510];

71

72

73

74

Jos Enrique Cabaas Ceballos

128

C.1. TRATAMIENTO DE LOS DATOS...

75

p4b=[290,290,290,290,290]; AP4=p4a-p4b; P4=sum(AP4)/length(AP4); for i=1:length(caudal4) Z4(i)=(caudal4(i)-cmedio4)^2; end ecmc4=sqrt(sum(Z4)/length(caudal4)); for i=1:length(AP4) C4(i)=(AP4(i)-P4)^2; end emcpc4=sqrt(sum(C4)/length(AP4)); epc4=std(AP4); e4=std(tiempo4);

76

77

78

79

80

81

82

83

84

85

86

87

88

89

tiempo5=[89.86, 91.28, 91.41, 91.86, 90.53]; tmedio5=sum(tiempo5)/length(tiempo5); caudal5=volumen./tiempo5; cmedio5=sum(caudal5)/length(caudal5); p5a=[505,500,500,500,500]; p5b=[370,370,370,370,370]; AP5=p5a-p5b; P5=sum(AP5)/length(AP5); for i=1:length(caudal5) Z5(i)=(caudal5(i)-cmedio5)^2; end ecmc5=sqrt(sum(Z5)/length(caudal5)); for i=1:length(AP5) C5(i)=(AP5(i)-P5)^2; end emcpc5=sqrt(sum(C5)/length(AP5)); epc5=std(AP5); e5=std(tiempo5);

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

Jos Enrique Cabaas Ceballos

129

C.1. TRATAMIENTO DE LOS DATOS...

107

108

tiempo6=[131.84, 130.21, 131.97, 130.59, 130.91]; tmedio6=sum(tiempo6)/length(tiempo6); caudal6=volumen./tiempo6; cmedio6=sum(caudal6)/length(caudal6); p6a=[495,495,495,490,490]; p6b=[425,425,425,425,425]; AP6=p6a-p6b; P6=sum(AP6)/length(AP6); for i=1:length(caudal6) Z6(i)=(caudal6(i)-cmedio6)^2; end ecmc6=sqrt(sum(Z6)/length(caudal6)); for i=1:length(AP6) C6(i)=(AP6(i)-P6)^2; end emcpc6=sqrt(sum(C6)/length(AP6)); epc6=std(AP6); e6=std(tiempo6);

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

tiempo7=[155.96, 154.56, 153.28, 154.92, 153.88]; tmedio7=sum(tiempo7)/length(tiempo7); caudal7=volumen./tiempo7; cmedio7=sum(caudal7)/length(caudal7); p7a=[490,490,490,490,495]; p7b=[440,440,440,440,440]; AP7=p7a-p7b; P7=sum(AP7)/length(AP7); for i=1:length(caudal7) Z7(i)=(caudal7(i)-cmedio7)^2; end ecmc7=sqrt(sum(Z7)/length(caudal7));

128

129

130

131

132

133

134

135

136

137

138

Jos Enrique Cabaas Ceballos

130

C.1. TRATAMIENTO DE LOS DATOS...

139

for i=1:length(AP7) C7(i)=(AP7(i)-P7)^2; end emcpc7=sqrt(sum(C7)/length(AP7)); epc7=std(AP7); e7=std(tiempo7);

140

141

142

143

144

145

146

tiempo8=[167.55, 165.36, 166.45, 165.94, 166.91]; tmedio8=sum(tiempo8)/length(tiempo8); caudal8=(volumen./tiempo8); cmedio8=sum(caudal8)/length(caudal8); p8a=[485,485,485,480,485]; p8b=[440,440,440,440,440]; AP8=p8a-p8b; P8=sum(AP8)/length(AP8); for i=1:length(caudal8) Z8(i)=(caudal8(i)-cmedio8)^2; end ecmc8=sqrt(sum(Z8)/length(caudal8)); for i=1:length(AP8) C8(i)=(AP8(i)-P8)^2; end emcpc8=sqrt(sum(C8)/length(AP8)); epc8=std(AP8); e8=std(tiempo8);

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

%creacion de los vectores de los parametros: ecmpc=[emcpc1,emcpc2,emcpc3,emcpc4,emcpc5,emcpc6,emcpc7,emcpc8]; % error cuadratico medio perdida de carga

166

167

ecmc=[ecmc1,ecmc2,ecmc3,ecmc4,ecmc5,ecmc6,ecmc7,ecmc8]; %error cuadratico medio caudal

168

errort=[e1,e2,e3,e4,e5,e6,e7,e8]; %desviacion tipica caudal

Jos Enrique Cabaas Ceballos

131

C.1. TRATAMIENTO DE LOS DATOS...

169

errorpc=[epc1,epc2,epc3,epc4,epc5,epc6,epc7,epc8]; %desviacion tipica perdida de carga

170

pc=[P1,P2,P3,P4,P5,P6,P7,P8]; %milimetros PC=0.001.*pc; %metros PCM=1./longitud.*PC; %perdida de carga por metro de longitud expresada en metros

171

172

173

tiempo=[tmedio1,tmedio2,tmedio3,tmedio4,tmedio5,tmedio6,tmedio7, tmedio8]; %vector de tiempos medios

174

caudal=[cmedio1,cmedio2,cmedio3,cmedio4,cmedio5,cmedio6,cmedio7, cmedio8]; %litros/s

175

caudalm3=0.001.*caudal; %m^3/s velocidad=(1/area).*caudalm3; %m/s Re=(diametro/viscosidad).*velocidad; flam=64./Re;

176

177

178

179

180

% Aplicando el modelo de Darcy-Weisbach (1875): cte=(2*9.81*diametro/longitud); for i=1:8 f(i)=PC(i)*cte/(velocidad(i)^2); end f;

181

182

183

184

185

186

187

% Para el calculo de la rugosidad aplicaremos el modelo de colebrook for i=1:8 r(i)=3.71*diametro*(10^(-1/(2*sqrt(f(i))))-2.51/(Re(i)*sqrt(f(i)))); %rugosidad absoluta en metros

188

189

190

rr(i)=r(i)/diametro; %rugosidad relativa end r; rr;

191

192

193

Jos Enrique Cabaas Ceballos

132

C.2. REPRESENTACIN GRFICA DE LA...

C.2.

Representacin grca de la dependencia de las variables respecto al nmero de Reynolds.

%VARIABLES

Re1=[100:100:10000]; Re2=[10000:1000:10e8]; Re=[Re1 Re2]; f=[0:0.001:1]; e1=0.0000001; e3=0.00001; e4=0.0001; e6=0.01;

10

11

12

%ECUACIONES

13

14

%laminar laminar=64./Re;

15

16

17

%explicita

18

19

explicita1=1./(-2.*log10(e1/3.7065-(5.0272./Re).*log10(e1 /3.827-(4.567./Re).*log10((e1/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

20

21

%=1./(-2.*log10(e2/3.7065-(5.0272./Re).*log10(e2/3.827-(4.567./Re).* log10((e2/7.7918)^0.9924+(5.3326./(Re+208.815)).^0.9345)))).^2;

22

23

explicita3=1./(-2.*log10(e3/3.7065-(5.0272./Re).*log10(e3 /3.827-(4.567./Re).*log10((e3/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

Jos Enrique Cabaas Ceballos

133

C.3. REPRESENTACIN GRFICA DE LOS...

24

25

explicita4=1./(-2.*log10(e4/3.7065-(5.0272./Re).*log10(e4 /3.827-(4.567./Re).*log10((e4/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

26

27

%explicita5=1./(-2.*log10(e5/3.7065-(5.0272./Re).*log10(e5 /3.827-(4.567./Re).*log10((e5/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

28

29

explicita6=1./(-2.*log10(e6/3.7065-(5.0272./Re).*log10(e6 /3.827-(4.567./Re).*log10((e6/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

30

31

%GRAFICOS

32

33

plot(Re,laminar,g); hold on plot(Re,explicita1,b); %plot(Re,explicita2,r); plot(Re,explicita3,k); plot(Re,explicita4,c); %plot(Re,explicita5,r); plot(Re,explicita6,r); hold off

34

35

36

37

38

39

40

41

C.3.
1

Representacin grca de los modelos tericos.

%VARIABLES

Re1=[100:100:10000];

Jos Enrique Cabaas Ceballos

134

C.3. REPRESENTACIN GRFICA DE LOS...

Re2=[10000:1000:10e8]; Re=[Re1 Re2]; f=[0:0.001:1]; e1=0.0000001; e3=0.00001; e4=0.0001; e6=0.01;

10

11

12

%ECUACIONES

13

14

%laminar laminar=64./Re;

15

16

17

%explicita

18

19

explicita1=1./(-2.*log10(e1/3.7065-(5.0272./Re).*log10(e1 /3.827-(4.567./Re).*log10((e1/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

20

21

%=1./(-2.*log10(e2/3.7065-(5.0272./Re).*log10(e2/3.827-(4.567./Re).* log10((e2/7.7918)^0.9924+(5.3326./(Re+208.815)).^0.9345)))).^2;

22

23

explicita3=1./(-2.*log10(e3/3.7065-(5.0272./Re).*log10(e3 /3.827-(4.567./Re).*log10((e3/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

24

25

explicita4=1./(-2.*log10(e4/3.7065-(5.0272./Re).*log10(e4 /3.827-(4.567./Re).*log10((e4/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

26

27

%explicita5=1./(-2.*log10(e5/3.7065-(5.0272./Re).*log10(e5 /3.827-(4.567./Re).*log10((e5/7.7918)^0.9924+(5.3326./(Re

Jos Enrique Cabaas Ceballos

135

C.3. REPRESENTACIN GRFICA DE LOS...

+208.815)).^0.9345)))).^2;
28

29

explicita6=1./(-2.*log10(e6/3.7065-(5.0272./Re).*log10(e6 /3.827-(4.567./Re).*log10((e6/7.7918)^0.9924+(5.3326./(Re +208.815)).^0.9345)))).^2;

30

31

%GRAFICOS

32

33

plot(Re,laminar,g); hold on plot(Re,explicita1,b); %plot(Re,explicita2,r); plot(Re,explicita3,k); plot(Re,explicita4,c); %plot(Re,explicita5,r); plot(Re,explicita6,r); hold off

34

35

36

37

38

39

40

41

Jos Enrique Cabaas Ceballos

136

Você também pode gostar