Citation preview

INGENIERÍA ELECTRÓNICA

SISTEMAS DE CONTROL ALUMNO: BRIAN CUCHIPARTE DOCENTE: ING. FRANKLIN SILVA

1. TEMA: Control PID de Barra y Bola con Arduino 2. OBJETIVOS: 2.1 OBJETIVO GENERAL:  Diseñar e implementar un controlador PID para situar una bola de pin pon en el punto central de una barra. 2.2 OBJETIVOS ESPECÍFICOS:  Investigar el funcionamiento de un control PID para su adecuada aplicación.  Inquirir el funcionamiento de cada uno de los elementos a utilizar.  Diseñar el diagrama del circuito controlador de una barra y bola con Arduino.  Implementar el controlador y analizar los resultados obtenidos.

3. RESUMEN El objetivo del presente controlador es situar la bola en el centro de la barra inclinándola de forma conveniente mediante un lazo cerrado de control. Es un sistema clásico en la Ingeniería de Control. Mediante un Sensor de distancia, medimos la posición de la bola. Con un Controlador, mediante control PID, calculamos el ángulo en el que deberíamos inclinar la barra para colocar y estabilizar la bola en el centro de la barra. Finalmente, un actuador modifica la inclinación de la barra y así regular la posición de la bola. 4. ABSTRACT The purpose of the present controller is to place the ball in the center of the bar by conveniently tilting it by means of a closed control loop. It is a classic system in Control Engineering. Using a Distance Sensor, we measure the position of the ball. With a controller, by PID control, we calculate the angle at which we should tilt the bar to place and stabilize the ball in the center of the bar. Finally, an actuator modifies the incline of the bar and thus regulate the position of the ball. 5.         

MATERIALES Arduino UNO. Un sensor de distancia infrarrojo SHARP 2Y0A21. Un servo de 6.9 kg-cm de par motor. Una biela anclada al servo-motor. Una barra de aluminio de 1 x 2.5 cm. Un protoboard. Un capacitor electrolítico de 10 uF. Cables de conexión. Soportes para la barra y el servomotor.

 Computador con software Arduino y processing. 6. MARCO TEÓRICO CONTROLADOR PID Un controlador PID (Proporcional Integrativo Derivativo) es un mecanismo de control genérico sobre una realimentación de bucle cerrado, ampliamente usado en la industria para el control de sistemas. El PID es un sistema al que le entra un error calculado a partir de la salida deseada menos la salida obtenida y su salida es utilizada como entrada en el sistema que queremos controlar. El controlador intenta minimizar el error ajustando la entrada del sistema. El controlador PID viene determinado por tres parámetros: el proporcional, el integral y el derivativo. Acción proporcional La respuesta proporcional es la base de los tres modos de control, si los otros dos, control integral y control derivativo están presentes, éstos son sumados a la respuesta proporcional. “Proporcional” significa que el cambio presente en la salida del controlador es algún múltiplo del porcentaje del cambio en la medición. Este múltiplo es llamado “ganancia” del controlador. Para algunos controladores, la acción proporcional es ajustada por medio de tal ajuste de ganancia, mientras que para otros se usa una “banda proporcional”. Ambos tienen los mismos propósitos y efectos. Acción integral La acción integral da una respuesta proporcional a la integral del error. Esta acción elimina el error en régimen estacionario, provocado por el modo proporcional. Por contra, se obtiene un mayor tiempo de establecimiento, una respuesta más lenta y el periodo de oscilación es mayor que en el caso de la acción proporcional.

Acción derivativa

La acción derivativa da una respuesta proporcional a la derivada del error (velocidad de cambio del error). Añadiendo esta acción de control a las anteriores se disminuye el exceso de sobre-oscilaciones. Existen diversos métodos de ajuste para controladores PID pero ninguno de ellos nos garantiza que siempre encuentre un PID que haga estable el sistema. Por lo que el mas usado sigue siendo el método de prueba y error, probando parámetros del PID y en función de la salida obtenida variando estos parámetros. Aplicaciones Los controladores PID son suficientes para resolver el problema de control de muchas aplicaciones en la industria, particularmente cuando la dinámica del proceso lo permite (en general procesos que pueden ser descritos por dinámicas de primer y segundo orden), y los requerimientos de desempeño son modestos (generalmente limitados a especificaciones del comportamiento del error en estado estacionario y una rápida respuesta a cambios en la señal de referencia). Los fabricantes proporcionan los controladores PID de variadas formas. Existen sistemas del tipo “stand alone” con capacidad para controlar uno o varios lazos de control. Estos dispositivos son fabricados en el orden de cientos de miles al año. El controlador PID es también un ingrediente importante en los sistemas de control distribuido, ya que proporciona regulación a nivel local de manera eficaz. Por otro lado, pueden también venir empotrados, como parte del equipamiento, en sistemas de control de propósito especial, formando así parte integrante de la aplicación.

