Está en la página 1de 11

Prctica No.

2:
Implementacin desde la consola de Arduino de un control PID digital (en
diferencias hacia atrs y de velocidad) para el seguimiento de perles de
velocidad en un motor electrico de CD con retroalimentacin por
Tacogenerador.

Marcos Infante JacobojArmando Zavala Bentez


Diseo de Sistemas Mecatrnicos II j Departamento de Mecatrnica

Resumen

En este documento se presenta la implementacin del control PID digital aplicado a un motor de CD
retroalimentado por tacogenerador haciendo uso de la plataforma Arduino como sistema controlador, el cual
ser el portador del algoritmo del PID. Dicho PID se programar de tres formas: en diferencias hacia atrs,
numrico y de velocidad. La tarea de monitorizacin y envio de perles de velocidad se realizar mediante
el uso de otra tarjeta Arduino a traves de Matlab Simulink.

1.

Introduccin

En la industria, muchas veces es requerido que los motores no rebasen cierta cantidad de corriente, o que
pasen ciertas frecuencias de manera rapida para as evitar oscilaciones indeseadas que puedan daar el equipo;
es por eso que el control de velocidad a sido utilizado desde hace mucho tiempo, pues gracias al seguimiento de
perles adecuados, es posible obtener los benecios deseados de acuerdo a las necesidades.
En la gura 1 se pueden observar algunos de los perles de velocidad mas usados en la industrial, y algunas
de las ventajas de cada uno.

Figura 1: Perles de Movimiento

2.

Objetivo

El objetivo de esta prctica es controlar la velocidad del motor-tacogenerador mostrado en la gura (2)
mediante la programacin del algoritmo del PID en la consola de ArduinoTM , as como tambien conocer las
ventajas y desventajas al usar las distintas formas de programacin.

Figura 2: Sistema Fisico del Motor-Tacogenerador

3.

Desarrollo y anlisis de resultados

El sistema a controlar es el que se muestra en la gura (2) , el cual consta de dos motores acoplados, donde
uno funge como motor, y el otro como tacogenerador, el cual nos proporciona la seal a controlar.
Dado que el proposito de esta practica no es el de modelar el sistema, a continuacion se presenta el modelo
obtenido en cursos anteriores, el cual queda expresado en la ecuacin 1 :
138
(1)
+ 19035 + 138
De igual forma en el curso pasado se obtuvieron las ganancias del controlador en tiempo continuo que
satisfacieran el comportamiento del sistema a controlar (ecuacin 1 ); como se sabe el controlador PID en
tiempo continuo tiene la siguiente forma:
() =

() = () +

() +

(2)

Las ganancias obtenidas del controlador PID en tiempo continuo son las siguientes:

( ) = 0445

( ) =
= 19

( ) = = 000012

Dado que los controladores digitales son en tiempo discreto, se necesitan las ganancias del controlador
discretizadas, para ello se tienen las ecuaciones (3), (4 ) y (5) que relacionan las ganancias continuas con las
discretas. Como ya se tienen las ganancias continuas, bastar con ingresarlas en las ecuaciones (3), (4 ) y (5) y
as obtener las ganancias discretas. Ademas se necesita un tiempo de muestreo el cual ser de 10 milisegundos,
i.e. = 10.


( ) = 05
2


( ) = 005


( ) = 048

(3)
(4)
(5)

Ya que tenemos las ganancias del controlador PID en tiempo continuo y discreto pasaremos a realizar la
programacin desde la consola de Arduino. Como se coment anteriormente para esta prctica necesitaremos
2 tarjetas Arduino, una de ellas desempeara el papel de controlador digital, la cual llevara programado el
algoritmo del PID, mientras que la otra mandar la referencia y adquirir la respuesta de la planta para visualizar
el comportamiento del sistema. Esta adquisicin se realizara con la ayuda de Simulink. La programacin de
bloques para el tratamiento de la seal se muestra en la Figura 3.

Figura 3: Diagrama a bloques de envo/adquisicin con Simulink-Arduino

3.1.

PID Numerico

