Вы находитесь на странице: 1из 10

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

Congreso 2010, Pgina 1




Diseo de un controlador PID discreto para el control de un motor DC
utilizando los recursos de un DSPIC.

Martha Isabel Aguirre Patio; Jonathan Cagua Ordoez
ac electronics
Departamento de Desarrollo Tecnolgico
Ecuador
Correo-e: martha_aguirre@hotmail.es; jonathan.cagua@hotmail.com

Abstract. Hoy en da, a pesar de la abundancia de sofisticadas herramientas y mtodos avanzados de control, el
controlador PID es an el ms ampliamente utilizado en la industria moderna, controlando ms del 95% de los
procesos industriales en lazo cerrado. Este artculo presenta un sistema de control de un motor DC usando un
PID, permitiendo tambin la identificacin de la planta as como de su funcin de transferencia. Los programas
nos permiten no solo la identificacin de la planta sino la monitorizacin del nmero de revoluciones en el giro
del motor. La diferencia de muchos proyectos es el medio de transmisin de datos, pues se lo realiza usando
antenas con comunicacin inalmbrica, enlazando la computadora al circuito que controla el movimiento del
motor.

1 Introduccin.
Este proyecto tiene como objetivo disear un
controlador PID para un motor DC utilizando los
recursos del dspic30f4011, como software de
aplicacin tendremos a Matlab y Labview para la
identificacin del sistema y adquisicin de datos
respectivamente.
Para la programacin del dsPic usaremos Microbasic
y para el puerto virtual elaborado en un 18f2550 para
el envi y recepcin de datos conectado a la PC
usaremos PICC, el medio de transmisin ser una
comunicacin del tipo Wireless.
2 Fundamento Terico.
El diseo del controlador PID es implementado en un
dsPic30f4011 cuya programacin es realizada en
Microbasic en donde se incorpora la identificacin
del sistema en lazo abierto para luego obtener su
funcin de transferencia con ayuda de las
herramientas propias de Matlab, adems Microbasic
se enlaza con Labview en una interfaz grfica para la
recepcin de datos e interaccin con el sistema en
tiempo real.
La transmisin de datos se lo hace por medio de
comunicacin inalmbrica mediante la modulacin
FSK, para esto se usa modulos HTMR434 para envi
y recepcin de datos. Para la conectividad de la PC a
la comunicacin se usa un puerto virtual usando el
18f2550 programado en PICC, que permite la
transmisin de datos va rs232 para las interfaces
realizadas tanto en Matlab como Labview.
En la figura 1, se puede apreciar un diagrama de
bloques completo y detallado de todo el estudio a
desarrollar, en donde el PID est implementado en el
dsPic, la planta lo representa el motor y el Encoder
ser el que nos proporcione los RPM del motor.

Fig.1. Diagrama de Bloques del diseo.
2.1 Motor DC
El motor de corriente continua es una mquina que
convierte la energa elctrica en mecnica,
principalmente mediante el movimiento rotatorio.
Esta mquina de corriente continua es una de las ms
verstiles en la industria. Su fcil control de posicin,
par y velocidad la han convertido en una de las
mejores opciones en aplicaciones de control y
automatizacin de procesos.
Una mquina de corriente continua (generador o
motor) se compone principalmente de dos partes, un
estator que da soporte mecnico al aparato y tiene un
hueco en el centro generalmente de forma cilndrica.
En el estator adems se encuentran los polos, que
pueden ser de imanes permanentes o devanados con
hilo de cobre sobre ncleo de hierro. El rotor es

2
generalmente de forma cilndrica, tambin devanado
y con ncleo, al que llega la corriente mediante dos
escobillas. [1]

