Está en la página 1de 14

Control Digital

Departamento de
Elctrica y Electrnica
Control Digital
ING. RODOLFO GORDILLO

Tema: Control de velocidad


de Motor DC
Alumnos:
1. lvarez Marcelo
2. Andino Cristian
3. Esparza Alex

4. Rodrguez Diego

1. Tema:
Sistema de control de velocidad de un motor DC mediante Arduino y Matlab

2. Objetivos:
2.1.
-

2.2.
-

Objetivo General:
Implementar un controlador digital de un motor de voltaje DC mediante el
microcontrolador Arduino y en software de Matlab
Objetivos Especificos:
Obtener mediante el microcontrolador Arduino la planta del sistema de control de
un motor DC.
Realizar los calculos del controlador necesario para control de velocidad del motor
DC y traducirlo mediante el software de Matlab.
Evaluar los resultados obtenidos del sistema de control y verificar si el controlador
es adecuado para el motor DC.

3. Marco Teorico
3.1.

CONTROLADOR DE ACCION PROPORCIONAL E INTEGRAL (PI)

En realidad no existen controladores que acten nicamente con accin integral,


siempre actan en combinacin con reguladores de una accin proporcional,
complementndose los dos tipos de reguladores, primero entra en accin el regulador
proporcional (instantneamente) mientras que el integral acta durante un intervalo de
tiempo. (Ti= tiempo integral)
La Funcin de transferencia del bloque de control PI responde a la ecuacin:

Donde Kp y Ti son parmetros que se pueden modificar segn las necesidades del
sistema. Si Ti es grande la pendiente de la rampa, correspondiente al efecto integral ser
pequea y, su efecto ser atenuado, y viceversa.
Respuesta temporal de un regulador PI.

Por lo tanto la respuesta de un regulador PI ser la suma de las respuestas debidas a un


control proporcional P, que ser instantnea a deteccin de la seal de error, y con un
cierto retardo entrar en accin el control integral I, que ser el encargado de anular
totalmente la seal de error.

3.2.

CONTROLADOR PI DISCRETO

Para obtener el modelo de funcin de transferencia G(s) que represente las variaciones
de salida por efecto de las variaciones de entrada de la planta, se aplica en lazo abierto
una seal constante de entrada que estabilice la salida de la planta en una tensin que
equivale al punto de operacin de salida de 3 voltios.

Luego se producen cambios de entrada para que la salida vare alrededor de ese punto
de operacin. Se han registrado mediante un sistema de adquisicin de datos los datos
de entrada y salida de la planta.

Error: Para el error en la computadora, puede ser representada como el error en


porcentaje, es decir normalizar la seal de error.

Toda la ganacia obtenida del error es determinado por un rango de porcentaje que
determina el cambio de la salida de error que esta expresada de 0 a 100%. En el
computador el error DE puede ser expresado por:

Donde: DV= Medida de la entrada


DSP= Setpoint
DMAX= Maximo Rango
DMIN= Minimo Rango

3.3.

OBTENCION DEL MODELO EMPIRICO

Los pasos para encontrar un modelo emprico son:


-

3.4.

Identificacin: escoger el modelo para el proceso


Estimacin: calcular los coeficientes de mejor ajuste para el modelo
Verificacin: determinar la validez del modelo
ALGORITMO PI (SEUDOCODIGO)

Rutina de atencin de interrupciones peridicas, clculo de la ecuacin de diferencias PI


TI1_EnInterrupcin:
LeaConsigna(rk);
LeaRealimentacin(yk);
ek = rk-yk;

/* Puede optimizarse con algoritmo con preclculo */

mk = (256*mk_1 + 264*ek - 248*ek_1)/256;


EscribaAccionControl(mk);
mk_1 = mk;
ek_1 = ek;
FindeInterrupcin;

3.5.

ENCODER

Existen dos tipos de encoder: el absoluto y el incremental. Voy a tratar exclusivamente


el encoder incremental porque es el ms sencillo de construir, econmico y adems
puede tener la resolucin que desees. Una vez que tienes la posicin "cero", el encoder
incremental se comporta igual que un encoder absoluto

El disco no ha de ser de plstico porque la luz infrarroja suele atravesar la mayora de


ellos. La mejor opcin es usar cartn rgido o chapa de una lata, ambos se pueden
"mecanizar" con unas simples tijeras. El cartn rgido lo puedes conseguir de alguna
vieja libreta de "tapa dura". Usa un pin de plstico o pequeo engranaje que encaje
con el eje del motor y pegar el disco dentado con pegamento instantneo al pin o
engranaje para hacer de base al disco del encoder. De esta forma evitars que el disco se
mueva fuera de donde debe y se mantenga siempre plano. Las aspas (o dientes) y los
vacos entre las aspas (o dientes) han de ser igual o un poco mayor que las dos foto
barreras juntas.

4. Procedimiento de Diseno:
4.1.

Identificacin De La Planta.

Como primer paso se escogi un motor DC de 5 voltios. El cual se acopl un encoder con 16
huecos y para leer los pulsos se coloc un sensor ptico que lee un bit positivo cuando es
negro y un bit negativo cuando es transparente.

