100
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 DR. FLORIBERTO ORTIZ RODRIGUEZ M. EN C. ERASMO VALVERDE TRUJILLO

DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

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 DR. FLORIBERTO ORTIZ RODRIGUEZ M. EN C. ERASMO VALVERDE TRUJILLO

Page 2: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

I

AGRADECIMIENTOS

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.

A todos los compañeros que luchan, sin descanso y a fondo, por un futuro mejor.

Page 3: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

II

INDICE

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.2.3.- Apertura del puerto serie en Windows XP …………………..60

Page 4: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

III

CAPITULO IV: MODELADO Y SIMULACION DEL MOTOR DE C.D. …………...62

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 Software de la plataforma …………………………………….92 e) Características del microcontrolador dsPIC30F4012 …………………..93

Page 5: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

1

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.

En este contexto, el trabajo tiene varios objetivos específicos que se fueron

desarrollando en el orden requerido para cumplir con el objetivo general de este

trabajo.

Page 6: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

2

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.

9.- Observar el desempeño de la plataforma controlando diferentes variables y

con distintas leyes de control, para obtener y analizar los resultados y deducir

conclusiones.

Page 7: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

3

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.

Sistema embebido: cuando contemos con un equipo, con un procesador digital

de señales o un microcontrolador, el cual tenga programadas una serie de

actividades, las que juntas constituyan un sistema completo; como el muestreo de

señales, el procesamiento de las mismas, la comunicación, el control y la

Page 8: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

4

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.

Con el paso del tiempo la Sección de Control Automático se convirtió en

Departamento y su Laboratorio en el Centro de Servicios Experimentales. Con

esta nueva estructura organizativa, se tuvo la acertada idea de contar con un

Laboratorio de Enseñanza, donde los estudiantes de postgrado pudieran recibir la

parte práctica que se requiere como complemento a una necesaria formación

teórica.

Page 9: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

5

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.

En la figura 1, el controlador se encuentra dentro del bloque denominado PC

Server (Servidor). De tal manera que definimos que las partes de: generación de

la señal de referencia (consigna o set point), el punto de resta para la obtención de

la señal de error (sumador o restador) y la ley de control, se encuentran dentro de

éste.

Page 10: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

6

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.

La programación de las leyes de control, a ser probadas, se desarrolla en el

servidor, mediante los bloques de Simulink, ahí también se realiza el despliegue y

la visualización de las variables de control, a través de sus interfaces gráficas de

usuario.

Page 11: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

7

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.

La solución que se encontró a este problema fue utilizar tarjetas de adquisición

de datos más recientes, para bus PCI, optándose por algunas de los modelos

multiq y Q8 hardware in the loop (H.I.L.) board de Quanser Consulting. Sin

embargo está última tarjeta tiene un costo aproximado de sesenta mil pesos, lo

que ha limitado su compara debido a las restricciones presupuestales que se

tienen hoy en día, ya que solamente esta tarjeta, es más cara que toda la

plataforma de enseñanza original.

Page 12: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

8

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

COSTO TOTAL: 60,500.00

Tabla 1.- Costo de las componentes de la Plataforma de Enseñanza Original

Page 13: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

9

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.

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.

El control en tiempo real también se realiza en la PC desde Matlab-Simulink-

Wincon-RTX, al igual que en la plataforma original.

Page 14: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

10

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

7 1 Transceptor MAX232 100.00

Page 15: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

11

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:

Actualmente existe una gran tendencia a diseñar tarjetas de desarrollo

basadas en microcontroladores. La mayoría de estas plataformas están ligadas a

algún software en particular, y se usan como plataformas para enseñanza; aunque

Page 16: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

12

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:

Es un Kit de demostración que tiene un enfoque práctico para aprender

mecatrónica. Está basado en el microcontrolador PIC16F917 MCU corriendo a 8

Mhz., cuenta con display LCD, puede sensar corriente, temperatura, luz y

velocidad, cuenta con la interface RS-232; entre sus características principales

están, el control de velocidad de motores a pasos y de CD con escobillas.

Page 17: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

13

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.:

Hace algunos años, también se utilizó esta plataforma para experimentos de

investigación. Consta de dos tarjetas; la principal provista con el DSP

TMS320C6711 de Texas Instruments corriendo a 150 Mhz., y una segunda tarjeta

pequeña, llamada hija, de adquisición de datos.

Page 18: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

14

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.

La plataforma HILINK consiste de la tarjeta de control en tiempo real

(hardware) y la interfaz asociada de Matlab (software). El hardware de la

Page 19: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

15

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:

El Arduino Mega es una tarjeta basada en el microcontrolador ATmega 2560

de ATMEL AVR. Tiene 54 pines digitales de I/O (14 de los cuales pueden ser

usados como salidas PWM), 16 entradas analógicas, 4 UARTs (puertos serie en

hardware), un cristal oscilador a 16MHz, conexión USB, jack para conexión a la

electricidad, un header ICSP y un botón de reset. Cuenta con todo lo necesario

para dar soporte a este microcontrolador; simplemente se conecta a una

computadora mediante un cable USB, un adaptador AC/DC o una batería y

estará listo para funcionar.

Page 20: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

16

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.

Por otra parte permiten la implementación de un servidor HTTP para

monitorear y controlar procesos mediante una página Web.

Page 21: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

17

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.

En el contexto que se ha presentado, y del cual se tiene conocimiento, es

posible intentar ubicar a la plataforma de enseñanza de bajo costo que se

desarrolló en el presente trabajo. Aunque es un prototipo y no un producto

comercial como la mayoría de los que hemos descrito en este apartado; tiene

algunas ventajas significativas sobre las que existen en el mercado y que son más

o menos de su tipo, entre ellas mencionamos por ejemplo, que no se requiere de

otra tarjeta de adquisición de datos para hacer control, la velocidad y capacidad de

cálculo del DSC (dsPIC30F4012) es muy buena, sobre todo si se considera su

precio bajo, es muy eficiente para el control de motores ya que cuenta con

módulos especializados, como el de decodificación de sensor de posición, y varios

módulos de salida PWM.

Page 22: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

18

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.

Finalmente en el Capítulo V presentamos los resultados experimentales más

importantes que se han obtenido con la plataforma diseñada; realizando el control

Page 23: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo I: Introducción, Antecedentes, Objetivos, Justificación y Marco referencial

19

en posición y en velocidad del servomotor modelado. También se presentan las

conclusiones y algunas perspectivas de trabajo futuro.

Page 24: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

20

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

El puerto paralelo en modo EPP es también comúnmente configurado como

modo ECP-EPP, a diferencia del modo ECP solo, con el cual no coincide.

Page 25: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

21

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

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:

Figura 5.- Ciclo de escritura de datos en el EPP

Page 26: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

22

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

sido colocada en bajo por el periférico (listo para iniciar el ciclo).

Page 27: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

23

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.

7o La línea Wait debe ser colocada en bajo nuevamente, por el periférico

para permitir que el próximo ciclo pueda comenzar.

Page 28: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

24

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.

La dirección base para acceder al puerto paralelo en la PC es generalmente

y por defecto la 378h, aunque se cuenta con un total de cinco direcciones

consecutivas o registros para su programación; tres de ellas asociadas con el

antiguo SPP. Todas ellas se describen en la siguiente tabla.

Page 29: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

25

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.

En la siguiente tabla 5 se muestra la función de las terminales del conector

DB9 de una computadora personal.

Page 30: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

26

Tabla 5.- Terminales del conector DB9 en la PC.

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)

9 RI (Ring Indicator)

Page 31: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

27

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

50 2,304 0x00 0x09

300 384 0x80 0x01

1,200 96 0x60 0x00

2,400 48 0x30 0x00

4,800 24 0x18 0x00

9,600 12 0x0C 0x00

19,200 6 0x06 0x00

38,400 3 0x03 0x00

57,600 2 0x02 0x00

Page 32: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

28

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:

Se puede definir un procesador digital de señales (DSP) como un circuito

integrado diseñado para ejecutar un conjunto de operaciones matemáticas para el

análisis, procesamiento y tratamiento, en tiempo real, de una o varias señales

continuas o analógica expresadas digitalmente. El procesador de señales se ha

convertido en una de las herramientas tecnológicas más poderosas en las que se

sustenta la ciencia y la ingeniería del presente siglo[11].

Page 33: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

29

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.

La segunda generación de DSC fue llamada dsPIC33F, la cual mejoró las

capacidades de memoria, número de periféricos y rendimiento en general.

Page 34: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

30

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.

Ardence RTX y Wincon son en conjunto una aplicación para realizar control

en tiempo real bajo el sistema operativo Windows XP. Nos permiten correr, en

tiempo real y en la misma computadora, o de manera separada, en una

computadora local (servidor) y en una remota (cliente), el código generado por un

diagrama de Simulink. De tal manera que el software Wincon consiste de dos

Page 35: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

31

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.

Matemáticamente todo bloque de Simulink se conceptualiza como una caja

negra que tiene entadas, estados y salidas, donde las salidas están en función del

periodo de muestreo, de las entradas y de los estados del bloque.

Page 36: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

32

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:

El Ambiente de Desarrollo Integrado (IDE) MPLAB está compuesto de una

serie de herramientas de software para el desarrollo de aplicaciones embebidas,

empleando los microcontroladores de Microchip PIC y dsPIC. El MPLAB IDE

corre como una aplicación de 32 bits sobre Windows MS, es fácil de usar e incluye

una barra de componentes de software libre, para desarrollo rápido de

aplicaciones y depuración súpercargada; además sirve como una sencilla y

Page 37: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

33

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.

Para analizar el comportamiento de la aplicación, se puede realizar la

depuración con el programa corriendo en el microcontrolador, esto a través de un

programa gestor que se carga en el PIC al seleccionar la opción de depuración.

De esta manera se trabaja hasta lograr que el proyecto funcione como se desea.

Page 38: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo II: Elementos de la plataforma

34

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.

Hasta aquí presentamos, por separado, los elementos de hardware y

software que fue necesario dominar. Es decir en este capítulo II hemos expuesto

las bases de diseño nuestra plataforma.

