Академический Документы
Профессиональный Документы
Культура Документы
CIUDAD REAL
Captulo 1
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
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.
1.1.
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.
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
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:
(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]
Figura 1.3: Esquema de la instalacin utilizada por Reynolds. Imagen adaptada de [8]
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.
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]:
11
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,
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.
12
1.3.2.
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:
13
1 = 2,0 log10 f
Re f . 2, 51
(1.6)
1.3.5.
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.
14
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:
0,9924 r
7,7918
5,3326 208,815 + Re
0,9345
, (1.8)
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)
A=
2,457 log B=
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.
17
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.
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.
19
2.2. FUNCIONAMIENTO.
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.
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]:
22
hf [m] =
(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] =
(2.3)
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:
23
r [adimensional ]
[m] . D [m]
(2.6)
= 3,7065 10
1 f
2,5226 . Re f
(2.7)
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.
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.
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
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
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.
28
Figura 3.3: Rugosidad relativa obtenida experimentalmente frente al nmero de Reynolds utilizando el modelo de Colebrook.
29
3.2.
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
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.
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.
3.2.3.
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
34
3.2.4.
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 .
3.2.5.
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.
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 .
36
37
3.3.
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.
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.
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
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
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.
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)
45
Anexo A
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.
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.
46
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.
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
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.
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
49
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.
Para que la demostracin sea lo ms completa posible, supondremos los siguientes datos:
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.
51
52
Anexo B
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
package factor_friccion; /** Metodos que realizan las operaciones necesarias para gestionar los datos
*/
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
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
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);
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
115
116
117
118
119
120
121
122
123
124
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
138
139
140
141
142
//s=8*Math.pow((Math.pow((8/Re),12)+(1/(Math.pow((a+b),1.5)) )),(1/12));
143
144
145
146
147
58
B.1. CLCULOS
148
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
59
B.2.
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
60
B.3.
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
61
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
51
52
53
54
55
56
for(int b=0;b<y;b++) {
57
62
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
75
76
return W; } }
77
78
B.4.
63
{ 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
64
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
53
54
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
return W; } }
79
80
B.5.
/* * Factor_friccionView.java */
package factor_friccion;
10
66
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
41
42
67
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
61
62
63
public void actionPerformed(ActionEvent e) { statusMessageLabel.setText(""); } }); messageTimer.setRepeats(false); int busyAnimationRate = resourceMap.getInteger("StatusBar. busyAnimationRate");
64
65
66
67
68
69
70
68
" + i + "]");
71
72
73
74
75
statusAnimationLabel.setIcon(busyIcons[busyIconIndex ]);
76
77
78
79
80
81
82
// connecting action tasks to status bar via TaskMonitor TaskMonitor taskMonitor = new TaskMonitor(getApplication(). getContext());
83
84
85
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
69
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
119
120
121
122
123
124
/** This method is called from within the constructor to * initialize the form.
125
70
126
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
71
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
171
172
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
183
184
72
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
jButton1ActionPerformed(evt); } });
213
214
73
215
216
217
218
219
220
jComboBox1ActionPerformed(evt); } });
221
222
223
224
225
226
227
228
jCheckBox1ActionPerformed(evt); } });
229
230
231
232
233
234
235
236
jCheckBox2ActionPerformed(evt); } });
237
238
239
240
jCheckBox3.setText("DIMETRO TUBERIA(mm)");
74
241
242
243
244
jCheckBox3ActionPerformed(evt); } });
245
246
247
248
249
250
251
252
jCheckBox4ActionPerformed(evt); } });
253
254
255
256
257
258
259
260
jCheckBox5ActionPerformed(evt); } });
261
262
263
264
265
266
75
ActionListener() {
267
268
jCheckBox6ActionPerformed(evt); } });
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
jComboBox2ActionPerformed(evt); } });
291
292
293
294
jCheckBox7.setText("VELOCIDAD (m/s)");
76
295
296
297
298
jCheckBox7ActionPerformed(evt); } });
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
77
325
326
327
328
329
330
331
332
333
334
335
(m)");
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
.addGroup(mainPanelLayout. createParallelGroup(javax.swing.
78
GroupLayout.Alignment.LEADING)
352
.addGroup(mainPanelLayout. createSequentialGroup()
353
354
355
356
357
358
359
360
361
362
79
364
365
366
367
368
369
370
371
372
373
80
374
375
376
377
378
379
380
381
382
383
384
.addComponent(jTextField9, javax.
81
swing.GroupLayout.Alignment. LEADING)
385
386
387
388
389
390
391
392
393
394
395
396
397
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
398
399
.addComponent(jComboBox1, javax.swing.
82
401
402
403
404
405
406
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
407
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
408
409
410
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
411
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
412
413
83
414
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
415
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
416
417
418
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
419
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
420
421
422
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
423
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
424
425
426
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.UNRELATED)
427
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
428
.addComponent(jCheckBox7)
84
429
430
431
432
433
434
435
436
437
438
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)
439
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
440
441
442
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)
443
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)
444
.addComponent(jTextField11, javax.swing.
85
446
447
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)
448
449
450
451
452
453
454
455
.addGroup(mainPanelLayout.createParallelGroup(javax. swing.GroupLayout.Alignment.BASELINE)
456
457
458
459
86
);
461
462
menuBar.setName("menuBar"); // NOI18N
463
464
465
fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
466
fileMenu.setName("fileMenu"); // NOI18N
467
468
469
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
480
87
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
499
500
501
502
503
504
88
505
.addGroup(statusPanelLayout. createSequentialGroup()
506
507
508
509
510
511
512
513
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)
514
515
516
517
518
519
520
521
.addPreferredGap(javax.swing.LayoutStyle. ComponentPlacement.RELATED)
522
.addGroup(statusPanelLayout.createParallelGroup( javax.swing.GroupLayout.Alignment.TRAILING)
89
523
.addGroup(statusPanelLayout. createSequentialGroup()
524
525
526
527
528
529
530
);
531
532
jPanel1.setName("jPanel1"); // NOI18N
533
534
535
536
537
538
539
540
541
542
543
544
90
545
jLabel11.setText(resourceMap.getString("jLabel11.text")); // NOI18N
546
jLabel11.setName("jLabel11"); // NOI18N
547
548
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
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
91
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
582
583
584
585
586
587
588
589
590
591
592
593
594
595
} } else { vel1=calculos.getVelocidad(q,D);
596
597
598
599
92
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
jTextField7.setText(""+vel1);
620
621
622
623
jTextField6.setText(""+Re);
93
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
94
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
664
665
666
jTextField6.setText(""+Re); } else {
667
668
669
670
671
672
} } } } else { if(jCheckBox5.isSelected())
673
674
675
676
677
678
95
679
{ q = Double.parseDouble(jTextField5.getText ());
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
96
rugosidad");
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
97
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
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
98
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
774
775
776
777
778
779
780
781
} } } else
782
783
784
99
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
100
");
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
} } else { if (jCheckBox7.isSelected()) {
833
834
835
836
837
101
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
} } else
861
862
102
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
if(jCheckBox4.isSelected()) { e = Double.parseDouble(jTextField4.getText());
884
885
886
887
888
889
if (jCheckBox6.isSelected()) {
890
103
891
Re = Double.parseDouble(jTextField6. getText());
892
893
894
895
896
897
898
} vis=calculos.getViscosidad(Re,D,vel) ;
899
900
901
902
903
904
905
906
907
jTextField2.setText(""+vis);
908
909
910
911
912
913
914
915
104
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
} }
941
105
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
jLabel7.setText("necesario dato
106
rugosidad");
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
if (jCheckBox7.isSelected()) {
993
107
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
} } } } } else { if(jCheckBox4.isSelected())
1013
1014
1015
1016
1017
1018
1019
108
1020
{ e = Double.parseDouble(jTextField4.getText());
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
109
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
} } else { if (jCheckBox7.isSelected())
1068
1069
1070
1071
110
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
} else
1096
111
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
jLabel7.setText("necesario dato
112
rugosidad");
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
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
113
1150
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
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
1176
1177
1178
114
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
115
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
1217
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
116
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
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;
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
/**
118
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
23
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 */
119
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
package factor_friccion;
import org.jdesktop.application.Action;
10
11
12
13
14
15
16
17
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
120
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
34
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
42
43
44
45
46
47
closeButton.setAction(actionMap.get("closeAboutBox")); // NOI18N
48
closeButton.setName("closeButton"); // NOI18N
49
50
51
52
appTitleLabel.setName("appTitleLabel"); // NOI18N
53
54
121
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
55
56
57
versionLabel.setName("versionLabel"); // NOI18N
58
59
60
61
62
63
64
65
66
67
68
69
70
appDescLabel.setName("appDescLabel"); // NOI18N
71
72
imageLabel.setIcon(resourceMap.getIcon("imageLabel.icon")); // NOI18N
73
imageLabel.setName("imageLabel"); // NOI18N
74
75
76
77
78
122
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
.addGroup(layout.createParallelGroup(javax. swing.GroupLayout.Alignment.LEADING)
100
.addComponent(appVendorLabel1) .addComponent(appVersionLabel)
101
123
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
102
103
104
105
106
107
108
109
110
111
112
113
114
115
.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)
116
117
118
119
.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)
120
121
122
123
.addGroup(layout.createParallelGroup(javax.swing. GroupLayout.Alignment.BASELINE)
124
B.7. FACTOR_FRICCIONABOUTBOX.JAVA
124
125
126
127
.addComponent(closeButton) .addContainerGap()) );
128
129
130
131
132
133
134
// Variables declaration - do not modify private javax.swing.JButton closeButton; // End of variables declaration
135
136
137
138
125
Anexo C
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
%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
11
126
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
127
43
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
71
72
73
74
128
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
129
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
130
139
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
168
131
169
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
174
175
176
177
178
179
180
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
191
192
193
132
C.2.
%VARIABLES
10
11
12
%ECUACIONES
13
14
%laminar laminar=64./Re;
15
16
17
%explicita
18
19
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
133
24
25
26
27
28
29
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
%VARIABLES
Re1=[100:100:10000];
134
10
11
12
%ECUACIONES
13
14
%laminar laminar=64./Re;
15
16
17
%explicita
18
19
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
24
25
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
135
+208.815)).^0.9345)))).^2;
28
29
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
136