TFG - LuisGeovannyTrivinoMacias Pendulo
TFG - LuisGeovannyTrivinoMacias Pendulo
TFG - LuisGeovannyTrivinoMacias Pendulo
Septiembre 2020
El abajo firmante, Ramon Vilanova Arbos, Profesor de l’Escola d’Enginyeria de la Universitat
Autònoma de Barcelona (UAB).
CERTIFICA:
Que el proyecto presentado en esta memoria de Trabajo Fin de Grado ha sido realizado bajo su
supervisión por el alumno Luis Geovanny Triviño Macías.
Resum: En aquest projecte s’obté el model matemàtic del sistema no lineal format per un pèndul
invertit sobre una base mòbil i es dissenya dos controladors PID per mantenir el sistema estable.
El primer controlador manté el pèndul en equilibri verticalment, mentre que el segon permet que
la base mòbil es posicioni al centre del espai determinat. També s’ha generat una animació en 3
dimensions amb la que es s’observa clarament el comportament del sistema.
Resumen: En este proyecto se obtiene el modelo matemático del sistema no lineal formado por
un péndulo invertido sobre una base móvil y se diseña dos controladores PID para mantener el
sistema estable. El primer controlador mantiene el péndulo en equilibrio verticalmente, mientras
que el segundo permite que la base móvil se posicione en el centro del espacio determinado.
También se ha generado una animación en 3 dimensiones con la que se observa claramente el
comportamiento del sistema.
Abstract: In this project the mathematical model of the non-linear system formed by an inverted
pendulum on a mobile base is obtained and two PID controllers are designed to keep the system
stable. The first controller keeps the pendulum in equilibrium vertically, while the second allows
the moving base to be positioned in the centre of the given space. A 3-dimensional animation has
also been generated that shows clearly the behaviour of the system.
1
Índice
Contenido
1. Introducción .......................................................................................................................... 4
1.1. Objetivo ......................................................................................................................... 4
1.2. El péndulo invertido sobre base móvil .......................................................................... 5
2. Modelo matemático del péndulo invertido .......................................................................... 6
2.1. Descripción del sistema físico ....................................................................................... 6
2.2. Función de transferencia............................................................................................... 9
2.3. Espacio de estados ...................................................................................................... 10
2.4. Respuesta en lazo abierto ........................................................................................... 11
2.4.1. Respuesta en lazo abierto mediante la función de transferencia....................... 11
2.4.2. Respuesta en lazo abierto mediante el espacio de estados ............................... 12
2.5. Modelo matemático no lineal ..................................................................................... 13
3. Control del péndulo............................................................................................................. 15
3.1. Controlador PID ........................................................................................................... 15
3.1.1. Componentes del PID .......................................................................................... 15
3.2. Simulación con la herramienta Sisotool ...................................................................... 17
3.3. Primera sintonización del controlador con la planta no lineal ................................... 20
3.4. Segunda sintonización................................................................................................. 22
3.4.1. Variación del parámetro 𝐾𝑝 ................................................................................ 22
3.4.2. Variación del parámetro 𝐾𝑖 ................................................................................. 24
3.4.3. Variación del parámetro 𝐾𝑑 ................................................................................ 25
3.5. Control del carro ......................................................................................................... 27
3.5.1. Sintonización PID del carro.................................................................................. 27
3.5.2. Filtro de resultados ............................................................................................. 28
3.5.3. Resultados ........................................................................................................... 30
4. Animación del sistema ........................................................................................................ 34
4.1. Partes del modelo ....................................................................................................... 34
4.2. Simulación del sistema con animación ....................................................................... 34
5. Conclusiones y propuestas .................................................................................................. 37
6. Anexos ................................................................................................................................. 38
Anexo I. Scripts ........................................................................................................................ 38
Script 1: Segunda sintonización del controlador PID que controla el ángulo y graficado de
los resultados ...................................................................................................................... 38
Script 2: Sintonización del controlador PID que controla el carro y graficado de los
resultados ............................................................................................................................ 40
Script 3: Simulación y graficado del sistema con los dos controladores PID ...................... 41
2
Índice
Anexo II. Resultados de las simulaciones del controlador del carro ....................................... 43
7. Referencias .......................................................................................................................... 45
3
Lista de figuras
Figura 1: Ejemplos de sistemas. a) Trasnporte personal Segway I2 SE. b) Despegue de cohete. 4
Figura 2: Sistema péndulo invertido ............................................................................................. 5
Figura 3: Sistema del péndulo invertido ....................................................................................... 6
Figura 4: Diagrama del sistema péndulo invertido en dos partes: (a) Carro. (b) Péndulo ............ 7
Figura 5: Mapa de polos y ceros ................................................................................................. 12
Figura 6: Respuesta en lazo abierto............................................................................................. 12
Figura 7: Diagrama de bloques de la simulación del sistema en lazo abierto mediante el espacio
de estados .................................................................................................................................... 13
Figura 8: Respuesta al salto unitario del sistema en lazo abierto mediante espacio de estados .. 13
Figura 9: Sistema de control realimentado .................................................................................. 15
Figura 10: LGR del sistema lineal............................................................................................... 17
Figura 11: LGR del sistema lineal............................................................................................... 18
Figura 12: Diagrama de bloques comprobación LGR................................................................. 18
Figura 13: Señal de perturbación ................................................................................................ 19
Figura 14: Respuesta del sistema con un controlador P de ganacia Kp=25.9 ............................. 19
Figura 15: Respuesta del sistema con un controlador P de ganancia Kp = 40 ............................ 20
Figura 16: Modelo del sistema con planta no lineal .................................................................... 20
Figura 17: Diagrama de bloques del sistema no lineal ................................................................ 21
Figura 18: Configuración del integrador para que las condiciones inciales sean la variable
posicionInicial ............................................................................................................................. 21
Figura 19: Primera sintonización con la herramienta PID tuner ................................................. 22
Figura 20: Respuesta del sistema a la primera sintonización ...................................................... 22
Figura 21: Respuesta del sistema con ángulo inicial del péndulo 1º. a) Respuesta variando el
valor de Kp. b) Señal del controlador ......................................................................................... 23
Figura 22: Respuesta del sistema con ángulo inicial del péndulo 5º. a) Respuesta variando el
valor de Kp. b) Señal del controlador ......................................................................................... 23
Figura 23: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el
valor de Kp. b) Señal del controlador ......................................................................................... 24
Figura 24: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el
valor de Ki. b) Señal del controlador .......................................................................................... 25
Figura 25: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el
valor de Kd. b) Señal del controlador ......................................................................................... 25
Figura 26: Señal del controlador para Kd bajo............................................................................ 26
Figura 27: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el
valor de Kd con Ki=0. b) Señal del controlador.......................................................................... 26
Figura 28: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta con Kp=40,
Ki=0 y Kd=4. b) Señal del controlador ....................................................................................... 27
Figura 29: Diagrama de bloques del sistema no lineal controlador por 2 PID............................ 28
Figura 30: Mejores resultados. a) Respuesta a la combinación 17. b) Respuesta a la combinación
21. c) Respuesta a la combinación 25. d) Respuesta a la combinación 26.................................. 29
Figura 31: Esfuerzo controlador para Kp=-2, Ki=0 y Kd=-2. a) Controlador del carro. b)
Controlador de ángulo. ................................................................................................................ 30
Figura 32: Esfuerzo controlador para Kp=-1, Ki=0 y Kd=-1. a) Controlador del carro. b)
Controlador de ángulo. ................................................................................................................ 30
Figura 33: Ángulo y posición del carro controlados ................................................................... 31
Figura 34: Diagrama de bloques del sistema con perturbación en el ángulo .............................. 31
Figura 35: Perturbación de 10º en t=10 segundos ....................................................................... 32
Figura 36: Respuesta del sistema ante una perturbación de 10º en t=10 segundos ..................... 32
Figura 37: Respuesta del sistema ante perturbación de 45º ........................................................ 33
2
Figura 38: Respuesta del sistema ante perturbaciones en el carro y en el péndulo ..................... 33
Figura 39: Modelo 3D del sistema .............................................................................................. 34
Figura 40: Diagrama de bloques con la fase de animación añadida............................................ 35
Figura 41: Configuración del bloque VR Sink............................................................................ 35
Figura 42: Animación sistema péndulo-carro. a) Instante inicial t=0s. b) Primera actuación. c)
Sistema controlado, t=6s. d) Perturbación t=10s......................................................................... 36
Figura 43. Respuesta del sistema con Kp=-2, Ki=-4 y Kd=-3 (combinación 12) ....................... 43
Figura 44: Estables con mayor tiempo de respuesta. a) Respuesta estable a los 14 segundos. b)
Respuesta estable a t>20 segundos.............................................................................................. 44
Lista de tablas
Tabla 1: Parámetros físicos del sistema carro-péndulo ............................................................... 11
Tabla 2: Combianciones para los parámetros PID ...................................................................... 28
Tabla 3: Parámetros de los controladores PID ............................................................................ 30
Tabla 4: Índices y combinaciones con respuestas inestable ........................................................ 43
Tabla 5: Índices y combinaciones con respuesta estable y mayor tiempo .................................. 43
3
Capítulo 1: Introducción
1. Introducción
El péndulo invertido constituye uno de los sistemas no lineales más utilizados para la
experimentación de diferentes estrategias de control.
La razón por la cual el péndulo invertido ha sido uno de los sistemas más utilizados por diversos
investigadores para probar y desarrollar estrategias de control, es por su dinámica no lineal que
permite comprender los fenómenos y comportamientos físicos de plantas y equipos presentes en
diferentes ámbitos [1], [2], [3].
Hay diferentes variantes de péndulos invertidos siendo el más estudiado el denominado péndulo
invertido sobre base móvil o como se llama comúnmente, péndulo invertido sobre carro, el cual
es el que se estudiará en este proyecto.
1.1. Objetivo
El objetivo de este proyecto es diseñar un sistema de control que permita estabilizar el péndulo
invertido, tanto en la rotación del péndulo como en la posición de la base móvil, manteniendo el
péndulo en posición vertical superior y haciendo que la posición de la base móvil termine
centrada. Se realizará una animación en 3D para observar el comportamiento del sistema.
4
Capítulo 1: Introducción
Para alcanzar el objetivo principal, es necesario cubrir con los objetivos específicos que se
presentan a continuación:
- Obtener el modelo matemático del sistema péndulo invertido.
- Analizar el sistema en lazo abierto.
- Diseño del controlador.
- Analizar el sistema en lazo cerrado con el controlador.
Donde:
- M: Masa del carro
- m: Masa del péndulo
- l: Longitud del péndulo
- u: Fuerza aplicada al carro
- P: Punto de articulación
- 𝜃: Ángulo del péndulo respecto a la normal
5
Capítulo 2: Modelo Matemático del Péndulo
∑ 𝐹𝑖 = 𝑚𝑎𝑖 (1)
∑ 𝐹𝑗 = 𝑚𝑎𝑗 (2)
∑ 𝐹𝐺 = 𝐼𝛼𝐺 (3)
Las ecuaciones (1) y (2) son la segunda ley de Newton para las componentes horizontales i y para
las verticales j de la fuerza F. La aceleración a es la experimentada por el cuerpo rígido de masa
m. La ecuación (3) establece que la suma de momentos de las fuerzas que actúan sobre un cuerpo
rígido alrededor de un punto G cualquiera, es igual al producto del momento de inercia I por la
aceleración angular 𝛼 alrededor del cuerpo rígido.
El péndulo invertido es inestable, ya que puede girar en cualquier momento y en cualquier
dirección, a menos que se le aplique una fuerza de control.
Se considera un problema de dos dimensiones, en el cual, el péndulo, se mueve sobre el plano de
la página, es decir, el descrito por los ejes X e Y según se observa en la figura 3.
En la misma figura, se muestra el sistema del péndulo invertido donde la masa se concentra en lo
alto de la varilla del péndulo siendo esta su centro de gravedad. Se puede distinguir la fuerza que
describe el movimiento del carro U, la masa del carro M, la masa m, y el ángulo del péndulo
respecto a la normal vertical 𝜃.
6
Capítulo 2: Modelo Matemático del Péndulo
Del sistema podemos extraer las distancias en la que se encuentra el centro de la masa sobre la
varilla del péndulo (centro de gravedad) hasta el punto de origen O:
𝑋𝐺 = 𝑥 + 𝑙 sin(𝜃) (4)
𝑌𝐺 = 𝑙cos(𝜃) (5)
Para simplificar el análisis del sistema se puede dividir el péndulo invertido en dos cuerpos, por
un lado el carro y por otro el péndulo (figura 4). Aparecen dos nuevas componentes, las fuerzas
de reacción H (horizontal) y V (vertical) que actúan sobre el punto de articulación P.
Figura 4: Diagrama del sistema péndulo invertido en dos partes: (a) Carro. (b) Péndulo
𝑑2
∑ 𝐹𝑥 = 𝑚𝑎 = 𝑚𝑥̈ = 𝑚 (𝑥 + 𝑙𝑠𝑖𝑛(𝜃)) = 𝐻 (7)
𝑑𝑡 2
𝑑2
∑ 𝐹𝑦 = 𝑚 (𝑙 cos(𝜃)) = 𝑉 − 𝑚𝑔 (8)
𝑑𝑡 2
Del mismo modo, podemos analizar el movimiento horizontal (9) y vertical del carro (10):
7
Capítulo 2: Modelo Matemático del Péndulo
𝑑2 𝑥
∑ 𝐹𝑥 = 𝑀 = 𝑢 − 𝐻 (9)
𝑑𝑡 2
∑ 𝐹𝑦 = 𝑀𝑔 = 𝑉 (10)
0 = 𝑉 − 𝑚𝑔 (13)
Puesto que el momento de inercia del péndulo 𝐼 es muy pequeño respecto a su centro de gravedad,
se puede aproximar como 𝐼 = 0, por lo tanto, de (15) se obtiene:
8
Capítulo 2: Modelo Matemático del Péndulo
𝑌(𝑠)
𝐻(𝑠) = (19)
𝑋(𝑠)
𝑢 − 𝑙𝑚𝜃̈
𝑥̈ = (20)
𝑀+𝑚
Θ(𝑠) 1 1
= 2
=
−𝑈(𝑠) 𝑀𝑙𝑠 − (𝑀 + 𝑚)𝑔 𝑀+𝑚 𝑀+𝑚 (23)
𝑀𝑙 (𝑠 + √ 𝑔) (𝑠 − √ 𝑔)
𝑀𝑙 𝑀𝑙
La planta del péndulo invertido tiene un polo en el eje real negativo (24) y otro en el eje real
positivo (25), por lo tanto, la planta es inestable en lazo abierto.
Esto último se verificará posteriormente mediante la obtención de la respuesta del sistema a
entrada tipo escalón unitario.
𝑀+𝑚
𝑠 = −√ 𝑔 (24)
𝑀𝑙
𝑀+𝑚
𝑠=√ 𝑔 (25)
𝑀𝑙
9
Capítulo 2: Modelo Matemático del Péndulo
𝑥2 = 𝜃̇ (27)
𝑥3 = 𝑥 (28)
𝑥4 = 𝑥̇ (29)
Donde 𝜃 es el ángulo que forma el péndulo respecto a la normal vertical y 𝑥 es la posición del
carro y son consideradas las salidas del sistema:
𝑦1 𝜃 𝑥1
𝑦 = [𝑦 ] = [ ] = [𝑥 ] (30)
2 𝑥 3
A partir de las definiciones de las variables de estado, (26), (27), (28) y (29) y de (17) y (18), se
obtiene:
𝑥̇ 1 = 𝑥2 (31)
𝑀+𝑚 1
𝑥̇ 2 = 𝑔𝑥1 − 𝑢 (32)
𝑀𝑙 𝑀𝑙
𝑥̇ 3 = 𝑥4 (33)
𝑚 1
𝑥̇ 4 = − 𝑔𝑥1 + 𝑢 (34)
𝑀 𝑀
En términos de las ecuaciones vectoriales, resultan (35) y (36), que describen el espacio de estados
del sistema del péndulo invertido:
0 1 0 0 0
𝑥̇ 1 𝑀+𝑚 𝑥1 1
𝑥̇ 𝑔 0 0 0 𝑥2 −
[ 2 ] = 𝑀𝑙 [ ] + 𝑀𝑙 𝑢 (35)
𝑥̇ 3 0 0 0 1 𝑥3 0
𝑥̇ 4 𝑚 𝑥4 1
[ −𝑀𝑔 0 0 0]
[ 𝑀 ]
𝑥1
𝑦1 1 0 0 0 2𝑥
[𝑦 ] = [ ][ ] (36)
2 0 0 1 0 𝑥3
𝑥4
10
Capítulo 2: Modelo Matemático del Péndulo
%Planta
numP = [1/(M*l)];
denP = [1 0 -(m+M)*g/(M*l)];
planta = tf(numP,denP)
t = 0:0.1:15;
impulse (numP, denP, t)
1.157
𝑃(𝑠) = (37)
𝑠 2 − 29.86
En la figura 5 se observa el mapa de polos y ceros, donde se muestran dos polos, uno en el eje
real positivo y otro en el eje real negativo, tal y como se ha obtenido en el apartado 2. Así pues,
se reafirmamos que la planta es inestable en lazo abierto.
11
Capítulo 2: Modelo Matemático del Péndulo
Para una entrada impulso, la planta tiene una respuesta como la que se muestra en la figura 6,
donde se afirma que es inestable, por lo que, para estabilizar el sistema, se debe aplicar un control.
12
Capítulo 2: Modelo Matemático del Péndulo
Para facilitar la simulación del sistema se ha usado la herramienta Simulink, con la que se ha
creado el diagrama de bloques de la figura 7 y se ha obtenido la respuesta representada en la figura
8. Respecto a la respuesta, se afirma que tanto el ángulo del péndulo como la posición del carro
son inestables, por lo que se debe aplicar control a ambas magnitudes.
Figura 7: Diagrama de bloques de la simulación del sistema en lazo abierto mediante el espacio de estados
Figura 8: Respuesta al salto unitario del sistema en lazo abierto mediante espacio de estados
𝑑2 𝑥 1 𝑑𝑥
= (𝑢 − 𝐻 − 𝑏 ) (38)
𝑑𝑡 2 𝑀 𝑑𝑡
𝑑2 𝜃 1
= (𝑉𝑙𝑠𝑖𝑛𝜃 − 𝐻𝑙𝑐𝑜𝑠𝜃) (39)
𝑑𝑡 2 𝐼
13
Capítulo 2: Modelo Matemático del Péndulo
Donde,
𝑑2
𝐻=𝑚 (𝑥 + 𝑙𝑠𝑖𝑛𝜃) (40)
𝑑𝑡 2
𝑑2
𝑉=𝑚 (𝑙𝑐𝑜𝑠𝜃) + 𝑚𝑔 (41)
𝑑𝑡 2
𝑑 𝑑𝑥 𝑑𝜃
(𝑥 + 𝑙𝑠𝑖𝑛𝜃) = + 𝑙𝑐𝑜𝑠𝜃 (42)
𝑑𝑡 𝑑𝑡 𝑑𝑡
𝑑2 𝑑2 𝑥 𝑑2 𝜃 𝑑𝜃 2
(𝑥 + 𝑙𝑠𝑖𝑛𝜃) = + 𝑙𝑐𝑜𝑠𝜃 − 𝑙𝑠𝑖𝑛𝜃 ( ) (43)
𝑑𝑡 2 𝑑𝑡 2 𝑑𝑡 2 𝑑𝑡
𝑑 𝑑𝜃
(𝑙𝑐𝑜𝑠𝜃) = −𝑙𝑠𝑖𝑛𝜃 (44)
𝑑𝑡 𝑑𝑡
𝑑2 𝑑2 𝜃 𝑑𝜃 2
(𝑙𝑐𝑜𝑠𝜃) = −𝑙𝑠𝑖𝑛𝜃 − 𝑙𝑐𝑜𝑠𝜃 ( ) (45)
𝑑𝑡 2 𝑑𝑡 2 𝑑𝑡
𝑑2 𝑥 1 𝑑2 𝑥 𝑑2 𝜃 𝑑𝜃 2 𝑑𝑥
2
= [𝑢 − 𝑚 ( 2
+ 𝑙𝑐𝑜𝑠𝜃 2
− 𝑙𝑠𝑖𝑛𝜃 ( ) ) − 𝑏 ] (46)
𝑑𝑡 𝑀 𝑑𝑡 𝑑𝑡 𝑑𝑡 𝑑𝑡
𝑑2 𝜃 1 𝑑2 𝜃 𝑑𝜃 2
= [(𝑚 (−𝑙𝑠𝑖𝑛𝜃 2 − 𝑙𝑐𝑜𝑠𝜃 ( ) + 𝑔)) 𝑙𝑠𝑖𝑛𝜃
𝑑𝑡 2 𝐼 𝑑𝑡 𝑑𝑡
(47)
𝑑2 𝑥 𝑑2 𝜃 𝑑𝜃 2
− 𝑚 ( 2 + 𝑙𝑐𝑜𝑠𝜃 2 − 𝑙𝑠𝑖𝑛𝜃 ( ) ) 𝑙𝑐𝑜𝑠𝜃]
𝑑𝑡 𝑑𝑡 𝑑𝑡
Las ecuaciones (46) y (47), son las que describen el comportamiento no lineal del sistema péndulo
sobre carro.
14
Capítulo 3: Control del péndulo
Llegado este punto, se observa que el sistema por sí solo no se puede mantener estable, por lo que
se presenta la necesidad de incluir un controlador capaz de, en cada momento, decidir qué acción
realizar para que el péndulo no se desestabilice.
En un lazo realimentado, como el que se muestra en la figura 9, el controlador es un instrumento
que contiene los modos o acciones de control que actúan sobre la señal de error e(t), la cual viene
dada por la diferencia entre el valor deseado de la variable controlada r(t) y su valor real y(t).
El objetivo de realizar un control sobre un proceso es llevar la variable controlada a un nuevo
valor deseado en el caso de que este cambie, o que rechace perturbaciones d(t), en el menor tiempo
posible.
Existen diversos sistemas de control que se podrían utilizar. En este proyecto se aplicará un
controlador Proporcional-Integral-Derivativo (PID) a fin de emplear conocimientos adquiridos
durante la titulación.
𝑡
𝑑𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑝 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝑡)𝑑𝑡 + 𝐾𝑑 (48)
𝑑𝑡
0
Cada una de las componentes del controlador PID cumple una función específica para mejorar la
respuesta y al juntarlas se consigue un mejor comportamiento.
15
Capítulo 3: Control del péndulo
Los parámetros del controlador PID 𝐾𝑝 , 𝐾𝑖 y 𝐾𝑑 indican la ponderación que tiene en el resultado
final. Así pues, una respuesta buena del controlador depende del ajuste correcto de los tres
parámetros.
A continuación, se explicará cual es la función de cada componente y las posibles combinaciones
que hay:
• Acción de control proporcional (P): Esta acción de control consiste en multiplicar la señal
de error por la constante 𝐾𝑝 . Actúa sobre el presente, utilizando la información actual del
error. En el caso de que el valor deseado esté muy lejos del valor obtenido en la respuesta
del sistema, se aplicaría más acción. El valor será mayor si se está por debajo o menor si
se está por encima.
• Acción de control integral (I): La acción integral consiste en una parte proporcional a la
integral del error. La integral se puede ver como la suma de la señal de error, siendo cada
vez mayor a medida que pasa el tiempo, es decir, que toma en cuenta valores pasados del
error. Esta acción garantiza que el error del sistema en régimen permanente sea cero.
• Acción de control derivativa (D): Esta acción de control consiste en realizar la derivada
del error e(t) y tiene en cuenta la tendencia del error. La derivada del error se refiere a la
velocidad con la que cambia el error, aumentando la amplitud de la acción de control
cuando el error cambia de manera rápida y disminuyéndola cuando cambia lentamente.
𝑑𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑑 (51)
𝑑𝑡
16
Capítulo 3: Control del péndulo
𝑡
(52)
𝑢(𝑡) = 𝐾𝑝 𝑒(𝑡) + 𝐾𝑖 ∫ 𝑒(𝜏)𝑑𝜏
0
𝑑𝑒(𝑡)
𝑢(𝑡) = 𝐾𝑝 𝑒(𝑡) + 𝐾𝑑 (53)
𝑑𝑡
%Planta
numP = [1/(M*l)];
denP = [1 0 -(m+M)*g/(M*l)];
planta = tf(numP,denP);
%Simulacion
sisotool (planta)
17
Capítulo 3: Control del péndulo
A medida que se va aumentando la ganancia, los polos se van acercando a cero. En la figura 11
se puede observar que, con una ganancia de 25.8, se obtiene un polo doble en el origen, este valor
indica donde se encuentra el límite de estabilidad del sistema.
Para verificar este hecho, se ha simulado el sistema con un control P mediante Simulink. El
diagrama de bloques se encuentra en la figura 12, analizando los bloques de izquierda a derecha:
- Referencia, el cual es el ángulo que deseamos obtener.
- Señal de perturbación, mostrada en la figura 13, es un pulso de amplitud 0.175 radianes
= 10° para poder arrancar el sistema en t = 5s.
- Ganancia P, actúa como controlador P.
- Planta lineal, es la función de transferencia del sistema lineal.
- Límites Angulo, se ha puesto un bloque saturación para delimitar el ángulo del péndulo
entre -90° y 90° respecto a la posición vertical del péndulo.
- Gancia 180/pi, para convertir los radianes a grados.
18
Capítulo 3: Control del péndulo
El resultado de la simulación del modelo anterior se puede observar en la figura 14, donde se
afirma que, para un controlador P de ganancia 𝐾𝑝 = 25.9, el péndulo oscila al límite de la
saturación impuesta indefinidamente.
Si se aumenta la ganancia del controlador P, por ejemplo, a 40 como en la figura 15, las
oscilaciones son más rápidas y de menor amplitud.
19
Capítulo 3: Control del péndulo
20
Capítulo 3: Control del péndulo
En este punto del proyecto, no ha hecho falta el uso de una perturbación para despertar el sistema.
Introduciendo la variable posiciónInnicial en el bloque integrador theta, permite modificar su
estado inicial a 10 grados, véase la figura 18.
Figura 18: Configuración del integrador para que las condiciones inciales sean la variable posicionInicial
Para sintonizar el controlador PID se ha usado la herramienta Control System Tuner (véase figura
19) encontrándose en la configuración del bloque PID, de esta manera se obtendrán los valores
que permitirán una sintonización más precisa, los cuales son:
- 𝐾𝑝 = 30
- 𝐾𝑖 = 5.52
- 𝐾𝑑 = 3.66
21
Capítulo 3: Control del péndulo
Con la acción del controlador con los valores 𝐾𝑝 , 𝐾𝑖 y 𝐾𝑑 se consigue que la respuesta, presentada
en la figura 20, tarde en torno a los 5 segundos en conseguir estabilizar el ángulo del péndulo.
22
Capítulo 3: Control del péndulo
Además, se tendrá en cuenta diferentes condiciones iniciales del péndulo, a 1º, 5º y 10º.
Puesto que el sistema es inestable cuando el valor de 𝐾𝑝 < 25.9, se dispone a hacer un barrido
entre el rango [30:100].
Figura 21: Respuesta del sistema con ángulo inicial del péndulo 1º. a) Respuesta variando el valor de Kp. b) Señal del
controlador
Figura 22: Respuesta del sistema con ángulo inicial del péndulo 5º. a) Respuesta variando el valor de Kp. b) Señal del
controlador
23
Capítulo 3: Control del péndulo
Figura 23: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el valor de Kp. b) Señal del
controlador
Analizando los tres casos mostrados en las figuras 21, 22 y 23, de condición inicial del ángulo, se
puede ver que la respuesta en el tiempo no varía mucho, es decir, es similar el tiempo que tarda
en estabilizar el ángulo del péndulo para diferentes valores de 𝐾𝑝 en los tres casos.
24
Capítulo 3: Control del péndulo
Figura 24: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el valor de Ki. b) Señal del
controlador
Analizando la figura 24, se puede observar que el esfuerzo del controlador no varía mucho para
diferentes valores de 𝐾𝑖 . También, hay que destacar, que si se prescinde de la parte integral (𝐾𝑖 =
0) se obtiene una respuesta muy similar a si se mantiene. Además, se obtienen menos oscilaciones
al disminuir este valor.
Figura 25: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el valor de Kd. b) Señal del
controlador
25
Capítulo 3: Control del péndulo
Al ver que con 𝐾𝑑 = 4 no presenta mucho esfuerzo por parte del controlador, no hay tanta
diferencia en la respuesta respecto a 𝐾𝑑 = 6 y 𝐾𝑑 = 8 y la respuesta no tiene muchas oscilaciones
como con 𝐾𝑑 = 2, se escoge este valor para el diseño del controlador.
En la figura 27 se presenta el resultado de la misma simulación, pero teniendo en cuenta 𝐾𝑖 = 0.
Comparando 𝐾𝑖 = 5.52 con 𝐾𝑖 = 0, manteniendo 𝐾𝑑 = 0, la respuesta del sistema no es del todo
inestable, aunque se puede predecir que tarda mucho en estabilizarse. A parte de este hecho, las
conclusiones siguen siendo las mismas y se escoge 𝐾𝑑 = 4 como valor para diseñar el
controlador.
Figura 27: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta variando el valor de Kd con Ki=0.
b) Señal del controlador
Teniendo en cuenta los resultados obtenidos con el barrido de los tres parámetros del controlador,
se procede a simular la respuesta del sistema, esta es la presentada en la figura 28. Recordemos
que los valores son 𝐾𝑝 = 40, 𝐾𝑖 = 0 y 𝐾𝑑 = 4.
26
Capítulo 3: Control del péndulo
Figura 28: Respuesta del sistema con ángulo inicial del péndulo 10º. a) Respuesta con Kp=40, Ki=0 y Kd=4. b) Señal
del controlador
Se afirma que la respuesta del sistema es efectiva, ya que las oscilaciones que presenta no son
muy abruptas y eso hace que el esfuerzo del controlador quede centrado a la hora de controlar el
ángulo inicial. También se ha conseguido con esta segunda sintonización ahorrar la parte integral
y que la respuesta del sistema sea más rápida, es decir, se tarda menos en estabilizar el péndulo.
27
Capítulo 3: Control del péndulo
Figura 29: Diagrama de bloques del sistema no lineal controlador por 2 PID
Índice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Kp -4 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 0 0 0 0
Ki 1 -5 -4 -3 -2 -2 -1 -1 -1 0 0 -4 -2 -1 -1 0 0 1 -1 0 0 0 -2 0 0 0
Kd -2 -3 -3 -3 -3 -2 -5 -3 -2 -3 -2 -3 -3 -3 -2 -3 -2 -4 -3 -3 -2 -1 -4 -3 -2 -1
Analizando con más detalle los resultados, se destacan 4, que corresponden a los índices 17, 21,
25 y 26, y se han obtenido respuestas rápidas y estables, presentados en la figura 30. Cabe
remarcar que se puede prescindir de la parte integral en los 4 casos, como pasaba con el control
del ángulo el péndulo.
28
Capítulo 3: Control del péndulo
Figura 30: Mejores resultados. a) Respuesta a la combinación 17. b) Respuesta a la combinación 21. c) Respuesta a la
combinación 25. d) Respuesta a la combinación 26.
29
Capítulo 3: Control del péndulo
Figura 31: Esfuerzo controlador para Kp=-2, Ki=0 y Kd=-2. a) Controlador del carro. b) Controlador de ángulo.
Figura 32: Esfuerzo controlador para Kp=-1, Ki=0 y Kd=-1. a) Controlador del carro. b) Controlador de ángulo.
3.5.3. Resultados
En este apartado se recapitulará los mejores resultados obtenidos para ambos controladores, los
cuales se contemplan en la tabla 3, y se añadirán perturbaciones para ver cómo responde el
sistema.
Tabla 3: Parámetros de los controladores PID
Controlador Kp Ki Kd
PID Péndulo 40 0 4
PID Carro -1 0 -1
30
Capítulo 3: Control del péndulo
La respuesta del sistema es satisfactoria y se remarcar que, referente al ángulo, se llega a controlar
en más o menos 5 segundos, más lento si se compara con los resultados obtenidos en el apartado
3.4, en el que en 2 segundos se conseguía. Esto es debido a que ahora se tiene en cuenta la posición
del carro que se va moviendo hasta llegar a la posición deseada, afectando al péndulo ligeramente.
Por otra parte, el carro tarda más en llegar a la referencia por el mismo motivo, a medida que se
va moviendo debe tener en cuenta no desestabilizar el péndulo.
31
Capítulo 3: Control del péndulo
Con una perturbación de 10 grados en t=10 segundos (figura 35), se obtienen los resultados de la
figura 36, donde se puede observar que controla la perturbación satisfactoriamente.
Figura 36: Respuesta del sistema ante una perturbación de 10º en t=10 segundos
De la misma manera y con la misma finalidad, observar el comportamiento del sistema frente a
una perturbación, se ha introducido una perturbación más elevada, de 45º. El resultado se presenta
en la figura 37, donde se observa que tarda un poco más, pero consigue estabilizar correctamente
el sistema.
32
Capítulo 3: Control del péndulo
33
Capítulo 4: Animación del sistema
En este apartado se mostrará cómo se ha generado la animación del sistema controlado mediante
la herramienta Simulink 3D Animation. Esta herramienta permite generar datos del modelo para
animar un mundo virtual mediante el bloque VR Sink.
El hecho de tener una simulación de este tipo hace que sea más fácil de visualizar el
comportamiento del sistema.
A la hora de crear el modelo 3D se debe tener en cuenta qué objetos mencionados anteriormente
deben depender de otros objetos. En este proyecto, cogiendo como referencia la base roja, no
depende de ningún otro objeto, pero el resto dependen de la base roja, por lo que se crean todos
los demás objetos llamados hijos dentro de la base. Ahora, si se escoge como referencia el carro,
el resto de los objetos (el péndulo, la masa del péndulo, las ruedas y la articulación) dependen de
él, por lo que se crean objetos hijos dentro del objeto que representa al carro.
34
Capítulo 4: Animación del sistema
donde se diferencia únicamente, respecto al diagrama usado para contemplar las perturbaciones
de la posición del carro y el ángulo del péndulo del apartado 3.5.3, en que se ha añadido los
bloques para crear la animación, los mencionados como Animación 3D.
El bloque VR Sink mencionado como Animación se debe configurar añadiendo el archivo del
mundo virtual creado, en este caso se le ha llamado sistemaCarroPendulo.wrl. Las variables de
entrada del bloque, translation del bloque carro y rotation del bloque Articulación, corresponden
a la posición del carro y a la rotación del péndulo respectivamente. Otro dato importante para
tener en cuenta es el tiempo de muestreo, que nos permite escoger lo rápido que queremos que
realice la simulación.
35
Capítulo 4: Animación del sistema
Los bloques VR Signal Expander permiten seleccionar qué parámetro escoger de los que tiene la
entrada. Para la posición del carro, hay 3 parámetros, los 3 ejes cartesianos ortogonales, para este
proyecto se trabajará con movimiento sobre el eje x que corresponde al número uno en el bloque.
La rotación del péndulo necesita de 4 elementos, los 3 ejes cartesianos ortogonales y el ángulo.
A continuación, se muestra la secuencia de la simulación:
- La figura 42(a) muestra el instante t=0, cuando el péndulo está en una inclinación de 10º
y se iniciará el control.
- En la figura 42(b), se ve cómo se mueve el carro se para frenar la caída del péndulo.
- La figura 42(c) es en el instante t=6 segundo, cuando ya se ha estabilizado el péndulo y
la posición del carro.
- Por último, la figura 42(d) muestra como en el instante t=10 segundos se perturba el
ángulo del péndulo.
Figura 42: Animación sistema péndulo-carro. a) Instante inicial t=0s. b) Primera actuación. c) Sistema controlado, t=6s.
d) Perturbación t=10s
36
Capítulo 5: Conclusiones y propuestas
5. Conclusiones y propuestas
El proyecto de control de un sistema péndulo con base móvil ha cumplido con los objetivos
definidos.
En primer lugar, se ha obtenido el modelo matemático del sistema con el que se ha visto su
comportamiento en lazo abierto para analizar su estabilidad. Al confirmar que es inestable se ha
procedido a diseñar una etapa de control con controladores PID para mantener en equilibrio el
péndulo.
En segundo lugar, se ha conseguido controlar tanto el ángulo del péndulo respecto a la normal
vertical como la posición del carro mediante dos controladores PID usando el método heurístico
o de “prueba y error”. Al hacer las simulaciones se ha observado que se tenía mejor respuesta al
prescindir de la componente integral para los dos controladores.
También se ha diseñado un modelo en 3D de animación para ver los resultados obtenidos de
manera más dinámica.
Se puede considerar el implementar el sistema en un laboratorio y así ver la parte práctica del
proyecto.
37
Capítulo 6: Anexos
6. Anexos
Anexo I. Scripts
Script 1: Segunda sintonización del controlador PID que controla el ángulo y graficado de los
resultados.
%Valores PID encontrados haciendo primer tunning
KP = 30;
KI = 5.52;
KD = 3.66;
KP = 30 + i*10;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.angulo)
hold on;
end
legend
('Kp=30','kp=40','kp=50','kp=60','kp=70','kp=80','kp=90','kp=100')
title('Angulo del péndulo vs tiempo')
ylabel('Angulo (º)')
xlabel('tiempo(s)')
hold off;
figure
title('Señal del controlador')
subplot (3,1,1);
KP = 30;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('kp=30')
subplot (3,1,2);
KP = 60;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('kp=60')
subplot (3,1,3)
KP = 90;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('kp=100')
xlabel('tiempo(s)')
KP = 40; %es el mas logico de coger, 2.5 seg para estabilizar y menos
costoso
38
Capítulo 6: Anexos
for i=0:1:7
KI = 0 + i*2;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.angulo)
hold on;
end
legend ('Ki=0','ki=2','ki=4','ki=6','ki=8','ki=10','ki=12','ki=14')
title('Angulo del péndulo vs tiempo')
ylabel('Angulo (º)')
xlabel('tiempo(s)')
hold off;
figure
title('Señal del controlador')
subplot (3,1,1);
KI = 2;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('ki=2')
title('Señal del controlador')
subplot (3,1,2);
KI = 30;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('ki=30')
subplot (3,1,3)
KI = 70;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('ki=70')
xlabel('tiempo(s)')
KD = 0 + i*2;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.angulo)
hold on;
end
legend ('Kd=0','kd=2','kd=4','kd=6','kd=8','kd=10','kd=12','kd=14')
title('Angulo del péndulo vs tiempo')
ylabel('Angulo (º)')
xlabel('tiempo(s)')
hold off;
figure
subplot (3,1,1);
KD = 2;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
title('Señal del controlador')
legend ('kd=2')
subplot (3,1,2);
KD = 5;
out = sim('planta_nolineal.slx',Tiemposim);
plot (out.t,out.controlSignal)
legend ('kd=5')
subplot (3,1,3)
KD = 7;
out = sim('planta_nolineal.slx',Tiemposim);
39
Capítulo 6: Anexos
plot (out.t,out.controlSignal)
legend ('kd=7')
xlabel('tiempo(s)')
%% plot con los reusltados finales
KP=40;
KI=0;
KD=4;
out = sim('planta_nolineal.slx',Tiemposim);
figure
plot (out.t,out.angulo)
title('Respuesta del sistema con Kp=40 y Kd=4')
ylabel('Angulo (º)')
xlabel('tiempo(s)')
figure
plot (out.t,out.controlSignal)
title('Señal del controlador')
ylabel('Esfuerzo')
xlabel('tiempo(s)')
Script 2: Sintonización del controlador PID que controla el carro y graficado de los resultados.
%Posición inicial del ángulo
anguloGrados = 10;
posicionInicial = anguloGrados*pi/180; %poscicion incial angulo en
radianes
Tiemposim = 20;
40
Capítulo 6: Anexos
count = count + 1;
end
for x=1:1:count2
KP_2 = KP_v(x);
KI_2 = KI_v(x);
KD_2 = KD_v(x);
out2 = sim('sinto_PID_carro_graf.slx',Tiemposim);
% figure
% plot (out2.t,out2.pos,out2.t,out2.angle);
% title ('Ángulo del péndulo y posición del carro');
% legend ('Posición del carro','Ángulo del péndulo');
% xlabel ('Tiempo (s)');
% ylabel ('Amplitud');
figure
plot (out2.t,out2.controlCarro);
title('Señal del PID del carro');
xlabel('Tiempo(s)');
% figure
% plot (out2.t,out2.controlAngulo);
% title('Señal del PID del ángulo');
% xlabel('Tiempo(s)');
end
Script 3: Simulación y graficado del sistema con los dos controladores PID
%% Simulacion controladores PID del péndulo y del carro
KP_pend = 40;
KI_pend = 0;
KD_pend = 4;
KP_car = -1;
KI_car = 0;
KD_car = -1;
41
Capítulo 6: Anexos
ylabel ('Posición[m]')
subplot (2,1,2)
plot (out3.t,salida_grados) %salida_grados -> ángulo del péndulo
respecto a la norma
title('Ángulo del péndulo');
xlabel('Tiempo[s]');
ylabel ('Ángulo[º]')
figure
plot (out3.t, pert_grados)
title('Perturbación en el ángulo');
xlabel('Tiempo[s]');
ylabel ('Ángulo[º]')
42
Capítulo 6: Anexos
Índice 1 7 12 18 23
Kp -4 -3 -2 -2 0
Ki 1 -1 -4 1 -2
Kd -2 -5 -3 -4 -4
Figura 43. Respuesta del sistema con Kp=-2, Ki=-4 y Kd=-3 (combinación 12)
- Estables con mayor tiempo de respuesta: En este grupo se han añadido las
combinaciones cuyas respuestas eran estables, pero tardaban más en estabilizar el
sistema en comparación a las cuatro combinaciones escogidas. Este es el grupo más
numeroso y las combinaciones están reflejadas en la tabla 5. En la figura 44 se ven dos
ejemplos de esto donde la 42.b es mas notable, ya que no se llega a apreciar el error 0.
Tabla 5: Índices y combinaciones con respuesta estable y mayor tiempo
Índice 2 3 4 5 6 8 9 10 11 13 14 15 16 19 20 22 24
Kp -3 -3 -3 -3 -3 -3 -3 -3 -3 -2 -2 -2 -2 -1 -1 -1 0
Ki -5 -4 -3 -2 -2 -1 -1 0 0 -2 -1 -1 0 -1 0 0 0
Kd -3 -3 -3 -3 -2 -3 -2 -3 -2 -3 -3 -2 -3 -3 -3 -1 -3
43
Capítulo 6: Anexos
Figura 44: Estables con mayor tiempo de respuesta. a) Respuesta estable a los 14 segundos. b) Respuesta
estable a t>20 segundos
Las respuestas estables, las cuatro restantes, ya están contempladas en el apartado 3.5.2.
44
Capítulo 7: Referencias
7. Referencias
1. J. Aracil and F. Gordillo, “El péndulo invertido: un desafío para el control no lineal”,
Revista Iberoamericana de Automática e Información Industrial, vol. 2, No. 2, Apr, 2005.
2. F. Castaños, and R. Carreras. “Levantamiento y control de un péndulo invertido con un
esquema de control reconfigurable”, XI Congreso Latinoamericano de Control
Automático, May, 2004.
3. Lal Bahadur Prasad, Barjeev Tyagi and Hari Om Gupta, “Optimal Control of Nonlinear
Inverted Pendulum System Using PID Controller and LQR: Performance Analysis
Without and With Disturbance Input”, International Journal of Automation and
Computing, vol. 11, Issue 6, Dec, 2014.
4. Leonardo E. Contreras Bravo and Luis F. Vargas Tamayo, “Generación de modelos de
caminata bípeda a través de diversas técnicas de modelamiento”, Ingeniería, vol. 11, No.
2, Aug, 2007.
5. K. Ogata, Dinámica de sistemas, Prentice Hall, 1987.
6. K. Ogata, Ingeniería de control moderna, Pearson, 2010.
7. J. García, L. Ramírez, X. Siordia and T. Martínez, “Las leyes de Newton en el modelado
y control del péndulo invertido sobre un carro”, Revista Tecnología e Innovación, vol. 3,
No. 9, Dec, 2016
8. Víctor M. Alfaro, “Ecuaciones para controladores PID universales”, Ingeniería, vol. 3,
No 1, Jan/Jun, 1993
9. Víctor M. Alfaro, “Ecuaciones para controladores PID universales”, Ingeniería, vol. 12,
No 1, 2, Jan/Dec, 2002
10. S. Castaño, “Control Automático Educación”,
https://controlautomaticoeducacion.com.
11. A. Calvó, “Diseño, Simulación y construcción de un sistema carro-péndulo mediante la
tecnología lego”, Master’s tesis, Universitat Rovira i Virgili, Dept. d’Eng. Electrònica i
Automàtica, 2012.
45