Boletín de problemas 3
Fecha de entrega: viernes
1 de marzo de 2002
Problema 1: Calentamiento de
fluidos y tuberías [10%]
Se trata de una pregunta corta
que sirve de preparación para el problema principal
que viene a continuación. Escriba una clase
Tubería y una clase Fluido siguiendo las instruciones
siguientes. Escriba también un método
main() en una clase Test para:
- Crear un array de 3 Fluidos
(cada uno con un nombre y una densidad). Escoja cualquier
valor.
- Crear un Vector de 3 Tuberías
(cada una con un nombre, longitud y diámetro).
Escoja cualquier valor.
- Establezca la misma aspereza
para todas las tuberías. (Variable static).
- El método principal termina
mostrando los datos para cada fluido y tubería,
así como las variables static.
Las clases Tubería y Fluido
sólo necesitan un constructor cada una, los campos
precedentes y un método para imprimir los datos.
La clase Tubería también
necesita un método static para crear el parámetro
de aspereza y para imprimir los valores de aspereza y
gravedad. Mantiene la gravedad como constante única
en todas las tuberías.
En este problema se ven los arrays,
los vectores y los métodos y variables static,
que son los conceptos clave del problema siguiente.
No olvide importar java.util.* para la clase Vector.
Problema 2: flujo del fluido en
las tuberías [90%]
Descripción del problema
Tiene que proyectar una red de
tuberías a través de la cual pasen líquidos.
A continuación, mostramos el dibujo de la red.
Se supone que las tuberías son bastante rectas,
de modo que los cambios de presión provienen
únicamente de cambios en la elevación
y por fricción. En el dibujo se han exagerado
los ángulos.
Cada tubería tiene un diámetro
D, una longitud L y un cambio en la elevación
z. Todas las tuberías tienen la misma aspereza
h. El programa calculará las caídas en
la presión y la medida del caudal en los puntos
B, C, D, E y F, dada una magnitud del flujo de entrada
en el punto A. Las características de cada
sección son:
|
Sección
|
Diámetro D (m)
|
Longitud L (m)
|
Cambio elevación
z (m)
|
|
AB
|
0.5
|
50
|
-0.1
|
|
BC
|
0.4
|
15
|
-0.05
|
|
CD
|
0.3
|
5
|
-0.03
|
|
CE
|
sqrt(7) x 10-1
|
8
|
-0.03
|
|
BF
|
0.3
|
25
|
+0.05
|
Las entradas iniciales de muestra
en el punto A son:
- Presión en A: 100.000
Pa
(Pa= pascal, o Newton/m2)
- Velocidad del caudal en la tubería
(vA): 1 m/s
Aspereza de la tubería h=
0,00001 m en todas la tuberías
Las características de los
4 fluidos son:
|
Fluido
|
Densidad r, kg/m3
|
Viscosidad q, kg/(m-s)
|
|
Agua
|
103
|
10-3
|
|
Aire
|
1.2
|
1.8 x 10-5
|
|
Alcohol etílico
|
0.79 x 103
|
1.2 x 10-3
|
|
Alcohol metílico
|
0.79 x 103
|
0.62 x 10-3
|
La ecuación para calcular
el cambio de presión en una tubería es:
pB= pA
r g (z + (f L v2)/ (2Dg))
El factor fricción f depende
del número Reynolds R, del flujo y de la aspereza
de la tubería. El número Reynolds
es:
R= rvD/q
Para el régimen laminar
(R< 2000, en tuberías),
f= 64/R
Para el régimen turbulento
(R >2000 en tuberías; ignoramos la 'transición'),
hay muchos modelos de f. El más común,
la fórmula Colebrook, requiere una solución
numérica de una ecuación, por lo general,
mediante el método Newton, que veremos más
tarde en el presente curso 1.00. En esta tarea,
utilizaremos la fórmula de Haaland, que calcula
f directamente:
f= (1.81 log10 (6.9/R
+ (h/(3.7D))1.11))-2
Java no tiene un método
log10; observe que log10 x = (loge x)
(log10 e)= (ln x) (0.4343).
En su red, las áreas de
las secciones transversales de las tuberías que
entran y salen de cada unión son las mismas,
lo que facilita la conservación del caudal. Así,
por ejemplo, en la unión B, la presión
del caudal de salida y la velocidad de AB es igual a
las presiones del caudal de entrada y a las velocidades
de BC y BF.
Programa
Debe crear un programa que ejecute
el análisis de un sistema de tuberías
utilizando el modelo presentado anteriormente. Aquí
le ofrecemos algunos consejos, pero debe usted elaborar
su propio diseño. Ciertas características
serán obligatorias; más adelante las mencionamos.
Lo principal en este problema son
las tuberías y los fluidos, por tanto, constituyen
las clases lógicas que vamos a definir. Necesitará
también una clase que contenga el método
main() para lanzar y gestionar los objetos y métodos
que escriba.
La clase tubería (o la más
cercana, si ha creado su propio diseño), debe
contener dos métodos static que
son útiles en líneas generales y que pueden
llamarse desde otros métodos u objetos para ayudar
a realizar los cálculos en otros programas sin
tener que instar un objeto tubería de su diseño. Estos
dos métodos sirven para calcular la fricción
f y el número Reynolds R en una tubería.
También conviene que la clase tubería
tenga campos static apropiados para almacenar
los valores de varios parámetros que son iguales
para todas las tuberías (o incluso en términos
más generales en el caso de la gravedad).
Calcule el número Reynolds,
la fricción, el cambio de presión, la
presión de salida y el volumen del caudal en
cada tubería. El volumen del caudal es simplemente
el área de la sección transversal de la
tubería multiplicada por la velocidad. Cada
tubería debería mostrar sus propios datos
(incluido el nombre), y tener un campo que indicase cómo
se conecta con las tuberías adyacentes, en el
modo necesario para realizar los cálculos. Seguramente
querrá mantener una referencia a las tuberías
adyacentes en cado objeto tubería; reflexione
sobre si es mejor almacenar las tuberías ascendentes,
las descendentes o todas las adyacentes. (La mejor
solución es muy sencilla). Imagine que la red
de tuberías es siempre un árbol ramificado,
tal y como se muestra en la figura.
La clase fluido puede ser bastante
sencilla, basta con que contenga los parámetros
de cada fluido. Está claro que existe una
interacción entre los fluidos y las tuberías,
ya que los primeros fluyen en las últimas. Tal
vez sea más natural tener los métodos
de cálculo asociados a las tuberías y
no a los fluidos, pero esta decisión es suya. Tenga
en cuenta que el número Reynolds y la fricción
son conceptos generales en mecánica de fluídos,
pero existen funciones muy diferentes para calcularlos
ya que el caudal puede viajar por tuberías o
por canales abiertos o por láminas, etc., así
la mayoría de ingenieros asociaría estos
métodos a las tuberías.
El métod main() debe hacer
lo siguiente:
-
Definir los 4 fluidos y sus
propiedades. Poner los fluidos en un array.
-
Definir las 5 tuberías
y sus propiedades. Colocar las tuberías en
un vector. Piense en cómo debería
ordenarlos. Normalmente, en aras de la coherencia,
trataría las tuberías y los fluidos
del mismo modo, pero queremos que trabaje con arrays
y vectores en esta tarea. Del mismo modo, normalmente
usted leería esos parámetros desde
un archivo, pero como todavía no hemos visto
archivos, "codifique por hardware" los
parámetros del fluido y la tubería
en su programa. No puede pedir al usuario que
introduzca cada vez todos estos datos.
-
Preguntar al usuario, mediante
JOptionPanes:
-
Repasar el sistema de tuberías
para calcular las características de cada
una
-
Mostrar el tipo de fluido y,
a continuación, los detalles de cada tubería
Fase de prueba
Pruebe su programa con los regímenes
laminar y turbulento, en los 4 fluidos. Para el
segmento AB, los resultados correctos se muestran más
abajo (con menos dígitos de los que Java
le dará) para una presión inicial de 100.000
N/m2, una velocidad inicial de 1 m/sec, y
una aspereza de 0.
Fluid type: water
Pipe AB
Reynolds number: 500000.0Friction:
0.0129
Pressure at inlet: 100000.0
Pressure at outlet: 100333.9
Pressure change: 333.9
Volume flow rate: 0.196
Entrega del trabajo
Requisitos
- Problema 1: solamente por correo
electrónico. No es necesario entregarlo en
papel.
- Problemas 2 y 3: copia en papel
y copia electrónica de TODOS los códigos
fuente (todos los archivos con la extensión
.java).
- Incluya en TODOS los archivos
que presente su nombre, el nombre de usuario, la sección,
el nombre del profesor ayudante, el número
de trabajo y una relación de las personas con
las que haya comentado el boletín de problemas.
- NO entregue copias electrónicas
o en papel de código compilado (archivos .class).
Sanciones
- Por pérdida de copia
en papel: -10% de la puntuación del boletín
de problemas.
- Por pérdida de copia
electrónica: -30% de la puntuación del
boletín de problemas.
- Por entrega fuera del plazo:
-20% de la puntuación del boletín de
problemas si es un día de retraso. Por
más de un día de retraso = NO SE PUNTUARÁ
|