93
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

Diseño e implementación de una estrategia de …repository.udistrital.edu.co/bitstream/11349/4205/1/...1 Diseño e implementación de una estrategia de control óptimo para simulación

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

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