ARDUINO Arduino es una plataforma de hardware libre basada en una sencilla placa de entradas y salidas simple y un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring. Arduino se puede utilizar para desarrollar objetos interactivos autónomos o puede ser conectado a software del ordenado. Las placas se pueden montar a mano o adquirirse. Su forma física se puede apreciar en la figura 1 mostrada a continuación:

Figura 1. Placa física Arduino UNO

Funcionamiento: Como pasa con la mayoría de las placas microcontroladores las funciones de Arduino pueden resumirse en tres. En primera instancia, tenemos una interfaz de entrada, que puede estar directamente unida a los periféricos, o conectarse a ellos por puertos. El objetivo de esa interfaz de entrada es llevar la información al microcontrolador, la pieza encargada de procesar esos datos. El mentado microcontrolador varía dependiendo de las necesidades del proyecto en el que se desea usar la placa, y hay una buena variedad de fabricantes y versiones disponibles. Por último, tenemos una interfaz de salida, que lleva la información procesada a los periféricos encargadas de hacer el uso final de esos datos, que en algunos casos puede bien tratarse de otra placa en la que se centralizará y procesará nuevamente la información, o sencillamente, por ejemplo, una pantalla o un altavoz encargada de mostrar la versión final de los datos.

SENSOR INFRARROJO DE DISTANCIA SHARP El sensor de distancia Sharp permite obtener la distancia entre el sensor y algún objeto dentro del rango de 4 a 80cm. Integra tres dispositivos: Un detector sensitivo de posición (PSD), un diodo emisor de infrarrojos (IRED) y un circuito procesador de señales.

La diferencia en la reflectividad de los materiales, así como la temperatura de funcionamiento no afectan en gran medida la operación de este sensor debido al método de detección usado basado en triangulación. El dispositivo entrega una salida en voltaje correspondiente a la distancia de detección. También se puede utilizar como un sensor de proximidad con la ayuda de un comparador o mediante software. Para obtener la distancia en cm, se recomienda tomar como guía la gráfica voltaje vs. distancia incluida en el datasheet; su forma física se aprecia en la Figura 2.

Figura 2. Forma física de un sensor infrarrojo Sharp

SERVO MOTOR Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos. Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja en la frecuencia de los 50 hertz, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la

señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 1 a 1,4 milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido anti horario; 1,5 milisegundos representa un estado neutro para los servomotores estándares. A continuación, se exponen ejemplos de cada caso; Figura 3.:

Figura 3. Posición de servo-motor y actuación del PWM

7. DESARROLLO:

El diseño del control PID a implementarse se realizará según el siguiente diagrama de bloques. Figura 4.:

Figura 4. Diagrama de bloques a implementarse.

Sensado de la posición de la Bola La realizamos mediante el sensor de distancia mediante luz infrarroja y detector PSD: SHARP 2Y0A21. Figura 5.

Figura 5. Ubicación del sensor en la barra. Si la Bola se acerca más de 4 cm al sensor, la medida es errónea. Limitamos el movimiento de la bola en esa distancia. Figura 6.

Figura 6. Freno para bola de pin pon

Acondicionamiento de la señal del sensor

Para filtrar (paso bajo) la señal del sensor y tener una señal más precisa y repetitiva, conectaremos un condensador electrolítico de 10μF entre la salida del sensor y tierra. Figura 7.

Figura 7. Filtrado para acondicionar la señal.

Como la tensión máxima que vamos a medir es de 3,1V, configuraremos la referencia de tensión del Arduino a 3,3V y conectaremos el pin AREF con la salida de 3,3V del Arduino. Figura 8.:

Figura 8. Conexión de pin AREF con 3.3 V.

