Vous êtes sur la page 1sur 100

DISEO, CONSTRUCION Y PRUEBA DE UNA PLATAFORMA DE

PROTOTIPAJE RPIDO Y DE BAJO COSTO PARA LA ENSEANZA


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

AGRADECIMIENTOS

A mi madre Brgida Serrano Romero por su amor infinito.


A mi padre Enrique Meza Garca por sus enseanzas.
A mi esposa Ma. Ricarda Cano Hernndez por la gran dedicacin a la educacin y
cuidado de nuestras hijas.
A mis hijas Mara Elena y Karla Itzel, lo que ms quiero en la vida.
A la pequea Emma Sofa.
A mi hermano Daniel Javier Meza Serrano por su apoyo en los momentos difciles.
A toda mi familia.
A los Drs. Rubn Alejandro Garrido Moctezuma y Alberto Soria Lpez por su
apoyo y asesoras.
Al pueblo de Mxico que pag mi formacin acadmica en una institucin como el
Instituto Politcnico Nacional.
Al pueblo de Mxico que ha permitido la creacin de instituciones acadmicas de
alto nivel como el Centro de Investigacin y Estudios Avanzados, donde trabajo.
A todos los compaeros que luchan, sin descanso y a fondo, por un futuro mejor.

INDICE
AGRADECIMIENTOS: ..I
INDICE: II
CAPITULO I: OBJETIVOS, INTRODUCCION DE TERMINOS, ANTECEDENTES,
JUSTIFICACION Y MARCO REFERENCIAL ..........1
I.1.- Objetivos .....1
I.2.- Introduccin de trminos ..3
I.3.- Antecedentes .....4
I.4.- Justificacin ........8
I.5,- Marco referencial ..11
I.6.- Organizacin 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 programacin 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.- Circuitera .35
III.1.1.- Servomotor ...35
III.1.2.- Electrnica de potencia ..36
III.1.3.- Fuentes de alimentacin ....37
III.1.4.- Trasladador de niveles ...38
III.1.5.- Tarjeta principal con el dsPIC30F4012 ...40
III.2.- Programacin en cdigo y configuracin ...42
III.2.1.- Programacin del dsPIC 43
III.2.1.1.- Configuracin general ....45
III.2.1.2.- Comunicacin serie ....46
III.2.1.3.- Generacin de la seal de control por
modulacin en ancho de pulso .49
III.2.1.4.- Medicin de la posicin angular ...51
III.2.1.5.- Medicin de la corriente en el servomotor .....54
III.2.1.6.- Rutinas de atencin a interrupciones ...57
III.2.2.- Programacin de la funcin S para Simulink ......58
III.2.3.- Apertura del puerto serie en Windows XP ..60

II

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


IV.1.- Generalidades de los motores de corriente directa ....62
IV.2.- Modelo matemtico de un motor de corriente directa controlado
por armadura ..............64
IV.2.1.- Identificacin de los parmetros 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.- Simulacin .77
CAPITULO V: CONTROL EN TIEMPO REAL ..79
V.1.- Control de velocidad en tiempo real del servomecanismo 79
V.2.- Control de posicin en tiempo real del servomecanismo ..81
V.3.- Control de posicin en tiempo real de un brazo robtico ...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 electrnico de la fuente de alimentacin .90
b) Diagrama electrnico de la tarjeta principal con el dsPIC30f4012 91
c) Circuito impreso de la tarjeta electrnica principal ...92
d) Costos del Software de la plataforma .92
e) Caractersticas del microcontrolador dsPIC30F4012 ..93

III

CAPITULO I.- OBJETIVOS, INTRODUCCION DE TERMINOS,


ANTECEDENTES, JUSTIFICACION Y MARCO REFERENCIAL
En este captulo hablaremos de los objetivos, antecedentes, motivaciones y
justificaciones del trabajo realizado. Tambin definiremos algunas palabras clave
que se usarn 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 tecnologas, para poder valorar de manera ms objetiva el trabajo que aqu
se presenta.
Para finalizar este captulo se explica la idea que defini la organizacin y la
secuencia de todos los captulos de este manuscrito.

I.3.- Objetivos:
El presente trabajo de tesis tiene como objetivo general contribuir a la solucin
de dos problemas fundamentales en la enseanza del control automtico. El
primero se refiere al enfoque puramente abstracto que se le da a dicha enseanza
en la mayora de las escuelas de nivel licenciatura y centros de investigacin,
donde se estudia el control automtico y sus reas de aplicacin. El segundo
problema tiene que ver con la falta de recursos econmicos para la instalacin de
laboratorios que permitan proporcionar soporte experimental y concrecin prctica
a los conceptos tericos.
Para tal efecto, se pretende disear, integrar, construir y probar el equipo que
se reporta en el presente trabajo, este dispositivo ha sido denominado; plataforma
de prototipaje rpido y de bajo costo para la enseanza experimental del control
automtico.
Entenderemos como parte de nuestra plataforma a toda la circuitera y la
programacin que nos permita realizar el control en tiempo real de un
servomecanismo de C.D.
En este contexto, el trabajo tiene varios objetivos especficos que se fueron
desarrollando en el orden requerido para cumplir con el objetivo general de este
trabajo.
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

1.- Definir los alcances y caractersticas que debera tener la plataforma: Para
esto se decidi que sera 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
opcin de trabajar el servomecanismo en modo par. Tambin se decidi que la
comunicacin entre la tarjeta principal y la computadora personal sera por el
puerto serie. Con estas definiciones se pas a seleccionar el dsPIC adecuado.
2.- Seleccionar el motor adecuado, en concordancia con las caractersticas del
amplificador de potencia: Con estos dos aspectos definidos y con el dsPIC
seleccionado, se procedi a hacer el diseo de circuito electrnico completo de la
tarjeta principal, as como del circuito impreso correspondiente. Tambin se
decidi el montaje mecnico del motor, y que tipo de codificador de posicin ptico
sera usado, considerando que este debera ser acoplado a la flecha del motor.
3.- Armar varias tarjetas impresas.
4.- Disear y construir las fuentes de alimentacin y los trasladadores de nivel
para la comunicacin 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 libreras disponibles para cubrir nuestros requerimientos. Esto
implic la instalacin del compilador C30, as como el conocimiento exhaustivo de
los mdulos del dsPIC a ser programados, el manejo de interrupciones, y la
depuracin de los programas incluidos en el proyecto.
6.- Programar y probar la funcin S o driver para la comunicacin entre
Simulink y el dsPIC: Para esto fue necesario conocer que es una funcin S y
manejar a nivel de registros la forma de configurar el puerto serie de la
computadora personal. Adems se requiri de abrir el puerto en Windows XP
mediante la aplicacin 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 desempeo de la plataforma controlando diferentes variables y
con distintas leyes de control, para obtener y analizar los resultados y deducir
conclusiones.
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

I.1.- Introduccin de trminos:


En el presente documento expondremos los antecedentes, el diseo,
construccin y prueba del prototipo, al cual hemos denominado, plataforma de
prototipaje rpido y de bajo costo, para la enseanza experimental del control
automtico. Para tal efecto, se hace necesario introducir algunos trminos que
consideramos importantes y que podran no quedar muy claros a lo largo de este
documento.
Adquisicin de datos: nos referiremos a esta rea, cuando hablamos del
proceso de acondicionamiento, muestreo y conversin de seales analgicas a
digitales, digitales a analgicas, para que puedan ser manipuladas en una
computadora personal, en un procesador de seales o en cualquier
microcontrolador. En este sentido una tarjeta de adquisicin de datos es una
interfaz, entre el mundo real y algn tipo de procesador, que sea capaz de llevar a
cabo las funciones indicadas.
Tiempo real en control: en nuestro concepto es el tiempo mnimo requerido
para el muestreo de una seal, la reconstruccin y su procesamiento (control),
segn el teorema de muestreo de Nyquist-Shannon.
En el mbito del Control Automtico, hablamos de tiempo real cuando
hacemos alguna simulacin en computadora, o cuando controlamos fsicamente
algn proceso. En el primer caso, cada uno de los pasos de una simulacin 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 seales debe realizarse con un paso fijo, externo al sistema
operativo de la computadora, que rena los requisitos mencionados para ser
considerado como control en tiempo real.
Servomotor: un motor al cual se le coloca algn dispositivo para conocer y
tener la posibilidad de realimentar su o sus principales variables de salida, es decir
su posicin o velocidad angular, es un servomotor.
Sistema embebido: cuando contemos con un equipo, con un procesador digital
de seales o un microcontrolador, el cual tenga programadas una serie de
actividades, las que juntas constituyan un sistema completo; como el muestreo de
seales, el procesamiento de las mismas, la comunicacin, el control y la
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

generacin de seales actuantes, nos estaremos refiriendo a l, como un sistema


embebido.
Prototipo: es una versin previa o preliminar de algn producto. Nosotros nos
referimos a la plataforma desarrollada y reportada en el presente trabajo, como; de
prototipaje rpido, porque consideramos que an es un prototipo y que en poco
tiempo y con facilidad se puede contar con un sistema servomecnico o
mecatrnico, que le permita al interesado, contar con un kit de prueba, porttil y de
bajo costo, como herramienta didctica, auxiliar, en la enseanza del control
automtico.
Target (nucleo) de tiempo real: Es un programa de aplicacin que nos permite
correr un cdigo en pseudotiempo real en el sistema operativo de la computadora
personal con la que estmos trabajando. En nuestro caso se corre un cdigo de
control respetando el periodo de muestreo que se requiere. Estas aplicaciones son
tambin llamadas, en programacin, kernel, las que actan como un cliente de
otra aplicacin llamada servidor.

I.2.- Antecedentes:
Desde la creacin de la Seccin de Control Automtico del Departamento de
Ingeniera Elctrica del Centro de Investigacin y de Estudios Avanzados del
Instituto Politcnico Nacional (CINVESTAV), hace ya ms de 30 aos, sta se
acompa de un Laboratorio donde se pudieran probar algunas de las diferentes
leyes y estrategias de control que se venan investigando. Para tal efecto fue
indispensable contar con diferentes equipos, tarjetas de adquisicin de datos,
plataformas de programacin, sensores, etc. para realizar el control en tiempo real
de dichos equipos.
Con el paso del tiempo la Seccin de Control Automtico 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 Enseanza, donde los estudiantes de postgrado pudieran recibir la
parte prctica que se requiere como complemento a una necesaria formacin
terica.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

Como resultado de esta iniciativa, desarrollamos una primera versin de la


plataforma servomecnica para la enseanza del control automtico. Nuestro
Laboratorio de Enseanza cuenta con cuatro plataformas, las que se vienen
utilizando hasta la fecha, con pequeas modificaciones, para dar atencin
simultnea a ocho estudiantes de postgrado en algunos de los cursos de maestra,
y en otros introductorios, as como en diferentes trabajos de tesis de maestra y
doctorado.
A continuacin presentamos las generalidades de la primera versin de la
plataforma de enseanza que se construy en el CINVESTAV.
En la siguiente figura 1 se muestran esquemticamente las componentes de la
plataforma original.

Figura 1.- Esquema de la Plataforma de Enseanza 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: generacin de
la seal de referencia (consigna o set point), el punto de resta para la obtencin de
la seal de error (sumador o restador) y la ley de control, se encuentran dentro de
ste.
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

El bloque PC Client (Cliente) es otra computadora que ejecuta un ncleo o


kernel en tiempo real. El programa de usuario que se carga en el Kernel permite la
interaccin con el hardware externo a travs de una tarjeta de adquisicin de
datos para realizar las siguientes funciones; el muestreo peridico de la seal o
seales de salida de la planta, y el envo de la seal de control.
La planta es un motor de corriente directa con escobillas, controlado por
armadura y est representada por el bloque circular. Tambin se consideran como
parte de la planta el bloque ISO124, que es un aislamiento galvnico capacitivo
para seales analgicas, y el bloque CSE, que es un servoamplificador de
potencia con realimentacin en corriente y con salida modulada en ancho del
pulso (PWM).
La parte del sensado de las seales de salida en posicin y/o en velocidad
angulares, la lleva a cabo el bloque codificador de posicin ptico incremental y el
bloque ETACH2 (convertidor de frecuencia a voltaje). El primero mide en pulsos la
posicin angular y el segundo nos entrega un voltaje analgico proporcional a la
velocidad del servomecanismo. Como se observa en la figura 1, estas seales 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 programacin de las leyes de control, a ser probadas, se desarrolla en el
servidor, mediante los bloques de Simulink, ah tambin se realiza el despliegue y
la visualizacin de las variables de control, a travs de sus interfaces grficas de
usuario.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