Fig.2. Partes de un motor de corriente contina.
La principal caracterstica del motor de corriente
continua es la posibilidad de regular la velocidad
desde vaco a plena carga.
Control por Ancho de Pulso (PWM)
La regulacin por Ancho de Pulso de un motor de CC
est basada en el hecho de que si se recorta la CC de
alimentacin en forma de una onda cuadrada, la
energa que recibe el motor disminuir de manera
proporcional a la relacin entre la parte alta (habilita
corriente) y baja (cero corriente) del ciclo de la onda
cuadrada. Controlando esta relacin se logra variar la
velocidad del motor de una manera bastante
aceptable.

Fig.3. Modo de operacin del control PWM.
2.2 Controlador PID
La ley de control de un controlador PID est dada
por:

El controlador posee una entrada que es el error del
sistema, diferencia entre el valor deseado y el valor
actual de salida, la seal de control resulta la suma de
tres trminos, uno que es proporcional al error, el
segundo a la integral del error y el ltimo trmino que
es proporcional a la derivada el error. Los parmetros
del controlador son las constantes: proporcional,
integral y derivativa respectivamente Kp, Ti, Td.
Con control puramente proporcional, el error en
estado de rgimen permanente disminuye cuando Kp
aumenta, pero el sistema se hace ms oscilatorio. Al
agregar la componente integradora comprobamos que
su efecto se incrementa a medida que Ti disminuye y
el error en estado estable desaparece.

Fig.4. Esquema del controlador PID
La tendencia a la oscilacin crece a medida que Ti se
va haciendo ms pequea. La accin derivativa tiene
carcter de previsin, lo que hace ms rpida la
accin de control, aunque tiene la desventaja
importante que amplifica las seales de ruido y puede
provocar saturacin en el actuador. La accin de
control derivativa nunca se utiliza por s sola, debido
a que slo es eficaz durante perodos transitorios.
Cuando una accin de control derivativa se agrega a
un controlador proporcional, permite obtener un
controlador de alta sensibilidad, es decir que
responde a la velocidad del cambio del error y
produce una correccin significativa antes de que la
magnitud del error se vuelva demasiado grande.
Aunque el control derivativo no afecta en forma
directa al error en estado estacionario, aade
amortiguamiento al sistema y, por tanto, permite un
valor ms grande de ganancia Kp, lo cual provoca
una mejora en la precisin en estado estable.
Controlador PID Discreto.
Para programar un PID en un dspic30F4011 tenemos
que hacer discreto la ecuacin del PID de la siguiente
manera:

Para discretizar esta ecuacin, se aproxima los
trminos de la integral y la derivada a valores que
sean manipulables en el tiempo discreto.


Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 3

De esta forma el algoritmo del controlador PID
discreto es:

Para controlar la velocidad del motor solo con un
control en modo proporcional se lo puede expresar
con la siguiente ecuacin.

Donde Kp es la constante de proporcionalidad, y(t)
es la velocidad actual del sistema, y R(t) es la
velocidad de referencia del sistema, estas ltimas
medidas revoluciones por minuto (RPM). [2]
2.3 Recursos del DsPic 30f4011
Posee un mdulo conversor A/D de 10 bits y 500
Kbps, con 2 4 muestras simultneas y hasta 16
canales de entrada, incluso con conversin posible en
el modo SLEEP. [3]

Fig.5. Esquema del DSPIC30F4011.
El uso del dsPic30f4011 est bsicamente enfocado a
los PWM que posee, para este proyecto se hace uso
de dos pares de los mismos que alimentaran al puente
H elaborado con transistores de potencia tipo mosfets
IRF540N.
Para poder realizar el diseo del PID, se debe obtener
el desplazamiento y velocidad del motor, y se hace
uso de los pines QEA y QEB, 6 y 7 respectivamente,
a esto se denomina encoder de cuadratura.
Segn sea el ingreso de seales en estos pines
tendremos una determina fase en el movimiento o a
su vez un cambio de fase, esto determina si el motor
gira a la derecha o a la izquierda.[4]

