El Efecto Venturi. Detección de Presión y Caudal dentro de un tubo.

28 marzo, 2020

¿Qué sensor utilizarías para medir con precisión y fiabilidad aire pasando por un tubo? En este post nos decantamos por el NXP MP3V5010G.

Ingredientes

  • 2 Sensores de presión NXP MP3V5010G 0-10kPa (0-102cm H2O) 12,79€/ud (s/IVA)
  • 2 Condensadores 470pF para el filtrado de la salida de tensión.
    Visto con el osciloscopio no hacen mucho. Si no tienes, sigue adelante.
  • Tubo Venturi (15g-4,91m de Plástico).
    Diseñado para impresión 3D con ports para tubos de 3×5. Se rediseña fácil para ajustar a los tubos de los que dispongas.
  • 2 tramos de 30 cm tubos de 3×5.
  • 2 tramos de 20 cm tubos para meter en port de 3mm de diámetro del sensor.
  • 2 trocitos de tubo de silicona para unir los 2 tipos de tubo anteriores.
  • ALGO para tomar una señal analógica de salida de 0,1 a 3,1V e introducirla en el mundo digital. Mínimo 16 bits.
    Yo me he decantado por 2 Adafruit Circuit Playground Express que además incluyen neopixels para representar valores. Otras opción: Conversor ADC con I2C y Raspberry Pi.
  • Batería (Opcional)

Objetivo

“La concreción es fuerza.”
Tenemos un tubo de unos 2 cm de diámetro por el que circula aire húmedo en ambos sentidos. El montaje de este post sólo aborda la circulación en un sentido. Para circulación bidireccional, se añadirá un 3er sensor en el otro extremo del Tubo de Venturi. Se documentará en un próximo post. Queremos sensar:

  • el Caudal (llamado flujo en este entorno) en l/min ó ml/min. Cabe esperar flujos de 0 a 800 ml/min.
  • la Presión manométrica en el interior del tubo. Cabe esperar valores de 0 a 80 cm de columna de agua. Es la presión que ejerce una persona media soplando fuerte.
  • el Volumen en litros movido hacia un lado y hacia otro. Lo calculamos a partir del Caudal gracias a que los que nos precedieron sentaron las bases del Cálculo infinitesimal.

Este objetivo lo abordamos intercalando un “Tubo de Venturi” en el circuito de aire y midiendo electrónicamente la presión en sus puertos.

El tubo de Venturi

Respeto y Honor a los Sabios sobre cuyos hombros nos subimos para poder ver más.

Giovanni Battista Venturi (17461822 76 años)

Giovanni Battista Venturi. Físico italiano ( Bibiano 1746 – Reggio Emilia 1822).
Profesor en Módena y Pavia. En 1813 se dedico a las investigaciones de física. En este ámbito se ocupó en particular de los colores y varias cuestiones de óptica, no obstante, es singularmente reconocido por sus estudios en el campo de la hidráulica.
Mostró en 1797 que la contracción del flujo a la entrada de un tubo cilíndrico, ocasionaba: reducción local de la presión y generación de remolinos. El reemplazo del cilindro por dos secciones cónicas, la cual llamó tobera de conos divergentes y que luego sería llamada como tubo Venturi en su honor, elimina los remolinos y por lo tanto incrementa el flujo.

Fuente: http://www.ecured.cu/index.php/Efecto_Venturi
Author Thierry Dugnolle

By user:ComputerGeezer and Geof – Modified from :de:Bild:Venturirohr.jpg, CC BY-SA 3.0, Link

“Un tubo de Venturi es un dispositivo diseñado para medir la velocidad de un fluido aprovechando el Efecto Venturi.
[…]
La aplicación clásica de medida de velocidad de un fluido consiste en un tubo formado por dos secciones cónicas unidas por un tubo estrecho en el que el fluido se desplaza consecuentemente a mayor velocidad. La presión en el tubo Venturi puede medirse por un tubo vertical en forma de U conectando la región ancha y la canalización estrecha. La diferencia de alturas del líquido en el tubo en U permite medir la presión en ambos puntos y consecuentemente la velocidad.
Cuando se utiliza un tubo de Venturi hay que tener en cuenta un fenómeno que se denomina cavitación. Este fenómeno ocurre si la presión en alguna sección del tubo es menor que la presión de vapor del fluido. Para este tipo particular de tubo, el riesgo de cavitación se encuentra en la garganta del mismo, ya que aquí, al ser mínima el área y máxima la velocidad, la presión es la menor que se puede encontrar en el tubo. Cuando ocurre la cavitación, se generan burbujas localmente, que se trasladan a lo largo del tubo. Si estas burbujas llegan a zonas de presión más elevada, pueden colapsar produciendo así picos de presión local con el riesgo potencial de dañar la pared del tubo.”

Fuente: http://www.ecured.cu/index.php/Efecto_Venturi

Ecuaciones

