1
PROYECTO DE GRADO
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA MECÁNICA
Para obtener el título de:
INGENIERO MECÁNICO
Por:
Juan Sebastián Vargas Méndez
Estudio de un modelo de robot con auto balanceo
-Asesor: Carlos Francisco Rodríguez PhD, Profesor asociado, Universidad de los Andes
2
Contenido
1) Introducción................................................................................................................................................................ 3
a. Objetivo general: ........................................................................................................................................................ 5
b. Objetivos específicos: .................................................................................................................................................. 5
2) Modelamiento del sistema ......................................................................................................................................... 6
a. Desarrollo del modelo: sistema no lineal .................................................................................................................... 6
b. Sistema linealizado sobre punto equilibrio ................................................................................................................. 6
c. Estimación de parámetros del sistema ....................................................................................................................... 8
3) Diseño de los controladores ..................................................................................................................................... 10
a. Control básico PID: respuesta escalón ...................................................................................................................... 10
b. Realimentación de estados (state-feedback) ........................................................................................................... 11
c. Pole placement ......................................................................................................................................................... 12
d. Controlador LQR: ...................................................................................................................................................... 13
e. Sistema con observador ............................................................................................................................................ 16
f. Controlador LQG ....................................................................................................................................................... 18
4) Análisis de la respuesta del sistema según el controlador ....................................................................................... 20
a. State feedback .......................................................................................................................................................... 20
b. Controlador LQR ....................................................................................................................................................... 23
c. Controlador con observador .................................................................................................................................... 27
d. Controlador LQG ....................................................................................................................................................... 30
5) Diseño del prototipo físico ....................................................................................................................................... 34
a. Requerimientos y restricciones ................................................................................................................................ 34
b. Componentes electrónicos: ...................................................................................................................................... 34
c. Estructura de la base del prototipo: ......................................................................................................................... 34
d. Análisis del torque necesario en los motorreductores: ........................................................................................... 36
e. Integración de componentes y prototipo final:........................................................................................................ 38
6) Pruebas sobre el prototipo ....................................................................................................................................... 40
7) Conclusiones ............................................................................................................................................................. 42
8) Referencias ............................................................................................................................................................... 43
3
1) Introducción
El Segway Ninebot S es un transportador eléctrico inteligente con auto balanceo, desarrollado por la empresa
estadounidense Segway, y es uno de los exponentes más reconocidos en el mercado de los transportadores personales
con auto balanceo. Cuenta con una velocidad máxima de 10 millas por hora, un sistema de luces delanteras y traseras
para una navegación cómoda y segura del usuario y una autonomía de 13.7 millas gracias a su batería Ion-Litio de alto
desempeño, entre otras características. El sistema es propulsado por dos motores de 800 W cada uno y está construido
en un chasis base de aleación de magnesio, brindándole un peso ligero (Segway, 2020).
Figura 1. Dispositivo de auto balanceo Segway Ninebot S. Cortesía de Segway, 2020.
Adicionalmente, este tipo de sistema con auto balanceo se basa en el péndulo invertido, un modelo basado en un
péndulo cuyo centro de masa se encuentra por encima de su pivote de giro, haciendo el sistema inestable sin una ayuda
externa. El sistema puede estar en estado de equilibrio estable o inestable; usualmente la parte superior se encuentra
inestable, siendo necesario un controlador para mantener un equilibrio estable. Este es un problema clásico en la teoría
de sistemas de control y en la dinámica; el control de la estabilidad del péndulo invertido ha sido objeto de investigación
por parte de ingenieros desde hace 5 décadas hasta el día de hoy. Entre las diversas aplicaciones comerciales de este
principio se encuentran los transportadores con auto balanceo basados en el modelo de Segway, los sismómetros y
algunos robots humanoides en el principio para caminar de manera estable (Magdy et al, 2019).
Paralelamente, uno de los mayores retos al hacer uso del péndulo invertido en sus aplicaciones es el diseño y/o la
escogencia del controlador a utilizar en el sistema de control, encargado de balancear el péndulo aplicando una
4
reacción al sistema con el péndulo invertido. Se han utilizado controladores PD, PI, LQR y de manera mayoritaria el
controlador PID para este propósito. Una vez escogido el controlador, establecer los parámetros del controlador se
vuelve una tarea importante, bien sea por medio de algoritmos numéricos o por el método de prueba y error del
equilibrio del sistema (Magdy et al, 2019).
Tanto en la Universidad cómo en el resto del mundo se han desarrollado proyectos en donde se diseñaron y
construyeron robots con auto balanceo, utilizando el principio del péndulo invertido. Uno de estos es un robot con
auto balanceo utilizando un módulo Arduino. Para este modelo (además del módulo Arduino UNO), se utilizó un
controlador PID, dos motores DC con reducción, un módulo de acelerómetro y giroscopio, un set de llantas, dos baterías
de 3.7V de Ion de litio y un armazón en impresión 3d.
Figura 2. Modelo de robot con auto balanceo. Cortesía de Raj,2018.
Este modelo es de simple configuración, debido a la facilidad de uso del módulo Arduino UNO. Además, otros
componentes como los motores fueron escogidos debido a que son simples para manipular y para integrar, igual que
con el módulo de acelerómetro. El armazón fue elaborado en PLA, pero cualquier otro material resistente y lo
suficientemente robusto puede ser utilizado. Se realizó un circuito simple conectando el módulo de acelerómetro, los
motores y la batería al Arduino, el cual después fue sometido a la programación en el software correspondiente con el
objetivo de realizar las conexiones pertinentes, ajustar el offset del sistema (así como calibrar los sensores) y definir los
parámetros del controlador PID. Para finalizar este proceso de programación, se insertó la función de transferencia del
sistema para obtener las variables de salida y entrada que regularán el sistema de control realimentado del proceso.
La variable de entrada son las lecturas del sensor acelerómetro, mientras que la salida es la velocidad y dirección a la
que deben rotar los motores. Una vez ensamblado todo el sistema, como se aprecia en la Figura 3, se puede probar el
correcto funcionamiento del robot (Raj,2018).
5
a. Objetivo general:
Desarrollar el modelo conceptual de un robot con auto balanceo, abarcando desde el sistema de control y los
controladores hasta la integración del sistema, con el fin de crear un prototipo adaptable y funcional que sirva a su vez
como un modelo de enseñanza para el entendimiento de los conceptos involucrados.
b. Objetivos específicos:
• Comparar diversos controladores con el objetivo de definir el mejor controlador para obtener una respuesta
del sistema óptima con una fuerza de control no tan grande.
• Diseño y construcción de un prototipo que permita probar el funcionamiento del controlador implementado
• Analizar la respuesta de los estados del sistema en diferentes escenarios
6
2) Modelamiento del sistema
a. Desarrollo del modelo: sistema no lineal
Tomando en cuenta que las dinámicas del sistema son no lineales, puede partirse de las ecuaciones de Euler-Lagrange
para su análisis dinámico y de fuerzas. En un modelo simple, las ecuaciones de estado del sistema no lineal son:
Figura 3. Diagrama de cuerpo libre de cuerpo con péndulo invertido. Tomado de CTMS Michigan University.
Donde: I es el momento de inercia del péndulo, m su masa, M la masa del cuerpo haciendo uso del péndulo, l la distancia hasta el centro de masa
del péndulo, g la fuerza de gravedad, F la reacción realizada para generar el equilibrio, b el coeficiente de fricción entre el objeto y la superficie, x
la posición horizontal del sistema (�̇� su velocidad, �̈� su aceleración lineal ) y 𝜃 la desviación de la posición del péndulo respecto a su equilibrio (�̈�
su aceleración angular).
A partir de estas ecuaciones, se implementó el modelo usando Matlab y el software Simulink, para observar el
comportamiento de la respuesta del sistema posteriormente.
b. Sistema linealizado sobre punto equilibrio
Luego, de manera general, las ecuaciones del sistema linealizado sobre el valor de phi=180 (dado que en este valor es
dónde el péndulo invertido se encuentra totalmente perpendicular a la superficie y en equilibrio) que dictan el
movimiento de un cuerpo utilizando el modelo del péndulo invertido son:
(𝐼 + 𝑚𝑙2)�̈� − 𝑚𝑔𝑙𝜃 = 𝑚𝑙�̈�
7
(𝑀 + 𝑚)�̈� + 𝑏�̇� − 𝑚𝑙�̈� = 𝐹
Con lo anterior, se procede a calcular la función de transferencia entre la salida y la entrada del sistema:
Dónde:
Posteriormente, se realizó la representación en state-space del sistema por medio de ecuaciones diferenciales que, por
ser lineales, pueden representarse por medio de las siguientes matrices de estado:
La representación del estado en state-space se realizó en Matlab y Simulink como se muestra a continuación:
8
Figura 4. Representación en state-space en Matlab
Lo anterior cumple con las relaciones:
𝑋′ = 𝐴𝑥 + 𝐵𝑢 𝑌 = 𝐶 ∗ 𝑥
c. Estimación de parámetros del sistema
La estimación de los parámetros físicos importantes para modelar el sistema se hizo de la siguiente manera:
• Masa estática y de péndulo: Se hizo una aproximación inicial a partir de la masa de los componentes del
prototipo y de la estructura, para luego ajustarlos gracias al uso de una balanza electrónica.
• Coeficiente de fricción: Se utilizó el coeficiente de fricción promedio de una superficie moderadamente lisa.
9
• Momento de inercia del péndulo: Se hizo uso de la herramienta de estimación de inercia del software Autodesk
Inventor, a partir de la pieza de la estructura modelada.
• Distancias: Se hizo uso de la herramienta de estimación “medir” de Inventor para obtener las distancias
necesarias
Luego, la implementación del sistema con sus parámetros y la obtención de la función de transferencia en Matlab
fue la siguiente:
Figura 5. Parámetros del sistema y función de transferencia en Matlab
10
3) Diseño de los controladores
a. Control básico PID: respuesta escalón
A partir de la función de transferencia obtenida, se diseño un controlador simple PID, que usa los datos medidos para
ajustar el valor de la salida dado un valor establecido. Esto genera una señal de error que permite lograr un control
más complejo, en dónde este valor tienda a disminuir. Este es, además, el algoritmo de control más utilizado en la
industria, debido a su robustez en una amplia variedad de operaciones y su simplificad funcional que le permite ser
operado de manera sencilla (Nise, 2011).
Se hizo uso de la función “pid” de Matlab y una estimación inicial de los valores Kp, Kd y Ki del sistema. Después, se
simuló el sistema con una entrada escalón buscando obtener el menor overshoot posible con un tiempo de
estabilización de la respuesta lo menor posible, cómo se muestra a continuación:
Figura 6. Control PID
Sin embargo, se hizo también uso de la función “pid tuner” para ajustar de mejor manera los parámetros Ki, Kd y Kp de
manera que se cumpliera lo propuesto anteriormente. Se hizo ajuste del ancho de banda y el margen de fase,
obteniendo lo siguiente:
11
Figura 7. PID tuner con sus parámetros
Este último fue utilizado para la implementación de los parámetros en el prototipo real posteriormente
b. Realimentación de estados (state-feedback)
En segundo lugar, se implementó el sistema en realimentación de estados a partir de las matrices de estado
obtenidas del sistema linealizado para estimar la acción de control a partir de la realimentación producida para las
dinámicas del sistema estudiado (M.Fadali, 2013). Los estados del sistema con los que se trabajó son:
• Posición (x)
• Velocidad (x´)
• Ángulo (inclinación) (phi)
• Velocidad angular (phi´)
Lo anterior incluye la estimación de una matriz K de realimentación y un factor de precompensación (N) que
contrarresta y soluciona el error en estado estable del sistema, por medio de una ganancia que se añade antes de
la realimentación. Adicionalmente, se cumplen las siguientes relaciones:
𝑋´ (𝑡) = 𝐴𝑥 + 𝐵𝑢 𝑦(𝑡) = 𝐶 ∗ 𝑥 𝑈 = −𝐾 ∗ 𝑥
12
Figura 8. Modelo de state feedback en Simulink
c. Pole placement
A partir del sistema en state-feedback y sus matrices de estado, se procedió a implementar el método de pole
placement (con una pareja de polos en lazo cerrado) y observar su efecto en una simulación del sistema con una
entrada escalón de posición de x=0.2m.
- Variación parte real:
Polo S1 S2 S3 S4
1 -5.87+0.0011i -5.87-0.0011i -0.53 -0.15
2 -15.87+0.0011i -15.87-0.0011i -0.53 -0.3
Figura 9. Variación de la parte real de los polos y su efecto en la respuesta del sistema
Respecto al 2 polo, hay un mayor gasto de fuerza de control (por ser más negativo el polo) y un menor
tiempo de estabilización para el ángulo, pero más overshoot en ambos estados.
- Variación de la de parte imaginaria:
13
Se tiene una respuesta transitoria oscilatoria, que resulta en un sistema subamortiguado (debido al factor
de amortiguamiento con un valor entre 0 y 1) (Kinnaert, 1995)
Polo S1 S2 S3 S4
1 -5.87+0.0011i -5.87-0.0011i -0.53 -0.15
2 -5.87+0.0211i -5.87-0.0011i -0.53 -0.15
Figura 10. Variación de la parte imaginaria de los polos y su efecto en la respuesta del sistema
En general, se encontraron las siguientes observaciones para posicionar los polos del sistema de manera eficiente,
buscando obtener la respuesta deseada:
- Modificar la parte real de los polos influye más en la respuesta. Entre más negativo, más fuerza de control y
menor tiempo estabilización
- Modificar la parte imaginaria de los polos define qué tanto oscilará el sistema; entre más pequeña sea su
magnitud, la respuesta oscilará menos y entre más grande sea su magnitud, la respuesta tendrá una mayor
oscilación.
- Poner polos muy negativos puede reducir el tiempo estabilización, pero el alto gasto de control y overshoot de
las respuestas pueden afectar el prototipo y el correcto funcionamiento.
- Se debe buscar un equilibrio de un polo que no genere tanto gasto de fuerza de control, pero que permita un
tiempo estabilización aceptable con un overshoot no tan grande que no afecte el sistema/prototipo.
d. Controlador LQR:
El Regulador Cuadrático Lineal (LQR) es un método que provee ganancias de realimentación óptimamente controladas
que permiten el diseño de sistemas de alto rendimiento y un estado en lazo cerrado estable (Alexis, 2020). A partir del
sistema en state feedback junto con el método de pole placement, se implementó el siguiente sistema en Simulink:
14
Figura 11. Modelo en SImulink del controlador LQR
Luego, los polos que fueron utilizados para este controlador fueron:
Polo S1 S2 S3 S4
1 -5.87+0.0011i -5.87-0.0011i -0.53 -0.15
El controlador LQR está compuesto por dos parámetros: Q y R que dependen de los polos del sistema y juntos definen
la matriz K de realimentación.
- Cambio parámetros Q y R:
•
Q= R=1
15
Figura 12. Respuesta del sistema con los valores de Q y R
Con estos valores de Q y R no se obtiene la respuesta deseada de posición x=0.2m
•
Q= R=1.5
Figura 13. Respuesta del sistema con los valores de Q y R
Con estos valores de Q y R se obtiene la respuesta deseada
16
Se notó que aumentar los valores de la matriz Q y R aumentan el peso en el error de la respuesta para obtener
comportamiento deseado. Después de cierto valor, aumentarlos no afecta más a la respuesta. Sin embargo, debe
tenerse en cuenta que para valores bajos, aunque la respuesta es menos agresiva, no es la deseada, por lo que siempre
es necesario aplicar fuerza sobre el sistema tal que se alcance el comportamiento deseado.
e. Sistema con observador
Gramianos:
Los gramianos, además de darnos la información de controlabilidad y observabilidad, permiten conocer la
facilidad de controlar o de observar el sistema estudiado (Castaño, 2020)
• A partir de las matrices estado, el sistema linealizado sin controlador implementado es inestable, por lo
tanto, no se pueden computar los gramianos. Se calculan después de la acción de control del LQR y el factor
de precompensación
Entre más grande sea el autovalor asociado al estado, mayor será la influencia en este.
- Gramiano de observabilidad: Los autovalores de la matriz Wo describe como el estado inicial (x, phi) influye en
la salida (y) cuando la entrada es nula
• La observabilidad trata la relación estado-salida.
• La matriz Wo es definida positiva, posee rango completo de 4=variables estado. El sistema es observable
• Según lo anterior, la variable de estado que más afecta la salida es phi’ (debido a la magnitud del 4
autovalor), seguida de lejos por phi. Mientras que x y x’ (debido a sus autovalores) no son dominantes al
no afectar el comportamiento de la salida.
17
• Entre más cercano a cero sea cualquier autovalor de Wo, más grande será la energía mínima requerida
para obtener una salida deseada a partir del estado (será menos observable).
Si no es posible medir todas las variables del sistema en el tiempo, es necesario implementar un sistema que no
realimente todas las variables, sino solamente algunas (en este caso, los estados escogidos para realimentar el sistema
inicialmente fueron la posición y el ángulo). Para lograr esto, se implementa un sistema “copia” o un clon del sistema
en state space que permita crear un estimador de estado, con una nueva matriz de ganancia (L). El sistema con
observador fue implementado en Simulink como se observa a continuación:
Figura 14. Sistema con observador principal implementado en Simulink
• Según lo obtenido de los gramianos, el estado más observable y el que sería el más apto para medir al
aplicar el estado con observador sería la velocidad angular. Luego, se implementó otro sistema con
observador con la velocidad angular y la velocidad como estados que realimentan, así:
18
Figura 15. Sistema con observador secundario en Simulink
f. Controlador LQG
El controlador Gaussiano Lineal Cuadrático es un tipo de controlador apto para sistemas lineales en dónde existen
entradas de ruido Gaussiano (o blanco) y/o perturbaciones físicas que afecten al sistema. Por ende, se busca
contrarrestar los efectos que estos puedan causar y generar la respuesta del sistema esperada (Brunton, 2017)
• Inicialmente, se parte del control LQR (con matriz K) y el sistema no linealizado:
Figura 16. Paso inicial en el diseño del controlador LQG en Simulink
A la salida (los estados: x,phi) se les restan valores para ajustarlos al LQR, ya que el sistema no se encuentra
linealizado aún. Luego se multiplican por -K y se introducen al sistema como la entrada U.
19
• Luego, se aplica un filtro de Kalman (estimador de estado) y se combina al controlador LQR que
previamente se tenía. Además, se añaden perturbaciones y ruido blanco.
El estimador de Kalman se rige por las siguientes relaciones:
𝑋´(𝑡) = 𝐴𝑥 + 𝐵𝑢
𝑦 (𝑡) = 𝐶𝑥 + 𝐷𝑢
Figura 17. Sistema final con el controlador LQG implementado
A la salida, se mide x y se multiplica por la ganancia C (Y=c*X), luego junto a U, se introducen al filtro de Kalman
para después pasar por el controlador LQR y la matriz K, lo que luego se introduce como entrada al sistema.
Esto constituye a grandes rasgos el controlador LQG.
20
4) Análisis de la respuesta del sistema según el controlador
En esta sección, se analizarán simulaciones del sistema con distintas entradas en los diferentes controladores que se
mostrarán a continuación. A manera de motivación, estas entradas pueden asociarse con algunas aplicaciones o
escenarios útiles:
• Entrada velocidad: Transporte de objetos a una posición específica.
• Entrada ángulo: Búsqueda del equilibrio cuando se tiene una inclinación constante del sistema.
• Entrada velocidad: Mover el sistema a una velocidad constante y observar el movimiento para el equilibrio.
• Perturbaciones: Distintos fenómenos físicos o digitales que puedan afectar el funcionamiento normal del
sistema.
A partir de los controladores diseñados, se procedió a analizar la respuesta de los estados del sistema y comparar el
desempeño de cada uno de ellos. Para esto, se organizó cada controlador en un bloque en Simulink de forma que se
pudiese cambiar el controlador y observar la respuesta del sistema, así:
Figura 18. Controladores en bloques del sistema en Simulink
a. State feedback
- Se simuló el sistema con una entrada de posición x=0.2m
• Respuesta de posición y ángulo
21
Figura 19. Respuesta de los estados posición (amarillo; en metros) y ángulo (azul; en radianes)
• Respuesta de velocidades:
Figura 20. Respuesta de los estados velocidad (amarillo; en metros/segundo) y velocidad angular (azul; en radianes/segundo)
Se observa que la respuesta del sistema no es satisfactoria, ya que no se logra el equilibrio en la posición objetivo de
0.2 metros. Además, el ángulo no logra equilibrarse en 0 radianes, indicando que el sistema no llega a estar en equilibrio
22
totalmente perpendicular a la superficie. El comportamiento de las velocidades es consecuente con la de los estados
ya mencionados, pero la respuesta de los estados en general no es aceptable para lo esperado.
- Por otro lado, se simuló el sistema con perturbaciones y ruido, producto de posibles fenómenos físicos o
digitales que podrían suceder en el funcionamiento del sistema:
• Fricción seca debido a la carga normal del robot, en caso donde la superficie puede ser un asfalto más
áspero (se modela como una entrada Step):
Si la fricción se aumenta debido a una superficie más rugosa a: 1.2 N/m/s, la respuesta es:
Figura 21. Respuestas de posición y ángulo (izquierda) y velocidades (derecha) con la perturbación
Se denota que la fuerza de control al sistema no es suficiente para lograr un equilibrio en el sistema, debido
a la respuesta del ángulo. Por otro lado, la posición se estabiliza en un valor ligeramente mayor al esperado.
• Ruido blanco: generado en la lectura de las señales por diseño imperfecto o por el circuito del sistema
(error de cero), se modela con un valor de 0.001 y la respuesta obtenida fue:
Figura 22. Respuestas de posición y ángulo (izquierda) y velocidades (derecha) con el ruido blanco
23
Se observan unas respuestas aceptablemente claras, aunque las velocidades se ven más afectadas por el
ruido debido a la serie de picos presentes. En general, un ruido de esta magnitud no afecta
significativamente a la respuesta de los estados.
b. Controlador LQR
Se simuló el sistema con una entrada de posición x=0.2m
• Posición y ángulo
Figura 23. Respuesta de los estados posición (amarillo; en metros) y ángulo (azul; en radianes)
• Velocidades lineal y angular:
Figura 24. Respuesta de los estados velocidad (amarillo; en metros/segundo) y velocidad angular (azul; en radianes/segundo)
24
En todos los estados, se observa una respuesta satisfactoria de acuerdo con lo esperado; el ángulo se estabiliza
en cero (sistema en equilibrio) y la posición en su valor deseado de 0.2 metros. El comportamiento de las
velocidades es consecuente con el movimiento realizado.
- Sin embargo, fue necesario implementar un arreglo del error en estado estable para las siguientes
simulaciones. Consistió en restarle el x medido al x deseado (entrada) de manera que el sistema tuviera un
mejor comportamiento. Luego, el sistema en Simulink fue:
Figura 25. Modelo LQR en Simulink con arreglo del error.
- Sistema con entrada cero y condiciones iniciales:
• Con x=-0.12 y phi=-0.05
Figura 26. Respuesta con condiciones iniciales
• Con x= 0.3 y phi=0.1
25
Figura 27. Respuesta con condiciones iniciales
En ambos casos, se ve cómo ambas respuestas, a pesar de las condiciones iniciales, logran estabilizarse en cero
(equilibrio) gracias a la fuerza de control del LQR. También, como era de esperarse, unas condiciones iniciales de mayor
magnitud desestabilizan más los primeros segundos del sistema y toman ligeramente más tiempo en estabilizarse.
Finalmente, se observa que la variable de condición inicial que dicta el comportamiento de la respuesta es el ángulo,
ya que dependiendo del sentido de inclinación respecto al equilibrio el sistema se moverá hacia adelante (ángulo
negativo) o hacia atrás (ángulo positivo)
- Se simula el sistema con entrada de velocidad:
Se busca reducir los estados para que la variable de posición pueda verse afectada por la entrada de velocidad
ya que, cómo se vio en el Gramiano de controlabilidad, la posición no es muy controlable en el sistema.
• Si se realimentan todos los estados, con entrada de velocidad=5 m/s:
Figura 28. Respuesta completamente realimentada con entrada velocidad
La posición se termina estabilizando en el valor cero debido a la dificultad de controlabilidad, la entrada no
la afecta significativamente y se obtiene una respuesta no consecuente en la realidad debido a la entrada.
26
• Si no se realimenta la posición y se tiene un estado más reducido, con velocidad=5m/s:
Figura 29. Respuesta con sistema parcialmente realimentada con entrada velocidad.
El comportamiento de la posición ahora corresponde más con la entrada puesta de velocidad, el disparo
de su valor conforme avanza el tiempo es consecuencia de esto. Este es un comportamiento más real
tomando en cuenta la entrada de velocidad.
• Velocidad lineal:
Figura 30. Respuesta de velocidad con entrada velocidad (en m/s)
La magnitud de velocidad en su pico más grande es bastante, posiblemente por el hecho de que no se está
realimentando la posición y se dispara su valor. Sin embargo, logra estabilizarse muy cerca del valor de la
entrada (en 4.937 m/s)
• Velocidad angular:
27
Figura 31. Respuesta de velocidad angular con entrada velocidad (en rad/s)
Su comportamiento es similar a la velocidad lineal, se estabiliza cerca a cero. Indica que el sistema no se
estabiliza por completo debido a la entrada velocidad.
c. Controlador con observador
Ahora, se simuló el sistema con entrada de posición x=0.2m en el estado con observador principal, obteniendo las
siguientes respuestas:
• Posición y ángulo:
Figura 32. Respuesta de los estados posición (amarillo; en metros) y ángulo (azul; en radianes) en estado con observador
• Velocidades:
28
Figura 33. Respuesta de los estados velocidad (amarillo; en metros/s) y velocidad angular (azul; en radianes/s)
Así como en el caso anterior del controlador LQR, se observan unas respuestas consecuentes con lo esperado en cuanto
al valor de estabilización y el comportamiento de las velocidades. Es posible reconstruir los estados que no pueden
medirse a partir del observador de manera correcta gracias a la acción de control.
- Paralelamente, si se cambia el estado que realimenta al más observable según el análisis de los Gramianos
(velocidad angular y velocidad), la respuesta con la misma entrada es:
• Posición y ángulo:
Figura 34. Respuesta de los estados posición (amarillo; en metros) y ángulo (azul; en radianes) en estado con observador secundario
• Velocidades:
29
Figura 35. Respuesta de los estados velocidad (amarillo; en metros/s) y velocidad angular (azul; en radianes/s)
Sin embargo, en este caso se puede notar que la respuesta ya no es la deseada. De hecho, es contraria al
comportamiento esperado y el punto de estabilización de la posición no concuerda. Realimentar el observador con
estos estados no es ventajoso, es preferible el estado con observador principal.
- Con base en lo anterior, se procedió a simular el sistema con el observador principal con entrada de ángulo de
la siguiente manera:
• Con entrada ángulo phi=-0.02 rad
Figura 36. Respuesta del sistema con entrada ángulo
30
El ángulo oscila significativamente y empieza a estabilizarse en su valor de -0.02 rad después de 8 segundos
(posiblemente por su baja controlabilidad según lo obtenido del Gramiano de controlabilidad)
La posición oscila, pero termina disparándose con valor positivo (moviéndose hacia adelante), consecuente con la
entrada puesta ya que buscará este movimiento para equilibrarse.
• Con entrada ángulo positivo: Phi=0.02 rad
Figura 37. Respuesta del sistema con entrada ángulo
El ángulo oscila y empieza a estabilizarse en su valor de 0.02 rad después de 8 segundos, al igual que el caso anterior.
La posición oscila, pero termina disparándose con valor negativo (moviéndose hacia atrás), al igual que en el caso
anterior busca este movimiento para equilibrarse.
Si bien las respuestas obtenidas no son totalmente satisfactorias, se deduce que a partir del observador implementado
se puede hacer una reconstrucción aceptable de todos los estados si no es posible medirlos completamente, aunque
se requiere una fuerza de control mayor que en el controlador LQR que debe tenerse en cuenta según las capacidades
del sistema.
d. Controlador LQG
Para el controlador LQG, primero se simuló sobre el sistema no lineal con entrada de posición x=0.2m, obteniendo la
siguiente respuesta:
31
Figura 38. Respuesta del sistema no lineal con control LQG (Rojo: ángulo. Amarillo: posición. Azul: Velocidad. Verde: Velocidad angular).
Se deduce a partir de lo obtenido que es posible estabilizar el sistema inestable (no lineal), a pesar del ruido introducido
debido al filtro de Kalman, en los valores esperados. El valor del ángulo se estabiliza en pi debido a que aún no se ha
linealizado el sistema sobre este punto.
• Después, se aplica el mismo proceso, pero con el sistema linealizado:
32
Figura 39. Respuesta de posición (m) y ángulo (rad) con controlador LQG
Figura 40. Respuesta de velocidad (m/s) y velocidad angular (rad/s) con controlador LQG
Respecto a la simulación en el sistema no lineal, se observa un comportamiento similar en ángulo y posición, y un
comportamiento distinto en la velocidad, aunque en ambos casos se llega al equilibrio en los estados.
Se deduce que a partir de la medición de x, se pueden reconstruir y estimar todos los estados del sistema gracias al
control LQG. Además, este nuevo sistema es más sensible al ruido y posibles perturbaciones causadas por el filtro de
Kalman, luego, el control LQG es el más funcional para este tipo de escenarios.
33
- La fuerza de entrada U en el tiempo, para cada caso, fue:
• Sistema no lineal:
Figura 41. Respuesta de la entrada U para el sistema no lineal (en N)
• Sistema lineal:
Figura 42. Respuesta de la entrada U para el sistema lineal (en N)
En el sistema linealizado el valor de la fuerza de entrada es mayor debido a que existe una mayor acción de
control; se le pide más al sistema para realizar el mismo comportamiento y llegar al equilibrio. Esta mayor
fuerza de control es resultado de las condiciones de perturbaciones, que deben contrarrestarse para lograr una
respuesta consecuente con lo esperado.
34
5) Diseño del prototipo físico
a. Requerimientos y restricciones Con respecto a la estructura de la base sobre la cual se construirá el prototipo final, se establecieron los siguientes
puntos para tener en cuenta en su diseño:
• Sus dimensiones no deben exceder 20x20x8 cm para su fácil transporte y manejo
• Debe estar compuesta por plataformas en niveles que permitan alojar los componentes electrónicos
necesarios, así como fijarlos en su sitio
• Su diseño será simple, de manera que no se añada demasiada masa al prototipo final
• Debe ser fácilmente manufacturada por impresión 3D, corte láser o procesos similares
b. Componentes electrónicos:
Tomando en cuenta el diseño de la estructura del prototipo y los requerimientos para el funcionamiento y movimiento
del sistema, se escogieron los siguientes componentes y actuadores para ensamblar el prototipo:
• Sensor acelerómetro-giroscopio MPU6050
• 2 motorreductores plástico 100 mAh, 9V
• Módulo para motor L298N
• Módulo Arduino Uno
• Batería Lipo 450 mAh, 7.4V
• Batería Li-ion 9V
• Ruedas compatibles con los motorreductores
c. Estructura de la base del prototipo:
Con base en el diseño de la estructura realizado y con el objetivo de que se puedan instalar y ensamblar todos los
componentes electrónicos, la base del prototipo está compuesta por los siguientes elementos:
• Estructura base:
35
Figura 43. Base de la estructura del prototipo
Esta base está compuesta por 3 niveles en dónde estarán ubicados el módulo de motor y los motores, las baterías y el
acelerómetro y finalmente el módulo Arduino, respectivamente de abajo hacia arriba. También cuenta con unos
agujeros en cada nivel que sirven de canales para los cables (jumpers) necesarios para las conexiones entre
componentes, así como de espacios para alojar tornillos que mantengan fijos los componentes. Finalmente, también
posee un canal en el nivel intermedio en dónde se instalará una pared en dónde se alojarán las baterías con el objetivo
de mantenerlas en su sitio cuando el prototipo se encuentre en funcionamiento.
• Pared:
Figura 44. Pared alojadora de baterías del prototipo
Esta pared es la encargada de alojar y mantener en su sitio a las dos baterías empleadas y se instala en los
canales disponibles en la estructura base dispuestos para este propósito. Se dejó un espacio en la parte
superior de las partes laterales para situar los puntos de conexión y cables de las baterías.
• Tapa:
36
Figura 45. Tapa para la pared del prototipo
Para encerrar por completo el alojamiento de las baterías, se diseñó una tapa simple con dos que encajan
con la parte superior de la pared, de esta manera, se puede poner y quitar de manera fácil para el cambio
de baterías.
• Piezas ensamble motores:
Figura 46. Pieza para ensamblar los motores en el prototipo
Finalmente, se diseñaron 4 piezas para ensamblar y fijar los motores a la estructura base. 2 de estas para fijar cada uno
de los motores a la base y mantenerlos en su sitio.
- Todas las piezas fueron elaboradas por medio de impresión 3D en ABS, con un grosor de 2 mm.
- Para ensamblarlas a la base, se hizo uso de tornillos de 2 mm.
- Para fijar la pared a la base, se utilizó pegamento Super Bonder.
- Para las conexiones entre componentes, se utilizaron cables tipo Jumper.
d. Análisis del torque necesario en los motorreductores:
Es necesario asegurarse que los valores de torque que sean necesarios para transmitir a las ruedas y generar el
movimiento del sistema no superen los límites de torque de los motores. Para esto, se calculó el torque aproximado
del sistema por medio de la relación básica: Torque=F*d (donde F es una función de velocidad y aceleración),
obteniendo la ecuación de torque que se utilizará para saber los valores:
37
Esta ecuación es producto del análisis fuerzas del sistema (realizado en la sección de modelamiento del sistema). La
respuesta obtenida fue:
Figura 47. Torque requerido por el motor en el tiempo (s) para el sistema (en Nm)
Se nota que al estabilizarse, los valores de aceleración y velocidad tienden a cero (debido a la función de
fuerza). Sabiendo que los picos de torque se encuentran antes del primer segundo transcurrido y el valor
más alto alcanzado es de -0.18 Nm.
Ahora, tomando en cuenta el torque máximo que puede generar el motorreductor (0.2 Nm), se procedió a
ingresar la gráfica de torque por un saturador con este valor límite con el fin de evitar que algún valor
estuviese por fuera de este rango. La respuesta obtenida fue:
38
Figura 48. Gráfica de torque con saturación en el tiempo (en Nm)
Se observa que la gráfica es muy similar a la ya establecida, debido a que ningún valor superaba los valores
de saturación. Por lo tanto, no hay peligro de que en algún momento se le solicite al motor un valor de
torque que no pueda generar.
e. Integración de componentes y prototipo final:
Para la integración final del prototipo, se ensamblaron todos los componentes y la estructura base según lo descrito
anteriormente, el prototipo final obtenido fue el siguiente:
39
Figura 49. Prototipo final ensamblado
En este prototipo, todas las conexiones y ensamblajes se encuentran ya realizadas, resultando en un robot robusto y
listo para su programación mediante el software Arduino, así como las pruebas posteriores que se realizarán haciendo
uso de un controlador seleccionado a partir de las simulaciones realizadas.
40
6) Pruebas sobre el prototipo
• En primer lugar, en Arduino se realizó una serie de medidas del acelerómetro para establecer el punto de
equilibrio (punto en dónde el prototipo se encuentra completamente perpendicular a la superficie) para
establecer la acción a realizar dependiendo de en qué dirección y magnitud se encuentre la medición de
inclinación con respecto a este punto de equilibrio, este valor fue de 192°.
• Después, se realizó la programación del código haciendo uso de la librería del acelerómetro MPU 6050
(Obtenida de Github, 2020) para, teniendo en cuenta la medición de la inclinación, enviar una señal de
velocidad de giro y dirección a los motorreductores con el fin de equilibrar el sistema.
• Con respecto al controlador, se implementó inicialmente un control simple PID con los valores encontrados
de la simulación en la sección de diseño de controladores.
- El desempeño de este controlador PID fue satisfactorio, el robot podía estabilizarse moviéndose hacia adelante
o hacia atrás dependiendo de la inclinación que tuviese con respecto al punto de equilibrio.
Figura 50. Comportamiento del robot para el equilibrio con controlador PID
Esto demuestra que los valores del PID encontrados en la simulación son correctos y funcionales para
mantener el prototipo en equilibrio.
• Luego, se implementó el controlador de state space, con las matrices de estado obtenidas del sistema
linealizado.
- Por otro lado, el desempeño del controlador state space no fue igual de satisfactorio. A pesar de que la fuerza
de control era mayor con respecto al controlador PID, el sistema no alcanzó a equilibrarse y se caía, como se
ve a continuación:
41
Figura 51. Comportamiento del robot con movimiento hacia adelante (fallido), controlador state space
Figura 52. Comportamiento del robot con movimiento hacia atrás (fallido), controlador state space
Esto probablemente fue causado por el delay en la medición del ángulo que causó que la medición de
inclinación no alcanzara a realimentar a los motores a tiempo y no se lograra un comportamiento adecuado,
además de que la respuesta de los motores era muy fuerte, moviendo las ruedas rápidamente resultando en
que el prototipo se cayera, en contraste con el primer controlador implementado.
Con lo anterior, el robot con auto balanceo funcionó de manera correcta (con el controlador implementado
inicialmente) buscando equilibrarse a partir de la inclinación que tuviese gracias al controlador implementado,
demostrando que las simulaciones realizadas pueden ser un muy buen acercamiento a una situación real con un
prototipo con respecto a qué controlador implementar y cómo deben ser sus parámetros. Sin embargo, se deben tomar
en cuenta factores externos (como el delay en la medición de la inclinación) que pueden afectar el correcto desempeño
del controlador implementado.
42
7) Conclusiones
• Fue posible construir un prototipo funcional a partir del modelo conceptual desarrollado, el cual permitió
integrar algunos controladores y observar los efectos de estos.
• Se logró comparar el desempeño de diversos controladores en el modelo a partir de diferentes escenarios
y entradas, así como analizar las ventajas y desventajas entre ellos.
• El controlador (según el modelo desarrollado y el comportamiento de su respuesta) más adecuado para
obtener una respuesta del sistema óptima con una fuerza de control moderada es el controlador LQR,
debido a las respuestas esperadas obtenidas.
• Los resultados obtenidos del controlador implementado en el prototipo pueden verse afectados por
factores como el tiempo de respuesta o delay, lo que puede afectar el correcto funcionamiento de este.
Esto en contraste con lo obtenido en las simulaciones del modelo.
43
8) Referencias
Alexis, K. (2020). Dr. Kostas Alexis. Obtenido de University of Nevada: http://www.kostasalexis.com/lqr-control.html
Brunton, S. (6 de Febrero de 2017). Control Bootcamp: LQG example in Matlab . Obtenido de University of
Washington, Youtube: https://www.youtube.com/watch?v=reRT8LbPhBs
Castaño, S. (2020). Control Automático: Educación. Obtenido de Gramianos de Controlabilidad y Observabilidad:
https://controlautomaticoeducacion.com/sistemas-dinamicos-lineales/gramianos-de-controlabilidad-y-
observabilidad/
Github. (2020). MPU6050 library for Arduino. Obtenido de jrowberg:
https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
Kinnaert, M. (1995). The Design of Digital Pole Placement Controllers. Control and Dynamic Systems, 25-35.
M. Sami Fadali, A. V. (2013). State Feedback Control. Digital Control Engineering , 351-360.
Michigan, U. o. (Mayo de 2020). Control tutorials for Matlab and Simulink. Obtenido de Inverted Pendulum Modeling:
http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=SystemModeling
Mohamed Magdy, A. E. (Marzo de 2019). Modeling of inverted pendulum system with gravitational search algorithm
optimized controller. Obtenido de Ain Shams Engineering Journal:
https://www.sciencedirect.com/science/article/pii/S209044791830073X
Ninebot S self balancing hoverboard. (9 de Mayo de 2020). Obtenido de Segway: https://store.segway.com/segway-
ninebot-s-self-balancing-hoverboard
Nise, N. (2011). PID controller design. En Control systems engineering (págs. 482-486). Wiley.
Raj, A. (27 de Agosto de 2018). Circuit Digest. Obtenido de DIY Self balancing robot using Arduino:
https://circuitdigest.com/microcontroller-projects/arduino-based-self-balancing-robot