Reg. dispersa en trayectorias de aeronaves

Este proyecto trata de comprobar si el método de regresión dispersa es adecuado para obtener las ecuaciones que modelan el vuelo de una aeronave

Repositorio de GitHub

Conceptos teóricos

Los conceptos teóricos asociados a este proyecto pueden dividirse en dos partes:

  • La primera comprende los conceptos asociados al modelado matemático de sistemas y las ecuaciones generales de la mecánica de vuelo
  • La segunda tiene que ver con el funcionamiento del algoritmo SINDY

Modelado de sistemas

Sistemas dinámicos

El modelado matemático de sistemas es una tarea que puede resultar muy compleja a la par que necesaria para entender el mundo que nos rodea. Nos permite describir las variables de las que depende un sistema así como las relaciones existentes existentes entre ellas. Gracias a ello somos capaces de entender su funcionamiento y conocer cualquier estado de dicho sistema

De manera general un sistema consiste en un conjunto de componentes interconectados, construidos con un propósito determinado. En la naturaleza es posible encontrar sistemas estáticos, cuya salida depende únicamente del valor de la entrada, y modelos dinámicos, cuya salida depende del valor pasado y presente de la variable de entrada.

Un sistema dinámico es la representación matemática abstracta que modela un fenómeno creado por el hombre, biológico o físico que cambia con el tiempo. En concreto, define los elementos que intervienen en él y las relaciones entre ellos. Estos sistemas se pueden representar mediante un conjunto de ecuaciones diferenciales ordinarias y ecuaciones en derivadas parciales (ambos en el caso de sistemas continuos) o por transformaciones discretas, típicamente ecuaciones en diferencias como la que se muestra a continuación

A través de estas ecuaciones diferenciales somos capaces de describir fenómenos como la expansión de una enfermedad, atractores o modelar el comportamiento de una aeronave en vuelo

Sistema de referencia y ecuaciones de una aeronave

Un sistema de referencia es un conjunto de coordenadas medidas en el espacio y tiempo necesarias para determinar la posición de un punto en el espacio. Es decir, es el conjunto de convenciones que un observador necesita para medir magnitudes físicas en un sistema mecánico. Los sistema de referencia son necesarios para entender el contexto y dimensiones sobre las que se desarrolla el movimiento de un cuerpo. En la mecánica de vuelo existen diversos sistemas de referencia: sistema de referencia inercial, sistema de referencia geocéntrico giratorio, sistema de ejes tierra, sistema de ejes de horizonte local, sistema de ejes cuerpo y sistema de ejes viento. Excepto los dos últimos, todos ellos son sistemas de referencia inerciales. Esto es que no es necesario considerar fuerzas ficticias ni la aceleración de Coriolis en el lado derecho de la ecuación.

Los sistemas ejes cuerpo y viento son sistemas no inerciales, es decir, su posición no es fija respecto un punto y no se puede utilizar la expresión

.

En concreto, el sistema utilizado en este proyecto será el sistema de ejes viento denotado como , donde es el centro u origen del sistema y son los tres ejes perpendiculares entre sí que forman un triedro a derechas. Este sistema de referencia se encuentra ligado a la dirección del vector velocidad aerodinámica. En concreto, su centro es cualquier punto del avión dentro del plano de simetría, aunque se suele seleccionar el centro de masas. El eje se orienta según la dirección y sentido de la velocidad aerodinámica, se orienta en el plano de simetría hacia abajo, perpendicular a . Por último, se dirige formando un triedro a derechas con los otros dos ejes.

Se han seleccionado el sistema de ejes viento porque junto con el sistema ejes cuerpo es el más utilizado y permite proyectar fácilmente los vectores de las fuerzas aerodinámicas.

En este proyecto los movimientos simulados son simétricos, con las alas a nivel y con el empuje orientado según la dirección por lo que las ecuaciones dinámicas de la aeronave son las siguientes

Por otro lado, para la obtención de las ecuaciones del planeador se utilizan las ecuaciones cinemáticas

SINDy

Sparse Identification of Nonlinear Dynamics o SINDy, es una técnica desarrollada principalmente en la universidad de Washington, Seattle. El objetivo es obtener las ecuaciones que modelan la dinámica de un sistema a partir de mediciones de sus variables de interés, para sistemas de ecuaciones de la forma representada en la ecuación. Esta técnica aplica a diversas áreas como la ingeniería, finanzas, ecología o epidemiología. La necesidad de desarrollar esta técnica surge, por un lado de la gran cantidad de datos y técnicas para procesarlos de los que se dispone hoy en día, y por otro lado de la escasez de soluciones existentes para obtener la dinámica de un sistema a partir de estos datos medidos. Su implementación se ha realizado en el lenguaje de programación Python a través de la libería PySINDy.

El algoritmo que implementa la técnica de SINDy recibe dos entradas. La primera es una matriz con mediciones de las variables de estado donde es el número de instantes temporales considerados y el número de variables de estado, i.e. la dimensión del vector de estado . La segunda entrada es un conjunto de las funciones candidatas básicas sobre las que realizar la regresión. Por último, SINDy también recibe como entrada las derivadas del vector de estado para todos los instantes, , las cuales son calculadas por la librería PySINDy en caso de que el usuario no las proporcione. A su salida, SINDy obtiene el mínimo número de funciones de entre las candidatas necesarias para describir las trayectorias que recibe a su entrada, junto con los coeficientes y variables de estado asociadas a cada función.

Más formalmente, las entradas de SINDy se organizan en dos matrices. La primera de ellas es la matriz de trayectorias

Por otro lado, SINDy también recibe una matriz de funciones no lineales candidatas , construida a partir de la función , que aproximan los datos de entrada y donde es el número de funciones posibles a considerar. Por ejemplo, la siguiente contiene términos constantes y polinómicos de hasta grado 3 (cada uno de ellos perteneciente a una librería distinta)

donde denota la matriz

Como se puede ver contiene en cada columna el valor de cada una de las funciones candidatas, , para todos los instantes temporales, y en cada fila todas las combinaciones posibles de funciones candidatas entre todas las variables de estado para un determinado instante temporal. es el número de librerías de funciones a considerar (términos constantes y polinómicas de grado 1, 2 y 3 en el ejemplo anterior, por lo que en este caso) y representa el número total de funciones a considerar. Existe un gran cantidad de soluciones posibles, por lo que SINDy utiliza regresión dispersa para determinar los coeficientes de la matriz que activan aquellas funciones de la matriz . Se define

donde son los coeficientes asociados a la variable de estado .

SINDy utiliza regresión dispersa, la cual consiste en asumir que solo existen unos pocos términos relevantes por los cuales aproximar la ecuación. Un ejemplo de este tipo de algoritmo sería el representado en la siguiente ecuación

donde representa la norma de Frobenius, es la norma 0 de la matriz y denota la suma de valores distintos de cero. Por otro lado, representa un escalar que limita el número de valores distintos de cero de la matriz . Las funciones de la matriz asociadas a la variable de estado son activadas por los coeficientes del vector . La principal suposición que se realiza es que . De manera que la derivada de cada elemento se denota por .

Parámetros configurables

La implementación del algoritmo SINDy en la librería PySINDy permite configurar diversas entradas a su algoritmo. Las más relevantes son:

  • Matriz de datos, : tal y como se indica anteriormente debe contener en sus filas los distintos instantes temporales y en sus columnas las variables de estado.
  • Matriz de derivadas, (opcional): similar al caso anterior pero ahora debe contener el valor de las derivadas del vector de estado en cada instante temporal.
  • Paso de tiempo (opcional, por defecto 1): PySINDy permite indicar el lapso de tiempo que transcurre entre las muestras del vector de tiempos .
  • Librería de funciones candidatas: PySINDy debe recibir las funciones candidatas para las cuales aproximar . Existen diversas librerías ya creadas como la polinómica o de Fourier (incluye términos trigonométricos).
  • Optimizador (opcional, por defecto Sequentially thresholded least squares algorithm, STLSQ): PySINDy permite indicar qué optimizador usará en el proceso de regresión dispersa para la obtención de los pesos o coeficientes.
    • STLSQ: el funcionamiento general de este optimizador consiste en a cada iteración se calculan los valores de los pesos y se da un valor de 0 a aquellos coeficientes inferiores a un umbral (por defecto 0.1), con la intención de conseguir una solución dispersa.
    • Regresión regularizada relajada dispersa (Sparse relaxed regularized regression, SR3): esta propuesta es más robusta a errores y falsos positivos.
    • SR3 restringido (Sparse relaxed regularized regression with linear equality constraints): este optimizador es similar al anterior, pero permite al usuario indicar una serie de restricciones lineales del tipo menor o igual a aplicar sobre los pesos.

    En este proyecto se ha utilizado el optimizador SR3 para todos los casos, excepto en aquellos en los que se introducen restricciones sobre un coeficiente determinado, en estos casos se utilizará el optimizador SR3 restringido.

  • Diferenciador (opcional, por defecto diferencia de derivadas finitas o finite difference derivatives): SINDy permite, como ya hemos indicado, recibir como argumento opcional la matriz de derivadas. Si no se le pasa dicha matriz, el algoritmo necesita calcularla, y utilizará para ello el diferenciador que le indiquemos en este argumento. Existen diferentes diferenciadores según la naturaleza de los datos (ruidosos o que presentan un paso de tiempo no uniforme). En el caso del método por defecto calcula las derivadas usando la aproximación de Taylor de primer orden. Otros métodos son savitzky golay y spline.
  • Suposición inicial o initial guess (opcional): matriz que indica la suposición inicial a partir de la cual el optimizador debe empezar a buscar el valor de los pesos o matriz .
  • Múltiples trayectorias (opcional, por defecto falso): indica si existen varias trayectorias para los datos presentes en la matriz . Estas trayectorias pueden variar sus condiciones iniciales o contener datos para distintos instantes temporales.

volver