You are on page 1of 12

UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE

DEPARTAMENTO DE CIENCIAS DE LA ENERGÍA Y MECÁNICA

AUTOMATIZACIÓN INDUSTRIAL MECATRÓNICA

PREPARATORIO #4

PRÁCTICA: PID. ALGORITMOS

ALUMNOS:
MORALES DIEGO ESTEBAN
POLO JUAN PABLO

NRC:
1687

FECHA DE ENTREGA:

15 DE DICIEMBRE DE 2015

obtenga el modelo basado en energía que describa la dinámica del sistema. TEMA: PID. OBJETIVO:  Analizar las ventajas y desventajas de las diferentes configuraciones de implementación de los controladores PID. Algoritmos 2.  Utilizar herramientas computacionales de MATLAB para la simulación de sistemas que utilizan controladores PID. Entonces . 3.1. - Ecuación lagrangeana 𝐿 =𝑇−𝑈 𝐿 = 𝐸𝑛𝑒𝑟𝑔í𝑎 𝑐𝑖𝑛é𝑡𝑖𝑐𝑎 − 𝐸𝑛𝑒𝑟𝑔í𝑎 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎𝑙. DESARROLLO 4.1. TRABAJO PREPARATORIO Fig 1. Carro-Péndulo Invertido 1) Para el sistema de la Fig 1. (Tomar en cuenta que el modelo debe ser para variaciones pequeñas del péndulo).

Por tanto tenemos: Ecuaciones de movimiento: .

=. y supondremos que el sistema se mantenga dentro de un pequeño margen de equilibrio. llegamos a las dos ecuaciones linealizadas de movimiento. Que representa la desviación de la posición del péndulo del equilibrio. podemos utilizar las siguientes aproximaciones de ángulos pequeños de las funciones no lineales en nuestras ecuaciones del sistema: Después sustituir las aproximaciones anteriores en nuestras ecuaciones no lineales de gobierno. es decir. Esta hipótesis debe ser razonablemente válida ya bajo control deseamos que el péndulo se desvía más de 20 grados desde la posición vertical hacia arriba. En concreto. Nota ha sido sustituido por la entrada.Simplificando obtuvimos las ecuaciones de movimiento: Análisis Desde el análisis y control de las técnicas de diseño estaremos empleando en este ejemplo sólo se aplican a los sistemas lineales. Otra vez presumiendo una pequeña desviación desde el equilibrio. = +. . este conjunto de ecuaciones debe ser linealizado. vamos a linealizar las ecuaciones sobre la posición de equilibrio verticalmente hacia arriba.

i = 0. g = 9. - Posición angular M = 0.5. num = [ ( i + m * l ^2)/q 0/q -(g*m*l)/q] den = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q -b * m * g * l / q 0 ] gp=tf(num. l = 0.den) Función de transferencia de la posición angular: - Desplazamiento M = 0. num = [ m * l / q 0] den = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q -b * m * g * l / q ] gp=tf(num. g = 9.1.2. b = 0.2) A partir de las ecuaciones obtenidas en el punto 1. l = 0. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2.006.006. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2.3.2.5. m = 0.den) . Obtenga la función de transferencia del sistema de tal manera que se pueda controlar la velocidad lineal del carro manteniendo el ángulo del péndulo lo más cercano posible a cero.3.8.1. b = 0. i = 0.8. m = 0.

Requerimientos   Tiempo de establecimiento menor a 2 segundos.86 grados de la vertical. en principio.05 radianes que es igual a 2. integral y derivativo valdrá según lo calculado: - PID Planta = P ts= 4s Mp<25% Ecuación característica 𝑠 2 + 2𝜉𝑊𝑛 𝑠 + 𝑊𝑛2 Nos queda . Angulo del péndulo siempre menor que 0.Función de transferencia del desplazamiento: 3) Diseñe un controlador PID que cumpla con lo establecido en el punto 2. por ello. En ocasiones la mejor forma de obtener un regulador óptimo es a base de prueba y error. se asume que el valor proporcionar. El objetivo de este apartado es lograr diseñar un PID capaz de estabilizar el péndulo invertido y analizar posteriormente si el controlador diseñado será el más adecuado para el sistema.