Fig.5. Funcionamiento del Encoder.
3 Especificaciones de hardware.
La parte central del proyecto se encuentra en la
programacin del dspic30f4011 que controla todo el
hardware externo tal como:
Encoder de cuadratura.
Puente H de potencia.
Modulos ht-mr 434
La parte de la transmisin desde la PC se la realiza
por medio del 18f2550 que permite crear un puerto
virtual para la conexin del modulo htmr434 de
transmisin de datos hacia la placa del dspic30f4011
donde se encuentra la antena receptora junto con todo
el sistema para el control motor.
3.1 Encoder de cuadratura.
El motor est continuamente monitoreado por el uso
de un encoder fijado en el eje del mismo, el cual
permite tomar dos lecturas realizadas en dos sensores
emisor-receptor del tipo infrarrojo, estas seales
entran al dsPic para determinar la posicin y la
direccin del motor, la variable a controlar es el
desplazamiento.

Fig.6. Motor con el sistema planteado.
El material utilizado para la construccin del encoder
es plstico con la forma de un disco como se presenta
en la figura 6, el desfasamiento se produce cada 90
grados lo cual nos proporciona la direccin.

4

Fig.7. Representacin grfica del encoder.
Las seales que se originan son ingresadas al dsPic
en los pines QEA y QEB, estos pines son los que nos
permiten calcular el desplazamiento del motor,
mediante el cdigo realizado en Microbasic.
3.2 Puente H de potencia.
Para el control del movimiento del motor se utiliza un
puente H implementado con transistores de potencia
del tipo mosfet; a donde llegan los pulsos de PWM
que son enviados por el dsPic bajo una secuencia de
encendido dependiendo del controlador y en la
situacin en la que este se encuentre.
Para el diseo electrnico del puente H utilizamos 4
mosfets IRF540N conjuntamente con 4 diodos
Mur8100 que se conectan como se describe a
continuacin:

Fig.8. Circuito del puente H con mosfets.
El funcionamiento del puente es muy sencillo, si
llegan los pulsos de PWM a Q1 y Q4 el motor
funciona hacia la derecha; y si los pulsos llegan a Q2
y Q3 el motor funciona hacia la izquierda.
3.3 Puerto serial virtual.
Para el desarrollo de este medio de comunicacin
serial utilizamos el 18F2550 y se lo programa en el
software PICC.
Una vez grabada la programacin del puerto serial en
el Pic; el siguiente paso es buscar un medio para
transmitirlo, para ello utilizamos un dispositivo que
utiliza modulacin por frecuencia, FSK.


Fig.9. Codigo en el 18F2550
El Pic se enlaza con el mdulo a travs de los pines
TRx y Rx que se conectan a los pines DTX y DRX
del mdulo de transmisin respectivamente.

Fig.10. Mdulo HTMR434 y 18F2550.
3.4 HM-TR434.
Es un mdulo inalmbrico UHF transciver, diseado
para aplicaciones que requieran una transmisin de
datos inalmbrica. Una alta tasa de transferencia de
datos, mayor distancia de trasmisin
(aproximadamente 300 metros en campo abierto con
una buena electrnica montada), frecuencias
programables (315, 434, 868, 915 MHz), formatos
UART configurables, y un bajo consumo de corriente
en reposo hacen de este la eleccin ideal. [5]
El protocolo de comunicacin es auto controlado y
completamente transparente para el usuario.
Caractersticas:
Modulacin FSK, alta inmunidad a
interferencias.
Comunicacin Half-duplex en 2 vas
Bandas ISM 315/434/868/915MHz
Frecuencias programables que permite ser
usado en aplicaciones FDMA (frequency
divisin multiple acces)
Conversin de RF a UART auto controlado,
confiable y fcil de usar
Formato UART configurable, con data rate
de 300 - 19200bps
Interfaz UART estndar con niveles lgicos
TTL y RS232 disponibles


Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 5


Dimensiones compactas, 0.100'' separacin
de pines (similar a un conector SIP o header)
y conector SMA para antena


