Está en la página 1de 10

Objetivos

• Diseñar e implementar un PID para un control de velocidad de un motor de DC.

Introducción

En el presente proyecto se implemento un algoritmo PID digital para controlar la velocidad de un motor, el objetivo
del control es mantener una velocidad igual a la referencia aun en presencia de perturbaciones. El sistema se
implemento utilizando un motor de DC el cual es controlado por una señal PWM aplicada a un Puente H, como
sensor de retroalimentación de velocidad se ocupa un resolver y el control se lleva a cabo en un microcontrolador
PIC18F4550 que además de tener módulos ADC y PWM permite la comunicación USB con la computadora en
donde se visualizan los datos y se manda la referencia de velocidad.

Descripción General del Sistema

El microcontrolador adquiere una señal de referencia de velocidad y una señal salida de velocidad, la primera se
obtiene de la computadora vía USB, y la segunda del ADC integrado, estas señales pasan por el algoritmo PID en el
microcontrolador para generar una señal de control por medio del PWM

A continuación se muestra un diagrama a bloques del sistema implementado.


Bloques Funcionales

El sistema para medir la velocidad del motor costa de un resolver acoplado, el cual nos dará una señal senoidal
cuya frecuencia depende de la velocidad a la que gire, también costa de un comparador para obtener una señal
cuadrada y libre de ruido y finalmente de un convertidor de frecuencia a voltaje el cual nos dará un voltaje de DC
proporcional a la frecuencia de entrada y por lo tanto también proporcional a la velocidad del motor.

A continuación se muestra con más detalle cada uno de los elementos del sistema descrito anteriormente.

Motor

El motor a consta de las siguientes características:

Salida 9.2W

Voltaje 24V

Corriente 0.65A

Torque mN-m

Velocidad 3700 rev/min

Peso 300gr

Pulsos por revolución 12

Comparador

La señal senoidal se debe acondicionar para obtener una señal cuadrada mediante un comparador, en este caso se
eligió el comparador LM311 el cual nos entrega a su salida señal lógica de 5V.
Convertidor de Frecuencia a Voltaje

La conversión de frecuencia a voltaje está a cargo del KA331, con valores calculados para obtener 5mV por Hz
mediante la siguiente relación:

Así la salida del convertidor de frecuencia a voltaje cumple la siguiente relación

  0.005

El circuito sensor completo:

La relación Final para obtener las RPM del motor es la siguiente:



 60  1000
0.005 12
Donde: RPM son las revoluciones por minuto,  es el voltaje de salida del convertidor f-V, el 0.005 es la constante
que relaciona la frecuencia del motor con el voltaje, el 12 es el numero de pulsos/rev, el 60 son los segundos que
tiene un minuto.

La siguiente imagen muestra la señal salida del resolver y con la salida del comparador:

A continuación se muestra la salida de DC del convertidor de frecuencia a voltaje junto con la del comparador. Para
712Hz nos entrega un voltaje de 3.58 que es aproximadamente lo que se esperaba ya que el convertidor entrega
5mV/Hz (712)X(0.005)=3.56

La salida del convertidor de frecuencia a voltaje pasara al ADC donde la velocidad del motor se convertirá en un
dato digital.

Puente H
Para recibir la señal PWM y darle fuerza al motor se utiliza el puente H L293D el cual se muestra a continuación:

Microcontrolador

Se ocupo el PIC18F4550 por que tiene soporte USB además de módulos PWM y ADC lo que lo hace ideal para el
proyecto.
Función de Transferencia del Sistema

La función de transferencia del sistema se obtuvo experimentalmente midiendo la respuesta en el tiempo del
sistema lo cual arrojo los siguientes resultados:

El sistema alcanza un máximo en 4.04V lo que corresponde a 808Hz que a su vez a 67 vueltas/segundo lo que da
4040 rev/min. Y el tiempo de estabilización es de 125ms.

Los datos anteriores se pueden verificar a en las siguientes figuras que muestran los cursores de tensión y tiempo:

   
El motor tiene una función de transferencia de la forma   =
     


A partir de las medidas en el osciloscopio se calculan los parámetros  y  :

".#"
  4.04 y  24 así    0.16833
$"
Ahora  0.64  2.5856 el tiempo que le tomo al sistema en llegar a ese valor fue de aproximadamente
17.5ms por lo tanto   17.5()


Así *   57.14 y *$  *  9.61


  #.-.//
Con esto la función de transferencia del motor es:  #.#01 2
 

A continuación se muestra la respuesta al escalón unitario en matlab.

La siguiente imagen muestra la respuesta al escalón de magnitud 24


Como podemos ver el coincide con la experimental ya que el sistema alcanza un máximo en aproximadamente 4 y
en el valor de 2.58 esta dentro de los valores esperados alrededor de los 17ms.

Sintonización de los parámetros PID

La sintonización de los parámetros PID se puede hacer a partir de la función de transferencia, o a partir de la
respuesta al escalón por el método de Ziegler y Nichols.}

Aunque ya se disponía de la función de transferencia, se escogió el método de el método de Ziegler y Nichols


debido a su simplicidad, además de que no tenemos parámetros específicos de desempeño que seguir.

Analizando la respuesta en el tiempo obtenida se encuentra que T=0.025 y L=0.005

5 6
Así tenemos que: 34  1.2  6 78  29  0.01 7:   0.0025
6 $

Para elegir el periodo de muestreo se ocupa el criterio de 1/10 la constante de tiempo del sistema. Así tenemos

que: ;   1.75().
#

Algoritmo PID

Se implemento el siguiente algoritmo de control PID:

(Calculo de Coeficientes )

bi := K*h/Ti;
ad := Td/(Td + N*h);
bd := K*Td*N/(Td + N*h);

(Calculo de la Señal de Control)


e= ysp - y
up := K*(beta * e);
ud := ad*ud - bd*(y - yold);
u := up + ui + ud;

(Actualización de Estados)
ui := ui + bi*(e);
yold := y;

Diagrama Esquemático