DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE PROTOTIPAJE RÁPIDO Y DE BAJO COSTO PARA LA ENSEÑANZA
EXPERIMENTAL DEL CONTROL AUTOMATICO
TRABAJO DE INVESTIGACION QUE PRESENTA: JOSE DE JESUS MEZA SERRANO
PARA LA OBTENER EL TITULO PROFESIONAL DE:
INGENIERO EN COMUNICACIONES Y ELECTRONICA
ASESORES:
DR. ALBERTO SORIA LOPEZ
I A mi madre Brígida Serrano Romero por su amor infinito.
A mi padre Enrique Meza García† por sus enseñanzas.
A mi esposa Ma. Ricarda Cano Hernández por la gran dedicación a la educación y cuidado de nuestras hijas.
A mis hijas María Elena y Karla Itzel, lo que más quiero en la vida.
A la pequeña Emma Sofía.
A mi hermano Daniel Javier Meza Serrano por su apoyo en los momentos difíciles.
A toda mi familia.
A los Drs. Rubén Alejandro Garrido Moctezuma y Alberto Soria López por su apoyo y asesorías.
Al pueblo de México que pagó mi formación académica en una institución como el Instituto Politécnico Nacional.
Al pueblo de México que ha permitido la creación de instituciones académicas de alto nivel como el Centro de Investigación y Estudios Avanzados, donde trabajo.
II
AGRADECIMIENTOS: ………..I
INDICE: ………II
CAPITULO I: OBJETIVOS, INTRODUCCION DE TERMINOS, ANTECEDENTES,
JUSTIFICACION Y MARCO REFERENCIAL ………..……….…...1
I.1.- Objetivos …….………....1
I.2.- Introducción de términos ………..3
I.3.- Antecedentes ……...………..4
I.4.- Justificación …………...………...8
I.5,- Marco referencial ………..11
I.6.- Organización del reporte ……….18
CAPITULO II: ELEMENTOS DE LA PLATAFORMA ……….20
II.1.- El puerto paralelo en modo EPP ………..20
II.2.- El puerto serie RS232C ………..25
II.3.- El DSC dsPIC30F4012 ………...28 II.4.- Plataforma de programación para control en tiempo real Matlab-Simulink-Ardence RTX-Wincon ………....30
II.5.- Funciones “S” en Simulink ………...32
II.6.- El MPLAB IDE y el compilador C30 ………..32
CAPITULO III: DESARROLLO DE LA PLATAFORMA ………..35 III.1.- Circuitería ……….35 III.1.1.- Servomotor ………...35 III.1.2.- Electrónica de potencia ………..36
III.1.3.- Fuentes de alimentación ………....37
III.1.4.- Trasladador de niveles ………...38
III.1.5.- Tarjeta principal con el dsPIC30F4012 ………...40
III.2.- Programación en código y configuración ………...42
III.2.1.- Programación del dsPIC ………43
III.2.1.1.- Configuración general ………....45
III.2.1.2.- Comunicación serie ………....46
III.2.1.3.- Generación de la señal de control por modulación en ancho de pulso ……….49 III.2.1.4.- Medición de la posición angular ………...51
III.2.1.5.- Medición de la corriente en el servomotor ……...54
III.2.1.6.- Rutinas de atención a interrupciones ………...57
III.2.2.- Programación de la función “S” para Simulink …………...58
III
IV.1.- Generalidades de los motores de corriente directa ………....62
IV.2.- Modelo matemático de un motor de corriente directa controlado por armadura ………...64
IV.2.1.- Identificación de los parámetros del motor y del modelo ...73
IV.2.2.- Modelado en lazo cerrado, con un controlador PID ………...74
IV.2.3.- Estabilidad del sistema de tercer orden en lazo cerrado ...76
IV.3.- Simulación ……….77
CAPITULO V: CONTROL EN TIEMPO REAL ………..79 V.1.- Control de velocidad en tiempo real del servomecanismo …………79
V.2.- Control de posición en tiempo real del servomecanismo …………..81
V.3.- Control de posición en tiempo real de un brazo robótico …………...84
V.4.- Seguimiento de una trayectoria senoidal ………..86 V.5.- Conclusiones ……….87 V.6.- Trabajo futuro ………....88
BIBLIOGRAFIA Y PAGINAS WEB: ………...………..89 ANEXOS: ……….90
a) Diagrama electrónico de la fuente de alimentación ……….90
b) Diagrama electrónico de la tarjeta principal con el dsPIC30f4012 ……91
c) Circuito impreso de la tarjeta electrónica principal ………...92
d) Costos del Softwarede la plataforma ……….92
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
CAPITULO I.- OBJETIVOS, INTRODUCCION DE TERMINOS, ANTECEDENTES, JUSTIFICACION Y MARCO REFERENCIAL
En este capítulo hablaremos de los objetivos, antecedentes, motivaciones y justificaciones del trabajo realizado. También definiremos algunas palabras clave que se usarán en este reporte, lo anterior para su mejor entendimiento. así mismo, mencionaremos el estado del arte de este tipo de plataformas, y de algunas parecidas; cuyo conocimiento es necesario para visualizar las tendencias en este tipo de tecnologías, para poder valorar de manera más objetiva el trabajo que aquí se presenta.
Para finalizar este capítulo se explica la idea que definió la organización y la secuencia de todos los capítulos de este manuscrito.
I.3.- Objetivos:
El presente trabajo de tesis tiene como objetivo general contribuir a la solución de dos problemas fundamentales en la enseñanza del control automático. El primero se refiere al enfoque puramente abstracto que se le da a dicha enseñanza en la mayoría de las escuelas de nivel licenciatura y centros de investigación, donde se estudia el control automático y sus áreas de aplicación. El segundo problema tiene que ver con la falta de recursos económicos para la instalación de laboratorios que permitan proporcionar soporte experimental y concreción práctica a los conceptos teóricos.
Para tal efecto, se pretende diseñar, integrar, construir y probar el equipo que se reporta en el presente trabajo, este dispositivo ha sido denominado; plataforma de prototipaje rápido y de bajo costo para la enseñanza experimental del control automático.
Entenderemos como parte de nuestra plataforma a toda la circuitería y la programación que nos permita realizar el control en tiempo real de un servomecanismo de C.D.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
1.- Definir los alcances y características que debería tener la plataforma: Para esto se decidió que sería suficiente, por el momento, con poder cerrar un lazo de control principal, y poder cerrar un lazo interno de control en corriente para tener la opción de trabajar el servomecanismo en modo par. También se decidió que la comunicación entre la tarjeta principal y la computadora personal sería por el puerto serie. Con estas definiciones se pasó a seleccionar el dsPIC adecuado.
2.- Seleccionar el motor adecuado, en concordancia con las características del amplificador de potencia: Con estos dos aspectos definidos y con el dsPIC seleccionado, se procedió a hacer el diseño de circuito electrónico completo de la tarjeta principal, así como del circuito impreso correspondiente. También se decidió el montaje mecánico del motor, y que tipo de codificador de posición óptico sería usado, considerando que este debería ser acoplado a la flecha del motor.
3.- Armar varias tarjetas impresas.
4.- Diseñar y construir las fuentes de alimentación y los trasladadores de nivel para la comunicación por el puerto serie. Hasta aquí podemos decir que se cumplió con la etapa de contar con el hardware necesario.
5.- Programar el dsPIC: Esta parte se decidió hacerla en lenguaje “C” y utilizando las librerías disponibles para cubrir nuestros requerimientos. Esto implicó la instalación del compilador C30, así como el conocimiento exhaustivo de los módulos del dsPIC a ser programados, el manejo de interrupciones, y la depuración de los programas incluidos en el proyecto.
6.- Programar y probar la función “S” o driver para la comunicación entre Simulink y el dsPIC: Para esto fue necesario conocer que es una función “S” y manejar a nivel de registros la forma de configurar el puerto serie de la computadora personal. Además se requirió de abrir el puerto en Windows XP mediante la aplicación Ardence-RTX.
7.- Programar el modelo del controlador en Simulink y depurarlo.
8.- Integrar todos los elementos de la plataforma y probarlos.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
I.1.- Introducción de términos:
En el presente documento expondremos los antecedentes, el diseño, construcción y prueba del prototipo, al cual hemos denominado, plataforma de prototipaje rápido y de bajo costo, para la enseñanza experimental del control automático. Para tal efecto, se hace necesario introducir algunos términos que consideramos importantes y que podrían no quedar muy claros a lo largo de este documento.
Adquisición de datos: nos referiremos a esta área, cuando hablamos del proceso de acondicionamiento, muestreo y conversión de señales analógicas a digitales, digitales a analógicas, para que puedan ser manipuladas en una computadora personal, en un procesador de señales o en cualquier microcontrolador. En este sentido una tarjeta de adquisición de datos es una interfaz, entre el mundo real y algún tipo de procesador, que sea capaz de llevar a cabo las funciones indicadas.
Tiempo real en control: en nuestro concepto es el tiempo mínimo requerido para el muestreo de una señal, la reconstrucción y su procesamiento (control), según el teorema de muestreo de Nyquist-Shannon.
En el ámbito del Control Automático, hablamos de tiempo real cuando hacemos alguna simulación en computadora, o cuando controlamos físicamente algún proceso. En el primer caso, cada uno de los pasos de una simulación se ejecuta en el momento en que el sistema operativo de la computadora lo permite, es decir el tiempo de muestreo es el de la computadora y puede ser variable. En el segundo caso, en el que estemos controlando alguna planta o proceso real, el muestreo de las señales debe realizarse con un paso fijo, externo al sistema operativo de la computadora, que reúna los requisitos mencionados para ser considerado como control en tiempo real.
Servomotor: un motor al cual se le coloca algún dispositivo para conocer y tener la posibilidad de realimentar su o sus principales variables de salida, es decir su posición o velocidad angular, es un servomotor.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
generación de señales actuantes, nos estaremos refiriendo a él, como un sistema embebido.
Prototipo: es una versión previa o preliminar de algún producto. Nosotros nos referimos a la plataforma desarrollada y reportada en el presente trabajo, como; de prototipaje rápido, porque consideramos que aún es un prototipo y que en poco tiempo y con facilidad se puede contar con un sistema servomecánico o mecatrónico, que le permita al interesado, contar con un kit de prueba, portátil y de bajo costo, como herramienta didáctica, auxiliar, en la enseñanza del control automático.
Target (nucleo) de tiempo real: Es un programa de aplicación que nos permite correr un código en pseudotiempo real en el sistema operativo de la computadora personal con la que estémos trabajando. En nuestro caso se corre un código de control respetando el periodo de muestreo que se requiere. Estas aplicaciones son también llamadas, en programación, kernel, las que actúan como un cliente de otra aplicación llamada servidor.
I.2.- Antecedentes:
Desde la creación de la Sección de Control Automático del Departamento de Ingeniería Eléctrica del Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional (CINVESTAV), hace ya más de 30 años, ésta se acompañó de un Laboratorio donde se pudieran probar algunas de las diferentes leyes y estrategias de control que se venían investigando. Para tal efecto fue indispensable contar con diferentes equipos, tarjetas de adquisición de datos, plataformas de programación, sensores, etc. para realizar el control en tiempo real de dichos equipos.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
Como resultado de esta iniciativa, desarrollamos una primera versión de la plataforma servomecánica para la enseñanza del control automático. Nuestro Laboratorio de Enseñanza cuenta con cuatro plataformas, las que se vienen utilizando hasta la fecha, con pequeñas modificaciones, para dar atención simultánea a ocho estudiantes de postgrado en algunos de los cursos de maestría, y en otros introductorios, así como en diferentes trabajos de tesis de maestría y doctorado.
A continuación presentamos las generalidades de la primera versión de la plataforma de enseñanza que se construyó en el CINVESTAV.
En la siguiente figura 1 se muestran esquemáticamente las componentes de la plataforma original.
Figura 1.- Esquema de la Plataforma de Enseñanza Original.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
El bloque PC Client (Cliente) es otra computadora que ejecuta un núcleo o kernel en tiempo real. El programa de usuario que se carga en el Kernel permite la interacción con el hardware externo a través de una tarjeta de adquisición de datos para realizar las siguientes funciones; el muestreo periódico de la señal o señales de salida de la planta, y el envío de la señal de control.
La planta es un motor de corriente directa con escobillas, controlado por armadura y está representada por el bloque circular. También se consideran como parte de la planta el bloque ISO124, que es un aislamiento galvánico capacitivo para señales analógicas, y el bloque CSE, que es un servoamplificador de potencia con realimentación en corriente y con salida modulada en ancho del pulso (PWM).
La parte del sensado de las señales de salida en posición y/o en velocidad angulares, la lleva a cabo el bloque codificador de posición óptico incremental y el bloque ETACH2 (convertidor de frecuencia a voltaje). El primero mide en pulsos la posición angular y el segundo nos entrega un voltaje analógico proporcional a la velocidad del servomecanismo. Como se observa en la figura 1, estas señales son realimentadas para cerrar el lazo de control.
En cuanto al software para el control en tiempo real, éste se realiza utilizando la plataforma Matlab-Simulink-Wincon-RTX en el servidor, mientras que el cliente solo cuenta con el Wincon. Ambas computadoras se comunican por TCP/IP.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
Figura 2.- Imágenes reales de la plataforma de enseñanza original.
Funcionalmente este tipo de plataformas de enseñanza han sido eficientes; nos han permitido impartir, durante varios años, un curso experimental cuatrimestral a nivel de maestría, y nos han permitido realizar una gran cantidad de experimentos necesarios para sustentar varios artículos de investigación. Sin embargo existen algunos problemas de operación que se presentan con el tiempo y para algunas aplicaciones. De entre ellos podemos mencionar que las tarjetas de adquisición de datos, llamadas Servotogo II, además de ser importadas, están diseñadas para bus ISA, el cual ya no se incluye en la mayoría de las computadoras personales desde hace varios años.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
Existen en el mercado otras tarjetas de adquisición de datos. Por ejemplo de National instruments, pero son caras y la mayoría de ellas no leen codificadores de posición ópticos en cuadratura, por lo que no son muy adecuadas para hacer control en posición de servomecanismos.
Estos fueron los problemas principales y los antecedentes que dieron origen a la plataforma de enseñanza que presentamos en el presente trabajo. Dicha plataforma tiene una filosofía totalmente diferente en el hardware. Esencialmente es de bajo costo, ya que prescinde de la tarjeta de adquisición de datos, además de ser mucho más compacta y portátil.
I.2.- Justificación:
Dado que una de los objetivos del presente trabajo es la reducción del costo de la plataforma de enseñanza original que se describió en el apartado de antecedentes, en la siguiente tabla 1 mostramos los costos estimado de las componentes de la plataforma original mencionada.
No. CANTIDAD DESCRIPCION COSTO
1 1 Tarjeta de adquisición de datos
Servotogo II
15,000.00
2 1 Aislamiento analógico galvánico 2,000.00
3 1 Servo amplificador de potencia
PWM Copley Controls
10,000.00
4 1 Motor de C.D. 2,000.00
5 1 Sensor de posición óptico
incremental
4,000.00
6 1 Convertidor de frecuencia a voltaje 3,500.00
7 2 Computadoras personales 24,000.00
[image:12.612.80.534.397.635.2]COSTO TOTAL: 60,500.00
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
No obstante que la cotización anterior no incluye los costos de desarrollo de la plataforma, y los componentes indicados ya son de económicos, el costo total de ésta no es accesible para la mayoría de las escuelas de educación superior pública ni para los centros de investigación, sobre todo si se considera que en un laboratorio de enseñanza o experimentación debe contarse con varias plataformas de este tipo.
[image:13.612.104.526.280.554.2]Por otra parte, nuestra plataforma de enseñanza está basada en una tarjeta de circuito impreso que tiene como elemento central al microcontrolador de señales digitales (DSC) dsPIC30F4012 30I/SP, el cual hace las veces de tarjeta de adquisición de datos, y actúa como acondicionador de señales e interface de comunicación entre el controlador y la planta.
Fig. 3.- Plataforma de enseñanza de bajo costo.
La plataforma de enseñanza es completada solamente por una computadora personal (PC) que actúa como servidor y cliente, y un servomotor pequeño que se encuentra fijado a un ángulo metálico junto con la tarjeta principal.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
La planta es un motor de corriente directa con escobillas al que se le ha acoplado, mecánicamente, en la flecha un codificador de posición óptico incremental, para habilitarlo como servomotor.
El dsPIC y la computadora personal se transfieren de manera bidireccional las señales requeridas para cerrar el lazo de control, dicha comunicación se puede llevar a cabo indistintamente a través del puerto paralelo o del serie; por lo que la comunicación de datos es alámbrica y digital en forma de bytes.
La salida en posición angular del servomotor es sensada mediante el codificador de posición óptico incremental y llevada al dsPIC, donde es decodificada para ser transmitida al controlador; esta señal es realimentada para cerrar el lazo de control en la PC. Después de ser manipulada por el controlador, se obtiene la señal de control (u(t)), la cual se envía de regreso al dsPIC en la tarjeta, para ser convertida a señales eléctrica del tipo PWM, las que excitan al servomotor, logrando controlar la posición o velocidad según se desee.
La señales de control en forma PWM son optoaisladas y amplificadas en la misma tarjeta impresa, esto mediante dos circuitos integrados y un amplificador tipo puente H, antes de ser aplicada al servomotor.
La corriente en el servomotor también es sensada, y puede ser realimentada para trabajarlo en modo corriente (par) o simplemente para limitarla y proteger al amplificador.
El costo del hardware de la Plataforma de Enseñanza que hemos descrito y que fue desarrollada en el presente trabajo, es el siguiente:
No. CANTIDAD DESCRIPCION COSTO
1 1 Motor de CD Dynetic Systems 360.00
2 1 Sensor de posición óptico 720.00
3 1 DsPIC30F4012 50.00
4 1 Amplificador tipo puente H
LMD18200
100.00
5 1 Circuitería electrónica y PCB 400.00
6 1 Computador personal 12,000.00
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
COSTO TOTAL: 13,730.00
Tabla 2.- Costo de las componentes de nuestra plataforma de enseñanza de bajo costo.
Si comparamos funcionalmente nuestra plataforma con la plataforma de enseñanza original, que se describió en el apartado anterior, podremos notar lo siguiente: en el caso de la plataforma original, la tarjeta de adquisición de datos nos proporciona mayor capacidad de manejo de señales analógicas y digitales, pudiendo controlar sistemas más complejos, con varias entradas y salidas, es decir; nos permite controlar varios servomecanismos. Por lo que respecta a nuestra plataforma, ésta, se encuentra limitada al control en lazo cerrado de un servomotor, pudiendo modificarse únicamente para controlar dos servomotores. De tal manera que, en este aspecto, la plataforma original es más poderosa.
Donde se nota claramente la diferencia, es en el precio; en este aspecto observamos una relación casi de 5:1, siendo más cara la plataforma original con respecto a nuestra Plataforma.
También nuestra plataforma es mucho más compacta y portable, permitiéndonos el aprendizaje y desarrollo de las diferentes ingenierías relacionadas, por ser un sistema abierto.
Lo antes expuesto deja claramente manifiestas la motivación y al interés de desarrollar una plataforma para la enseñanza de bajo costo, y justifica plenamente el presente trabajo.
El desarrollo del prototipo también se justifica por que ha permitido el trabajo especializado e interdisciplinario de las ingenierías; electrónica, mecánica, de control y de programación; contribuyendo por este solo hecho al desarrollo de las mismas especialidades.
I.2.- Marco referencial:
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
también se pueden usar como kits de desarrollo de sistemas mecatrónicos y como plataformas de desarrollo de sistemas embebidos. Dado que estos sistemas son parecidos al que se presenta en esta tesis, consideramos importante describirlos y analizarlos, con el propósito de contextualizar el preste trabajo y evaluar su importancia y originalidad.
A continuación presentamos y analizamos, brevemente, algunas de las plataformas de desarrollo que conocemos.
a ) QET DC Motor Control Trainer ( Quansar Consulting ):
Es un entrenador independiente que está compuesto por dos tarjetas impresas, así como por el software correspondiente. Sirve para demostrar fundamentos de control de motores, usando un amplio rango de algoritmos de control, así como para la sintonización de estos.
También se puede desarrollar modelado, controles de velocidad y posición. Además es posible experimentar con técnicas de control analógico, digital o embebido.
Está diseñado para simplificar el desarrollo de controladores embebidos, por lo que cuenta con comunicación RS-232 ó USB 1.1. Este producto está basado en el microcontrolador PIC 16F877, el cual se encuentra en la tarjeta principal.
El PIC en el que se basa este equipo es viejo y no especializado para control de servomotores, es decir, no tiene módulos especializados para lectura de codificadores de posición ópticos, ni para generar señales PWM; no obstante es una buena herramienta didáctica orientada a ejemplificar la enseñanza del control automático.
b ) Microchip Mechatronics Kit:
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
El microcontrolador puede ser conectado a varios componentes en la tarjeta, como son sensores; LEDs, señales del cuerpo humano y drivers para motor. La tarjeta viene con nueve ejemplos prácticos, y con el firmware correspondiente.
Como se puede concluir de los datos anteriores, el kit es antiguo y limitado. El microcontrolador en el que está basado no cuenta con características especiales para control de motores (MC) como son los módulos QEI y PWM, además es lento y no cuenta con el poder de cálculo de un Controlador de Señales Digitales (DSC); si algo se pudiera rescatar del kit es la idea de un producto didáctico con prácticas bien elaboradas.
c) NI EL VIS ( National Instruments ):
La NI EL VIS es una plataforma educativa, y para hacer diseño de prototipos, está soportado por un conjunto de instrumentos virtuales y un laboratorio basado en LabVIEW, cuenta entre sus características con un total de 12 instrumentos, con un factor de forma compacto y es apropiado para el aprendizaje independiente.
Los educadores pueden usarlo para enseñar conceptos de diseño de circuitos, instrumentación, control, telecomunicaciones y teoría de sistemas embebidos en MCU, en un salón de clases o en un laboratorio.
Puede utilizarse como una plataforma de aprendizaje a distancia, los temas de la currícula son libres, los conceptos de diseño del control se implementan conectándose externamente con los prototipos de Quanser y los de sistemas embebidos con microcontroladores de la marca freescale.
Esta plataforma permite la experimentación en diversas áreas de la ingeniería electrónica y mecánica, pero no cuenta con un prototipo propio. Por ejemplo, para la enseñanza del control, por otra parte está ligada a LabVIEW y a la idea de los instrumentos virtuales, y es un poco cara.
d ) Mechatronic Control Kit de Mechatronic Systems Inc.:
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
La tarjeta principal está provista de un puerto paralelo para comunicarse con una computadora personal, aunque también se puede usar de modo independiente. Se ha probado con varias plantas o experimentos de control; como simples motores de DC, el péndulo inercial con volante o el Pendubot. Algunos resultados se reporta en el artículo de investigación13.
La desventaja de esta plataforma es que requiere de una segunda tarjeta hija de adquisición de datos, la que en nuestro caso queremos evitar por su alto costo. En cuanto al procesador hay que considerar que es un DSP corriendo a 150 Mhz., por lo que es más poderoso pero un poco caro. En nuestro caso, actualmente, el dsPIC que usamos corre casi a 120Mhz. y es muy barato.
e ) Quick Start board i.MX53 de Freescale:
Existen otro tipo de tarjetas más poderosas, como ésta; es muy práctica y relativamente barata, maneja VGA, Ethernet, dos puertos USB, puerto serial, entrada para tarjetas SD y micro SD, SATA, DDR3 SDRAM, cuenta con un procesador, no microprocesador, corriendo a 1.2Ghz., al cual se le carga el sistema operativo Linux Ubuntu.
Como se pudo notar, este producto es prácticamente una tarjeta madre de PC; se utiliza para aplicaciones diversas como el control de brazos robóticos. Cuenta con la posibilidad y el ambiente de programación, de alto nivel, necesario para reprogramarla y dejarle código embebido, para diferentes aplicaciones, de manera muy sencilla.
f ) Hilink Real-time Hardware-in-the-loop Control Platform for Matlab/Simulink de Zeltom:
La plataforma HILINK es una interfaz entre plantas a controlar y la plataforma de control de Matlab/Simulink muy interesante, también para la implementación de control de sistemas en tiempo real mediante hardware-in-the-loop. Está totalmente integrada a Matlab/Simulink y tiene un amplio rango de entradas y salidas. Permite pruebas rápidas y conmutación de estrategias de control en tiempo real, con una planta real en el lazo. La plataforma es un paquete de desarrollo de sistemas de control en tiempo real, de bajo costo, para aplicaciones industriales y educativas.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
plataforma HILINK tiene 8 entradas analógicas de 12 bits, 2 entradas de módulos de captura de 16 bits, 2 entradas de encoder de 16 bits, un puerto de entradas digitales de 8 bits, 2 salidas analógicas de 12 bits, 2 salidas de frecuencia de 16 bits, 2 salidas de pulsos de 16 bits y un puerto de salidas digitales de 8 bits. La tarjeta además contiene 2 puentes H de 5 amp. de capacidad a 12v. para manejar cargas externas pesadas. Algunas entradas y salidas están multiplexadas para simplificar el hardware. La tarjeta se conecta con la computadora anfitrión que corre Matlab a través de un puerto serie RS232. El software de la plataforma está totalmente integrado a Matlab/Simulink/Real-Time Windows Target y viene con bibliotecas de Simulink asociadas con cada hardware de entrada y salida de la tarjeta; Bloques de Entrada Analógica, Bloques de Entrada de Captura, Bloques de Entrada de Encoder, Bloques de Entrada Digital, Bloques de Salida Analógica, Bloques de Salida de Frecuencia, Bloques de Salida Digital y Bloques de Salida de Pulsos. La plataforma ejecuta operaciones de tiempo real con periodos de muestreo de hasta 3.8 Khz.
Esta plataforma ha sido desarrollada como una extensión de Matlab/Simulink y de Real-Time Windows Target para optimizar la operación de entradas y salidas serie, y para lograr la operación, en tiempo real, en Matlab/Simulink bajo Windows.
No obstante que en el papel esta plataforma parece ser muy buena, completa, compacta, barata y muy parecida a la nuestra, en la realidad presenta algunos problemas de funcionamiento, como pérdida de pulsos al leer los encoder, un ancho de banda muy reducido en sus salidas analógicas y algunos errores en su documentación, además de que tiene como base al dsPIC30F2012, que no cuenta con módulos especializados para control de motores.
g ) Arduino MEGA 2560:
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
En cuanto a software es una plataforma de cómputo libre (open-source), basada en una tarjeta I/O (entradas y salidas), programable en un ambiente con un lenguaje similar a “C” llamado Processing/Wiring. Arduino puede ser utilizado para desarrollar prototipos autónomos e interactivos, capaz de comunicarse con software instalado en una computadora como Flash, Processing, MaxMSP, etc. Dada su rápida curva de aprendizaje y su bajo precio constituye una herramienta interesante para estudiantes, maestros, diseñadores y cualquier interesado en electrónica y robótica. El software para su programación es gratuito y puede ser descargado para Mac OS X, Windows y Linux.
Adicionalmente a todas las características de la versión previa (Mega) la Uno Mega 2560 ahora emplea un ATmega8U2 en lugar de un chip FTDI. Esto permite tasas de transferencia mayores, elimina la necesidad de instalar drivers para Linux o Mac (un archivo .inf es necesario en Windows) y brinda la capacidad de mostrar a Uno como un teclado, mouse, joystick, etc., al conectarlo a una computadora.
Aunque el procesador es de 8 bits, la velocidad del reloj es de 16 Mhz., y no cuenta con módulos especializados para leer codificadores de posición, las ventajas de esta tarjeta son: el software de desarrollo con que cuenta; el cual es muy práctico y libre, y la conexión USB.
h ) Tarjetas de Rabbit de rabbit semiconductor Company:
Esta compañía produce varios microprocesadores de 8 bits de alto desempeño, así como herramientas de desarrollo.
Sus tarjetas de desarrollo proporcionan soluciones embebidas de bajo costo, con diversos microprocesadores capaces de resolver problemas en la pila TCP/IP, gracias a las bibliotecas incluidas en su software. Dynamic “C”es la plataforma de programación que utiliza para resolver proyectos que requieren operación en tiempo real, Dynamic “C” también permite depurar los programas en tiempo real. Estas 3 soluciones; software, microcontrolador y depurador facilitan el desarrollo rápido de dichos proyectos.
Cuentan con varias tarjetas que dan la posibilidad de trabajar de manera inalámbrica. Por ejemplo, a través de los protocolos Wi-Fi o ZigBee.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
i ) Proyecto de adquisición y procesamiento de datos con Matlab mediante usb 2.0 del CYCY Yucatán:
Finalmente hablaremos un poco de este proyecto, el cual solamente se concentra en la adquisición de datos y su despliegue en ventanas de Matlab o de algún otro lenguaje de programación visual. No se concibió como una plataforma de hardware y software para control, ni mucho menos para hacer un producto. Está basada en los microcontroladores PIC de la serie 18FXX5X, por lo que, cuando mas, maneja el puerto USB en modo full speed a 12Mhz.; lo cual, en caso de tratar de hacer control, limitaría la velocidad del periodo de muestreo.
También como desventaja, en este caso no se contaría con módulos especializados para lectura de codificadores de posición ópticos.
Sin embargo nos parece que la idea de manejar el puerto USB para plataformas de control, podría tener mucho futuro, sobre todo ahora que se ha liberado el super speed USB3.0, el cual, teóricamente, maneja velocidades de transferencias de datos de 5 Gbits/s.
Por otra parte se encuentran algunos robots demostrativos desarrollados con PICs como sistemas embebidos. Se encuentran también algunos otros robots móviles ya más formales para investigación, como el Kepera o el Koala, este último solamente en su tarjeta controladora de cuatro servo motores; para su sistema de visión estéreo (pan and tilt en cada una de sus cámaras), tiene embarcados cinco PICs, cuatro para cerrar igual número de lazos de control en posición y uno dedicado a las comunicaciones con el exterior y con la PC Central.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
Por lo tanto consideramos que hemos desarrollado un prototipo útil y competitivo, en lo referente a las plataformas de control, de enseñanza del control, y de investigación, que se conocen. Lo antes expuesto se podrá verificar en los capítulos finales de este trabajo.
I.3.- Organización del reporte:
El presente trabajo se ha reportado en una secuencia lógica, en lo que se refiere a sus motivaciones, partes, ideas y conceptos, así como en su fundamento teórico, y en sus conclusiones. De tal manera que el reporte sea entendible en sus partes y en su generalidad, quedando organizado de la siguiente manera:
En el presente Capítulo I se presentan aspectos introductorios, motivacionales, generales, y de contexto del presente trabajo, así como un estudio comparativo de las plataformas similares, a la que aquí presentamos, que existen en el mercado y en la bibliografía.
En el Capítulo II nos referimos a los elementos más importantes que componen la plataforma; los abordamos de manera independiente con el propósito de que se conozcan a fondo y se tenga una idea de los diferentes aspectos que se deben manejar para hacer un trabajo de este tipo, y en general para desarrollar cualquier trabajo de cierta relevancia.
En el Capítulo III presentamos el diseño de la plataforma en cada una de sus partes, pero ya como parte de un todo. Agrupando dichas partes en circuitería y programación, en el apartado de programación se incluyen las dos programaciones; la que se encuentra dentro del dsPIC como firmware y la que se encuentra en la PC en Matlab-Simulink-Wincon-RTX, como controlador.
En el Capítulo IV exponemos las bases teóricas del control de servo motores de corriente directa; desde su modelado matemático, las diferentes formas de conexión, algunos criterios importantes de control, como la estabilidad en lazo cerrado, la identificación de parámetros, hasta la simulación del controlador con el servomotor.
Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial
Capítulo II: Elementos de la plataforma
CAPÍTULO II.- ELEMENTOS DE LA PLATAFORMA
En el presente capítulo II explicaremos de manera detallada los elementos de hardware y software, más importantes, que componen la plataforma; los abordamos de manera independiente y en apartados, con el propósito de que se conozcan a fondo y queden claros los diferentes aspectos que se debieron conocer para poder realizar el diseño de la plataforma.
Dichos elementos se abordan de manera aislada en este capítulo II, solo hasta el siguiente se retoman en forma integral, como componentes interactuantes de un todo. Que es el prototipo final que presentamos en el presente trabajo.
II.1.- El puerto paralelo en el modo EPP:
El puerto paralelo en el modo mejorado o Enhanced Parallel Port ( EPP ) fue desarrollado originalmente, de manera conjunta por intel, Xircom y Zenith Data Sistems, como una manera de obtener un puerto paralelo de alto desempeño; con un protocolo más sencillo y confiable realizado por hardware. Dicho puerto tendría que ser totalmente compatible con el puerto paralelo estándar (SPP). El EPP tiene dos normas, la 1.7 y la 1.9. Existen algunas pequeñas diferencias entre ellas, coincidiendo la segunda con la norma IEEE1248. Su velocidad de transferencia de datos se encuentra entre 500 KB/s. y 2 MB/s, es decir, es muy cercana al tiempo de acceso a una tarjeta colocada directamente en la tarjeta madre de una PC mediante el bus ISA.
Figura 4.- Conector DB-25 del puerto paralelo
Capítulo II: Elementos de la plataforma
Cuando usamos el modo EPP, a diferencias del SPP original, se asigna una colección de diferentes funciones y direcciones a cada una de las líneas disponibles del conector estándar DB25, las que se muestran en la siguiente tabla.
LINEA SEÑAL EPP ENTRADA/SALIDA FUNCIÓN
1 Read/Write Salida Un estado bajo en esta línea
indica una escritura, un alto una lectura
2-9 Datos 0-7 Ent./Sal. Bus de datos bidireccional
10 Interrupt Entrada Línea de interrupción, ocurre
en el flanco positivo (subida)
11 Wait Entrada Usada para protocolo. Un ciclo
EPP puede ser iniciado cuando está en bajo, y terminado cuando está en alto
12 Spare In No usada en el modo EPP
13 Spare in No usada en el modo EPP
14 Data Strobe Salida Cuando está en bajo indica
transferencia de datos
15 Spare In No usada en el modo EPP
16 Reset Out Activa en bajo
17 Address
Strobe Salida Cuando está en bajo indica transferencia de direcciones
[image:25.612.79.536.130.419.2]18-25 Ground GND Tierra
Tabla 3.- Asignación de terminales para el conector EPP
Para generar un intercambio de datos válido en el puerto EPP, se debe seguir el protocolo correctamente. Para iniciar este ciclo el programa en la PC solamente debe realizar una operación de lectura o escritura al registro adecuado, de acuerdo con alguno de siguientes cuatro casos. Como se detalla a continuación15:
[image:25.612.98.514.556.707.2]Capítulo II: Elementos de la plataforma
1o El programa en la PC ejecuta una escritura al registro de datos del EPP (dirección base + 4).
2o La línea Read/Write (Write) es bajada indicando una operación de
escritura.
3o Los datos son colocados en las líneas de datos 0-7.
40 Se coloca en nivel bajo la línea Data Strobe, solo si la línea Wait ha sido colocada en bajo por el periférico (listo para iniciar el ciclo).
5o El anfitrión (PC) espera hasta reconocer que la línea Wait sea
colocada en alto para finalizar el ciclo, esto indica que el periférico ha tomado el dato.
6o La línea Data Strobe se desactiva.
7o El ciclo EPP de escritura de datos finaliza.
8o La línea Wait debe ser colocada en bajo nuevamente, por el
periférico, para permitir que el próximo ciclo pueda comenzar.
Figura 6.- Ciclo de escritura de direcciones en el EPP
1o El programa en la PC ejecuta una escritura al registro de direcciones
del EPP (dirección base + 3).
2o La línea Read/Write (Write) es bajada indicando una operación de escritura.
3o Los datos son colocados en las líneas de datos 0-7.
40 Se coloca en nivel bajo la línea Address Strobe, solo si la línea Wait ha
Capítulo II: Elementos de la plataforma
5o El anfitrión (PC) espera hasta reconocer que la línea Wait sea colocada en alto para finalizar el ciclo, esto indica que el periférico ha tomado el dato.
6o La línea Address Strobe se desactiva.
7o El ciclo EPP de escritura de direcciones finaliza.
8o La línea Wait debe ser colocada en bajo nuevamente, por el periférico, para permitir que el próximo ciclo pueda comenzar.
Figura 7.- Ciclo de lectura de datos en el EPP
1o El programa en la PC debe ejecuta una lectura al registro de datos
del EPP (dirección base + 4).
20 Se coloca en bajo la línea Data Strobe, solo si la línea Wait ha sido colocada en bajo por el periférico (listo para iniciar el ciclo).
3o El anfitrión (PC) espera hasta reconocer que la línea Wait sea
colocada en alto.
4o El dato es leído automáticamente desde las terminales del puerto paralelo
5o La línea Data Strobe se desactiva.
6o El ciclo EPP de lectura de datos finaliza.
Capítulo II: Elementos de la plataforma
Figura 8.- Ciclo de lectura de direcciones en el EPP
1o El programa en la PC debe ejecuta una lectura al registro de
direcciones del EPP (dirección base + 3).
20 Se coloca en bajo la línea Address Strobe, solo si la línea Wait ha sido colocada en bajo por el periférico (listo para iniciar el ciclo).
3o El anfitrión (PC) espera hasta reconocer que la línea Wait sea
colocada en alto.
4o El dato es leído automáticamente desde las terminales del puerto
paralelo
5o La línea Address Strobe se desactiva.
6o El ciclo EPP de lectura de direcciones finaliza.
7o La línea Wait debe ser colocada en bajo nuevamente, por el periférico
para permitir que el próximo ciclo pueda comenzar.
Si se tiene implementado el protocolo EPP 1.7 en la PC se pueden poner activas las líneas Data Strobe o Address Strobe sin importar el estado de la línea wait del periférico, no así en el caso del protocolo EPP 1.9.
Capítulo II: Elementos de la plataforma
DIRECCIÓN NOMBRE DEL PUERTO LECTURA / ESCRITURA
Base + 0 Puerto de Dados (SPP) Escritura
Base + 1 Puerto de Estados (SPP) Lectura
Base + 2 Puerto de Control (SPP.
EPP) Escritura
Base + 3 Puerto de Direcciones
(EPP) Lectura / Escritura
Base + 4 Puerto de Datos (EPP) Lectura / Escritura
Tabla 4.- Direcciones del puerto paralelo en modo EPP
II.2.- El puerto serie RS232C:
La comunicación serie comenzó en las computadoras personales con el UART 8250 en la IBM XT. El 16550A apareció poco tiempo después y fue el primer UART que era capaz de utilizar sus búferes FIFO, esto hizo posible aumentar la velocidad máxima de una comunicación confiable a 115,200 bauds. El 16550A es el UART más común en este momento.
El 16550 integra en un solo chip un UART (Universal Asynchronous Receiver/Transmitter ) y un BRG (Baud Rate Generator); soporta velocidades de hasta 625,000 baudios, si se usan relojes de 10 MHz. El BRG incorporado divide la frecuencia base para conseguir las velocidades estándar de la norma RS-232-C. El UART 16550X es el encargado de la comunicación serie en la mayoría de las computadoras personales.
La línea que transmite los datos en serie (Tx) está inicialmente en estado alto. Al comenzar la transferencia, se envía el bit de inicio 0, tras él, irán los 8 bits de datos a transmitir (en ocasiones son 7, 6 ó 5); estos bits duran un intervalo temporal fijo y preciso, ligado a la velocidad de transmisión que se esté empleando. Tras ellos podría venir, o no, un bit de paridad generado automáticamente por la UART. Al final, aparecerá un bit (a veces un bit y medio ó dos bits) en 1, que son los bits de paro o bits de stop.
Capítulo II: Elementos de la plataforma
Tabla 5.- Terminales del conector DB9 en la PC.
[image:30.612.135.479.74.258.2]El conector que se encuentra disponible en las computadoras personales es el tipo macho DB9.
Figura 9. Conectores DB9.
En comunicaciones se utiliza el término baud o baudrate para hacer referencia a la velocidad de comunicación de los datos, un baud equivale a un bit/seg. La presencia de bits de inicio y parada permite sincronizar la estación emisora con la receptora, haciendo que los relojes de ambas vayan a la par; de tal manera que la transmisión de los 8 bits de un dato, de un byte, realmente es síncrona, pero las comunicaciones en serie de este tipo, siempre han sido consideradas como asíncronas, dado que no se cuenta con una línea de reloj.
Para una transmisión básica en serie bastan tres hilos; Transmisión (Tx), Recepción (Rx) y Tierra (Gnd). Sin embargo, el software que controla el puerto serie a través de la interfaz RS-232-C podría requerir, en algunos casos, más señales de control para establecer la comunicación.
NO.DE TERM. SEÑAL DESCRIPCIÓN
1 DCD (Data Carrier detect)
*2 RX Recepción
*3 TX Transmisión
4 DTR(Data Terminal Ready)
*5 GND Tierra
6 DSR (Data Sheet Ready)
7 RTS (Request to send)
8 CTS (Clear to send)
Capítulo II: Elementos de la plataforma
Cada UART utiliza un oscilador de 1.8432MHz, esta frecuencia es dividida entre 16 para generar lo que es la base de tiempo para la comunicación. Por lo tanto, la velocidad máxima permitida es de 115,200 bps. Los UARTs modernos como el 16550 son capaces de manejar mayores frecuencias de entrada de hasta 24 MHz, que permitan comunicarse a una velocidad máxima de 1,5 Mbps. frecuencias en el oscilador más altas que 1.8432MHz son raramente vistas porque serían incompatibles con la configuración original XT.
La velocidad de comunicación de 115,200 bps no siempre es útil para todas las aplicaciones. Para obtener un cambio en la velocidad de comunicación, la frecuencia debe ser decrementada dividiéndola por un valor programable. Para velocidades muy bajas, este valor puede ser de hasta 255. El mencionado divisor es guardado en dos bytes por separado, estos registros divisores del Latch se llaman DLL y DLH, los cuales contienen el byte menos significativo y el byte más significativo respectivamente16.
Para una comunicación libre de error es necesario que ambos transmisor y receptor utilicen la misma base de tiempo. La tabla siguiente muestra los valores más comúnmente usados para ajustar los bytes del divisor del Latch. Hay que tener en cuenta que estos valores sólo son para un PC compatible con un sistema en el que la frecuencia de reloj que se utiliza es de 1,8432 MHz.
DLL y DLM: Registros Divisor de Latch.
Velocidad (bps) Divisor DLL DLM
Capítulo II: Elementos de la plataforma
115,200 1 0x01 0x00
Tabla 6.- Divisor de Latch para el Baude Rate.
La computadora personal utiliza la norma EIA-232, por lo que los niveles de las señales de transmisión y recepción son de +12 y -12v; por lo tanto es necesario un circuito que adapte los niveles lógicos de estas señales en el dsPIC. Esto lo logramos utilizando una etapa de adaptación de niveles, como se representa en el siguiente esquema.
Figura 10.- Diagrama a bloques del adaptador de nivel para la conexión serie PC- Microcontrolador.
La dirección base, por defecto, del puerto serie 1 (COM1) en una computadora personal es la 0x3F8, aunque se utilizan las siguientes direcciones para configuración, hasta la 0x3FF.
II.3.- El DSC dsPIC30F4012:
Capítulo II: Elementos de la plataforma
Los DSP se asemejan a los clásicos microcontroladores, pero incorporan arquitecturas y recursos especiales para poder ejecutar en forma óptima los algoritmos manejados en el procesamiento digital de señales. Algunos de los recursos especiales que se pueden destacar son:
a) Los procesadores son generalmente de tecnología RISC y sus instrucciones se ejecutan generalmente en un solo ciclo de máquina.
b) Utilizan la arquitectura Harvard y disponen de dos memorias independientes, una para datos y otra para instrucciones, haciendo posible el acceso simultaneo a ambas informaciones.
c) Cuentan con recursos físicos complejos para soportar las operaciones específicas de los algoritmos DSP, multiplicar, multiplicar y acumular, etc., ejecutadas en un solo ciclo de máquina.
d) Los modos de direccionamiento son muy sofisticados, ya que localizan los datos y almacenan los resultados de forma óptima para ser usados posteriormente por los algoritmos empleados.
e) Disponen de un conjunto de interrupciones, de hardware y software, muy amplio y veloz, con niveles de prioridad.
f) En el DSP se integran numerosos recursos y periféricos que minimizan el tamaño y simplifican el diseño del sistema.
g) Poseen módulos para el control y optimización del consumo de energía.
A principio de la década de los ochentas del siglo pasado ya se comercializaban varios modelos de DSP, siendo pioneros los fabricantes Texas Instruments, NEC e Intel. Así comenzó una nueva etapa en el mundo del procesamiento digital de señales.
Los dispositivos modernos mezclan las funciones típicas del MCU con las del DSP. Ésta situación impulsó a Microchip a fabricar un circuito híbrido MCU/DSP, cuyo manejo es similar al de los microcontroladores, pero que incluye las principales prestaciones de los DSP. Así nació el Controlador Digital de Señales (DSC), que reúne las características del un microcontrolador PIC de 16 bits y las de un DSP de gama baja, la primera generación de DSC de Microchip, se denominó dsPIC30F. La intención de estos DSC era facilitar a los usuarios la transición de los MCU a los DSP.
Capítulo II: Elementos de la plataforma
Para la realización del presente trabajo utilizamos el dsPIC30F4012, cuyos parámetros y características se muestran en el Anexo e), por ahora solo mencionaremos algunos de los más importantes.
Admite un voltaje de alimentación entre 2.5 y 5.5 v.c.d., la velocidad de operación es de 30 MIPS cuando el voltaje de alimentación está entre 4.5 y 5.5 v.c.d., dispone de un bus de datos de 16 líneas y otro de instrucciones de 24, existe un motor DSP que contiene un multiplicador por hardware de 17x17bits, dos acumuladores de 40 bits, cada localidad de memoria de datos se divide en dos espacios que pueden ser accesados simultáneamente.
Las secciones MCU y DSP cooperan en el funcionamiento general y comparten el flujo de instrucciones del DSC, admite 45 fuentes distintas de petición de interrupción con 8 niveles de prioridad, de las cuales 5 son externas.
En cuanto a los periféricos el dsPIC30F4012, cuenta, entre otros, con un UART, un canal SPI, uno I2C, un CAN, un puerto paralelo GPIO, seis entradas A/D, seis salidas PWM para control de motores y una entrada para codificador de posición en cuadratura QEI. Esta última característica se ajusta al requerimiento del proyecto de sensar y cerrar un lazo de control en posición.
II.4.- Plataforma de programación para control en tiempo real con Matlab-Simulink-Ardence RTX-Wincon:
La plataforma de programación para realizar el control en tiempo real del servomecanismo, está basada en una computadora personal corriendo bajo Windows XP con Matlab (R2007ª), incluyendo la tollbox de Simulink Control Design 2.1, además del núcleo o kernel de tiempo real de Ardence RTX 7.0, con Wincon 5.2.
Con esta plataforma de desarrollo, la programación del controlador del prototipo ya no se realiza en modo texto, sino de manera gráfica con los bloques de Simulink.
Capítulo II: Elementos de la plataforma
partes, Wincon Servidor y Wincon Cliente, las cuales se comunican mediante el protocolo TCP/IP.
Wincon Cliente corre la parte del programa que interactúa directamente con el hardware. Es decir, realiza el sensado y envío de la señal de control, cada periodo de muestreo. Wincon Servidor es quien enlaza el programa de Simulink con el software de tiempo real, también le permite al usuario realizar la ejecución y paro del programa, así como la visualización, en gráficas o en displays digitales, de las variables de interés.
Al utilizar Simulink en tiempo real podemos seleccionar algunos parámetros como el periodo de muestreo. Lo anterior tomando en cuenta las limitaciones de la computadora, de la velocidad de comunicación, así como de la cantidad de datos transferidos entre la computadora personal y el dsPIC. También tenemos la opción de elegir entre diferentes métodos de integración en nuestro modelo de control.
II.5.- Funciones “S” en Simulink:
Tomando en cuenta que no estamos realizando simulaciones sino control en tiempo real de un servomotor a través de un microcontrolador, es necesario contar con un modo de comunicación entre el programa de Simulink en la PC y el microcontrolador dsPIC. En el presente trabajo utilizamos para este efecto el puerto serie RS232C. Es importante mencionar que anteriormente se había venido trabajando en el CINVESTAV con el puerto paralelo en modo EPP.
No obstante que en las bibliotecas estándar de Simulink no existe un bloque que nos permita manejar este puerto de comunicaciones, se pueden realizar nuevos bloques mediante funciones definida por el usuario, las que se llaman funciones de sistema ó “S” functions.
Una función “S” es la descripción de un bloque de Simulink en un lenguaje de programación. Las funciones “S” pueden escribirse en diferentes lenguajes, como Matlab, Ada, Fortran, etc., en nuestro caso la escribimos en lenguaje C.
Las funciones “S” utilizan una sintaxis especial de llamado que nos permite interactuar a través de ellas con el modelo de Simulink.
Capítulo II: Elementos de la plataforma
Figura 11.- Concepto de Bloque de simulink.
Las siguientes ecuaciones expresan la relación entre las entradas, las salidas y los estados.
(salidas)
(inicio)
(actualización)
Donde;
Para la realización de las funciones “S” existen varios archivos o plantillas que nos proporcionan el esqueleto o estructura que deben tener estos programas, en nuestro caso utilizamos la plantilla para elaborarla en lenguaje C.
Nuestra función “S” contiene las características generales del bloque, así como la programación para configurar y manejar el protocolo de comunicación a nivel de hardware; así como las instrucciones para la transferencia de datos sobre el canal de comunicación seleccionado, es decir el puerto serie RS232C.
Una vez creada la función “S” debe ser compilada como un archivo mex, para tenerla lista y ser utilizada como un nuevo bloque de Simulink en nuestro modelo de control. Como sucede con otros archivos mex, estos son encadenadas y ligadas para la ejecución del modelo.
II.6.- El MPLAB IDE y el compilador C30:
Capítulo II: Elementos de la plataforma
[image:37.612.122.524.165.473.2]unificada interface gráfica del usuario para herramientas de desarrollo de hardware y software de Microchip, y externas. El movimiento entre herramientas del IDE es seguro. Y la actualización desde el software de simulación, hasta el hardware de depuración y las herramientas de programación es rápida; porque el MPLAB IDE tiene la misma interface de usuario para todas las herramientas.
Figura 12.- Pantalla del MPLAB-IDE de Microchip.
Es sencillo crear una aplicación. Esto puede hacerse escribiéndola en código ensamblador, posteriormente ensamblando el proyecto, probando el código con el simulador y depurador internos, y cuando esté lista la aplicación se selecciona un programador/depurador; ya sea el del fabricante u otro, para programarle el código al microcontrolador.
Capítulo II: Elementos de la plataforma
También es posible escribir el código en lenguaje “C”, en este caso hay que bajar un compilador adecuado para el PIC con el que se esté trabajando, ya sea del fabricante o de algún otro.
Es importante mencionar la conveniencia de programar en “C” y usar todas las bibliotecas que sean posibles, ahorra mucho tiempo y nos permite una programación más compacta y estructurada, aunque habría que mencionar, como desventaja, que en esta forma de programación el código no necesariamente será optimizado en tamaño.
En nuestro caso el dsPIC30F40127 se programó y depuró con el compilador
C30 cargado en el MPLAB IDE versión 8.02, esto en la parte de software. En la de hardware se trabajó con el programador/depurador ICD 2 de Microchip.
Capítulo III: Desarrollo de la plataforma
CAPÍTULO III.- DESARROLLO DE LA PLATAFORMA
En este capítulo III se exponen, de manera detallada, el diseño e integración de casi todos los elementos de circuitería y programación del prototipo. Solamente se dejó para el capítulo V la parte correspondiente a la programación del controlador en Simulink, ya que juntos; el prototipo y el controlador, integran la plataforma de enseñanza que hemos mencionado.
Se incluye también, en el último apartado, la apertura del puerto serie para trabajar en Windows XP con el software de tiempo real.
III.1.- Circuitería:
III.1.1.- Servomotor:
La parte electromecánica de la circuitería de nuestra plataforma es el servomotor a ser controlado, o llamado planta en el lenguaje de control.
El servomotor está basado en el motor de corriente directa marca Dynetic Systems, modelo 509051; el cual funciona con un voltaje de 30v. y una corriente pico de 1.3 Amp. Es decir, tiene una resistencia de armadura aproximadamente de 22 ohms. El campo es de imán permanente, de tal manera que solo es posible controlarlo por armadura. En la flecha se le ha acoplado mecánicamente un codificador de posición óptico de 10,000 pulsos por revolución, además de un disco metálico como masa o carga inercial, con el propósito de aumentar este parámetro.
Capítulo III: Desarrollo de la plataforma
Figura13.- Servomotor completo.
III.1.2.- Electrónica de potencia:
La parte de electrónica de potencias está basada en el circuito integrado LMD18200 de National Semiconductor. El cual, es un amplificador del tipo puente “H” que nos permite incrementar corriente y voltaje, colocándole a la entrada una señal modulada en ancho de pulso (PWM).
El amplificador cuenta con cuatro transistores MOSFET de potencia, cada uno con su correspondiente diodo volante, además tiene una parte de lógica de control y otra de sensado de la corriente a la salida.
Capítulo III: Desarrollo de la plataforma
Fig. 14.- Diagrama a bloques del Puente “H” LMD18200.
La inductancia del servomotor realiza la función de integrar la salida PWM del amplificador, promediando ésta, para obtener en la carga un voltaje de C.D. cuyo valor depende del ciclo útil del PWM. Estas variaciones de voltaje nos permiten controlar el servomecanismo.
Además, el puente “H” cuenta con algunas otras señales de entrada y salida, como thermal flag output, current sense output y breake input. La salida current sense (terminal 8) nos permite sensar la corriente que está circulando por el amplificador y por lo tanto por el servomotor. Es importante la utilización de esta salida para proteger el dispositivo contra daños permanentes, ya que éste soporta 3 amp. continuos como máximo. La corriente sensada también se puede utilizar para implementar un lazo interno de control en corriente y obtener un servomotor trabajando en modo corriente o modo par, lo anterior se explica en el siguiente capítulo IV.
III.1.3.- Fuentes de alimentación:
Capítulo III: Desarrollo de la plataforma
[image:42.612.134.516.153.465.2]La fuente de 30v. suministra 2 amp. como máximo; este voltaje no se requiere regulado. Las otras dos fuentes si son reguladas y proporcionan 500ma. cada una. A continuación se muestra una vista externa de la fuente de alimentación del prototipo. En el anexo “A” se muestra el diagrama eléctrico del diseño.
Figura 15.- Fuentes de voltaje de la plataforma.
III.1.4.- Trasladador de niveles:
Para realizar la comunicación serie la PC utiliza la norma EIA-232, por lo que los niveles de tensión de las señales de transmisión y recepción son aproximadamente de +12 y -12v., por lo tanto es necesario un circuito que adapte los niveles lógicos que se manejan en el dsPIC a el voltaje mencionado. Esto lo logramos utilizando el circuito integrado MAX232.
Capítulo III: Desarrollo de la plataforma
típico de 1.3 v y una histéresis típica de de 0.5 v., y puede aceptar ± 30v. en las entradas. La figura siguiente muestra el diagrama propuesto por el fabricante para el adaptador de niveles MAX232, dicho diagrama incluye el doblador de voltaje capacitivo para obtener valores de -10 a 10v. para la comunicación con la PC.
Figura 16.- Diagrama eléctrico del trasladador de niveles MAX232.
A continuación se muestra la imagen del circuito trasladador de nivel RS232C que hemos elaborado.
Capítulo III: Desarrollo de la plataforma
III.1.5.- Tarjeta principal con el dsPIC30F4012:
El hardware de la plataforma de control que llamamos prototipo consta de dos partes, la electromecánica y la electrónica. En este apartado nos referiremos a tarjeta principal de la parte electrónica.
La tarjeta en circuito impreso que se muestra en la siguiente figura 18 es el elemento central de hardware del presente trabajo, es la antesala de lo que se conoce como un sistema embebido para control de servomecanismos. La base de diseño es el microcontrolador de señales digitales dsPIC30F4012, que es un circuito integrado de 28 terminales, el cual usa un reloj externo con un cristal de 7.3728 Mhz. con los condensadores correspondientes.
También cuenta con dos conectores para la comunicación con la PC, uno DB25 para la comunicación paralelo y uno para la comunicación serie en forma de terminales. A la salida de potencia incluye dos optoaisladores 4N35 para las señales PWM, las cuales son amplificadas en la misma tarjeta con el puente “H” LMD18200. Tiene también un conector para el codificador de posición óptico, y otro para el programador/depurador. Los conectores de las alimentaciones y el de salida hacia el servomotor son los de color azul.
Capítulo III: Desarrollo de la plataforma
Figura 18.- Imagen de la tarjeta principal con el dsPIC30F4012.
Capítulo III: Desarrollo de la plataforma
Figura 19.- Diagrama a bloques de la tarjeta principal.
III.2.- Programación en código y configuración:
Para propósitos de mejor entendimiento de este trabajo se ha considerado la conveniencia de dividir este apartado de programación en código en tres partes. La primera parte es la programación del dsPIC. La segunda parte es la programación de la función “S” para el bloque de comunicación de datos en serie, que requiere Simulink para poder realizar el control (ambos programas se realizaron en lenguaje “C”5,6 con diferente compilador). La tercera parte es un
tanto diferente a las dos anteriores y solo se refiere a la apertura del puerto serie para trabajar con el software de tiempo real bajo Windows XP.
La parte de la programación del controlador, como es común, se realizó a bloques en Simulink; esta parte se decidió incluirla en el Capítulo V por su importancia en sí misma, ya que con esta se pone a prueba toda la plataforma,
5VL GNDL C1 22nf C2 22nf Title
Size Document Number Rev Date: Sheet of
José de Jesús Meza Serrano 1.0 D
PLATAFORMA DE ENSEÑANZA serie
A
1 1 Friday , May 27, 2011
C I N V E S T A V DCA
5VL M GNDL 5VL 5VP GNDL GNDL dsPIC30F4012 Microcontrolador PWM-RE4(22) SIGNO-RE5(21) D0(26)-RE0 D1(25)-RE4 D2(24)-RE2 D3(23)-RE3 D4(4)-RB2 D5(14)-RD1 (11)-D7(12)-RX WAIT(3)-RB1 RD/WR(2)-RB0 ADDSTR(15)-RD0 DATASTR(16)-RE8 AN3-RB3-IP(5) QEA(6) QEB(5) MCLR(1) VD D (13) VD D (20) AVD D (28)
VSS(8) VSS(19) AVSS(27)
PGD(17)
PGC(18)
LMD18200
Capítulo III: Desarrollo de la plataforma
incluidas todas las capas de programación de nivel intermedio que se describen en este capítulo III.
III.2.1.- Programación del dsPIC:
Como ya se mencionó de manera general, esta programación se realizó en lenguaje “C”, en el ambiente MPLAB IDE y con el compilador C30 de Microchip.
En este trabajo se presenta la comunicación, entre la PC y el dsPIC, a través del puerto serie RS232C. Sin embargo se había venido trabajando en la comunicación mediante el puerto paralelo en el modo EPP. Con esta consideración, pasamos a la explicación el programa principal (main()), y enseguida explicaremos las definiciones, las funciones y librerías que se utilizan para realizan las actividades principales de dicho programa.
Antes de iniciar con el código del programa principal propiamente dicho se realiza la inclusión de algunos archivos de la biblioteca del fabricante del micro controlador8, y de algunos propios. También se hacen la definiciones de los tipos de variables, constantes y apuntadores; además se escriben algunas funciones sencillas que nos permiten configurar y acomodar los bits del puerto paralelo, para recibir y enviar datos. Adicionalmente se programan las rutinas de retardos, la inicialización del timer, la obtención y filtrado del voltaje de entrada analógico proporcional a la corriente que está circulando en el servomotor.