Al decir PID Numerico, no solo nos referimos a que el sistema sera digital, sino que la ecuacin del PID
continuo se aproximara mediante metodos numericos para poder asi llevarlo a un algoritmo programable, es
decir, mediante la aproximacion de la parte integral la cual se hace por una sumatoria innita del error y la
derivativa por una diferencia de errores sobre un delta de tiempo.
Un punto a resaltar en este metodo es que, dado que el PID que se programara es una aproximacin de las
partes continuas del controlador, sera necesario utilizar las ganancias en tiempo continuo previamente obtenidas.
La ecuacin que se utilizar para esta programacion ser la ec. 6

() = () +

() +

=0

(6)

Las aproximaciones de las dos partes(Integral y derivativa) y la forma del control se programaron en la
consola Arduino y se muestra en la Figura 4.
Ya con el PID numerico programado se procede a realizar la pruebas pertinentes. Los resultados se muestran
el las guras (5) y (6),donde se observa el seguimiento de los perles de velocidad Trapezoidal y sinusoidal
respectivamente.

Figura 4: PID en forma numerica

Perfil de Velocidad trapezoidal

4.5

Salida del motor controlada


Referencia

Velocidad del motor escalada a voltaje (V)

3.5

2.5

1.5

0.5

10
Tiempo t [s]

11

12

13

14

15

16

17

18

19

20

Figura 5: Seguimiento del perl de velocidad Trapezoidal del sistema controlado mediante PID numerico.

Seguimiento del perfil y(t)=2sin(t)+2.5

Referencia
Salida controlada del motor

4.5

Velocidad del motor escalda a voltaje (V)

4
3.5
3
2.5
2
1.5
1
0.5
0

10

11

12
13
Tiempo t[s]

14

15

16

17

18

19

20

Figura 6: Seguimiento del perl de velocidad Sinosoidal, dado como () = 2 sin() + 25 mediante el uso del
controlador en la forma Numerica.

3.2.

PID en Diferencias hacia atras

El PID en diferencias hacia atras resulta de la discretizacin del PID en forma posicional de la ecuacin 2,
y su obtencin se muestra a continuacin.

() =
()
()
1
0
1
2
()

=
=
=
=
=
=

()

= +
+ (1 1 )
()
1 1
( + + ) ( + 2 ) 1 + 2
1 1
1
+ +
( + 2 )

0 () + 1 1 () + 2 2 () 1 1 ()

(7)
(8)

(9)

Despues de obtener la ecuacin 9, se procede a convertirlo en diferencias o retardos, donde 1 () =


( 1)
() = 0 () + 1 ( 1) + 2 ( 2) 1 ( 1)

(10)

Ahora basandonos en la ecuacin 10, pasamos a realizar la programacin en la consola de Arduino de nuestro
controlador PID en diferencias hacia atras, para visualizar as la respuesta de nuestro sistema. La programacin
se muestra en la Figura 7 .
Una vez programado el PID en diferencias hacia atras se procedio a hacer las pruebas de seguimiento de
perles de velocidad, cuyos resultados se muestran en las guras (8) y (9)

Figura 7: Programacin del algoritmo PID en diferencias hacia atrs(programacin directa).

Perfil de velocidad trapezoidal

4.5

Referencia
Salida controlada del motor

Velocidad del motor escalada a voltaje (V)

3.5

2.5

1.5

0.5

10

11

12

13

14

15

16
Tiempo t[s]

17

18

19

20

21

22

23

24

Figura 8: Seguimiento del perl de velocidad Trapezoidal del sistema controlado mediante el controlador PID
en diferencias hacia atras.

Seguimiento de perfil y(t)=2sin(t)+2.5

Referencia
Salida controlada del motor

4.5

Velocidad del motor escalada en voltaje (V)

4
3.5
3
2.5
2
1.5
1
0.5
0

10

11

12
13
Tiempo t [s]

14

15

16

17

18

19

20

Figura 9: Seguimiento del perl de velocidad Sinosoidal, dado como () = 2 sin() + 25 mediante el uso del
controlador PID progrmado en diferencias hacia atras.

3.3.

PID de Velocidad

