miércoles, 12 de marzo de 2008

Problema: Medición de caudal basado en ultrasonido

El caudal de una tubería de 10 cm de diámetro varía de 1 lts/min hasta 100 lts/min. Diseñe un sistema de medida de ese caudal, basado en ultrasonido. El objeto mas pequeño encontrado en el fluido tiene un diámetro de 1 mm.

  1. Con el valor del reflector, determine la frecuencia mínima de ultrasonido a utilizar.


  2. La velocidad del fluido en el centro de la tubería se puede calcular por la expresión V = Caudal x Area interior de la tubería. Luego, determine la frecuencia recibida del sistema.


  3. Proponga el sistema de medición electrónico que convierta la frecuencia recibida en un valor mostrado en un display de siete segmentos.

    Respuestas

    Principios de funcionamiento:


El caudalímetro ultrasónico se basa en el efecto Doppler, el consiste en el cambio de frecuencia que sufre una radiación (mécanica o electromagnética), cuando se refleja en un reflector móvil respecto al emisor de la radiación. El cambio de frecuencia es proporcional a la velocidad relativa emisor-reflector, de la forma



…… Ec. 1

Donde,



Como reflectores pueden actuar todas las sustancias que tengan una impedancia acústica diferente a la del fluido. Para tener una reflexión efectiva, el tamaño de los reflectores debe ser superior a un 10% de la longitud de una onda del sonido en el fluido. Generalmente estas frecuencias son del orden de 1 Mhz.

Para conocer la frecuencia mínima del ultrasonido a utilizar, consideraremos los siguientes aspectos:
· Se asumirá una temperatura del fluido de 20 ºC
· Se asumirá que el caudal de fluido de la tubería es de agua destilada.
· La velocidad del sonido en el agua destilada a 20 ºC es de 1484 m/s
· El objeto más pequeño encontrado en el fluido tiene un diámetro de 1mm.
· α=30º
El tamaño de los reflectores debe ser superior al 10% de la longitud de onda del sonido en ese fluido, para asegurar una reflexión efectiva. Por cuanto la longitud de onda es máximo para el 100% de su valor, por cuanto



Por lo tanto para , se tendrá una frecuencia mínima, cumpliéndose además que el tamaño del reflector es mayor que el 10% de la longitud de onda del sonido en el fluido.

Por cuanto la frecuencia mínima del ultrasonido a utilizar viene dada por, 1.484 MHz





Así la frecuencia mínima del ultrasonido a utilizar debe ser mayor a 1.484MHz.

El área del interior de la tubería viene dada por,





Tenemos que la velocidad fluido se puede clacular por,


V= Caudal x Área interior de la tubería. , donde




Siendo A= Área interior de la tubería.


De la Ec. 1 tenemos que,




Así de Ec. 1 y Ec. 2 obtenemos,









Para una frecuencia mínima del ultrasonido,







Y considerando que,



tenemos que,





De donde la frecuencia recibida viene dada por,






Para el caudal mínimo, 1lts/min , la frecuencia recibida viene dada por







Para el caudal máximo, 100 lts/min, la frecuencia recibida viene dada por





A continuación se muestra el circuito propuesta para medir el caudal basado el ultrasonido.





El sistema consiste en la medición del caudal por sensor de ultrasonido, el dispositvo produce a su salida una diferencia de frecuencia entre la emitida y la recibida, esta diferencia es tomada por un convertidor frecuencia voltaje para luego colocarse dentro de un rango de voltaje de 0 a 5 v para la entrada al microprocesador, el cual muestra en unos siete segmentos el vlaor de voltaje proporcional a la frecuencia.


El diagrama circuital se presenta a continuación


El programa implementado se presenta continuación,


Programa hecho en lenguaje c para la resolución del problema
void refrescar(void);

void transforma_bcd(void);
void TRNSFORMA__BCD_7SEG(void)

int aux_hex=0x00,CONT=0x00,aux_hex1,cont_a=0x00,cont_b=0x00,valor;
void main(){setup_adc_ports(ADC_CLOCK_INTERNAL);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_wdt(WDT_OFF);

enable_interrupts(INT_TIMER1);

enable_interrupts(GLOBAL);

setup_oscillator(OSC_4MHZOSC_INTRCOSC_31250OSC_PLL_OFF);

set_tris_b(0XFF);

set_tris_d(0X00);

set_tris_c(0X00);

set_tris_b(0XFF);
float valor=0;
while(1)

{

DELAY_MS(5);
valor=read_adc();
refrescar();
DELAY_MS(5);

}

void transforma_bcd(void)

{

aux_hex1=aux_hex;

cont_a=0;

cont_b=0;

while(aux_hex1>=(0x0A))

{

cont_a++;

aux_hex1=aux_hex1-10;

}

cont_b=aux_hex1;

}

void TRNSFORMA__BCD_7SEG(void)

{

switch (valor)

{

case 0x00:

{

PORTD = 0X40;

}

break;

case 0x01:

{

PORTD = 0XF9;

}

break;

case 0x02:

{

PORTD = 0X54;

}

break;

case 0x03:

{

PORTD = 0X30;

}

break;

case 0x04:

{

PORTD = 0X19;

}

break;

case 0x05:

{

PORTD = 0X62;

}

break;

case 0x06:

{

PORTD = 0X02;

}

break;

case 0x07:

{

PORTD = 0X38;

}

break;

case 0x08:

{

PORTD = 0X00;

}

break;

case 0x09:

{

PORTD = 0X18;

}

break;default:break;

}

}


void refrescar(void)

{

PORTC=0x08;valor=cont_b;

TRNSFORMA__BCD_7SEG();

DELAY_MS(5);

PORTC=0x04;

valor=cont_a;

TRNSFORMA__BCD_7SEG();

DELAY_MS(5);

}


No hay comentarios: