proyetofinallevitador

June 24, 2019 | Author: Francis Richard Lopez Ramos | Category: Sistema de control, Esfera, Electrónica, Fuerza, Matemática
Share Embed Donate


Short Description

universidad nacional del callao - Ingenieria electronica...

Description

1. DESCRIPCION DESCRIPCION DEL PROYECTO Este proyecto involucra diseño, desarrollo y aplicación del curso de Sistemas de Control Digital. El sistema de control de levitación neumática consiste en suspender un cuerpo rígido en el aire dentro de un entorno abierto o cerrado sin que exista de por medio una fuerza física aplicada directamente sobre el cuerpo se denomina levitación, misma que es resultado de la existencia de una fuerza que contrarresta el peso del objeto del cuerpo u objeto levitante. El reto de este proyecto se centra en suspender al objeto en el aire por un tiempo dado y en una posición determinada. Módulo del censado: para censado: para monitorear la esfera dentro del ducto es necesario utilizar un sensor de posición. En este proyecto se emplea un sensor ultrasónico, el cual está constituido por un trasmisor y un receptor de ondas ultrasónicas. Cuando el emisor de ondas envía una secuencia de ellas se registra el tiempo exacto de envío, por otra parte cuando chocan y son reflejadas por el objeto levitante son captadas por el receptor, registrando el tiempo de llegada. A partir de cálculos matemáticos es posible obtener la distancia entre el sensor y el cuerpo rígido u objeto levitante (ver Fig. 1).

Fi g . 1. Medición de dis tanci tancia a del del s ensor hacia hacia el objeto. objeto. a) Módulo de control: Para control: Para el control de la esfera se utiliza un ventilador con un motor de 12 volts mismo que es asegurado asegur ado en la base del sistema con la finalidad de generar corrientes de aire variables a lo largo del ducto que permitan manipular la posición de la esfera (ver Fig. 2). Sin embargo controlar la velocidad del motor resulta complicado debido a la no linealidad del mismo, para resolver el problema se realizó una caracterización del comportamiento del motor midiendo el voltaje de la entrada y la altura a la cual se encontraba la esfera en cada instante de tiempo.

Fi g . 2. P rototipo rototipo del si s tema tema de levita levitaci ción ón neumá neumática.

b)

Módulo de interfaz de comunicación: para llevar a cabo la comunicación entre el sistema y la computadora se utilizó tecnología Arduino por ser una de las más comerciales y económicas en el mercado. Además este módulo se complementa con electrónica digital y analógica.

c) Combinación de Módulos: Los tres módulos se encuentran comunicados entre sí (ver Fig. 3)  para ello se necesitan dispositivos electrónicos (reguladores de voltaje, resistencias fijas y variables, y transistores de pequeña señal) que permiten el acoplamiento entre los mismos. El potenciómetro conectado a la tarjeta permite modificar en tiempo real la posición deseada de la esfera modificando en cada instante de tiempo el error generado. Se utilizó un regulador de voltaje de 5 volts mismo que garantiza un paso de corriente no mayor a 1 ampere. Se cuenta con una pantalla misma que permite visualizar la posición de la esfera, la amplitud del error absoluto y de la señal de control, todo esto con la finalidad de interactuar y visualizar los datos más relevantes del control PID, sin embargo a través de la programación es posible realizar cambios de las variables desplegadas, así también modificar el tipo de controlador sea P, PI o PID.

Fi g .3. E lementos interconectados del sis tema de levitación neumática.

2. MODELAMIENTO El levitador posee características dinámicas no lineales ideal para ser controlado con sistemas de control avanzado y otros tipos de algoritmos de control como control no lineal. El modelo matemático del levitador neumático involucra elementos mecánicos, aerodinámicos y eléctricos. La figura 1 muestra las fuerzas que actúan sobre la esfera ubicada dentro del tubo.

Fd

mb

Fg

Figura 1. Fuerzas sobre la esfera  Aplicando la segunda ley de Newton se obtiene las ecuaciones:

  ∑ =    =   (1)   = − +  (2)  es el peso de la esfera y  es la fuerza de arrastre que actúa sobre ella. Dichas fuerzas están dadas por:

 =   (3)  = 12  ( −  ) (4) 





En donde,  es la masa de la esfera,  es el coeficiente de arrastre,  es la densidad del aire,  es el área frontal de la esfera,  la velocidad del aire en el tubo y  la velocidad de la esfera.

 



Combinando las ecuaciones (2), (3) y (4) resulta:

  = −  + 12   ( −  ) (5)



Para una esfera, la ecuación (5) toma la forma:

 =−+ 3   ( −  ) (6)  8    es el radio de la esfera y  su densidad. El cambio de velocidad de la columna de aire dentro del tubo se puede modelar mediante la ecuación:

 = ( , ) −  (7)   La relación ( , ) depende de la frecuencia   del voltaje aplicado al ventilador centrífugo y de la altura medida con respecto al orificio de entrada del aire al tubo  y se obtiene experimentalmente para diferentes valores de   y de . Finalmente, el sensor de distancia (GP2D12) se puede modelar como un sistema de primer orden de la forma:

 =  −  (8)   En donde  es la posición de la esfera,  es la posición del sensor y  es su constante de tiempo que se obtiene experimentalmente.

La velocidad del aire producido por el ventilador en un punto determinado a una distancia  concreta de la boca de insuflación es la siguiente



 = ( , ) =  √  0 /

  



En donde  es igual a la velocidad del flujo de aire en m/s en un punto dado,  es la altura de la esfera en metros,   es la velocidad de salida del aire en la boca de insuflación, 0 es el área libre de la boca de insuflación





Hallando los valores Kp, Ki y Kd.

PROGRAMACION DEL LEVITADOR NEUMATICO EN ARDUINO volatile unsigned long tiempoAnterior; // variable para mantener el tiempo de muestreo volatile double dT; int trigPin = 5; // Pin disparador. Se puede usar otro pin digital int echoPin = 3; // Pin eco. Se puede usar otro pin digital long duracion; double kp=13.4331015; double ki=0.02368027; double kd=40.299115; double ref=25; double error=0; double errorAnt=0; double errorSuma = 0; double errorDer=0; void setup() { Serial.begin(9600); // Establece la velocidad de datos del puerto serie pinMode(trigPin, OUTPUT); // Establece pin como salida pinMode(echoPin, INPUT); // Establece pin como entrada digitalWrite(trigPin, LOW); // Pone el pin a un estado logico bajo tiempoAnterior=0; } void loop() { unsigned long tiempoActual; tiempoActual = millis(); dT=(double)(tiempoActual - tiempoAnterior) ; //Tiempo de muestreo en milisegundos if(dT>=1){

//cada 10mS (tiempo de muestreo)

digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duracion = pulseIn(echoPin, HIGH ); //Devuelve la longitud del pulso del pin Echo en us long distancia = (duracion*0.017); distancia=45-distancia; error=ref-distancia; errorDer=error-errorAnt; errorSuma += (ki*error); double U=kp*error+(errorSuma)+kd*errorDer;

if (U>255){ U=255; } if (U
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF