Modelo dinámico y control del cuadricóptero.
Modelo dinámico de un cuadricóptero
El cuadricóptero es un aeronave de despegue y aterrizaje vertical que utiliza 4 motores eléctricos en su sistema de propulsión. La Figura 1 muestra un cuadricóptero típico.
Figure 1: Cuadricóptero
Para compensar los momentos de rotación alrededor del eje vertical, los motores cuadricóptero giran en diferentes direcciones. Como se puede ver en la Figura 2, un motor que gira en sentido horario tiene dos motores adyacentes que giran en sentido antihorario.
Figure 2: Cuadricóptero. Motores
Los esquemas de las dos configuraciones de cuadricóptero más comunes “+” y “X” se muestran en la Figura 3.
Figure 3: Los configuraciones “+” y “X” de cuadricóptero
Utilizamos las ecuaciones de dinámica de un cuerpo rígido (ecu. 1) obtenidas en el capitulo anterior para construir un modelo dinámico de un cuadricóptero. El sistema de coordenadas, la configuración del cuadricóptero y el sentido de rotación de las hélices se elegirán como se indica en (Beard, 2008). Para completar el modelo dinámico, necesitamos encontrar las fuerzas que actúan sobre el cuadricóptero , los momentos y la matriz de inercia .
(1)
Fuerzas
La fuerza total que actuá sobre el aeronave en el marco de referencia del cuerpo es
donde Fg es fuerza de gravedad, Fa es la fuerza aerodinámica, y Fp es la fuerza de propulsión.
Como se muestra en la Figura 4, cada hélice produce una fuerza en dirección de . El coeficiente es una constante asociada al motor, determinada experimentalmente y es el variable de control, que es proporcional al cuadrado de la velocidad angular del i-esimo motor.
Figure 4: Cuadricóptero de configuración “+”. Fuerzas y momentos.
El indice representa las posiciones de los motores (front, right, back, left). Los motores 1 y 3 giran en sentido de las manecillas de reloj, mientras que los motores 2 y 4 en contra de las manecillas del reloj.
La fuerza de propulsión total, producida por los motores, que actuá sobre un cuadricóptero se define como
,
Las fuerzas aerodinámicas estarán determinadas únicamente por las fuerzas de resistencia del aire como esta definido en (Luukkonen, 2011).
.
donde Ax, Ay y Az son los coeficientes de fuerza de arrastre para velocidades en las direcciones correspondientes del marco de cuerpo. El signo menos aparece porque la fuerza de resistencia al aire siempre se dirige en sentido opuesto a la velocidad de movimiento del cuerpo.
La fuerza de gravedad en el marco del vehículo es
,
donde m es masa de cuadricóptero y g es aceleración de gravedad.
Los componentes de la fuerza gravitacional en el marco del cuerpo son
Finalmente, la fuerza total es
. (2)
Momentos
El momento total que actúa sobre la aeronave en el marco de referencia del cuerpo es
,
donde y son los momentos debido a la aerodinámica y propulsión.
Suponemos que los momentos aerodinámicos son .
Debido a la tercera ley de Newton, el arrastre de la hélice produce un torque de guiñada al cuerpo del cuadricóptero , donde es una constante asociada al motor y es determinada experimentalmente. La dirección del torque sera en dirección opuesta a la dirección de giro de la hélice. De este modo, el torque total de guiñada esta dado por
.
Para la configuración “+” que se muestra en la Figura 4 el torque de alabeo es producido por las fuerzas de los motores derecho e izquierdo y se define como
,
donde L es distancia entre el centro de cuadricóptero y el centro de un motor.
El torque de cabeceo es un producto de las fuerzas de los motores de enfrente y atrás
.
Figure 5: Cuadricóptero de configuración “X”. Fuerzas y momentos.
Para la configuración “X” que se muestra en la Figura 5 el torque de alabeo es
.
El torque de cabeceo es
.
Finalmente, los componentes de los momentos en el marco de cuerpo son
. (3)
La matriz de inercia
La matriz de inercia caracteriza la rotación inercial de un cuerpo rígido, y esta dada por la siguiente expresión
,
.
El cuadricóptero es simétrico sobre sus ejes, lo que implica que
. (4)
Finalmente, ecuaciones (1), (2), (3) y (4) definen el modelo dinámico de seis grados de libertad de un cuadricóptero.
Validación de modelo dinámico.
Para validar el modelo dinámico desarrollado, se utilizan los resultados de la simulación realizada por (Luukkonen, 2011). En este trabajo se muestra la respuesta de un modelo dinámico de un cuadricóptero a una variación de las señales de control (voltajes en los motores del cuadricóptero). Los cambios en las señales de control en el tiempo, utilizados en (Luukkonen, 2011), se muestran en la Figura 6.
Figure 6: Señales de control.
Como se puede ver en la Figura 6, durante el primer período (los primeros 0.5 segundos), el voltaje cambia por igual en los cuatro motores. El resultado de esta maniobra es un cambio en la altitud del cuadricóptero. Los ángulos de actitud del cuadricóptero en esta maniobra no cambian.
Un aumento de voltaje en el motor 4 y una disminución en el motor 2, al comienzo del segundo período (0.5 - 0.75 segundos), provoca un alabeo positivo. El voltaje en los motores 1 y 3 permanece sin cambios durante el segundo período.
Al comienzo del tercer período (1.0-1.25 segundos), el cabeceo negativo se logra al disminuir el voltaje en motor 1 y aumentar en el motor 3. El voltaje en los motores 2 y 4 permanece sin cambios durante el tercer período.
Al comienzo del cuarto período (1.5-1.75 segundos), el cuadricóptero realiza la guiñada debido a un aumento simultáneo de voltaje en los motores 2 y 4 y una disminución en los motores 1 y 3.
Las curvas presentadas en la Figura 6 se muestrearon (discretizaron en el tiempo) con un paso de 0.01 segundos, y se guardaron en el archivo de texto commands.txt como una tabla de comandos. El formato de la tabla de comandos es el siguiente. Cada evento es un conjunto de 5 números: el tiempo absoluto del evento y 4 valores de las señales de control (cuadrados de voltajes de los motores del cuadricóptero). Se muestra un ejemplo en la Tabla 1.
Tabla 1: Ejemplo de una tabla de comandos
Time |
δ1 |
δ2 |
δ3 |
δ4 |
... |
... |
... |
... |
... |
1.48 |
395234.1 |
385641.0 |
376165.8 |
385641.0 |
1.49 |
390460.9 |
385641.0 |
380851.0 |
385641.0 |
... |
... |
... |
... |
... |
El programa del simulador desarrollado lee el archivo commands.txt antes de iniciar la simulación, y durante la simulación actualiza los valores de las señales de control (cuadrados de voltajes de los motores) de acuerdo con los valores presentados en la tabla de comandos.
Los parámetros del modelo dinámico presentados en la Tabla 2 se seleccionaron de manera idéntica a (Luukkonen, 2011)
Tabla 2: Parámetros del modelo dinámico
Parámetros |
Valor |
Unidades |
g |
9.81 |
m/s2 |
m |
0.47 |
kg |
L |
0.23 |
m |
k1 |
2.980·10−6 |
|
k2 |
1.140·10−7 |
|
Jxx |
4.856·10−3 |
kg·m2 |
Jyy |
4.856·10−3 |
kg·m2 |
Jzz |
8.801·10−3 |
kg·m2 |
Ax |
0.25 |
kg/s |
Ay |
0.25 |
kg/s |
Az |
0.25 |
kg/s |
Los resultados de la simulación se muestran en las Figuras 7 y 8. Como se observa, los resultados de la simulación repiten con bastante precisión los resultados obtenidos en (Luukkonen, 2011).
De acuerdo con la Figura 3 de (Luukkonen, 2011) a 2 segundos de vuelo, el cuadricóptero estará en el punto x=1.0278, y=-2.48, z=-0.60. Obtendremos la misma posición como resultado de integración de nuestro modelo, como se muestra en la Figura 7.
Figure 7: Posición de cuadricóptero (m).
Figure 8: Actitud de cuadricóptero (grad).
Como puede ver en la Figura 4 del artículo (Luukkonen, 2011), después de dos segundos de simulación, el cuadricóptero estará en la actitud determinada por los ángulos ϕ=24.578, θ=23.856, ψ=6.080. La Figura 8 muestra que los resultados de la simulación para ambos modelos son idénticos. Con estos resultado se presume que modelo dinámico paso la validación.
Controlador de altura y actitud
Nuestro objetivo es desarrollar un controlador que permita al cuadricóptero flotar a cierta altura. Para ello utilizaremos el controlador PD (Ogata & Yang, 2002). La salida de controlador es proporcional al error de modo que
, (5)
donde y son los coeficientes de ganancia de los términos proporcional y derivativo.
El error se define como
, (6)
donde corresponde al valor deseado, y al valor medido.
Para el diseño de un sistema de control, las formulas del modelo dinámico de un cuadricóptero (1), (2), (3) y (4) no son adecuadas porque son demasiado complicadas para obtener información importante sobre el movimiento de la aeronave (Beard, 2008). Por lo tanto, vamos a desarrollamos un modelo dinámico simplificado de un cuadricóptero.
Modelo dinámico para control
Queremos que el cuadricóptero este flotando horizontalmente por lo tanto . Asumiendo que y son pequeños, podemos decir que , , y . Por lo que, la ecuación 2 del sistema (1) puede reescribirse como
=> (7)
Simplificamos la cuarta ecuación del sistema (1).
=> =>
Debido a que los términos de Coriolis qr, pr y pq son muy pequeños, finalmente tenemos
(8)
Derivando la ecuación (7) y combinándola con la (8) se obtiene
(9)
Derivando la ecuación 1 del sistema (1) recibimos
.
Ignorando la derivada , obtenemos
(10)
Omitiendo los términos de Coriolis en la tercera ecuación del sistema (1), recibimos
=>
Usamos (10). Recibimos
(11)
o
(12)
Por lo tanto, el modelo inercial simplificado esta presentado por ecuaciones (9) y (12). La dinámica dada por estas ecuaciones se expresa en el marco inercial.
Controlador PD
Desarrollaremos un controlador PD para la estabilización horizontal de un cuadricóptero a una altitud determinada . El controlador contendrá 3 canales: de altura, de angulo alabeo y de angulo cabeceo . El diagrama de bloques del controlador PD se muestra en la Figura 9.
Figure 9: El diagrama de bloques del controlador PD.
Consideremos el funcionamiento del canal de control de altura con más detalle. Para simplificar, asumiremos que solo tenemos un término proporcional en la señal de control, es decir tenemos controlador P. Como puede ver en la Figura 9, la salida del controlador es proporcional al error de altura .
Asumiendo que la altitud actual . Queremos subir a metros. Entonces el error es negativo . Pero la señal de control debe ser positiva porque queremos aumentar altura y, por eso, se debe aumentarse el voltaje en los motores. Por lo tanto, definimos que la señal de la salida del controlador de altura es
, (13)
donde es la ganancia proporcional de canal de control de altura y m es masa de cuadricóptero. Recuerde, dado que tenemos 4 motores, podemos suponer que cada motor eleva 1/4 de la masa del cuadricóptero.
Por otro lado, como definimos anteriormente, la fuerza de 4 hélices del cuadricóptero en marco de cuerpo es (14)
Sustituyendo (13) en (14) recibimos
(15)
Para simplificar la notación, conviene introducir ahora una nueva variable . La variable significará , y en el caso de P, PD y PID controladores, respectivamente. Aquí los coeficientes y son las ganancias derivativa e integral del canal de control de altura.
Entonces reescribimos la fuerza de propulsión (15) como
(16)
la fuerza de propulsión en marco inercial es
(17)
De acuerdo a la segunda ley de Newton
o
. (18)
Despejamos la fuerza
(19)
Definimos que (20)
Sustituimos (20) a (19) recibimos
(21)
Para desarrollar los canales del controlador PD de estabilización horizontal, introducimos las variables y . Como en el caso de , estas variables sirven para facilitar la escritura de ecuaciones para diferentes tipos de controladores (P, PD y PID). En particular, para el controlador PD tenemos: y ,
donde y son los errores de alabeo y cabeceo. Los coeficientes y son las ganancias proporcional y derivativa de canal de control de alabeo, y los coeficientes y son las ganancias proporcional y derivativa de canal de control de cabeceo, respectivamente.
Del modelo dinámico tenemos
(22)
Del modelo para el control tenemos
(23)
Igualamos (22) con (23) y tenemos
(24)
Juntamos (21) con (24). Tenemos
(25)
Definimos que , , (26)
Finalmente, obtenemos el siguiente sistema de ecuaciones
(27)
La solución de este sistema (señales a los motores del cuadricóptero) es
(28)
Validación de controlador PD.
Para la validación del controlador PD realizamos una comparación de los resultados de la simulación de estabilización de cuadricóptero mostrados en el artículo (Luukkonen, 2011) con los resultados de la simulación del nuestro modelo.
Usamos los mismos coeficientes del controlador, valores iniciales de modelo y valores deseables como se usaron en el articulo de Luukkonen. Los parámetros del controlador PD se presentan en la Tabla 3. La condición inicial del cuadcóptero para la posición es [0 0 1] en metros, y para la actitud es [10 10 10] en grados. El propósito de la estabilización es un vuelo estacionario estable con la altitud deseada y la actitud deseada [0 0 0].
Table 3: Parámetros del controlador PD
Parámetros |
Valores |
Kd,z |
2.5 |
Kp,z |
1.5 |
Kd,ϕ |
1.75 |
Kp,ϕ |
6 |
Kd,θ |
1.75 |
Kp,θ |
6 |
Kd,ψ |
1.75 |
Kp,ψ |
6 |
Los errores de posicionamiento en nuestro simulador se calculan de la siguiente manera:
, , , , , , , ,
donde z, , , , , , , provienen de resultado de la integración del modelo dinámico. Los valores deseados son , , , , , .
Dado que nuestro modelo usa el sistema de coordenadas NED, y en el artículo de Luukkonen esta usando el sistema XYZ, para obtener imágenes similares a figuras 6, 7 y 8 los valores iniciales de la posición del cuadricóptero deben cambiarse a [0 0 -1] para posición y a [10 -10-10] para actitud.
Los resultados de la simulación de la estabilización del cuadricóptero se muestran en las figuras 10, 11 y 12. Las figuras 10, 11, que muestran señales de control y ángulos de actitud de cuadricóptero, son idénticas a las figuras 5 y 7 del artículo.
La Figura 12 muestra las curvas de cambios de la posición del cuadricóptero a lo largo del tiempo. Las curvas con índice 0 (x0, y0, z0) son datos del artículo de Luukkonen, las curvas x1, y1, z1 son el resultado de la simulación de nuestro modelo con el controlador PD. Como se puede ver en la figura, las curvas x y z coinciden hasta el error de discretización de las figuras del artículo. En cuanto a la curva y, el error relativo alcanza el 27% a los 6 segundos de simulación. No sabemos qué causó este error al calcular la coordenada y. Quizás el error se deba a una diferencia en la implementación de nuestro programa y el programa de Luukkonen. Por ejemplo, a una diferencia en el orden de integración de ecuaciones o el método para calcular los ángulos de posición.
Dado que la coordenada y no está controlada (solo se controlan los ángulos de actitud y la coordenada z), creemos que el modelo de controlador ha pasado la validación con éxito.
Figure 10: Señales de control.
Figure 11: Actitud de cuadricóptero (grad).
Figure 12: Posición de cuadricóptero (m).
Literatura
Beard, R. W. (2008). Quadrotor dynamics and control. Brigham Young University, 19(3), 46-56.
Luukkonen, T. (2011). Modelling and control of quadcopter. Independent research project in applied mathematics, Espoo, 22.
Ogata, K., & Yang, Y. (2002). Modern control engineering (Vol. 4). India: Prentice hall.