Page 39: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

35

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.

Todos estos dispositivos se han montado en un ángulo de aluminio para

fijarlos y poder anclarlos a alguna mesa de trabajo, para desarrollar los

experimentos ya como servomotor o servomecanismo.

Page 40: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

36

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.

A la entrada se le aplica, además de la señal PWM, una señal lógica

llamada signo, que cambia de estado para permitirnos modificar la dirección de

giro del servomotor. Los niveles lógicos 0 y 5v. de la señal PWM son amplificados

a 0 y 30v. respectivamente, y conducidos a la salida para ser aplicados

directamente al servomecanismo. El amplificador nos puede suministrar una

corriente máxima de 3 ampers. A continuación se presenta un diagrama funcional

a bloques del circuito integrado.

Page 41: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

37

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:

El prototipo completo requiere de tres fuentes de alimentación, una de 30v.

para el amplificador, otra de 5v. para la lógica, y otra de 5v. para la lógica

conectada a la parte de potencia, estas dos últimas fuentes se encuentran

aisladas eléctricamente para evitar que los picos de voltaje generados por el

servomotor lleguen al microcontrolador y afecten su funcionamiento.

Page 42: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

38

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.

El MAX232 es un doble transmisor/receptor que incluye un circuito doblador de

voltaje capacitivo, cada receptor convierte las entradas EIA-232 a niveles TTL /

CMOS (5v.), y cada transmisor hace lo inverso. Los receptores tienen un umbral

Page 43: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

39

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.

Figura 17.- Imagen del trasladador de niveles MAX232.

Page 44: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

40

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.

Se colocaron también, en la alimentación del microcontrolador un capacitor de

desacoplamiento de 0.1 ufd., un resistor para el sensado de corriente y un filtro

para esta misma señal.

Page 45: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

41

Figura 18.- Imagen de la tarjeta principal con el dsPIC30F4012.

El a bloques de la tarjeta principal se muestra a continuación, y en el Anexo

“B” se muestra el diagrama electrónico completo.

Page 46: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

42

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

C122nf

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 1Friday , 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(1

3)

VD

D(2

0)

AV

DD

(28)

VS

S(8

)

VS

S(1

9)

AV

SS

(27)

PGD(17)

PGC(18)

LMD18200

Amplif icador Puente H

PWM(5)

SIGNO(3)

BOOTSTRAP1(1)

OUTPUT1(2)

OUTPUT2(10)

BOOTSTRAP2(11)

IP(8)

(6)

GN

D(7

)

BR

AK

E(5

)

TH

ER

MA

L F

LA

G(9

)

4N37

Opto aislador

VDD(5)

GND(2)

PWM-IN(1) PWM-OUT(4)

PROGRAMADOR

Conector

Vpp/MCLR(1)

VDD/5VL(2)

VSS/GNDL(3)

PGD(4)

PGC(5)

ENCODER

Conector

B(1)

5VL(2)

A(3)

GND(5)

NC(4)

30V

R1

1kSW1

SW

PUERTO SERIE

Conector

$PIN0

VDD/5VL(2)

VSS/GNDL(3)

TX(4)

RX(5)

5VL

GNDL

5VL

GNDL

TX

Corriente sensada

GNDL

5VP4N37

Opto aislador

VDD(5)

GND(2)

SIGNO-IN(1) SIGNO-OUT(4)

Page 47: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

43

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.

Al inicio del main() se llama a cinco funciones, cuatro de inicialización de los

módulos del dsPIC que utilizamos y una de retardo.

Page 48: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

44

Figura 20.- Inicio del programa principal main() del dsPIC, llamando a cuatro

funciones para inicializar los módulos utilizados.

La primera función es IniPWM(), con ella configuramos la salida PWM, le

deshabilitamos interrupciones, fijamos la frecuencia de la señal PWM,

seleccionamos el modo de operación, habilitamos el puerto, y enviamos un

comando de prueba para que se mueva el servomotor un tiempo pequeño en

ambos sentidos.

Después se llama a la función de retardo MsDelay(700), la cual no es tan

importante.

La tercera función IniADC4012Old() nos permite configurar la terminal 5 del

dsPIC como entrada analógica(AN3). Esta entrada se utiliza para sensar la

corriente en el servomotor. Primero de define la línea I/O como entrada, se apaga

el convertidor, se definen las entradas negativas y positivas para las entradas A y

B que se van a muestrear; ya que están multiplexadas seis entradas en cuatro

canales muestreadores-retenedores, con un solo convertidor A/D. Se deshabilitan

las interrupciones, se selecciona la línea como entrada analógica, también se

seleccionan el formato como se entregará la palabra digital de 10 bits (que es el

resultado de la conversión), el voltaje de referencia, el reloj de disparo de la

conversión, el tipo de muestreo, el reloj de la conversión.

Page 49: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

45

La cuarta función es IniSerial4012(), la cual nos permitirá inicializar y configurar

el UART1, que es quién maneja la comunicación por el puerto serie.

Con la quinta función llamada, IniQEI(), configuramos como entradas las líneas

para el módulo de lectura del codificador de posición óptico, seleccionamos el

valor máximo a contar, habilitamos la interrupción por sobre flujo en la cuenta, y la

prioridad de ésta, seleccionamos también el modo X4, y finalmente inicializamos

en cero el registro de conteo de la posición del servomotor.

Después el programa entra en un lazo de espera. En esta parte, básicamente

se realiza el sensado de la posición y envío de la señal de control al servomotor,

este lazo solamente es interrumpido por la presencia de alguna de las

interrupciones para la transferencia de dato entre la PC y el dsPIC, esto sucede

cada periodo de muestreo del controlador. En el caso de la comunicación serie es

de 2ms.

En este lazo también se acondicionan la señal sensada de la posición y la

señal de control enviada en formato PWM. El registro que entrega el valor de la

posición es de 16 bits, y dado que estamos trabajando con un codificador de

posición de cuadratura de 10,000 pulsos por revolución, este se desbordaría

fácilmente, por lo cual se implementó en código el incremento del tamaño del

registro a 32 bits. Adicionalmente la posición es convertida de formato entero a

punto flotante, que es como la maneja simulink. En contrapartida la señal de

control que viene de la PC en dos bytes separados, es unida para tener una

palabra de 16 bit. Se pregunta si ésta es negativa o positiva, para hacer girar el

motor en un sentido u otro, después se le obtiene el valor absoluto, y es recortada

hasta un valor UMAX. Finalmente este valor digital es cargado en el registro

correspondiente para que la señal de control PWM sea generada.

III.2.1.1.- Configuración general:

La configuración de los bits que definen el funcionamiento general del dsPIC

(también llamados fusibles) la realizamos mediante un archivo de la biblioteca al

que denominamos configbits.h. Este archivo se encuentra incluido en el proyecto.

La primera selección corresponde al tipo de oscilador que usaremos, en

este caso un oscilador externo de alta frecuencia con un multiplicador por 16, esto

Page 50: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

46

se logra con la siguiente selección _FOSC( CSW_FSCM_OFF & XT_PLL16 ). El

cristal externo nos permite mayor precisión en el reloj, lo cual, entre otras cosas,

redunda en una mayor integridad de los datos en la comunicación serie.

Para la implementación exacta del reloj del sistema usamos un cristal de

7.3728 Mhz., el cual se multiplica por 16 para obtener 117.96 Mhz. Dividiendo este

valor entre 4 se obtiene la frecuencia a la que se ejecuta una instrucción, es decir

estamos trabajando a 29.49 MIPS. Como sabemos, el dsPIC que estamos usando

puede correr a 30 MIPS máximo.

La siguiente selección corresponde al Watchdog timer, en nuestro caso lo

deshabilitamos mediante la macro instrucción _FWDT(WDT_OFF).

Posteriormente tenemos la selección que se refiere a los tipos de reset. En

este caso solo habilitamos el brown on reset y el master clear, mediante la

siguiente macro instrucción _FBORPOR(PBOR_ON & MCLR_EN ). Lo hacemos

de esta manera porque solo deseamos que se presente el reset, por una baja en

el voltaje de alimentación o al ser accionado el interruptor correspondiente.

Finalmente tenemos la opción de proteger el código programado. En este

caso dicha opción es deshabilitada con la macro _FGS(CODE_PROT_OFF).

III.2.1.2.- Comunicación serie:

Para realizar la comunicación de datos por el puerto serie, se requiere de la

inicialización y configuración del UART tanto en el dsPIC como en la PC. En el

dsPIC se realiza de la siguiente manera.

Inicialmente es llamada la función IniSerial4012(), donde se definen algunas

constantes para el cálculo y la configuración del baud rate. En nuestro caso

usamos la velocidad más alta, es decir 115,200 bauds, posteriormente se cierra el

UART, se configuran sus líneas digitales I/O, Tx como salida y Rx como entrada,

se deshabilita el UART, se selecciona el formato de comunicación 8N1, se habilita

la interrupción al recibir un dato, y se configura la prioridad de ésta en 4, se habilita

la interrupción para cuando se reciba un caracter, se selecciona el uso de las

terminales alternas, se habilita el UART, y finalmente se habilita la transmisión.

Page 51: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

47

Figura 21.- Función IniSerial4012() para inicializar y configurar el módulo serie.

De manera detallada el módulo UART es habilitado colocando un „1‟ en el bit

UARTEN del registro U1MODE10. Una vez habilitado, los pines UxTX y UxRX se

configuran como salida y entrada, respectivamente, lo anterior colocando en cero

en el bit correspondiente en el registro TRIS para salida y en uno para entrada.

El pin UxTX se encuentra en estado lógico "1" cuando ninguna transmisión se

lleva a cabo.

El módulo UART es desactivado al limpiar el bit UARTEN en el registro

U1MODE. Este es el estado predeterminado después de cualquier reset. Si el

UART está desactivado las dos terminales del puerto serie operan como

terminales de I / O, bajo el control de los bits de los registros correspondientes

LATCH y TRIS.

El modo de terminales alternas es habilitado por el cambio a alto del bit ALTIO

(U1MODE <10>). Si ALTIO = 1, las terminales U1ATX y U1ARX son utilizados