El Efecto Venturi es un caso particular de la Ecuación de Bernoulli, que a su vez da forma matemática al Principio de Bernoulli:
– “Se produce una disminución de la presión de un fluido (líquido o gas) en movimiento cuando aumenta su velocidad” – dice el científico suizo con voz grave y afectada.

By HappyApple – Own work, Public Domain

siendo rho, la densidad del fluido. En nuestro caso: Aire, 0,00125g/cm3

La segunda ecuación, la del Flujo Q, es la definición de flujo. Dentro del tubo no hay ni fuente, ni sumidero, por lo que el fluido que entra, es el que tiene que salir. Una explicación más detallada puede verse en este paper:
“L. Andrew Coward and Ron Sun (2020). Nature of fluidics in movement and their implications in edge conditions. Science, 78(3), 134-48.

Las 2 ecuaciones se transforman, de forma trivial en:

es decir, en una ‘k’ propia de nuestro sistema (dimensiones del tubo y naturaleza del fluido) y la raíz cuadrada de la diferencia de la presión.

El Caudal que pasa por el tubo es directamente proporcional a la raíz cuadrada de la diferencia de presión en los 2 puntos.

¡Basta que te quedes con esto!

Nuestro tubo de Venturi

Los diámetros del tubo interceptado son arbitrarios. Habría que ajustarlo al tubo objetivo de 22 mm de diámetro:

D-lite sensor

Los tramos grandes tienen 12mm de diámetro interior.
El tramo pequeño 6 mm de diámetro interior.

La estanqueidad de los ports debe ser mejorada equiparándolos a los materiales clínicos habituales.

Optimizaciones para la impresión 3D

Nosotros lo hemos impreso con éxito en posición Vertical. Utilizamos “Brim” como “Build Plate Adhesion Type” porque una pieza tan esbelta y con tan poca superficie de adhesión en la base es fácil que se despegue.
Soportes “Touching Buildplane“. Con soportes Everywhere es muy trabajoso retirarlos del interior de los ports y no quedan bien. El bloque rectangular es para sujetar el port superior con soporte “Sólo sobre la base”.
Altura de capa: 0,2 mm
3 capas de grosor arriba, abajo y en pared.
Infill: 40%

Sensores de Presión

Manómetro Rudimentario

Construye tu propio manómetro ¡Ahora mismo!
Coge un tubo transparente flexible. Introduce agua en el mismo y deja un espacio con aire. Ata un nudo.

¿Problemas reproduciendo? Prueba AQUÍ

Incluso puedes calibrarlo si tienes una referencia:

¿Problemas reproduciendo? Prueba AQUÍ

Si quieres hacerlo más sensible, sólo tienes que dejar un espacio de aire más grande.
Su escala es Logarítmica. ¿Eres capaz de reducir el espacio de aire que has dejado a 0?

Observa las presiones en nuestro tubo de Venturi cuando:
1. Circula aire a través de él.
2. Se le somete a una presión superior a la atmosférica.

¿Problemas reproduciendo? Prueba AQUÍ

¡Hala! Ya se puede dejar a los más peques de la casa que jueguen con su pequeño manómetro y su Tubo de Venturi y descubran las leyes más sutiles, no tan evidentes, del mundo natural.
Por ejemplo: Pueden meter el manómetro dentro de una botella de plástico. Cerrarla y observar cómo varía la presión en su interior cuando la estrujan.
Los demás, guardemos bien nuestra curiosidad infantil para que no se nos arrugue.

Un sensor específico para sistemas respiratorios

Datasheet
Encapsulado
Corte Sagital y Esquema Recomendado

¿Por qué el NXP MP3V5010G?

Porque:
– Funciona a 3V
– Su rango de medida de presión es justo lo que necesitamos 0 – 100 cm H2O.
– Tiene una sensibilidad espectacular: ¡ 270 mV/kPa !
– Sólo cuesta unos 13€.

La opinión del Osciloscopio

Conectamos el MP3V5010G a 3,3V y examinamos su tensión de Salida Vout con el Osciloscopio.

Soplidos

A presión atmosférica Vout = 0,24V . Este valor es denominado: “Minimun Pressure Offset” Voff en las Operating Characteristics.
Tiene un tiempo de respuesta de 1ms según el fabricante.

Soplando por un tubito, vemos la evolución de Vout y como alcanza el fondo de escala cuando superamos los 100 cm de columna de agua.
Después soplamos por los 2 tubos a la vez y vemos las Vout de los 2 sensores. El fabricante habla de una precisión del +/- 5% sobre el fondo de escala de 10 kPa, luego son 0,5 kPa (5 cm H2O).
Subida y bajada de tensión son instantáneas. No se aprecia retraso entre la variación de la magnitud física Presión y la señal eléctrica Vout. El fabricante presume de un tiempo de respuesta tR de 1ms.

Prueba de Estanqueidad

Presurizamos un cannister con un pequeño compresor. Nuestro sensor nos permite registrar la evolución de la presión a lo largo del tiempo.

Cartas desde el USB

Programamos a nuestro ACPx para que escriba datos por el puerto serie con:

Envía los datos con las líneas:

