7/23/2019 05_PID1
1/12
Prctica 05.- Implementacin de un PID discreto
en una planta de segundo orden.
Francisco Javier Daz GalindoJos ngel Ortiz Len
19 de octubre de 2013
7/23/2019 05_PID1
2/12
ndice general
1. Introduccin 2
2. Marco Terico 3
2.1. Convertidor Analgico-digital (A/D) . . . . . . . . . . . . . . . . 32.2. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.3. Arduino MEGA ADK . . . . . . . . . . . . . . . . . . . . . . . . 42.4. Mtodo Ziegler-Nichols . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Desarrollo y resultados 6
4. Conclusiones 9
Bibliografa 10
Lista de Figuras 11
1
7/23/2019 05_PID1
3/12
Captulo 1
Introduccin
Prcticamente todos los sistemas de control que se implementan hoy en daestn en control computacional. Por lo cual es importante entender perfecta-mente los sistemas controlados por computadora. Un PID es un mecanismo decontrol por realimentacin que calcula la desviacin o error entre un valor me-dido y el valor que se quiere obtener, para aplicar una accin correctora queajuste el proceso.
2
7/23/2019 05_PID1
4/12
Captulo 2
Marco Terico
En este captulo se presenta informacin sobre la teora utilizada para eldesarrollo de esta prctica.
2.1. Convertidor Analgico-digital (A/D)
Un convertidor analgico-digital, tambin conocido como codificador es undispositivo que convierte una seas analgica en una seal digital, usualmenteuna seal codificada numricamente. Dicho convertidor se necesita como una in-terfaz entre un componente analgico y uno digital. Con frecuencia un circuitode muestre y retencin es una parte integral de un convertidor A/D disponiblecomercialmente. La conversin de una seal analgica en la seal digital corres-pondiente (nmero binario) es una aproximacin, ya que la seal analgica
puede adoptar un nmero infinito de valores, mientras la seal digitalpuede formar un conjunto de dgitos finitos. Este proceso de aproximacinse pueden formar mediante un conjunto finito de dgitos est limitada. [1]
2.2. Matlab
MATLAB es un acrnimo de Matrix Laboratory. Actualmente es uno delos entornos de programacin ms usados en el desarrollo de aplicaciones deingenieria e investigacin.
Su lenguaje de programacin esta basado en C y C++. Adems cuenta conun entorno grfico amigable, visualizacin de datos, funciones, grficas 2D y 3D,procesamiento de imgenes, video, computacin numrica, etc. Particularmente,
es una herramienta muy poderosa para realizar aplicaciones en mecatrnica,robtica, control y automatizacin.[2]
3
7/23/2019 05_PID1
5/12
Figura 2.1: Logo de Matlab
2.3. Arduino MEGA ADK
El Arduino ADK es una placa basada en el microcontrolador ATmega2560.Tiene una interfaz host USB para conectarse con celulares basados en Android,usando el IC MAX3421e. Cuenta con 54 pines de entrada/salida digital (15 deellos pueden usarse como salida PWM), 16 entradas analgicas, 4 UARTs (hard-ware de puerto serial), un cristal que oscila a 16Mhz, conexin USB, conectorde alimentacin, un ICSP header y un botn de reset. Adems el software de latarjeta es gratuito y se puede programar desde MATLAB.
Figura 2.2: Placa Arduino MEGA ADK.
2.4. Mtodo Ziegler-Nichols
El mtodo de Ziegler-Nichols permite ajustar o sintonizar un regulador PIDde forma emprica, sin necesidad de conocer las ecuaciones de la planta o siste-ma controlado. Estas reglas de ajuste propuestas por Ziegler y Nichols fueronpublicadas en 1942 y desde entonces es uno de los mtodos de sintonizacinms ampliamente difundido y utilizado. Los valores propuestos por este mtodo
4
7/23/2019 05_PID1
6/12
intentan conseguir en el sistema realimentado una respuesta al escaln con unsobrepulso mximo del 25 por ciento, que es un valor robusto con buenas carac-
tersticas de rapidez y estabilidad para la mayora de los sistemas. El mtodode sintonizacin de reguladores PID de Ziegler-Nichols permite definir las ga-nancias proporcional, integral y derivativa a partir de la respuesta del sistemaen lazo abierto o a partir de la respuesta del sistema en lazo cerrado. Cada unode los dos ensayos se ajusta mejor a un tipo de sistema.
Usando el mtodo 1 de Ziegler-Nichols se obtiene lo siguiente.
Kp = 1,2 T/L (2.1)
Ti = 2 L (2.2)
Td= 0,5 L (2.3)
Para encontrar la funcin del controlador PID usamos:
Gc(s) = Kp
1 +
1
Tis+ Tds
=Kp+
Kis
+ Kd s (2.4)
De donde podemos encontrar los valores deKiy Kd, para expresar la funcinde PID en trminos de s.
Ki=KpTi
(2.5)
Kd= Kp Td (2.6)
Finalmente obtenemos la funcin de transferencia de lazo cerrado que invo-lucra el control PID y la funcin H de la planta con retroalimentacin.
Figura 2.3: Diagrama a bloques del sistema de una planta con un control PID.
5
7/23/2019 05_PID1
7/12
Captulo 3
Desarrollo y resultados
Para poder aplicar el Mtodo 1 de ZIEGLER NICHOLS, la curva de res-puesta de la funcin debe de tener forma de S. Con un punto de inflexin.Podemos obtener esta grafica en MatLab utilizando el siguiente cdigo.
Listing 3.1: Creacin de funcin de transferencia en Matlab. 1 num = [ 0 0 2 . 6 8 ] ;2 den = [ 1 . 91 6 2 . 6 8 ] ;3 h=t f (num, den ) ;4 s t ep ( h )
Para encontrar los parmetros de tiempo de retardo L y constante de tiempoT, dibujamos una recta tangente en el punto de inflexin de la curva. El siguientecdigo encuentra el punto de inflexin en la curva de respuesta de H, a partirde esto se traza una lnea tangente a este punto, y se utiliza la ecuacin de larecta y la pendiente del punto de inflexin, para encontrar los parmetros L yT.
Listing 3.2: Cdigo en Matlab para obtener T y L. 1 d t = 0. 0 5;2 t = 0: d t : 8 ;3 y=step (h , t ) ;4 dy= d i f f ( y ) / d t ;5 [m, p]=max(dy ) ;6 y i=y ( p ) ;7 t i = t ( p ) ;8 L=t iyi/m
9 T=(y(end)
y i ) /m+t i
L
Como resultado de este programa se tiene que:
L= 0,2718
6
7/23/2019 05_PID1
8/12
T = 0,8663
Y su grfica es la siguiente.
Figura 3.1: Grfica que muestra los valores T y L.
Sustituyendo T y L en (2.1),(2.2),(2.3) se obtienen los siguientes valores.
Kp = 3,8255
Ti = 0,5435
Td= 0,1359
Y sustituyendoKp, Ti y Td en 2.5 y 2.6 se tiene.
Ki= 7,0386
Kd= 0,5199
Lo que finalmente nos da la funcin del PID:
Gc(s) =0,52s2 + 3,83s + 7,04
s
Para poder implementar el PID en su forma discreta se utiliza el siguientepseudo cdigo.
7
7/23/2019 05_PID1
9/12
Inicio
Inicializar variables y constantes.
a1,a2,b1e(n) = 0
e(n-1) = 0
u(n) = 0
u(n-1) = 0
Capturar el valor de la variable
c(nT) = ADC
calcular el error:
e(n) = r(nT)-c(nT)
evaluar la accin de control:
m(nT) = a1 e(n) + a2 e(n-1) + b1 u(n-1)
Emitir la accin de control:
DAC(m(n) + m(n-1))
Actualizar variables:
e(n-1) = e(n)
m(n-1) = m(n)
GOTO captura valor de la variable
Finalmente, aplicando el controlador PID discreto en nuestra planta y le-yendo los resultados en Matlab se obtiene la siguiente grfica:
Figura 3.2: Grfica del control PID implementado en la planta.
8
7/23/2019 05_PID1
10/12
Captulo 4
Conclusiones
El mtodo 1 de Ziegler-Nichols es muy prctico al disear un control PIDpara aproximarse a los valores Ki,Kp y Kd que se necesitan para obtener lascondiciones deseadas. Desarrollar el cdigo para resolver el problema en MatLabayuda bastante, ya que se requiere de varias pruebas experimentales con distintosvalores deKi,Kp y Kd. Para luego, observar la respuesta del sistema con estosvalores, hasta encontrar algunos que cumplan con las condiciones deseadas ennuestra planta.
9
7/23/2019 05_PID1
11/12
Bibliografa
[1] Ogata, Katsuhiko (1996). Sistemas de Control en Tiempo discreto. 2da.Edicin. Editorial Prentice Hall Hispanoamericana S. A.
[2] Reyes Corts, F.; Cid Monjaraz, J. & Vargas Soto, E. (2013).Mecatrnica,
Control y Automatizacin. Alfaomega: Mxico.
[3] Reyes Corts, F. (2012). MATLAB Aplicado a Robtica y Mecatrnica. Al-faomega: Mxico.
10
7/23/2019 05_PID1
12/12
ndice de figuras
2.1. Logo de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2. Placa Arduino MEGA ADK. . . . . . . . . . . . . . . . . . . . . 42.3. Diagrama a bloques del sistema de una planta con un control PID. 5
3.1. Grfica que muestra los valores T y L. . . . . . . . . . . . . . . . 73.2. Grfica del control PID implementado en la planta. . . . . . . . . 8
11
Recommended