Diseño e implementación de una estrategia de control ... · este caso se hace un énfasis en las...
Transcript of Diseño e implementación de una estrategia de control ... · este caso se hace un énfasis en las...
1
Diseño e implementación de una estrategia de control
óptimo para simulación de un vehículo aéreo no
tripulado
David Leonardo Rodríguez Molina
Sebastián Enrique Jiménez Rojas
Trabajo de grado de ingeniería en control en la modalidad monografía
Director:
Ing. MsC Frank Nixon Giraldo Ramos
Universidad Distrital “Francisco José De Caldas”
Facultad Tecnológica
Programa de Ingeniería en Control
2
HOJA DE ACEPTACIÓN
Diseño e implementación de una estrategia de control
óptimo para simulación de un vehículo aéreo no
tripulado
Observaciones:
_______________________________ Director del Proyecto
Ing. Msc Frank Nixon Giraldo Ramos.
_______________________________
Evaluador del Proyecto
_______________________________
Evaluador del Proyecto
Agosto de 2015
3
Dedicatoria
Los resultados de este proyecto,
Están dedicados a todas aquellas personas que,
De alguna forma, son parte de su culminación.
A nuestras familias por siempre brindarnos su apoyo,
En cada meta que nos proponemos,
Brindarnos su amor, y también darnos
La oportunidad de llevar un proceso académico.
4
Agradecimientos
Definitivamente este trabajo no se habría podido realizar
Sin la colaboración de personas como nuestros padres
Que nos brindaron su ayuda en todo momento;
Siempre resultará difícil agradecer a todos aquellos que
De una u otra manera nos han acompañado y apoyado
En nuestra estadía en la Universidad.
A nuestras familias por su apoyo incondicional
A nuestro tutor por su disposición y ayuda
En el desarrollo este proyecto.
5
Resumen
Este documento presenta el trabajo de investigación realizada sobre la
implementación de una simulación del comportamiento dinámico de un
cuadricóptero, el control y las pruebas de rendimiento realizadas al mismo, y
visualizadas en un entorno de realidad virtual.
El tema de los vehículos aéreos no tripulados es de gran relevancia actualmente
ya que son dispositivos muy versátiles lo que los hace útiles en gran cantidad de
aplicaciones es por ello que con esta investigación se pretende conocer el
funcionamiento desde el punto de vista físico, para realizar diseños e
implementaciones de controladores.
Para este caso se parte del modelamiento físico recopilado de algunas
investigaciones sobre el modelamiento de cuadricópteros, donde se obtienen
modelos con un grado de detalle que permite realizar el montaje de un prototipo
real, aunque no es el alcance de este trabajo.
Posteriormente se analizan los entornos de desarrollo para poder implementar el
modelo físico en simulación y el diseño del modelo CAD 3D para que reciba los
datos generados a partir de la simulación para obtener un comportamiento muy
similar al Real en cuanto a visualización, y los datos obtenidos.
Este tipo de herramientas son muy útiles en proyectos de ingeniería en control, ya
que gracias a ello es posible implementar diversas estrategias de control, para
este caso se hace un énfasis en las posibles arquitecturas de control que pueden
ser implementadas y realizar las pruebas que permitan verificar si hay mejoras en
el desempeño al utilizar los métodos de control moderno enfrentadas a los de
control clásico.
Palabras clave: Vehículos aéreos no tripulados, Simulación aeroespacial,
Realidad virtual, Control óptimo.
6
Abstract
This paper presents the research work carried out on the implementation of a
simulation of the dynamic behavior of a quadricopter, control and performance
testing to it, and displayed in a virtual reality environment.
The issue of UAVs is highly relevant today as they are very versatile devices
making them useful in many applications is why this research is to know the
operation from the physical point of view, for designs and implementations of
drivers.
For this case it is part of the physical modeling compiled some research on
modeling cuadricópteros where models with a level of detail that allows mounting a
real prototype is obtained, but not the scope of this paper.
Later development environments to implement the physical model simulation and
3D CAD design model to receive data generated from the simulation for a very
similar view regarding Real behavior are analyzed and the data obtained.
Such tools are very useful in engineering projects in control, and thanks to it is
possible to implement control strategies for this case emphasis is placed on
possible control architectures that can be implemented and perform tests to check
for performance improvements by using modern control methods faced with the
classic control..
Keywords: Unmanned aerial vehicles, Aerospace simulation, Virtual reality,
Optimal control.
7
Tabla de contenido
Introducción 12
1. Planteamiento del Problema 13
1.1. Objetivos 14
1.1.1. Objetivo General. 14
1.1.2. Objetivos Específicos 14
2. Marco de Referencia 15
2.1. Antecedentes. 15
2.1.1. Modelos matemáticos para vehículos aéreos no tripulados 15
2.1.2. Estrategias de control utilizadas para el control de ruta 15
2.1.3. Otras estrategias de Control 16
3. Modelamiento del Cuadricóptero 17
3.1. Referencia en el espacio vectorial X,Y,Z 18
3.2. Rotaciones 18
3.3. Modelo matemático 19
3.3.1. Introducción 19
3.3.2. Momento de masa inercial 22
3.3.3. Coeficiente de empuje 22
3.3.4. Coeficiente de torque 23
3.3.5. Construcción de matriz inicial 24
3.3.6. Relación de comando aceleración 25
3.3.7. Fuerzas giroscópicas 25
3.3.8. Construcción de matriz final 26
3.3.9. Ecuaciones de estado 27
3.4. Momentos de masa inercial 32
8
3.4.1. Introducción 32
3.4.2. Motores: cilindros macizos 34
3.4.3. ESCs – superficie plana delgada 36
3.4.4. HUB central: cilindro solido 38
3.4.5. Brazos: barras cilíndricas largas 40
4. Implementación en Simulink del modelo de Cuadricóptero 42
4.1. Uso de Quad-Sim 42
4.1.1. Construcción de un nuevo modelo 44
4.1.2. Asignación de condiciones iniciales 46
4.2. Edición y modificaciones para el Quad-Sim en esta simulación 47
5. Simulación a través del toolbox 3D Animation y V-Realm Builder 48
5.1. Toolbox Simulink 3D Animation 48
5.2. Desarrollo del modelo CAD 3D en V-Realm Builder 49
5.2.1. Desarrollo del modelo CAD 3D del Cuadricóptero 53
5.3. Integración del modelo CAD 3D a la simulación basada en Quad-Sim 57
6. Aplicación de la metodología de control óptimo 61
6.1. Control en cuadricópteros 61
6.1.1. Control de los motores 62
6.1.2. Control de postura 63
6.2. Control óptimo 65
6.2.1. LQR (Linear Quadratic Regulator) 69
6.3 Implementación de control LQR 70
6.3.1 Algoritmo para obtener la ganancia de control LQR 72
7. Interfaz gráfica para el manejo global de la simulación 76
7.1. Puesta en marcha de la interfaz gráfica desarrollada 77
9
7.2. Pruebas de rendimiento a los controladores 79
7.2.1. Primera prueba de rendimiento para los controladores 79
7.2.2. Segunda prueba de rendimiento para los controladores 81
7.3. Análisis 82
8. Conclusiones 83
Referencias 86
Anexo 1: Código para la aerodinámica del fuselaje 89
Anexo 2: Código para la implementación LQR para un sistema modelado
en el espacio de estados 91
10
Lista de Figuras
Figura 1. Notación para ecuaciones Quadrotor de movimiento N=4; ϕi Es un
múltiplo de π/4. [1]
Figura 2. Modelo del vehículo y puntos de referencia en el espacio. [1]
Figura 3. Posibles configuraciones del vehículo: “+” y “X” [2]
Figura 4. Etiquetas del eje y convenciones [2]
Figura 5. cuadricóptero y convenciones para el cálculo de momentos de
masa inercial [3]
Figura 6. Gráficos del cilindro con su referencia de rotación para el cálculo
de momentos de masa inercial de los motores [3]
Figura 7. Convenciones en el Cuadricóptero para el cálculo de momento de
masa inercial de los ESCs [3]
Figura 8. Convenciones en el Cuadricóptero para el cálculo de momento de
masa inercial del HUB central [3]
Figura 9. Gráficos del cilindro con su referencia de rotación para el cálculo
de momentos de masa inercial en el HUB central [3]
Figura 10. Gráficos del cilindro con su referencia de rotación para el cálculo
de momentos de masa inercial en los brazos [3]
Figura 11. Grafico del cuadricóptero con las convenciones para el cálculo de
momentos de masa inercial en los brazos [3]
Figura 12. Diagrama de bloques en AC_Quadcopter_Simulation[28]
Figura 13. Construcción de un nuevo modelo[4]
Figura 14. Asignación de condiciones iniciales a través de un GUI [5]
Figura 15. Modelo de Simulink del cuadricóptero[28]
Figura 16. Bloque VR Sink[Autores]
Figura 17. Uno de los modelos por defecto para realizar una simulación en
V-Realm Builder [Autores]
Figura 18. Herramientas de creación de modelo 3D en V-Realm Builder
[Autores]
11
Figura 19. Modelo Real en el que está basado el modelo CAD 3D en este
proyecto.[35]
Figura 20. Hub central diseñado en V-Realm Builder [Autores]
Figura 21. Diseño de un sólido en el espacio usando el componente
Extrusion [Autores]
Figura 22. Hub Central con los brazos del cuadricóptero anidados. [Autores]
Figura 23. Modelo Final del cuadricóptero integrado a un entorno ambiental
3D. [Autores]
Figura 24. Parámetros de VR Sink para recrear el movimiento en la
simulación. [Autores]
Figura 25. Resultado de la configuración del bloque VR Sink con las entradas
de translation y rotation. [Autores]
Figura 26. Montaje en Simulink para la transferencia de señales al VR Sink.
[Autores]
Figura 27. Arranque de la simulación en Simulink con el modelo CAD 3D.
[Autores]
Figura 28. Lazos de control en el cuadricóptero [1]
Figura 29. Proceso de síntesis de controladores óptimos [6]
Figura 30. Control estabilizante LQR [7]
Figura 31. Esquema de la planta modelada en el espacio de estados [8]
Figura 32. Diagrama de implementación LQR para Phi, Theta, Psi y Z y la
arquitectura de cada uno de los controladores [autores]
Figura 33. Comando de postura en Simulink modificado desde un GUIDE
[Autores]
Figura 34. Interfaz final para el control de la simulación [Autores]
Figura 35. Menú de edición de parámetros LQR [Autores]
Figura 36. Graficas de los parámetros de control de la simulación [Autores]
Figura 37. Graficas de seguimiento de control para Z [Autores]
Figura 38. Gráficas de respuesta para la segunda prueba [Autores]
12
Introducción
El control en vehículos aéreos no tripulados es un tema en el que actualmente se
están realizando bastantes investigaciones ya que éstos son ampliamente
utilizados para diversas aplicaciones tales como vigilancia, transporte de
mercancías, sensado remoto en aplicaciones ambientales y/o agricultura,
construcción y muchas otras que aún no han sido exploradas. En la Universidad
Distrital Francisco José De Caldas son escasas las investigaciones acerca de este
tema puesto que no se cuenta con los equipos necesarios para realizarlo por ello
no se aborda el tema de control óptimo en aplicaciones reales.
Es por estas razones que el objetivo es lograr una simulación cuyo
comportamiento dinámico sea lo más cercano a la realidad para poder
implementar algoritmos de control óptimo.
Para solucionar este problema se utiliza el software Matlab, que es un software
bastante utilizado para el modelamiento de sistemas físicos, además es útil en el
diseño de sistemas de control.
Hay un paquete o toolbox desarrollado para modelar cuadricópteros llamado
Quad-Sim, de código libre del cual parte esta investigación pues el Quad-Sim es
bastante útil en el prototipado de cuadricópteros y simulación, en este caso se
busca complementar ese trabajo mostrando una simulación de realidad virtual e
implementando un controlador óptimo.
Se espera que este documento pueda ser utilizado por estudiantes de Ingeniería
en control de la Universidad Distrital Francisco José de caldas ya sea para
desarrollar nuevos conocimientos a manera de tesis de grado o para afianzar en
mayor medida los conocimientos que se tienen de la teoría de control óptimo.
13
1. Planteamiento del Problema
Actualmente en la Universidad Distrital Francisco José de Caldas, Facultad
Tecnológica, son escasas las investigaciones en el campo del control óptimo de
vehículos aéreos no tripulados y la simulación aeroespacial; debido a que son
escasos los equipos disponibles para los estudiantes para hacer pruebas de
control de éstos dispositivos, en el caso de las simulaciones no son materia de
investigación puesto que las simulaciones son complementos de algunas
investigaciones que se han desarrollado.
Otro problema que se presenta es el alto costo de implementación de un prototipo
de vehículo aéreo no tripulado, sea éste de cualquier tipo siendo actualmente muy
populares los cuadricópteros, el costo económico comprende: los actuadores, la
estructura, los sensores y un sistema embebido que permita la interfaz con él
computador; el prototipo de vehículo aéreo no tripulado es una herramienta real,
pero realizar las pruebas de control sumado al tiempo de desarrollo del mismo
requiere de bastante tiempo que hace que se desvié la investigación del tema
central que es probar los algoritmos de control óptimo antes de implementar un
prototipo para pruebas reales.
Por lo tanto se pierde tiempo en éste tipo de investigación que puede ser
empleado en desarrollar mejores algoritmos de control, o poner a prueba otras
estrategias de control óptimo que se utilizan para resolver el problema de control
de ruta en la plataforma virtual que se ha desarrollado.
14
1.1. Objetivos
1.1.1. Objetivo General
Diseñar un software que permita aplicar estrategias de control a la trayectoria de
vuelo simulada en 3D, de un vehículo aéreo autónomo.
1.1.2. Objetivos Específicos
Identificar el modelo del sistema del vehículo aéreo no tripulado y desarrollar el
modelo CAD 3D del vehículo.
Realizar la integración en software del modelo del sistema de vehículo aéreo no
tripulado y el modelo CAD 3D en un entorno de realidad virtual.
Desarrollar un software que efectué el control de la simulación 3D basada en
estrategias de control óptimo y permita intercambiar los parámetros de control de
trayectoria de la simulación de vuelo desarrollada.
Efectuar y validar pruebas de algoritmos de control óptimo para la simulación de
trayectorias de vuelo en el entorno de realidad virtual.
15
2. Marco de Referencia
2.1. Antecedentes
2.1.1. Modelos matemáticos para vehículos aéreos no tripulados
Resolver los problemas de control de rutas, para vehículos aéreos no tripulados es
actualmente materia de investigación para las aplicaciones humanas y militares
[9]–[12], de tal manera que es importante para este tarea obtener modelos
adecuados de el sistema o ecuaciones simplificadas ya sea por medio de espacio
de estados[9], [12]–[17] o por el uso de otras técnicas; ya sea por medio de
métodos experimentales de identificación o algoritmos de control difuso que
describen de manera simplificada la dinámica del sistema en línea (online) al
proceso ejecutado [9], [11], [14], [18]–[23], lo que permite realizar modelos con
menor incertidumbre y desacoplados puesto que el fuerte acoplamiento de estos
sistemas complica y hace dispendioso el procedimiento y el control de estos
sistemas[16].
2.1.2. Estrategias de control utilizadas para el control de ruta.
Para solucionar este tipo de problemas la mayoría de bibliografía consultada
aborda el tema para el control de helicópteros con 3 grados de libertad los cuales
poseen contrapesos [9], [10], [12]–[15], [20]–[28], y presentan dos rotores, algunos
de los textos consultados incluyen otros tipos de tecnologías actuales los cuales
incluyen modelos de 4 rotores que presentan una dinámica más compleja. [10],
[18], [29].
Para abordar el problema de control algunos investigadores han utilizados
algoritmos de control óptimo como controladores LQR (Linear Quadratic
16
Regulator) [11], [24], [30], los cuales también son utilizados para problemas de
control como péndulos invertidos[31], y control de trayectoria de misiles
militares[32] la cual se basa en la simplificación de modelos en el espacio de
estados y su posterior diseño basado en diversos algoritmos utilizando
simplificación por términos integrales, ecuaciones de Liapunov o ecuaciones de
Riccatti [11], [12], [15], [16], [33], pues es la teoría de control más utilizada y de
mayor eficiencia puesto que son algoritmos computacionales basados en modelos
simplificados puesto que utilizar los modelos completos presentan mayores grados
de libertad y ecuaciones de movimiento más complejas que hacen casi imposible
tratar estos problemas.
2.1.3. Otras estrategias de control.
Otras de las estrategias utilizadas con buenos resultados es la aplicación de
métodos híbridos con la teoría LQR tales como la aplicación de bloques de
realimentación por control difuso [18], [22], [23], [25] además de trabajos basados
en identificación del modelo y diseño de controlador en modo online por medio de
redes neuronales[19], pero muchos de estos trabajos concluyen que tanto como
controladores difusos y la aplicación de redes neuronales son complicados para
ejecutarse en la realidad debido a que aún no se tiene un hardware eficiente para
que ejecuten estos algoritmos, por lo tanto las tendencias de estos controladores
para las rutas y trayectorias de aeromodelos no tripulados utilizan de manera
amplia la teoría de LQR, y otros sistemas híbridos como los descritos
anteriormente, además de la utilización de filtros de Kalman en sistemas
adaptativos[11], [18]
17
3. Modelamiento del Cuadricóptero
La plataforma aérea multirotor más común, es el vehículo cuadricóptero, el cual es
una máquina muy simple, esta consiste en cuatro rotores individuales unidos a un
fuselaje rígido en cruz, como se muestra en la Figura 1. El control del
Cuadricóptero es alcanzado por el control diferencial del empuje generado por
cada rotor, inclinación rollo y maniobra de flotado (empuje total), el control es fácil
de conceptualizar. Como se muestra en la Figura 1. Rotor i gira en sentido
contrario a las manecillas del reloj (positivo con respecto al eje Z). Si i es par el
sentido de giro del rotor es horario y si es impar el sentido de giro es anti
horario.[1]
El control de orientación es obtenido por el ajuste de la velocidad media de los
rotores en sentido horario y anti horario de los rotores del fuselaje que se
encuentren rotando, el sistema es subactuado, y los demás grados de libertad
corresponden a la velocidad traslacional en el plano X-Y que puede ser controlado
a través de sistemas dinámicos.[1]
Figura 2. Notación para ecuaciones Quadrotor de movimiento N=4; ϕi
Es un múltiplo de π/4. [1]
18
3.1. Referencia en el espacio vectorial X,Y,Z
Se toman { 𝑥 , 𝑦 , 𝑧 } que son vectores unitarios que serán los 3 ejes de
coordenadas sin un marco de referencia. Se toma { 𝐴 } que denota la referencia
inercial de la mano derecha con vectores unitarios a lo largo de los ejes denotados
por { 𝑎1 , 𝑎2 , 𝑎3 } expresado en 𝐴 . Se tiene algebráicamente que 𝑎1 = 𝑥 , 𝑎2 = 𝑦 ,
𝑎3 = 𝑧 en 𝐴 El vector 𝑟 = 𝑥, 𝑦, 𝑧 𝜖 { 𝐴 } denota el centro de masa de el
vehículo.[1]
Se toma 𝐵 que es una referencia de cuerpo fijo del fuselaje con vectores
unitarios { 𝑏1 , 𝑏2
, 𝑏3 } donde éstos vectores son el eje de referencia 𝐵 con
respecto a la referencia 𝐴 . La orientación de cuerpo rígido es dada por la matriz
de rotación 𝑅𝐵𝐴 = 𝑅 = 𝑏1
, 𝑏2 , 𝑏3
∈ 𝑆𝑂(3) en el grupo especial ortogonal uno
que tiene 𝑏1 = 𝑅𝑥 , 𝑏2
= 𝑅𝑦 , 𝑏3 = 𝑅𝑧 por construcción.[1]
3.2. Rotaciones
Nosotros vamos a usar Z-X-Y ángulos de rotación de Euler que se muestran en la
Figura 2. Para tomar { 𝐴 } a 𝐵 , primero se rotara alrededor de 𝑎3 a través del
ángulo de orientación 𝜓, y vamos a llamar referencia intermediaria 𝐸 con una
base { 𝑒1 , 𝑒2 , 𝑒3 } donde 𝑒𝑖 es expresada con respecto a la referencia 𝐴 esto es
seguido por una rotación acerca del eje 𝑥 en la referencia rotada a través del
ángulo de rollo 𝜙, seguido por un segundo ángulo de elevación 𝜃, que resulta en
una triada de cuerpo fijo { 𝑏1 , 𝑏2
, 𝑏3 } [1]
19
𝑅 =
𝑐𝜓𝑐𝜃 𝑐𝜓𝑠𝜃𝑠𝜙 − 𝑠𝜓𝑐𝜙 𝑐𝜓𝑠𝜃𝑐𝜙 + 𝑠𝜓𝑠𝜙𝑠𝜓𝑐𝜃 𝑠𝜓𝑠𝜃𝑠𝜙 + 𝑐𝜓𝑐𝜙 𝑠𝜓𝑠𝜃𝑐𝜙 − 𝑐𝜓𝑠𝜙−𝑠𝜃 𝑐𝜃𝑠𝜙 𝑐𝜃𝑐𝜙
(1.)
Donde 𝑠 y 𝑐 son formas abreviadas del seno y el coseno respectivamente.
Figura 2. Modelo del vehículo y puntos de referencia en el espacio. [1]
3.3. Modelo matemático
3.3.1. Introducción
Antes de saltar al modelo matemático, se necesita alguna discusión de notación.
Debido a la complejidad de un sistema con 6 grados de libertad, diversos métodos
de notación se han desarrollado y se requiere con el fin de describir
suficientemente las variables críticas. A continuación se muestra un ejemplo de la
notación que se ha elegido: [2]
20
v 𝐶𝑀|𝑖𝑏𝑏 (2.)
En este caso en la Ecuación (2.) la variable de base es la aceleración lineal, o v .
Como puede ver, la variable también tiene dos exponentes y un subíndice definir
con mayor precisión lo que estamos describiendo. El superíndice izquierdo
superior, 𝑏, nos dice que la derivada tomada se realizó en el marco de cuerpo de
referencia, mientras que la parte superior derecha superíndice, 𝑏, indica
aceleración se da en términos de componentes estructura corporal vectorial, y el
subíndice, 𝐶𝑀|𝑖 nos dice, que esta variable hace referencia al centro de masa con
respecto al sistema inercial.[2]
Otro aspecto importante del modelo matemático es el sistema de coordenadas
que se utiliza. El modelo elegido y convenciones se vuelven muy importantes a
medida que trabaja a través de su modelo, así que asegúrese de mantener sus
decisiones en cuenta y claramente documentado. El sistema de coordenadas
puede variar si se utiliza un signo más ("+") o la configuración de "X", que se
describe a continuación con la Figura 3. [2]
Figura 3. Posibles configuraciones del vehículo: “+” y “X” [2]
21
Como se ve en la Figura 3, la configuración que se utiliza se define como tener el
eje X que se encuentran a lo largo del brazo del motor 1 (que gira en sentido anti
horario desde arriba, por nuestra convención) con el eje Y establecer a lo largo del
brazo del motor 2 (girando en sentido contrario dirección de los motores
adyacentes) y el eje Z apunta hacia arriba. El valor d representa la distancia desde
un motor dado al eje de rotación, y debe ser el mismo para cada motor. Este valor
cambiará si se utiliza una configuración de x, que se define como una rotación en
el plano XY de 45 grados en la dirección de guiñada positiva, lo que resulta en
tener el eje X se encuentran entre el motor 1 y 2. En cualquier configuración, el eje
x se supone que es la dirección de avance positivo para el movimiento del
vehículo. Para mayor claridad, nuestras convenciones de rotación se muestran a
continuación en la Figura 4. [2]
Figura 4. Etiquetas del eje y convenciones [2]
22
3.3.2. Momento de masa de matriz inercial.
Un elemento del sistema de importancia es la matriz de inercia. La matriz de
inercia describe los cuadricópteros momento de inercia de masa a través de los
ejes definidos, y es importante para la dinámica de vuelo del sistema. Con algunas
aproximaciones, se puede determinar el momento de inercia de masa a través de
la X, Y, y Z para formar la matriz de inercia requerida. Este proceso en particular
se trata en más detalle en la sección que describe el cálculo de los momentos de
masa inercial. Una vez determinado utilizando la configuración "+" o "X", la matriz
de inercia aparecerá de la siguiente manera como aparece en la Ecuación (3.): [2]
𝐽𝑏 =
𝐽𝑥𝑥 0 00 𝐽𝑦𝑦 0
0 0 𝐽𝑧𝑧
(3.)
Aquí, 𝐽𝑏 es la inercia del cuadricóptero en relación con el bastidor de carrocería
con 𝐽𝑥𝑥 , 𝐽𝑦𝑦 , and 𝐽𝑧𝑧 siendo la inercia del cuadricóptero a través de cada eje.
Debido a la simetría del sistema, la matriz es diagonal y será idéntico ya sea para
una o configuración "+" o "X". La forma diagonal de la matriz es conveniente
debido a la necesidad de invertir la matriz para su uso en la ecuación de estado
velocidad angular. [2]
3.3.3. Coeficiente de Empuje.
La aerodinámica de los rotores ha sido extensamente estudiada durante mediados
de 1900 con el desarrollo de helicópteros pilotados por humanos y hay modelos
detallados de la aerodinámica de los rotores disponibles en la literatura, muchos
de los detalles de estos modelos aerodinámicos son útiles para el diseño de
sistemas de rotor, donde todo el rango de parámetros (rotor, geometría, perfil,
23
mecanismo de bisagra, y mucho más) son fundamentales para el problema de
diseño. [1]
Para cuadricópteros típicos el diseño del rotor es cuestión de seleccionar uno
entre los 5 o 6 disponibles en la tienda de hobby y mucha de la complejidad en el
modelamiento aerodinámico son ignorados, sin embargo, un nivel básico de
modelamiento aerodinámico es requerido. [1]
El estado estable de empuje generado por el rotor flotando (por ejemplo un rotor
que no se está trasladando horizontal o verticalmente) en el aire libre puede ser
modelado usando la teoría de momento como aparece en la Ecuación (4.) [2]
𝑇 = 𝐶𝑇𝜌𝐴𝑟𝑟2𝜛2 (4.)
Donde 𝐶𝑇 es el coeficiente de empuje para un rotor específico, 𝜌 es la densidad
del aire, 𝐴𝑟 es el área de la sección transversal de la rotación de la hélice, 𝑟2 es el
radio del rotor, y 𝜛2 es la velocidad angular del rotor. Para sencilla vuelo modelar
un enfoque de parámetros concentrados se puede utilizar para simplificar el
proceso de caracterización se emplea la Ecuación (5.) [2]
𝑇 = 𝑐𝑇𝜛2 (5.)
3.3.4. Coeficiente de Torque.
Con el fin de entender el efecto motor en guiñada, la fuerza de torsión del sistema
de motor/propulsión también debe ser determinada, y se puede hacer de una
manera similar a la de las pruebas de empuje. La ecuación de parámetros
concentrados relacionados se muestra en la Ecuación (6.) a continuación:
24
𝑄 = 𝑐𝑄𝜛2 (6.)
En este caso, Q es el par creado por el motor y 𝑐𝑄 es el coeficiente de par de
torsión para el sistema de motor/hélice. Este par de torsión proporciona una fuerza
que actúa para el sistema de guiñada alrededor del eje Z. [2]
3.3.5. Construcción de Matriz Inicial
Después de realizar una serie de pruebas con cada uno de los bancos de prueba,
los programas de análisis de datos proporcionados pueden ayudarle a calcular
estos coeficientes para la caracterización de su sistema. Con esta información
podemos crear una matriz que describe los empujes y pares en el sistema como el
que se muestra a continuación en la Ecuación (7.) : [2]
Σ𝑇𝜏𝜙𝜏𝜃𝜏𝜓
=
𝑐𝑇 𝑐𝑇 𝑐𝑇 𝑐𝑇0 𝑑+𝑐𝑇 0 −𝑑+𝑐𝑇
−𝑑+𝑐𝑇 0 𝑑+𝑐𝑇 0−𝑐𝑄 𝑐𝑄 −𝑐𝑄 𝑐𝑄
𝜛1
2
𝜛22
𝜛32
𝜛42
(7.)
Todos los valores actuales se han explicado hasta el momento, excepto para 𝑑,
que es simplemente la distancia entre los motores y los respectivos ejes de
rotación, donde 𝑑+ es la longitud del brazo de Quadcopter centro del cubo a motor
/ hélice. [2]
Si se utiliza una configuración “x”, 𝑑𝑥 lugar se puede encontrar 𝑑+𝑠𝑒𝑛(45), ya que
sería el valor de la distancia entre el motor / hélice y ejes del cuerpo de rotación.
Por lo tanto, 𝑐𝑄 experimenta ningún cambio de este ajuste de configuración,
mientras que el efecto de 𝑐𝑇 se distribuye a través de todos los cuatro motores
tanto para el cabeceo y balanceo. En la ecuación (8.) aparece la matriz de
construcción final para la configuración en “x” [2]
25
Σ𝑇𝜏𝜙𝜏𝜃𝜏𝜓
=
𝑐𝑇 𝑐𝑇 𝑐𝑇 𝑐𝑇−𝑑𝑥𝑐𝑇 𝑑𝑥𝑐𝑇 𝑑𝑥𝑐𝑇 −𝑑𝑥𝑐𝑇−𝑑𝑥𝑐𝑇 −𝑑𝑥𝑐𝑇 𝑑𝑥𝑐𝑇 𝑑𝑥𝑐𝑇−𝑐𝑄 𝑐𝑄 −𝑐𝑄 𝑐𝑄
𝜛1
2
𝜛22
𝜛32
𝜛42
(8.)
3.3.6. Relación de comando de aceleración
Una consideración importante aquí con fines de control es que los coeficientes de
empuje y par motor se basan en una relación con RPM de los motores y no algo
determinado directamente por el sistema de control (como el comando del
acelerador). Debido a esto, se necesita una regresión lineal que se traducirá
valores de comando del acelerador (como porcentaje del acelerador) a los valores
de RPM. La siguiente regresión fue creada para este propósito y se muestra en l
Ecuación (9.). [2]
𝜛𝑠𝑠 = (𝑇𝑟𝑜𝑡𝑡𝑙𝑒%)𝑐𝑅 + 𝑏 (9.)
Aquí 𝜛𝑠𝑠 es el RPM del motor en estado estacionario se esperaba, 𝑇𝑟𝑜𝑡𝑡𝑙𝑒% es el
porcentaje de mando del acelerador, 𝑐𝑅 es el % de acelerador al coeficiente de
conversión RPM, y 𝑏 es la ordenada en el origen de la relación de regresión lineal.
La regresión lineal puede llevarse a cabo utilizando el programa de análisis de
datos mediante experimentación con algún prototipo de pruebas, lo que permite su
controlador a utilizar los coeficientes adecuados según lo determine su prueba de
motor para una máxima precisión y realismo. [2]
3.3.7. Fuerzas Giroscópicas
Hay otro conjunto de fuerzas para explicar antes creamos nuestra matriz
momento, y esas son las fuerzas resultantes de la precesión giroscópica.
26
Precesión giroscópica es un fenómeno que se produce cuando se cambia el eje
de rotación de un cuerpo en rotación, y los resultados son típicamente no intuitiva
para los no familiarizados con sus efectos. Las fuerzas resultantes giroscópicos en
el cuerpo se rigen por la inercia de los componentes de rotación de cada motor 𝐽𝑚 ,
las tarifas de balance y cabeceo (P y Q), así como la velocidad de cada / sistema
de apoyo del motor 𝜛𝑖 Los pares de giroscópicos creados por los motores se
muestran a continuación en la Ecuación (10.) y la Ecuación (11.) [2]
𝜏𝜙𝑔𝑦𝑟𝑜= 𝐽𝑚𝑄
𝜋
30 𝜛1 − 𝜛2 + 𝜛3 − 𝜛4 (10.)
𝜏𝜃𝑔𝑦𝑟𝑜= 𝐽𝑚𝑃
𝜋
30 (−𝜛1 + 𝜛2 − 𝜛3 + 𝜛4) (11.)
El término π / 30 corresponde a la transición de la RPM a radianes que deben
ocurrir para la fuerza giroscópica a calcular. [2]
3.3.8. Construcción de Matriz Final
Con estas fuerzas de motor y términos añadidos es posible volver a organizar las
ecuaciones en forma matricial para nuestros propósitos de simulación. La matriz
resultante representará los, y momentos de empuje mencionadas aerodinámicas
giroscópicos creados por los sistemas de motor/propulsor en el cuadricóptero para
una configuración de "+" se muestra a continuación en la Ecuación (12.) [2]
𝑀𝐴,𝑇𝑏 =
𝑑+𝑐𝑇𝜛2
2−𝑑+𝑐𝑇𝜛42 + 𝐽𝑚𝑄(
𝜋
30) 𝜛1 − 𝜛2 + 𝜛3 − 𝜛4
−𝑑+𝑐𝑇𝜛12 + 𝑑+𝑐𝑇𝜛3
2 + 𝐽𝑚𝑃(𝜋
30) −𝜛1 + 𝜛2 − 𝜛3 + 𝜛4
−𝑐𝑄𝜛12 + 𝑐𝑄𝜛2
2−𝑐𝑄𝜛32 + 𝑐𝑄𝜛4
2 (12.)
27
Aquí, 𝑀𝐴,𝑇𝑏 se refiere a los momentos presentes en el bastidor de carrocería
resultante de la aerodinámica, empujes, y pares de torsión en el sistema. El
cuerpo cuadricóptero también experimenta las fuerzas que actúan sobre el mismo
de la gravedad y de la elevación de los rotores. La fuerza de elevación se puede
expresar como sigue en la Ecuación (13.) [2]
F𝐴,𝑇𝑏 =
00
𝑐𝑇(𝜛12 + 𝜛2
2 + 𝜛32 + 𝜛4
2) (13.)
F𝐴,𝑇𝑏 Se refiere a las fuerzas que actúan en el marco de cuerpo en el cuadricóptero
debido a la aerodinámica y de empuje (que se supone orientada estrictamente en
la dirección z positiva). Cabe señalar que, si bien decimos que están actuando
fuerzas aerodinámicas, se supone que las pruebas de empuje y par estáticos
capturar los elementos de la aerodinámica que nos interesan. Efectos adicionales
(como la hoja de aleteo, enmarcar la resistencia aerodinámica, etc.) podría
añadirse al modelo después de la investigación y pruebas adicionales. [2]
3.3.9. Ecuaciones de Estado
Ahora pasamos a las ecuaciones de estado que definen el modelo de dinámica. El
primero que vamos a discutir es la Ecuación (14.) que es la ecuación de estado de
velocidad angular. [2]
𝜔 𝑏𝑏|𝑖𝑏 = (𝐽𝑏)−1 𝑀𝐴,𝑇
𝑏 − Ω𝑏|𝑖𝑏 𝐽𝑏𝜔𝑏|𝑖
𝑏 = 𝑃
𝑄
𝑅 (14.)
Esta ecuación describe el cambio en rollo 𝑃, el tono 𝑄, y guiñada 𝑅 las tasas del
Cuadricóptero teniendo en cuenta la inercia, velocidad angular, y los momentos
28
aplicados por los sistemas de motor/propulsor. 𝜔 𝑏𝑏|𝑖𝑏 La aceleración angular a
través de cada eje en el bastidor de carrocería con respecto al bastidor inercial, y
también se puede escribir como se muestra en la Ecuación (15.) [2]
𝜔 𝑏𝑏|𝑖𝑏 =
𝑃
𝑄
𝑅 (15.)
Teniendo las matrices de momento inercial, se presenta el término Ω𝑏|𝑖𝑏 que es una
matriz de velocidad para rotación de producto cruzado. La forma de esta matriz se
muestra a continuación en la Ecuación (16.) [2]
Ω𝑏|𝑖𝑏 =
0 −R QR 0 −P−Q P 0
(16.)
Aquí, P, Q, y R son de nuevo las tasas de rotación alrededor de los ejes X, eje Y,
eje Z, respectivamente. El término 𝜔𝑏|𝑖𝑏 es la velocidad de rotación del cuerpo del
Cuadricóptero dentro del bastidor de la carrocería y se define directamente por P,
Q, y R en la Ecuación (17.) [2]
𝜔𝑏|𝑖𝑏 =
𝑃𝑄𝑅 (17.)
La siguiente ecuación de estado es la ecuación cinemática de Euler, que permite
determinar la velocidad de cambio de los ángulos de Euler en el sistema inercial.
Aparece en la ecuación (18.) [2]
29
Φ = 𝐻 Φ 𝜔𝑏|𝑖𝑏 =
𝜙
𝜃
𝜓 (18.)
Antes de discutir esta ecuación vamos a discutir sobre las matrices de rotación. De
acuerdo con la secuencia de rotación de la industria aeroespacial, la rotación de
una aeronave se describe como una rotación alrededor del eje z (guiñada),
entonces una rotación alrededor del eje y (pitch) seguido de una rotación
alrededor del eje x (roll). Cada rotación se realiza con base en un sistema de
mano derecha y en un solo plano. [2]
El uso de estas tres rotaciones una matriz de rotación de material compuesto
puede ser creada y puede transformar el movimiento de la aeronave desde el
fuselaje a un nuevo marco de referencia. La matriz de rotación resultante
transforma rotaciones del fuselaje con respecto al marco de inercia y se puede
encontrar utilizando la multiplicación de matrices. A continuación se presenta la
Ecuación (19.) que muestra el producto cruz entre matrices para obtener la matriz
de rotación. [2]
u𝑏 =
1 0 00 c(ϕ) s(ϕ)0 −s(ϕ) c(ϕ)
c(θ) 0 −s(θ)
0 1 0s(θ) 0 c(θ)
c(ψ) s(ψ) 0−s(ψ) c(ψ) 0
0 0 1
u𝑖 (19.)
Siguiendo adelante con la multiplicación de matrices se obtiene la matriz de
rotación inercial de la estructura corporal utilizando la secuencia de rotación
aeroespacial que aparece a continuación en la Ecuación (20.) [1], [2]
𝐶𝑏|𝑖 =
c 𝜃 c(𝜓) c 𝜃 s(𝜓) −s(𝜃)
(− c 𝜙 s 𝜓 + s 𝜙 s 𝜃 c 𝜓 ) (𝑐 𝜙 𝑐 𝜓 + 𝑠 𝜙 𝑠 𝜃 𝑠 𝜓 ) s 𝜙 c(𝜃)
(𝑠 𝜙 𝑠 𝜓 + 𝑐 𝜙 𝑠 𝜃 𝑐 𝜓 ) (−𝑠 𝜙 𝑐 𝜓 + 𝑐 𝜙 𝑠 𝜃 𝑠 𝜓 ) c 𝜙 c(𝜃) (20.)
30
Esta matriz de rotación es de particular importancia en la solución de las
ecuaciones de estado de velocidad y de posición. Una discusión completa de
matrices de rotación está más allá del alcance de este documento. [2]
El uso de matrices de rotación secuencial, la velocidad angular de la aeronave en
el bastidor de carrocería puede estar relacionado con los cambios en el ángulo de
rotación como se muestra a continuación, donde las matrices C de 𝜙 y 𝜃 son los
de ub. aparecen enunciados en la Ecuación (21.) [2].
𝜔𝑏|𝑖𝑏 =
𝜙
00
+ 𝐶𝜙 0𝜃
0 + 𝐶𝜃
00𝜓 (21.)
Realización de la multiplicación de matrices, suma y tomando la derivada de la
ecuación de Euler cinemática se puede encontrar la Ecuación (22.) [2]
Φ =
𝜙
𝜃
𝜓 =
1 𝑡 𝜃 𝑠(𝜙) 𝑡 𝜃 𝑐(𝜙)0 𝑐(𝜙) −𝑠(𝜙)
0 𝑠 𝜙 /𝑐(𝜃) 𝑐 𝜙 / 𝑐(𝜃)
𝑃𝑄𝑅 = 𝐻(Φ)𝜔𝑏|𝑖
𝑏 (22.)
Si bien este enfoque es eficaz, hay un inconveniente muy importante; una
singularidad se produce cuando θ es igual a ± 90 °. Debido a esto, la precisión y la
estabilidad numérica de una simulación puede verse comprometida si el tono de la
aeronave se aproxima o alcanza ± 90 °. Teniendo en cuenta el diseño de control
modesta intención de esta simulación, esto no será un problema para la mayoría
de usuarios. Sin embargo, varios enfoques para evitar este problema existe,
incluyendo el uso de cuaterniones para la simulación, y por lo tanto los usuarios
motivados pueden optar por modificar nuestra simulación de utilizar este u otro
enfoque para retirar esta singularidad. [2]
31
La siguiente ecuación de estado que se discute es la ecuación de estado de
velocidad, que describe la aceleración del centro de masa del modelo
cuadricóptero basado en las fuerzas y aceleraciones que actúan sobre el cuerpo.
Es mostrada en la Ecuación (23.) [2]
v 𝐶𝑀|𝑖𝑏𝑏 =
1
𝑚 F𝐴,𝑇
𝑏 +𝑔𝑏 − Ω𝑏|𝑖𝑏 𝜔𝐶𝑀|𝑖
𝑏 = 𝑈
𝑉
𝑊 (23.)
Aquí, v 𝐶𝑀|𝑖𝑏𝑏 es la aceleración lineal del centro de masa en el fuselaje con respecto
al sistema de referencia inercial. La variable 𝑚 es la masa total del cuadricóptero,
mientras que 𝑔𝑏 es la aceleración de la gravedad traducida para actuar en el
bastidor de carrocería por la matriz de rotación 𝐶𝑏|𝑖 . La expresión para esto
aparece en la Ecuación (24.) [2]
𝑔𝑏 = 𝐶𝑏|𝑖𝑔𝑖 (24.)
El uso de éstas ecuaciones se puede encontrar la aceleración lineal del
cuadricóptero en los ejes X, Y y Z de la estructura corporal; finalmente, la última
ecuación de estado a cubrir es el ecuación de estado de posición, que describe la
velocidad lineal del centro de masa del cuadricóptero en el sistema inercial. Que
esta descrita en la Ecuación (25.) [2]
P 𝐶𝑀|𝑖𝑖𝑖 = 𝐶𝑖|𝑏v𝐶𝑀|𝑖
𝑏 = 𝑋
𝑌
𝑍 (25.)
Aquí, v𝐶𝑀|𝑖𝑏 es simplemente la velocidad del cuadricóptero en el bastidor de
carrocería que se hace girar en el marco de inercia utilizando la transpuesta de
32
𝐶𝑏|𝑖 , que es 𝐶𝑖|𝑏 . Esta ecuación de estado nos permite determinar la velocidad de la
Cuadricóptero en los ejes X, Y, y Z del sistema inercial. [2]
3.4. Momentos de masa inercial
3.4.1. Introducción
El momento de inercia de un objeto (J) desempeña un papel similar en el
movimiento de rotación como el papel que juega la masa en movimiento de
traslación: el momento de inercia de rotación determina como se ve afectada la
velocidad por par aplicado. Esto por supuesto no sólo depende de la masa del
objeto, sino también de cómo se distribuye la masa alrededor del eje de rotación.
En la Ecuación (26.) y la Ecuación (27.) aparecen las expresiones más sencillas
de las que se parte el análisis para el cálculo de momentos de masa inercial.[3]
∑𝐹 = 𝑚𝑎 (26.)
∑𝜏 = 𝐽𝜔 (27.)
Tenemos que encontrar el momento de la matriz de inercia para el vehículo
cuadricóptero. Usaremos "J" de momento de inercia, Es importante señalar aquí
que el vehículo cuadricóptero se supone que es perfectamente simétrica respecto
al X, Y, y el eje Z y tener su centro de masa en el centro geométrico de los brazos.
Con estos supuestos, la matriz 𝐽𝑏 que aparece en la Ecuación (28.) se convierte
en una matriz diagonal (tenga en cuenta que esto se relaciona con la elección de
posiciones en los ejes X, Y, pero se conserva en ambos configuraciones "+", "x").
Los términos 𝐽𝑥 , 𝐽𝑦 también tienen que ser idénticos debido a esta simetría. La
matriz es: [3]
33
𝐽𝑏 =
𝐽𝑥 0 00 𝐽𝑦 0
0 0 𝐽𝑧
(28.)
Enfoque:
• Romper el vehículo cuadricóptero en componentes separados. Modelar cada
una de ellas como una forma geométrica simplificada de constante la densidad
interna.
• Medir y pesar cada componente.
• Utilizar el teorema de los ejes paralelos para determinar el momento de inercia
de la contribución de cada componente de las x, y, z y ejes del vehículo.
• Sume las inercias para cada componente de cada eje para encontrar el
momento total de la matriz de inercia para el vehículo
Hemos utilizado el teorema de los ejes paralelos a fin de determinar el momento
de inercia de masa de los componentes individuales nuestros ejes elegidos, dado
momento la masa de un componente individual de inercia alrededor de un eje
paralelo a través del centro de masa de ese componente y la distancia
perpendicular entre los dos ejes. La ecuación de los ejes paralelos es: la Ecuación
(29.) [3]
𝐽𝑝𝑎𝑟𝑎𝑙𝑙𝑒𝑙 −𝑎𝑥𝑖𝑠 = 𝐽𝐶𝑂𝑀 + 𝑚𝑟2 (29.)
𝐽𝐶𝑂𝑀 Es el momento de inercia de un componente individual sobre su propio eje
(que pasa a través del centro de los componentes de la masa) paralelo al eje que
se desea "mover", en la ecuación anterior, 𝑚 es la masa del componente, y 𝑟 es la
distancia perpendicular entre los ejes paralelos. Tenga en cuenta que signo de 𝑟
no es importante ya que el valor se eleva al cuadrado.[3]
34
3.4.2. Motores: cilindros macizos
Para encontrar 𝐽𝑥 ,𝑀 y 𝐽𝑦 ,𝑀 utilizamos la ecuación de un cilindro que gira alrededor
de un diámetro final en la Figura 5. Se puede apreciar el gráfico del cuadricóptero
y a continuación las expresiones matemáticas para realizar los cálculos en la
Figura 6. Se supone que se está buscando encontrar 𝐽𝑦 ,𝑀, por ejemplo. El primer
término entre corchetes en la ecuación es para los motores 1 y 3, que se gira
alrededor de un diámetro final coincidiendo con el eje x de la cuadricóptero, por lo
tanto, el término distancia (𝑚𝑟2 - teorema del eje paralelo) es cero y se omite. El
segundo término entre corchetes en la ecuación es para motores 2 y 4, que están
en un diámetro que está desplazado pero paralelo al eje x del cuadricóptero.
Tenemos un término de distancia al final aquí 𝑚𝑟2 - excepto que utilizamos 𝑑𝑚
lugar de 𝑟 para mayor claridad). Esta es la distancia perpendicular entre el eje de
rotación del motor y el eje x real del cuadricóptero. Debido a la simetría del
vehículo, 𝐽𝑥 ,𝑀va a ser el mismo valor que 𝐽𝑦 ,𝑀 y 𝐽𝑧 ,𝑀 [3]
Figura 5. cuadricóptero y convenciones para el cálculo de momentos de masa inercial [3]
35
Ecuaciones requeridas:
𝐽𝐶𝑂𝑀 = 1
4𝑚𝑟2 +
1
3𝑚2 para ejes X y Y (30.)
𝐽𝐶𝑂𝑀 = 1
2𝑚𝑟2 para eje Z (31.)
Cilindro rotando al rededor de el final
del eje
Cilindro rotando alrededor del eje
central
Figura 6. Gráficos del cilindro con su referencia de rotación para el cálculo de momentos de masa inercial de los motores [3]
𝐽𝑥 ,𝑀 = 𝐽𝑦 ,𝑀 = 2 1
4𝑚𝑟2 +
1
3𝑚2 + 2
1
4𝑚𝑟2 +
1
3𝑚2 + 𝑚𝑑𝑚
2 (32.)
Para encontrar 𝐽𝑥 ,𝑀 y 𝐽𝑦 ,𝑀 utilizamos la ecuación de un cilindro que gira alrededor
de un diámetro final. Digamos que estamos buscando para encontrar 𝐽𝑦 ,𝑀, por
ejemplo. El primer término entre corchetes en la ecuación es para los motores 1 y
3, que se gira alrededor de un diámetro final coincidiendo con el eje x del
cuadricóptero, por lo tanto, el término distancia (𝑚𝑟2- teorema del eje paralelo) es
cero y se omite. El segundo término entre corchetes en la ecuación es para
motores 2 y 4, que están en un diámetro que está desplazado pero paralelo al eje
x del cuadricóptero. Tenemos un término de distancia al final aquí (𝑚𝑟2 - excepto
que utilizamos 𝑑𝑚 lugar de 𝑟 para mayor claridad). Esta es la distancia
perpendicular entre el eje de rotación del motor y el eje x real del cuadricóptero.
Debido a la simetría del vehículo, 𝐽𝑥 ,𝑀 va a ser el mismo valor que 𝐽𝑦 ,𝑀, 𝐽𝑧,𝑀 [3]
36
𝐽𝑧 ,𝑀 = 4 1
2𝑚𝑟2 + 𝑚𝑑𝑚
2 (33.)
Para encontrar 𝐽𝑧 ,𝑀 utilizamos la ecuación de un cilindro que gira alrededor de un
eje central ver Figura 6. En este caso todos los 4 motores están girando alrededor
de un eje central que está desplazada pero paralelo al eje z del cuadricóptero.
Tenemos un término de distancia al final aquí también, 𝑚𝑑𝑚2, que es la distancia
perpendicular entre el eje de rotación del motor y el eje z real del cuadricóptero. El
término de distancia, 𝑑𝑚 , será el mismo valor para todos los 4 motores, por lo
tanto, la incorporación de todos los motores en apenas la ecuación 1 y
multiplicando todo el término entre corchetes por 4. [3]
3.4.3. ESCs - superficie plana delgada
En la arquitectura electrónica de un cuadricóptero se encuentran unos dispositivos
llamados ESC (Electronic Speed Control) los cuales cumplen con la función de
controlar la velocidad angular de los motores de acuerdo al movimiento que se
espera de una trayectoria programada para un cuadricóptero.
Ecuaciones necesarias:
𝐽𝐶𝑂𝑀 ,𝑥 =1
12𝑚𝑏2 (34.)
𝐽𝐶𝑂𝑀 ,𝑦 =1
12𝑚𝑎2 (35.)
𝐽𝐶𝑂𝑀 ,𝑧 =1
12𝑚 𝑎2 + 𝑏2 (36.)
𝐽𝑥 ,𝑆 = 𝐽𝑦 ,𝑆 = 2 1
12𝑚𝑎2 + 2
1
12𝑚𝑏2 + 𝑚𝑑𝑠
2 (37.)
37
Para encontrar 𝐽𝑥 ,𝑆 y 𝐽𝑦 ,𝑆 se optó por utilizar las ecuaciones para una placa plana
que gira alrededor de los ejes X e Y ver Figura 7. Supongamos que estamos
buscando para encontrar 𝐽𝑥 ,𝑆 ,, por ejemplo. El primer término entre corchetes en la
ecuación es para ESC de 1 y 3 (números que corresponden con cual el motor
están conectados), que están girando alrededor de un eje que coincide con el eje
x del cuadricóptero, por lo tanto, el término distancia (𝑚𝑟2- teorema del eje
paralelo) es cero. El segundo término entre corchetes en la ecuación es de ESC
de 2 y 4, que están girando alrededor de un eje que está desplazado pero paralelo
al eje x del cuadricóptero. Tenemos un término de distancia al final aquí (𝑚𝑟2 -
excepto que utilizamos 𝑑𝑆 en lugar de 𝑟 ). Esta es la distancia perpendicular entre
el eje de rotación del ESC y el eje x real del cuadricóptero. Debido a la simetría del
vehículo, 𝐽𝑦 ,𝑆 va a ser el mismo valor como 𝐽𝑥 ,𝑆. [3]
Figura 7. Convenciones en el Cuadricóptero para el cálculo de momento de masa inercial de los ESCs [3]
𝐽𝑧 ,𝑆 = 4 1
12𝑚 𝑎2 + 𝑏2 + 𝑚𝑑𝑠
2 (38.)
38
Para encontrar 𝐽𝑧 ,𝑆 usamos la ecuación para una placa plana que gira alrededor
del eje z como se muestra en la Figura 7. En este caso todos los 4 ESC están
girando alrededor de un eje que está desplazado pero paralelo al eje z del
cuadricóptero. Se tiene un término de distancia al final aquí también, 𝑚𝑑𝑆2, que es
la distancia perpendicular entre el eje de rotación del ESC y el eje z real del
cuadricóptero. El término de distancia, 𝑑𝑠, será el mismo valor para todos los 4
ESC. [3]
3.4.4. HUB central: cilindro sólido
El HUB central es modelado como un cilindro y se encuentra en el centro del
cuadricóptero en el cual se encuentra la mayor parte de la masa puesto que
alberga en su interior las baterías controladores y demás dispositivos que permiten
el control del sistema, de manera que según el movimiento hay dos posibles casos
para el cálculo de momento de masa inercial así como en el caso del cálculo de
los momentos de masa inercial para los motores tales como rotación alrededor de
un diámetro central y alrededor de un eje central en la Figura 8 se puede apreciar
las magnitudes físicas requeridas y a que parte del cuadricóptero hace referencia
el HUB central
Figura 8. Convenciones en el Cuadricóptero para el cálculo de momento de masa inercial del HUB central [3]
39
Ecuaciones requeridas:
𝐽𝐶𝑂𝑀 = 1
4𝑚𝑟2 +
1
12𝑚2 (39.)
𝐽𝐶𝑂𝑀 = 1
2𝑚𝑟2 (40.)
Cilindro rotando a través de un diámetro
central
Cilindro rotando a través de un eje
central
Figura 9. Gráficos del cilindro con su referencia de rotación para el cálculo de momentos de masa inercial en el HUB central [3]
𝐽𝑥 ,𝐻 = 𝐽𝑦 ,𝐻 = 1
4𝑚𝑟2 +
1
12𝑚𝐻2 (41.)
Para encontrar 𝐽𝑥 ,𝐻 y 𝐽𝑦 ,𝐻 utilizamos la ecuación de un cilindro que gira alrededor
de un diámetro central (ver figura anterior). Digamos que estamos buscando para
encontrar 𝐽𝑥 ,𝐻, por ejemplo. Todo el término entre corchetes es para el eje central,
que gira alrededor de un diámetro central de coincidiendo con el eje x de la
cuadricóptero, por lo tanto, el término distancia (𝑚𝑟2 - teorema del eje paralelo) es
cero. Debido a la simetría del vehículo, 𝐽𝑦 ,𝐻 va a ser el mismo valor que 𝐽𝑥 ,𝐻. [3]
40
3.4.5. Brazos: barras cilíndricas largas
Para encontrar 𝐽𝑥 ,𝐴 y 𝐽𝑦 ,𝐴 usamos las ecuaciones para un cilindro giratorio
alrededor de un eje central, y también un diámetro final como se ve en la Figura
10. Para encontrar 𝐽𝑥 ,𝐴 , por ejemplo. El primer término entre corchetes en la
ecuación es de brazos 1 y 3, que están girando en torno a un eje central que
coincide con el eje x del cuadricóptero, por lo tanto, el término de distancia (𝑚𝑟2-
Teorema de Steiner) es cero. El segundo término entre corchetes en la ecuación
es de brazos 2 y 4 que están girando alrededor de un diámetro extremo situado a
una distancia "𝑑𝐴" desde el eje x del vehículo, por lo que el término Teorema de
Steiner aquí es 𝑚𝑑𝐴2. Debido a la simetría del vehículo, 𝐽𝑦 ,𝐴 se supone que es el
mismo que 𝐽𝑥 ,𝐴. [3]
Ecuaciones requeridas:
𝐽𝐶𝑂𝑀 = 1
2𝑚𝑟2 (42.)
𝐽𝐶𝑂𝑀 = 1
4𝑚𝑟2 +
1
3𝑚𝐿2 (43.)
Cilindro rotando alrededor del eje
central
Cilindro rotando alrededor de un eje
final
Figura 10. Gráficos del cilindro con su referencia de rotación para el cálculo de momentos de masa inercial en los brazos [3]
41
Para encontrar 𝐽𝑧 ,𝐴, Se asume la ecuación de un cilindro que gira alrededor de un
diámetro final. [3]
𝐽𝑧 ,𝐴 = 4 1
4𝑚𝑟2 +
1
3𝑚𝐿2 + 𝑚𝑑𝐴
2 (44.)
En este caso los 4 brazos giran alrededor de un diámetro extremo situado a una
distancia 𝑑𝐴 del eje z del vehículo, por lo que el término Teorema de Steiner es
𝑚𝑑𝐴2. También, debido a que cuadricóptero es simétrico y cada brazo tiene la
misma longitud multiplicamos todo el término entre corchetes por 4. [3]
En la Figura 11. Se puede apreciar las magnitudes y las referencias geométricas
tomadas para realizar el cálculo de los momentos de masa inercial aplicados para
obtener dicho valor de los brazos que componen el cuadricóptero.
Figura 11. Grafico del cuadricóptero con las convenciones para el cálculo de momentos de masa inercial en los brazos [3]
42
4. Implementación en Simulink del modelo de
Cuadricóptero
Para la implementación en simulink del modelo del cuadricóptero se toma como
base el simulador Quad–sim el cual es un software creado en Matlab® para hacer
más fácil el prototipado de cuadricópteros para este trabajo se toma el modelo ya
implementado por el equipo MEM senior design team 37 de la universidad de
Drexel, el cual permite hacer pequeñas simulaciones de un cuadricóptero basadas
en datos físicos reales, aunque no son tenidas en cuenta las posibles
perturbaciones y no linealidades que presenta un vehiculo aereo no tripulado, por
“el aleteo del rotor”, y el aire como se ve en [1].
4.1. Uso del Quad-sim
Como ya se explico el Quad–sim el cual es un software creado en Matlab®
presenta varias opciones para simular un cuadricóptero con datos basados en un
prototipo real. El comportamiento dinámico del cuadricóptero que se encuentra
conformado por el diagrama de bloques de la Figura 12. Que se encuentra
nombrado en el paquete de archivos del Quad-sim como
AC_Quadcopter_Simulation.slx el cual es un modelo de Simulink que está basado
en los criterios y expresiones matemáticas mencionadas en el apartado anterior.
Como se puede apreciar en la Figura 11. El diagrama de bloques ofrece al usuario
varias opciones en bloques de color gris que permiten las siguientes opciones:
OPEN GUI: Build New Model: es un bloque que permite desplegar una
ventana auxiliar en Matlab®, que se encarga de modelar el cuadricóptero
lo cual se tratara con mayor detalle en el siguiente apartado.
43
OPEN GUI: Create initial conditions: es un bloque similar al anterior ya
que permite al usuario desplegar una ventana auxiliar para asignar las
condiciones iniciales del cuadricóptero tales como velocidades angulares,
velocidades lineales, posiciones o ángulos.
LOAD Quadcopter Model Or initial conditions: es un bloque que permite
cargar archivos generados por los bloques anteriores, aunque esta función
también se puede realizar de manera alternativa abriendo los archivos del
current folder en Matlab® y cargándolos directamente al workspace.
SAVE Simulation Results: al activarse la simulación del archivo
AC_Quadcopter_Simulation.slx se generan automáticamente unas
muestras en archivos de entrada y salida en el Workspace de Matlab®,
este bloque permite guardar en otro tipo de archivo estas entradas y
salidas del sistema.
OPEN PLOT: State Data: presenta gráficas del comportamiento dinámico
de los motores.
OPEN GUI: FlightAnimation: despliega en una ventana auxiliar una
animación por tiempo de el desplazamiento del cuadricóptero teniendo en
cuenta la velocidad angular y la velocidad traslacional.
Figura 12. Diagrama de bloques en AC_Quadcopter_Simulation[28]
44
Entre las opciones descritas anteriormente las de mayor importancia son las que
corresponden a los bloques OPEN GUI: Build New Model, OPEN GUI: Create
initial conditions y OPEN GUI: FlightAnimation; porque el primero permite que el
modelo conformado por los bloques de color, se comporte como uno real ya que
los cálculos matemáticos correspondientes son basados en datos reales, el
segundo permite asignar condiciones iniciales, que la mayoría de veces son
iguales a cero, pero que además deja abierta la posibilidad de experimentar y
obtener resultados alternativos en el caso de que las condiciones iniciales no sean
iguales a cero, que en la realidad correspondería a un lanzamiento del
cuadricóptero desde algún punto distinto el suelo, como por ejemplo lanzarlo
desde otra aeronave más grande.
4.1.1. Construcción de un nuevo modelo
Para la construcción de un nuevo modelo se emplea el bloque OPEN GUI: Build
New Model dentro del archivo AC_Quadcopter_Simulation.slx el cual se puede
apreciar en la Figura 13. Esta ventana auxiliar permite ingresar los valores que
pueden estar basados en un cuadricóptero real comercial, o en algún prototipo de
fabricación para investigación.
45
Figura 13. Construcción de un nuevo modelo[4]
Como se observa en la Figura 12. La pantalla se encuentra dividida en 7 zonas las
cuales se explican a continuación:
Zona 1: Permite el uso de unidades inglesas o sistema internacional.
Zona 2: Se ingresan los datos reales de todas las piezas físicas que conforman el
cuadricóptero sin tener en cuenta los motores.
Zona 3: Permite intercambiar las gráficas que son necesarias para saber
identificar la caja de texto correspondiente al parámetro del cuadricóptero que se
está introduciendo.
Zona 4: Gráfica que referencia en el cuadricóptero los parámetros de la Zona 2.
Zona 5: Se ingresan los datos reales de los motores.
Zona 6: Realiza los cálculos de momentos de inercia y masa total además los
publica.
Zona 7: A través de botones permite guardar el modelo en configuración “+” o “X”
o permite cargar un modelo ya existente. [4]
46
Para usar esta aplicación se deben ingresar los datos en la Zona 2 seleccionando
en la Zona 1 el sistema de medidas, preferiblemente utilizar un modelo
preexistente para basar el modelo en los motores que están modelados por
defecto en la zona 5, puesto que esto ayuda a simplificar el proceso ya que
obtener estos datos reales implica realizar un montaje y poner a prueba un motor
para poder construir un nuevo modelo, en el proceso de escritura de los datos se
debe retroalimentar usando las imágenes que aparecen en la Zona 4 para así
ingresar los datos de manera adecuada. [4]
Al final del proceso se utilizan los botones de la Zona 7 los cuales permiten
guardar los archivos del modelo según la configuración preferida, se debe notar
que este archivo posteriormente se debe cargar al Workspace de Matlab® para
que se permita la simulación puesto que de no hacerlo Matlab® no tendrá datos
con que realizar los cálculos y por lo tanto no se apreciara un cambio en las
variables creadas del modelo construido. [4]
4.1.2 Asignación de condiciones iniciales.
La asignación de condiciones iniciales es un procedimiento similar al anterior
donde se registran los datos correspondientes a: velocidades angulares, ángulos
de Euler, velocidades del motor, velocidades traslacionales, y velocidades
angulares además permite identificar si las condiciones son para un modelo en
configuración “+” o en “X” y una Zona 4 similar a la del apartado anterior permite
guardar los datos en un archivo para que este sea cargado en el Workspace de
Matlab®. En la Figura 14. Se ve el GUI utilizado para ajustar las condiciones
iniciales para la simulación del cuadricóptero.
47
Figura 14. Asignación de condiciones iniciales a través de un GUI [5]
4.2. Edición y modificaciones para el Quad-Sim en esta
simulación
Para realizar la simulación del cuadricóptero se tomaron los bloques del Quad-Sim
a manera de Toolbox y se construyo un nuevo modelo de simulación ya que el que
se aprecia en la Figura 12. Se encuentra resumido puesto que al abrir cada uno de
los bloques de color en su interior tiene otros es decir, cada bloque del sistema
implementado en la simulación corresponde a un subsistema los cuales son
comando de postura, controlador de postura, mezclador de control del
cuadricóptero y dinámica del cuadricóptero; dichos bloques se encuentran en lazo
de realimentación lo cual indica que se realiza un control en lazo cerrado.
48
En la Figura 15. Se puede apreciar el contenido de los bloques aunque éstos no
denotan todo el funcionamiento puesto que la dinámica del cuadricóptero se
encuentra desarrollado en un archivo de comandos de Matlab®, con extensión
“.m”.
Figura 15. Modelo de Simulink del cuadricóptero[28]
49
5. Simulación a través del toolbox 3D
Animation y V-Realm Builder
Simulink 3D Animation™ ofrece aplicaciones para vincular modelos Simulink y
algoritmos de MATLAB a los objetos gráficos en 3D. Permite visualizar y verificar
el comportamiento del sistema dinámico en un entorno de realidad virtual. Los
objetos se representan en el Virtual Reality Modeling Language (VRML), un
lenguaje de modelado 3D estándar. Puede animar un mundo 3D, cambiando de
posición, rotación, escala y otras propiedades de los objetos durante escritorio o
simulación en tiempo real. También puede inyectar señales de los sensores
virtuales y datos de animación en 3D de acceso en Simulink o MATLAB para
postprocesado.[34]
El V-Realm builder es el programa en el que está basado el toolbox de simulink 3D
animation antes de que se lanzara como una aplicación para MATLAB el cual
permite vincular a modelos de entornos ya elaborados, los modelos requeridos
para la prueba que incluye la vista del objeto en el espacio y al que corresponde el
modelo dinámico del sistema que se vincula a través de las opciones de los
componentes de Simulink.
5.1. Toolbox Simulink 3D Animation
El Toolbox de simulink 3D Animation contiene bloques que permiten al usuario
cargar modelos diseñados por el V-Realm Builder, o cualquier otro programa CAD
3D que soporte el formato establecido por el estándar VRML 97, de tal manera
que es a través de un bloque de Simulink llamado VR Sink que se conectan las
señales del modelo dinámico del sistema como si se tratase de un bloque Scope
que es el que permite observar el comportamiento del sistema visualizando las
señales internas comportamentales. En la Figura 16. Se puede visualizar el bloque
VR Sink que es el que se conecta al modelo para que funcione la animación con
base al modelo consultado.
50
Figura 16. Bloque VR Sink [Autores]
Este bloque lo que permite es cargar un modelo de realidad virtual y acceder a
algunas de las propiedades del modelo tales como la posición o las rotaciones a
través de cualquiera de los ejes X, Y, Z; para que estos puedan ser modificados
por las señales resultantes de la interacción de bloques como resultado de
observar el comportamiento dinámico en un modelo en Simulink para algún
sistema o caso de estudio físico que se esté realizando. En las siguientes
secciones se verá al detalle cómo se accede a estas propiedades y como se
modifican arrancando la simulación desde Simulink.
5.2. Desarrollo del modelo CAD 3D en V-Realm Builder
Para el diseño del modelo CAD 3D del cuadricóptero se empleo el software V-
Realm Builder que se encuentra adjunto al software MATLAB en la ruta de
archivos en el equipo en que se esté ejecutando el programa. Siendo más
específicos en la ruta.
C:\Program Files\MATLAB\R2013a\toolbox\sl3d\vrealm\program
51
Para el desarrollo del modelo CAD 3D en V-Realm Builder se requiere aplicar un
modelo inicial del ambiente en donde se va a desplazar el cuadricóptero que se va
a diseñar, con el fin de lograr establecer una referencia al movimiento que va a
presentar el modelo.
Los modelos ambientales se pueden encontrar en la ruta:
C:\Program Files\MATLAB\R2013a\toolbox\sl3d\library\templates
En la Figura 17. Se puede ver una imagen en la que se ve un diseño ambiental por
defecto en el V-Realm Builder.
Figura 17. Uno de los modelos por defecto para realizar una simulación en
V-Realm Builder[Autores]
52
Para el diseño de un modelo CAD 3D en el V-Realm Builder, el paso a seguir es
desarrollar el modelo 3D en un archivo sin ambiente para luego vincularlo al que
se mostro en la Figura 16. Así es más fácil manipularlo puesto que hay varios
ambientes que pueden interferir en el desarrollo del modelo y hacer el trabajo un
poco más difícil para ello es mejor tomar una plantilla en blanco y realizar el
modelo.
Para empezar a desarrollar un modelo se utiliza el componente transformation el
cual contiene la información correspondiente a el tipo de solido en el espacio que
se va a diseñar, el programa V-Realm Builder contiene ya unos modelos
predefinidos como lo son Box, Cone, Cylinder, Sphere, Text, Elevation Grid,
Extrusion, e indexed face, estos son puestos debajo del ítem Children que se
encuentra en la transformation que se ingreso, también contiene una serie de
propiedades que permiten intercambiar el centro de masa, la escala, la posición,
permite realizar rotaciones, entre otras, para ver donde se encuentra en el V-
Realm Builder los ítems que se acaban de enunciar se puede apreciar esta
información en la Figura 18.
Figura 18. Herramientas de creación de modelo 3D en V-Realm Builder
[Autores]
53
En la Figura 17 se encuentran enumeradas las principales herramientas de
creación de modelo 3D como se indica a continuación:
Zona 1: Se ingresan los bloques geométricos por defecto como lo son: Box, Cone,
Cylinder, Sphere, Text, Elevation Grid, Extrusion, e indexed face.
Zona 2: Es donde aparecen los componentes que se insertan a través de la zona
3 como ya se dijo el ítem Transformation es el más versátil y el más utilizado para
la creación básica de un modelo CAD 3D y el que se aplica en esta monografía.
Además permite intercambiar los parámetros centro de masa, la escala, la
posición, permite realizar rotaciones, entre otras.
Zona 3: Permite ingresar los bloques de mayor jerarquía para este caso se
ingresa el bloque Transformation, se encuentra indicado con una T mayúscula y
unas llaves ( { } ).
Zona 4: Corresponde al Item del bloque Transformation de Children, es allí donde
se ingresa la geometría que se quiera representar para el modelo CAD 3D, donde
además se cambian sus dimensiones y colores.
Se debe tener claro que al ingresar un objeto debajo de Children cuando se hagan
modificaciones al Transformation, afectará a todos aquellos ítems que se hayan
ingresado en esa posición por lo cual para la creación del modelo del
cuadricóptero es lo más indicado pues se debe apreciar globalmente al
cuadricóptero como un sólido en el espacio y no por partes separadas, además es
posible que para algunas aplicaciones si se deban ingresar varias Transformation,
y realizar grupos.
En el siguiente apartado se va a mostrar como fue el proceso de diseño final del
modelo CAD 3D para luego ser este montado a Simulink y el proceso que se
requiere para adaptar las señales que se contiene, el diseñar un modelo en CAD
3D no significa que va a corresponder necesariamente a las condiciones reales ya
que a través de MATLAB se pueden programar algunas incongruencias tales
como un objeto muy pequeño con una gran cantidad de masa, o un objeto muy
grande con poca masa, el resultado final depende de las apreciaciones y
consideraciones que tenga el usuario al diseñar el modelo y a su posterior
aplicación.
54
5.2.1. Desarrollo del modelo CAD 3D del Cuadricóptero
Para el desarrollo del modelo final 3D del Cuadricóptero y su integración como se
mencionó arriba a un modelo del entorno en que se va a producir el movimiento
del Cuadricóptero, se procede con la creación de un ítem Transformation al que
se le dará el nombre del cuadricóptero, para este caso el cuadricóptero está
basado en el cuadricóptero de la marca Microdrones GmBH, el modelo MD4-200
que se puede observar en la Figura 19. Además aparece en la página.
Figura 19. Modelo Real en el que está basado el modelo CAD 3D en este
proyecto.[35]
Al agregar al área de trabajo el ítem Transformation como se puede ver en la
Figura 19. Se pueden agregar algunos de los elementos con los que se va a
realizar el diseño del modelo CAD 3D, se debe hacer aclaración de que el modelo
se hace inspirado en uno real pero no es posible realizar una copia exacta del
mismo puesto que las opciones de este software, no lo permiten de tal manera
que es un proceso que se realiza al fallo y error para que su diseño sea acorde a
las necesidades del usuario.
55
Como también se puede apreciar en la Figura 20, se parte el diseño del modelo
3D del cuadricóptero con un cilindro y una esfera, para representar el Hub central,
y posteriormente, se agregan los brazos.
Figura 20. Hub central diseñado en V-Realm Builder [Autores]
Para el diseño de los brazos se ingresan como un Children de la primera
Transformation, es decir la de mayor jerarquía llamada MD4-200, y cada rotor se
diseña por separado siendo cada uno una copia idéntica de un solo brazo
generado, para realizar las aletas no existe un componente que se le parezca en
la Zona 1. Según la Figura 18. Por lo tanto se utiliza el componente Extrusion el
cual permite a través de puntos generar el diseño geométrico de una figura
irregular o regular cóncava o convexa, y añadir efectos, lo cual no es posible de
hacer con los otros componentes por lo tanto se realiza usando este método en la
Figura 21. Se muestra este método de diseño de un sólido por medio de puntos
con el componente Extrusion y a la derecha se ve el resultado.
56
Figura 21. Diseño de un sólido en el espacio usando el componente
Extrusion [Autores]
Siguiendo con el diseño principal para terminarlo creamos un brazo y lo anidamos
cuatro veces al Hub central que ya se había creado y que se puede ver
representado en la Figura 20. De tal manera que se obtendría una estructura
completa del cuadricóptero aunque sin algunos de los accesorios que se ven en el
modelo original de la Figura 19. Los cuales son las bases para que se posicione
en tierra, que en la realidad es usado para obtener un aterrizaje adecuado y el otro
componente es la cámara que si bien no cumple ninguna función, hace parecer el
modelo CAD 3D diseñado más similar al real.
Cuando se realiza un diseño este no presenta los colores que se exponen aquí
que para este caso es rojo, naranja, y negro; para obtener estos colores se debe
acceder a las propiedades del bloque Shape debajo del bloque Children dentro del
Transformation, en el cual accedemos como indica la siguiente secuencia: Shape
– appearance – Appearance – material – Material – diffuseColor.
57
Figura 22. Hub Central con los brazos del cuadricóptero anidados [Autores]
Para finalizar el diseño se agregan las patas y la cámara, para el caso de las patas
se procede utilizando el bloque Extrusion el cual como ya se menciono a través de
puntos permite modificar la geometría de un sólido para que este pueda tomar
formas irregulares; para el caso de la cámara se utilizan los bloques Box para la
carcasa y Cylinder para el lente. El resultado final integrando el modelo ambiental
por defecto que ofrece el software y el diseñado se puede observar en la Figura
23. El cual ya esta listo para que sea integrado al modelo de Simulink.
Figura 23. Modelo Final del cuadricóptero integrado a un entorno ambiental
3D [Autores]
58
5.3. Integración del modelo CAD 3D a la simulación basada en
Quad-Sim
Para la integración del modelo CAD 3D que se obtiene en un archivo .vrml con el
que se había obtenido en Simulink, que representa el comportamiento dinámico
del sistema del cuadricóptero que se veía en secciones anteriores en la Figura 15.
Se accede a los parámetros del bloque VR Sink como se ve en la Figura 2.
Figura 24. Parámetros de VR Sink para recrear el movimiento en la
simulación [Autores]
Luego de acceder a los parámetros del bloque VR Sink se dezplega una ventana
donde se reconocen en la Figura 24 dos secciones principales como se indica a
continuación.
59
Zona 1: Se hace una búsqueda de la ruta en el sistema operativo para acceder al
modelo 3D diseñado para hacer la vinculación con Simulink.
Zona 2: Es donde aparecen los parámetros que se van a modificar a través de la
conexión de las señales producidas por MATLAB que es lo que produce el
movimiento o la sensación en tiempo Real de que se está realizando un
movimiento de acuerdo al comportamiento dinámico del sistema conforme avanza
la simulación en Simulink.
Para este caso en la creación del modelo se agregaron 3 Transformation en
blanco con el nombre de EJE_X, EJE_Y y EJE_Z; debido a que MATLAB presenta
conflicto al realizar las rotaciones por cada eje por separado por lo cual se accede
al parámetro rotation por cada uno de los ejes, y para realizar el desplazamiento
se cambia habilita el parámetro translation del Transformation de mayor jerarquía
obteniéndose como resultado un bloque cuyas entradas son 3 para rotaciones 1
por cada eje y una para posición como se observa en la Figura 25.
Figura 25. Resultado de la configuración del bloque VR Sink con las entradas
de translation y rotation [Autores]
60
Por supuesto también debe hacerse una adaptación a las señales que se obtienen
de la dinámica del sistema del cuadricóptero, en este caso se debe tener en claro
que cada una de las entradas que se apreciaban en la Figura 24, son vectores
donde los primeros valores son constantes puesto que para producirse una
rotación en un eje se debe indicar con 1 el uso de ese eje, los otros ejes
configurarlos en 0 y posteriormente en la cuarta posición del vector, indicar el valor
del ángulo de rotación. Como se ve en el siguiente ejemplo numérico:
𝑅𝑜𝑡𝑎𝑡𝑖𝑜𝑛 = {1,0,0, 45°}
Lo que representa una rotación en el eje x y con un valor de 45°, para realizar
rotaciones alrededor de los otros ejes de referencia se debe asignar un valor de 1
y los restantes 0 y el cuarto elemento del vector corresponde a la magnitud de
rotación que es la extraida del modelo dinámico del sistema del cuadricóptero que
se encuentra implementado en Simulink. Por lo cual para realizar la conexión se
debe realizar el montaje de los bloques que aparecen en la Figura 26 para que
automáticamente envie la información al modelo CAD 3D asociado al bloque VR
Sink.
Figura 26. Montaje en Simulink para la transferencia de señales al VR Sink
[Autores]
61
De tal manera que siguiendo el procedimiento que se indica arriba, se puede
conseguir movimiento por parte del Cuadricóptero al arrancar la simulación como
se puede apreciar en la Figura 27. Donde se inicia la simulación de Simulink
programando algunos parámetros en los bloques Step que se veía en secciones
anteriores para los cuatro parámetros principales que determinan el movimiento
del cuadricóptero como lo son el ángulo Phi, ángulo Theta, ángulo Psi y el
comando de altura (Z), los cuales funcionan de la siguiente manera: el comando
de altura determina ya sea en pies o en metros la altura de estabilización
independiente de la modificación del ángulo y de ahí se produce un movimiento
conocido como flotado para realizar los avances se realiza modificación de los
ángulos Phi para el eje Y (para este caso de derecha a izquierda), o modificación
del ángulo Theta para producir desplazamiento en el eje X (En este caso de
adelante a atrás), para la orientación se intercambia el ángulo Psi que no presenta
un verdadero cambio en el movimiento y posición del Cuadricóptero flotando, pero
cambia la referencia hacia la cual se va a producir el movimiento.
Figura 27. Arranque de la simulación en Simulink con el modelo CAD 3D
[Autores]
62
6. Aplicación de la metodología de control
óptimo
6.1 Control en cuadricópteros
El problema de control para hacer un seguimiento a trayectorias suaves (cambio
de postura y cambio de posición), es desafiante por varias razones. Primero el
sistema es subactuado: hay cuatro entradas 𝑢 = (𝑇∑ , 𝜏𝑇)𝑇 mientras SE(3) está en
seis dimensiones. Segundo el modelo aerodinámico descrito anteriormente es solo
una aproximación. Finalmente las mismas entradas son idealizadas. En la
práctica, los controles de los motores deben superar los momentos de fricción
para generar las velocidades requeridas y realizar la entrada de empuje (𝑇∑ ), y
los momentos (𝜏). La dinámica de los motores y sus interacciones con las fuerzas
de fricción en las hélices pueden ser difíciles para el modelo aunque los modelos
lineales de primer orden permiten una aproximación útil.[1]
Un enfoque de jerarquía de control es común para cuadricópteros. El nivel más
bajo, y el más alto ancho de banda, está en el control de la velocidad rotacional
del rotor. El siguiente nivel está en controlar la postura del vehículo y en el nivel
más alto esta el control de posición a lo largo de una trayectoria. Estos niveles
forman los lazos de realimentación anidados como se muestra en la Figura 28. [1]
Figura 28. Lazos de control en el cuadricóptero [1]
63
6.1.1. Control de los motores
La velocidad de los rotores maneja el modelo dinámico del vehículo de acuerdo
con la Ecuación (44.).
e
Σ𝑇𝜏𝜙𝜏𝜃𝜏𝜓
=
𝑐𝑇 𝑐𝑇 𝑐𝑇 𝑐𝑇0 𝑑+𝑐𝑇 0 −𝑑+𝑐𝑇
−𝑑+𝑐𝑇 0 𝑑+𝑐𝑇 0−𝑐𝑄 𝑐𝑄 −𝑐𝑄 𝑐𝑄
𝜛1
2
𝜛22
𝜛32
𝜛42
(44.)
Así una buena calidad de control de velocidad del motor es fundamentalmente
importante para el control total del vehículo; alto ancho de banda en el control de
empuje 𝑇∑ , denotado por 𝑈1 y los torques (𝜏𝑥 , 𝜏𝑦 , 𝜏𝑧), denotados por
𝑈2 conducen a un control de posición y postura de alto rendimiento. Varios
vehículos cuadricópteros son equipados con motores DC sin escobillas usa una
fuerza contra electromotriz (EMF), para el sensado de la conmutación del rotor y
modulación por ancho de pulso (PWM) de alta frecuencia para el control de voltaje
del motor. Los sistemas más simples generalmente usan un control directo en
estado estable del motor es proporcional al voltaje sin embargo; la respuesta
dinámica es de segundo orden debido a la dinámica eléctrica y mecánica. El
rendimiento mejorado es obtenido por la incorporación de un control SISO (Single
Input Single Output) en el nivel del motor / rotor. [1]
𝑉𝑖 = 𝐾 𝜔𝑖∗ − 𝜔𝑖 + 𝑉𝑓𝑓 (𝜔𝑖
∗) (45.)
Donde 𝑉𝑖 es el voltaje aplicado al motor, 𝜔𝑖∗ es la velocidad deseada y la velocidad
actual del motor es 𝜔𝑖 puede ser medida en la conmutación electrónica en el
control de velocidad embebido esto puede ayudar a superar un problema común
donde la velocidad del rotor es dad por el ajuste del comando PWM que reduce el
vuelo. La significativa carga en el torque debido a la fricción aerodinámica va a
conducir a un error de seguimiento que puede ser minimizado por una alta
64
ganancia proporcional (K), y/o un término de realimentación. Un beneficio positivo
de la fricción del torque es que el sistema es fuertemente amortiguado que se
opone a la necesidad de un control derivativo el término de realimentación
𝑉𝑓𝑓 (𝜔𝑖∗) compensa para el estado estable asociado al PWM con la velocidad dada
por el Set Point (referencia) por la incorporación de el mejor modelo disponible de
empuje determinado usando pruebas de empuje estático posiblemente incluyendo
el voltaje de la batería. [1]
El rendimiento de los controles del motor es últimamente limitado por la corriente
que puede ser alimentada por las baterías. Esto puede ser un factor
significativamente limitante para pequeños vehículos. Maniobras demasiado
agresivas y extremas pueden causar una ruptura excesiva en el bus de voltaje,
reduciendo el empuje desde otros rotores y en casos extremos causando un
apagón en los circuitos electrónicos por esta razón es común introducir una
saturación aunque esto destruye la respuesta lineal durante maniobras agresivas.
[1]
6.1.2. Control de postura
Primero consideremos el diseño de un controlador exponencialmente
convergiendo en SO(3). Dando una postura deseada del fuselaje 𝑅∗ vamos a
querer primero desarrollar una medida de el error en rotaciones. Elegimos la
medida que aparece en la Ecuación (46.) [1]
𝑒𝑅𝑥=
1
2 𝑅∗ 𝑇𝑅 − 𝑅𝑇𝑅∗ , (46.)
Lo que arroja una matriz anti simétrica representando el eje de rotación requerido
para ir desde 𝑅 hasta 𝑅∗ y cuya magnitud es igual al seno del ángulo de rotación
65
Para derivar controles lineales, linealizaremos la dinámica cerca a la posición
nominal de flotado que en el rollo 𝜙 y elevación 𝜃 son cercanos a cero y las
velocidades angulares también son cercanas a cero. Si escribimos 𝑅 = 𝑅𝐴𝐵 como un
producto de la rotación de orientación 𝑅𝐴𝐸 𝜓 𝑅𝐸
𝐵 𝜙, 𝜃 que es una composición del
rollo y la inclinación por lo tanto es posible linealizar la rotación cerca de un punto
de operación como aparece en la Ecuación (47.), Ecuación (48.), Ecuación (49.)
[1]
𝜓, 𝜙, 𝜃 = 𝜓0, 0, 0 (47.)
𝑅𝐴𝐵= 𝑅𝐴
𝐸 𝜓0 + ∆𝜓 𝑅𝐸𝐵(∆𝜙, ∆𝜃) (48.)
= cosψ −sen𝜓 ∆𝜃𝑐𝑜𝑠ψ + ∆𝜙𝑠𝑒𝑛𝜓
sen𝜓 cos𝜓 ∆𝜃𝑠𝑒𝑛ψ − ∆𝜙𝑐𝑜𝑠𝜓
−∆𝜃 ∆𝜙 1 (49.)
Donde ψ = 𝜓0 + ∆𝜓 Si 𝑅∗ = 𝑅𝐴𝐵
(𝜓0
+ ∆𝜓, ∆𝜙, ∆𝜃) y 𝑅 = 𝑅𝐴𝐵 𝜓0 , 0, 0 dando como
resultado la Ecuación (50.)
𝑒𝑅𝑥=
0 ∆𝜓 −∆𝜃
−∆𝜓 0 ∆𝜙
∆𝜃 −∆𝜙 0 (50.)
Que como se esperaba corresponde al vector de error:
𝑒𝑅 = (∆𝜙, ∆𝜃, ∆𝜓)𝑇 (51.)
Con componentes en la referencia de cuerpo fijo se la velocidad angular deseada
es cero, podemos computar el error proporcional y derivativo para obtener una ley
de control PD, como aparece en la Ecuación (52.) [1]
𝑈2 = −𝑘𝑅𝑒𝑅 − 𝑘𝜔𝑒𝜔 (52.)
Donde 𝑘𝑅 y 𝑘𝜔 son matrices positivas de ganancia. Este controlador garantiza la
estabilidad para pequeñas desviaciones de la posición de flotado. Para obtener
66
convergencias para desviaciones largas desde la posición de flotado es necesario
utilizar un modelo sin linealización esto nos ayuda para computar directamente el
error en SO(3). Por la compensación para términos inerciales no lineales y por la
inclusión de un término correcto de error obtenemos. La Ecuación (53.) [1]
𝑈2 = 𝐽 −𝑘𝑅𝑒𝑅 − 𝑘𝜔𝑒𝜔 + 𝜔 × 𝐽𝜔 − 𝐽(𝜔×𝑅𝑇𝑅∗𝜔∗ − 𝑅𝑇𝑅∗𝜔∗) (53.)
Este controlador es garantizado para ser exponencialmente estable para casi
cualquier rotación, desde un punto de vista práctico es posible despreciar los
últimos 3 términos en el controlador y lograr un rendimiento satisfactorio, pero el
cálculo correcto del término del error es importante. [1]
6.2. Control óptimo
El control óptimo es una rama particular del control moderno que propone
proporcionar diseños analíticos de un tipo especialmente atractivo. El sistema que
es el fin resultado de un diseño óptimo no se supone simplemente para ser
estable, tiene un cierto ancho de banda, o satisfacer una cualquiera de las
limitaciones deseables asociados con control clásico, pero se supone que es el
mejor sistema posible de un determinado tipo de ahí, la palabra óptima. Si es tanto
óptima y posee una serie de propiedades que las Control clásica sugiere son
deseables, tanto mejor. Control óptimo lineal es un tipo especial de control óptimo.
La planta que es se supone controlado lineal, y el controlador, el dispositivo que
genera el control óptimo, está forzada a tomar lineal. Controladores lineales se
logran trabajando con índices de rendimiento cuadráticas. Estos son cuadrática en
el control y regulación / seguimiento de las variables de error. Tales métodos que
logran el control óptimo lineal se denominan métodos Linear-cuadráticas (LQ). Por
supuesto, uno puede preguntarse: ¿por qué control óptimo lineal, en
contraposición a simplemente un control óptimo? Una serie de justificaciones
67
puede avanzar; por ejemplo, muchas plantas de ingeniería son linealizadas con
anterioridad además de poseer un controlador en ellos; un controlador lineal es
simple de implementar físicamente, y con frecuencia suficiente.
Otras ventajas de un control óptimo, cuando es específicamente lineal, son:
Muchos problemas de control óptimo no tienen soluciones computables, o
pueden tener soluciones que se pueden obtener solamente con una gran
cantidad de esfuerzo computacional.
Por el contrario, los problemas de control óptimo casi todos lineales tienen
soluciones fácilmente computables. Los resultados de control óptimo lineales
pueden aplicarse a sistemas no lineales operativos sobre una base de
pequeña señal. Más precisamente, supongamos que un control óptimo ha sido
desarrollado por algún sistema no lineal con el supuesto de que este sistema
inicia en un cierto estado inicial. Supongamos, sin embargo, que el sistema se
inicia en un estado ligeramente diferente al estado inicial, para la que no existe
algún otro control óptimo. A continuación, una primera aproximación a la
diferencia entre los dos controles pueden normalmente ser derivados, si se
desea, mediante la resolución de un problema de control óptimo lineal (con
todas sus ventajas computacionales concomitantes). Esto se mantiene
independientemente del criterio de optimalidad para el sistema no lineal.
Los procedimientos de cálculo necesarios para el diseño óptimo lineal puede a
menudo llevar a problemas no lineales óptimos. Por ejemplo, los
procedimientos de diseño para un sistema no lineal óptimo, están basados en
la segunda variación y cuasilinearización que consisten en algoritmos
computacionales en sustitución del problema no lineal por una secuencia de
problemas lineales.
Diseños de control óptimo lineales, donde los estados de la central son a su
vez medible al cabo de poseer una serie de propiedades, que no sea
simplemente la optimalidad de un índice cuadrático, que el control clásico
68
sugiere son atractivos. Ejemplos de tales propiedades son buen margen de
ganancia y margen de fase, y la buena tolerancia de la no linealidad. Tales
propiedades de robustez con frecuencia se puede lograr incluso cuando Se
requiere la estimación del estado. Las propiedades de robustez sugieren que
el controlador diseños para sistemas no lineales a veces, puede lograrse
mediante el diseño con la suposición de que el sistema es lineal (aunque esto
puede no ser un buen aproximación), y basándose en el hecho de que un
sistema diseñado lineal óptimo puede tolerar no linealidades que
corresponden a la realidad las cuales pueden ser bastante grandes sin
menoscabar las propiedades deseables. Por lo tanto, los métodos de diseño
óptimas son lineales en algunas formas aplicables a sistemas no lineales.
Control óptimo lineal proporciona un marco para el tratamiento unificado de los
problemas de control que se estudiaron a través de métodos clásicos. Al
mismo tiempo, se extiende la clase de los sistemas para los que se pueden
lograr diseños de control.
Diseño de control óptimo lineal para sistemas invariantes en el tiempo es en gran
medida una cuestión de síntesis de leyes de control; ver el diagrama de flujo de la
Figura 29. Recordemos que la primera tarea del diseñador es utilizar su ingeniería,
la comprensión de formular un problema matemático. Esto se materializa en la
parte superior dos bloques. Si hacemos caso omiso de la iteración en este y
posteriores etapas hay tres pasos esenciales cubiertos por los procedimientos
analíticos del control moderno
diseño por el estado completo de retroalimentación (donde se supone que se
miden todos los estados y disponible para la retroalimentación)
diseño estimador de estado (donde la preocupación es estimar los valores de
los estados cuando no se pueden medir directamente, pero ciertas medidas
son disponible)
69
Reducción del controlador (donde la preocupación es a la aproximación de un
estado complicado estimar controlador de retroalimentación obtenida a partir
de los dos pasos anteriores por un simple una sola complicación generalmente
se mide por la dimensión del Estado)
La etapa principal de diseño, que implica la aplicación del controlador, puede
implicar la derivación de una aproximación discreta en el tiempo al controlador. En
el segundo paso (diseño estimador de estado), una variación es estimar
solamente la señal de control de realimentación de estado, en lugar de el vector
de estado completo.[6]
Figura 29. Proceso de síntesis de controladores óptimos [6]
70
6.2.1. LQR (Linear Quadratic Regulator)
El método de control LQR, es la solución óptima a un problema de
minimización con lo cual asegura la estabilidad del sistema en lazo cerrado,
además su cómputo es fácil. Se puede comenzar por definir el problema más
general que da solución a este problema. [7]
Para un sistema de tiempo continuo, la ley de realimentación de estados
𝑢 𝑡 = −𝐾𝑠𝑠𝑥(𝑡) (54.)
Minimiza la función de costo cuadrático.
𝐽 𝑢 = 𝑥𝑇𝑄𝑥 + 𝑢𝑇𝑅𝑢 + 2𝑥𝑇𝑁𝑢 ∞
0𝑑𝑡 (55.)
Sujeto a la dinámica del sistema:
𝑥 = 𝐴𝑥 + 𝐵𝑢 (56.)
En adición a la ganancia de realimentación de estados 𝐾𝑠𝑠, la función lqr de
MATLAB permite obtener la solución 𝑆 de la ecuación de Ricatti asociada.
𝐴𝑇𝑆 + 𝑆𝐴 − 𝑆𝐵 + 𝑁 𝑅−1 𝐵𝑇𝑆 + 𝑁𝑇 + 𝑄 = 0 (57.)
Y los valores propios en lazo cerrado usando e = eig(A-B*K) de manera que
K, es derivada de S usando.[8]
𝐾 = 𝑅−1(𝐵𝑇𝑆 + 𝑁𝑇) (58)
71
Y se puede encontrar desde MATLAB encontrando 𝐾𝑠𝑠 con la sintaxis:
K=lqr(A,B,Q,R) En la Figura 30. Se observa un diagrama de bloques básico de
un control estabilizante LQR. . [7]
Figura 30. Control estabilizante LQR [7]
6.3. Implementación de control LQR
Para la implementación de controladores es importante tener claro un modelo
matemático que represente el comportamiento dinámico del sistema y que se
ajuste a las variables que se van a controlar con el fin de diseñar un controlador
óptimo que se ajuste a nuestro caso de estudio.
En este proyecto y según el modelo dinámico que se presento en la Sección 4.2
las variables a controlar de interés son los ángulos: 𝜓, 𝜙, 𝜃 , y la posición con
respecto al eje Z que se llamara para este caso 𝑍 de tal manera que para el
cuadricóptero la ecuación de estado de la sección anterior que era vista como
𝑥 𝑡 = 𝐴𝑥 𝑡 + 𝐵𝑢 𝑡 ; 𝑥 𝑡0 = 𝑥0 queda enunciada de la siguiente manera.
Como aparece en el Anexo (2.) que es una asignación de valores numéricos a la
Ecuación (14.), Ecuación (22.), Ecuación (23.), Ecuación (25.)
72
las cuales son la ecuación de estado de velocidad angular, la ecuación cinemática
de Euler, la ecuación de estado de velocidad lineal, y la ecuación de estado de
posición para lo cual el punto de operación que se eligió es el que aparece en la
expresión de la Ecuación (59.)
𝜙 = 45°,𝜃 = 45°,𝜓 = 0°,𝑍 = 10 ∗ (0.3048)𝑚 (59.)
Debido a que 𝜙 = 45°, 𝜃 = 45° , son los máximos valores permitidos para los
ángulos ya que en el caso de superar estos los ±45°, se producirá un “salto al
infinito”, el sistema será automáticamente no lineal y operara en modo turbulento
al perderse la mayor parte de la componente Z de su centro de masa aplicando la
fuerza de empuje total, que es la que permite la posición de flotado, incluso en la
simulación se puede apreciar esto aumentando el ángulo 𝜙 y 𝜃 por encima de los
valores mencionados.
Para el caso del ángulo 𝜓 se ha establecido con un valor de 0 ya que la
modificación de este ángulo no presenta un cambio en la posición y las
velocidades de desplazamiento lineal siempre y cuando los otros ángulos se
mantengan en 0°, además este ángulo no presenta inconvenientes por su
magnitud por lo cual se puede asignar a todos los valores permitidos es decir de
0 a 180°.
El modelo obtenido en el Anexo (2.) es un modelo que corresponde a la
asignación numérica de los valores que se muestran en la Ecuación (59.) de tal
manera que provee un modelo aproximado para valores cercanos a ese punto de
operación y que solo corresponde a un instante de tiempo de tal manera que para
que el control óptimo para cada punto de operación requiere realizar un
modelamiento de nuevo en el espacio de estados como lo explica el procedimiento
que se acaba de enunciar.
73
6.3.1. Algoritmo para obtener la ganancia de control para un LQR
Para realizar el algoritmo de control se siguen las indicaciones que aparecen en
[8]. Este problema se puede resolver utilizando realimentación completa de
estado. El esquema de este tipo de sistema de control por debajo de donde se
muestra es una matriz de ganancias de control. Tenga en cuenta que aquí se
realimentan todos los estados del sistema, en lugar de utilizar las salidas del
sistema de retroalimentación. [8]
Figura 31. Esquema de la planta modelada en el espacio de estados [8]
De tal manera que se procede con la siguiente metodología:
Modelamiento de la planta en el espacio de estados: según la sección anterior
se observan claramente las matrices A y B que corresponden a las matrices de
las entradas y elementos almacenadores de energía (variables de estado), para
las matrices de salida se utiliza para la matriz C la matriz identidad, y para D un
74
valor de 0 debido a que no hay un componente de la entrada que tenga
directamente influencia en la salida. El sistema que se describe se representa
gráficamente como el que aparece en la Figura 31. Luego de tener claramente
identificadas las matrices del sistema se procede usando el comando sys_ss
= ss(A,B,C,D) en MATLAB que define el sistema en el espacio de estados
en sys_ss, para mayor información de el código remitirse a los anexos de este
documento
Luego de obtener un sistema en el workspace de MATLAB se debe analizar la
controlabilidad del sistema que obedece a la siguiente expresión matemática:
𝐶 = [𝐴|𝐴𝐵|𝐴2𝐵| … |𝐴𝑛−1𝐵] (60.)
De lo cual se obtiene que la controlabilidad del sistema es:
controllability = 4
Por lo tanto se comprueba que el sistema es controlable y por tanto es posible
diseñar un controlador con los requisitos citados.
Luego se deben elegir los valores para los parámetros R y Q que va a equilibrar
la importancia relativa de los esfuerzos de control y error respectivamente en la
función de costo que se está tratando de optimizar. El caso más simple es
asumir R=matriz identidad y Q=C’C La función de coste de manera que el
ajuste de la matriz Q en los elementos no nulos permite que se pueda conseguir
una respuesta deseable.
75
Finalmente al identificar los valores de las matrices R y Q se puede finalmente
utilizar el comando de MATLAB K=lqr(A,B,Q,R), y se obtiene la matriz de
ganancia de control. Que aparecen en el Anexo 3 para varios valores del
parámetro 𝑝 tal que 𝑝 = 1, 𝑝 = 10, 𝑝 = 20
Para su implementación se toman los valores de la ganancia de control por
columnas ya que cada columna representa un estado y se reemplaza en las
ganancias que se realimentan en cada bloque de control LQR Figura 32.
Figura 32. Diagrama de implementación LQR para Phi, Theta, Psi y Z y la
arquitectura de cada uno de los controladores [autores]
De manera que se produce control en este caso a la salida para el estado del
fuselaje intercambiando el ángulo Phi utilizando como parámetros la
realimentación de los estados Phi, Theta, Psi, Z, P, Q, R, y W basados en la
arquitectura que se plantea en la Figura 32. Que muestra el control para el ángulo
Phi que emplea el estado actual comandado por el software, el estado obtenido
del bloque de las ecuaciones de estado del sistema y el estado derivado que para
este caso es P.
76
7. Interfaz gráfica para el manejo global de la
simulación
Para realizar el manejo global de la simulación se debe hacer el procedimiento
que se indico en secciones anteriores que consiste en cargar en el Workspace de
MATLAB la información del modelo dinámico del cuadricóptero, las condiciones
iniciales con lo cual se puede obtener una simulación para una trayectoria simple,
utilizando el bloque Attitude_command que corresponde a un arreglo de bloques
Step en el que se realiza el ajuste de los ángulos y de la altura de estabilización en
el flotado, para efectos de este trabajo se editó el archivo
AC_Quadcopter_Simulation.slx, de modo que se disponen unos bloques de
constantes y de ganancia que permiten intercambiar los ángulos intercambiando el
valor de la ganancia esto se debe a que es más fácil para su integración con un
GUIDE que se puede diseñar para hacer un mando dinámico e interactivo con el
modelo CAD 3D en la figura 33 se puede observar los mandos de la simulación
acompañado de la interfaz de prueba.
Figura 33. Comando de postura en Simulink modificado desde un GUIDE
[Autores]
77
De tal manera que para esta simulación del cuadricóptero se implemento en el
GUIDE una interfaz gráfica que no solo permite intercambiar los parámetros de
control de trayectoria sino que también permite observar gráficamente el
desempeño de los controladores implementados, visualizando una gráfica de su
comportamiento a través del tiempo, en la Figura 34. Se ve la interfaz gráfica final
que permite realizar el control.
Figura 34. Interfaz final para el control de la simulación [Autores]
7.1. Puesta en marcha de la interfaz gráfica desarrollada
En este apartado se explica cómo debe ser operada la interfaz gráfica de usuario
para que se puedan implementar otras estrategias de control óptimo que partan de
un diseño LQR en el cual solo se hagan cambios a los parámetros de interés para
ello como se muestra en la Figura 35. Se utiliza un menú de edición en el cual se
editan los parámetros por cada bloque de control LQR que corresponde al ángulo
Phi, Theta y Psi, y el comando de altura Z.
78
Figura 35. Menú de edición de parámetros LQR [Autores]
De tal manera que si se poseen varios valores para implementar un controlador
como los que aparecen en el Anexo 3. Se pueden realizar varias
implementaciones intercambiando los parámetros como aparece por controlador
en el gráfico de la ventana derecha en la Figura 35. Los cuales son:
precompensación, estado inicial y estado derivado.
Se debe tener en cuenta que por medio de la interfaz gráfica desarrollada que se
observa en la Figura 34 posee la opción de que se puedan realizar gráficas para la
trayectoria que haya seguido el cuadricóptero de tal manera que se puede
observar el desempeño ya que el software realiza la representación gráfica que
muestra el seguimiento del fuselaje del cuadricóptero al setpoint asignado por el
usuario como lo muestra la Figura 36.
79
Figura 36. Graficas de los parámetros de control de la simulación [Autores]
7.2. Pruebas de rendimiento a los controladores
Para analizar el desempeño de los controladores implementados para este
problema de control y como se aprecia en la Figura 34 se dispone de una interfaz
gráfica de usuario que permite intercambiar los ángulos de inclinación y el
comando de altitud Z que permite la acción de flotado, que es lo que se encuentra
ubicado en la zona del comando de postura, ya que es el que permite asignar una
postura en el espacio, lo cual tiene un efecto de cambio de posición en el espacio
del fuselaje pero como se vio en la sección de control de cuadricópteros no se
realiza control para esta investigación de trayectoria planificada, sino de
trayectorias suaves que implican únicamente el cambio en el comando de postura,
realizar un control de trayectoria planificada implicaría un nuevo lazo de control al
sistema ya implementado; de manera que para realizar pruebas de rendimiento a
los controladores como primer paso se establece una trayectoria inicial de la cual
se va a evaluar el desempeño teniendo en cuenta los parámetros básicos que se
80
emplean para evaluar un rendimiento como los son el máximo sobre impulso, el
tiempo de establecimiento o el error de estado estacionario; además teniendo en
cuenta en que se está resolviendo un problema de control optimo se pueden
realizar cambios a la matriz R que en la sección anterior definimos como la matriz
identidad pero según se puede ver en [8], se puede observar que el peso de estas
matrices y el valor de sus componentes puede alterar el valor de las ganancias de
control K según la importancia que se le asigne a los estados.
Según [8], 𝑄 = 𝐶𝐶′ que para este caso es la misma matriz identidad además se
debía tener en cuenta que 𝑅 es de la misma dimensión de 𝑄 porque de no ser así
no se podría realizar el cálculo.
Así que evaluar el desempeño de los controladores quedará en resolver una
comparación del rendimiento entre LQR con diferentes valores a la matriz de peso
𝑅 y comparar el diseño del LQR como los mostrados por el Anexo (3.) por cambios
en el parámetro 𝑝
7.2. 1. Primer prueba de rendimiento para los controladores
Para la primera prueba de rendimiento se realiza el procedimiento que se indico
en el apartado anterior en donde se realiza un intercambio de parámetros como lo
ofrece la interfaz gráfica de usuario, para ello se ejecuta el algoritmo que se
muestra en el Anexo (3.) del cual es posible derivar las ganancias optimas de
control para que sean aplicadas y ver los efectos de realizar el diseño para varios
valores de el parámetro 𝑝. Para este caso se harán pruebas para el controlador de
comando de altura es decir Z, en el que la primera prueba a realizar será mediante
un diseño cuyo parámetro 𝑝 = 10 y cuyas constantes de control para el LQR del
comando de altura (Z) son: 𝑝𝑟𝑒𝑐𝑜𝑚𝑝𝑒𝑛𝑠𝑎𝑑𝑜𝑟 = 5.9200 𝑔𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑍 = −5.3611
𝑔𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑊 = −5.9200 el resultado se puede apreciar en la Figura 37.
81
Figura 37. Graficas de seguimiento de control para Z [Autores]
Como se puede observar en la Figura 37. Se presenta un error en estado estable
que puede ser corregido variando el valor de precompensación que como se
indico 𝑝𝑟𝑒𝑐𝑜𝑚𝑝𝑒𝑛𝑠𝑎𝑑𝑜𝑟 = 5.9200 es asignado manualmente sin algún criterio de
diseño puesto que la realimentación de estados que es el proceso del controlador
LQR no es suficiente para suprimir el error en estado estable que para el caso
aparece en la Ecuación (61.)
%𝑒𝑠𝑠 =29.65−26.25
26.25∗ 100% ≅ 12% (61.)
También es posible deducir que para este caso el tiempo de establecimiento es
aproximadamente 2.5 Segundos el cual es aceptable aunque puede ser mejor ya
que es una aplicación la cual requiere un mayor desempeño de la expresión de la
82
Ecuación (61.) se puede decir que el valor de precompensación no es el optimo
para este punto de operación y que debería cambiarse
7.2.2. Segunda prueba de rendimiento para los controladores
Para la segunda prueba de rendimiento de los controladores se procede con el
intercambio del parámetro 𝑝 que cambia los valores de los parámetros de control
que para este caso el parámetro 𝑝 = 20 de tal manera que las ganancias
obtenidas para los estados son: 𝑔𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑍 = −21.444 𝑔𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑊 = −23.68 y
un valor de precompensación asignado de manera práctica con un valor promedio
entre ambos tal que 𝑃𝑟𝑒𝑐𝑜𝑚𝑝𝑒𝑛𝑠𝑎𝑐𝑖ó𝑛 = 22 se obtiene la gráfica de salida para el
estado Z que es el comando de altitud que aparece en la Figura 38.
Figura 38. Gráficas de respuesta para la segunda prueba [Autores]
83
Que como se puede apreciar en la gráfica anterior presenta un mejor desempeño
ya que como es evidente el error en estable es prácticamente cero, y el tiempo de
establecimiento es menor pues se ha aumentado el parámetro de peso 𝑝, que es
el encargado de ofrecer un menor tiempo de establecimiento pero como el error en
estado estable aumenta fue necesario para esta prueba hacer un aumento en la
precompensación puesto que no se podría obtener de ninguna forma la salida
deseada como se puede apreciar en la gráfica de la Figura 38.
7.3. Análisis
Para el análisis posterior que debemos hacer según los parámetros de
rendimiento se tienen en cuenta las gráficas que se generaron del sistema a partir
del cambio en el parámetro 𝑝 para el diseño del controlador LQR que aparecen en
la Figura 37 y Figura 38 de lo cual se concluye que el parámetro 𝑝 ofrece la
posibilidad de un ajuste de las ganancias de control LQR para que haya en el
sistema un mejor desempeño en términos de tiempo de establecimiento puesto
que al hacerlo también genera un mayor en estado estable, la ganancia de
precompensación también debe aumentar de valor puesto que de no hacerlo el
sistema hará variaciones en una escala más pequeña y las cuales no se pueden
apreciar; al aplicar la estrategia de precompensación el problema queda resuelto
puesto que así se puede ajustar una ganancia óptima que ronda en magnitud al
valor promedio entre los valores de la ganancia de control 𝐾 obtenida del diseño y
para lo cual el precompensador para este caso carece de diseño puesto que el
algoritmo no se puede generar de manera global sino por cada subsistema de
ganancia de control LQR
84
8. Conclusiones
Con este trabajo se pudo identificar un modelo matemático para un vehículo aéreo
no tripulado que para este caso fue un cuadricóptero debido a que actualmente es
muy utilizado para diversas aplicaciones y presenta una mayor dificultad para su
control como se ha visto a lo largo del documento, debido a que presenta una
dinámica compleja; el modelo identificado fue desarrollado en base a la simulación
Quad – Sim; además se desarrollo un modelo 3D basado en el cuadricóptero
MD4-200 de Microdrones al que se le realizó un cambio de color y se integro a un
mundo de realidad virtual para visualizar el desplazamiento en el espacio.
Se Realizó la correcta integración de la simulación 3D en V-Realm Builder junto
con el Archivo de simulación de Simulink empleando bloques comúnmente usados
como ganancias y multiplexores para realizar la conexión de las señales
producidas por la dinámica del fuselaje para producir movimiento en el modelo 3D
utilizando jerarquías en el elemento Transformation y Children para asi separar las
rotaciones que presentaban problema para transferirlas al V-Realm Builder.
Se diseñaron los controladores óptimos LQR para Phi, Theta, Psi y Z de tal
manera que como se pudo apreciar en esta investigación para el ejemplo del
control en la posición de altitud Z se realizaron pruebas con diferentes valores de 𝑝
que permitieron determinar que es un parámetro crucial para realizar un ajuste a
nuestro diseño en términos de tiempo de establecimiento, y que para mejorar el
error en estado estable siempre era necesario implementar otra estrategia como lo
es la precompensación de entrada, también se observo que el sistema no
presentaba sobre impulsos considerables lo cual define un sistema con respuesta
óptima.
85
Sin embargo este trabajo de grado permite concluir también que en cuanto a la
implementación de controladores para sistemas un poco más elaborados como un
cuadricóptero que posee una dinámica descrita por ecuaciones de mayor
complejidad y que constantemente está cambiando su dinámica porque se
encuentra en función de los estados realimentados para su control, hace concluir
que la mejor estrategia de control para una planta de este tipo es emplear alguna
técnica que permita actualizar el modelo matemático del cuadricóptero en cada
instante de tiempo, así no solamente serviría para algunos valores de altura como
se mostro en el diseño que corresponde al Anexo (2.) sino que también serviría
para unos valores más altos además en el proceso de simulación se observa
cuando se operan varios comandos a la vez como por ejemplo un movimiento
compuesto por el ángulo Phi, Theta y Z, tiende a influir en los otros controles
aumentando el error de estado estable en especial en la altura Z aunque es un
fenómeno normal porque al producirse un cambio de postura el componente Z - X-
Y de fuerza es el que produce el desplazamiento en el plano X-Y y por ende
generar una trayectoria pero al hacer estos cambios se observa una disminución
en Z lo cual no debería pasar suponiendo que es una estrategia de control óptimo
la que se ha implementado, por ende sería interesante ampliar este trabajo a
alguna estrategia de control que contenga una técnica de diseño e implementación
online que permita autoajustarse de acuerdo a como se comporte el cuadricóptero
aunque se prevé un alto coste computacional y una mayor complejidad
matemática.
86
Referencias
[1] R. Mahony and V. Kumar, “Modeling, Estimation, and Control of Quadrotor,” IEEE Robot. Autom. Mag., 2012.
[2] MEM Senior Design Team 37 of Drexel University, “Mathematical Model,” IEEE CSS Video Clip Contest 2014 Submiss. MATLAB Simulink Student Des. Chall. 2014, pp. 1–8, 2014.
[3] M. S. D. T. 37 University of Drexel, “Mass Moment of Inertia,” IEEE CSS Video Clip Contest 2014 Submiss. MATLAB Simulink Student Des. Chall. 2014, pp. 1–8, 2014.
[4] MEM Senior Design Team 37 of Drexel University, “Modeling GUI,” IEEE CSS Video Clip Contest 2014 Submiss. MATLAB Simulink Student Des. Chall. 2014, pp. 1–5.
[5] M. S. D. T. 37 of D. University, “Initial Conditions GUI,” IEEE CSS Video Clip Contest 2014 Submiss. MATLAB Simulink Student Des. Chall. 2014, pp. 2–4.
[6] B. Anderson and J. Moore, Optimal Control Linear Quadratic Methods. Prentice-Hall International, Inc., 1989, pp. 1–5.
[7] E. Carlos and V. Gonzales, “Modelamiento Dinámico y control LQR de un Quadrotor Modeling and LQR control of a Quadrotor,” vol. 13, pp. 71–86, 2010.
[8] U. of D. Michigan University, Carnagie Mellon University, “Inverted Pendulum: State-Space Methods for Controller Design, Control Tutorials for Matlab.” [Online]. Available: http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=ControlStateSpace.
[9] S. Liang, C. Zeng, J. Zhong, and Y. Sun, “Asymptotic behavior of sampling zero dynamics for a 3-DOF tandem-rotor model helicopter,” 26th Chinese Control Decis. Conf. (2014 CCDC), pp. 1957–1962, May 2014.
87
[10] J. Liu, S. Liu, and Q. Geng, “The H_Infinity Robust Control Algorithm of the 3-DOF Four Rotors System,” 2012 Fifth Int. Symp. Comput. Intell. Des., pp. 306–309, Oct. 2012.
[11] Z. Jiang, J. Han, Y. Wang, and Q. Song, “Enhanced LQR Control for Unmanned Helicopter in Hover,” 2006 1st Int. Symp. Syst. Control Aerosp. Astronaut., pp. 1438–1443.
[12] M. Ishitobi, M. Nishi, and M. Miyachi, “Nonlinear model following control with parameter identification for a 3-DOF model helicopter,” 2007 IEEE/ASME Int. Conf. Adv. Intell. mechatronics, pp. 1–6, 2007.
[13] J. Merida-Rubio and L. T. Aguilar, “Output feedback second order sliding mode control design for a 3-DOF helicopter based on its simplified model,” 2010 11th Int. Work. Var. Struct. Syst., vol. 2, no. 3, pp. 364–369, Jun. 2010.
[14] P. Li and T. A. O. Shen, “The research of 3 dof helicopter tracking controller,” no. August, pp. 19–22, 2007.
[15] W. Gao and Z. Fang, “Adaptive Integral Backstepping Control for a 3-DOF,” no. June, pp. 190–195, 2012.
[16] F. Borrelli and T. Keviczky, “Distributed LQR Design for Dynamically Decoupled Systems,” Proc. 45th IEEE Conf. Decis. Control, pp. 5639–5644, 2006.
[17] P. Baranyi, K. Tanaka, and P. Korondi, “TP model transformation based stabilization of a 3-DOF RC Helicopter IInf,” pp. 443–448, 2005.
[18] Z. X. Liu, C. Yuan, Y. M. Zhang, and J. Luo, “A learning-based fuzzy LQR control scheme for height control of an unmanned quadrotor helicopter,” 2014 Int. Conf. Unmanned Aircr. Syst., pp. 936–941, May 2014.
[19] X. Dong and Y. Zhao, “Internal model control based on RBF neural network inverse system decoupling in a 3-DOf helicopter system,” 2011 9th World Congr. Intell. Control Autom., no. 4, pp. 570–574, Jun. 2011.
[20] L. I. Shuailing, L. I. U. Hao, S. H. I. Zongying, and Z. Yisheng, “Vision based Flight Control of 3-DOF Helicopter,” pp. 4342–4347.
[21] S. Rajappa, A. Chriette, R. Chandra, and W. Khalil, “Modelling and Dynamic Identification of 3 DOF Quanser Helicopter,” 2013 16th Int. Conf. Adv. Robot., pp. 1–6, Nov. 2013.
88
[22] L. Yang, L. Zhang, and Q. Li, “Design and Application of Fuzzy Sliding Mode Control in the 3-DOF Helicopter,” 2009 Int. Work. Intell. Syst. Appl., pp. 1–5, May 2009.
[23] F. Zhou, D. Li, and P. Xia, “Research of Fuzzy Control for Elevation Attitude of 3-DOF Helicopter,” 2009 Int. Conf. Intell. Human-Machine Syst. Cybern., pp. 367–370, 2009.
[24] L. I. U. Hao, L. U. Geng, and Z. Yisheng, “Theory and Experiments on Robust LQR Attitude Control of a 3-DOF Lab Helicopter,” pp. 2335–2340, 2011.
[25] A. M. Modeling, “Control Strategy Design Based on Fuzzy Logic and LQR for 3-DOF Helicopter Model,” pp. 262–266, 2010.
[26] K. Tanaka, H. Ohtake, S. Member, H. O. Wang, and S. Member, “A Practical Design Approach to Stabilization of a 3-DOF RC Helicopter,” vol. 12, no. 2, pp. 315–325, 2004.
[27] J. Witt, S. Boonto, and H. Werner, “Approximate model predictive control of a 3-DOF helicopter,” 2007 46th IEEE Conf. Decis. Control, pp. 4501–4506, 2007.
[28] Y. Yu and C.-Y. Sun, “Robust attitude decentralized tracking control for a 3-DOF helicopter with unknown input time-delay,” 2013 25th Chinese Control Decis. Conf., pp. 173–177, May 2013.
[29] X. Wu, R. Ignatov, and J. J. Zhu, “No Title,” pp. 97–102, 2002.
[30] C. Li and X. Gu, “Design of Fluid Viscous Dampers for Single-Story Asymmetric-Plan Buildings Based on LQR Theory,” 2010 Second Int. Conf. Comput. Model. Simul., pp. 49–53, Jan. 2010.
[31] V. Mohan and N. Singh, “Performance comparison of LQR and ANFIS controller for stabilizing double inverted pendulum system,” 2013 IEEE Int. Conf. Signal Process. Comput. Control, pp. 1–6, Sep. 2013.
[32] R. N. Labbia, S. P. Engier, G. Tso, and S. Eier, “An application of LQR theory in an integrated guidance-control design for advanced cruise missiles.”
[33] C. Wang, “i y,” pp. 162–167, 1989.
89
[34] “Simulink 3D Animation Animate, visualize, and interact with models in 3D,” http://www.mathworks.com/products/3d-animation/%09%09.
[35] “MD4-200.” [Online]. Available: http://www.microdrones.com/en/products/md4-200/at-a-glance/.
90
Anexo 1. Código para la aerodinámica del
fuselaje
function InitializeConditions(block)
IC = block.DialogPrm(2).Data; P = IC.P*pi/180; Q = IC.Q*pi/180; R = IC.R*pi/180; Phi = IC.Phi*pi/180; The = IC.The*pi/180; Psi = IC.Psi*pi/180; U = IC.U; V = IC.V; W = IC.W; X = IC.X; Y = IC.Y; Z = IC.Z; init = [P,Q,R,Phi,The,Psi,U,V,W,X,Y,Z]; for i=1:12 block.OutputPort(i).Data = init(i); block.ContStates.Data(i) = init(i); end
function Outputs(block) for i = 1:12; block.OutputPort(i).Data = block.ContStates.Data(i); end function Derivatives(block)
quad = block.DialogPrm(1).Data; P = block.ContStates.Data(1); Q = block.ContStates.Data(2); R = block.ContStates.Data(3); Phi = block.ContStates.Data(4); The = block.ContStates.Data(5); Psi = block.ContStates.Data(6); U = block.ContStates.Data(7); V = block.ContStates.Data(8); W = block.ContStates.Data(9); X = block.ContStates.Data(10); Y = block.ContStates.Data(11); Z = block.ContStates.Data(12); w1 = block.InputPort(1).Data; w2 = block.InputPort(2).Data; w3 = block.InputPort(3).Data; w4 = block.InputPort(4).Data; w = [w1; w2; w3; w4]; Dist_tau = block.InputPort(5).Data(1:3); Dist_F = block.InputPort(5).Data(4:6); tau_motorGyro = [Q*quad.Jm*2*pi/60*(-w1-w3+w2+w4);
P*quad.Jm*2*pi/60*(w1+w3-w2-w4); 0]; Mb = (quad.dctcq*(w.^2))+ tau_motorGyro + (Dist_tau); Fb = [0; 0; sum(quad.ct*(w.^2))];
omb_bi = [P; Q; R];
91
OMb_bi = [ 0,-R, Q; R, 0,-P; -Q, P, 0];
b_omdotb_bi = quad.Jbinv*(Mb-OMb_bi*quad.Jb*omb_bi);
H_Phi = [1,tan(The)*sin(Phi), tan(The)*cos(Phi); 0, cos(Phi), -sin(Phi); 0,sin(Phi)/cos(The),cos(Phi)/cos(The)];
Phidot = H_Phi*omb_bi;
Rib = [cos(Psi)*cos(The) cos(Psi)*sin(The)*sin(Phi)-sin(Psi)*cos(Phi)
cos(Psi)*sin(The)*cos(Phi)+sin(Psi)*sin(Phi); sin(Psi)*cos(The) sin(Psi)*sin(The)*sin(Phi)+cos(Psi)*cos(Phi)
sin(Psi)*sin(The)*cos(Phi)-cos(Psi)*sin(Phi); -sin(The) cos(The)*sin(Phi)
cos(The)*cos(Phi)]; Rbi = Rib'; ge = [0; 0; -quad.g]; gb = Rbi*ge; Dist_Fb = Rbi*Dist_F;
vb = [U;V;W]; b_dv = (1/quad.mass)*Fb+gb+Dist_Fb-OMb_bi*vb; i_dp = Rib*vb;
dP = b_omdotb_bi(1); dQ = b_omdotb_bi(2); dR = b_omdotb_bi(3); dPhi = Phidot(1); dTheta = Phidot(2); dPsi = Phidot(3); dU = b_dv(1); dV = b_dv(2); dW = b_dv(3); dX = i_dp(1); dY = i_dp(2); dZ = i_dp(3);
if ((Z<=0) && (dZ<=0)) dZ = 0; block.ContStates.Data(12) = 0; end f = [dP dQ dR dPhi dTheta dPsi dU dV dW dX dY dZ].';
block.Derivatives.Data = f;
92
Anexo 2. Código para la implementación LQR
para un sistema modelado en el espacio de
estados
% modelamiento de el sistema del cuadricóptero tomando como punto de % operación Z=10, Phi=45, Theta=45, Psi=0. % se obtienen las matrices que aparecen a continuación según las
ecuaciones % de estado que describen la dinámica del sistema
A=[ 0 -0.9554 0 0 0 0 0 0 0 0
0 0; 0.9554 0 0 0 0 0 0 0 0 0
0 0; 0 0 0 0 0 0 0 0 0 0
0 0; 1 0.7071 0.7071 0.7854 0.7854 0 0 0 0 0
0 0; 0 0.7071 -0.7071 0.7854 0.7854 0 0 0 0 0
0 0; 0 1 1 0.7854 0.7854 0 0 0 0 0
0 0; 0 0 0 0 0.7854 0 0 1 -1 0
0 0; 0 0 0 0 0 0 1 0 1 0
0 0; 0 0 0 0 0 0 1 -1 0 0
0 0; 0 0 0 0 0 0 0 0 0 0.5253
0.7240 0.447; 0 0 0 0 0 0 0 0 0 0
0.5253 0.851; 0 0 0 0 0 0 0 0 0 0.8509
0.447 0.2760];
B= [ 0 3.57e-06 0 -3.57e-06; -3.57e-06 0 3.57e-06 0; -1.5746e-07 1.5746e-07 -1.5746e-07 1.5746e-07; 0 0 0 0; 0 0 0 0; 0 0 0 0; 0 0 0 0; 0 0 0 0; 1.4531e-07 1.4531e-07 1.4531e-07 1.4531e-07; 0 0 0 0; 0 0 0 0; 0 0 0 0];
93
C= [0 0 0 0 1 0 0 0 0 0 0 0; 0 0 0 0 0 1 0 0 0 0 0 0; 0 0 0 0 0 0 1 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0
1;];
D=[0];
% creación del sistema
sys=ss(A,B,C,D);
% minimización del sistema a la menor cantidad de variables de estado
para % realizar de manera más sencilla el diseño del LQR
sys2=minreal(sys);
% asignación de matrices del sistema a nuevas variables a=sys2.a; b=sys2.b; c=sys2.c; d=sys2.d;
% diseño del controlador LQR con un parámetro p=10
p=10; q=p*c'*c; r=eye(4);
k=lqr(sys2,q,r);