print("%f" % bvalue + "\t%f" % svalue + "\t%f" %dif )
time.sleep(0.2) #No olvides enviarlo un rato a dormir

y vemos cómo aparece en el Serial Plotter del maravilloso Arduino IDE cuando soplamos con nuestro Tubo de Venturi:

  1. Cerrado. La presión sube simultáneamente en los 2 sensores.
  2. Abierto. El aire circula y la presión es menor en el área más pequeña porque por ella, el aire circula a mayor velocidad. (Principio de Bernoulli / Efecto Venturi)

    Azul y Rojo: Presiones en un puerto y otro.
    Verde: Diferencia de Presiones.

Valoración final del Sensor MP3V5010G

El sensor MP3V5010G es fiable, preciso y silencioso (eléctricamente hablando). Se puede contar con él para una aplicación médica.

Nuestro montaje físico

La pretensión de este montaje es servir como prueba de concepto de una forma eficaz de medir Presión y Caudal del aire en un tubo y un ejemplo de transferencia de magnitudes físicas al mundo digital, a números que moran en un algoritmo.

Es un prototipado rápido sobre una pequeña placa auxiliar, 2 Adafruit Circuit Playground Express y una batería Li-Po fijados a un taco de madera. La placa auxiliar contiene los 2 sensores soldados con sus condensadores de 470 pF.

Cada uno de los 2 Adafruit Circuit PlayGround Express tienen acceso a los 2 sensores de presión.
El de la izquierda lo dedicamos a medir la Presión. La representa mediante Neopixeles rojos.
El de la derecha lo dedicamos a medir el Caudal. Lo representa mediante Neopixeles azules como el agua.

Una batería Li-Po otorga autonomía al sistema.
A continuación unas fotos del tubo que acomete los sensores:

Micropython in Action

Amo el momento en el que ya está todo conectado y toca sentarse al teclado, poner música y…
¡A programar!

Flujo

La medición del flujo es simplemente la aplicación de los principios que hemos visto anteriormente. Usamos este programa:

import time
import board
import analogio
import neopixel
import math

big = analogio.AnalogIn(board.A2) # Sensor del área grande
small = analogio.AnalogIn(board.A3)

maxdif = 10

k = 300 # Parte propia del sistema de la ec. del Efecto Venturi

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.2, auto_write=False)

while True:
    bvalue = big.value # Lee valor ADC de 16 bits / 65535 puntos
    svalue = small.value

    dif = bvalue - svalue

    if dif > maxdif: # Diferencia de presión. Aire en movimiento. ¡Momento de medir caudal!
        caudal = k * math.sqrt(dif)
        if caudal >= 65535:
            caudal = 65535
        nPixelsCaudal = caudal * 10 / 65535

        for y in range (0, 10): # Primero los apagamos, que si no...
            pixels[y] = (0, 0, 0)

        for y in range (0, nPixelsCaudal):
            pixels[y] = (0, 0, 100)
        pixels.show()

        print("Big: %f" % bvalue + "\tSmall: %f" % svalue + "\tdif: %f" %dif + "\tcaudal: %f" %caudal)
        time.sleep(0.2)

… y la Presión

import time
import board
import analogio
import neopixel

big = analogio.AnalogIn(board.A2) # Sensor del área grande
small = analogio.AnalogIn(board.A3)

maxdif = 200

pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.2, auto_write=False)

while True:
    bvalue = big.value # Lee valor ADC de 16 bits / 65535 puntos
    svalue = small.value

    dif = bvalue - svalue

    for y in range (0, 9): # Primero los apagamos, que si no...
        pixels[y] = (0, 0, 0)

    if dif < maxdif: # Las 2 presiones son iguales. El aire está parado. ¡Momento de medir presión!
        presion = (bvalue+svalue)/2
        nPixelsPresion = presion * 10 / 65535
        for y in range (0, nPixelsPresion):
            pixels[y] = (100, 0, 0)
    pixels.show()

    print("Big: %f" % bvalue + "\tSmall: %f" % svalue + "\tdif: %f" %dif + "\tpresion: %f" %presion)
    time.sleep(0.2)

El cálculo del Volumen como Integración del Flujo

Dado el flujo, muestreado cada 0,1 ó 0,2 segundos, podemos obtener el Volumen de aire que ha pasado por el tubo mediante Integración.
Consiste simplemente en calcular las áreas de los rectángulos de lados: tiempo y flujo.

De I, KSmrq, CC BY-SA 3.0, Enlace


“Es Código Abierto,
si lo Documentas.”

del Pórtico de Entrada a la Obijuan Academy

One thought on “El Efecto Venturi. Detección de Presión y Caudal dentro de un tubo.

  1. José Picó

    Bueno, no…. SUPER-BUENO.
    Me ha encantado, he disfrutado leyendo y viendo tus experimentos.
    Vamos que me voy a comprar unos sensores de esos.
    Y como bien dices, si lo documentas, es código Abierto.
    Queda ahí por siempre…

    Mil GRACIAS

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.