proyecto de grado universidad de los andes facultad …

43
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

Upload: others

Post on 18-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

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&section=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