De esta forma, los 1024 puntos que nos proporciona el Conversor Analógico Digital de 10 bit del Arduino tendrán un fondo de escala de 3,3V en lugar de los 5V por defecto. Así, incrementamos la resolución de 5mV/ADC a 3mV/ADC. Actuador Inclinaremos la barra con un Servo HEXTRONIK HX5010 de 6,9 kg.cm de par motor y una biela de fibra de vidrio anclada a un extremo de la barra. Figura 9.

Figura 9. Servo-motor con biela anclada.

En este servo en concreto la posición 0º se obtiene con pulsos de 0,5ms y el giro de 180º con 2,3ms. Controlador Utilizaremos un clon de Arduino con microcontrolador ATMEL ATMEGA328-PU equiparable al Arduino UNO o al antiguo Duemilanove original.  Recibe la medida de la posición de la bola en su entrada analógica A0.  Emite pulsos para controlar el servo en su salida digital 12.  A través de su conexión USB envía distintos juegos de datos para debug o tramas

que

son

recibidas

por

un

PC

ejecutando

una aplicación

desarrollada en Processing y que nos permitirá disfrutar de gráficas de la posición y la velocidad de la bola en función del tiempo, Figura 10.

Figura 10. Gráfica en Processing de la posición (azul) y velocidad (rojo).

Esquema del sistema completo El diseño del circuito a implementarse se puede apreciar a continuación. Figura 11:

Figura 11. Diseño del circuito a implementar.

Esquema del control completo El diseño del controlador a implementarse se puede apreciar a continuación. Figura 12:

Figura 12. Diseño del controlador a implementar.

8. ANÁLISIS DEL RESULTADO Las secuencias de medida y reacción (los ciclos de programa) no se harán tan rápido como pueda el microcontrolador, sino cada 50ms (valor almacenado en la variable period). Se realiza así porque los sistemas de control PID funcionan mejor si los ciclos de medida y reacción siempre tienen la misma duración. El microcontrolador, con reloj de 16MHz, tiene velocidad suficiente para hacer el ciclo de programa en menos de 10ms. Pero con ciclos tan rápidos, la medida de la velocidad de la bola pierde precisión porque las diferencias en la posición de la bola entre ciclos son mínimas y se calcula la velocidad de la bola como la diferencia en su posición en 2 ciclos consecutivos de programa. Si se alarga el periodo a 100ms, la medida de la velocidad es más precisa, pero el servo funciona de una forma perceptiblemente intermitente. Tras las pruebas realizadas, un período de 50ms aporta mediciones aceptables de la velocidad de la bola y un funcionamiento del servo fluido. 9. CONCLUSIONES  Se buscó que el valor más pequeño de kp sea suficiente para inclinar la barra cuando la bola está cerca del objetivo para lo que se considera que valores grandes hacen que la bola alcance demasiada velocidad y luego hay que detenerla en el centro.  Para el sistema construido, un valor adecuado de kp es 2. Sólo con el término proporcional, la bola nunca se estabiliza, por lo que se implementa el término derivativo.  El término derivativo opera sobre la diferencia de posiciones entre el ciclo actual y el anterior. Es decir, sobre la velocidad de la bola, ya que el tiempo transcurrido entre una medida y la siguiente es siempre el mismo. Ese tiempo es el periodo de medida y reacción y en nuestro sistema son 50ms.  El término Integral considera la posición de la bola (como el término Proporcional) y cuánto tiempo lleva allí, es decir, el término Integral actúa sobre el área que queda bajo la curva de la posición a lo largo del tiempo.  El término integral aporta más precisión, pero hay que

acotar

convenientemente su acción porque de lo contrario conlleva demasiada inestabilidad. 10. RECOMENDACIONES

 Establecer correctamente la posición gradual física del servo-motor (0º 90º 180º) para que se estabilice correctamente la bola en la barra.  Colocar una fuente alterna de voltaje para el consumo de energía del servomotor y conectar la tierra de éste con la del Arduino.  Limitar la bola a 4 cm del sensor de distancia infrarrojo.

11. BIBLIOGRAFÍA: [1] http://roble.uno/control-pid-barra-y-bola-arduino/ [2] http://www.naylampmechatronics.com/sensores-proximidad/203-sensor-infrarrojo-dedistancia-sharp-gp2y0a21.html [3] https://www.taringa.net/posts/ciencia-educacion/18550773/Que-es-y-para-que-sirvearduino.html [4] https://control-pid.wikispaces.com/

ANEXOS