545𝑠 𝑘𝑖 ∗ (𝑘𝑝 + + 𝑘𝑑𝑠) 𝑠 3 + 0.545𝑘𝑖 + 4.18)𝑠 + 4. 𝟐𝟑 𝒌𝒑 = 𝟓. Ki y Kd que son nuestros valores preliminares: 𝒌𝒅 = −𝟎.455 𝑠 3 + 0.545𝑘𝑑 + 0.181)𝑠 2 − (4.455 𝑠 Simplificando nos queda: 4.697 + 𝑗1.455 Agrupando tenemos: 𝑠 3 + (4.57) (1) Ahora sabemos 𝐶𝑝𝑖𝑑 = 𝑘𝑝 + 𝑘𝑖 + 𝑘𝑑𝑠 𝑠 1 + 𝑃 ∗ 𝐶𝑝𝑖𝑑 1+ 4.57)(𝑠 + 0.18)𝑠 + 4.23𝑠 𝑠 .18𝑠 − 4. 𝟐𝟖 Controlador PID 𝑃𝐼𝐷 = 5.1818𝑠 2 − 31.545𝑘𝑝 − 31.697 + 𝑗1.181)𝑠 2 − (4.69 − 𝑗1.455𝑘𝑖 − 4.1818𝑠 2 − 31.57)(𝑠 + 10) 𝑠 3 + (4.545 = 𝑠 3 + 19𝑠 2 + 86𝑠 − 40 De la ecuación anterior despejamos Kp.181)𝑠 2 − (4.18)𝑠 + 4.455𝑘𝑖 − 4.18𝑠 − 4.86 + 1.545 (2) Igualando (1) y (2) y adicionando a (2) un zero (s+10) lejano tenemos 𝑠 3 + (4.545𝑘𝑑 + 0.455𝑘𝑖 − 4.68 − 0.38𝑠 + 2.1818𝑠 2 − 31.545𝐾𝑑𝑠 2 + 4.545 = (𝑠 + 0.96 = (𝑠 + 0.𝑠 2 + 1.545𝑘𝑝 − 31.18𝑠 − 4. 𝟖𝟔 𝒌𝒊 = 𝟐.57)(𝑠 + 0.545𝑘𝑝 − 31.545𝑘𝑝𝑠 + 𝑠 3 + 0.69 − 𝑗1.545𝑘𝑑 + 0.

2. b = 0. l = 0. i = 0.01:5.5 0 10]) Fig 3. m = 0. - Posición Angular Código implementado en Matlab M = 0.den .3.006. g = 9. step (num .den) t =0:0.8. Respuesta ante entrada escalón. num = [ m * l / q 0] den = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q -b * m * g * l / q ] gp=tf(num.Fig 2.t) axis ([0 1. Diagrama de bloques PID 4) Simule el sistema sin control indicando la velocidad lineal del carro y la posición angular del péndulo. . sin control previo Como se observa la respuesta aún no es estable.1.5. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2.

variable de desplazamiento. num = [ m * l / q 0] den = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q -b * m * g * l / q ] gp=tf(num. num = [ ( i + m * l ^2)/q -(g*m*l)/q] den = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q * l / q 0 ] gp=tf(num. l = 0. Respuesta ante escalón.3. g = 9. 5) Simule el sistema controlado de tal forma que se evidencie el cumplimiento de las especificaciones del punto 3. como ya se ha mencionado anteriormente.- Desplazamiento Código implementado en Matlab M = 0.1.2. l = 0.8.006.006. g = 9.1. i = 0.01:5.den) .8. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2.5. b = 0. m = 0. i = 0.t) axis ([0 10 0 40]) -b * m * g Fig 4.2. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2. se va a hacer uso de la herramienta Matlab. b = 0. En el caso del péndulo invertido. step (num .3. Al observar que sin ningún control tiende hacia el infinito el desplazamiento. Así que partiendo del código ya utilizado en el apartado anterior y siguiendo con los requerimientos de diseño especificados en el mismo apartado ya se puede comenzar a realizar pruebas: M = 0.5.den) t =0:0. m = 0.den .

ki.68. k = 5. Respuesta ante el incremento proporcional. conv ( numPID . 𝟖𝟔 𝒌𝒊 = 𝟏. El siguiente paso es intentar reducir el sobrepico. denPID ) denc = polyadd ( conv ( denPID . derivativo y disminuyendo el integral Nuevos valores de PID 𝒌𝒅 = −𝟎. así que es necesario variar el control integral.01:5. el error estacionario es cero. num ) ) t =0:0. Además. Respuesta de salida con kp.23: Fig 6. numc = conv ( num . denPID = [1 0]. denc . para ello. ki = 1.kd = -0. numPID = [ kd k ki ]. t ) axis ([0 2 0 1]) Fig 5.86. kd calculados Se puede observar que el tiempo de establecimiento empieza a ser aceptable pues es cercano a los 4 segundos. 𝟐𝟑 𝒌𝒑 = 𝟓. den ) . se prueba con un valor Kd de -0. 𝟔𝟖 .23. impulse ( numc .

01:5. den1 = [1 b *( i + m * l ^2) / q -( M + m ) * m * g * l / q -b * m * g * l / q 0 ] num2=[(i+m*l^2)/q 0 -m*g*l/q]. ki = 1. num1 ) ) t =0:0. num1 = [m*l/q 0 0]. impulse ( numc . conv ( numPID . g = 9. b = 0. denc .68. i = 0. t ) . PID del sistema péndulo invertido Desplazamiento: Código implementado en Matlab M = 0.006. Se han satisfecho todos los criterios de diseño.86.8. numPID = [ kd k ki ].2. Al parecer ya se ha obtenido un PID capaz de hacer estable el péndulo pero no se ha tenido en cuenta que ocurre con la posición del carro.5. m = 0. den2=den1 gp=tf(num.Como se puede ver. k = 5. q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2. l = 0.den) kd = -0.3. Simulando el sistema con la función de transferencia en lazo cerrado que incluye la posición del carro. así que ya no se necesita más iteraciones.23. se obtiene el sistema completo: Fig 7. denPID = [1 0].1. numc = conv ( num2 . denPID ) denc = polyadd ( conv ( denPID . den2 ) . el sobrepico se redujo de modo que el péndulo no se mueve más que 1 radian de la vertical.

pdf https://riunet. Katsuhiko Ogata. A pesar de que el controlador PID estabiliza el ángulo del péndulo.es/bitstream/handle/10251/10296/Memoria.pdf .upv. En línea - http://www. BIBLIOGRAFÍA - Dinámica de sistemas. el carro se desplaza a una velocidad constante y nunca se detiene. PID: Respuesta del carro Como se observa. 4. 1 Edición.mathworks.ucm.html http://eprints.com/help/control/ref/tfdata.es/16096/1/memoriaPFC.Fig 8.