por el módulo UART en lugar de las terminales U1TX y U1RX. Si ALTIO = 0, las

terminales U1TX y U1RX son utilizados por el modulo UART.

Page 52: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

48

Los bits de control PDSEL <1:0> en el registro U1MODE son utilizados para

seleccionar la longitud de los datos y la paridad utilizada en la transmisión, la

longitud de los datos puede ser de 8 bits con paridad par, impar o sin paridad, o 9

bits sin paridad. El bit STSEL determina si se utilizarán uno o dos bits de paro

durante la transmisión de datos. Estos valor por defecto ( Power-on ) del UART

son: 8 bits, sin paridad, 1 bit de parada ( normalmente representado como 8,N,1).

La bandera de interrupción por recepción (U1RXIF) puede ser leída en el

registro correspondiente. La condición para recibir la interrupción depende de la

configuración especificada en los bits de control UR1ISEL <1:0> (U1STA <7:6>).

Si URXISEL <1:0> = 00 o 01, una interrupción es generada cada vez que una

palabra de datos se transfiere desde el registro de movimiento de recepción

(U1RSR) al bufer de recepción. Puede haber uno o más caracteres en el bufer de

recepción.

El UART tiene un generador de baud rate de 16 bits para permitir una

flexibilidad máxima en la generación de la velocidad de comunicación, el registro

generador de la tasa de baudios (U1BRG) es de lectura y de escritura, la

velocidad de comunicación se calcula como sigue:

La velocidad en baudios está dada por la siguiente ecuación.

Por lo tanto, la máxima velocidad en baudios posible es (si = 0), y

la mínima velocidad posible en baudios es .

Despejando y calculando para un .

Page 53: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

49

Este es el dato que se carga en el registro .

III.2.1.3.- Generación de la señal de control por Modulación en Ancho del Pulso:

La segunda función del programa cargado en el dsPIC es IniPWM4012(). Con

la cual configuramos la salida PWM, le deshabilitamos interrupciones, fijamos el

periodo de ésta, seleccionamos el modo de operación, habilitamos el canal, y

enviamos un comando de prueba para que se mueva el servomotor un tiempo

pequeño en un sentido y en otro.

Figura 22.- Función IniPWM4012() para inicializar y configurar el módulo PWM.

La configuración del módulo PWM se realiza utilizando los programas o

funciones de biblioteca de 16 bits, para el lenguaje “C”, los cuales nos permiten

asignar a los registros internos los valores necesarios, sin tener que hacerlo

directamente; de tal manera que dichas funciones simplifican la tarea de

configuración, la que sería más complicada si se realizara sin ellas, o aún más si

se realizara en ensamblador.

La primera función de biblioteca usada es ConfigIntMCPWM(config), esta

Page 54: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

50

función se utiliza para configurar las interrupciones del modulo PWM, el parámetro

config puede tomar el valor de una serie de etiquetas correspondientes a bits; con

los cuales, en nuestro caso, deshabilitamos las interrupciones del módulo PWM ya

que no serán utilizadas, ni la normal ni la de bit de falla, también les asignamos

una prioridad de 0, la cual es la menos importante. Esto último es necesario

realizarlo ya que el espacio no puede quedar vacío en la función.

Posteriormente se usa la función de biblioteca OpenMCPWM(), la cual

inicializa el módulo y es la encargada de escribir los valores a los registros de

configuración PTPER , SEVTCMP, PTCON, PWMCON1 y PWMCON2.

Para el caso en que trabajemos en el modo de corrida libre, el primer valor nos

permite definir la base de tiempo de la señal PWM, la cual, en términos del periodo

del PWM se calcula con la siguiente fórmula.

Despejando y calculando el valor a cargar en el registro , para una

frecuencia deseada del de 20 Khz., y para un valor del preescalador de 1.

Tenemos:

El segundo dato es el disparo por algún valor o evento especial, este dato no

lo utilizamos, por lo que se coloca en cero.

El siguiente parámetro de esta función es Config1, este contiene los datos que

serán cargados en el registro PTCON; los que realizan varias funciones, habilitan

la base de tiempo del PWM, definen que siga funcionando el PWM cuando el

dsPIC entre en modo de espera. El preescalador y el postescalador se colocan en

1:1, con lo cual quedan prácticamente deshabilitados. Al final definimos que el

modulo PWM esté trabajando en el modo de corrida libre.

El siguiente parámetro es config2, este contiene los datos que serán cargados

en el registro PWMCON, con este configuramos el modulo 3 PWM bajo para que

trabaje de manera independiente, deshabilitamos los módulos 1 y 2, altos y bajos,

y el modulo 3 alto. Es decir solamente habilitamos el modulo 3 bajo, para obtener

Page 55: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

51

la señal PWM a través de esta terminal.

El parámetro config3 Contiene los datos que serán cargados en el registro

PWMCON2, con ellos colocamos el postescalador de eventos especiales en 1, ya

que no lo utilizaremos, sincronizamos la salida PWM con el Tcy, y seleccionamos

que la actualización del flanco de salida de la señal PWM se realice en sincronía

con la base de tiempo del módulo.

Posteriormente utilizamos la función SetDCMCPWM(); con ella configuramos

los registros para el ciclo útil del PWM. En el parámetro dutycyclereg se coloca el

valor del apuntador al registro a configurar, en nuestro caso el modulo 3. El dato

siguiente es el llamado iref, este es el valor del ciclo útil a cargar, y el dato final es

updatedisable, este valor se coloca en cero para deshabilitar la actualización

inmediata de valores, ya que ésta se realiza de otra manera; sincronizada con la

base de tiempo del modulo PWM.

Posteriormente con iref se hace una pequeña rutina para probar que está

función esté trabajando, consiste en mover el servomotor por corto tiempo hacia

un lado y hacia el otro. Estos valores de ciclo útil son solo de prueba, ya que la

variable iref se irá modificando de acuerdo a las necesidades de la señal de

control en el lazo.

III.2.1.4.- Medición de la posición angular:

El modulo QEI del dsPIC es la interface entre el codificador de posición óptico

incremental en cuadratura y el lazo de control, este módulo realiza la tarea de

decodificar las señales enviadas por el sensor. Estas señales son llamadas fase

A, fase B, e Index. Las fases A y B se utilizan para determinar la posición del rotor

incluyendo su sentido de giro, mientras que el Index se utiliza para medir cantidad

de revoluciones. En la siguiente figura se muestra el principio de funcionamiento

de un sensor de posición óptico.

Page 56: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

52

Figura 23.- Funcionamiento de un sensor de posición óptico incremental.

El contador del modulo QEI deja el dato de la posición en un registro de 16 bits

llamado POSCNT.

Si el servomotor está girando en dirección positiva y el valor en el registro

POSCNT coincide con el valor en el registro MAXCNT, entonces este registro se

reiniciará a cero en el siguiente flanco de bajada y una interrupción será generada.

A este evento se le llama sobreflujo.

Si el servomotor está girando en dirección negativa y el valor en el registro

POSCNT llega a cero, entonces este registro será cargado con el valor en el

MAXCNT y en el siguiente flanco que decremente al registro POSCNT, también

será generada una interrupción.

Cuando alguna de estas interrupciones ocurre, la bandera QEIIF

correspondiente se pone en “1” indicando el evento, y se salta a la rutina de

servicio de interrupción. En esta rutina podremos observar el valor que tenía el

contador de posición al ocurrir el evento, si el valor es el máximo, entonces

incrementaremos una variable entera que cuente los sobreflujos. Por el contrario si

el valor es cero entonces se decrementará esta variable. Con esto obtendremos

un valor de 32 bits para el contador de posición, y nos permitirá un mayor rango de

sensado de la posición para nuestro control, es decir el motor podrá dar más

vueltas sin problemas en el conteo.

El modulo QEI permite una frecuencia de las señales de entrada A y B hasta

de , en nuestro caso la frecuencia de estas señales debe de ser máximo de:

Page 57: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

53

La inicialización y configuración del modulo QEI se realiza con la rutina

IniQEI4012() de la siguiente manera:

Figura 24.- Función IniQEI4012() para inicializar y configurar el módulo QEI

para el sensado de la posición angular.

Primero se inicializan las líneas QEA y QEB como entradas, como cualquier

líneas digital de I/O, posteriormente llamamos ordenadamente a las siguientes

funciones preprogramadas.

La función WriteQEI(), la cual establece el valor máximo para el contador de

posición, en nuestro caso 0xFFFF; este valor es guardado en el registro MAXCNT.

En seguida la función ConfigIntQEI(), la que configura la interrupción para este

módulo, después habilitaremos la interrupción y le asignaremos una prioridad de

3, es decir una intermedia.

Posteriormente la función OpenQEI(), esta función abre el módulo

seleccionando la fase con la cual se incrementa el contador; para este caso

Page 58: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

54

utilizamos la fase B. También se configura que las entradas no sean

intercambiables y la resolución de del modulo sea X4, se coloca el modulo en

modo de trabajo match, esto para que se genere una interrupción por sobreflujo y

bajoflujo del contador.

Finalmente se inicializa con cero el registro POSCNT, que es donde se

guardará el conteo de la posición.

III.2.1.5.- Medición de la corriente en el servomotor:

El amplificador tipo puente “H” LMD18200 cuenta con una terminal que nos

permite sensar la corriente que circula por éste y por lo tanto por el servomotor,

dicha salida se encuentra en la terminal 8 y se llama current sense. Esta señal de

corriente nos entrega 377ua. por amper a la salida.

Como podrá observarse es necesario colocar un resistor de carga a tierra, de

valor apropiado para obtener un voltaje proporcional a la corriente, y llevar este a

una entrada A/D del dsPIC, esto para poder manipularla digitalmente y realizar la

acción correspondiente cuando se desee. El rango de voltaje analógico permitido

en cualquier entrada A/D es de 0-5v.

A continuación se muestra el cálculo del resistor; por ley de Ohm.

Proponiendo y calculando tenemos:

Lo cual es adecuado ya que deseamos sensar como máximo 2 ampers a