Figura 2.- Imgenes reales de la plataforma de enseanza original.


Funcionalmente este tipo de plataformas de enseanza han sido eficientes;
nos han permitido impartir, durante varios aos, un curso experimental
cuatrimestral a nivel de maestra, y nos han permitido realizar una gran cantidad
de experimentos necesarios para sustentar varios artculos de investigacin. Sin
embargo existen algunos problemas de operacin que se presentan con el tiempo
y para algunas aplicaciones. De entre ellos podemos mencionar que las tarjetas
de adquisicin de datos, llamadas Servotogo II, adems de ser importadas, estn
diseadas para bus ISA, el cual ya no se incluye en la mayora de las
computadoras personales desde hace varios aos.
La solucin que se encontr a este problema fue utilizar tarjetas de adquisicin
de datos ms recientes, para bus PCI, optndose 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 da, ya que solamente esta tarjeta, es ms cara que toda la
plataforma de enseanza original.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

Existen en el mercado otras tarjetas de adquisicin de datos. Por ejemplo de


National instruments, pero son caras y la mayora de ellas no leen codificadores
de posicin pticos en cuadratura, por lo que no son muy adecuadas para hacer
control en posicin de servomecanismos.
Estos fueron los problemas principales y los antecedentes que dieron origen a
la plataforma de enseanza que presentamos en el presente trabajo. Dicha
plataforma tiene una filosofa totalmente diferente en el hardware. Esencialmente
es de bajo costo, ya que prescinde de la tarjeta de adquisicin de datos, adems
de ser mucho ms compacta y porttil.

I.2.- Justificacin:
Dado que una de los objetivos del presente trabajo es la reduccin del costo
de la plataforma de enseanza 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
1
1
2
3

1
1

4
5

1
1

6
7

1
2

DESCRIPCION
Tarjeta de adquisicin de datos
Servotogo II
Aislamiento analgico galvnico
Servo amplificador de potencia
PWM Copley Controls
Motor de C.D.
Sensor de posicin ptico
incremental
Convertidor de frecuencia a voltaje
Computadoras personales

COSTO
15,000.00

COSTO TOTAL:

60,500.00

2,000.00
10,000.00
2,000.00
4,000.00
3,500.00
24,000.00

Tabla 1.- Costo de las componentes de la Plataforma de Enseanza Original

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

No obstante que la cotizacin anterior no incluye los costos de desarrollo de la


plataforma, y los componentes indicados ya son de econmicos, el costo total de
sta no es accesible para la mayora de las escuelas de educacin superior
pblica ni para los centros de investigacin, sobre todo si se considera que en un
laboratorio de enseanza o experimentacin debe contarse con varias plataformas
de este tipo.
Por otra parte, nuestra plataforma de enseanza est basada en una tarjeta
de circuito impreso que tiene como elemento central al microcontrolador de
seales digitales (DSC) dsPIC30F4012 30I/SP, el cual hace las veces de tarjeta
de adquisicin de datos, y acta como acondicionador de seales e interface de
comunicacin entre el controlador y la planta.

Fig. 3.- Plataforma de enseanza de bajo costo.


La plataforma de enseanza es completada solamente por una computadora
personal (PC) que acta como servidor y cliente, y un servomotor pequeo que se
encuentra fijado a un ngulo metlico junto con la tarjeta principal.
El control en tiempo real tambin se realiza en la PC desde Matlab-SimulinkWincon-RTX, al igual que en la plataforma original.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

10

La planta es un motor de corriente directa con escobillas al que se le ha


acoplado, mecnicamente, en la flecha un codificador de posicin ptico
incremental, para habilitarlo como servomotor.
El dsPIC y la computadora personal se transfieren de manera bidireccional las
seales requeridas para cerrar el lazo de control, dicha comunicacin se puede
llevar a cabo indistintamente a travs del puerto paralelo o del serie; por lo que la
comunicacin de datos es almbrica y digital en forma de bytes.
La salida en posicin angular del servomotor es sensada mediante el
codificador de posicin ptico incremental y llevada al dsPIC, donde es
decodificada para ser transmitida al controlador; esta seal es realimentada para
cerrar el lazo de control en la PC. Despus de ser manipulada por el controlador,
se obtiene la seal de control (u(t)), la cual se enva de regreso al dsPIC en la
tarjeta, para ser convertida a seales elctrica del tipo PWM, las que excitan al
servomotor, logrando controlar la posicin o velocidad segn se desee.
La seales 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 tambin 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 Enseanza que hemos descrito y
que fue desarrollada en el presente trabajo, es el siguiente:

No. CANTIDAD
1
1
2
1
3
1
4
1
5
6
7

1
1
1

DESCRIPCION
Motor de CD Dynetic Systems
Sensor de posicin ptico
DsPIC30F4012
Amplificador tipo puente H
LMD18200
Circuitera electrnica y PCB
Computador personal
Transceptor MAX232

COSTO
360.00
720.00
50.00
100.00
400.00
12,000.00
100.00

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

11

COSTO TOTAL:

13,730.00

Tabla 2.- Costo de las componentes de nuestra plataforma de enseanza de


bajo costo.
Si comparamos funcionalmente nuestra plataforma con la plataforma de
enseanza original, que se describi en el apartado anterior, podremos notar lo
siguiente: en el caso de la plataforma original, la tarjeta de adquisicin de datos
nos proporciona mayor capacidad de manejo de seales analgicas y digitales,
pudiendo controlar sistemas ms 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 ms poderosa.
Donde se nota claramente la diferencia, es en el precio; en este aspecto
observamos una relacin casi de 5:1, siendo ms cara la plataforma original con
respecto a nuestra Plataforma.
Tambin nuestra plataforma es mucho ms compacta y portable,
permitindonos el aprendizaje y desarrollo de las diferentes ingenieras
relacionadas, por ser un sistema abierto.
Lo antes expuesto deja claramente manifiestas la motivacin y al inters de
desarrollar una plataforma para la enseanza de bajo costo,
y justifica
plenamente el presente trabajo.
El desarrollo del prototipo tambin se justifica por que ha permitido el trabajo
especializado e interdisciplinario de las ingenieras; electrnica, mecnica, de
control y de programacin; contribuyendo por este solo hecho al desarrollo de las
mismas especialidades.

I.2.- Marco referencial:


Actualmente existe una gran tendencia a disear tarjetas de desarrollo
basadas en microcontroladores. La mayora de estas plataformas estn ligadas a
algn software en particular, y se usan como plataformas para enseanza; aunque
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

12

tambin se pueden usar como kits de desarrollo de sistemas mecatrnicos 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 propsito de contextualizar el preste trabajo y evaluar su
importancia y originalidad.
A continuacin 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 sintonizacin de estos.
Tambin se puede desarrollar modelado, controles de velocidad y posicin.
Adems es posible experimentar con tcnicas de control analgico, digital o
embebido.
Est diseado para simplificar el desarrollo de controladores embebidos, por lo
que cuenta con comunicacin 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 mdulos especializados para lectura de
codificadores de posicin pticos, ni para generar seales PWM; no obstante es
una buena herramienta didctica orientada a ejemplificar la enseanza del control
automtico.
b ) Microchip Mechatronics Kit:
Es un Kit de demostracin que tiene un enfoque prctico para aprender
mecatrnica. 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 caractersticas principales
estn, el control de velocidad de motores a pasos y de CD con escobillas.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

13

El microcontrolador puede ser conectado a varios componentes en la tarjeta,


como son sensores; LEDs, seales del cuerpo humano y drivers para motor. La
tarjeta viene con nueve ejemplos prcticos, 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 caractersticas
especiales para control de motores (MC) como son los mdulos QEI y PWM,
adems es lento y no cuenta con el poder de clculo de un Controlador de
Seales Digitales (DSC); si algo se pudiera rescatar del kit es la idea de un
producto didctico con prcticas bien elaboradas.
c) NI EL VIS ( National Instruments ):
La NI EL VIS es una plataforma educativa, y para hacer diseo de prototipos,
est soportado por un conjunto de instrumentos virtuales y un laboratorio basado
en LabVIEW, cuenta entre sus caractersticas con un total de 12 instrumentos, con
un factor de forma compacto y es apropiado para el aprendizaje independiente.
Los educadores pueden usarlo para ensear conceptos de diseo de circuitos,
instrumentacin, control, telecomunicaciones y teora de sistemas embebidos en
MCU, en un saln de clases o en un laboratorio.
Puede utilizarse como una plataforma de aprendizaje a distancia, los temas de
la currcula son libres, los conceptos de diseo del control se implementan
conectndose externamente con los prototipos de Quanser y los de sistemas
embebidos con microcontroladores de la marca freescale.
Esta plataforma permite la experimentacin en diversas reas de la ingeniera
electrnica y mecnica, pero no cuenta con un prototipo propio. Por ejemplo, para
la enseanza 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 aos, tambin se utiliz esta plataforma para experimentos de
investigacin. Consta de dos tarjetas; la principal provista con el DSP
TMS320C6711 de Texas Instruments corriendo a 150 Mhz., y una segunda tarjeta
pequea, llamada hija, de adquisicin de datos.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

14

La tarjeta principal est provista de un puerto paralelo para comunicarse con


una computadora personal, aunque tambin se puede usar de modo
independiente. Se ha probado con varias plantas o experimentos de control; como
simples motores de DC, el pndulo inercial con volante o el Pendubot. Algunos
resultados se reporta en el artculo de investigacin13.
La desventaja de esta plataforma es que requiere de una segunda tarjeta hija
de adquisicin 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 ms 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 ms poderosas, como sta; es muy prctica 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 prcticamente una tarjeta madre de PC;
se utiliza para aplicaciones diversas como el control de brazos robticos. Cuenta
con la posibilidad y el ambiente de programacin, de alto nivel, necesario para
reprogramarla y dejarle cdigo 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, tambin para la implementacin 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 rpidas y conmutacin 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
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

15

plataforma HILINK tiene 8 entradas analgicas de 12 bits, 2 entradas de mdulos


de captura de 16 bits, 2 entradas de encoder de 16 bits, un puerto de entradas
digitales de 8 bits, 2 salidas analgicas 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 adems contiene 2 puentes H de 5 amp. de capacidad a 12v. para manejar
cargas externas pesadas. Algunas entradas y salidas estn multiplexadas para
simplificar el hardware. La tarjeta se conecta con la computadora anfitrin que
corre Matlab a travs 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 Analgica, Bloques de Entrada de Captura, Bloques
de Entrada de Encoder, Bloques de Entrada Digital, Bloques de Salida Analgica,
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 extensin de Matlab/Simulink y
de Real-Time Windows Target para optimizar la operacin de entradas y salidas
serie, y para lograr la operacin, 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 prdida de pulsos al leer los encoder, un
ancho de banda muy reducido en sus salidas analgicas y algunos errores en su
documentacin, adems de que tiene como base al dsPIC30F2012, que no cuenta
con mdulos 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 analgicas, 4 UARTs (puertos serie en
hardware), un cristal oscilador a 16MHz, conexin USB, jack para conexin a la
electricidad, un header ICSP y un botn 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 batera y
estar listo para funcionar.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

16

En cuanto a software es una plataforma de cmputo 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 autnomos e interactivos, capaz de comunicarse con
software instalado en una computadora como Flash, Processing, MaxMSP, etc.
Dada su rpida curva de aprendizaje y su bajo precio constituye una herramienta
interesante para estudiantes, maestros, diseadores y cualquier interesado en
electrnica y robtica. El software para su programacin es gratuito y puede ser
descargado para Mac OS X, Windows y Linux.
Adicionalmente a todas las caractersticas de la versin 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 mdulos especializados para leer codificadores de posicin, las
ventajas de esta tarjeta son: el software de desarrollo con que cuenta; el cual es
muy prctico y libre, y la conexin USB.
h ) Tarjetas de Rabbit de rabbit semiconductor Company:
Esta compaa produce varios microprocesadores de 8 bits de alto
desempeo, 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
programacin que utiliza para resolver proyectos que requieren operacin en
tiempo real, Dynamic C tambin permite depurar los programas en tiempo real.
Estas 3 soluciones; software, microcontrolador y depurador facilitan el desarrollo
rpido de dichos proyectos.
Cuentan con varias tarjetas que dan la posibilidad de trabajar de manera
inalmbrica. Por ejemplo, a travs de los protocolos Wi-Fi o ZigBee.
Por otra parte permiten la implementacin de un servidor HTTP para
monitorear y controlar procesos mediante una pgina Web.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

17

i ) Proyecto de adquisicin y procesamiento de datos con Matlab mediante usb