Se realiz un pequeo programa en Matlab que inicia el motor con 40 bits (rango de 0 a 255) a
travs de la salida PWM de la tarjeta Arduino MEGA necesario para romper la inercia del
motor. Despus de un tiempo sube a su mxima velocidad es decir con 255 bits.
Los datos que se obtienen en esa transicin son guardados en un vector el cual permitir
obtener la funcin de transferencia.
Se obtuvieron los siguientes resultados en MATLAB:

Debido a que existen demasiados picos de voltaje por cada muestra se decidi modificar la
planta fsicamente y cambiar de sensor.

Esta vez se realiz un pequeo programa en Matlab que inicia el motor con 60 bits (rango de 0
a 255) a travs de la salida PWM de la tarjeta Arduino MEGA necesario para romper la inercia
del motor, en este caso es mayor debido a que el acople es mas pesado que el encoder
anterior. Despus de un tiempo sube a su mxima velocidad es decir con 255 bits.
Los datos que se obtienen en esa transicin son guardados en un vector el cual permitir
obtener la funcin de transferencia.
Se obtuvieron los siguientes resultados en MATLAB:

La figura de la esquina superior derecha son los datos obtenidos directamente del motor. Son
150 muestras con su respectivo valor de voltaje. Mientras que la figura de la esquina inferior
derecha es el mismo vector de arriba pero filtrado, es decir se toma la media en cada muestra
para disminuir los picos. Este ser el vector con el cual se obtendr la funcin de trasferencia
de la planta y el sensor por medio de la funcin IDENT de Matlab.
A continuacin se muestra la funcin de transferencia de la plata con el sensor obtenido con
sus respectivas ganancias.

4.2.

Diseo del controlador

Para el diseo del controlador se va a utilizar un PI. Mediante el cual se va a imponer un polo
en -10 para que haya mejor tiempo de estabilizacin. A continuacin se muestra el cdigo de
un script de Matlab que nos permitir simular el funcionamiento del controlador con sus valor
de kp y ki:

Se obtuvo la siguiente grafica que indica la respuesta del controlador en tiempo discreto:

Tambin se realiz una simulacin del controlador mediante la herramienta SIMULINK. A


continuacin se muestra el diseo y la respuesta en tiempo discreto:

Las sentencias del controlador se muestran en el siguiente script ya con los valores de setpoint,
kp, ki, t, y:

En la respuesta en tiempo discreto tambin se simul una perturbacin la cual nos permite ver
el tiempo de restablecimiento del sistema:

4.3.

Implementacin

En el proceso de implementacin se realiz un script que contiene el algoritmo del controlador


antes mencionado sino que en esta ocasin se manda activar la salida de la seal PWM a un
puerto de la tarjeta Arduino mega.
EL siguiente cdigo es el que permite controlar la velocidad del motor:

4.4.

Pruebas en tiempo real

Se realiz pruebas en tiempo real obteniendo los siguientes resultados:


Setpoint: 1500 rpm

SetPoint

Sobreimpulso

Perturbacin
Perturbacin
Frenado del
motor

5. Conclusiones:
-

Para la obtencin de la planta digital del motor DC de una forma ms precisa, se


obtuvo valores desde el instante que el motor est en reposo hasta la mxima
velocidad; guardando dichos valores en un vector en Matlab para as obtener la
planta con el comando IDENT. Esto quiere decir que no se debe obtener valores en
forma escalonada de la velocidad del motor ya que afectara el modelo de la
planta.
El controlador obtenido del sistema es un controlador PI el cual ayuda a obtener
una mejor respuesta de error en el estado estacionario llevndole este a reducir a
cero.

6. Recomendaciones:
-

Para la obtencin de la salida digital de Matlab hacia el Arduino, es necesario


transformar las unidades o trabajar con un solo tipo de unidades, es decir se debe
trabajar en rpm o con el nmero de bits de resolucin pero no con los dentro del
sistema de control porque esto dara un error drstico para el sistema.
Realizar de forma adecuada la planta fsica para que no exista ningn cambio en la
planta digital ya que el mnimo movimiento o cambio puede cambiar toda la planta
obtenida de forma digital.
Verificar que exista una buena lectura del encoder con la planta fabricada porque
puede existir pulsos del encoder que no pueden ser identificados por el mal diseo
de la misma; esta debe estar de forma simtrica.

7. Bibliografa:
[1] Bollinger, John G., Duffie, Neil A. Computer Control of Machines and Processes, AddisonWesley, USA, 1988.
[2] CATEDU, e.-d. (17 de 06 de 2004). Gobierno de Aragon. Obtenido de http://educativa.catedu.es/44700165/aula/archivos/repositorio//4750/4926/html/13_control
ador_de_accin_proporcional_e_integral_pi.html
[3] Johnson, C. D. (2000). Process Control Instrumentation Technology. Columbus, Ohio: Sixth.
Sites, G. (30 de 01 de 2009). Robotica. Obtenido de
https://sites.google.com/site/proyectosroboticos/encoder