través de la entrada AN3 del dsPIC, y en este caso tendremos como límite 4.22 v.

Dado que esta señal contiene demasiado ruido, se requirió pasarla por un filtro

pasa bajas, este se implementó por hardware con una red RC, eligiendo una

frecuencia de corte de 4 Khz. para conservar un ancho de banda suficiente para el

lazo de control. El diseñó se realizó de la siguiente manera.

Page 59: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

55

Si proponemos; , y despejamos el cálculo del capacitor es el

siguiente:

Por razones de valores comerciales del capacitor, se colocó de 47nfd., por lo

que la frecuencia de corte real es

La parte de programación e inicializar de la entrada analógica del dsPIC para la

lectura de este voltaje filtrado, que es proporcional a la corriente en el servo, fue

realizada mediante la rutina IniADC4012Old(), la cual desarrolla las siguientes

tareas.

Page 60: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

56

Figura 24.- Función IniADC4012Old() para inicializar y configurar el módulo de

entradas analógicas.

Primero, se programa como entrada la terminal 5 (AN3) del dsPIC, y se apaga

el convertidor, posteriormente se usan las siguientes funciones preprogramadas.

Iniciamos con SetChanADC10(Channel). Esta función selecciona las entradas

multiplexadas, positiva y negativa que van a los muestreadores-retenedores A y

B, las que son cargadas al registro ADCHS, se elije que la entrada AN3 pase a la

entrada positiva del muestreador A y después al canal cero, y que el Vref- pase a

la entrada negativa del muestreador A y después al canal cero.

Posteriormente se utiliza la función ConfigIntADC10(), la cual deshabilita la

interrupción del convertidor, y en este caso ya no se fija la prioridad.

Finalmente se usa la función OpenADC10(). La que, entre otras cosas, nos

permite escribir en los tres registros ADCON1. En el primero, habilitamos el

módulo ADC, habilitamos que el módulo de conversión siga trabajando aunque el

dispositivo entre en modo ocupado, después seleccionamos que el formato de los

bits de salida del dato sea entero sin signo, posteriormente elegimos que la fuente

de reloj que dispare la conversión sea automática, en seguida seleccionamos que

se puedan muestrear varios canales simultáneamente, luego que el muestreo

Page 61: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

57

empiece inmediatamente después que la última conversión sea completada, y por

último que al menos un muestreador-retenedor esté trabajando.

En el segundo registro ADCON2 configuramos en principio que los voltajes de

referencia del convertidor sean AVdd y AVss, en seguida que no revise las

entradas para el CH0+, después se deshabilita el modo alterno del bufer del dato

de salida, posteriormente se deshabilitan las entradas alternas del multiplexor; es

decir siempre se usa el MUX A, más adelante se selecciona el CH0 como el

utilizado, y finalmente se selecciona no permitir interrupciones.

El tercer registro ADCON3 se configura de la siguiente manera; primero el

tiempo de muestreo automático en 10 veces el periodo de conversión

enseguida que la fuente de reloj de muestreo sea la del sistema, y finalmente que

el reloj de conversión sea . Enseguida se muestra el cálculo para

este dato de seis bit que se carga en La variable del registro ADCON3.

.

III.2.1.6.- Rutinas de atención a interrupciones:

Cada que un byte completo se ha recibido en el puerto serie del dsPIC, el

programa principal del DSpic se abandona temporalmente para ejecutar esta

rutina de atención a interrupciones.

Esto quiere decir que la iniciativa de la comunicación, con el dsPIC, la tiene el

programa de control que está corriendo en la computadora personal. Esta

comunicación debe realizarse cada que se cumpla el periodo muestreo fijado en el

controlador, en nuestro caso cada 2 mseg.

En esta rutina se ejecutan las dos tareas fundamentales en el muestreo de

todo controlador; la actualización de la señal de salida sensada y la aplicación de

la señal de control.

La computadora primero envía un comando para indicarle al dsPIC que desea

que le envíe la nueva posición angular, la rutina pregunta por él, y de estar

presente, le contesta enviándole, por el mismo puerto serie, los cuatro bytes de la

posición. La rutina borra la bandera de interrupciones, para que pueda entrar otra,

Page 62: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

58

y termina.

En el mismo periodo de muestreo, la computadora envía ahora otro comando,

lo cual hace que se ejecute nuevamente la rutina de atención a interrupciones,

indicándole que le va a enviar la señal de control en dos bytes, el dsPIC los lee,

borra la bandera de interrupciones y termina.

De antemano, en la configuración del puerto serie se programó la interrupción

por recepción de un byte y se le fijó una prioridad intermedia (4).

Como se explicó en los apartados anteriores, existen otra fuente de

interrupción; la de sobreflujo o bajoflujo en el conteo de pulsos del sensor de

posición. Para este caso, se programó la rutina de atención correspondiente.

III.2.2.- Programación de la función “S” para Simulink:

En nuestro caso, la función “S” es el driver requerido para manejar el puerto

serie de la PC desde Simulink. Para facilitar dicha programación se utilizó la

plantilla de programa, en lenguaje “C”, que viene incluida con Matlab. Para este

caso en particular se utilizó la plantilla de nivel 1. A continuación se explica la

programación de dicha función.

Al archivo lo llamamos serxp_1.c. En su interior Inicialmente se define el nombre

de la función “S”, que debe ser el mismo que el del programa, sin la extensión, y el mismo

que llevará el nombre del bloque en Simulink, es decir serxp_1. Posteriormente se

incluyen algunos archivos de la biblioteca, se hacen algunas definiciones y se

etiqueta la dirección base del puerto serie COM1 (0x3F8) de la PC, se define

también que el bloque tenga solamente una entrada y una salida.

Después, se llama a la primera rutina mdlInitializeSizes(S), la cual define el

tamaño de algunas variables, vectores, y compara el número de argumentos que

se le pasan a la función “S” con los seleccionados.

En seguida se llama a la rutina mdlInitializeSampleTimes(S), en la cual solo se

toma el argumento del periodo de muestreo que se selecciona en Simulink,

posteriormente se llama a la función mdlInitializeConditions(x0, S); en esta rutina

se realiza la configuración del puerto serie de la PC, se habilita el bit del divisor de

Page 63: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

59

latch DLAB en el registro de control de línea, después se configura la velocidad

de comunicación a 1151,200 bauds, el tipo de dato a 8N1, en el registro de control

del FIFO (FCR) se configura la máxima capacidad, se limpia y se habilita, y

finalmente se activan las líneas DTR, RTS y OUT2 en el registro de control del

modem.

Posteriormente tenemos programadas dos funciones propias; la primera para

leer un byte llamada GetByte() y la segunda para reunir dos bytes y obtener una

word entera, esta última se llama GetVal().

En seguida está la rutina mdlOutputs(). Esta es la más importante ya que aquí

se programa el código que se ejecutará cada periodo de muestreo durante todo el

tiempo que esté corriendo el programa de control. En esta parte, esencialmente se

realiza la comunicación con el dsPIC para la lectura de la posición angular (salida

del lazo de control) y el envío de la señal de control PWM, todo esto por el puerto

serie.

En el caso de la posición angular, esta se transfiere en 32 bits, y dado que se

lee byte por byte, esto se hace con apuntadores para posteriormente juntarlos y

obtener el dato en tipo flotante, ya que este formato es el que maneja Simulink.

Por otra parte la señal de control PWM es de 11.9 bits, por lo que se transmite

en dos bytes, pero antes se normaliza para hacer coincidir el máximo valor en

digital que es 3998, con el máximo que se maneja en el lazo de control de

Simulink, que es de 5v.

A continuación se muestra el cálculo de la resolución de la señal PWM a la

frecuencia indicada.

Finalmente se llama a las rutinas mdlDerivatives() y mdlTerminate(), esta

última solo se ejecuta una sola vez, al apagar la simulación, en ella se envía un

comando para reconfigurar el dsPIC, el cual tiene el efecto de un reset.

Page 64: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

60

Esta función “S”, una vez compilada dentro de Matlab, podrá usarse como un

bloque mas en el modelo de control de Simulink, permitiéndonos el contacto con el

servomotor, a través del puerto serie y del dsPIC.

III.2.3.- Apertura del puerto serie en Windows XP:

Trabajando bajo el sistema operativo Windows XP los puertos de

comunicaciones de una computadora personal se encuentran cerrados. Es decir

no se pueden utilizar aunque hayan sido configurados. Por lo tanto el programa de

aplicación que se esté utilizando para trabajar debe abrirlos.

En el caso del puerto serie. Por ejemplo, el COM1, éste se puede utilizar solo

por la Hiperterminal sin la necesidad de ser abierto por alguna aplicación, Para

nuestro caso, que deseamos usarlo desde Simulink con el Kernell de tiempo real

Ardence RTX, este puerto se abre desde esta aplicación, de la siguiente manera:

1.- Se ejecuta la aplicación Ardence RTX Properties

2.- Dentro de esta ventana se va a la pestaña de Harware, en el recuadro RTX

Devices presionar el botón de setings

3.- Buscar y seleccionar el puerto COM1, después presionar ok (o enter)

4.- Reinstalar el Driver del puerto y reiniciar la computadora

5.- Revisar que el puerto esté soportado por el Driver de RTX. Si es así, como

en la siguiente Figura 21 el puerto está abierto y listo para trabajar desde esta

aplicación.

Page 65: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo III: Desarrollo de la plataforma

61

Figura 25.- Pantalla mostrando al puerto COM1 abierto por la aplicación

Ardence RTX.

Page 66: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

62

CAPITULO IV.- MODELADO Y SIMULACION DEL SERVOMOTOR DE C.D.

IV.1.- Generalidades de los motores de corriente directa:

Los motores de Corriente Directa (C.D.) convierten la energía eléctrica en

energía mecánica. Una gran parte de esta energía llamada par (torque), que es

generada en el rotor (armadura o inducido) del motor, está disponible para

manejar una carga mecánica externa. El motor de CD es probablemente el

primero de los motores eléctricos.

El principio de operación de un motor de CD es el de un conductor eléctrico

colocado dentro de un campo magnético constante, perpendicular a la dirección