2.0 del CYCY Yucatn:
Finalmente hablaremos un poco de este proyecto, el cual solamente se
concentra en la adquisicin de datos y su despliegue en ventanas de Matlab o de
algn otro lenguaje de programacin 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, limitara la velocidad del periodo de muestreo.
Tambin como desventaja, en este caso no se contara con mdulos
especializados para lectura de codificadores de posicin pticos.
Sin embargo nos parece que la idea de manejar el puerto USB para
plataformas de control, podra tener mucho futuro, sobre todo ahora que se ha
liberado el super speed USB3.0, el cual, tericamente, 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 tambin algunos otros robots
mviles ya ms formales para investigacin, como el Kepera o el Koala, este
ltimo solamente en su tarjeta controladora de cuatro servo motores; para su
sistema de visin estreo (pan and tilt en cada una de sus cmaras), tiene
embarcados cinco PICs, cuatro para cerrar igual nmero de lazos de control en
posicin 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 enseanza de bajo costo que se
desarroll en el presente trabajo. Aunque es un prototipo y no un producto
comercial como la mayora de los que hemos descrito en este apartado; tiene
algunas ventajas significativas sobre las que existen en el mercado y que son ms
o menos de su tipo, entre ellas mencionamos por ejemplo, que no se requiere de
otra tarjeta de adquisicin de datos para hacer control, la velocidad y capacidad de
clculo 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
mdulos especializados, como el de decodificacin de sensor de posicin, y varios
mdulos de salida PWM.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin 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 enseanza del control,
y de investigacin, que se conocen. Lo antes expuesto se podr verificar en los
captulos finales de este trabajo.

I.3.- Organizacin del reporte:


El presente trabajo se ha reportado en una secuencia lgica, en lo que se
refiere a sus motivaciones, partes, ideas y conceptos, as como en su fundamento
terico, 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 Captulo 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 bibliografa.
En el Captulo II nos referimos a los elementos ms importantes que componen
la plataforma; los abordamos de manera independiente con el propsito 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 Captulo III presentamos el diseo de la plataforma en cada una de sus
partes, pero ya como parte de un todo. Agrupando dichas partes en circuitera y
programacin, en el apartado de programacin 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 Captulo IV exponemos las bases tericas del control de servo motores
de corriente directa; desde su modelado matemtico, las diferentes formas de
conexin, algunos criterios importantes de control, como la estabilidad en lazo
cerrado, la identificacin de parmetros, hasta la simulacin del controlador con el
servomotor.
Finalmente en el Captulo V presentamos los resultados experimentales ms
importantes que se han obtenido con la plataforma diseada; realizando el control
Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

19

en posicin y en velocidad del servomotor modelado. Tambin se presentan las


conclusiones y algunas perspectivas de trabajo futuro.

Captulo I: Introduccin, Antecedentes, Objetivos, Justificacin y Marco referencial

20

CAPTULO II.- ELEMENTOS DE LA PLATAFORMA


En el presente captulo II explicaremos de manera detallada los elementos de
hardware y software, ms importantes, que componen la plataforma; los
abordamos de manera independiente y en apartados, con el propsito de que se
conozcan a fondo y queden claros los diferentes aspectos que se debieron
conocer para poder realizar el diseo de la plataforma.
Dichos elementos se abordan de manera aislada en este captulo 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 desempeo; con
un protocolo ms sencillo y confiable realizado por hardware. Dicho puerto tendra
que ser totalmente compatible con el puerto paralelo estndar (SPP). El EPP tiene
dos normas, la 1.7 y la 1.9. Existen algunas pequeas 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 tambin comnmente configurado como
modo ECP-EPP, a diferencia del modo ECP solo, con el cual no coincide.

Captulo II: Elementos de la plataforma

21

Cuando usamos el modo EPP, a diferencias del SPP original, se asigna una
coleccin de diferentes funciones y direcciones a cada una de las lneas
disponibles del conector estndar DB25, las que se muestran en la siguiente tabla.
LINEA
1

SEAL EPP
Read/Write

ENTRADA/SALIDA
Salida

2-9
10

Datos 0-7
Interrupt

Ent./Sal.
Entrada

11

Wait

Entrada

12
13
14

Spare
Spare
Data Strobe

In
in
Salida

15
16
17

Spare
Reset
Address
Strobe
Ground

In
Out
Salida

18-25

GND

FUNCIN
Un estado bajo en esta lnea
indica una escritura, un alto
una lectura
Bus de datos bidireccional
Lnea de interrupcin, ocurre
en el flanco positivo (subida)
Usada para protocolo. Un ciclo
EPP puede ser iniciado
cuando est en bajo, y
terminado cuando est en alto
No usada en el modo EPP
No usada en el modo EPP
Cuando est en bajo indica
transferencia de datos
No usada en el modo EPP
Activa en bajo
Cuando est en bajo indica
transferencia de direcciones
Tierra

Tabla 3.- Asignacin de terminales para el conector EPP


Para generar un intercambio de datos vlido en el puerto EPP, se debe
seguir el protocolo correctamente. Para iniciar este ciclo el programa en la PC
solamente debe realizar una operacin de lectura o escritura al registro adecuado,
de acuerdo con alguno de siguientes cuatro casos. Como se detalla a
continuacin15:

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


Captulo II: Elementos de la plataforma

22

1o El programa en la PC ejecuta una escritura al registro de datos del EPP


(direccin base + 4).
2o La lnea Read/Write (Write) es bajada indicando una operacin de
escritura.
3o Los datos son colocados en las lneas de datos 0-7.
40 Se coloca en nivel bajo la lnea Data Strobe, solo si la lnea Wait ha sido
colocada en bajo por el perifrico (listo para iniciar el ciclo).
5o
El anfitrin (PC) espera hasta reconocer que la lnea Wait sea
colocada en alto para finalizar el ciclo, esto indica que el perifrico ha tomado el
dato.
6o

La lnea Data Strobe se desactiva.

7o

El ciclo EPP de escritura de datos finaliza.

8o
La lnea Wait debe ser colocada en bajo nuevamente, por el
perifrico, para permitir que el prximo 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 (direccin base + 3).
2o
escritura.

La lnea Read/Write (Write) es bajada indicando una operacin de

3o Los datos son colocados en las lneas de datos 0-7.


40 Se coloca en nivel bajo la lnea Address Strobe, solo si la lnea Wait ha
sido colocada en bajo por el perifrico (listo para iniciar el ciclo).

Captulo II: Elementos de la plataforma

23

5o
El anfitrin (PC) espera hasta reconocer que la lnea Wait sea
colocada en alto para finalizar el ciclo, esto indica que el perifrico ha tomado el
dato.
6o

La lnea Address Strobe se desactiva.

7o

El ciclo EPP de escritura de direcciones finaliza.

8o
La lnea Wait debe ser colocada en bajo nuevamente, por el
perifrico, para permitir que el prximo 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 (direccin base + 4).
20 Se coloca en bajo la lnea Data Strobe, solo si la lnea Wait ha sido
colocada en bajo por el perifrico (listo para iniciar el ciclo).
3o
El anfitrin (PC) espera hasta reconocer que la lnea Wait sea
colocada en alto.
4o El dato es ledo automticamente desde las terminales del puerto
paralelo
5o La lnea Data Strobe se desactiva.
6o El ciclo EPP de lectura de datos finaliza.
7o La lnea Wait debe ser colocada en bajo nuevamente, por el perifrico
para permitir que el prximo ciclo pueda comenzar.

Captulo 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 (direccin base + 3).
20 Se coloca en bajo la lnea Address Strobe, solo si la lnea Wait ha sido
colocada en bajo por el perifrico (listo para iniciar el ciclo).
3o
El anfitrin (PC) espera hasta reconocer que la lnea Wait sea
colocada en alto.
4o El dato es ledo automticamente desde las terminales del puerto
paralelo
5o La lnea Address Strobe se desactiva.
6o El ciclo EPP de lectura de direcciones finaliza.
7o La lnea Wait debe ser colocada en bajo nuevamente, por el perifrico
para permitir que el prximo ciclo pueda comenzar.
Si se tiene implementado el protocolo EPP 1.7 en la PC se pueden poner
activas las lneas Data Strobe o Address Strobe sin importar el estado de la lnea
wait del perifrico, no as en el caso del protocolo EPP 1.9.
La direccin 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 programacin; tres de ellas asociadas con el
antiguo SPP. Todas ellas se describen en la siguiente tabla.

Captulo II: Elementos de la plataforma

25

DIRECCIN
Base + 0
Base + 1
Base + 2
Base + 3
Base + 4

NOMBRE DEL PUERTO


Puerto de Dados (SPP)
Puerto de Estados (SPP)
Puerto de Control (SPP.
EPP)
Puerto de Direcciones
(EPP)
Puerto de Datos (EPP)

LECTURA / ESCRITURA
Escritura
Lectura
Escritura
Lectura / Escritura
Lectura / Escritura

Tabla 4.- Direcciones del puerto paralelo en modo EPP

II.2.- El puerto serie RS232C:


La comunicacin serie comenz en las computadoras personales con el UART
8250 en la IBM XT. El 16550A apareci poco tiempo despus y fue el primer
UART que era capaz de utilizar sus bferes FIFO, esto hizo posible aumentar la
velocidad mxima de una comunicacin confiable a 115,200 bauds. El 16550A
es el UART ms comn 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 estndar de la norma RS-232C. El UART 16550X es el encargado de la comunicacin serie en la mayora de
las computadoras personales.
La lnea que transmite los datos en serie (Tx) est inicialmente en estado alto.
Al comenzar la transferencia, se enva el bit de inicio 0, tras l, irn 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 transmisin que se est
empleando. Tras ellos podra venir, o no, un bit de paridad generado
automticamente 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 funcin de las terminales del conector
DB9 de una computadora personal.

Captulo II: Elementos de la plataforma

26

NO.DE TERM.
SEAL
DESCRIPCIN
DCD (Data Carrier detect)
1
*2
RX
Recepcin
*3
TX
Transmisin
DTR(Data Terminal Ready)
4
*5
GND
Tierra
DSR (Data Sheet Ready)
6
RTS (Request to send)
7
CTS (Clear to send)
8
RI (Ring Indicator)
9

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 trmino baud o baudrate para hacer
referencia a la velocidad de comunicacin de los datos, un baud equivale a un
bit/seg. La presencia de bits de inicio y parada permite sincronizar la estacin
emisora con la receptora, haciendo que los relojes de ambas vayan a la par; de tal
manera que la transmisin de los 8 bits de un dato, de un byte, realmente es
sncrona, pero las comunicaciones en serie de este tipo, siempre han sido
consideradas como asncronas, dado que no se cuenta con una lnea de reloj.
Para una transmisin bsica en serie bastan tres hilos; Transmisin (Tx),
Recepcin (Rx) y Tierra (Gnd). Sin embargo, el software que controla el puerto
serie a travs de la interfaz RS-232-C podra requerir, en algunos casos, ms
seales de control para establecer la comunicacin.

Captulo 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 comunicacin. Por lo
tanto, la velocidad mxima 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 mxima de 1,5 Mbps.
frecuencias en el oscilador ms altas que 1.8432MHz son raramente vistas
porque seran incompatibles con la configuracin original XT.
La velocidad de comunicacin de 115,200 bps no siempre es til para todas
las aplicaciones. Para obtener un cambio en la velocidad de comunicacin, la
frecuencia debe ser decrementada dividindola 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 ms
significativo respectivamente16.
Para una comunicacin libre de error es necesario que ambos transmisor y
receptor utilicen la misma base de tiempo. La tabla siguiente muestra los valores
ms comnmente usados para ajustar los bytes del divisor del Latch. Hay que
tener en cuenta que estos valores slo 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

0x06

0x00

38,400

0x03

0x00

57,600

0x02

0x00

Captulo II: Elementos de la plataforma

28

115,200

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 seales de transmisin y recepcin son de +12 y -12v; por lo tanto es
necesario un circuito que adapte los niveles lgicos de estas seales en el dsPIC.
Esto lo logramos utilizando una etapa de adaptacin de niveles, como se
representa en el siguiente esquema.

Figura 10.- Diagrama a bloques del adaptador de nivel para la conexin serie PCMicrocontrolador.
La direccin base, por defecto, del puerto serie 1 (COM1) en una
computadora personal es la 0x3F8, aunque se utilizan las siguientes direcciones
para configuracin, hasta la 0x3FF.

II.3.- El DSC dsPIC30F4012:


Se puede definir un procesador digital de seales (DSP) como un circuito
integrado diseado para ejecutar un conjunto de operaciones matemticas para el
anlisis, procesamiento y tratamiento, en tiempo real, de una o varias seales
continuas o analgica expresadas digitalmente. El procesador de seales se ha
convertido en una de las herramientas tecnolgicas ms poderosas en las que se
sustenta la ciencia y la ingeniera del presente siglo[11].

Captulo II: Elementos de la plataforma

29

Los DSP se asemejan a los clsicos microcontroladores, pero incorporan


arquitecturas y recursos especiales para poder ejecutar en forma ptima los
algoritmos manejados en el procesamiento digital de seales. Algunos de los
recursos especiales que se pueden destacar son:
a) Los procesadores son generalmente de tecnologa RISC y sus
instrucciones se ejecutan generalmente en un solo ciclo de mquina.
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 fsicos complejos para soportar las operaciones
especficas de los algoritmos DSP, multiplicar, multiplicar y acumular, etc.,
ejecutadas en un solo ciclo de mquina.
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 perifricos que minimizan el
tamao y simplifican el diseo del sistema.
g) Poseen mdulos para el control y optimizacin del consumo de energa.
A principio de la dcada 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 seales.
Los dispositivos modernos mezclan las funciones tpicas del MCU con las
del DSP. sta situacin impuls a Microchip a fabricar un circuito hbrido
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
Seales (DSC), que rene las caractersticas del un microcontrolador PIC de 16
bits y las de un DSP de gama baja, la primera generacin de DSC de Microchip,
se denomin dsPIC30F. La intencin de estos DSC era facilitar a los usuarios la
transicin de los MCU a los DSP.
La segunda generacin de DSC fue llamada dsPIC33F, la cual mejor las
capacidades de memoria, nmero de perifricos y rendimiento en general.
Captulo II: Elementos de la plataforma

30

Para la realizacin del presente trabajo utilizamos el dsPIC30F4012, cuyos


parmetros y caractersticas se muestran en el Anexo e), por ahora solo
mencionaremos algunos de los ms importantes.
Admite un voltaje de alimentacin entre 2.5 y 5.5 v.c.d., la velocidad de
operacin es de 30 MIPS cuando el voltaje de alimentacin est entre 4.5 y 5.5
v.c.d., dispone de un bus de datos de 16 lneas 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 simultneamente.
Las secciones MCU y DSP cooperan en el funcionamiento general y
comparten el flujo de instrucciones del DSC, admite 45 fuentes distintas de
peticin de interrupcin con 8 niveles de prioridad, de las cuales 5 son externas.
En cuanto a los perifricos 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
posicin en cuadratura QEI. Esta ltima caracterstica se ajusta al requerimiento
del proyecto de sensar y cerrar un lazo de control en posicin.

II.4.- Plataforma de programacin para control en tiempo real con MatlabSimulink-Ardence RTX-Wincon:
La plataforma de programacin 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, adems del ncleo o kernel de tiempo real de Ardence RTX 7.0, con
Wincon 5.2.
Con esta plataforma de desarrollo, la programacin del controlador del
prototipo ya no se realiza en modo texto, sino de manera grfica con los bloques
de Simulink.
Ardence RTX y Wincon son en conjunto una aplicacin 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 cdigo generado por un
diagrama de Simulink. De tal manera que el software Wincon consiste de dos
Captulo 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 interacta directamente con
el hardware. Es decir, realiza el sensado y envo de la seal de control, cada
periodo de muestreo. Wincon Servidor es quien enlaza el programa de Simulink
con el software de tiempo real, tambin le permite al usuario realizar la ejecucin y
paro del programa, as como la visualizacin, en grficas o en displays digitales,
de las variables de inters.
Al utilizar Simulink en tiempo real podemos seleccionar algunos parmetros
como el periodo de muestreo. Lo anterior tomando en cuenta las limitaciones de la
computadora, de la velocidad de comunicacin, as como de la cantidad de datos
transferidos entre la computadora personal y el dsPIC. Tambin tenemos la opcin
de elegir entre diferentes mtodos de integracin 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 travs de un microcontrolador, es necesario
contar con un modo de comunicacin 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 haba venido
trabajando en el CINVESTAV con el puerto paralelo en modo EPP.
No obstante que en las bibliotecas estndar 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 funcin S es la descripcin de un bloque de Simulink en un lenguaje
de programacin. 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 travs de ellas con el modelo de Simulink.
Matemticamente todo bloque de Simulink se conceptualiza como una caja
negra que tiene entadas, estados y salidas, donde las salidas estn en funcin del
periodo de muestreo, de las entradas y de los estados del bloque.
Captulo II: Elementos de la plataforma

32

Figura 11.- Concepto de Bloque de simulink.


Las siguientes ecuaciones expresan la relacin entre las entradas, las
salidas y los estados.
(salidas)
(inicio)
(actualizacin)
Donde;
Para la realizacin 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 funcin S contiene las caractersticas generales del bloque, as
como la programacin para configurar y manejar el protocolo de comunicacin a
nivel de hardware; as como las instrucciones para la transferencia de datos sobre
el canal de comunicacin seleccionado, es decir el puerto serie RS232C.
Una vez creada la funcin 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 ejecucin 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 aplicacin de 32 bits sobre Windows MS, es fcil de usar e incluye
una barra de componentes de software libre, para desarrollo rpido de
aplicaciones y depuracin spercargada; adems sirve como una sencilla y
Captulo II: Elementos de la plataforma

33

unificada interface grfica del usuario para herramientas de desarrollo de


hardware y software de Microchip, y externas. El movimiento entre herramientas
del IDE es seguro. Y la actualizacin desde el software de simulacin, hasta el
hardware de depuracin y las herramientas de programacin es rpida; 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 aplicacin. Esto puede hacerse escribindola en
cdigo ensamblador, posteriormente ensamblando el proyecto, probando el cdigo
con el simulador y depurador internos, y cuando est lista la aplicacin se
selecciona un programador/depurador; ya sea el del fabricante u otro, para
programarle el cdigo al microcontrolador.
Para analizar el comportamiento de la aplicacin, se puede realizar la
depuracin con el programa corriendo en el microcontrolador, esto a travs de un
programa gestor que se carga en el PIC al seleccionar la opcin de depuracin.
De esta manera se trabaja hasta lograr que el proyecto funcione como se desea.

Captulo II: Elementos de la plataforma

34

Tambin es posible escribir el cdigo 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 algn 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
programacin ms compacta y estructurada, aunque habra que mencionar, como
desventaja, que en esta forma de programacin el cdigo no necesariamente ser
optimizado en tamao.
En nuestro caso el dsPIC30F40127 se program y depur con el compilador
C30 cargado en el MPLAB IDE versin 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 captulo II hemos expuesto
las bases de diseo nuestra plataforma.

Captulo II: Elementos de la plataforma

35

CAPTULO III.- DESARROLLO DE LA PLATAFORMA


En este captulo III se exponen, de manera detallada, el diseo e
integracin de casi todos los elementos de circuitera y programacin del prototipo.
Solamente se dej para el captulo V la parte correspondiente a la programacin del
controlador en Simulink, ya que juntos; el prototipo y el controlador, integran la plataforma
de enseanza que hemos mencionado.

Se incluye tambin, en el ltimo apartado, la apertura del puerto serie para


trabajar en Windows XP con el software de tiempo real.
III.1.- Circuitera:
III.1.1.- Servomotor:
La parte electromecnica de la circuitera 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 imn permanente, de tal manera que solo es posible
controlarlo por armadura. En la flecha se le ha acoplado mecnicamente un
codificador de posicin ptico de 10,000 pulsos por revolucin, adems de un
disco metlico como masa o carga inercial, con el propsito de aumentar este
parmetro.
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.

Captulo III: Desarrollo de la plataforma

36

Figura13.- Servomotor completo.

III.1.2.- Electrnica de potencia:


La parte de electrnica 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, colocndole a la
entrada una seal modulada en ancho de pulso (PWM).
El amplificador cuenta con cuatro transistores MOSFET de potencia,
cada uno con su correspondiente diodo volante, adems tiene una parte de lgica
de control y otra de sensado de la corriente a la salida.
A la entrada se le aplica, adems de la seal PWM, una seal lgica
llamada signo, que cambia de estado para permitirnos modificar la direccin de
giro del servomotor. Los niveles lgicos 0 y 5v. de la seal 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 mxima de 3 ampers. A continuacin se presenta un diagrama funcional
a bloques del circuito integrado.

Captulo III: Desarrollo de la plataforma

37

Fig. 14.- Diagrama a bloques del Puente H LMD18200.


La inductancia del servomotor realiza la funcin 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.
Adems, el puente H cuenta con algunas otras seales 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 utilizacin de esta
salida para proteger el dispositivo contra daos permanentes, ya que ste soporta
3 amp. continuos como mximo. La corriente sensada tambin 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
captulo IV.

III.1.3.- Fuentes de alimentacin:


El prototipo completo requiere de tres fuentes de alimentacin, una de 30v.
para el amplificador, otra de 5v. para la lgica, y otra de 5v. para la lgica
conectada a la parte de potencia, estas dos ltimas fuentes se encuentran
aisladas elctricamente para evitar que los picos de voltaje generados por el
servomotor lleguen al microcontrolador y afecten su funcionamiento.
Captulo III: Desarrollo de la plataforma

38

La fuente de 30v. suministra 2 amp. como mximo; este voltaje no se requiere


regulado. Las otras dos fuentes si son reguladas y proporcionan 500ma. cada una.
A continuacin se muestra una vista externa de la fuente de alimentacin del
prototipo. En el anexo A se muestra el diagrama elctrico del diseo.

Figura 15.- Fuentes de voltaje de la plataforma.

III.1.4.- Trasladador de niveles:


Para realizar la comunicacin serie la PC utiliza la norma EIA-232, por lo que
los niveles de tensin de las seales de transmisin y recepcin son
aproximadamente de +12 y -12v., por lo tanto es necesario un circuito que adapte
los niveles lgicos 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
Captulo III: Desarrollo de la plataforma

39

tpico de 1.3 v y una histresis tpica 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 comunicacin con la PC.

Figura 16.- Diagrama elctrico del trasladador de niveles MAX232.


A continuacin se muestra la imagen del circuito trasladador de nivel
RS232C que hemos elaborado.

Figura 17.- Imagen del trasladador de niveles MAX232.

Captulo 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 electromecnica y la electrnica. En este apartado nos referiremos a
tarjeta principal de la parte electrnica.
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
diseo es el microcontrolador de seales 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.
Tambin cuenta con dos conectores para la comunicacin con la PC, uno
DB25 para la comunicacin paralelo y uno para la comunicacin serie en forma de
terminales. A la salida de potencia incluye dos optoaisladores 4N35 para las
seales PWM, las cuales son amplificadas en la misma tarjeta con el puente H
LMD18200. Tiene tambin un conector para el codificador de posicin 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 tambin, en la alimentacin del microcontrolador un capacitor de
desacoplamiento de 0.1 ufd., un resistor para el sensado de corriente y un filtro
para esta misma seal.

Captulo 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 continuacin, y en el Anexo
B se muestra el diagrama electrnico completo.

Captulo III: Desarrollo de la plataforma

42
5VL
30V

dsPIC30F4012

(11)-

GNDL

VSS/GNDL(3)

TX

D5(14)-RD1

LMD18200
22nf

VDD(5)

(6)

D7(12)-RX

5VP

AVDD(28)

5VL

VDD(20)

$PIN0
VDD/5VL(2)

4N37
VDD(13)

PUERTO SERIE

C1

BOOTSTRAP1(1)

PWM-RE4(22)

PWM-IN(1)

PWM-OUT(4)
OUTPUT1(2)

TX(4)

D4(4)-RB2

RX(5)

D3(23)-RE3

GND(2)
PWM(5)

GNDL

D2(24)-RE2

Opto aislador
D1(25)-RE4
5VP

SIGNO(3)BOOTSTRAP2(11)

WAIT(3)-RB1
RD/WR(2)-RB0
SIGNO-RE5(21)

SIGNO-IN(1)

SIGNO-OUT(4)

IP(8)

22nf

BRAKE(5)

VDD(5)

C2

OUTPUT2(10)

GND(7)

4N37
D0(26)-RE0

THERMAL FLAG(9)

Conector

ADDSTR(15)-RD0
DATASTR(16)-RE8
GND(2)

5VL

VSS(19)

PGC(18)

VSS(8)

PGD(17)
1k

AVSS(27)

AN3-RB3-IP(5)

R1

SW1

Amplif icador Puente H

GNDL

MCLR(1)

Opto aislador

QEB(5)
Corriente sensada

QEA(6)

ENCODER

GNDL
SW
Microcontrolador

