nuevo_preparatorio4_pid_pendulo invertido.pdf

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

Upload: juan-pablo-polo

Post on 28-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: nuevo_preparatorio4_pid_pendulo invertido.pdf

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

Page 2: nuevo_preparatorio4_pid_pendulo invertido.pdf

1. TEMA: PID. Algoritmos

2. OBJETIVO:

Analizar las ventajas y desventajas de las diferentes configuraciones de

implementación de los controladores PID.

Utilizar herramientas computacionales de MATLAB para la simulación de sistemas

que utilizan controladores PID.

3. DESARROLLO

4.1. TRABAJO PREPARATORIO

Fig 1. Carro-Péndulo Invertido

1) Para el sistema de la Fig 1, obtenga el modelo basado en energía que describa

la dinámica del sistema. (Tomar en cuenta que el modelo debe ser para

variaciones pequeñas del péndulo).

- Ecuación lagrangeana

𝐿 = 𝑇 − 𝑈

𝐿 = 𝐸𝑛𝑒𝑟𝑔í𝑎 𝑐𝑖𝑛é𝑡𝑖𝑐𝑎 − 𝐸𝑛𝑒𝑟𝑔í𝑎 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎𝑙,

Entonces

Page 3: nuevo_preparatorio4_pid_pendulo invertido.pdf

Por tanto tenemos:

Ecuaciones de movimiento:

Page 4: nuevo_preparatorio4_pid_pendulo invertido.pdf

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, este conjunto de ecuaciones debe ser linealizado. En

concreto, vamos a linealizar las ecuaciones sobre la posición de equilibrio verticalmente

hacia arriba, =, y supondremos que el sistema se mantenga dentro de un pequeño margen

de equilibrio. 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. Que

representa la desviación de la posición del péndulo del equilibrio, es decir, = +. Otra vez

presumiendo una pequeña desviación desde el 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, llegamos a las dos ecuaciones linealizadas de movimiento. Nota ha sido

sustituido por la entrada.

Page 5: nuevo_preparatorio4_pid_pendulo invertido.pdf

2) A partir de las ecuaciones obtenidas en el punto 1. 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.

- Posición angular

M = 0.5; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; 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,den)

Función de transferencia de la posición angular:

- Desplazamiento

M = 0.5; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; 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,den)

Page 6: nuevo_preparatorio4_pid_pendulo invertido.pdf

Función de transferencia del desplazamiento:

3) Diseñe un controlador PID que cumpla con lo establecido en el punto 2.

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.

Requerimientos

Tiempo de establecimiento menor a 2 segundos.

Angulo del péndulo siempre menor que 0.05 radianes que es igual a 2.86 grados de

la vertical.

En ocasiones la mejor forma de obtener un regulador óptimo es a base de prueba y error,

por ello, en principio, se asume que el valor proporcionar, integral y derivativo valdrá

según lo calculado:

- PID

Planta = P

ts= 4s

Mp<25%

Ecuación característica

𝑠2 + 2𝜉𝑊𝑛𝑠 + 𝑊𝑛2

Nos queda

Page 7: nuevo_preparatorio4_pid_pendulo invertido.pdf

𝑠2 + 1.38𝑠 + 2.96 = (𝑠 + 0.697 + 𝑗1.57)(𝑠 + 0.69 − 𝑗1.57) (1)

Ahora sabemos

𝐶𝑝𝑖𝑑 = 𝑘𝑝 +𝑘𝑖

𝑠+ 𝑘𝑑𝑠

1 + 𝑃 ∗ 𝐶𝑝𝑖𝑑

1 +4.545𝑠

𝑠3 + 0.1818𝑠2 − 31.18𝑠 − 4.455∗ (𝑘𝑝 +

𝑘𝑖

𝑠+ 𝑘𝑑𝑠)

Simplificando nos queda:

4.545𝐾𝑑𝑠2 + 4.545𝑘𝑖 + 4.545𝑘𝑝𝑠 + 𝑠3 + 0.1818𝑠2 − 31.18𝑠 − 4.455

𝑠3 + 0.1818𝑠2 − 31.18𝑠 − 4.455

Agrupando tenemos:

𝑠3 + (4.545𝑘𝑑 + 0.181)𝑠2 − (4.545𝑘𝑝 − 31.18)𝑠 + 4.455𝑘𝑖 − 4.545 (2)

Igualando (1) y (2) y adicionando a (2) un zero (s+10) lejano tenemos

𝑠3 + (4.545𝑘𝑑 + 0.181)𝑠2 − (4.545𝑘𝑝 − 31.18)𝑠 + 4.455𝑘𝑖 − 4.545

= (𝑠 + 0.697 + 𝑗1.57)(𝑠 + 0.69 − 𝑗1.57)(𝑠 + 10)