del campo. La Densidad del Flujo Magnético es también asumida como

constante. Si una corriente directa se hace pasar a través del conductor, el flujo

magnético debido a la corriente rodeará al conductor. Si consideramos un plano a

través del conductor, paralelo a la dirección del flujo magnético del campo, en un

lado de este plano el flujo debido a la corriente y el flujo debido al campo se

suman. En el lado opuesto, los flujos se oponen; como resultado se genera una

fuerza de desequilibrio magnético (normal al plano) sobre el conductor. Esta

fuerza está dada por la ecuación siguiente:

IV.1.1

Donde es la densidad de flujo magnético, la longitud del conductor, la

corriente a través del conductor, el par de fuerzas y es la constante

mecánica del motor o constante de par.

Note que si el flujo del campo no es perpendicular a lo largo del conductor, este

puede generar una componente perpendicular que genere una fuerza y una

componente paralela que será inactiva. Las componentes activas de son

mutuamente perpendiculares y forman la regla de la mano derecha. También en la

representación vectorial de estas tres cantidades, el vector puede ser

representado como el producto cruz de los vectores .

Si el conductor está libre para moverse, la fuerza moverá éste en la dirección

de la misma.

Page 67: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

63

Considerando la necesidad de mantener la dirección del par, en cada

enrollamiento o grupo conductor de la armadura, la dirección de la corriente

cambiará cuando el conductor cruce el plano llamado de conmutación.

Físicamente esto es realizado usando un anillo contactor con hendiduras o

separaciones aislantes y un par de escobillas conductoras (carbones) que realizan

la conmutación. Esto es, cuando un voltaje de armadura es aplicado a través de

las escobillas de carbón, se genera un pequeño giro de la armadura del motor

logrando la conmutación requerida para mantener girando permanentemente el

motor en una dirección.

Figura 26.- Imagen interna de un motor de C.D. con escobillas.

Como resultado de este movimiento dentro del campo magnético un voltaje

será inducido en el conductor. Este es conocido como la fuerza contra

electromotriz (FCEM) o y está dada por:

IV.1.2

Donde: es la velocidad angular y la constante eléctrica del motor.

En consecuencia, por la ley de Lenz, el flujo debido a la FCEM se opondrá al

flujo debido a la corriente original a través del conductor, de tal manera que

Page 68: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

64

tenderá a detener el movimiento. Esta es la causa del amortiguamiento eléctrico

(efecto derivativo) en los motores eléctricos.

A este tipo de motores se les conoce como motores con escobillas o carbones,

uno de los cuales analizamos y utilizamos en el presente trabajo.

IV.2.- Modelo matemático de un motor de corriente directa controlado por

armadura:

El modelado matemático es una técnica que consiste en describir, de la

manera más apegada a la realidad que sea posible, la estructura y características

de un sistema, en términos de ecuaciones. Los sistemas pueden ser, eléctricos,

biológicos, químicos, físicos, económicos, sociales, financieros, etc.

El análisis de los modelos matemáticos y la simulación de estos son

herramientas indispensables tanto para la comprensión y entendimiento del

sistema en particular, como para el posible diseño de algún controlador que

eventualmente se requiera.

Muchos sistemas dinámicos ya sean mecánicos, eléctricos, térmicos,

hidráulicos, económicos, biológicos, etc., pueden ser descritos por ecuaciones

diferenciales. Se puede obtener la respuesta de un sistema dinámico a una cierta

entrada, si se resuelven esas ecuaciones diferenciales.

Para obtener las ecuaciones se utilizan las leyes que gobiernan un sistema en

particular. Por ejemplo, las leyes de Newton para sistemas mecánicos.

Considerando el motor de C.D. que deseamos controlar en posición, sabemos

que el campo está elaborado con un imán permanente, de tal manera que el

control se hace por armadura, para lo que partimos del siguiente circuito

electromecánico para realizar el modelado matemático.

Page 69: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

65

Figura 27.- Circuito electromecánico de un motor de CD con campo de imán

permanente.

Donde: es el voltaje de armadura, la corriente de armadura,

la fuerza contraelectromotriz, la resistencia de armadura, la

inductancia de armadura, la constante eléctrica, el par eléctrico

desarrollado, la posición angular, el momento de inercia del motor,

la constante de par, la fricción viscosa total, la velocidad angular,

la inductancia mutua, y el par de la carga.

Detallando la ecuación para el voltaje generado dentro de una máquina de

C.D. o fuerza contra electromotriz1,2 , tenemos:

Donde: es el número de conductores de la armadura, el número de polos, es

el número de líneas de flujo por polo, es el número de rutas paralelas a través

de la armadura.

De tal manera que la constante eléctrica de la fuerza contra electromotriz es:

Por lo tanto:

Page 70: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

66

Por otra parte la ecuación para el par desarrollado por la máquina de C.D. es:

Donde la constante del par desarrollado es:

De tal manera que:

También se puede calcular una constante a partir de la otra, si se usan las

unidades indicadas, a partir de la siguiente relación:

Para iniciar de manera más estructurada el modelado del motor aplicamos

la ley de Kirchoff para mallas al circuito de armadura, obteniendo la siguiente

ecuación diferencial:

Sustituyendo de la ecuación , tenemos:

Por otra parte. A partir de la segunda ley de Newton del equilibrio de

fuerzas, obtenemos la ecuación de movimiento de la parte mecánica del sistema.

Sustituyendo de la ecuación , nos queda:

Page 71: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

67

Aplicando la transformada de Laplace a las ecuaciones y , nos

quedan de la siguiente manera:

Despejando en ambas ecuaciones para igualar y eliminarla, obtenemos:

Encontrando la función de transferencia en lazo abierto para una salida en

posición angular respecto a una entrada de voltaje de armadura, obtenemos el

sistema de tercer orden siguiente:

Si consideramos que la inductancia de la armadura es pequeña, el

polo eléctrico se hace más grande y su desempeño es rápido a bajas

frecuencias, por lo que se puede despreciar. Quedando de la ecuación el

siguiente sistema de segundo orden:

Page 72: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

68

El supuesto anterior se logró de manera más eficiente implementando un lazo

interno de control de la corriente de armadura, lo cual reduce la constante de

tiempo eléctrica y hace el polo eléctrico aún más rápido. Este parte se considera

posteriormente en el modelo.

Continuando con la agrupación de términos, nos queda la siguiente función de

transferencia en lazo abierto:

Al servomotor se le agregó como carga un disco de latón, el cual se comporta

como una masa inercial , de tal manera que la inercia total será:

Considerando ahora el lazo interno de control en corriente con un controlador

proporcional integral (PI), mas una ganancia debida al sensado y conversión de la

corriente en voltaje , además de la ganancia debida al amplificador

tenemos el siguiente diagrama a bloques:

Figura 28.- Modelo del servomotor en lazo abierto, solo con un lazo interno

de control en corriente.

lazo interno PI en corriente

Va

T

Ia

w

Servo motor de corriente directa

Ø

1

Ka

Kc

KiI

s

KpI

Km

Ke

1

s

1

Jt.s+Bm

1

La .s+Ra

Page 73: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

69

Donde; son, respectivamente, las ganancias proporcional e integral del

lazo interno de corriente.

Mediante álgebra de bloques pasamos el punto de resta al inicio y sumamos

las acciones proporcional e integral del lazo de corriente de armadura,

quedándonos lo siguiente:

Figura 29.- Primera simplificación del modelo del servomotor en lazo abierto,

con un lazo interno de control en corriente.

Normalmente el valor del polo , del lazo de retroalimentación, es

mucho mayor que el polo . Es decir, está más alejado del origen del

plano complejo, o sea, es más rápido; por lo que el término

puede aproximarse a bajas frecuencias por , quedando12.

Lazo PI en corriente

T

Ia

Va w

Servo motor de corriente directa

ØKaKpI .s+KaKiI

s

s

KaKpI .s+KaKiI

Kc

Km

Ke

1

s

1

Jt.s+Bm

1

La .s+Ra

Page 74: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

70

Figura 30.- Segunda simplificación del modelo del servomotor en lazo abierto,

solo con un lazo interno de control en corriente.

Resolviendo primero la parte del lazo interno de corriente y denominándolo

como tenemos:

Como los polos de normalmente están más alejados del

origen del plano complejo que el polo , la función de transferencia

anterior se puede aproximar a bajas frecuencia como12:

Quedándonos ahora los siguientes diagramas a bloques:

Lazo PI en corriente

T

Ia

w

Servo motor de corriente directa

Ø

VaKaKpI .s+KaKiI

s

s

KiI

Kc

Km

Ke

1

s

1

Jt.s+Bm

1

La .s+Ra

Page 75: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

71

Figura 31.- Tercera simplificación del modelo del servomotor en lazo abierto,

solo con un lazo interno de control en corriente.

Figura 32.- Cuarta simplificación del modelo del servomotor en lazo abierto,

solo con un lazo interno de control en corriente.

Resolviendo ahora el modelo hasta la salida en velocidad y denominando a la

función de transferencia como , nos queda:

TIaVa w Ø

s

KiIKe

1

s

1

Jt .s+Bm

1

Kc

IaVa w Ø

s

KiIKe

1

s

1

KcJt.s+KcBm

Page 76: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

72

Considerando que es mucho menor que , el término

podemos aproximarlo a: .

La función de transferencia de la posición angular, a la salida, entre el voltaje

de armadura, a la entrada, se obtiene multiplicando por , y nos queda de la

siguiente manera:

Finalmente tenemos un sistema de segundo orden, del cual podemos definir

las siguientes constantes:

Dichas constantes son claramente positivas, muy similares a las obtenidas

anteriormente en el modelo del servomotor sin realimentación en corriente.

La función de transferencia del sistema en lazo abierto, con un lazo de control

interno en corriente se puede reducir al siguiente bloque:

Figura 33.- Simplificación final del modelo del servomotor en lazo abierto, solo

con un lazo interno de control en corriente.

Representando el modelo obtenido en ecuaciones diferenciales tenemos:

Va Øb

s(s + a )

Page 77: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

73