Fig.11. Mdulo HM-TR434
4 Especificaciones de software.
Para la adquisicin de datos desde el motor usamos
Labview donde se muestra los rpm de la velocidad y
para determinar las variables del PID hemos hecho
uso de las herramientas de Matlab.
4.1 Diseo de la aplicacin realizada en
Matlab.
En Matlab se procedi a la identificacin en lazo
abierto mediante los datos obtenidos mediante USB y
transmisin inalmbrica para as obtener la funcin
de transferencia de la planta.
Para esta etapa, utilizamos herramientas propias de
Matlab tales como el GUIDE (interfaz grfica de
usuario en Matlab), identification toolbox y por
ltimo el sisotools.
Para nuestro sistema se presenta la pantalla diseada
en GUIDE, la cual muestra 3 botones; Capturar, Ident
Sis y Hoja de clculo; adems se observa un casillero
en donde se puede seleccionar el puerto de trabajo.

Fig.12. Pantalla diseada en GUIDE.
Al momento de ejecutar la aplicacin con el botn
Capturar, se obtiene los datos en lazo abierto que se
muestran en la figura 12, de igual forma estos datos
se les puede guardar en una hoja de Excel al
presionar el botn de Hoja de Clculo.
La misma aplicacin al momento de ejecutarla
permite guardar los datos como variables de entrada y
salida que automticamente se cargan el workspace
de Matlab, para su posterior uso en la identificacin.

Fig.13. Funcin de envio de variables al workspace.
Con el botn de Ident. Sistema la aplicacin nos
permite abrir la ventana respectiva para comenzar
con la identificacin y poder obtener la funcin de
transferencia de la planta.

Fig.13. Ventana para identificacion de planta.
Despues de realizar todos los pasos necesarios para la
identificacion de la funcion de transferencia llegamos
a:

Fig.14. Ventana para validacin del modelo.
Luego el mejor modelo se lo importa al workspace de
matlab para proceder a obtener la funcin de
transferencia de la planta.
>> g=tf(P1)
Transfer function from input "u1" to output "y1":
11.31
-------------
s + 11.66
Ya obtenida la planta del motor procedemos a la
obtencin del controlador con la ayuda de otra
herramienta de matlab llamada sisotools, con lo que
se obtiene el diagrama de bode y el lugar geomtrico
de las races.

6
Una vez obtenida la el modelo de la planta,
procedemos a usar sisotool para obtener el
controlador con sus constantes.
>> sisotool(P1) recurdese que P1 es el modelo
obtenido en la identificacin.
Teniendo en cuenta un tiempo de estabilizacin (ts),
de ts=0.14s y un overshoot=6% para el diseo del
controlador se realza todos los pasos necesarios para
llegar al objetivo trazado.

Fig.15. Lugar de races con condiciones establecidas
Obteniendo las constantes para el controlador que es
mostrada en la figura siguiente.

Fig.16. Funcin de transferencia del controlador.
Guardamos los datos en el archivo P y en matlab
obtenemos la funcin de transferencia