PROGRAMADOR

B(1)

GNDL
Vpp/MCLR(1)

5VL

5VL

5VL(2)
A(3)

VDD/5VL(2)
NC(4)
VSS/GNDL(3)

GNDL

GNDL

GND(5)

PGD(4)
PGC(5)

Conector

Conector

C I N V E S T A V

DCA

Title

PLATAFORMA DE ENSEANZA serie


Size
A
Date:

Document Number

Rev
1.0 D

Jos de Jess Meza Serrano


Friday , May 27, 2011

Sheet

of

Figura 19.- Diagrama a bloques de la tarjeta principal.

III.2.- Programacin en cdigo y configuracin:


Para propsitos de mejor entendimiento de este trabajo se ha considerado
la conveniencia de dividir este apartado de programacin en cdigo en tres partes.
La primera parte es la programacin del dsPIC. La segunda parte es la
programacin de la funcin S para el bloque de comunicacin de datos en serie,
que requiere Simulink para poder realizar el control (ambos programas se
realizaron en lenguaje C5,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 programacin del controlador, como es comn, se realiz a
bloques en Simulink; esta parte se decidi incluirla en el Captulo V por su
importancia en s misma, ya que con esta se pone a prueba toda la plataforma,
Captulo III: Desarrollo de la plataforma

43

incluidas todas las capas de programacin de nivel intermedio que se describen


en este captulo III.

III.2.1.- Programacin del dsPIC:


Como ya se mencion de manera general, esta programacin se realiz en
lenguaje C, en el ambiente MPLAB IDE y con el compilador C30 de Microchip.
En este trabajo se presenta la comunicacin, entre la PC y el dsPIC, a travs
del puerto serie RS232C. Sin embargo se haba venido trabajando en la
comunicacin mediante el puerto paralelo en el modo EPP. Con esta
consideracin, pasamos a la explicacin el programa principal (main()), y
enseguida explicaremos las definiciones, las funciones y libreras que se utilizan
para realizan las actividades principales de dicho programa.
Antes de iniciar con el cdigo del programa principal propiamente dicho se
realiza la inclusin de algunos archivos de la biblioteca del fabricante del micro
controlador8, y de algunos propios. Tambin se hacen la definiciones de los tipos
de variables, constantes y apuntadores; adems 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
inicializacin del timer, la obtencin y filtrado del voltaje de entrada analgico
proporcional a la corriente que est circulando en el servomotor.
Al inicio del main() se llama a cinco funciones, cuatro de inicializacin de los
mdulos del dsPIC que utilizamos y una de retardo.

Captulo III: Desarrollo de la plataforma

44

Figura 20.- Inicio del programa principal main() del dsPIC, llamando a cuatro
funciones para inicializar los mdulos utilizados.
La primera funcin es IniPWM(), con ella configuramos la salida PWM, le
deshabilitamos interrupciones, fijamos la frecuencia de la seal PWM,
seleccionamos el modo de operacin, habilitamos el puerto, y enviamos un
comando de prueba para que se mueva el servomotor un tiempo pequeo en
ambos sentidos.
Despus se llama a la funcin de retardo MsDelay(700), la cual no es tan
importante.
La tercera funcin IniADC4012Old() nos permite configurar la terminal 5 del
dsPIC como entrada analgica(AN3). Esta entrada se utiliza para sensar la
corriente en el servomotor. Primero de define la lnea 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 estn multiplexadas seis entradas en cuatro
canales muestreadores-retenedores, con un solo convertidor A/D. Se deshabilitan
las interrupciones, se selecciona la lnea como entrada analgica, tambin se
seleccionan el formato como se entregar la palabra digital de 10 bits (que es el
resultado de la conversin), el voltaje de referencia, el reloj de disparo de la
conversin, el tipo de muestreo, el reloj de la conversin.
Captulo III: Desarrollo de la plataforma

45

La cuarta funcin es IniSerial4012(), la cual nos permitir inicializar y configurar


el UART1, que es quin maneja la comunicacin por el puerto serie.
Con la quinta funcin llamada, IniQEI(), configuramos como entradas las lneas
para el mdulo de lectura del codificador de posicin ptico, seleccionamos el
valor mximo a contar, habilitamos la interrupcin por sobre flujo en la cuenta, y la
prioridad de sta, seleccionamos tambin el modo X4, y finalmente inicializamos
en cero el registro de conteo de la posicin del servomotor.
Despus el programa entra en un lazo de espera. En esta parte, bsicamente
se realiza el sensado de la posicin y envo de la seal 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 comunicacin serie es
de 2ms.
En este lazo tambin se acondicionan la seal sensada de la posicin y la
seal de control enviada en formato PWM. El registro que entrega el valor de la
posicin es de 16 bits, y dado que estamos trabajando con un codificador de
posicin de cuadratura de 10,000 pulsos por revolucin, este se desbordara
fcilmente, por lo cual se implement en cdigo el incremento del tamao del
registro a 32 bits. Adicionalmente la posicin es convertida de formato entero a
punto flotante, que es como la maneja simulink. En contrapartida la seal 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, despus 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 seal de control PWM sea generada.

III.2.1.1.- Configuracin general:


La configuracin de los bits que definen el funcionamiento general del dsPIC
(tambin 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 seleccin corresponde al tipo de oscilador que usaremos, en
este caso un oscilador externo de alta frecuencia con un multiplicador por 16, esto
Captulo III: Desarrollo de la plataforma

46

se logra con la siguiente seleccin _FOSC( CSW_FSCM_OFF & XT_PLL16 ). El


cristal externo nos permite mayor precisin en el reloj, lo cual, entre otras cosas,
redunda en una mayor integridad de los datos en la comunicacin serie.
Para la implementacin 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 instruccin, es decir
estamos trabajando a 29.49 MIPS. Como sabemos, el dsPIC que estamos usando
puede correr a 30 MIPS mximo.
La siguiente seleccin corresponde al Watchdog timer, en nuestro caso lo
deshabilitamos mediante la macro instruccin _FWDT(WDT_OFF).
Posteriormente tenemos la seleccin 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 instruccin _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 alimentacin o al ser accionado el interruptor correspondiente.
Finalmente tenemos la opcin de proteger el cdigo programado. En este
caso dicha opcin es deshabilitada con la macro _FGS(CODE_PROT_OFF).

III.2.1.2.- Comunicacin serie:


Para realizar la comunicacin de datos por el puerto serie, se requiere de la
inicializacin y configuracin del UART tanto en el dsPIC como en la PC. En el
dsPIC se realiza de la siguiente manera.
Inicialmente es llamada la funcin IniSerial4012(), donde se definen algunas
constantes para el clculo y la configuracin del baud rate. En nuestro caso
usamos la velocidad ms alta, es decir 115,200 bauds, posteriormente se cierra el
UART, se configuran sus lneas digitales I/O, Tx como salida y Rx como entrada,
se deshabilita el UART, se selecciona el formato de comunicacin 8N1, se habilita
la interrupcin al recibir un dato, y se configura la prioridad de sta en 4, se habilita
la interrupcin para cuando se reciba un caracter, se selecciona el uso de las
terminales alternas, se habilita el UART, y finalmente se habilita la transmisin.
Captulo III: Desarrollo de la plataforma

47

Figura 21.- Funcin IniSerial4012() para inicializar y configurar el mdulo serie.


De manera detallada el mdulo 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 lgico "1" cuando ninguna transmisin se
lleva a cabo.
El mdulo UART es desactivado al limpiar el bit UARTEN en el registro
U1MODE. Este es el estado predeterminado despus 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 mdulo UART en lugar de las terminales U1TX y U1RX. Si ALTIO = 0, las
terminales U1TX y U1RX son utilizados por el modulo UART.

Captulo 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 transmisin, 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 utilizarn uno o dos bits de paro
durante la transmisin 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 interrupcin por recepcin (U1RXIF) puede ser leda en el
registro correspondiente. La condicin para recibir la interrupcin depende de la
configuracin especificada en los bits de control UR1ISEL <1:0> (U1STA <7:6>).
Si URXISEL <1:0> = 00 o 01, una interrupcin es generada cada vez que una
palabra de datos se transfiere desde el registro de movimiento de recepcin
(U1RSR) al bufer de recepcin. Puede haber uno o ms caracteres en el bufer de
recepcin.
El UART tiene un generador de baud rate de 16 bits para permitir una
flexibilidad mxima en la generacin de la velocidad de comunicacin, el registro
generador de la tasa de baudios (U1BRG) es de lectura y de escritura, la
velocidad de comunicacin se calcula como sigue:

La velocidad en baudios est dada por la siguiente ecuacin.

Por lo tanto, la mxima velocidad en baudios posible es


la mnima velocidad posible en baudios es

Despejando

y calculando para un

(si

= 0), y

Captulo III: Desarrollo de la plataforma

49

Este es el dato que se carga en el registro

III.2.1.3.- Generacin de la seal de control por Modulacin en Ancho del


Pulso:
La segunda funcin 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 operacin, habilitamos el canal, y
enviamos un comando de prueba para que se mueva el servomotor un tiempo
pequeo en un sentido y en otro.

Figura 22.- Funcin IniPWM4012() para inicializar y configurar el mdulo PWM.


La conguracin del mdulo 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 simplican la tarea de
conguracin, la que sera ms complicada si se realizara sin ellas, o an ms si
se realizara en ensamblador.
La primera funcin de biblioteca usada es CongIntMCPWM(config), esta
Captulo III: Desarrollo de la plataforma

50

funcin se utiliza para congurar las interrupciones del modulo PWM, el parmetro
cong puede tomar el valor de una serie de etiquetas correspondientes a bits; con
los cuales, en nuestro caso, deshabilitamos las interrupciones del mdulo PWM ya
que no sern utilizadas, ni la normal ni la de bit de falla, tambin les asignamos
una prioridad de 0, la cual es la menos importante. Esto ltimo es necesario
realizarlo ya que el espacio no puede quedar vaco en la funcin.
Posteriormente se usa la funcin de biblioteca OpenMCPWM(), la cual
inicializa el mdulo y es la encargada de escribir los valores a los registros de
conguracin 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 seal PWM, la cual, en trminos del periodo
del PWM se calcula con la siguiente frmula.

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 algn valor o evento especial, este dato no
lo utilizamos, por lo que se coloca en cero.
El siguiente parmetro de esta funcin es Cong1, este contiene los datos que
sern cargados en el registro PTCON; los que realizan varias funciones, habilitan
la base de tiempo del PWM, denen 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 prcticamente deshabilitados. Al final denimos que el
modulo PWM est trabajando en el modo de corrida libre.
El siguiente parmetro es cong2, este contiene los datos que sern cargados
en el registro PWMCON, con este conguramos el modulo 3 PWM bajo para que
trabaje de manera independiente, deshabilitamos los mdulos 1 y 2, altos y bajos,
y el modulo 3 alto. Es decir solamente habilitamos el modulo 3 bajo, para obtener
Captulo III: Desarrollo de la plataforma

51

la seal PWM a travs de esta terminal.


El parmetro cong3 Contiene los datos que sern 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 actualizacin del flanco de salida de la seal PWM se realice en sincrona
con la base de tiempo del mdulo.
Posteriormente utilizamos la funcin SetDCMCPWM(); con ella conguramos
los registros para el ciclo til del PWM. En el parmetro dutycyclereg se coloca el
valor del apuntador al registro a congurar, 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 actualizacin
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 pequea rutina para probar que est
funcin 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 modicando de acuerdo a las necesidades de la seal de
control en el lazo.

III.2.1.4.- Medicin de la posicin angular:


El modulo QEI del dsPIC es la interface entre el codicador de posicin ptico
incremental en cuadratura y el lazo de control, este mdulo realiza la tarea de
decodicar las seales enviadas por el sensor. Estas seales son llamadas fase
A, fase B, e Index. Las fases A y B se utilizan para determinar la posicin 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 posicin ptico.

Captulo III: Desarrollo de la plataforma

52

Figura 23.- Funcionamiento de un sensor de posicin ptico incremental.


El contador del modulo QEI deja el dato de la posicin en un registro de 16 bits
llamado POSCNT.
Si el servomotor est girando en direccin 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 interrupcin ser generada.
A este evento se le llama sobreujo.
Si el servomotor est girando en direccin 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, tambin
ser generada una interrupcin.
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 interrupcin. En esta rutina podremos observar el valor que tena el
contador de posicin al ocurrir el evento, si el valor es el mximo, entonces
incrementaremos una variable entera que cuente los sobreujos. 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 posicin, y nos permitir un mayor rango de
sensado de la posicin para nuestro control, es decir el motor podr dar ms
vueltas sin problemas en el conteo.
El modulo QEI permite una frecuencia de las seales de entrada A y B hasta
de

, en nuestro caso la frecuencia de estas seales debe de ser mximo de:


Captulo III: Desarrollo de la plataforma

53

La inicializacin y conguracin del modulo QEI se realiza con la rutina


IniQEI4012() de la siguiente manera:

Figura 24.- Funcin IniQEI4012() para inicializar y configurar el mdulo QEI


para el sensado de la posicin angular.
Primero se inicializan las lneas QEA y QEB como entradas, como cualquier
lneas digital de I/O, posteriormente llamamos ordenadamente a las siguientes
funciones preprogramadas.
La funcin WriteQEI(), la cual establece el valor mximo para el contador de
posicin, en nuestro caso 0xFFFF; este valor es guardado en el registro MAXCNT.
En seguida la funcin CongIntQEI(), la que congura la interrupcin para este
mdulo, despus habilitaremos la interrupcin y le asignaremos una prioridad de
3, es decir una intermedia.
Posteriormente la funcin OpenQEI(), esta funcin abre el mdulo
seleccionando la fase con la cual se incrementa el contador; para este caso
Captulo III: Desarrollo de la plataforma

54

utilizamos la fase B. Tambin se congura que las entradas no sean


intercambiables y la resolucin de del modulo sea X4, se coloca el modulo en
modo de trabajo match, esto para que se genere una interrupcin por sobreflujo y
bajoujo del contador.
Finalmente se inicializa con cero el registro POSCNT, que es donde se
guardar el conteo de la posicin.

III.2.1.5.- Medicin 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 seal 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
accin correspondiente cuando se desee. El rango de voltaje analgico permitido
en cualquier entrada A/D es de 0-5v.
A continuacin se muestra el clculo del resistor; por ley de Ohm.

Proponiendo

y calculando tenemos:

Lo cual es adecuado ya que deseamos sensar como mximo 2 ampers a


travs de la entrada AN3 del dsPIC, y en este caso tendremos como lmite 4.22 v.
Dado que esta seal 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.
Captulo III: Desarrollo de la plataforma

55

Si proponemos;
siguiente:

, y despejamos

el clculo del capacitor es el

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


que la frecuencia de corte real es
La parte de programacin e inicializar de la entrada analgica 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.

Captulo III: Desarrollo de la plataforma

56

Figura 24.- Funcin IniADC4012Old() para inicializar y configurar el mdulo de


entradas analgicas.
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 funcin 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 despus al canal cero, y que el Vref- pase a
la entrada negativa del muestreador A y despus al canal cero.
Posteriormente se utiliza la funcin ConfigIntADC10(), la cual deshabilita la
interrupcin del convertidor, y en este caso ya no se fija la prioridad.
Finalmente se usa la funcin OpenADC10(). La que, entre otras cosas, nos
permite escribir en los tres registros ADCON1. En el primero, habilitamos el
mdulo ADC, habilitamos que el mdulo de conversin siga trabajando aunque el
dispositivo entre en modo ocupado, despus 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 conversin sea automtica, en seguida seleccionamos que
se puedan muestrear varios canales simultneamente, luego que el muestreo
Captulo III: Desarrollo de la plataforma

57

empiece inmediatamente despus que la ltima conversin 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+, despus 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, ms 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 automtico en 10 veces el periodo de conversin
enseguida que la fuente de reloj de muestreo sea la del sistema, y finalmente que
el reloj de conversin
sea
. Enseguida se muestra el clculo para
este dato de seis bit que se carga en La variable
del registro ADCON3.
.

III.2.1.6.- Rutinas de atencin 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 atencin a interrupciones.
Esto quiere decir que la iniciativa de la comunicacin, con el dsPIC, la tiene el
programa de control que est corriendo en la computadora personal. Esta
comunicacin 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 actualizacin de la seal de salida sensada y la aplicacin de
la seal de control.
La computadora primero enva un comando para indicarle al dsPIC que desea
que le enve la nueva posicin angular, la rutina pregunta por l, y de estar
presente, le contesta envindole, por el mismo puerto serie, los cuatro bytes de la
posicin. La rutina borra la bandera de interrupciones, para que pueda entrar otra,
Captulo III: Desarrollo de la plataforma

58

y termina.
En el mismo periodo de muestreo, la computadora enva ahora otro comando,
lo cual hace que se ejecute nuevamente la rutina de atencin a interrupciones,
indicndole que le va a enviar la seal de control en dos bytes, el dsPIC los lee,
borra la bandera de interrupciones y termina.
De antemano, en la configuracin del puerto serie se program la interrupcin
por recepcin de un byte y se le fij una prioridad intermedia (4).
Como se explic en los apartados anteriores, existen otra fuente de
interrupcin; la de sobreflujo o bajoflujo en el conteo de pulsos del sensor de
posicin. Para este caso, se program la rutina de atencin correspondiente.

III.2.2.- Programacin de la funcin S para Simulink:


En nuestro caso, la funcin S es el driver requerido para manejar el puerto
serie de la PC desde Simulink. Para facilitar dicha programacin 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 continuacin se explica la
programacin de dicha funcin.
Al archivo lo llamamos serxp_1.c. En su interior Inicialmente se define el nombre
de la funcin S, que debe ser el mismo que el del programa, sin la extensin, 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 direccin base del puerto serie COM1 (0x3F8) de la PC, se define
tambin que el bloque tenga solamente una entrada y una salida.
Despus, se llama a la primera rutina mdlInitializeSizes(S), la cual define el
tamao de algunas variables, vectores, y compara el nmero de argumentos que
se le pasan a la funcin 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 funcin mdlInitializeConditions(x0, S); en esta rutina
se realiza la configuracin del puerto serie de la PC, se habilita el bit del divisor de
Captulo III: Desarrollo de la plataforma

59

latch DLAB en el registro de control de lnea, despus se configura la velocidad


de comunicacin a 1151,200 bauds, el tipo de dato a 8N1, en el registro de control
del FIFO (FCR) se configura la mxima capacidad, se limpia y se habilita, y
finalmente se activan las lneas 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 ms importante ya que aqu
se programa el cdigo 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 comunicacin con el dsPIC para la lectura de la posicin angular (salida
del lazo de control) y el envo de la seal de control PWM, todo esto por el puerto
serie.
En el caso de la posicin 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 seal de control PWM es de 11.9 bits, por lo que se transmite
en dos bytes, pero antes se normaliza para hacer coincidir el mximo valor en
digital que es 3998, con el mximo que se maneja en el lazo de control de
Simulink, que es de 5v.
A continuacin se muestra el clculo de la resolucin de la seal 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 simulacin, en ella se enva un
comando para reconfigurar el dsPIC, el cual tiene el efecto de un reset.

Captulo III: Desarrollo de la plataforma

60

Esta funcin S, una vez compilada dentro de Matlab, podr usarse como un
bloque mas en el modelo de control de Simulink, permitindonos el contacto con el
servomotor, a travs 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
aplicacin 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 aplicacin, Para
nuestro caso, que deseamos usarlo desde Simulink con el Kernell de tiempo real
Ardence RTX, este puerto se abre desde esta aplicacin, de la siguiente manera:
1.- Se ejecuta la aplicacin Ardence RTX Properties
2.- Dentro de esta ventana se va a la pestaa de Harware, en el recuadro RTX
Devices presionar el botn de setings
3.- Buscar y seleccionar el puerto COM1, despus 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
aplicacin.

Captulo III: Desarrollo de la plataforma

61

Figura 25.- Pantalla mostrando al puerto COM1 abierto por la aplicacin


Ardence RTX.

Captulo III: Desarrollo de la plataforma

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 energa elctrica en
energa mecnica. Una gran parte de esta energa llamada par (torque), que es
generada en el rotor (armadura o inducido) del motor, est disponible para
manejar una carga mecnica externa. El motor de CD es probablemente el
primero de los motores elctricos.
El principio de operacin de un motor de CD es el de un conductor elctrico
colocado dentro de un campo magntico constante, perpendicular a la direccin
del campo. La Densidad del Flujo Magntico
es tambin asumida como
constante. Si una corriente directa se hace pasar a travs del conductor, el flujo
magntico debido a la corriente rodear al conductor. Si consideramos un plano a
travs del conductor, paralelo a la direccin del flujo magntico 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 magntico (normal al plano) sobre el conductor. Esta
fuerza est dada por la ecuacin siguiente:
IV.1.1
Donde
es la densidad de flujo magntico, la longitud del conductor, la
corriente a travs del conductor,
el par de fuerzas y
es la constante
mecnica 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. Tambin en la
representacin 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
de la misma.

mover ste en la direccin

Captulo IV: Modelado y simulacin del motor de c.d.

63

Considerando la necesidad de mantener la direccin del par, en cada


enrollamiento o grupo conductor de la armadura, la direccin de la corriente
cambiar cuando el conductor cruce el plano llamado de conmutacin.
Fsicamente esto es realizado usando un anillo contactor con hendiduras o
separaciones aislantes y un par de escobillas conductoras (carbones) que realizan
la conmutacin. Esto es, cuando un voltaje de armadura es aplicado a travs de
las escobillas de carbn, se genera un pequeo giro de la armadura del motor
logrando la conmutacin requerida para mantener girando permanentemente el
motor en una direccin.

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


Como resultado de este movimiento dentro del campo magntico
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 elctrica 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 travs del conductor, de tal manera que
Captulo IV: Modelado y simulacin del motor de c.d.

64

tender a detener el movimiento. Esta es la causa del amortiguamiento elctrico


(efecto derivativo) en los motores elctricos.
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 matemtico de un motor de corriente directa controlado por


armadura:
El modelado matemtico es una tcnica que consiste en describir, de la
manera ms apegada a la realidad que sea posible, la estructura y caractersticas
de un sistema, en trminos de ecuaciones. Los sistemas pueden ser, elctricos,
biolgicos, qumicos, fsicos, econmicos, sociales, financieros, etc.
El anlisis de los modelos matemticos y la simulacin de estos son
herramientas indispensables tanto para la comprensin y entendimiento del
sistema en particular, como para el posible diseo de algn controlador que
eventualmente se requiera.
Muchos sistemas dinmicos ya sean mecnicos, elctricos, trmicos,
hidrulicos, econmicos, biolgicos, etc., pueden ser descritos por ecuaciones
diferenciales. Se puede obtener la respuesta de un sistema dinmico 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 mecnicos.
Considerando el motor de C.D. que deseamos controlar en posicin, sabemos
que el campo est elaborado con un imn permanente, de tal manera que el
control se hace por armadura, para lo que partimos del siguiente circuito
electromecnico para realizar el modelado matemtico.

Captulo IV: Modelado y simulacin del motor de c.d.

65

Figura 27.- Circuito electromecnico de un motor de CD con campo de imn


permanente.
Donde:
es el voltaje de armadura,
la corriente de armadura,
la fuerza contraelectromotriz,
la resistencia de armadura,
la
inductancia de armadura,
la constante elctrica,
el par elctrico
desarrollado,
la posicin angular,
el momento de inercia del motor,
la constante de par,
la friccin viscosa total,
la velocidad angular,
la inductancia mutua, y
el par de la carga.
Detallando la ecuacin para el voltaje generado dentro de una mquina de
C.D. o fuerza contra electromotriz1,2 , tenemos:

Donde: es el nmero de conductores de la armadura, el nmero de polos, es


el nmero de lneas de flujo por polo,
es el nmero de rutas paralelas a travs
de la armadura.
De tal manera que la constante elctrica de la fuerza contra electromotriz es:

Por lo tanto:

Captulo IV: Modelado y simulacin del motor de c.d.

66

Por otra parte la ecuacin para el par desarrollado por la mquina de C.D. es:

Donde la constante del par desarrollado es:

De tal manera que:

Tambin se puede calcular una constante a partir de la otra, si se usan las


unidades indicadas, a partir de la siguiente relacin:

Para iniciar de manera ms estructurada el modelado del motor aplicamos


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

Sustituyendo

de la ecuacin

, tenemos:

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


fuerzas, obtenemos la ecuacin de movimiento de la parte mecnica del sistema.

Sustituyendo

de la ecuacin

, nos queda:

Captulo IV: Modelado y simulacin del motor de c.d.

67

Aplicando la transformada de Laplace a las ecuaciones


quedan de la siguiente manera:

Despejando

, nos

en ambas ecuaciones para igualar y eliminarla, obtenemos:

Encontrando la funcin de transferencia en lazo abierto para una salida en


posicin angular respecto a una entrada de voltaje de armadura, obtenemos el
sistema de tercer orden siguiente:

Si consideramos que la inductancia de la armadura


polo elctrico

es pequea, el

se hace ms grande y su desempeo es rpido a bajas

frecuencias, por lo que se puede despreciar. Quedando de la ecuacin


siguiente sistema de segundo orden:

el

Captulo IV: Modelado y simulacin del motor de c.d.

68

El supuesto anterior se logr de manera ms eficiente implementando un lazo


interno de control de la corriente de armadura, lo cual reduce la constante de
tiempo elctrica y hace el polo elctrico an ms rpido. Este parte se considera
posteriormente en el modelo.
Continuando con la agrupacin de trminos, nos queda la siguiente funcin de
transferencia en lazo abierto:

Al servomotor se le agreg como carga un disco de latn, 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 conversin de la
corriente en voltaje
, adems de la ganancia debida al amplificador
tenemos el siguiente diagrama a bloques:
lazo interno PI en corriente
Kc
Ia
KpI

Va

Km

La .s+Ra
KiI

Ka

Jt.s+Bm

1
s

Ke

Servo motor de corriente directa

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

Captulo IV: Modelado y simulacin 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,
quedndonos lo siguiente:
Lazo PI en corriente
Kc
Ia
Va

KaKpI .s+KaKiI

La .s+Ra

Km

1
Jt.s+Bm

w
1
s

s
Ke
KaKpI .s+KaKiI
Servo motor de corriente directa

Figura 29.- Primera simplificacin del modelo del servomotor en lazo abierto,
con un lazo interno de control en corriente.
Normalmente el valor del polo
mucho mayor que el polo

, del lazo de retroalimentacin, es


. Es decir, est ms alejado del origen del

plano complejo, o sea, es ms rpido; por lo que el trmino


puede aproximarse a bajas frecuencias por

, quedando12.

Captulo IV: Modelado y simulacin del motor de c.d.

70
Lazo PI en corriente
Kc
Ia
KaKpI .s+KaKiI

La .s+Ra

Va

T
Km

1
Jt.s+Bm

w
1
s

Ke

KiI
Servo motor de corriente directa

Figura 30.- Segunda simplificacin 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 denominndolo
como
tenemos:

Como los polos de

normalmente estn ms alejados del

origen del plano complejo que el polo

, la funcin de transferencia

anterior se puede aproximar a bajas frecuencia como12:

Quedndonos ahora los siguientes diagramas a bloques:

Captulo IV: Modelado y simulacin del motor de c.d.

71
Va

Ia

Kc

Jt.s+Bm

w
1
s

Ke

KiI

Figura 31.- Tercera simplificacin del modelo del servomotor en lazo abierto,
solo con un lazo interno de control en corriente.
Ia
1

Va

1
s

KcJt.s+KcBm

Ke

KiI

Figura 32.- Cuarta simplificacin 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
funcin de transferencia como
, nos queda:

Captulo IV: Modelado y simulacin del motor de c.d.

72

Considerando que

es mucho menor que

podemos aproximarlo a:

, el trmino

La funcin de transferencia de la posicin angular, a la salida, entre el voltaje


de armadura, a la entrada, se obtiene multiplicando por
siguiente manera:

, y nos queda de la

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 realimentacin en corriente.
La funcin de transferencia del sistema en lazo abierto, con un lazo de control
interno en corriente se puede reducir al siguiente bloque:
Va

s(s + a )

Figura 33.- Simplificacin 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:
Captulo IV: Modelado y simulacin del motor de c.d.

73

Se observa tambin 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 demostracin se puede realizar, de manera
detallada, utilizando algn mtodo como el de Routh-Hurwitz2 o el de Nyquist3, sin
embargo, por el momento, no es el objetivo.

IV.2.1.- Identificacin de los parmetros del motor y del modelo:


Los parmetros ms importantes del motor son:
resistencia de armadura,
inductancia de armadura,
fuerza contraelectromotriz,
constante elctrica,
momento de inercia del motor,
la constante de par,
friccin viscosa del
motor. En algunos casos el fabricante los proporciona, pero la mayora de las
veces no los conocemos.
Todos los parmetros nos son indispensables, tanto para la simulacin, como
para todo el anlisis terico que se presente del sistema, el cual debe coincidir con
los resultados experimentales.
Algunos de los parmetros mencionados en este apartado son fcilmente
medibles; pero otros no, como
o
. Por otra parte
se podras
calcular de la ecuacin
parmetros persiste.

, sin embargo el problema de conocer estos

Existen varios trabajos reportados donde se intentan estimar estos


parmetros14, ya sea en caso de modelado para realizar la simulacin y el
control, o para propsitos de control de calidad, sin embargo la estimacin de la
friccin viscosa
se omite en la mayora de ellos.
Por lo que respecta a los parmetros incluidos por el lazo interno de corriente,
algunos son definidos por nosotros y otros pueden ser calculados, sin embargo,
an no conoceramos la totalidad de ellos.
En nuestro caso la opcin utilizada fue la identificacin indirecta de todos estos
parmetros, a travs del conocimiento de las constantes y
Dado que son las

Captulo IV: Modelado y simulacin 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 artculo de investigacin4, obtenindose
los siguientes valores estimados:
y
.

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


En principio, si cerrramos el lazo de control en posicin 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:
1

Ki

Va

b
Kp
s+a

1
s

Kd

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

Multiplicando por

tenemos que:

nos queda:

Captulo IV: Modelado y simulacin del motor de c.d.

75

Ki

Va

b
Kp

s2 +(a+bKd )s

Figura 35.- Primera simplificacin del modelo del servomotor en lazo cerrado
con un controlador PID, y con un lazo interno de control en corriente.
Continuando con la simplificacin de los bloques del controlador PI, junto con
el bloque
. Nos queda el denominamos
.

Va

bKp.s+(bKi )
s3 +(a+bKd)s2

Figura 36.- Segunda simplificacin del modelo del servomotor en lazo


cerrado con un controlador PID, y con un lazo interno de control de corriente.
Finalmente tenemos que la funcin de transferencia del sistema completo
en lazo cerrado, con un controlador PID en posicin y con un lazo interno de
corriente es de tercer orden, y es la siguiente:

Captulo IV: Modelado y simulacin del motor de c.d.

76

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


Uno de los requerimientos ms 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 mtodos para
comprobar la estabilidad de los diferentes sistema.
Para este propsito, y en nuestro caso, nosotros escogimos el criterio de
estabilidad de Hurwitz3.
Este anlisis de estabilidad del sistema en lazo cerrado se realiza de una
manera simple, comparamos el polinomio caracterstico del denominador de
nuestra funcin de transferencia final, dada por la ecuacin
, con el
polinomio caracterstico del denominador de los sistemas de tercer orden en
general, a saber:

La condicin necesaria segn el criterio de estabilidad de Routh3 es que


todos los coeficientes sean positivos, por lo tanto tendrn races con partes reales
negativas. La condicin de suficiencia para la estabilidad se da si
.
Captulo IV: Modelado y simulacin del motor de c.d.

77

En nuestro caso debe cumplirse que:


perfectamente posible, a menos que seleccionemos a
con respecto a las dems constantes y parmetros.

, lo cual es
casi infinitamente grande

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
anlisis de los determinantes menores.

IV.3.- Simulacin:
En el siguiente apartado se presenta la simulacin del modelo matemtico
encontrado para el sistema del servomecanismo. Para esto se utiliz MatlabSimulink 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 simulacin,
cerrando el lazo con un controlador PID, para una entrada de referencia tipo
escaln positivo y negativo.
El control en esta simulacin se llev a cabo en posicin a la salida contra
voltaje de entrada en la armadura del servomotor, tal como se realiz el modelo.
La sintonizacin de las ganancias del controlador que proporcion una mejor
respuesta fue con:
.

1
0.1

Va

w
100
7
s+2.5

Signal
Generator

1
s

Ref /Sal

Kp
Kd
0.5

Figura 37.- Modelo del servomotor en lazo cerrado con un controlador PID, y
con un lazo interno de control en corriente, para simulacin.

Captulo IV: Modelado y simulacin del motor de c.d.

78

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


efectos de simplificacin, 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 posicin filtrada.
La respuesta del sistema simulado con la sintonizacin indicada es muy buena,
se podra decir que estamos en el caso crticamente amortiguado para un sistema
de tercer orden, la grfica de la referencia en posicin contra la salida es la
siguiente:

Amplitud (volts)

0.5

-0.5

-1

2988

2990

2992

2994

2996

2998 3000
Tiempo

3002

3004

3006

3008

Figura 38.- Grfica de simulacin del modelo del servomotor en lazo cerrado
con un controlador PID en posicin, y con un lazo interno de control en corriente.

Captulo IV: Modelado y simulacin del motor de c.d.

79

CAPITULO V.- CONTROL EN TIEMPO REAL


En este ltimo captulo presentamos los resultados experimentales
obtenidos con nuestra plataforma de enseanza controlando diferentes variables y
utilizando diferentes leyes de control, tambin 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 ms precisa mencionaremos que se realiza el control en
velocidad y en posicin 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 captulos anteriores, en esta parte solamente
recordaremos que la plataforma de programacin est basada en Matlab 2007, la
programacin de los controladores se lleva a cabo con los bloques de Simulink, el
cual se encuentra trabajando bajo la aplicacin de tiempo real Ardence RTX 7.0WinCon 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 posicin, lo anterior mediante un derivador con un filtro
pasa bajas, mas otro filtro pasa bajas. Se requirieron los filtros mencionados dado
que la seal de posicin, para esta tarea, presenta mucho ruido, y la derivada
amplifica las altas frecuencia.
Para este experimento, la sintonizacin se llev a cabo de manera emprica,
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 desempeo 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
Captulo 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 grfica de las seales de referencia contra la salida en
velocidad.
Como lo explicamos con anticipacin, el puerto serie de la PC pude manejar
una velocidad de comunicacin mxima de 115,200 bauds, sta velocidad es la
que estamos usando para la comunicacin con el dsPIC de nuestra plataforma, de
tal manera que considerando adems el nmero de datos que se transfieren; el
mximo 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 ms detallada, en la siguiente figura 34 se muestra la grfica de
las seales de inters, es decir, de la referencia contra la salida en velocidad. En
esta figura se pueden apreciar pequeas oscilaciones en el seguimiento que se
hace de la velocidad de referencia, lo anterior es debido a las variaciones que se
tienen en la estimacin de la velocidad, ya que no la estamos sensando. No
obstante podemos observar que el control de velocidad se realiza correctamente.

Captulo V: Control en tiempo real

81

Figura 40.- Grfica en tiempo real de la referencia contra la salida en velocidad,


utilizando un controlador PI.

V.2.- Control de posicin en tiempo real del servomecanismo:


El modelo de Simulink utilizado en este segundo caso, est basado en un
controlador PID, utilizando como referencia, en posicin, una seal 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:

1
y

300s

300

s+300

s+300

1
yp

Figura 41.- Implementacin de la parte deriva del controlador a partir de una


salida en posicin.
Los valores de las ganancias que nos permitieron el mejor desempeo del
controlador son:
y
Si comparamos estas ganancias
Captulo V: Control en tiempo real

82

con las utilizadas en la simulacin llevada a cabo en el captulo anterior, podemos


comprobar que son muy parecidas. A saber:
.
Consideramos que las pequeas diferencias que se observan son debidas a
varios factores; a las dinmicas no modeladas del servomotor que se est
controlado, a las desviaciones que existen entre los parmetros reales de la planta
y los estimados, y a las diferencias que siempre se presentan entre una simulacin
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 posicin 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 grfica de las seales de referencia contra la salida
en posicin.

Figura 42.- Pantalla completa de la computadora personal con el control de


posicin, incluyendo todas las ventanas.
De manera ms detallada, siguiente figura 37 nos muestra la grfica de las
seales de inters, es decir, de la referencia contra la salida en posicin. En esta
figura se puede apreciar la respuesta crticamente amortiguada de nuestro sistema
de segundo orden respecto a una entrada escaln. Es decir podemos observar
que el control se realiza correctamente.

Captulo V: Control en tiempo real

83

Figura 43.- Grfica en tiempo real de la referencia contra la salida en posicin,


utilizando un controlador PID.
Tambin de manera detallada, en la siguiente figura 38 se muestra la
grfica del error entre la seal deseada en posicin y la salida real del sistema,
aqu se observa que prcticamente solo existe error cuando cambia la seal de
referencia, es decir en el estado transitorio, y que en el estado estacionario es
error es prcticamente cero.

Figura 44.- Grfica de la seal de error para el control de posicin.

Captulo V: Control en tiempo real

84

V.3.- Control en posicin en tiempo real de un brazo robtico:


De manera similar al trabajo presentado en el inciso anterior, en este
apartado se presentan los resultados experimentales del control en posicin con
un controlador PID. Solo que en esta parte se le agreg al servomecanismo un
pequeo brazo robtico.
No es el objetivo de esta tesis presentar el modelo matemtico 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
desempeo del controlador son:
y
las que no
parecidas a las utilizadas en la simulacin llevada a cabo en el captulo anterior,
dado que en este caso estamos controlando un bracito robtico.
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


posicin de un brazo robtico.
En la siguiente figura 40 se muestra la grfica de las seales de inters, es
decir, de la referencia contra la salida en posicin del brazo. En esta figura se

Captulo V: Control en tiempo real

85

puede apreciar la respuesta crticamente amortiguada de nuestro sistema de


segundo orden respecto a una entrada escaln.

Figura 46.- Grfica en tiempo real de la referencia contra la salida en posicin del
brazo robtico, utilizando un controlador PID.
Tambin de manera detallada, en la siguiente figura 41 se muestra la
grfica del error entre la seal deseada en posicin y la salida real del sistema,
aqu se observa que prcticamente solo existe error cuando cambia la seal de
referencia, es decir en el estado transitorio, y que en el estado estacionario el error
es prcticamente cero.

Figura 47.- Grfica de la seal de error para el control de posicin para un


brazo robtico.
Captulo V: Control en tiempo real

86

V.4.- Seguimiento de una trayectoria senoidal:


Existen dos problemas fundamentales en el Control Automtico; la
regulacin y el seguimiento de una trayectoria. La regulacin la podemos
entender como el sostenimiento de una seal en determinado punto por un lapso
de tiempo determinado. Es decir como el control en posicin. El seguimiento de
una seal no requiere mayor explicacin.
En este apartado presentamos los resultados experimentales del
desempeo de nuestra plataforma realizando el seguimiento de una seal de
referencia senoidal. El experimento fue realizado con el brazo robtico.
La siguiente figura 42 nos muestra el desempeo de nuestra plataforma
tratando de seguir una seal senoidal de amplitud 1 (una vuelta), con un
controlador PID. Se observa un buen desempeo de la seal de salida, solamente
que con un pequeo desfasamiento. La sintonizacin del controlador utilizada en
este caso es :
.

Figura 48.- Grafica del seguimiento de una seal senoidal con un controlador PID.
Se puede verificar tambin el desempeo de la plataforma y del controlador
en la siguiente figura 43, donde se muestra el error en el seguimiento.

Captulo V: Control en tiempo real

87

Figura 49.- Error de seguimiento de una seal senoidal.

V.5.- Conclusiones:
En la parte de hardware de la plataforma de enseanza podemos concluir
que la utilizacin del DSC (dsPIC30F4012) nos permite reducir la cantidad de
circuitos y por lo tanto el tamao de la tarjeta electrnica principal. De esta manera
el problema de diseo de la plataforma se traslada a un problema de
programacin, como es la tendencia en la actualidad y debemos tenerlo presente.
La plataforma tiene integrado tambin, 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 pequeo, modular y completo.
Este DSC es adems de la serie motor control (MC), por lo que cuenta con
mdulos especializados para el control de motores, como el lector de
codificadores de posicin pticos y las salidas de control PWM, lo cual le permite
hacer las veces de una mini tarjeta de adquisicin de datos, permitindonos
prescindir de ella para poder realizar el control en tiempo real, como lo podemos
constatar a partir de los resultados mostrados en el captulo anterior.
Se comprob tambin que el DSC corriendo a 29.49 MIPS realiza de
manera holgada y sin ningn problema todas las tareas que se le han
programado, cumpliendo con el periodo de muestreo que el controlador le
requiere. La limitacin que se tendra en este sentido, sera debida a la velocidad
mxima de comunicacin del puerto serie de la computadora personal.
Captulo 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 tambin 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 enseanza y desarrollar diferentes
dispositivos mecatrnicos.
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 enseanza prctica del control automtico,

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 requerira utilizar algn dsPIC de la
segunda generacin, como el dsPIC33FJ128MC804; el cual cuenta con dos
mdulos para lectura de codificadores de posicin pticos, dos salidas analgicas,
varias salidas PWM, y varias entradas analgicas.
Tambin es importante utilizar en la plataforma algn puerto de
comunicacin almbrico ms rpido y ms actual, dado que el puerto serie que
utilizamos en este trabajo, estn empezando a dejar de ser incluido en algunas de
las computadoras personales ms actuales. Para resolver este problema a futuro,
proponemos que se redisee la plataforma con el puerto de comunicacin USB
2.0 en el modo high speed o con el USB 3.0.
En el aspecto del control, sera importante probar el desempeo de la
plataforma con algunas otras leyes de control.
La plataforma tambin podra ser habilitada para comunicarse con la
computadora personal de modo inalmbrico. Por ejemplo, agregndole un mdulo
bluetooth, ampliando de esta manera su campo de aplicacin.

Captulo 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 permitira controlar algn
servomecanismo a distancia o desde una pgina web.
El dsPIC que estamos usando tambin cuenta con del puerto CAN, el cual
nos permitira hacer aplicaciones de control de servomotores en ambientes de
mucho ruido elctrico, como en automviles, ya que canal CAN trabaja la
comunicacin en modo diferencial.
Es tambin evidente que el prototipo de la plataforma puede utilizarse para
el diseo 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 clculo de la velocidad, etc. pueden ser discretizadas y
embebido en el dsPIC. En este caso trabajara como un mdulo de control
completo e independiente de la computadora personal, o usar sta solo para la
sintonizacin del controlador y el despliegue de las variables de control.
En la parte de programacin se podra desarrollar la plataforma para
trabajar con software libre. Por ejemplo Linux, lo cual eliminara los costos de las
licencias.
En este mismo sentido, sera conveniente utilizar otro software para el
control de tiempo real, esto en sustitucin del Ardence-Wincon, ya que este
paquete tiene un costo ms o menos elevado y es un tanto inaccesible para las
escuelas pblicas de educacin 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.

Captulo V: Control en tiempo real

90

Bibliografa y Pginas 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, Ingeniera de Control Moderno 4. Edicin, 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
Gutirrez, 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 Diseo prctico de aplicaciones, Jos Mara Angulo Usategui, Aritza
Etxebarra Ruiz, Ignacio Angulo Martnez, Ivn Trueba Parra, Mc Graw Hill 2008.
[12].- Estudio comparativo de mtodos de identificacin en lazo cerrado para un
servomecanismo, Antonio Concha Snchez, Tesis de Maestra, CINVESTAV,
2009.
[13].- The Mechatronics Control Kit for education and control, Mark W. Spong,
Daniel J. Block and Karl strm, IEEE International Conference on Control
Aplications 2001.
[14].- Control en posicin de servomecanismos de corriente directa, Jos Luis
Lpez Mercado, Tesis de Maestra, CINVESTAV, 2005.
[15].- http://www.beyondlogic.org/epp/epp.htm
[16].- http://www.beyondlogic.org/serial/serial.htm#14

Bibliografa, pginas web y apndices

91

Anexo A:
Diagrama elctrico de la fuente de alimentacin:

6
3

SI1

D11
CP1004

32V. SERVOMOTOR
J1

2
1

+ 1

3 -

C1
5000 uF
50v .

C2
0.1 uF +
50v .

R1
3.3k. 1/4w.
D14

FUSIBLE 250VCA 3amp.


PUENTE DE DIODOS

LED

TRANSFORMADOR
127VCA - 9VCA, 300 mamp.
1

T2

5
6

5v . dsPIC

+ 1

3 -

C3
0.1 uF
35v .

J2

U4
LM7805/TO
VIN

VOUT

2
C4
2200 uF
35v .

C3
0.1 uF +
35v .

R1
470 1/4w.
D15

D12
2W005M

2
1

T1

PUENTE DE DIODOS

LED

TRANSFORMADOR
127VCA - 9VCA, 300 mamp.
5
6
4

5v . Puente "H"
D13
2W005M
+ 1

3 -

C5
0.1 uF
35v

J3

U5
LM7805/TO
VIN

VOUT

2
C6
2200 uF
35v

C3
0.1 uF +
35v .

R2
470 1/4w.
D16

T3

2
1

GND

TRANSFORMADOR
127VCA - 24VCA, 2 amp.
JP1
SWITCH 127VAC 10 amp.

GND

J1
CONECTOR AC

PUENTE DE DIODOS

LED

C I N V E S T A V
Title

FUENTES para la ENTREFAZ EPP-dsPIC-PUENTE "H"


Size
A
Date:

Document Number

Rev
1.0

Jos de Jess Meza Serrano


Tuesday , June 07, 2011

Sheet

of

Bibliografa, pginas web y apndices

92

Anexo B:
Diagrama electrnico de la tarjeta principal con el dsPIC30F4012:

2
1

J2
GND, 30v . POT

2
1

1
2
3
4
5

JP2
DEPURADOR

10nf .

1
2
3
4
5

JP1
CODIFICADOR DE POS.

1
2
3
4
5

J1
GND, 5v . PIC
JP3
PUERTO SERIE

PGC

5V

R1 10K.

1
2
3
4
5
6
7
8
9
10
11

C5
C3

0.1 uf .

C4
5V

1200 uf .
R2

5V
U3
4.7K.
SW1
1
2
3
4
5
6
7
33 pf .
7.37MHz

C1

9
10
11

C2
33 pf .

12
5V

13
14

MCLR/Vpp
EMUD3

AVdd
AVss

EMUC3

PWM1L

AN2

PWM1H

AN3

PWM2L

AN4

PWM2H

AN5

PWM3L

Vss

PWM3H

OSC1

Vdd

OSC2

Vss

U1ATX

PGC

U1ARX

PGD

Vdd

FLTA

EMUD2

EMUC2

28

5V

C6
10nf .

27

R3
1K.

U2
BOOTSTRAP 1
OUTPUT 1
DIR. INPUT
BRAKE INPUT
PWM INPUT
Vs POWER S.
GROUND
CURRENT SENSE OUT.
THERMAL FLAG OUT.
OUTPUT 2
BOOTSTRAP 2

PUENTE "H" LMD18200


C7

26
25

4 uf .

24
23
22
21
20
19

J3

5 V C8

2
1

0.1 uf .

SALIDA MOTOR

18
17
16
15

dsPIC30F4012

C I N V E S T A V
Title
ENTREFAZ SERIAL dsPIC-PC con Puente H para Plataforma de Eseanza
Size
A
Date:

Document Number

Rev
1.0 D

Jos de Jess Meza Serrano


Tuesday , June 07, 2011

Sheet

of

Bibliografa, pginas web y apndices

93

Anexo C:
Circuito impreso de la tarjeta electrnica principal, lado componentes.

Anexo D:
Costos del Software de la plataforma:
Los precios de las licencias que se presentan a continuacin son grupales y
para uso acadmico, el grupo es de 25 usuarios. Exceptuando la de Visual Studio
que es por mquina.
PARTIDA
PRODUCTO
1
Suite
Matlab,Simulink,
Symbolic Math Toolbox
2
Real-Time Workshop
3
WinCon 5.2
4
Ardence 7.0
5
Visual Studio 2008

TERMINO
Perpetua
Perpetua
Perpetua
Perpetua
Anual
Total

PRECIO ($USD)
1,375
750
500
500
38
3,163

Bibliografa, pginas web y apndices

94

Anexo E:
Parmetros y caractersticas del DSC dsPIC30F4012:

Parameter Name
Architecture
CPU Speed (MIPS)
Memory Type
Program Memory (KB)
RAM Bytes
Temperature Range C
Operating Voltage Range (V)
I/O Pins
Pin Count
System Management Features
Internal Oscillator
nanoWatt Features
Digital Communication Peripherals
Analog Peripherals
CAN (#, type)
Capture/Compare/PWM Peripherals
Motor Control PWM Channels
Quatrature Encoder Interface (QEI)
Timers
Parallel Port
Hardware RTCC
DMA

Value
16-bit
30
Flash
48
2,048
-40 to 125
2.5 to 5.5
20
28
PBOR, LVD
7.37 MHz, 512 kHz
Fast Wake/Fast Control
1-UART, 1-SPI, 1-I2C
1-A/D 6x10-bit @ 1000(ksps)
1 CAN
4/2
6
1
5 x 16-bit 2 x 32-bit
GPIO
No
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

Bibliografa, pginas web y apndices

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/10bit 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

Bibliografa, pginas web y apndices

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

Bibliografa, pginas web y apndices

Vous aimerez peut-être aussi