Se observa también que el sistema tiene dos polos, uno en el origen del plano

complejo y otro del lado izquierdo, por lo que es marginalmente estable debido al

polo que se encuentra en el origen. La demostración se puede realizar, de manera

detallada, utilizando algún método como el de Routh-Hurwitz2 o el de Nyquist3, sin

embargo, por el momento, no es el objetivo.

IV.2.1.- Identificación de los parámetros del motor y del modelo:

Los parámetros más importantes del motor son: resistencia de armadura,

inductancia de armadura, fuerza contraelectromotriz, constante eléctrica,

momento de inercia del motor, la constante de par, fricción viscosa del

motor. En algunos casos el fabricante los proporciona, pero la mayoría de las

veces no los conocemos.

Todos los parámetros nos son indispensables, tanto para la simulación, como

para todo el análisis teórico que se presente del sistema, el cual debe coincidir con

los resultados experimentales.

Algunos de los parámetros mencionados en este apartado son fácilmente

medibles; pero otros no, como o . Por otra parte se podrías

calcular de la ecuación , sin embargo el problema de conocer estos

parámetros persiste.

Existen varios trabajos reportados donde se intentan estimar estos

parámetros14, ya sea en caso de modelado para realizar la simulación y el

control, o para propósitos de control de calidad, sin embargo la estimación de la

fricción viscosa se omite en la mayoría de ellos.

Por lo que respecta a los parámetros incluidos por el lazo interno de corriente,

algunos son definidos por nosotros y otros pueden ser calculados, sin embargo,

aún no conoceríamos la totalidad de ellos.

En nuestro caso la opción utilizada fue la identificación indirecta de todos estos

parámetros, a través del conocimiento de las constantes y Dado que son las

Page 78: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

74

únicas que necesitamos obtener para conocer completamente el sistema. Estas

constantes fueron definidas en las ecuaciones y

La identificaron de estas constantes se realizó en el laboratorio, con la misma

plataforma, y se encuentra reportada en el artículo de investigación4, obteniéndose

los siguientes valores estimados: y .

IV.2.2.- Modelado en lazo cerrado, con un controlador PID:

En principio, si cerráramos el lazo de control en posición con un controlador

PD, el error en estado estacionario no se hace cero. Se obtuvieron mejores

resultados con un controlador PID, por lo que este último controlador fue el

utilizado, quedando el modelo del sistema de la siguiente manera:

Figura 34.- Modelo del servomotor en lazo cerrado con un controlador PID, y

con un lazo interno de control de corriente.

Resolviendo el lazo interno tenemos que:

Multiplicando por nos queda:

Va Øw

Kd

Ki

Kp

1

s

1

s

b

s+a

Page 79: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

75

Figura 35.- Primera simplificación del modelo del servomotor en lazo cerrado

con un controlador PID, y con un lazo interno de control en corriente.

Continuando con la simplificación de los bloques del controlador PI, junto con

el bloque . Nos queda el denominamos .

Figura 36.- Segunda simplificación del modelo del servomotor en lazo

cerrado con un controlador PID, y con un lazo interno de control de corriente.

Finalmente tenemos que la función de transferencia del sistema completo

en lazo cerrado, con un controlador PID en posición y con un lazo interno de

corriente es de tercer orden, y es la siguiente:

Va Ø

Ki

Kp

1

s

b

s +(a+bKd )s2

Va ØbKp .s+(bKi )

s +(a+bKd)s 3 2

Page 80: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

76

IV.2.3.- Estabilidad del sistema de tercer orden en lazo cerrado:

Uno de los requerimientos más importantes de los sistemas de control

lineales, cuando se hace control en lazo cerrado, es garantizar su estabilidad o

precisar en qué condiciones no es estable.

De tal manera que se han desarrollado una gran cantidad de métodos para

comprobar la estabilidad de los diferentes sistema.

Para este propósito, y en nuestro caso, nosotros escogimos el criterio de

estabilidad de Hurwitz3.

Este análisis de estabilidad del sistema en lazo cerrado se realiza de una

manera simple, comparamos el polinomio característico del denominador de

nuestra función de transferencia final, dada por la ecuación , con el

polinomio característico del denominador de los sistemas de tercer orden en

general, a saber:

La condición necesaria según el criterio de estabilidad de Routh3 es que

todos los coeficientes sean positivos, por lo tanto tendrán raíces con partes reales

negativas. La condición de suficiencia para la estabilidad se da si .

Page 81: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

77

En nuestro caso debe cumplirse que: , lo cual es

perfectamente posible, a menos que seleccionemos a casi infinitamente grande

con respecto a las demás constantes y parámetros.

El criterio de estabilidad de Hurwitz se extiende para sistemas de orden

mediante el planteamiento del determinante de un arreglo de los coeficientes, y el

análisis de los determinantes menores.

IV.3.- Simulación:

En el siguiente apartado se presenta la simulación del modelo matemático

encontrado para el sistema del servomecanismo. Para esto se utilizó Matlab-

Simulink y se procedió de la siguiente manera.

Los valores de las constantes y , se sustituyeron en el modelo, por los

identificados y estimados y y se procedió a hacer la simulación,

cerrando el lazo con un controlador PID, para una entrada de referencia tipo

escalón positivo y negativo.

El control en esta simulación se llevó a cabo en posición a la salida contra

voltaje de entrada en la armadura del servomotor, tal como se realizó el modelo.

La sintonización de las ganancias del controlador que proporcionó una mejor

respuesta fue con: .

Figura 37.- Modelo del servomotor en lazo cerrado con un controlador PID, y

con un lazo interno de control en corriente, para simulación.

VaØw

Signal

Generator

Ref /Sal

Kp

7

Kd

0.5

0.11

s

1

s

100

s+2.5

Page 82: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo IV: Modelado y simulación del motor de c.d.

78

En el diagrama anterior se muestra una salida en velocidad solamente para

efectos de simplificación, sin embargo en el experimento verdadero no contamos

con un sensor de velocidad. Por lo que en realidad la velocidad fue estimada en

Simulink a partir de la derivada de la posición filtrada.

La respuesta del sistema simulado con la sintonización indicada es muy buena,

se podría decir que estamos en el caso críticamente amortiguado para un sistema

de tercer orden, la gráfica de la referencia en posición contra la salida es la

siguiente:

Figura 38.- Gráfica de simulación del modelo del servomotor en lazo cerrado

con un controlador PID en posición, y con un lazo interno de control en corriente.

2988 2990 2992 2994 2996 2998 3000 3002 3004 3006 3008

-1

-0.5

0

0.5

1

Am

plitu

d (v

olts

)

Tiempo

Page 83: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

79

CAPITULO V.- CONTROL EN TIEMPO REAL

En este último capítulo presentamos los resultados experimentales

obtenidos con nuestra plataforma de enseñanza controlando diferentes variables y

utilizando diferentes leyes de control, también se exponen los resultados obtenidos

en el seguimiento de una trayectoria senoidal. Así mismo anotamos las

conclusiones y las perspectivas de trabajo futuro, que percibimos, del trabajo

reportado.

De manera más precisa mencionaremos que se realiza el control en

velocidad y en posición del servomecanismo con controladores PI y PID,

respectivamente.

El software para el control en tiempo real que se carga en la Computadora

Personal se explicó ya en los capítulos anteriores, en esta parte solamente

recordaremos que la plataforma de programación está basada en Matlab 2007ª, la

programación de los controladores se lleva a cabo con los bloques de Simulink, el

cual se encuentra trabajando bajo la aplicación de tiempo real Ardence RTX 7.0-

WinCon 5.2.

V.1.- Control de velocidad en tiempo real del servomecanismo:

El modelo de Simulink utilizado, en este caso, está basado en un controlador

PI, con una velocidad de referencia de 10, lo cual equivale, en la realidad, a

aproximadamente 300 rpm.

Dado que nuestra plataforma no cuenta con un sensor de velocidad, ésta es

estimada a partir de la posición, lo anterior mediante un derivador con un filtro

pasa bajas, mas otro filtro pasa bajas. Se requirieron los filtros mencionados dado

que la señal de posición, para esta tarea, presenta mucho ruido, y la derivada

amplifica las altas frecuencia.

Para este experimento, la sintonización se llevó a cabo de manera empírica,

dado que no se realizó el modelo en lazo cerrado considerando a la velocidad

como la variable a controlar. Los valores de las ganancias que nos permitieron el

mejor desempeño del controlador, son: y

En la siguiente figura 33 se presenta la pantalla completa de la Computadora

Personal al momento de estar realizando el control de velocidad, en ella se

observan varias ventanas; la de los bloques del controlador en Simulink, la de

Page 84: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

80

Wincon para el arranque y paro del programa, las de las ganancias y del

controlador, y la de la gráfica de las señales de referencia contra la salida en

velocidad.

Como lo explicamos con anticipación, el puerto serie de la PC pude manejar

una velocidad de comunicación máxima de 115,200 bauds, ésta velocidad es la

que estamos usando para la comunicación con el dsPIC de nuestra plataforma, de

tal manera que considerando además el número de datos que se transfieren; el

máximo periodo de muestreo que podemos utilizar, en nuestro controlador de

Simulink, es de 2 mseg.

Figura 39.- Pantalla completa de la computadora personal para el control de

velocidad, incluyendo todas las ventanas.

De manera más detallada, en la siguiente figura 34 se muestra la gráfica de

las señales de interés, es decir, de la referencia contra la salida en velocidad. En

esta figura se pueden apreciar pequeñas oscilaciones en el seguimiento que se

hace de la velocidad de referencia, lo anterior es debido a las variaciones que se

tienen en la estimación de la velocidad, ya que no la estamos sensando. No

obstante podemos observar que el control de velocidad se realiza correctamente.

Page 85: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

81

Figura 40.- Gráfica en tiempo real de la referencia contra la salida en velocidad,

utilizando un controlador PI.

V.2.- Control de posición en tiempo real del servomecanismo:

El modelo de Simulink utilizado en este segundo caso, está basado en un

controlador PID, utilizando como referencia, en posición, una señal cuadrada de

