Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. ÍNDICE RESUMEN RESUMEN EN ESPAÑOL RESUMEN EN INGLÉS Parte I: MEMORIA. Capítulos. 1 Introducción y planteamiento del proyecto................................ 4 1.1 Introducción y motivación. ...................................................................... 4 1.2 Objetivos del Proyecto.............................................................................. 6 1.2.1 Circuito de medida y control de la corriente del motor. .............................................6 1.2.2 Sensado y control de la velocidad del motor. .............................................................7 1.3 Metodología. .............................................................................................. 9 1.4 Recursos. .................................................................................................. 10 2 Descripción general del proyecto .............................................. 11 2.1 Estructura Real del Coche. .................................................................... 13 2.1.1 Funciones de la PDA. ...............................................................................................13 2.1.2 Funciones de la FPGA. .............................................................................................16 2.1.3 Funciones de la driver de la cámara. ........................................................................17 2.1.4 Funciones del microcontrolador. ..............................................................................18 3 .-Control de la corriente del motor. .......................................... 19 3.1 .Medida de la corriente del motor. ........................................................ 19 3.1.1 Principio básico de funcionamiento..........................................................................20 3.1.2 El Motor CC. Fuerza contraelectromotriz de un motor de corriente continua .........22 3.1.3 Efecto de la carga en un motor de corriente continua (cc). ......................................24 3.1.4 Dispositivo Puente en H para el control del motor de corriente continua. ...............26 3.1.4.1 Funcionamiento............................................................................................................26 3.1.5 Sensado de la corriente del motor.............................................................................28 3.1.6 Amplificador operacional. ........................................................................................30 1 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3.1.7 Funcionamiento básico de un seguidor.....................................................................31 3.1.8 Funcionamiento básico de un amplificador diferencial............................................32 3.1.9 Diseño del circuito de medida de la corriente del motor. .........................................35 3.1.10 Filtro Paso bajo. ........................................................................................................39 3.2 Control de la corriente de medida......................................................... 44 3.2.1 Principio de funcionamiento de un comparador con histéresis. ...............................44 3.2.2 Control todo o nada...................................................................................................51 3.2.3 Diseño del circuito de control todo o nada. ..............................................................52 4 .-Control de la velocidad del motor........................................... 55 4.1 Circuito de medida de la velocidad del motor. Hardware.................. 55 4.2 Circuito de medida de la velocidad del motor. Hardware-Software. 62 4.2.1 La cámara..................................................................................................................63 4.2.2 Encoders....................................................................................................................64 4.2.3 Resumen de cada uno de los programas utilizados: .................................................66 4.2.3.1 Programa de la cámara.................................................................................................66 4.2.3.2 Programa del árbitro. ...................................................................................................66 4.2.3.3 Programa de los encoders. ...........................................................................................68 4.3 Diseño del control de velocidad del motor............................................ 73 4.3.1 Historia de la regulación automática. .......................................................................73 4.3.2 Teoría clásica: control en lazo cerrado. ....................................................................75 4.3.3 Control proporcional integral....................................................................................77 5 Resultados. .................................................................................. 85 5.1 Pruebas en el hardware.......................................................................... 85 5.2 Pruebas del control de corriente. .......................................................... 91 5.3 Pruebas del PWM por cambio del duty_cycle. ..................................... 93 6 Conclusiones................................................................................ 96 7 Futuros desarrollos..................................................................... 97 7.1 Mejoras en los circuitos de medida de la corriente y velocidad. ........ 97 2 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 7.2 Control de velocidad............................................................................... 98 7.3 Generación de referencias...................................................................... 98 7.4 Consideraciones sobre nuevos motores. ............................................. 100 8 Bibliografía................................................................................ 101 3 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1 Introducción y planteamiento del proyecto. 1.1 Introducción y motivación. En menos de 30 años la robótica ha pasado de ser un mito a una realidad imprescindible en el actual mercado productivo. Posiblemente una de las causas principales que haya dado tanta popularidad al robot sea su mitificación, propiciada o amplificada por la literatura y el cine de ciencia ficción. Sus orígenes de ficción, su controvertido impacto social, su aparente autonomía y su contenido tecnológico originan que sea admirado y temido a la vez. Las investigaciones y desarrollos sobre robótica han permitido que los robots tomen posiciones en casi todas las áreas productivas y tipos de industria. En pequeñas o grandes fábricas, los robots pueden sustituir al hombre en aquellas tareas repetitivas y hostiles, adaptándose inmediatamente a los cambios de producción solicitados por una demanda variable. Los futuros desarrollos de la robótica apuntan a aumentar su movilidad, destreza y autonomía de sus acciones. La mayor parte de los robots son con base estática y se utilizan en aplicaciones industriales, pero los robots han evolucionado en gran medida lo que conlleva a que aparezcan nuevos robots dedicados a aplicaciones no industriales. En nuestro caso, un robot de pequeñas dimensiones que puede conducir de forma autónoma por una carretera, puede aplicarse tanto en industrias como implantarse en un coche al cual se le da la autonomía de conducir, pero también puede ser útil en pequeños circuitos como ocurre dentro de un parque de ocio, pero con una única salvedad, el robot se debe mover en un terreno que se asemejase a una carretera pues el robots se mueve entre dos líneas que es como hasta ahora está diseñado. En la actualidad existen multitud de proyectos dentro del sector automovilístico que tienen como objetivo la conducción automática. De hecho, se espera que la empresa General Motors incorpore en el Opel Vectra del 2008 un sistema que permitirá que el coche circule de forma autónoma bajo condiciones de tráfico intenso hasta una velocidad de unos 100 km/h. Otro ejemplo es el proyecto Autopía, desarrollado en el Instituto de Automática Industrial (IAI). En este caso ya se ha conseguido que el vehículo circule de forma autónoma y más recientemente que reduzca su velocidad e incluso se detenga si es necesario ante la presencia de un obstáculo. 4 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Es evidente que un sistema cuyo objeto sea que un vehículo circule sin que ninguna persona realice ninguna acción debe ser a la vez eficiente y robusto, ya que en este ámbito los errores no son admisibles. Para conseguir esto se combinan distintos sistemas como emisores y receptores de láser, cámaras, etc. El objetivo es reconocer patrones previamente definidos que permitan realizar ciertas acciones para evitar alcances, salidas de la carretera, etc. En la mayoría de los casos todo el procesamiento de las señales se realiza mediante software. Así, se pueden realizar tareas muy complejas, pero suele ser necesario un procesador bastante potente que sea capaz de realizar todos los cálculos necesarios. Aún con microprocesadores potentes, un sistema de procesamiento de señal software es siempre más lento que uno hardware. Además, de todos es sabido que los sistemas operativos que tienen que atender a un gran número de periféricos en tiempo real son propensos a tener fallos inesperados de funcionamiento. De ahí una de las motivaciones más importantes para la realización de este proyecto. En este caso, el procesamiento de señal se realiza a nivel de hardware en una FPGA. Se trata por tanto de un sistema sencillo, rápido y robusto. Además, como se ha dicho antes se va a implantar en un robot de reducidas dimensiones, lo cual también supone un reto. 5 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1.2 Objetivos del Proyecto. El objetivo principal de este proyecto es implantar un sistema de conducción automática que permita a un robot de pequeñas dimensiones navegar de forma autónoma por una carretera. Se basa en el procesamiento hardware en tiempo real de imágenes con una FPGA y en un control para el seguimiento de trayectorias a partir de la información suministrada por la cámara. Este proyecto tiene dos objetivos fundamentalmente: 1.2.1 Circuito de medida y control de la corriente del motor. El primero es conseguir diseñar e implantar con éxito un control todo o nada para el control de corriente de los motores del coche junto al sensado de esta corriente. El esquema general de lo que se va a implantar es: Resistencia de medida Convertidor CC-CC. Puente en H Filtro RC 2x Buffer y 1x Diferencial Tensión del PIC C o m p a r a d o r Figura 1-1: Diagrama de bloques del sensado de la corriente del motor. 6 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1.2.2 Sensado y control de la velocidad del motor. El segundo objetivo es diseñar e implementar con éxito un control proporcional integral para el control de la velocidad de los motores del coche el cual será diseñado por software e implantado en la PDA junto al circuito de medida de dicha velocidad pero esta medida de velocidad se hará por dos procedimientos diferentes: uno será diseñando por hardware y el otro diseño se hará por software utilizando programas ya realizados en otros proyectos anteriores. En el diseño de hardware la medida de la velocidad se medirá en bornes del motor, la cual se amplificará: M 2x Buffer y 1x Diferencial Filtro RC Tensión del PIC D i f e r e n c i a l Figura 1-2: Circuito de medida de la velocidad del motor. En cuanto a la parte de software trata de integrar en la FPGA una serie de programas que gestionen el tratamiento de imágenes que provienen de la cámara y el programa que gestiona los datos que proporcionen los encoders (hacen la medida de posición de los motores), estos dos programas están sometidos a otro denominado árbitro que es el que manda al microcontrolador los datos de uno u otro es como si fuese un policía de tráfico, según ciertas señales de sincronización existentes entre la FPGA y el microcontrolador. En la Figura 1-3 se presenta la comunicación entre microcontrolador y la FPGA que datos recibe la misma. 7 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. MICROCONTROLADOR CÁMARA FPGA ARBITRO ENCODERS Figura 1-3: Diagrama de bloques de la gestión de programas de la fpga. Además cada uno de estos objetivos es doble ya que se tienen dos motores uno para cada rueda. 8 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1.3 Metodología. Para alcanzar con éxito los objetivos del proyecto, el método de trabajo que se va a utilizar es el siguiente: En primer lugar, usando el entorno de trabajo “PSpice” de “MicrosimEval 7.1” se va a desarrollar el diseño del circuito de sensado que medirá la corriente de los motores para luego poder realizar e implantar el control proporcional que controle dicha corriente e intentar obtener los mejores resultados. Una vez diseñado el circuito de medida de la corriente se diseñará el control de corriente que será un control todo o nada. Se diseña el circuito de medida de la velocidad del motor realizándose de dos maneras. 1.- Se intentará implantar los programas de gestión de “encoders”, datos de la cámara y los datos del PIC en la FPGA desarrollados en lenguaje VHDL pero antes se comprobará el estado actual del robot, comprobando el estado de la cámara, su altura y su funcionamiento. 2.- En segundo lugar el desarrollo será de forma parecida al diseño del objetivo uno pues la señal de velocidad será proporcional a la tensión en bornes del motor. Cuando se haya diseñado el circuito de medida de la velocidad se diseñará el control de velocidad, que será un control proporcional-integral el cual se desarrollará por software en el programa Microsoft eMbedded Visual C++ 4.0 que hace uso del entorno de Microsoft Pocket PC 2003 SDK. Por último se debe todo lo anterior duplicar pues tenemos 2 motores. 9 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1.4 Recursos. Los recursos que van a utilizarse son los siguientes: • Entorno de Microsin Eval (versión 7.1). • Entorno de Microsoft eMbedded Visual C++ 4.0 • Entorno de MaxPLus II (versión 10.2). • Entorno del Synplify pro fpga v8.6.2. • Entrono de Microsoft Pocket PC 2003 SDK • Entorno de Quartus II • Ordenador personal con procesador Intel Centrino a 1.7GHz y 512MB de RAM. • Pocket PC cuya memoria principal es 59.55MB con procesador Intel (R) PXA270 10 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 2 Descripción general del proyecto El objetivo fundamental del proyecto ha sido diseñar parte del sistema de conducción automática de un robot. Concretamente, se ha abordado la implantación de dos sistemas de control, uno de corriente y el otro de velocidad de cada uno de los motores de corriente continua de un robot de pequeñas dimensiones que incorpora un sistema de visión artificial hardware. La descripción general del coche así como los elementos principales que influyen en el proyecto se van a desarrollar a continuación. En el esquema general del sistema de conducción automática que se presenta a continuación se puede observar principalmente la existencia de tres módulos además de otros elementos que se describirán a continuación: CONTROL DE TRAYECTORIAS PDA CONTROL DE VELOCIDAD MICROCONTROLADOR TARJETAS ELECTRÓNICAS CONTROL SENSORES: DE CORRIENTE CORRIENTE VELOCIDAD PUENTE EN H ROBOT MOTORES ENCODERS FPGA CONTROLADOR DE LA CÁMARA CÁMARA Figura 2-1: Esquema general del sistema de conducción automática. Según se puede observar en la Figura 2-1, el sistema de conducción automática consta de tres módulos. Para poder explicar este esquema se comenzará por el tratamiento de imágenes que se realiza gracias al controlador de la cámara que lleva implantado la visión artificial hardware, las referencias de las trayectorias de la carretera son enviadas desde la cámara al 11 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. control de trayectorias a través de la FPGA. En la FPGA se realiza el tratamiento de imágenes y la recogida de los datos que provienen de los encoders. Los datos gestionados en la FPGA se mandan al microcontrolador, y el microcontrolador mandará los datos de las referencias de trayectorias al control de trayectorias y los datos de los encoders se los manda al control de velocidad. El control de velocidad y, en un futuro el control de trayectorias serán implantados en la PDA. El control de trayectorias da la referencia de velocidad al control de velocidad. La salida del control de velocidad se comunica con el segundo módulo, que está compuesto por todas las tarjetas electrónicas existentes, dicha salida se comunica con el control de corriente a través del microcontrolador dando así la referencia de corriente Para realizar el control de corriente es necesario tener una medida de la corriente, por ello se ha tenido que diseñar el sensor de corriente. Se ha utilizado una relación lineal existente entre la tensión en bornes de la resistencia (la cual es proporcional a la corriente que circula por el motor) y la tensión que el microcontrolador puede dar. La corriente medida por este sensor es proporcional al par que se aplica a la rueda, por lo tanto si se quiere controlar el par, se necesita controlar dicha corriente. El control de corriente, por tanto tiene como entradas la procedente del control de velocidad y la medida de corriente dada por el sensor de corriente, dicho control es un comparador con histéresis que compara ambas entradas. La salida del control de corriente es la señal de control de disparo del convertidor corriente continua-corriente continua (puente en H). El convertidor se encarga de generar la señal que alimenta a los motores. El diseño del sensor de velocidad se basa en una relación similar a la que existía en la de corriente pero esta vez la tensión en bornes del motor es proporcional a la velocidad de dicho motor. La salida del sensor de velocidad se devuelve a través del microcontrolador al control de velocidad. La velocidad medida por el sensor de velocidad se utilizará en el control de velocidad implantado por software en la PDA. El control de velocidad implantado es un control proporcional integral digital con ponderación a la referencia y antiwindup. 12 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 2.1 Estructura Real del Coche. Se van a describir un poco más a fondo los elementos del coche real antes de comenzar a estudiar los circuitos diseñados en este proyecto(circuitos de medida de velocidad y corriente del motor). Se presenta su estructura real y elementos indispensables para su funcionamiento. La construcción real del coche esta construida con piezas de LEGO. En la Figura 2-2y Figura 2-3 se muestra una representación en planta del coche: RUEDA LOCA Figura 2-2: Estructura real de coche(Plano cenital) CÁMARA Figura 2-3: Imagen real del alzado del coche 2.1.1 Funciones de la PDA. En la parte anterior del coche hay una PDA la cual sirve como interfaz entre el coche y el usuario. La PDA tiene muchas funciones entre las cuales se incluye la implantación del control de velocidad, que se encargaría de corregir el posible error de velocidad que hubiese en cada una de las ruedas motrices según una referencia indicada por el usuario ( Vref ), es decir, cada rueda llevaría su propio control de velocidad y cuyos parámetros han de ser ajustados. De esta manera cuando el coche esté tomando una curva la rueda que da al exterior vaya más rápido que la rueda que da al interior. Y en un futuro la implantación del control de 13 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. trayectoria también se realizará en la PDA y en este caso la referencia de velocidad las dará este control. Los programas que gestionan el control de velocidad necesitan saber cual es la velocidad actual del coche para poder funcionar, por eso se hace una lectura a través de los conectores analógicos digitales que posee el propio microcontrolador, en dichos ADs se conectarán las salidas de los dos circuitos de sensado de velocidad. Cada control da la señal de PWM necesaria para el control de corriente de cada una de las ruedas motrices. RUEDAS MOTRICES PDA Figura 2-4: Imagen real del coche (plano cenital). La señal PWM se compara con la señal que proviene del circuito de medida de corriente. La salida del control de corriente se manda a otro de los elementos que contiene la tarjeta central, un L293d que es un chopper, puente en H, es decir, es un convertidor de corriente continua a corriente continua de dos cuadrantes, es decir el motor podrá girar en dos sentidos, además la tensión de control del convertidor es positiva y para poder conseguir la tensión 14 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. negativa la cual es necesaria para conseguir el cambio de sentido del motor se realiza con el cambio del duty-clycle. Cada una de las ruedas motrices queda controlada por tanto por un control de velocidad digital comentado anteriormente, que es un control en cascada pero internamente lleva un control de corriente que será diseñado por hardware, éste controla el par que se le a de aplicar a cada una de las ruedas motrices. A continuación se presenta el diagrama de bloques del control de corriente y de velocidad: Vpic Control _ Planta Sensor de corriente Circuito de medida Medida de Corriente Figura 2-5: Control de corriente. Vrefºº iref Control de velocidad. Control de corriente. i Planta (motor). Sensor de velocidad. Figura 2-6: Diagrama de bloques de la corriente controlada por velocidad. 15 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 2.1.2 Funciones de la FPGA. En la parte posterior del coche, en la tarjeta principal se encuentra una FPGA (field programmable gate array), que es un dispositivo semiconductor que contiene componentes lógicos programables e interconexiones programables entre ellos. En la FPGA realiza el procesamiento de la señal de la cámara aunque también tiene la posibilidad de realizar los controles de velocidad de los motores, gracias a la señal que recogen los encoders que se colocarán en cada uno de los ejes de cada rueda motriz. Los encoders son dispositivos para el control de la posición de robot, así como de la distancia recorrida desde una determinada localización. La fpga por tanto tiene que tratar con dos programas: Programa de gestión de imágenes. Programa de detección de la posición de cada rueda del motor. Para poder gestionar estos programas es necesario el uso de un tercero denominado árbitro que precisamente manda al microcontrolador los datos de uno u otro. MEMORIA FPGA Figura 2-7: Imagen de la planta vista desde detrás del coche. 16 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 2.1.3 Funciones de la driver de la cámara. La tarjeta driver de la cámara es la que realiza la visión artificial. A diferencia con otras aplicaciones en las que la visión artificial es implantada mediante software, en este proyecto se implanta mediante hardware (parte distintiva de este proyecto) ya que al ser lógica programable (uso de flip-flop) la ejecución resulta ser más rápida. Para hacer posible seguir trayectorias automáticamente, el coche incorpora una cámara que obtiene una imagen de una determinada región en la dirección de avance. Así, tras el conveniente procesado de la imagen se obtienen dos parámetros que permitirán generar las referencias adecuadas para conseguir controlar la trayectoria. En todas las figuras se muestra la ubicación exacta de la cámara, cuya colocación se debe realizar antes de poner el coche en marcha. Para poder colocarla hay que utilizar una tarjeta controladora auxiliar que lleva un software instalado que hace que el usuario que vaya a usar el coche vea desde el ordenador la imagen que recibe la cámara, la colocación exacta se hace gracias a los engranajes colocados al lado izquierdo del coche visto por detrás como se ve en la siguiente figura: ENGRANAJES COLOCACIÓN DE LA CÁMARA. MICROCONTROLADOR Figura 2-8: Imagen real del coche. 17 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 2.1.4 Funciones del microcontrolador. En Figura 2-8 se puede ver el microcontrolador que es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado. Es un microprocesador optimizado para ser utilizado para controlar equipos electrónicos. Pueden encontrarse en casi cualquier dispositivo eléctrico como automóviles, lavadoras, hornos microondas, teléfonos, etcétera. Como se ha dicho antes es el cerebro del coche, es el encargado de distribuir los datos que le llegan a los diferentes elementos ya sean de su propia tarjeta como del resto de tarjetas. Por ejemplo los datos que llegan de la PDA son mandados a los motores a través del convertidor cc-cc que hay en su propia tarjeta, etcétera. 18 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3 .-Control de la corriente del motor. En este capítulo se desarrollará el sensado y control de la corriente por el motor. Para ello, se analizarán primero individualmente las partes sencillas del robot que van a entrar en juego para el desarrollo del circuito de sensado y posteriormente en el desarrollo del control de la corriente para el cual se hará uso de un comparador con histéresis. 3.1 .Medida de la corriente del motor. El sistema de tracción del coche está compuesto por dos motores de corriente continua de Lego que proporcionan un par a las ruedas. El motor de corriente continua es una máquina que convierte la energía eléctrica en mecánica, principalmente mediante el movimiento rotativo. En la actualidad existen nuevas aplicaciones con motores eléctricos que no producen movimiento rotatorio, sino que con algunas modificaciones, ejercen tracción sobre un riel. Estos motores se conocen como motores lineales. La máquina de corriente continua es una de las más versátiles en la industria. Su fácil control de posición, par y velocidad la han convertido en una de las mejores opciones en aplicaciones de control y automatización de procesos. Pero con la llegada de la electrónica han caído en desuso pues los motores de corriente alterna del tipo asíncrono, pueden ser controlados de igual forma a precios más asequibles para el consumidor medio de la industria. A pesar de esto el uso de motores de corriente continua sigue y se usan en aplicaciones diversas. La principal característica del motor de corriente continua es la posibilidad de regular la velocidad desde vacío a plena carga. Los motores de corriente continua de los que dispone el coche se compone principalmente de dos partes, un estator que da soporte mecánico al aparato y tiene un hueco en el centro generalmente de forma cilíndrica. En el estator además se encuentran los polos. El rotor es generalmente de forma cilíndrica y devanado. 19 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. El rotor es el dispositivo que gira en el centro del motor y está compuesto de arrollados de cable conductores de corriente continua. Esta corriente continua es suministrada al rotor por medio de las "escobillas" generalmente fabricadas de carbón. Nota: un devanado es un arrollado compuesto de cables conductores que tiene un propósito específico dentro de un motor 3.1.1 Principio básico de funcionamiento. Cuando un conductor por el que fluye una corriente continua es colocado bajo la influencia de un campo magnético, se induce sobre él (el conductor) una fuerza que es perpendicular tanto a las líneas de campo magnético como al sentido del flujo de la corriente. Ver la Figura 3-1. Figura 3-1: Funcionamiento básico de un motor de corriente continua. Donde: El campo magnético está en azul. La corriente continua en rojo. Dirección de la fuerza en magenta. 20 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Imanes: N (norte) y S (sur) Para que se entienda mejor como se tiene que colocar este conductor con respecto al eje de rotación del rotor para que exista movimiento se puede observar la Figura 3-2. En este caso la corriente por el conductor fluye introduciéndose como se muestra en el gráfico. Figura 3-2: Colocación del conductor con respecto al eje de rotación. Par del motor en azul. La fuerza en rojo. El conductor de corriente entrante en el gráfico azul y rojo. Imanes: N (norte) y S (sur) Pero en el rotor de un motor de corriente continua no hay solamente un conductor sino muchos. Si se incluye otro conductor exactamente al otro lado del rotor y con la corriente fluyendo en el mismo sentido, el motor no girará pues las dos fuerzas ejercidas para el giro del motor se cancelan. Figura 3-3: Rotor con muchos conductores. 21 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Par motor en azul. La fuerza en magenta. Conductor con corriente entrante en el gráfico azul y rojo. Imanes: N (norte) y S (sur) Es por esta razón que las corrientes que circulan por conductores opuestos deben tener sentidos de circulación opuestos. Si se hace lo anterior el motor girará por la suma de la fuerza ejercida en los dos conductores. Para controlar el sentido del flujo de la corriente en los conductores se usa un conmutador que realiza la inversión del sentido de la corriente cuando el conductor pasa por la línea muerta del campo magnético. La fuerza con la que el motor gira (el par motor) es proporcional a la corriente que hay por los conductores. A mayor tensión, mayor corriente y mayor par motor 3.1.2 El Motor CC. Fuerza contraelectromotriz de un motor de corriente continua Cuando un motor de corriente continua es alimentado, el voltaje de alimentación ( Vm ) se divide en: La caída de tensión (voltaje) que hay por la resistencia de los arrollamientos del motor (debido a la resistencia interna Ra). Una tensión denominada fuerza Contraelectromotriz (FCEM). 22 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 3-4: Modelo del motor de corriente continua. (Entregando potencia al eje). En el funcionamiento normal del motor, se aplica una tensión ( Vm ) en la entrada que induce una corriente. En el eje del motor aparece un par (Mm) proporcional a dicha corriente ( I a ). A su vez, cuando sube la velocidad del eje (wm) aparece una fuerza contraelectromotriz ( Vb ) proporcional a la misma. Donde: Vm es la tensión de entrada al motor en voltios. Ra es la resistencia del devanado de excitación (ohmios). I a es la corriente de excitación (amperios). Vb es la fuerza contraelectromotriz debida al giro del motor (voltios). Aplicando la ley de tensiones de Kirchoff: Vm = Vb + ( I a ⋅ Ra ) o Ecuación 3.1 Vb = Vm − ( I a ⋅ Ra ) 23 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Nota: Observar de la última ecuación que cuando sube el valor de I a , disminuye el Valor de Vb . La fuerza contra electromotriz es proporcional a la velocidad del motor y a la intensidad del campo magnético. Si el motor tiene rotor con imán permanente esta constante es: K= Vb Nd Ecuación 3.2 Donde: K es la constante de fuerza contraelectromotriz del motor y se expresa en Voltios/ rpm. N d es la velocidad de giro del motor en rpm. Nota: rpm son revoluciones por minuto. 3.1.3 Efecto de la carga en un motor de corriente continua (cc). En un motor de corriente continua la velocidad y la corriente que necesita el motor dependen de la carga que tenga aplicada. En este tipo de motor parte de la tensión aplicada se pierde en la resistencia interna (resistencia del devanado de excitación). El resto de la tensión se utiliza para hacer girar el motor. Cuando la carga de un motor de corriente continua se aumenta, también aumenta la corriente que consume este. Esta corriente causa una caída de tensión mayor en la resistencia interna del motor (resistencia del devanado excitación) Como la alimentación del motor permanece constante, la tensión aplicada para hacer girar el motor es menor y en consecuencia la velocidad de giro del motor es menor Ver la siguiente ecuación: 24 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Vb = Vm − ( I a ⋅ Ra ) Ecuación 3.3 Donde: Vb es la tensión real utilizada para hacer girar el motor. Vm es la tensión aplicada a todo el conjunto del motor. Ra es la resistencia del devanado de excitación (resistencia interna). I a es la corriente que circula por el motor. I a ⋅ Ra es la tensión que se pierde en la resistencia interna del motor y además depende directamente de I a (corriente de alimentación del motor)Si la corriente I a aumenta, Vb disminuye y como la velocidad de giro del motor es proporcional a Vb . Si Vb disminuye entonces la velocidad del motor también. Los motores que se usan en este proyecto son de LEGO cuyas características se muestran a continuación: Tabla 3.1-1: Características del motor utilizado en el proyecto. En este proyecto el motor se alimenta a 9V, pero incluso se podría alimentar para 12V. 25 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Para poder controlar este motor se hace uso de un dispositivo de electrónica de potencia denominado Puente en H. 3.1.4 Dispositivo Puente en H para el control del motor de corriente continua. El circuito de abajo representa un Puente en H de transistores que es un convertidor de corriente continua a corriente continua, el cual se utiliza para el control de motores de corriente continua, el nombre se refiere a la posición en que quedan los transistores en el diagrama del circuito. Figura 3-5: Puente en H construidos con transistores. 3.1.4.1 Funcionamiento. Aplicando una señal positiva en la entrada marcada AVANCE se hace conducir al transistor Q1. La corriente de Q1 circula por las bases, de Q2 y Q5 haciendo que el terminal a del motor reciba un positivo y el Terminal b el negativo (tierra). 26 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 3-6: Puente en H funcionamiento de avance. Si en cambio se aplica señal en la entrada RETROCESO, se hace conducir al transistor Q6, que cierra su corriente por las bases, de Q4 y Q3. En este caso se aplica el positivo al terminal b del motor y el negativo (tierra) al terminal a del motor. Figura 3-7: Puente en H funcionamiento de retroceso. 27 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. En la placa física del circuito el dispositivo es un L239d que es un convertidor de corriente continua a corriente continua de dos cuadrantes, es decir el motor podrá girar en dos sentidos, además la tensión de control del convertidor es positiva y para poder conseguir la tensión negativa la cual es necesaria para conseguir el cambio de sentido del motor se realiza con el cambio del duty-clycle del PWM (señal de control de disparo). 3.1.5 Sensado de la corriente del motor. Una de las partes más importantes de este proyecto es conseguir una medida de la corriente de cada motor del robot, el problema es que esa corriente no es medible directamente, con lo cual se ha de diseñar un circuito que sea capaz de medirla. En la Figura 3-8 se presenta el diagrama de bloques general del sistema a estudiar, de este diagrama hasta ahora sólo se tiene la planta que son los motores del propio robot con lo cual hay que diseñar dos de las partes que aparecen en dicho diagrama, el control y el sensor de corriente. Vpic _ Control Planta Sensor de corriente Circuito de sensado Figura 3-8: Diagrama general del sistema a estudiar. Para el control de la corriente del motor se necesita lo primero, medir la corriente del motor, para ello se hará uso de una resistencia de medida que dé una tensión proporcional a la corriente del motor, la corriente es del orden de 0 a 300mA y se utiliza una resistencia de 0.5 por lo tanto la caída de tensión en dicha resistencia es de ±150mV 28 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. En la siguiente figura se presenta la colocación de la resistencia de medida, los bornes del motor están conectado al puente en H con lo cual hay que intercalar dicha resistencia y colocarla en serie con el motor, ya que lo se quiere es medir la corriente por dicho motor. Puente en H Puente H V en Motor R medida (Rm) Figura 3-9: Colocación de la resistencia de medida en el sensor de corriente. La diferencia de tensión que aparece en bornes de Rm es del orden de 150mV como se ha visto antes cuando el motor aplica el máximo par, en un sentido de giro como en el otro. Por lo tanto al ser una medida muy pequeña se debe amplificar dicha tensión para obtener una salida que tenga un rango de 0 a 5V (esta necesidad es debida a que el microcontrolador sólo admite el rango de 0 a 5V como señal analógica.). Para poder amplificar dicha tensión se necesita el uso de amplificadores operacionales. Por ello lo primero que se ha buscado es un tipo de operacional que cumpla las siguientes especificaciones: Rail to rail a la salida, es decir tener un rango dinámico de salida del 100%. Una alimentación simple V − = 0V y V + = 5V . 29 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. El operacional encontrado que cumple estas dos restricciones es un LMV344, este dispositivo es un SMD, es decir es un dispositivo que lleva integrado cuatro amplificadores operacionales de iguales características y que cumplen las restricciones anteriores, pero además son de baja potencia y pueden trabajar en un alto rango de temperaturas. La medida de la corriente se va a realizar usando un circuito compuesto por buffers y amplificadores diferenciales cuyas características se explicarán más adelante. 3.1.6 Amplificador operacional. Para el estudio del amplificador diferencial se usará un amplificador operacional, el cual procede del campo de los computadores analógicos, en los que comenzaron a usarse técnicas operacionales en una época tan temprana como en los años 40. El nombre de amplificador operacional deriva del concepto de un amplificador dc (amplificador acoplado en continua) con una entrada diferencial y ganancia extremadamente alta, cuyas características de operación estaban determinadas por los elementos de realimentación utilizados. Cambiando los tipos y disposición de los elementos de realimentación, podían implementarse diferentes operaciones analógicas; en gran medida, las características globales del circuito estaban determinadas sólo por estos elementos de realimentación. De esta forma, el mismo amplificador es capaz de realizar diversas operaciones, y el desarrollo gradual de los amplificadores operacionales dio lugar al nacimiento de una nueva era en los conceptos de diseño de circuitos. Los primeros amplificadores operacionales usaban el componente básico de su tiempo: la válvula de vacío. El uso generalizado de los AOs no comenzó realmente hasta los años 60, cuando empezaron a aplicarse las técnicas de estado sólido al diseño de circuitos amplificadores operacionales, fabricándose módulos que realizaban la circuitería interna del amplificador operacional mediante diseño discreto de estado sólido. Entonces, a mediados de los 60, se introdujeron los primeros amplificadores operacionales de circuito integrado. En unos pocos años los amplificadores operacionales integrados se convirtieron en una herramienta estándar de diseño, abarcando aplicaciones mucho más allá del ámbito original de los computadores analógicos. 30 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Con la posibilidad de producción en masa que las técnicas de fabricación de circuitos integrados proporcionan, los amplificadores operacionales integrados estuvieron disponibles en grandes cantidades, lo que, a su vez contribuyó a rebajar su coste. Hoy en día el precio de un amplificador operacional integrado de propósito general, con una ganancia de 100 dB, una tensión offset de entrada de 1mV, una corriente de entrada de 100 nA y un ancho de banda de 1 MHz. es inferior a 1 euro. El amplificador, que era un sistema formado antiguamente por muchos componentes discretos, ha evolucionado para convertirse en un componente discreto él mismo, una realidad que ha cambiado por completo el panorama del diseño de circuitos lineales. Con componentes de ganancia altamente sofisticados disponibles al precio de los componentes pasivos, el diseño mediante componentes activos discretos se ha convertido en una pérdida de tiempo y de dinero para la mayoría de las aplicaciones dc y de baja frecuencia. Claramente, el amplificador operacional integrado ha redefinido las "reglas básicas" de los circuitos electrónicos acercando el diseño de circuitos al de sistemas. 3.1.7 Funcionamiento básico de un seguidor. En este circuito de sensado como se ha dicho antes se van a utilizar dos seguidores, éstos tienen una sencilla configuración que ofrece una tensión de salida igual a la tensión de entrada, no produciéndose ganancia alguna. La misión de los buffer es el desacoplo de etapas y que el efecto de las resistencias de entrada y salida no influyan en la amplificación posterior. Figura 3-10: Amplificador operacional. Seguidor. 31 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. El montaje se emplea fundamentalmente como adaptador de impedancias como se ha dicho antes, ya que no consume corriente en su entrada (impedancia de entrada infinita) ofreciendo señal en su salida (impedancia de salida nula). Vout = Vin Ecuación 3.4 Su nombre está dado por el hecho de que la señal de salida es igual a la de entrada, es decir, sigue a la de entrada. 3.1.8 Funcionamiento básico de un amplificador diferencial. A continuación se va a realizar un pequeño estudio sobre una de las aplicaciones más importantes del los amplificadores operacionales, el amplificador diferencial usado en el circuito de medida de la corriente de los motores. Una configuración del AO conocida como el amplificador diferencial, es una combinación de dos configuraciones, el amplificador inversor y el amplificador no inversor. Aunque está basado en estos dos circuitos, el amplificador diferencial tiene características únicas. Este circuito, mostrado en la figura 3-11, tiene aplicadas señales en ambos terminales de entrada, y utiliza la amplificación diferencial natural del amplificador operacional. Figura 3-11: Amplificador diferencial. 32 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Para comprender el circuito, primero se estudiarán las dos señales de entrada por separado, y después combinadas. Como siempre Vd = 0 y la corriente de entrada en los terminales es cero. Recordar que Vd = V + - V - ==> V - = V + Ecuación 3.5 La tensión a la salida debida a V pic la llamaremos V01 V+ = V pic R1 + R2 ⋅ R2 Ecuación 3.6 y como V - = V + La tensión de salida debida a V pic (suponiendo Vmed = 0 ) valdrá: V01 = V pic ⋅ R2 R3 + R4 Ecuación 3.7 ⋅ R1 + R2 R3 Y la salida debida a Vmed (suponiendo V pic = 0 ) será, usando la ecuación de la ganancia para el circuito inversor, V02 V02 = −Vmedida ⋅ R4 Ecuación 3.8 R3 Y dado que, aplicando el teorema de la superposición la tensión de salida Vo = V01 + V02 y haciendo que R 3 sea igual a R 1 y R 4 igual a R 2 se tiene que: V01 = V1 ⋅ R2 R , V02 = −Vmedida ⋅ 2 Ecuación 3.9 R1 R1 por lo que se concluye: VO = (V pic − Vmadida ) ⋅ R2 Ecuación 3.10 R1 que expresando en términos de ganancia: 33 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. V pic VO R = 2 − Vmedida R1 Ecuación 3.11 que es la ganancia de la etapa para señales en modo diferencial Esta configuración es única porque puede rechazar una señal común a ambas entradas. Esto se debe a la propiedad de tensión de entrada diferencial nula, que se explica a continuación. En el caso de que las señales V pic y Vmedida sean idénticas, el análisis es sencillo. V pic se dividirá entre R1 y R2 , apareciendo una menor tensión V + en R2 . Debido a la ganancia infinita del amplificador, y a la tensión de entrada diferencial cero, una tensión igual V − debe aparecer en el nudo suma (-). Puesto que la red de resistencias R3 y R4 es igual a la red R1 y R2 , y se aplica la misma tensión a ambos terminales de entrada, se concluye que Vo debe estar a potencial nulo para que V − se mantenga igual a V + , Vo estará al mismo potencial que R2 , el cual, de hecho está a masa. Esta propiedad del amplificador diferencial es muy útil, puede utilizarse para discriminar componentes de ruido en modo común no deseables, mientras que se amplifican las señales que aparecen de forma diferencial. Si se cumple la relación R4 R2 Ecuación 3.12 = R3 R1 La ganancia para señales en modo común es cero, puesto que, por definición, el amplificador no tiene ganancia cuando se aplican señales iguales a ambas entradas. Las dos impedancias de entrada de la etapa son distintas. Para la entrada (+), la impedancia de entrada es R1 + R2 . La impedancia para la entrada (-) es R3 . La impedancia de entrada diferencial (para una fuente flotante) es la impedancia entre las entradas, R1 + R3 . En este caso R1 = R2 = R3 = R4 = 1KΩ para que la ganancia del operacional sea uno. 34 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3.1.9 Diseño del circuito de medida de la corriente del motor. La misión del circuito de sensado de la corriente es realizar una amplificación de la tensión proporcional a la corriente del motor en la resistencia de medida, ya que ésta es demasiado pequeña, y hay que conseguir una relación lineal entre la caída de tensión en dicha resistencia y la salida, cuyo rango es: ‘0V’ cuando la rueda gira hacia detrás, máximo par y hay una caída de tensión en la resistencia de -150mV. ‘2.5V’ cuando esta parada y caída de tensión en la resistencia de 0V. ‘5V’ cuando la rueda gira hacia delante, máximo par y hay una caída de tensión en la resistencia de 150mV. Se debe plantear y resolver una relación lineal entre dicha variación de tensión en la resistencia de medida y la salida. El conjunto de ecuaciones se muestra a continuación: Vo = 5 ⋅ ∆V + 2.5 Ecuación 3.13 0.3 : Relación lineal entre la salida y la variación de tensión en la resistencia de medida 5 4.5 4 Vo(voltios) 3.5 3 2.5 2 1.5 1 0.5 0 -0.1 -0.05 0 0.05 0.1 Variación de tensión en la resistencia de medida.(Voltios) 0.15 Figura 3-12: Relación lineal entre la salida y la variación de tensión en la resistencia de medida. 35 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Uno de los bornes de la resistencia de medida está conectado con el puente en H con lo cual la tensión de dicho borne varía entre 0 y 9V aproximadamente, dicha tensión habrá que reducirla con un divisor de tensión y lo mismo ocurre con el otro borne de la resistencia de medida que esta conectado al motor, ya que los operacionales utilizados sólo admiten tensiones de 0 a 5V, en la siguiente figura se presenta está parte del circuito: Motor Figura 3-13: Resistencia de medida en el circuito de medida de la corriente. 36 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Con lo cual la caída de tensión en la resistencia de la medida queda después de los buffer de 0.0665 V, con lo cual la relación de salida-variación de tensión en la resistencia de medida cambia y sigue la siguiente relación: Vo = 5 ⋅ ∆V + 2.5 Ecuación 3.14 0.133 Relación lineal entre salida y la caída de tensión en la resistencia de medida. 5 4.5 4 Vo(Voltios) 3.5 3 2.5 2 1.5 1 0.5 0 -0.06 -0.04 -0.02 0 0.02 0.04 Variación de tensión en la resistencia de medida.(Voltios) 0.06 Figura 3-14: Relación lineal entre salida y la caída de tensión en la resistencia de medida. Esta relación se puede modelar con un diferencial con corrección del factor de Bias que habrá que añadirlo al circuito presentado en la figura 3-14: Figura 3-15: Amplificador Diferencial con corrector de Bias. 37 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Las ecuaciones para diseñar dicho circuito son las que se presentan a continuación: Vout = Vin 2 ⋅ RF + RG R + RG R2 R1 R ⋅ + Vref ⋅ F ⋅ − Vin1 ⋅ F Ecuación 3.15 RG R2 + R1 RG R2 + R1 RG Si se diseña el circuito de tal manera que RF = R2 y RG = R1 , entonces queda: Vout = (Vin 2 − Vin1 ) ⋅ RF + Vref Ecuación 3.16 RG A partir de esta última ecuación se pueden definir todas las resistencias del circuito de sensado, ya que la pendiente de la recta nos define las resistencias R F y RG , por tanto quedarían elegidas también R2 y R1 : pendiente = R 5 3kΩ = F = Ecuación 3.17 0.133 RG 2kΩ Con lo cual R2 = R F = 75kΩ y R1 = RG = 2kΩ . En un principio para conseguir los 2.5V a la salida cuando el coche está parado, se utilizó un buffer con un divisor de tensión conectado a la pata más del operacional 3 cuyas resistencias eran de 1k Ω , pero una vez montado una de las resistencias se cambio por un potenciómetro de 5k Ω para poder tener un ajuste de cero exacto, 2.5V. Además la señal de salida V5 que es la salida del amplificador diferencial hay que filtrarla debido a que hay ruido que posiblemente pueda afectar al control que posteriormente se diseñará haciendo que el propósito de éste falle. Por ello se ha realizado el diseño de un filtro paso bajo RC es un circuito formado por una resistencia y un condensador conectados en serie de manera que este permite solamente el paso de frecuencias por debajo de una frecuencia en particular llamada frecuencia de corte ( Fc ) y elimina las frecuencias por encima de esta frecuencia. 38 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3.1.10 Filtro Paso bajo. Los circuitos usados como filtros de primer orden de tipo pasivo son los siguientes: Figura 3-16: Filtros paso bajo más utilizados Quizás el más usado es el primero de ellos, ya que no suele ser fácil conseguir bobinas con las características deseadas. El funcionamiento de estos circuitos como filtro pasa bajos es fácil de entender. En el caso del primero, el condensador presentará una gran oposición al paso de corrientes debidas a frecuencias bajas y como forma un divisor de tensión con la resistencia, aparecerá sobre él casi toda la tensión de entrada. Para frecuencias altas el condensador presentará poca oposición al paso de la corriente y la resistencia se quedará casi el total de la tensión de entrada, apareciendo muy poca tensión en extremos del condensador. El segundo circuito funcionará de forma muy parecida al primero. Aquí también tenemos un divisor de tensión formado por al bobina y la resistencia. Si la frecuencia de la tensión de entrada es baja la bobina ofrecerá poca oposición y la tensión caerá casi toda ella en la resistencia (o sea, aparecerá en la salida). Si la frecuencia de la señal de entrada es alta la bobina se quedará en sus extremos con casi toda la tensión y no aparecerá casi ninguna en la salida. Efectuemos el estudio de este tipo de filtros sobre el primero de ellos, el que tiene un condensador y una resistencia. La ganancia en tensión del filtro será Ecuación 3.18 La frecuencia de corte se define como aquella para la que el valor óhmico de la resistencia coincide con el valor óhmico de la reactancia, capacitiva en este caso. Entonces, 39 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Ecuación 3.19 Para el caso de que la frecuencia de entrada coincida con fc tendremos pues que la ganancia del filtro quedaría como Ecuación 3.20 El círculo se ha cerrado y, por tanto, las dos definiciones de la frecuencia de corte son equivalentes. Expresando Gv en función de la frecuencia tendremos que: Ecuación 3.21 Si representamos gráficamente Gv obtenemos lo siguiente: Figura 3.21: Función Gv 40 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Como puede apreciarse en esta última representación, cada vez que la frecuencia se dobla la ganancia cae -6db (aproximadamente). Es esta una característica de los filtros de primer orden: la ganancia cae -6db por octava fuera de la banda de paso. Los filtros, además de afectar a la amplitud de la señal que se les introduce en función de su frecuencia, también afectan o modifican la fase de las señales, y dicha modificación también será una u otra en función de la frecuencia de la señal de entrada. Veamos cómo se produce este efecto. El desfase entre la tensión en extremos del condensador (tensión de salida) y la tensión aplicada en la entrada vendrá dado por: Ecuación 3.22 Este ángulo saldrá negativo indicando que la tensión de salida estará atrasada respecto a la de entrada. Pero, el filtro deberá conectar su entrada y su salida a "algo". El funcionamiento descrito más arriba sería el de un filtro conectado a una fuente de señal con impedancia nula (algo que en la práctica no pasa) y con la salida abierta. Lo que se tiene en la realidad será algo como lo siguiente: Figura 3-17: Circuito paso bajo que se tiene en la realidad. El estudio se va a centrar en los casos en que tanto Z g como Z c sólo tengan componente real, o sea, sean de tipo exclusivamente resistivo. Lo normal es que Z g sea pequeña o muy pequeña, con lo que no tendría apenas influencia sobre el funcionamiento del filtro. De todas 41 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. formas, si se desea considerar su efecto, sólo hay que ver que queda en serie con la resistencia del filtro, con lo que el filtro que se obtendría sería el siguiente: Figura 3-18: circuito donde Z g tiene influencia. Por tanto, para el cálculo de un filtro teniendo en cuenta el efecto de Z g , de carácter puramente resistivo, sólo hay que considerar como resistencia del filtro el valor de Z g + R (con lo que la fuente de señal pasaría a considerarse como perfecta, esto es, con una impedancia cero -ya que su impedancia ha pasado a formar parte de la resistencia del filtro-). En cuanto al efecto introducido por Z c , es decir que si ésta es grande o muy grande comparada con el valor de X c a la frecuencia f c se podrá despreciar su efecto (se estaría uno acercando al caso de salida abierta, equivalente a resistencia infinita). Estos filtros RC no son perfectos por lo que se hace el análisis en el caso ideal y el caso real. La unidad de frecuencia es el: Hertz, Hertzio, ciclo por segundo La banda de frecuencias por debajo de la frecuencia de corte se llama Banda de paso, y la banda de frecuencias por encima de f c se llama Banda de atenuación En este circuito la resistencia es de 68k y el condensador es de 100 F. El circuito completo queda: 42 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 3-19: Circuito completo de medida de la corriente del motor. Después de tener el circuito de medida de corriente se diseña el circuito de control de corriente pero al conectarlo se vio que las resistencias del circuito de control afectaban a la salida del sensado con lo cual se tuvo que añadir un buffers a la salida del filtro para desacoplar impedancias. 43 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3.2 Control de la corriente de medida. Se parte, como en el objetivo anterior del sistema clásico, representado en la siguiente figura: Un comparador inversor Amplificador diferencial Vpic _ Control Planta Sensor de corriente Figura 3-20: Diagrama general del sistema a estudiar. Se va a controlar la corriente de los motores ya que así se puede controlar el par de éstos. Para el control de dicha corriente se va a usar un control todo nada (On-Off). 3.2.1 Principio de funcionamiento de un comparador con histéresis. Los comparadores son circuitos no lineales que, que como su nombre indica sirven para comparar dos señales (una de las cuales suele ser una tensión de referencia) y determinar cual de ellas es mayor o menor. La tensión de salida tiene dos estados (binaria) y se comporta como un convertidor analógico-digital de un bit. Su utilización en la generación de señal, detección y modulación de señal, etcétera, es muy importante y constituye un bloque analógico básico en muchos circuitos. La función del comparador es comparar dos tensiones obteniéndose como resultado una tensión alta VOH o baja VOL . En la figura 3-22 a se presenta el símbolo para representar 44 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. comparadores que es el mismo que el utilizado para amplificadores operacionales. En la figura 3-22 b, se presenta la característica del comparador, a continuación se presenta las operaciones que un comparador realiza: Ecuación 3.23 En el caso de que la tensión Vn esté fijada a 0, entonces la tensión de salida Vo = VOL o Vo = VOH en función de si V p <0 o V p >0, respectivamente. El comparador acepta señales analógicas a la entrada y proporciona señales binarias a la salida. Este elemento constituye un nexo de unión entre el mundo analógico y digital. Figura 3-21: Comparador de tensión. a) Símbolo b) Característica. Un comparador no funciona con propiedad si está presente el ruido en cualquier entrada pero se puede hacer que responda menos a él mediante la realimentación positiva. +Vcc V1 Ei=V entrada Vo + Ruido V2=Vref=0 V - Vcc Figura 3-22: Comparador inversor cuya entrada tiene ruido. 45 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Ei Ei Ei sin t Vo Vcc t -Vcc Figura 3-23: Respuesta del comparador ante una entrada ruidosa. Si Ei se aproxima muy lentamente a Vref o flota cerca de Vref , Vo puede seguir todas las oscilaciones del voltaje de ruido o bien entrar bruscamente en oscilación de alta frecuencia. Estos cruces en falso pueden eliminarse por la realimentación positiva. La realimentación positiva se lleva a cabo tomando una fracción del voltaje de salida Vo y aplicándola a la entrada (+). Vcc Ei=V entrada V1 -Vcc R1 Detector de cruce por cero R2 Figura 3-24: Comparador inversor realimentación positiva. El voltaje de salida Vo se divide entre R1 y R2 . Una fracción de Vo se realimenta a la entrada (+) y crea un voltaje de referencia que depende de Vo . 46 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. En cuanto al umbral superior cuando Vo = +Vcc el voltaje realimentado se denomina “voltaje de umbral superior VUT ”. El VUT se expresa en función del divisor de voltaje como VUT = (+Vcc ) ⋅ R2 Ecuación 3.24 R1 + R2 Para los valores de Ei inferiores a VUT o VLT , el voltaje en la entrada (+) es mayor que el voltaje (-). Por tanto, Vo está fijado a + Vcc . Si Ei se hace ligeramente más positivo que VUT , la polaridad de E d , como se muestra, se invierte y Vo comienza a caer en valor. Ahora la fracción de Vo realimentada a la entrada positiva es menor, de modo que E d se vuelve más grande. Vo cae entonces con más velocidad y se impulsa rápidamente a − Vcc . El circuito entonces es estable en la condición que se muestra en la figura siguiente: Vo = + Vcc cuando Ei está debajo de VLT +Vcc Vo = +Vcc - Para Ei < VLT Ed + - Vcc R1 VUT R2 Figura 3-25: Comparador. Condición del umbral superior. 47 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Vo=+Vcc cuando Ei está debajo. +Vcc Vo=+Vcc Para Ei<VLT Ed - Vcc R1 VLT R2 Figura 3-26: Comparador. Condición del umbral inferior. Cuando Vo está en − Vcc , el voltaje de realimentación a la entrada (+) se denomina voltaje de umbral inferior V LT ” y está dado por V LT = (− Vcc ) ⋅ R2 Ecuación 3.25 R1 + R2 Obsérvese que VLT es negativo con respecto a tierra. Por tanto, Vo permanecerá en + Vcc en tanto que Ei sea mayor, o positivo con respecto a VLT o VUT . Vo cambiará regresando a + Vcc si Ei se vuelve más negativo que, o abajo, de VLT . Se concluye que la realimentación positiva induce una acción casi instantánea para cambiar Vo con mucha velocidad de un límite a otro. Una vez que Vo comienza a cambiar, causa velocidad regeneradora que hace que Vo cambie aun con más velocidad. Si los valores de umbral son más grandes que los voltajes pico del ruido, la retroalimentación positiva eliminará las transiciones falsas de salida. 48 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. En la gráfica se representa Ei en el eje horizontal y Vo en el eje vertical, así se obtiene la característica de voltaje de entrada-salida, como en la figura siguiente. +Vo +Vc c +Vo vs VH VLT VUT -Vcc Detector de cruce por cero -Vo Figura 3-27: Característica del comparador inversor con histéresis. Para Ei menor de VLT , Vo = +Vcc . La línea vertical de bajada muestra Vo que va desde + Vcc hasta − Vcc conforme Ei se vuelve mayor que Vut. La línea vertical de subida muestra Vo cambiando desde − Vcc hasta + Vcc cuando Ei se vuelve menor que VLT . La diferencia en voltajes entre VUT y VLT se denomina “voltaje de histéresis VH ”. Siempre que cualquier circuito cambia de un estado a un segundo estado a cierta señal de entrada, entonces revierte del segundo al primer estado a una señal de entrada diferente, se dice que el circuito exhibe “histéresis”. Para el comparador de realimentación positiva, la diferencia en las señales de entrada es V H = VUT − VLT Ecuación 3.26 Si el voltaje de histéresis está diseñado para ser mayor que el voltaje de ruido de pico a pico, no habrá cruces falsos de salida. Por tanto, VH indica que tanto ruido de pico a pico puede soportar el circuito. 49 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Si Ei tiene un valor que cae entre VLT y VUT , es imposible predecir el valor de Vo a menos que ya se conozca el valor de Vo . Por ejemplo, supóngase que se sustituye por tierra Ei ( Ei = 0 v.) y se activa la potencia. El amplificador operacional pasará ya sea a + Vcc o − Vcc , dependiendo de la presencia inevitable de ruido. Si el amplificador operacional pasa a + Vcc , entonces Ei deberá ir arriba de VUT con objeto de cambiar la salida. Si ha pasado a − Vcc , entonces Ei tendrá que irse debajo de VLT para cambiar a Vo . Por tanto, el comparador con histéresis presenta la propiedad de memoria. Esto es, si Ei cae entre VUT y VLT (dentro del voltaje de histéresis), el amplificador operacional recuerda ya sea que el último valor de cambio de Ei estuvo arriba de VUT o debajo de VLT . Detectores de nivel de voltaje con histéresis. También es deseable tener una colección de circuitos que presenten histéresis alrededor de un voltaje de centro que es positivo o negativo. V H = VUT − VLT Ecuación 3.27 El voltaje de histéresis V H debe centrarse en el promedio de VUT y V LT . Este promedio se denomina voltaje centrado VCTR , donde VUT + V LT Ecuación 3.28 2 Cuando se trata de construir este tipo de detector de nivel de voltaje, es deseable tener cuatro VCTR = características: 1) Una resistencia ajustable para establecer y refinar el valor de VH . 2) Una resistencia ajustable separada para establecer el valor de VCTR . 3) El ajuste de V H y VCTR no debe interaccionar. 4) El voltaje centrado VCTR debe igualar, o estar relacionado en forma simple con un voltaje externo de referencia Vref . 50 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 3.2.2 Control todo o nada. Es la regulación más simple y económica, interesante en numerosas aplicaciones en las que puede admitirse una oscilación continua entre dos límites, siempre y cuando se trate de procesos de evolución lenta. Como ejemplos podemos citar la regulación de nivel, de presión o de temperatura, todos ellos problemas relativamente sencillos de lógica digital que no tratamos en este tema. Numerosos reguladores incorporan esta función básica, que además ofrece la máxima rapidez de respuesta y en ocasiones se recurre a este tipo de control cuando el error es grande, y se pasa de forma automática a otro tipo de regulación cuando el error se aproxima a cero. En la siguiente figura se puede ver un diagrama de bloques y una representación de su funcionamiento: Gracias a la existencia de una histéresis (h), el número de conmutaciones se reduce notablemente. Sin histéresis, el accionador se activaría y desactivaría con demasiada frecuencia (gráfica con línea fina). La histéresis es como una oposición a experimentar cualquier cambio y generalmente será un efecto perjudicial, por ejemplo, al descender una temperatura después de haber alcanzado un máximo, el sensor pudiera mantener el mismo nivel de señal hasta que la temperatura real descienda más de 8 grados, por ejemplo. Sin embargo, este efecto no es perjudicial en el tipo de regulador que tratamos: Su respuesta es de tipo todo-nada, de forma que se conecta cuando la variable regulada ha descendido hasta un valor (-U) por debajo del punto de consigna "c" y sólo se desconecta cuando llega a otro valor (+U) por encima del punto de consigna. Así se establece un margen de variación en el que mantiene su estado el actuador. Figura 3-28: Diagrama de bloques del funcionamiento del control On-Off. El amplificador operacional puede utilizarse como un todo o nada muy sensible gracias a la alta ganancia del amplificador. Bastará una pequeña diferencia de señales en la entrada para que se obtenga una salida total en voltios ligeramente inferior a la tensión de alimentación. 51 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Como señal de entrada se utiliza la resta entre la señal analógica que proviene del microcontrolador y la señal de medida obtenida en el sensor. La zona muerta del control todo o nada se logra mediante una resistencia conectada en serie con el terminal no inversor del amplificador y con una resistencia conectada entre este último terminal y el de salida del amplificador. Su funcionamiento es el de un simple comparador inversor con histéresis, es el que sigue: Cuando la señal en el terminal B aumenta unos pocos milivoltios con relación a la del terminal A, la salida Vo aumenta y es realimentada vía la resistencia R2 a la entrada del amplificador, bloqueando éste. El amplificador permanece en estas condiciones gracias al divisor de tensión que forman los terminales B y la salida. Para que las condiciones iniciales se restablezcan, la señal de entrada debe bajar los suficientes milivoltios, con relaci6n al terminal inversor, para compensar el efecto del divisor de tensión R4 R2 . El valor de la zona muerta depende de la relación R2 R4 y será tanto más pequeña cuanto mayor sea esta relación. En este caso se ajustará en función del ruido que aparezca en el terminal inversor. Además en este caso la pata inversora está conectada a tierra. Ve R4 R2 Control todo-nada electrónico. Figura 3-29: Control todo o nada. 3.2.3 Diseño del circuito de control todo o nada. Como se muestra en la 3-31, la diferencia entre Vpic - Vmedida , se puede implementar con un amplificador diferencial con ganancia uno, donde Vpic es una onda cuadrada de 0 a 5V tomada de la pata 15 y 2 (una para cada rueda) del dispositivo L293d que es el puente en H, 52 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. la cual tendrá que ser filtrada con un filtro paso bajo pues la comparación debe ser con tensiones continuas y Vmedida es la salida del sensor de corriente del motor que también varía entre 0 y 5V. Vpic Vmedida Figura 3-30: Amplificador diferencial. Pero el problema que se encontró al diseñarlo es que cuando dicha diferencia es negativa el operacional a la salida no daba esa diferencia sino cero debido a que la alimentación de dicho operacional es de 0 a 5V y por ello se saturaba. Por ello se ha tomado la decisión de realizar el diferencial y el control con un solo dispositivo de tal manera que no aparezca el problema de la diferencia negativa, esto se muestra en la figura siguiente: Figura 3-31: Control de corriente. 53 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Este circuito tiene dos estados, el primer estado es cuando Vo = L+ cuyas ecuaciones son: Vo = L+ → V + > V − V − = Vmedida ⋅ V + = V pic ⋅ V pic ⋅ R2 R2 + R1 R2 R1 + L+ ⋅ R2 + R1 R2 + R1 Ecuación 3.29 R2 R1 R2 + L+ ⋅ > Vmedida ⋅ R2 + R1 R2 + R1 R2 + R1 L+ > (Vmedida − V pic ) ⋅ R2 R1 El segundo estado es cuando Vo = L− , sus ecuaciones son: Vo = L− → V + < V − V − = Vmedida ⋅ V + = V pic ⋅ R2 R2 + R1 R2 R1 + L− ⋅ R2 + R1 R2 + R1 R2 R1 R2 + L− ⋅ < Vmedida ⋅ V pic ⋅ R2 + R1 R2 + R1 R2 + R1 0 < (Vmedida − V pic ) ⋅ 0 < (Vmedida − V pic ) Ecuación 3.30 R2 R1 De tal manera que cuando V pic < (Vmedida ) → Vo = L− y cuando (Vmedida ) < V pic → Vo = L+ y el tamaño de la histéresis lo fijan las resistencias del circuito anterior, se ha calculado que R1 = 1.5kΩ y R2 = 21.5 KkΩ , la señal de salida será una onda cuadrada que tomará valor 0V o 5V según se ha especificado anteriormente. 54 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4 .-Control de la velocidad del motor. En el capítulo tres se ha explicado el funcionamiento de todos los elementos específicos que iban a formar parte de nuestro circuito de medida. Ahora se trata de diseñar un circuito de medida de la velocidad del motor que será parecido al anterior, usando los mismos elementos. Además, el sensado de velocidad también se puede realizar por software, usando unos dispositivos denominados encoders, para ello se usarán algunos programas diseñados en lenguaje VHDL en proyectos anteriores. Estos programas han de ser utilizados junto a los que gestionan el tratamiento de imágenes que se encuentra en la FPGA. 4.1 Circuito de medida de la velocidad del motor. Hardware. Una vez diseñado el circuito de medida de velocidad se diseñará por software un control proporcional integral con antiwindup y ponderación ante la referencia, el cual da la corriente de referencia adecuada para el control del lazo de corriente. Para ello se tomará una tensión proporcional a la velocidad del motor, la cual será la que se tome de los bornes del motor. Vpic Control _ Planta Sensor de velocidad. Circuito de sensado Medida de Velocidad Figura 4-1: Diagrama de bloques general. 55 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. En la figura anterior se presenta el diagrama de bloques general del sistema a estudiar, de este diagrama hasta ahora sólo se tiene la planta que es el propio robot con lo cual hay que diseñar dos de las partes que aparecen en dicho diagrama, el control y el sensor de velocidad. En la siguiente figura se presenta la colocación del motor para poder tomar la tensión proporcional a la velocidad, hay que tener en cuenta que los bornes del motor están conectado al puente en H, con lo cual se tomará directamente la tensión de los bornes del motor. Puente en H Puente en H Motor V Figura 4-2: Medida de tensión proporcional a la velocidad del motor. La diferencia de tensión que aparece en bornes del motor es de ±9 voltios (aproximadamente) cuando el motor aplica el máximo par, por lo tanto se necesita que la salida tenga un rango de 0 a 5V (esta necesidad es debida a que el microcontrolador sólo admite el rango de 0 a 5V como señal analógica). 56 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Como los distintos operacionales que se van a utilizar en el circuito de medida de la velocidad tienen alimentación simple de 0 a 5V se tendrá que reducir la tensión de los bornes del motor mediante un divisor de tensión. Uno de los bornes del motor es común para ambos circuitos de medida por eso se utilizará uno de los buffer diseñados para el sensado de corriente para el circuito de medida de velocidad. Para diseñar dicho circuito se debe partir de los valores de entrada y salida que a continuación se presentan: ‘5V’ cuando la rueda gira hacia detrás y a la máxima velocidad, es decir una f.e.m de 9V. ‘2.5V’ cuando esta parada es decir 0rpm o f.e.m=0V. ‘0V’ cuando la rueda gira hacia delante y a la máxima velocidad, es decir una f.e.m de -9V. Dichos valores representan una relación lineal entre entrada y salida, dicha relación se presenta a continuación: Vo = 5 5 ⋅ E + 2.5 Ecuación 4.1 18 Relación lineal entrada-salida del circuito de medida de la velocidad 4.5 4 Vo(voltios) 3.5 3 2.5 2 1.5 1 0.5 0 -8 -6 -4 -2 0 2 4 Fuerza contra electromotriz del motor 6 8 Figura 4-3: Relación lineal entrada-salida del circuito de medida de la velocidad que se desea. 57 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. La tensión en bornes del motor como se ha dicho antes se ha reducido con un divisor de tensión, las resistencias de dicho divisor de tensión son de igual valor que el diseñado para el control de corriente, ya que de esta manera se mantiene la misma proporción de tensión en ambos bornes: Resistencia de medida en el circuito de medida de la corriente Borne común MOTOR Figura 4-4: Amplificador buffer con el divisor de tensión correspondiente. Este divisor de tensión hace que la tensión caiga por debajo de 5V, en este caso: V2 = 9 ⋅ 40.2k = 4V Ecuación 4.2 40.2k + 49.9k Este valor de tensión será la nueva tensión con la que habrá que diseñar el amplificador diferencial, con lo cual la relación lineal entrada-salida cambia: Vo = 5 ⋅ E + 2.5 Ecuación 4.3 8 58 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Nueva relación lineal entrada-salida. 5 4.5 4 Vo(voltios) 3.5 3 2.5 2 1.5 1 0.5 0 -4 -3 -2 -1 0 1 F.E.M(Voltios) 2 3 4 Figura 4-5: Nueva relación lineal entrada-salida. Esta relación se puede modelar con un diferencial con corrección del factor de Bias: Figura 4-6: Amplificador Diferencial con corrector de Bias. Las ecuaciones para diseñar dicho circuito son las que se presentan a continuación: Vout = Vin 2 ⋅ R F + RG R + RG R2 R1 R ⋅ + Vref ⋅ F ⋅ − Vin1 ⋅ F Ecuación 4.4 RG R2 + R1 RG R2 + R1 RG Si se diseña el circuito de tal manera que R F = R2 y RG = R1 , entonces queda: 59 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Vout = (Vin 2 − Vin1 ) ⋅ RF + Vref Ecuación 4.5 RG A partir de esta última ecuación se pueden definir todas las resistencias del circuito de sensado, ya que la pendiente de la recta nos define las resistencias R F y RG , por tanto quedarían elegidas también R2 y R1 : pendiente = 5 R F 5.1kΩ = = Ecuación 4.6 8 RG 8.2kΩ Con lo cual R2 = R F = 5.1kΩ y R1 = RG = 8.2kΩ . Además la señal de salida Vout que es la salida del amplificador diferencial hay que filtrarla debido a que hay ruido que posiblemente pueda afectar al control que posteriormente se diseñará haciendo que el propósito de éste falle. Por ello se ha realizado el diseño de un filtro paso bajo RC es un circuito formado por una resistencia y un condensador conectados en serie de manera que este permite solamente el paso de frecuencias por debajo de una frecuencia en particular llamada frecuencia de corte ( Fc ) y elimina las frecuencias por encima de esta frecuencia. Como la señal de salida V5 es la misma que en la medida de corriente del motor se tiene que la resistencia y el condensador son los mismos: Rc = 68kΩ, C = 100 µF . A diferencia con el circuito de medida de la corriente, en el circuito de medida de velocidad no le hace falta poner un buffer a la salida del filtro paso bajo pues va conectada al conversor analógico digital de un microcontrolador. La salida del circuito de medida de la velocidad del motor ira a uno de los pines analógicosdigitales del microcontrolador, para después utilizarla en el control proporcional-integral diseñado. El circuito de medida diseñado se presenta a continuación: 60 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Motor Figura 4-7: Circuito de medida de la velocidad del motor 61 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.2 Circuito de medida de la velocidad del motor. HardwareSoftware. En cuanto al diseño de la medida de velocidad por software trata de integrar en la FPGA una serie de programas que gestionen el tratamiento de imágenes que provienen de la cámara y el programa que gestiona los encoders (hacen la medida de posición de eje de la rueda), estos dos programas están sometidos a otro denominado árbitro que es el que manda al pic (microcontrolador) los datos de gestión de la cámara o los datos de gestión de encoders para su posterior utilización tanto en el control de velocidad como en el control de trayectorias, estos programas están en lenguaje vhdl. En el siguiente diagrama de bloques se puede observar lo explicado: PIC CÁMARA FPGA ARBITRO ENCODERS Figura 4-8: Diagrama de bloques de la gestión de programas de la fpga. Por lo tanto existen dos elementos físicos principales en esta parte: La cámara. Los encoders. 62 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.2.1 La cámara. La cámara será el dispositivo que ayudará a recibir imágenes. Las imágenes recibidas serán en blanco y negro, cada imagen es de 352 pixeles de ancho y 288 líneas de alto, cada pixel es de 8 bits y por tanto el grado de luminosidad irá desde 0 a 255, el 0 será el más claro y el 255 será el más oscuro. Lo primero que se a de hacer es posicionar bien la cámara ya que debe recibir las dos líneas negras que simulan la carretera, para ello existe un programa llamado CMUCAM que recoge una imagen en tiempo real, pero es necesario para ello el uso de una tarjeta especial con la cual se comprueba el correcto funcionamiento de ella, se coloca en el robot y se posiciona moviendo los engranajes laterales. Para poder utilizar la tarjeta auxiliar hay que tener mucho cuidado de cómo colocar la lengüeta que une la tarjeta de comprobación con la cámara, existen videos explicativos de cómo se hace, dicha colocación se puede observar en la figura 4-11, en el otro extremo se pondría la cámara dejando el mismo pin libre pues como se observa hay un pin libre en la tarjeta. Figura 4-9: Cámara del robot. 63 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 4-10: Tarjeta auxiliar usada para la colocación de la cámara. Figura 4-11: Colocación del cable que une la cámara con la tarjeta auxiliar. Para poder controlar la cámara en cuanto el envío de nuevas imágenes o pixeles se hará uso de ciertas señales de sincronización o clocks entre el pic y la cámara, estos clock son: PCLK (pixel clock) conectado a uno de los pines del microcontrolador y que funciona a 100kHz y envía a la cámara la señal de envío de un nuevo píxel HSYNC (sincronización horizontal) produce un cambio de línea en la imagen y es activa a nivel bajo. VSYNC (sincronización vertical) produce un cambio de imagen. 4.2.2 Encoders Para el control de la posición de robot, así como de la distancia recorrida desde una determinada localización, se puede optar por dotar al robot de dos encoders incrementales ópticos. Existen numerosas empresas que comercializan encoders incrementales, pero a precios excesivamente elevados y que serían difíciles de integrar en LEGO. Por lo tanto, la mejor solución para el robot ha sido la fabricación de dichos encoders a partir de sus componentes básicos. Estos encoders son de un sólo canal. En efecto, el dispositivo envía una señal cuadrada por el cable de salida a la placa, correspondiente a las transiciones entre franjas opacas y transparentes, siendo imposible determinar si el eje cambió su sentido de giro únicamente con el estudio de este tren de pulsos. Por este motivo, si se quiere saber el sentido de un motor será necesario conocer las señales de control que se envían al robot. 64 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Como es sabido, los antiguos ratones de ordenador contaban con dos encoders para medir los desplazamientos realizados según el eje x y el eje y, a partir de la rotación de la bola al deslizarse sobre una superficie. Para obtener los componentes necesarios a la hora de montar los encoders, se han extraído de un ratón de este tipo. El esquema de montaje resultante se puede observa r en la figura siguiente: Figura 4-12: Esquema básico de un encoder-lego. A continuación se integra todo en LEGO como se muestra en la siguiente figura. El cable amarillo corresponde con la señal Vcc de tensión procedente de la placa, mientras que el cable rojo es tierra (Gnd). Por último, el cable azul es el que traslada el tren de pulsos generados por el sensor hasta la EPLD, en la que se realiza la cuenta y se almacena el resultado, a la espera de ser utilizado por el programa de navegación del robot. 65 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 4-13: Encoder integrado en Lego. La transmisión del movimiento del eje del motor al eje al que va solidario el disco con las ranuras se tiene que realizar a través de engranajes de LEGO. En el eje del disco, procedente del ratón, se acopla un engranaje de LEGO de 16 dientes, como se puede comprobar en la figura anterior. 4.2.3 Resumen de cada uno de los programas utilizados: 4.2.3.1 Programa de la cámara. A parte del programa que se utiliza para posicionar la cámara también se utiliza en vhdl un programa que gestiona la cámara, el cuál tiene dos partes: una es cuando el microcontrolador le pide una nueva imagen usando la señal vsinc y la otra es cuando lo que analiza son las líneas de un imagen (ref.=hsync=’0’). Cuando se pide una nueva imagen el programa inicializa todas las variables y errores mientras que en el resto del programa se encarga de analizar cada uno de los píxeles viendo su luminancia y controlando cuando se tienen varios píxeles negros juntos para poder entonces seguir las líneas negras. 4.2.3.2 Programa del árbitro. El árbitro es otro programa el cual tiene una serie de entradas comunes a la cámara como son el clk y vsinc, pero además le llegan varias direcciones, dichas direcciones hacen que el 66 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. árbitro de la orden (cuando la variable enable=’1’) de mandar al microcontrolador ciertos datos, como por ejemplo los datos de los encoders o errores, etcétera. La máquina de estados de este programa son tres, S0_espera,S1_enable y S2_ack, las entradas son vsin y clk y las salidas son ack_pic y enable. Vsinc=’1’ y clk=’0’ Enable_pic=’0’ S0 Enable_pic=’1’ & clk=’1’ 0/0 S2 S1 1/1 1/0 Figura 4-14: Máquina de estados del árbitro. Por lo tanto cuando la dirección del pic sea “0110” se habilitará el encoder uno y cuando se reciba la dirección “0111” se habilita el encoder dos y esto puede suceder cuando la variables de salida enable es ‘1’, es decir en el estado 1 y 2 pero sólo se actualiza en el dos. A continuación se presenta el diagrama temporal del tratamiento de imágenes en la FPGA, sólo se utiliza las señales de la cámara, los encoders no se han utilizado: Figura 4-15: Simulación temporal de las distintas señales de la FPGA. 67 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.2.3.3 Programa de los encoders. Este programa se encarga de gestionar la cuenta de los dos encoders conectados a la EPLD, así como de la entrega de las cuentas al microcontrolador, cuando éste las solicite a través del árbitro. El principal problema que se tiene es que la cuenta que se entrega debe ser para un mismo instante de tiempo en ambos encoders y, sin embargo, para la comunicación del microcontrolador con la EPLD sólo se dispone de 8 bits, es decir, hay que mandar primero la cuenta del encoder uno y después la del encoder dos. El funcionamiento del programa es el siguiente: Se tiene una máquina de estados general Estado_REG, que cambia de estado según las peticiones de lectura de los encoders desde el árbitro, es decir, las señales eenc1_ENC y eenc2_ENC. Cuando la primera se pone a 1, se cambia de estado a S1_parado1, deshabilitando el volcado de las cuentas actualizadas a los registros datos_ENC1 y 2, que estaba teniendo lugar continuamente, a cada flanco de subida del reloj, mientras se está en S0_volcando. Y sólo se volverá a dicho estado cuando eenc2_ENC se vuelva a poner a ‘0’ (siempre que se solicita enc1, se solicita después enc2), lo que querrá decir que ya se han mandado al microcontrolador ambas cuentas, cuyo volcado se detuvo en el mismo instante, manteniendo constantes los bits de datos_ENC1 y 2. Sin embargo, las cuentas siguieron incrementándose mientras se leían estos dos últimos registros y se mandaban al microcontrolador, con lo que se consigue no perder ningún pulso. Además, cada vez que se pasa a S1_parado1, las cuentas se reinician de nuevo, para no tener problemas de desbordamiento. El microcontrolador realizará una petición de lectura siempre antes de que este desbordamiento tenga lugar. Para reiniciar se utiliza la señal RST_cuentas. Para realizar bien la cuenta de pulsos, cada encoder esta asociado a una máquina de estados definida en Estado_ENC1 y 2. El problema es que no se puede contar a cada pulso del reloj que coincida con la señal del encoder a 1, pues el reloj tiene una frecuencia mayor. Así, se esta en S0_reposo hasta que Enc1 se pone a 1, con lo que se pasa a S1_cuenta, habilitando la cuenta a través de la señal en_cuenta_ENC1, dicha cuenta se incrementa en el proceso correspondiente. Pero en este estado sólo se permanece un ciclo del reloj, pues al siguiente 68 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. pulso se pasa a S2_espera o se vuelve a S0_reposo, dependiendo de si la señal del encoder sigue a 1 o se puso a 0. Por ultimo, se dispone en todos los procesos de un reset asíncrono que reinicia todos los registros y cuentas, con la máxima prioridad. Los detalles del funcionamiento se explican en el propio código del programa. La máquina de estados principal denominada Estado_REG cambia el estado según peticiones de lectura de los encoders desde el árbitro, esta compuesta por cuatro estados: S0_volcado: como nunca van a estar a ‘1’ los dos enables, siempre primero el 1 y luego el 2. Cuando en1 = ‘1’ se deja de volcar las cuentas a los registros y cuando en2 vuelva a ser ‘0’, el microcontrolador ya habrá leído los dos registros y se podrá volver a contar y volcar con normalidad. S1_parado1: Cuando llegamos a este estado se pone la cuenta del encoder1 en el bus1, pero lo importante es que paramos de volcar las cuentas a los registros, para que cuando pasemos al estado S2_parada2 el registro que pongamos en el bus2 fue del mismo instante de tiempo que el del bus1. S1b: Con este estado se asegura que la señal RST_cuentas sólo estará activa durante un pulso, para realizar la cuenta bien en el proceso correspondiente. S2_parado2. Las salidas son en_volcado_REG/RST_Cuentas. 69 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Reset=’0’ clk=’1’ & eenc1_ENC=’1’ S0_volcado 1/0 S2_parado S1_parado 0/0 0/1 eenc2_ENC=’0’ eenc2_ENC=’1’ S1_b Perder un 0/0 Figura 4-16: Máquina de estados principal de la gestión de encoders. La máquina de estados de cada uno de los encoders realiza la cuenta de pulsos, se presenta la del encoder uno pues la del encoder dos es igual. Tiene tres estados S0_reposo, S1_cuenta (Sólo se va a estar durante un ciclo de reloj, de manera que sólo se incrementará la cuenta en una unidad, aunque la señal del encoder siga a ‘1’) y S2_espera y la salida es en_cuenta_ENC1. 70 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Reset=’0’ S0_reposo 0 clk=’1’ & enc1=’1’ enc1=’0’ enc1=’0’ S2_espera enc1=’1’ S1_cuentas 0 1 Figura 4-17: Máquina de estados que gestiona cada encoders. Para poder poner en marcha todos estos programas se deben grabar en una fpga. Un FPGA (field programmable gate array) es un dispositivo semiconductor que contiene componentes lógicos programables e interconexiones programables entre ellos. La raíz histórica de los FPGA son los dispositivos de lógica programable compleja (CPLD) de mediados de los ochenta. Su creador es Ross Freeman, co-fundador de Xilinx. Los componentes lógicos programables pueden ser programados para duplicar la funcionalidad de compuertas lógicas básicas o funciones combinacionales más complejas tales como decodificadores o funciones matemáticas simples. En muchos FPGA, estos componentes lógicos programables (o bloques lógicos, según el lenguaje comúnmente usado) también incluyen elementos de memoria, los cuales pueden ser simples flip-flops o bloques de memoria más complejos. El problema que se encontró es que los programas ocupaban más que el tamaño de la fpga, por ello se tuvo que simplificar dicho programa mediante Synplify pro 8.5 de esta manera se redujo el tamaño de los programas aunque el que más problemas tenía era el programa de gestión de encoder. 71 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Una vez que se compiló se intento probar con el robot, pero los resultados no se hacían visibles con lo cual se depuró el código tanto el introducido en la fpga como en el del mircocontrolador, y se encontró que las direcciones de los encoders en la fpga eran distintas a las direcciones escritas en el pic, además encontramos que la conexión dir_pic2 con el pin 20 de la fpga no funcionaba con lo cual el tercer bit de cada dirección debe estar a 0. A continuación se presenta una tabla donde se ve lo explicado: Nombre en PIC dir_pic0 dir_pic1 dir_pic2 dir_pic3 Nombre pin(manual) Port C4 Port C5 Port A4 Port C0 Nº PIC Nº FPGA 23 24 24 22 6 20 15 23 Nombre en FPGA dir_pic0 dir_pic1 dir_pic2 dir_pic3 Esta conexión no funciona, con el código último desarrollado, donde no era necesario más de 3 bits para pasar la información. En Maxplus se cambió el código de las direcciones. En la PIC se solucionó el error llamando a la dirección nº 4 como ' 1010' en vez de ' 0110'(que sería lo natural). Tabla 4.2-1: Conexiones entre pic-fpga. Aún habiendo revisado toda esta problemática sigue sin funcionar, el problema es que no se sabe exactamente donde esta el error, puede ser que esté en la comunicación y sincronización entre el microcontrolador y en la fpga, lo que si se sabe que funciona es el programa que gestiona el tratamiento de imágenes de la cámara. 72 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.3 Diseño del control de velocidad del motor. Se parte de la representación de un sistema de control clásico, como se puede observar es el mismo esquema que para el sistema de control de corriente del motor pero con una salvedad, el control ya no es un control On- Off sino un control proporcional-integral. Vref Control de Velocidad Control de corriente Patilla 17 o 16 del microcontrolador. Planta Si 17 15 y 10 del L293d. Si 16 2 y 7 del L293d. Sensor de velocidad Figura 4-18: Diagrama general del sistema a estudiar. Se va a controlar la velocidad de los motores que a su vez controlará la corriente de éstos. Este diseño se hará mediante software, usando el programa Embedded Visual C++ que es un entorno de desarrollo que permite crear aplicaciones con ventanas Windows PPC 2003. A continuación se define un poco de teoría del control clásico y la definición de un control proporcional integral. 4.3.1 La Historia de la regulación automática. regulación automática (“como se comenta http://es.wikipedia.org/wiki/Regulaci%C3%B3n_Autom%C3%A1tica”)es en Bibliografía una rama de 2: la ingeniería que se ocupa del control de un proceso en un estado determinado; por ejemplo, mantener la temperatura de una calefacción, el rumbo de un avión o la velocidad de un automóvil en un valor establecido. 73 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. La regulación automática, también llamada Teoría de Control, estudia el comportamiento de los sistemas dinámicos, tratándolos como cajas o bloques con una entrada y una salida. En general, la entrada al sistema es una señal analógica o digital que se capta en algún punto del sistema. Los bloques intermedios representan las diversas acciones perturbadoras que afectan a la señal, como rozamientos en los actuadores, así como el efecto de los elementos de control interpuestos, los reguladores. Estos efectos se suelen representar mediante las funciones matemáticas que los describen, llamadas funciones de transferencia. La salida del sistema corresponde al valor de la señal tras actuar sobre ella las anteriores funciones de transferencia. Cuando una o más de las variables de salida de un sistema tienen que seguir el valor de una referencia que cambia con el tiempo, se necesita interponer un controlador que manipule los valores de las señales de entrada al sistema hasta obtener el valor deseado de salida. Aunque existen diversos tipos de sistemas de control desde la Antigüedad, la formalización del dominio de la Regulación comenzó con un análisis de la dinámica del regulador centrífugo, dirigida por el físico James Clerk Maxwell en 1868 bajo el título On Governors, Sobre los Reguladores. Aquí describió y analizó el fenómeno de la "caza", en el que retrasos en el sistema pueden provocar una compensación excesiva y un comportamiento inestable. Se generó un fuerte interés sobre el tema, durante el cual el compañero de clase de Maxwell, Edward John Routh, generalizó los resultados de Maxwell para los sistemas lineales en general. Este resultado se conoce con el nombre de Teorema de Routh-Hurwitz. Una aplicación notable de la Teoría de Control se encontró en el área del vuelo tripulado. Los primeros vuelos con éxito de los hermanos Wright el 17 de Diciembre de 1903 se distinguían por su habilidad para controlar sus vuelos durante períodos sustanciales, más que por su habilidad para aprovechar el empuje de un perfil alar, que ya era conocido. Durante la Segunda Guerra Mundial, la Teoría de Control fue parte importante de los sistemas de control de disparo, sistemas de guiado y electrónicos. La carrera espacial también dependía del control preciso de las naves. Por otra parte, la Teoría de Control también ha visto un uso creciente en campos como la economía y la sociología. 74 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.3.2 Teoría clásica: control en lazo cerrado. Para evitar los problemas del control en lazo abierto, la teoría de control introduce la realimentación. Un regulador de lazo cerrado utiliza la realimentación para controlar los estados y las salidas de un sistema dinámico. El nombre de "lazo cerrado" hace referencia al camino que sigue la información en el sistema: las entradas al proceso (por ejemplo, la tensión que se aplica a un motor eléctrico) afecta a las salidas del proceso. Estas salidas se miden con sensores y se procesan mediante un controlador o regulador; el resultado, una señal de control, se añade a la entrada al proceso, cerrando el lazo. El control con lazo cerrado presenta las siguientes ventajas sobre el control en lazo abierto: corrección de las perturbaciones (tales como rozamiento impredecible en un motor). buen comportamiento incluso con incertidumbre en el modelo, es decir, en aquellos casos en que la estructura del modelo no representa perfectamente la realidad del proceso o los parámetros del modelo no se pueden medir con absoluta precisión. permite estabilizar procesos inestables. tolerancia a variaciones en los parámetros. La única desventaja del control en lazo cerrado, frente al control en lazo abierto, es que el primero reduce la ganancia total del sistema. Esto lleva al uso conjunto del control en lazo abierto y cerrado, para mejorar el rendimiento. La salida del sistema y(t) se compara con el valor de referencia r(t), a través de las medidas de un sensor. Se alimenta el error al regulador C. Se define el error como la diferencia entre el valor de referencia y la salida del sistema. En función del error, el regulador modifica su salida, que es precisamente la alimentación al proceso que se está controlando, planta. Este esquema es el que se muestra en la siguiente figura. El sistema en la figura es un sistema sencillo de una sola entrada y una sola salida, SISO (del inglés single-input-single-output); los sistemas más complejos, MIMO (Multi-Input-Multi- 75 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Output) son bastante frecuentes. En estos casos, las variables se representan mediante vectores en lugar de valores escalares. Figura 4-19: Esquema general de un sistema clásico monovarible. Si suponemos que el regulador C y el proceso P son lineales e invariantes en el tiempo (es decir, los elementos de su función de transferencia C(s) y P(s) no dependen del tiempo), el sistema de la figura se puede analizar aplicando la transformada de Laplace sobre las variables. Esto proporciona las siguientes relaciones: Y ( s ) = U ( s) ⋅ P ( s) Ecuación 4.7 U ( s ) = C ( s) ⋅ E ( s) Ecuación 4.8 E ( s) = R( s) − Y ( s ) Ecuación 4.9 Despejando Y(s) en función de R(s) se obtiene: Y(s) = El término P(s) ⋅ C(s) ⋅ R(s) Ecuación 4.10 1 + P(s) ⋅ C(s) P( s) ⋅ C ( s) se denomina función de transferencia del sistema. El numerador 1 + P( s) ⋅ C ( s) es la ganancia en lazo abierto de r a y, y el denominador es uno más la ganancia del lazo abierto. Si P ( s) ⋅ C ( s) »1, entonces Y(s) es muy parecido a R(s), lo que significa que la salida se ajusta muy bien a la referencia r de control. 76 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 4.3.3 Control proporcional integral. El modo de control Integral tiene como propósito disminuir y eliminar el error en estado estacionario, provocado por el modo proporcional, aunque tiene una respuesta más lenta que el control proporcional. El error es integrado, lo cual tiene la función de promediarlo o sumarlo por un periodo de tiempo determinado; luego es multiplicado por una constante I, I representa la constante de integración la cual equivale al tiempo requerido en el modo integral para alcanzar el cambio en la salida producido por el modo proporcional. Posteriormente, la respuesta integral se añade al modo Proporcional para formar el control P + I con el propósito de obtener una respuesta estable del sistema sin error estacionario. t m(t ) = K p ⋅ e(t ) + K i ⋅ e(t ) ⋅ dt 0 1 M (s) = K p 1 + Ti ⋅ s Ecuación 4.11 El modo integral presenta un desfase en la respuesta de 90º que sumados a los 180º de la retroalimentación ( negativa ) acercan al proceso a tener un retraso de 270º, luego entonces sólo será necesario que el tiempo muerto contribuya con 90º de retardo para provocar la oscilación del proceso. “la ganancia total del lazo de control debe ser menor a 1, y así inducir una atenuación en la salida del controlador para conducir el proceso a estabilidad del mismo “. Un problema del modo integral es que se incrementa la tendencia a la oscilación de la variable controlada. Por este motivo es conveniente reducir el valor de la ganancia proporcional. Esto hace que el controlador sea más lento y que el controlador integral siga actuando a veces aunque la señal de error sea nula, debida a la acción de señales antiguas. Además, existe una saturación en el mando, por ello se requiere de una técnica un poco más avanzada denominada antiwindup. El efecto windup ocurre cuando el regulador tiene parte integral, como se ha dicho antes, y generalmente durante el periodo de arranque es donde se acumula la integral del error, por ello al llegar a errores pequeños el mando no disminuye, 77 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. porque el regulador intenta equivocadamente compensar la integral del error. Esto sucede cuando se acumula suficiente integral negativa de error, por lo que el mando sale de saturación cuando la salida ha rebasado el valor de referencia. Además se va usar ponderación en la referencia mediante la separación de la parte del error que se debe a la referencia y la que se debe a la salida, por ello en la programación del control aparecen dos errores: error: error debido a la salida. erropk que es el error debido a la referencia. El parámetro que define la ponderación en el errorpk se deberá ajustar en función de la elección de Ti, pero se suele elegir para que se cancele el polo más lento de la planta, al carecer de modelo de la planta, se deberá ajustar observando la salida (velocidad del motor) y reduciendo el posible efecto de cola que aparezca. El usuario introducirá en la PDA mediante un entrono gráfico la velocidad a la que quiere que vaya el coche, el microcontrolador recoge los datos del sensado de velocidad por una de las entradas analógicas-digitales que tiene y por software se realizarán las distintas operaciones del control proporcional-integral. Dicho control da la correspondiente señal de referencia de corriente para cada una de las ruedas. Para la elección de K p se mirará la respuesta del sistema y se ajustará para que el sobrepaso sea del 15%. En cambio, la elección de Ti será en función del posible efecto de cola que aparezca tratando de que sea lo menor posible aunque la ponderación intente reducirla. En cuanto a la precisión ya está garantizada ya que estamos utilizando un control proporcional integral que incluye una integración en el propio control con lo cual garantiza error cero ante un escalón en referencia. Las operaciones que el control internamente realiza son: Calcularse el error que es la diferencia entre la velocidad introducida por el usuario y la velocidad que da en sensor de velocidad: 78 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. error = Vref − y medida Ecuación 4.12 Calcula el error de la parte de ponderación: errorpk = b ⋅ Vref − y medida Ecuación 4.13 Donde b es el parámetro de ponderación. La regla de discretización que se usa es la trapezoidal que trata de acumular la semisuma del error actual más el error anterior. Y por último el control proporcional integral que es: Mando = K p ⋅ (errorpk − errorpkanterior ) + Kp ⋅ Ti error + erroranterior ⋅ tmuestreo 2 + mandoanterior; Ecuación 4.14 A continuación se presenta el diagrama de bloques del control PI implantado por software, para hacerse una idea física del significado de la programación de dicho control y el diagrama de flujos del programa que gestiona el control PI para una de las rueda pues para la otra son los mismos: -1 Z b errorpk=b*vref-yreal error=vref-yreal Vref/usuario Ts/2 -K- var_epk -K- u_s at var_u uk Saturation ek-1 -1 Z us at-1 Control_corriente system Motor 1 yreal -1 Z Figura 4-20: Diagrama de bloques que definen el significado físico de la programación del control. 79 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Introduzca la velocidad deseada de ambas ruedas. NO START. COMUNICA Vref SI Errorpk = bVref − Vmedida Error = Vref − Vmedida Sensor V medida Mando Control de corriente STOP L293d(convertidor) MOTORES Figura 4-21: Diagrama de flujo del programa del control proporcional integral. Para iniciar las pruebas de ajuste de parámetros se preparó un programa que mandaba un mando constante al control de corriente, este mando se genera a partir de la referencia que introduce el usuario. Hay que tener en cuenta que los valores que se introducen por la pantalla de la PDA son de tipo entero y en el programa se usa de tipo double, por ello las variables de entrada por la PDA se debe dividir por la potencia de diez que uno quiera en función del número de decimales que se deseen. 80 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Además en el programa se usan varios tipos de variables, ya que el microcontrolador manda y recibe los datos en formato char, es decir trata con números del 0 a 255, de tal manera que si el microcontrolador, por ejemplo manda un 0 se corresponde con 0voltios y si manda un 255 equivale a 5 voltios y en cambio las operaciones internas se harán en double ya que los parámetros importantes del control ( K p , Ti y b) son declarados como double. La referencia de corriente o salida del control de velocidad es creado por una función denominada void DcMotores(BYTE Dc1, BYTE Dc2) la cual crea un PWM cuyo valor medio es especificado(Dc1,Dc2) en dicha función. Esta señal sale por la patilla 17 o 16 del microcontrolador y será filtrada mediante un filtro RC paso bajo (R=16k y C=547nF) para así obtener dicho valor medio. Esta referencia de corriente tiene límites, en este caso vienen definidos por el periodo del PWM que se quiera. Este periodo se indica en la función void periodoMotores(BYTE per). En este proyecto se ha trabajado siempre con periodo de 100. Por lo tanto queda definido el máximo valor medio del PWM : Si la rueda gira hacia delante el valor medio máximo es 0. Si la rueda permanece quieta el valor medio es 50. Y si la rueda gira hacia detrás el valor medio es 100. Esto quiere decir que se cambia el PWM del motor en función del valor medio por consiguiente el duty cycle varía y no la amplitud. Estos valores además coinciden con la máxima velocidad de giro en un sentido u otro, por lo tanto una velocidad de 50 significa que el coche está parado y según se acerque la velocidad a los extremos anteriores las ruedas girarán más rápido, como se explicó en el circuito de medida de velocidad. Para facilitar el complejo cambio de tipos de variables se pensó en realizar ciertos cambios de escala para la adecuada comprensión a la hora de hacer las cuentas. El primer cambio de escala se hace nada más recibir datos del sensado de velocidad a través del microcontrolador, ya que dicha medida se usará en los cálculo de errores y como se ha dicho antes las operaciones internas se hacen en double, se pasa a un cambio de [0,255] a una escala [- 81 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 1,1].A continuación se presenta el trozo de código donde se realiza dicho cambio de escala y la relación lineal resultante: const BYTE *velocidad_real; double f1=2; double f2=255; double yreal; velocidad_real=control.valorADs();//Lee la velocidad que le llega desde el sensado al pic yreal=((f1*((double)velocidad_real[0]))/f2)-1;//Cambio de escala Tabla 4.3-1: Código donde se realiza el primer cambio de escala. Recta de cambio de escala para poder identificar que velocidad se mide. Transformación para los cálculos internos.(double) 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 50 100 150 200 Señal de medida de velociad.(0-->0voltios,255-->5voltios) (char) 250 Figura 4-22: Cambio de escala para señal medida en el sensor de velocidad. Una vez calculados todos los errores y calculado el mando de velocidad se debe realizar otro cambio de escala esta vez a char, es decir si después de realizar las distintas operaciones del control PI resulta dar un mando de -1 entonces el microcontrolador devolverá es un 0 en formato char o si es un 1 devolverá un 255. 82 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Relación de escala entre el mando calculado a partir de operciones internas y salida de mando por le microcontrolador Mando de salida por el microcontrolador. 250 200 150 100 50 0 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 Mando calculado en operciones internas del control. 0.8 1 Figura 4-23: Relación lineal entre mando de las operaciones del control con el mando de salida del microcontrolador. Pero además el mando tiene límites que estaban impuestos por el periodo del PWM, con lo cual no valdría mandar un mando de 0 a 255 sino que 255 sería el máximo que es 0 y 0 sería 100. Estos dos últimos cambios de escala se hacen en el código de una sola vez como se puede ver a continuación: mandosal=(-100*((f2/f1)*mando+(f2/f1))/255)+100; Tabla 4.3-2:Código que representa estos dos últimos cambios de escala. 83 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Referencia de corriente definida a partir del periodo del PWM Relación entre la refeencia de corriente en char con la referencia referida a partir del periodo del PWM. 100 90 80 70 60 50 40 30 20 10 0 0 50 100 150 Referencia de corriente 200 250 Figura 4-24: Relación entre la referencia de corriente con la referencia de corriente definida a partir de un cierto periodo. Una vez obtenido el mando de velocidad, se manda a través de la patilla 17 o 16 del microcontrolador (una para cada rueda) al control de corriente a través de un filtro RC (comentado antes) y de un buffer porque en un principio se diseñó el filtro sin tener en cuenta las resistencias del control de corriente y al conectar el filtro al comparador que se vio que la ganancia estática del filtro cambiaba. La salida del control de corriente se introduce como señal de control al convertidor (CC-CC) que hay en la tarjeta principal. Si se usa la patilla 17 del microcontrolador, la salida del control de corriente va a la patilla 10 y 15 del convertidor, y si se utiliza la patilla 16 del microcontrolador como referencia de corriente la salida del control de corriente va a la patilla 2 y 7 del convertidor. 84 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 5 Resultados. En el proyecto se han realizado distintas pruebas para comprobar el funcionamiento real de todo lo diseñado. Para ello se han tomado datos a partir del osciloscopio que hay en el laboratorio de investigación midiendo aquellas variables necesarias o que son importancia para la electrónica para el control del coche. 5.1 Pruebas en el hardware. Se comienza por las pruebas realizadas al diseño hardware ya que las pruebas del diseño software no se han realizado por falta de tiempo y se dejan para un futuro proyecto. La pruebas realizadas a los dos circuitos de medida se han gracias a un programa que está incluido en la PDA denominado “tcselpls” que se encuentra en el directorio “Inicio \ Explorador de archivos \ iPAQ File Strore” y donde aparece la siguiente pantalla: En este hueco hay que poner un 3 cuando se quiere que la PDA comunique con el robot y un 0 cuando no se quiere. En estas dos casillas se especifica el periodo del PWM que se quiere, uno para cada rueda. Estas cuatro casillas se indica el valor medio de cada PWM, es decir una para cada rueda, y por tanto queda determinada la velocidad de la rueda. Al poder incluir dos valores medios distintos de PWM se le puede dar mayor velocidad a una rueda que a otra, de esta manera el coche podría girar. Pero para poder funcionar todo esto es necesario poner todos los ticks como se indica en la figura. Figura 5-1: Imagen de la pantalla de la PDA para poder hacer las pruebas del hardware. 85 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Las pruebas del diseño de los circuitos se han realizado sobre la rueda de la izquierda según se observa en la Figura 2-3: Imagen real del alzado del coche, aplicándola un par máximo, es decir frenando la rueda. En estas pruebas lo que se va a comprobar es la relación lineal que se ha fijado entre las entradas y salidas de los circuitos diseñados. A continuación se va a recordar la relación entrada salida de cada uno de los circuitos: Relación lineal entre salida y la caída de tensión en la resistencia de medida. 5 4.5 4.5 4 4 3.5 3.5 3 Vo(voltios) Vo(Voltios) Nueva relación lineal entrada-salida. 5 2.5 2 3 2.5 2 1.5 1.5 1 1 0.5 0.5 0 0 -4 -0.06 -0.04 -0.02 0 0.02 0.04 Variación de tensión en la resistencia de medida.(Voltios) -3 0.06 Figura 5-2: Relación lineal entrada-salida en el circuito de medida de corriente. -2 -1 0 1 F.E.M(Voltios) 2 3 4 Figura 5-3: Relación lineal entrada-salida en el circuito de medida de velocidad. A continuación se presentarán las pruebas realizadas a diferentes velocidades y corrientes. Pero hay que tener en cuenta que al introducir un 0 como valor medio en la PDA la rueda girará hacia delante y si se le introduce un cien como valor medio girará hacia detrás. En cada una de las figuras el canal uno es la salida del circuito de medida de velocidad y el canal dos es la salida del circuito de medida de corriente: 86 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 5-4: Salida de cada uno de los Figura 5-5: Salida de cada uno de los circuitos de medida. Con valor medio 100. circuitos de medida. Con valor medio 90. Figura 5-6: Salida de cada uno de los Figura 5-7: Salida de cada uno de los circuitos de medida. Con valor medio 80. circuitos de medida. Con valor medio 70. 87 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 5-8: Salida de cada uno de los Figura 5-9: Salida de cada uno de los circuitos de medida. Con valor medio 60 circuitos de medida. Con valor medio 50. Como se puede observar al conectar la PDA el ajuste de cero no se mantiene en el inicial que tendría que salir 2.5 voltios en ambos casos, es más problemático en el circuito de corriente que en el circuito de velocidad como se observa en la Figura 5-9: Salida de cada uno de los circuitos de medida. Con valor medio 50. Pero el ajuste de cero inicial sin comunicación es el siguiente: Figura 5-10: Salida de ambos circuitos de medida cuando está parado pero sin la comunicación entre la PDA y el coche. Ajuste de cero inicial. 88 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Este es uno de los primeros problemas que se deberán resolver en el futuro proyecto pues no se sabe porque al conectar la PDA (con valor medio 50) el ajuste de cero se pierde, este problema es necesario resolverlo pues es muy importante para el ajuste de los valores del control de velocidad ( K p , Ti y b). Figura 5-11: Salida de cada uno de los Figura 5-12: Salida de cada uno de los circuitos de medida. Con valor medio 40. circuitos de medida. Con valor medio 30 Figura 5-13: Salida de cada uno de los Figura 5-14: Salida de cada uno de los circuitos de medida. Con valor medio 20. circuitos de medida. Con valor medio 10. 89 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 5-15: Salida de cada uno de los circuitos de medida. Con valor medio 0. Resultados del sensor de corriente. 5 4.5 4.5 4 Salida del sensor de velocidad. Valor de la salida del s.ensor 4 3.5 3 2.5 2 1.5 3.5 3 2.5 2 1.5 1 1 0.5 0.5 0 Resultados del sensor de velocidad 5 0 0 10 20 30 40 50 60 70 80 90 Valor medio de la señal PWM que le llega a los motores. 100 Figura 5-16: Salida del circuito de medida de la corriente. 0 10 20 30 40 50 60 70 Valor medio de la señal de PWM. 80 90 100 Figura 5-17: Salida del circuito de medida de la velocidad. Como se puede observar se tienen problemas en el circuito de medida de corriente, sobre todo cuando se tiene valores medios de PWM mayores de 40, esto quiere decir que la corriente no varía mucho y su relación lineal es más lenta que la de velocidad, que como se puede observar si que cumple la relación lineal impuesta en el diseño. Cuando se deciden valores medios de PWM extremos (0 y 100) ambos circuitos funcionan correctamente pero con una cierta holgura, estas pérdidas pueden ser debidas a los propios componentes, por ello no llegan a los extremos de 5 y 0 voltios especificados en el diseño, esto sería otra posible mejora para un futuro proyecto. 90 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 5.2 Pruebas del control de corriente. El control de corriente es básicamente un comparador con histéresis, este recibe dos señales, una es la salida del microcontrolador por la patilla 17 o 16 del mismo y la segunda es la señal de salida del circuito de medida de corriente. Como el lazo de velocidad no se ha cerrado, el análisis del comportamiento del comparador se realiza simplemente introduciendo dos señales y variando sus valores y se comprueba que la salida de dicho comparador es: L+ = 5Voltios si se cumple que Vmedida < V16o17 O L− = 0Voltios si se cumple que Vmedida > V16o17 En las figuras impares el canal dos es Vmedida y el canal uno es V16o17 , mientras que en las figuras pares la salida es el canal dos y se mantiene el canal uno. Figura 5-18: Entradas al control de corriente Figura 5-19: Salida del control de corriente con una de las entradas al propio. 91 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 5-20: Entradas al control de corriente Figura 5-21: Salida del control de corriente con una de las entradas al propio. Como se puede observar en las gráficas anteriores se cumple lo especificado antes: L+ = 5Voltios si se cumple que Vmedida < V16o17 28.1mV<4.94V. O L− = 0Voltios si se cumple que Vmedida > V16o17 3.97V>1.65V En la siguiente figura se representa el comportamiento del comparador: Salida del control de corriente. 6 5 Salida (Voltios) 4 3 2 1 0 -1 0 0.02 0.04 0.06 0.08 0.1 0.12 Tiempo(ms) 0.14 0.16 0.18 0.2 Figura 5-22: Comportamiento del comparador con histéresis ante las entradas anteriores. En dicha gráfica la señal roja es la señal de medida del sensor de corriente y la verde es la que proviene del control de velocidad. 92 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Así que el funcionamiento del comparador es correcto. El control de corriente no se ha podido probar su funcionamiento debido a problemas con el convertidor de corriente continua corriente continua. 5.3 Pruebas del PWM por cambio del duty_cycle. Como la entrada V16o17 proviene del microcontrolador en forma de onda cuadrada hay que filtrarla para obtener el valor medio deseado, por ello se ha comprobado también este filtrado. Pero se observo que la señal PWM cambiaba en amplitud debido a que el filtro no era simplemente una resistencia y un condensador si no que en el diseño habría que tener en cuenta las resistencias del comparador, por ello un arreglo sencillo fue colocar un buffer después del filtro, esto se podría arreglar fácilmente volviendo a diseñar el filtro. Donde el canal uno es el calor del PWM filtrado, y el canal dos es la señal PWM obtenida de la patilla 16 del microcontrolador y en la última figura sería la señal obtenida por el control de corriente cuando está parado el coche. Figura 5-23: Señal PWM con valor medio 100. Figura 5-24: Señal PWM con valor medio 0. 93 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. Figura 5-25: Señal PWM con valor medio 50. Como se puede observar la señal cambia por duty-cycle y el filtrado de la señal es correcto. Ahora lo único que habría que hacer sería cerrar el lazo pero se encontraron problemas en las antes de cerrar el lazo. Para poder cerrar el lazo se diseño otro programa en la PDA, el cual en un principio mandaba un mando fijo. Se comprobó cual era la salida del control de corriente sin conectar dicha salida al convertidor (l293d), es decir el funcionamiento del control de corriente y sorprendentemente la rueda se movía, esto es imposible pues no había señal de mando de corriente. Se comprobó que había en las patillas de control del puente (patillas 2 y 7 del l293d) y en una de ellas había 0 Voltios y en la otra 5 Voltios. Por esto no se pudo probar el control proporcional integral, queda revisar esta anotación para un futuro proyecto. El circuito real, implantado en una tarjeta formado por ambos sensores y el control de corriente se muestra a continuación: 94 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. RESISTENCIA DE MEDIDA BORNES DEL MOTOR Y RESISTENCIA DE MEDIDA. SENSOR DE VELOCIDAD SENSOR DE CORRIENTE CONTROL CORRIENTE Figura 5-26: Circuito real implantado en una tarjeta compuesto por el control de corriente y sensores de velocidad y corriente. 95 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 6 Conclusiones Gracias a los resultados obtenidos se pueden analizar las siguientes conclusiones: Los circuitos diseñados para la mediad de corriente y de velocidad de los motores son muy parecidos por lo que una vez diseñado el primero el segundo se diseñó mucho más rápido. El circuito de medida de corriente se probó en un principio exclusivamente para los extremos de valor medio y la situación de valor medio 50 se probó sin la comunicación entre la PDA y el coche. Por eso el fallo en el ajuste de cero no se encontró hasta que se intentó ajustar el control de velocidad. El ajuste de cero afecta mucho más en el circuito de medida de la corriente que en el de velocidad, esto puede ser debido a que el cambio de corriente es menos acusado al cambiar el valor medio del PWM y por ello los resultados no son los esperados. En cambio en el de velocidad la relación lineal si se cumple, pero en el ajuste de cero también se pierden algunos milivoltios. Los resultados obtenidos tanto en el circuito de medida de la corriente como en el circuito de medida de velocidad cuando el valor medio es uno de los extremos si que cumple con los valores esperados aunque no se consigue el máximo rango. Se debería comprobar el circuito l293d (convertidor corriente continua corriente continua) pues se requiere de dos señales de entrada y parece que son de salida ya que siempre están o a 0voltios o a 5voltios y por tanto no se puede cerrar el lazo de corriente y tampoco el lazo de velocidad. 96 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 7 Futuros desarrollos. A la vista de las conclusiones, se necesita desarrollar las mejoras propuestas a lo largo del todo el proyecto, estas mejoras harán que la electrónica para el control ayuden en el obtención de un control de seguimiento de trayectorias más óptimo. 7.1 Mejoras en los circuitos de medida de la corriente y velocidad. Lo primero que se debería hacer es intentar solucionar el ajuste de cero del circuito de control de corriente cuando la PDA comunica con el coche. Y ver porque afecta más esa comunicación al circuito de sensado de corriente que al de velocidad. Puede ser incluso que se tenga que rediseñar los circuitos de medida. Relación lineal entre salida y la caída de tensión en la resistencia de medida. 5 4.5 Problemática. 4 Vo(Voltios) 3.5 3 2.5 2 1.5 1 0.5 0 -0.06 -0.04 -0.02 0 0.02 0.04 Variación de tensión en la resistencia de medida.(Voltios) 0.06 Figura 7-1: Relación lineal entre salida y la caída de tensión en la resistencia de medida. Para el sensado de velocidad también se podía haber utilizado los encoders como segunda opción, mediante los programas ya existentes de gestión de encoders y cámara. Para poder utilizarse hay que comprobar que comunicaciones entre el microcontrolador, fpga y la cámara estén sincronizadas. 97 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. E cuanto a los programas que gestionan el tratamiento de imágenes en la fpga están compilados y se ejecutan perfectamente, el problema está en el código de los encoders los cuales están compilados pero al ejecutarlos los datos que recoge la PDA no son coherentes. Por ello habría que partir de la sincronización de recogida de datos por la fpga enviados desde la cámara y de los encoders. Los códigos de toda la gestión que realiza la fpga se incluirán en la parte de códigos fuentes. 7.2 Control de velocidad. Además, se necesita cerrar el lazo de velocidad que no se ha podido probar en este proyecto, pero se dejan los programas necesarios para poder resolverlo rápidamente el control de velocidad a falta de ajustar los parámetros del control. Para poder cerrar el lazo de velocidad es necesario comprobar las señales de control del convertidor (l293d), las hojas de características de este dispositivo se incluyen en la parte de datasheet. Este control de velocidad está diseñado para una sola rueda con lo cual habrá que duplicarlo mandando dos señales de referencia, una para cada rueda. Una vez diseñado el control de velocidad queda diseñar otro lazo externo que sería el de generar las referencias gracias a la ayuda del tratamiento de imágenes mandadas desde la cámara. 7.3 Generación de referencias. Una posible manera de abordar la generación de referencias es utilizar técnicas de control avanzado. Puede ser bueno un control del giro que se adapte a las distintas situaciones. La situación es que un conductor experimentado no actúa igual ante cualquier curva. En principio, la técnica de Gain Scheduling (Programación de Ganancia) puede ser ideal para resolver la situación. El fundamento del Gain Scheduling consiste en agrupar las posibles situaciones que pueden darse y variar los parámetros del control para cada una de ellas. Para aplicarlo hacen falta variables cuyos valores determinen en qué situación de todas 98 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. las posibles uno se encuentra. En este caso la variable puede ser el radio de curvatura, de ahí la necesidad de tener una buena estimación del mismo. Por tanto, para aplicar Gain Scheduling en la acción de giro habría que realizar un estudio del que, variando los radios de curvatura de la trayectoria, se extraigan los parámetros óptimos en una serie de rangos de operación. También parece que pueden tener aplicación aquí las técnicas de lógica borrosa (fuzzy logic). En este caso, habría que realizar una descripción lingüística del problema y aplicar las acciones del control empleando la teoría de conjuntos borrosos. Una forma intuitiva de describir la situación sería definirla como: Si el radio de curvatura es grande, girar poco e ir rápido Si el radio de curvatura es pequeño, ir despacio y girar mucho Después habría que cuantificar qué es radio grande y pequeño, qué es ir rápido y despacio y qué es girar poco o mucho. Evidentemente esta definición del problema puede dejarse muchos aspectos sin tener en cuenta. Habría que realizar una más detallada que recogiera todas las posibles situaciones, incorporando también las acciones que habría que llevar a cabo cuando el coche se está alejando de la trayectoria, etc. Como ventaja, se observa que así se controlaría con buen criterio tanto la velocidad angular como la lineal. Es decir, si se aplica lógica borrosa se tendría una nueva forma de enfocar las referencias de velocidad. Se necesita por tanto una buena estimación del radio de curvatura En principio, la recomendación sería analizar la posibilidad de implantar la generación de trayectorias por lógica borrosa. Es una técnica cuya aplicación es cada vez más frecuente en la industria debido a su enorme potencial y parece que puede llevar a buenos resultados. 99 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 7.4 Consideraciones sobre nuevos motores. Los motores que incorpora actualmente el prototipo del coche no son capaces de llevarlo a altas velocidades. Las causas principales de este problema son varias. En primer lugar, la reducción entre el eje del motor y el eje de cada rueda es bastante grande (kgear = 5), por lo que el rotor va a tener que girar rapidísimo y la fricción viscosa que haya en el mismo comenzará a tener efectos notables. Además, estas velocidades pueden incluso aproximarse a los límites mecánicos del motor. Por otro lado, también puede influir que la constante de par del motor (km) sea baja. Sin embargo no es muy probable que otros motores con características constructivas similares en cuanto a tamaño y peso entreguen pares mucho mayores que el actual para una misma corriente. En todo caso, no estaría de más hacer un sondeo por el mercado para comprobarlo. Otra de las causas debe estar en los detalles constructivos del motor. Seguramente en la sección de cobre utilizado en el circuito. El resultado final es un circuito de inducido poco optimizado y esto hace que las corrientes y tensiones que hacen falta para llevar la carga situada en el eje del motor a girar a altas velocidades son demasiado grandes para la circuitería incluida en la electrónica del coche. Por tanto, en primer lugar parece imprescindible buscar un motor de más calidad cuyas pérdidas en el cobre sean pequeñas para poder gobernar al coche a altas velocidades. Además, habría que estudiar hasta dónde se puede llevar el valor de la reducción con el nuevo motor. Evidentemente, si el motor ve una carga demasiado grande en su eje tardará más tiempo en vencer las inercias del coche. Sin embargo, también hay que poner en la balanza el hecho de que interesa que la velocidad que se pueda alcanzar en régimen permanente sea alta para obtener resultados interesantes. 100 Sistema de conducción automática basado en un sistema de visión artificial hardware. Electrónica para el control. 8 Bibliografía La información utilizada en el proyecto ha sido: Páginas web: o Bibliografía 1: http://profesores.elo.utfsm.cl/~jgb/piC.pdf o Bibliografía 2: http://es.wikipedia.org/wiki/Regulaci%C3%B3n_Autom%C3%A1tica o Bibliografía 3: http://www.unicrom.com/Tut_MotorCC.asp o Bibliografía 4: http://robots-argentina.com.ar/MotorCC_PuenteH.htm o Bibliografía 5: http://www.ifent.org/temas/amplificadores_operacionales.asp o Bibliografía 6: http://www.terra.es/personal2/equipos2/filtros.htm o Bibliografía 7: http://platea.pntic.mec.es/~lmarti2/veloraton/disparadores.htm(comparadores) o Bibliografía 8: http://www.iit.upcomillas.es/~alvaro/teaching/Clases/Robots/teoria/Manual%20de%20la%20 TCS.pdf Bibliografía 9: Apuntes de Romano Gianneti de Electrónica analógica. Bibliografía 10: Sedra ADEL S 3º Edición MCGraw Hill. 101