En este apartado veremos otro mtodo para aplicar un controlador PID a nuestro sistema, el cual tiene por
nombre PID de velocidad.
Una ventaja en uso del Control PID en la forma de velocidad es que no es necesaria la inicializacion cuando
se conmuta de operacion manual a automatica. De este modo, si existen cambios subitos grandes(como una
entrada escaln) en el punto de ajuste o en el inicio de la puesta en operacion del proceso, el sistema presenta
mejores caracteristicas de respuesta que aquel en la forma posicional mostrado en la ecuacin 2.
Para poder llevarlo a la programacino necesitamos la ecuacin que lo describe, la cual se muestra a continuacin:

() = () +
()
()
()

:
:
:

() ()
(1 1 )()
1 1

donde
Esfuezo de control
Referencia del sistema
Salida de la planta

(11)
(12)

Como se puede observar en la ecuacin (11), la referencia solo esta presente en el termino integral, por lo cual
no es posible omitirlo en este tipo de programacion. Posterior a esto, es posible agrupar los terminos de la
ecuacin 11 para poder programarla en forma de algoritmo computacional, la ecuacin a programar es la
numero 13, y el codigo utilizado se muestra en la gura 10.

()(1 1 ) = ()(1 1 ) + (() ()) (1 1 )2 ()


1 = ( + + ) + ( + 2 ) 1 2 +
() = ( + + )() + ( + 2 )( 1) ( 2) + () + ( (13)
1)
8

Ya con el PID en su forma de Velocidad programado, se procedi a observar el comportamiento del sistema
ante las los perles Trapezoidal y sinusoidal respectivamente.
Los resultados se observan en las Figuras (11) y (12).

Figura 10: Programa del PID en su forma de velocidad

Perfil del velocidad trapezoidal

4.5

Referencia
Salida controlada del motor

Velocidad del motor escalado a voltaje (V)

3.5

2.5

1.5

0.5

10
11
Tiempo t[s]

12

13

14

15

16

17

18

19

Figura 11: Seguimiento del perl de velocidad Trapezoidal del sistema controlado mediante el controlador PID
en su forma de Velocidad.

Seguimiento del perfil y(t)=2sin(t)+2.5

Referencia
Salida controlada del motor

4.5

Velocidad del motor escalado a voltaje (V)

4
3.5
3
2.5
2
1.5
1
0.5
0

10

11

12
13
Tiempo t[s]

14

15

16

17

18

19

20

Figura 12: Seguimiento del perl de velocidad Sinosoidal, dado como () = 2 sin() + 25 mediante el uso del
controlador PID progrmado en su forma de velocidad.

10

4.

Conclusiones generales

AUTOR:MARCOS INFANTE JACOBO


En conclusin, fue una practica muy demostrativa, pues se logro el objetivo de controlar el MotorTacogenerador utilizando controladores en tiempo discreto, programados mediante el lenguaje que maneja la
plataforma de Arduino, asi pues, podria ser programado en cualquier otro tipo de microcontrolador o microprocesador el cual cuente con memoria y recursos sucientes para el muestreo y salida de la seal.
AUTOR:ARMANDO ZAVALA BENITEZ
En esta prctica nos centramos en el control del motor va PID programado en la consola Arduino en sus
diferentes tipos como se vio en la prctica anterior. Se observ una mejor respuesta del motor al PID respecto
a la planta analgica, claramente apreciado por las caractersticas que posee el motor. Esta prctica solo nos
sirvi para quedarnos claro la forma de programar un controlador PID y lo que se debe de considerar a la hora
de su programacin
.

5.

Observaciones

Una observacin que si bien se sobreentiende, es el uso de saturadores en los algoritmos de control, los cuales
son presentados como condiciones IF{ }Else{} en los que se le indica al sistema que el controlador no debe dar
una seal mas all de 12
5 = 24 Volts (PWM de 106 en el sistema de 8 bits), y asi evitar que el sistema entregue
mas de 5 volts, pues los motores estan siendo movidos por una tarjeta con alimentacin a 12 volts.
5
Debido a lo anterior, al nal de cada programacin se multiplica la seal de control por 48
, esto resulta de
lo siguiente:
seal de control ) 1024 datos en 5 Volts
PWM ) 256 datos en 5 Volts
Tarjeta del motor ) 256 datos en 12 volts
por lo que se requiere que el PWM que llega a la tarjeta, no sobrepase los 106 datos en PWM
) _ =

~
__ 5

4
12

Referencias
[1] OGATA: Sistemas de control en tiempo discreto 2a edicin.

11

También podría gustarte