amplitud +1, lo cual equivale a una vuelta, y con una frecuencia de 2 mseg.

La parte derivativa del controlador se implementa con un derivador junto con

un filtro pasa bajas, mas otro filtro pasa bajas, de la siguiente manera:

Figura 41.- Implementación de la parte deriva del controlador a partir de una

salida en posición.

Los valores de las ganancias que nos permitieron el mejor desempeño del

controlador son: y Si comparamos estas ganancias

yp1

300

s+300

300s

s+300y

1

Page 86: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

82

con las utilizadas en la simulación llevada a cabo en el capítulo anterior, podemos

comprobar que son muy parecidas. A saber: .

Consideramos que las pequeñas diferencias que se observan son debidas a

varios factores; a las dinámicas no modeladas del servomotor que se está

controlado, a las desviaciones que existen entre los parámetros reales de la planta

y los estimados, y a las diferencias que siempre se presentan entre una simulación

y un control en tiempo real.

En la siguiente figura 36 se presenta la pantalla completa de la Computadora

Personal al momento de estar realizando el control de posición en tiempo real, en

ella se observan varias ventanas; la de los bloques del controlador en Simulink, la

de Wincon para el arranque y paro del programa, las de las ganancias y

del controlador, y la de la gráfica de las señales de referencia contra la salida

en posición.

Figura 42.- Pantalla completa de la computadora personal con el control de

posición, incluyendo todas las ventanas.

De manera más detallada, siguiente figura 37 nos muestra la gráfica de las

señales de interés, es decir, de la referencia contra la salida en posición. En esta

figura se puede apreciar la respuesta críticamente amortiguada de nuestro sistema

de segundo orden respecto a una entrada escalón. Es decir podemos observar

que el control se realiza correctamente.

Page 87: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

83

Figura 43.- Gráfica en tiempo real de la referencia contra la salida en posición,

utilizando un controlador PID.

También de manera detallada, en la siguiente figura 38 se muestra la

gráfica del error entre la señal deseada en posición y la salida real del sistema,

aquí se observa que prácticamente solo existe error cuando cambia la señal de

referencia, es decir en el estado transitorio, y que en el estado estacionario es

error es prácticamente cero.

Figura 44.- Gráfica de la señal de error para el control de posición.

Page 88: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

84

V.3.- Control en posición en tiempo real de un brazo robótico:

De manera similar al trabajo presentado en el inciso anterior, en este

apartado se presentan los resultados experimentales del control en posición con

un controlador PID. Solo que en esta parte se le agregó al servomecanismo un

pequeño brazo robótico.

No es el objetivo de esta tesis presentar el modelo matemático del brazo.

No obstante se consideró importante probar nuestra plataforma con un mecanismo

de este tipo. Al respecto, puede observar que fue posible controlarlo muy bien con

un controlador PID.

En este caso los valores de las ganancias que nos permitieron el mejor

desempeño del controlador son: y las que no

parecidas a las utilizadas en la simulación llevada a cabo en el capítulo anterior,

dado que en este caso estamos controlando un bracito robótico.

Lo anterior se puede verificar en la siguiente pantalla de la computadora

personal corriendo en tiempo real.

Figura 45.- Pantalla completa de la computadora personal con el control de

posición de un brazo robótico.

En la siguiente figura 40 se muestra la gráfica de las señales de interés, es

decir, de la referencia contra la salida en posición del brazo. En esta figura se

Page 89: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

85

puede apreciar la respuesta críticamente amortiguada de nuestro sistema de

segundo orden respecto a una entrada escalón.

Figura 46.- Gráfica en tiempo real de la referencia contra la salida en posición del

brazo robótico, utilizando un controlador PID.

También de manera detallada, en la siguiente figura 41 se muestra la

gráfica del error entre la señal deseada en posición y la salida real del sistema,

aquí se observa que prácticamente solo existe error cuando cambia la señal de

referencia, es decir en el estado transitorio, y que en el estado estacionario el error

es prácticamente cero.

Figura 47.- Gráfica de la señal de error para el control de posición para un

brazo robótico.

Page 90: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

86

V.4.- Seguimiento de una trayectoria senoidal:

Existen dos problemas fundamentales en el Control Automático; la

regulación y el seguimiento de una trayectoria. La regulación la podemos

entender como el sostenimiento de una señal en determinado punto por un lapso

de tiempo determinado. Es decir como el control en posición. El seguimiento de

una señal no requiere mayor explicación.

En este apartado presentamos los resultados experimentales del

desempeño de nuestra plataforma realizando el seguimiento de una señal de

referencia senoidal. El experimento fue realizado con el brazo robótico.

La siguiente figura 42 nos muestra el desempeño de nuestra plataforma

tratando de seguir una señal senoidal de amplitud 1 (una vuelta), con un

controlador PID. Se observa un buen desempeño de la señal de salida, solamente

que con un pequeño desfasamiento. La sintonización del controlador utilizada en

este caso es : .

Figura 48.- Grafica del seguimiento de una señal senoidal con un controlador PID.

Se puede verificar también el desempeño de la plataforma y del controlador

en la siguiente figura 43, donde se muestra el error en el seguimiento.

Page 91: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

87

Figura 49.- Error de seguimiento de una señal senoidal.

V.5.- Conclusiones:

En la parte de hardware de la plataforma de enseñanza podemos concluir

que la utilización del DSC (dsPIC30F4012) nos permite reducir la cantidad de

circuitos y por lo tanto el tamaño de la tarjeta electrónica principal. De esta manera

el problema de diseño de la plataforma se traslada a un problema de

programación, como es la tendencia en la actualidad y debemos tenerlo presente.

La plataforma tiene integrado también, en un espacio muy reducido, el

servomotor y el amplificador de potencia para moverlo, así como los aislamientos

de la etapa digital del microcontrolador con la etapa de potencia, lo cual la hace

ver como un producto muy pequeño, modular y completo.

Este DSC es además de la serie motor control (MC), por lo que cuenta con

módulos especializados para el control de motores, como el lector de

codificadores de posición ópticos y las salidas de control PWM, lo cual le permite

hacer las veces de una mini tarjeta de adquisición de datos, permitiéndonos

prescindir de ella para poder realizar el control en tiempo real, como lo podemos

constatar a partir de los resultados mostrados en el capítulo anterior.

Se comprobó también que el DSC corriendo a 29.49 MIPS realiza de

manera holgada y sin ningún problema todas las tareas que se le han

programado, cumpliendo con el periodo de muestreo que el controlador le

requiere. La limitación que se tendría en este sentido, sería debida a la velocidad

máxima de comunicación del puerto serie de la computadora personal.

Page 92: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

88

Actualmente el DSC dsPIC30F4012 utilizado tiene un costo de 5.87 USD.

Lo anterior nos permite contar con una plataforma de control de bajo costo, como

lo planteamos en los objetivos de este trabajo.

Mediante el estudio de los resultados del trabajo precedente, se ha

comprobado también que es posible enlazar el software de tiempo real de

Simulink con nuestra plataforma y realizar control, sin que se presente problema

alguno.

En consecuencia se puede programar cualquier ley de control que Simulink

permita, probarla con nuestra plataforma de enseñanza y desarrollar diferentes

dispositivos mecatrónicos.

Finalmente podemos decir que los objetivos de la tesis fueron cumplidos, ya

que en es posible desarrollar este tipo de plataformas de bajo costo, para

contribuir a una mejor enseñanza práctica del control automático,

V.6.- Trabajo futuro:

Como trabajo futuro se propone, antes que todo, que la plataforma pueda

ampliarse para controlar varios servomecanismos a la vez, es decir que pueda

cerrar varios lazos de control. Para esto se requeriría utilizar algún dsPIC de la

segunda generación, como el dsPIC33FJ128MC804; el cual cuenta con dos

módulos para lectura de codificadores de posición ópticos, dos salidas analógicas,

varias salidas PWM, y varias entradas analógicas.

También es importante utilizar en la plataforma algún puerto de

comunicación alámbrico más rápido y más actual, dado que el puerto serie que

utilizamos en este trabajo, están empezando a dejar de ser incluido en algunas de

las computadoras personales más actuales. Para resolver este problema a futuro,

proponemos que se rediseñe la plataforma con el puerto de comunicación USB

2.0 en el modo high speed o con el USB 3.0.

En el aspecto del control, sería importante probar el desempeño de la

plataforma con algunas otras leyes de control.

La plataforma también podría ser habilitada para comunicarse con la

computadora personal de modo inalámbrico. Por ejemplo, agregándole un módulo

bluetooth, ampliando de esta manera su campo de aplicación.

Page 93: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Capítulo V: Control en tiempo real

89

Se puede utilizar un microcontrolador con puerto Ethernet para entrar a los

campos de la telepresencia o telecontrol, lo cual nos permitiría controlar algún

servomecanismo a distancia o desde una página web.

El dsPIC que estamos usando también cuenta con del puerto CAN, el cual

nos permitiría hacer aplicaciones de control de servomotores en ambientes de

mucho ruido eléctrico, como en automóviles, ya que canal CAN trabaja la

comunicación en modo diferencial.

Es también evidente que el prototipo de la plataforma puede utilizarse para

el diseño de los diferentes servomecanismos que se requieran como productos

finales.

Por otra parte, todas las tareas que se realizan fuera del DSC, como el

controlador completo, el cálculo de la velocidad, etc. pueden ser discretizadas y

embebido en el dsPIC. En este caso trabajaría como un módulo de control

completo e independiente de la computadora personal, o usar ésta solo para la

sintonización del controlador y el despliegue de las variables de control.

En la parte de programación se podría desarrollar la plataforma para

trabajar con software libre. Por ejemplo Linux, lo cual eliminaría los costos de las

licencias.

En este mismo sentido, sería conveniente utilizar otro software para el

control de tiempo real, esto en sustitución del Ardence-Wincon, ya que este

paquete tiene un costo más o menos elevado y es un tanto inaccesible para las

escuelas públicas de educación superior del ramo. Proponemos algunos de los

targets que vienen incluidos como toolbox de Matlab, por ejemplo el xPC Target o

Real-Time Windows Target.

Page 94: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