Con la formula siguiente podremos obtener las
constantes del controlador
) 1 (
) )( (
) (
2 1

z z
z z z z K
t G
D
C

Si la comparamos con la funcin de transferencia del
controlador se obtiene que Kd = 0,009991.
Para la obtencin de Kp y Ki se obtiene utilizando
) (
2 1
z z Kd K
p

y
) * (
2 1
z z Kd K
I

en donde z
1
y z
2
se obtiene igual al compararlo con la funcin de
transferencia del controlador.
Al aplicarla se obtienen:
Kp = 0.61744 Ki = 9.491
4.2 Diseo de la aplicacin realizada en
Labview.
Para establecer la comunicacin serial y lograr la
adquision de datos utilizamos la arquitectura VISA
Virtual Instrument Software Architecture, que
constituye un estndar que permite pedir y obtener
datos desde y hacia instrumentos de medicin, en este
caso nuestra placa USB con los datos de la velocidad
del motor.

Fig.17. Pantalla diseada en labview
La primera parte de la programacin consiste en
configurar al puerto serial con la funcin VISA, en
donde incluimos la velocidad de transmisin y el
nmero de puerto que es seleccionable, adems
consta con un bloque que habilita el sistema cuando
el puerto est abierto, si se produce un error me
presenta un mensaje de aviso y por ltimo se
programa un botn de encendido y apagado.

Fig.18.Inicializacion de la funcin VISA.
La segunda parte de la programacin se considera al
envo y recepcin de datos en la pantalla, para ello se
tienen 4 indicadores de escritura y 2 indicadores de
lectura.
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 7

Son 4 lazos para el envi de datos:
* Envo de datos para mover motor a la izquierda.
* Envo de datos para parar el motor.
* Envo de datos para mover motor a la derecha.
* Envo de datos constantes Kp, Kd, Ki.
Para la recepcin de los datos de velocidad utilizo un
indicador de lectura y una pantalla grfica que me
permita ir mostrando los valores recibidos, para su
programacin utilizo el bloque de lectura de VISA,
una vez que se reciben los datos estos son
transformados a variables de tipo float sin signo.

Fig.19. Programacin para movimiento del motor.
La ltima parte de la programacin consiste en cerrar
el puerto serial de comunicacin.

Fig.20. Programa para cerrar el puerto.
4.3 Diseo de la aplicacin realizada en
Microbasic
Es importante manifestar que todo el proceso de
identificacin del PID se lo realiza en lazo cerrado y
que justamente dentro de nuestra programacin es
nuestro punto de inicio para el diseo del controlador.
En donde se hace uso de los diferentes errores que se
presentan, dichos errores son los errores que se
usaran para el clculo del PID del tipo discreto.

Fig.21. Programacin en Microbasic.
A partir de estas lneas de comando se obtienen
pulsos por modulacin de ancho de pulso (PWM) que
luego pasarn a alimentar por secuencia un circuito
electrnico conocido como puente H controlados por
mosfets.
Los valores de Kp, Ki y Kd que se observa en la
ecuacin son cargados manualmente y enviados por
Labview al dsPic en primera instancia las cargas
luego los interpreta y por ultimo ejecuta al
controlador.
Los valores de los pulsos de PWM controlados son
limitados por las lneas de comando que se observan.

Fig.22. Limitacion del PWM en microbasic.
En el controlador tambin se implemento el control
para el giro del motor la derecha y para el stop del
mismo.

Fig.23. Control del giro del motor en Microbasic.

8
En la figura 24 se observa el circuito del dsPic
30F4011 con las lneas de control utilizadas en el
desarrollo del controlador.

Fig.24. Circuito del dsPic 30F4011.
En donde se observan las 4 lneas que salen de los
pines 35 al 38 por donde circularan los pulsos de
PWM controlados.
5 Diseo e implementacin.
El software usado para el diseo de las diferentes
placas fue PROTEUS que junto con su aplicacin de
ISIS permite modelar las pistas a la conveniencia del
interesado, mientras que ARES permite hacer los
esquematicos.
Para implementar el proyecto se ha hecho uso del
siguiente modelo de maqueta con la base, el motor y
los sensores.

Fig.25. Sistema completo del proyecto.
El circuito para los sensores infrarrojos es mostrado
en la figura 26 en donde se observa que las seales de
los infrarrojos son amplificadas con la ayuda de un
transistor 2N3906 y un amplificador LM358.

Fig.26. Circuito de los sensores infrarrojos.
Para implementar el puente H se hizo uso de los
mosfet IRF540N junto con diodos Mur8100 para
proteccin, para desacoplar de la parte del control se
utilizo optoaclopadores PC817 para separalo de la
parte de fuerza.

Fig.27. Circuito para el puente H
El circuito diseado para el Pic18F255 se muestra en
la figura 28, en donde se observa el Pic con su
respectivo cristal y que controla al puerto USB y a los
mdulos de transmisin HTMR434.

Fig.28. Circuito del Pic 18F2550.
A continuacin los circuitos impresos de las
diferentes placas a usar.

Fig.29. Circuito impreso del controlador.

Fig.30. Circuito impreso del puente H.
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
Congreso 2010, Pgina 9


Fig.31. Circuito impreso para los sensores infrarrojos.
6 Pruebas del proyecto.
La primera prueba desarrollada en el sistema es el
funcionamiento del mismo sin la aplicacin de
ningn valor de constantes calculada, es decir sin
controlador.

Fig.32. Sistema Sin Controlador PID.
En donde se puede observar que el sistema no es
estable al valor de Set Point que aproximadamente es
de 1200RPM.
La segunda prueba es la introduccin de una
perturbacin sin enviar los valores de las constantes
encontradas todava.

Fig.33. Sistema sin PID con Perturbacin
Al igual que el caso anterior el sistema no tiende a
estabilizarse con el valor de referencia que se desea
obtener.
La tercera Prueba consiste en enviar los valores de las
constantes calculadas Kp, Ki, y Kd obtenidas por
medio de las herramientas de LABVIEW en ambos
casos.

Fig.34 Sistema con Controlador PID.
Se observa que el sistema tiende a estabilizarse al
valor de referencia y que se adecua a nuestro sistema,
por lo tanto los valores calculados de las constantes
se consideran vlidos.
La ltima prueba que realizamos es en simulink en
donde colocamos al controlador con sus constante y
la planta del motor y le sometemos a una entrada de
pulsos, obteniendo que el valor de salida es la que
deseamos.

10

Fig.35. Sistema con seal de pulsos controlados.

7 Conclusiones.
Mediante este proyecto se logr cumplir el
objetivo general planteado con anterioridad, en
donde consta el diseo y construccin de un
controlador con las herramientas sealadas.
En la obtencin de los datos en lazo abierto se ve
claramente por la forma de la seal que es
necesaria la implementacin del controlador para
llevar a la estabilidad del sistema.
Los resultados obtenidos mediante la grfica al
momento de aplicar el controlador se puede
observar claramente que el sistema se estabiliza
y funciona de acuerdo a la seal de PWM
generada por el dsPic.
El diseo electrnico implementado en la
construccin del prototipo se construy con toda
la eficiencia y exponindolo a pruebas de
funcionamiento previas para no tener dificultades
en el momento de acoplarlo al sistema completo.
La comunicacin FSK constituye una
herramienta muy til para el desarrollo de este
proyecto ya que me permite enlazar varias
aplicaciones con diferentes funciones dentro del
sistema controlador.

Referencias
[1] Control de un motor brushell dc con frenado
regenerativo, Carlos Fernando Escobar-Jose
Alejandro Martinez-German Alberto Tellez,
Pontifica Universidad Javeriana, Departamento
de Ingeneria Electronica Bogota, 2005.
[2] Sistema de Control Automatico, Sexta edicion,
Benjamin C Kuo, Prentice Hall, Mexico, 1996.
[3]
ww1.microchip.com/downloads/en/devicedoc/7
0135C.pdf, Microchip, datasheet dspic30f4011
[4] Microcontroladores Avanzados Dspic.
Controladores digitales de seales. Arquitectura,
programacin y aplicaciones, Garca Zapirain,
Begoa, I. Angulo Martnez, Jos Mara Angulo
Usategui, Thomson Paraninfo 2006
[5]
www.satistronics.com/userfiles/file/DIY%20
Module%20and%20kits/HM-TR.pdf, SatisTronics,
datasheet HMTR 434









Copyright 2010. Martha Aguirre y Jonathan Cagua: El autor delega a la Organizacin del Segundo
Congreso Virtual de Microcontroladores la licencia para reproducir este documento para los fines del Congreso
ya sea que este artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las
ponencias del Segundo Congreso Virtual de Microcontroladores.

Вам также может понравиться