𝑠3 + (4.545𝑘𝑑 + 0.181)𝑠2 − (4.545𝑘𝑝 − 31.18)𝑠 + 4.455𝑘𝑖 − 4.545

= 𝑠3 + 19𝑠2 + 86𝑠 − 40

De la ecuación anterior despejamos Kp, Ki y Kd que son nuestros valores preliminares:

𝒌𝒅 = −𝟎. 𝟐𝟑

𝒌𝒑 = 𝟓. 𝟖𝟔

𝒌𝒊 = 𝟐. 𝟐𝟖

Controlador PID

𝑃𝐼𝐷 = 5.86 +1.68

𝑠− 0.23𝑠

Page 8: nuevo_preparatorio4_pid_pendulo invertido.pdf

Fig 2. Diagrama de bloques PID

4) Simule el sistema sin control indicando la velocidad lineal del carro y la

posición angular del péndulo.

- Posición Angular

Código implementado en Matlab

M = 0.5; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; 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,den) t =0:0.01:5; step (num ,den ,t) axis ([0 1.5 0 10])

Fig 3. Respuesta ante entrada escalón, sin control previo

Como se observa la respuesta aún no es estable.

Page 9: nuevo_preparatorio4_pid_pendulo invertido.pdf

- Desplazamiento

Código implementado en Matlab

M = 0.5; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; num = [ ( i + m * l ^2)/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,den) t =0:0.01:5; step (num ,den ,t) axis ([0 10 0 40])

Fig 4. Respuesta ante escalón, variable de desplazamiento.

Al observar que sin ningún control tiende hacia el infinito el desplazamiento.

5) Simule el sistema controlado de tal forma que se evidencie el cumplimiento de

las especificaciones del punto 3.

En el caso del péndulo invertido, como ya se ha mencionado anteriormente, se va a hacer

uso de la herramienta Matlab. 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; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; 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,den)

Page 10: nuevo_preparatorio4_pid_pendulo invertido.pdf

kd = -0.23; k = 5.86; ki = 1.68; numPID = [ kd k ki ]; denPID = [1 0]; numc = conv ( num , denPID ) denc = polyadd ( conv ( denPID , den ) , conv ( numPID , num ) ) t =0:0.01:5; impulse ( numc , denc , t ) axis ([0 2 0 1])

Fig 5. Respuesta de salida con kp, ki, kd calculados

Se puede observar que el tiempo de establecimiento empieza a ser aceptable pues es

cercano a los 4 segundos. Además, el error estacionario es cero, así que es necesario variar

el control integral. El siguiente paso es intentar reducir el sobrepico, para ello, se prueba

con un valor Kd de -0.23:

Fig 6. Respuesta ante el incremento proporcional, derivativo y disminuyendo el integral

Nuevos valores de PID

𝒌𝒅 = −𝟎. 𝟐𝟑

𝒌𝒑 = 𝟓. 𝟖𝟔

𝒌𝒊 = 𝟏. 𝟔𝟖

Page 11: nuevo_preparatorio4_pid_pendulo invertido.pdf

Como se puede ver, el sobrepico se redujo de modo que el péndulo no se mueve más que 1

radian de la vertical. Se han satisfecho todos los criterios de diseño, así que ya no se

necesita más iteraciones. 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. Simulando el

sistema con la función de transferencia en lazo cerrado que incluye la posición del carro, se

obtiene el sistema completo:

Fig 7. PID del sistema péndulo invertido

Desplazamiento:

Código implementado en Matlab

M = 0.5; m = 0.2; b = 0.1; i = 0.006; g = 9.8; l = 0.3; q = ( M + m ) *( i + m * l ^2) -( m * l ) ^2; num1 = [m*l/q 0 0]; 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]; den2=den1 gp=tf(num,den) kd = -0.23; k = 5.86; ki = 1.68; numPID = [ kd k ki ]; denPID = [1 0]; numc = conv ( num2 , denPID ) denc = polyadd ( conv ( denPID , den2 ) , conv ( numPID , num1 ) ) t =0:0.01:5; impulse ( numc , denc , t )

Page 12: nuevo_preparatorio4_pid_pendulo invertido.pdf

Fig 8. PID: Respuesta del carro

Como se observa, el carro se desplaza a una velocidad constante y nunca se detiene. A

pesar de que el controlador PID estabiliza el ángulo del péndulo,

4. BIBLIOGRAFÍA

- Dinámica de sistemas, Katsuhiko Ogata, 1 Edición.

En línea

- http://www.mathworks.com/help/control/ref/tfdata.html

- http://eprints.ucm.es/16096/1/memoriaPFC.pdf

- https://riunet.upv.es/bitstream/handle/10251/10296/Memoria.pdf