90

Bibliografía y Páginas Web:

[1].- Eugene B. Canfield, Electromechanical control systems and devices, Ed.

Krieger ,1987.

[2].- Benjamin C. Kuo, Automatic Control Systems, Eigth Edition, Edit. Adison Wiley

[3].- Katsuhiko Ogata, Ingeniería de Control Moderno 4ª. Edición, Edit. Pearson,

Prentice Hall.

[4].- SORIA A.; GARRIDO, R. & CONCHA A.- “Low Cost Closed loop Identification of a DC Motor”. International Conference on Electrical Engineering, Computing Science and Automatic Control (CCE 2010). Del 8-10 de septiembre de 2010. Tuxtla Gutiérrez, Mexico.

[5].- C++ Programing Languaje, Bjarne Stroustrup, 1981

[6].- The C Programing Languaje, Brian W. Kernighan

[7].- dsPIC30F4011/4012 Data Sheet, Microchip

[8].- dsPIC Language Tools Libraries, Microchip

[9].- Family Reference Manual dsPIC30, Microchip

[10].- dsPIC30F/33F Programer`s Reference Manual, Microchip

[11].- dsPIC Diseño práctico de aplicaciones, José María Angulo Usategui, Aritza Etxebarría Ruiz, Ignacio Angulo Martínez, Iván Trueba Parra, Mc Graw Hill 2008.

[12].- Estudio comparativo de métodos de identificación en lazo cerrado para un

servomecanismo, Antonio Concha Sánchez, Tesis de Maestría, CINVESTAV,

2009.

[13].- The Mechatronics Control Kit for education and control, Mark W. Spong,

Daniel J. Block and Karl Åström, IEEE International Conference on Control

Aplications 2001.

[14].- Control en posición de servomecanismos de corriente directa, José Luis

López Mercado, Tesis de Maestría, CINVESTAV, 2005.

[15].- http://www.beyondlogic.org/epp/epp.htm

[16].- http://www.beyondlogic.org/serial/serial.htm#14

Page 95: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

91

Anexo A:

Diagrama eléctrico de la fuente de alimentación:

Title

Size Document Number Rev

Date: Sheet of

José de Jesús Meza Serrano 1.0

FUENTES para la ENTREFAZ EPP-dsPIC-PUENTE "H"

A

1 1Tuesday , June 07, 2011

J3

5v . Puente "H"

12

J2

5v . dsPIC

12

J1

32V. SERVOMOTOR

12

+

C30.1 uF

U5LM7805/TO

VIN1

GN

D3

VOUT2

U4LM7805/TO

VIN1

GN

D3

VOUT2

35v . 35v .

+

C62200 uF

+-

D11

PUENTE DE DIODOS

4

1

2

3

T1

TRANSFORMADOR

1 5

6

4 8

JP1SWITCH 127VAC 10 amp.

.1

.2

.3

.4

J1CONECTOR AC

12

3

SI1

FUSIBLE 250VCA 3amp.

+

C20.1 uF+

C15000 uF

35v

+

C30.1 uF

+

C30.1 uF35v .

35v .

2W005M

2W005M

C I N V E S T A V

R13.3k. 1/4w.

R2470 1/4w.

R1470 1/4w.

127VCA - 24VCA, 2 amp.

D16

LED

D15

LED

D14

LED

1

0

CP1004

50v .

+-

D12

PUENTE DE DIODOS

41

23

T2

TRANSFORMADOR

1 5

6

4 8

+

C42200 uF

127VCA - 9VCA, 300 mamp.

+

C50.1 uF

+-

D13

PUENTE DE DIODOS

4

1

2

3

T3

TRANSFORMADOR

1 5

6

4 8

35v

127VCA - 9VCA, 300 mamp.

50v .

Page 96: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

92

Anexo B:

Diagrama electrónico de la tarjeta principal con el dsPIC30F4012:

JP3PUERTO SERIE

1 2 3 4 5

Title

Size Document Number Rev

Date: Sheet of

José de Jesús Meza Serrano 1.0 D

ENTREFAZ SERIAL dsPIC-PC con Puente H para Plataforma de Eseñanza

A

1 1Tuesday , June 07, 2011

5 V

5 V

5 V

JP1CODIFICADOR DE POS.

1 2 3 4 5

5 V

SW1

JP2DEPURADOR

1 2 3 4 5

R2

4.7K.

U2

PUENTE "H" LMD18200

BOOTSTRAP 11

OUTPUT 12

BRAKE INPUT4

PWM INPUT5

DIR. INPUT3

Vs POWER S.6

GROUND7

CURRENT SENSE OUT.8

THERMAL FLAG OUT.9

OUTPUT 210

BOOTSTRAP 211

C510nf .

C41200 uf .

R31K.

C610nf .

C3 0.1 uf .

C7

4 uf .

C I N V E S T A V

U3

dsPIC30F4012

MCLR/Vpp1

EMUD32

EMUC33

AN24

AN35

AN46

AN57

Vss8

OSC19

OSC210

U1ATX11

U1ARX12

Vdd13

EMUD214

EMUC215

FLTA16

PGD17

PGC18

Vss19

Vdd20

PWM3H21

PWM3L22

PWM2H23

PWM2L24

PWM1H25

PWM1L26

AVss27

AVdd28

C8

0.1 uf .

7.37MHz

C233 pf .

C1

33 pf .

J1GND, 5v . PIC

12

J2GND, 30v . POT

12

R1 10K.

5 V

5 V

PGC

J3

SALIDA MOTOR

12

Page 97: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

93

Anexo C:

Circuito impreso de la tarjeta electrónica principal, lado componentes.

Anexo D:

Costos del Software de la plataforma:

Los precios de las licencias que se presentan a continuación son grupales y

para uso académico, el grupo es de 25 usuarios. Exceptuando la de Visual Studio

que es por máquina.

PARTIDA PRODUCTO TERMINO PRECIO ($USD)

1 Suite Matlab,Simulink, Symbolic Math Toolbox

Perpetua 1,375

2 Real-Time Workshop Perpetua 750

3 WinCon 5.2 Perpetua 500

4 Ardence 7.0 Perpetua 500

5 Visual Studio 2008 Anual 38

Total 3,163

Page 98: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

94

Anexo E:

Parámetros y características del DSC dsPIC30F4012:

Parameter Name Value

Architecture 16-bit

CPU Speed (MIPS) 30

Memory Type Flash

Program Memory (KB) 48

RAM Bytes 2,048

Temperature Range C -40 to 125

Operating Voltage Range (V) 2.5 to 5.5

I/O Pins 20

Pin Count 28

System Management Features PBOR, LVD

Internal Oscillator 7.37 MHz, 512 kHz

nanoWatt Features Fast Wake/Fast Control

Digital Communication Peripherals 1-UART, 1-SPI, 1-I2C

Analog Peripherals 1-A/D 6x10-bit @ 1000(ksps)

CAN (#, type) 1 CAN

Capture/Compare/PWM Peripherals 4/2

Motor Control PWM Channels 6

Quatrature Encoder Interface (QEI) 1

Timers 5 x 16-bit 2 x 32-bit

Parallel Port GPIO

Hardware RTCC No

DMA 0

Features:

High-Performance Modified RISC CPU:

Modified Harvard architecture

C compiler optimized instruction set architecture

84 base instructions with flexible addressing modes

24-bit wide instructions, 16-bit wide data path

16 x 16-bit working register array

Up to 30 MIPs operation:

- DC to 40 MHz external clock input

- 4 MHz-10 MHz oscillator input with PLL active (4x,

8x, 16x)

Peripheral and External interrupt sources

8 user selectable priority levels for each interrupt

Page 99: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

95

4 processor exceptions and software traps

Primary and Alternate interrupt Vector Tables

DSP Engine Features:

Modulo and Bit-Reversed Addressing modes

Two, 40-bit wide accumulators with optional saturation

logic

17-bit x 17-bit single cycle hardware fractional/ integer

multiplier

Single cycle Multiply-Accumulate (MAC) operation

40-stage Barrel Shifter

Dual data fetch

Peripheral Features:

High current sink/source I/O pins: 25 mA/25 mA

Optionally pair up 16-bit timers into 32-bit timer modules

3-wire SPI™ modules (supports 4 Frame modes)

I2C™ module supports Multi-Master/Slave mode and 7-bit/10-

bit addressing

Addressable UART modules with FIFO buffers

Motor Control PWM Module Features:

Complementary or Independent Output modes

Edge and Center Aligned modes

Multiple duty cycle generators

Dedicated time base with 4 modes

Programmable output polarity

Dead time control for Complementary mode

Manual output control

Trigger for synchronized A/D conversions

Quadrature Encoder Interface Module Features:

Phase A, Phase B and Index Pulse input

16-bit up/down position counter

Count direction status

Position Measurement (x2 and x4) mode

Programmable digital noise filters on inputs

Alternate 16-bit Timer/Counter mode

Interrupt on position counter rollover/underflow

Analog Features:

10-bit 1 Msps Analog-to-Digital Converter (A/D)

A/D Conversion available during Sleep and Idle

4 Sample/Hold Channels

Multiple Conversion Sequencing Options

Special Microcontroller Features:

Enhanced Flash program memory:

- 10,000 erase/write cycle (min.) for industrial

temperature range, 100K (typical)

Data EEPROM memory:

- 100,000 erase/write cycle (min.) for industrial

temperature range, 1M (typical)

Self-reprogrammable under software control

Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator

Start-up Timer (OST)

Flexible Watchdog Timer (WDT) with on-chip low power RC

Page 100: DISEÑO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

Bibliografía, páginas web y apéndices

96

oscillator for reliable operation

Fail-Safe clock monitor operation

Detects clock failure and switches to on-chip low power RC

oscillator

Programmable code protection

In-Circuit Serial Programming™ (ICSP™)

Programmable Brown-out Detection and Reset generation

Selectable Power Management modes

- Sleep, Idle and Alternate Clock modes

CMOS Technology:

Low power, high speed Flash technology

Wide operating voltage range (2.5V to 5.5V)

Industrial and Extended temperature ranges

Low power consumption