Jump to content

Modelo de vuelo basado en forma


Recommended Posts

Muy buenas!

 

Llevo unas semanas trabajando en un concepto de modelo de vuelo WYSIWYF (What You See Is What You Fly). Cuando digo modelo de vuelo, digo algo serio, no patrañas como lo de X-plane. Basicamente estoy probando si técnicas de calculo fluido/aerodinamico computacional pueden ser aplicadas con mallas "bastas" (pero usables) y calculables en tiempo real.

 

Para ello usaré una serie de técnicas diferentes, de menos a más, de manera que podamos acercarnos lo más posible al comportamiento del avión siempre manteniendo el cálculo "on-line". Otras técnicas como calculo en GPU etc. quizás se apliquen más adelante.

 

Todo lo estoy programando en C/C++, ayudándome sólo de una libreria matemática básica, con vistas a "enchufarse" a cualquier simulador (FS, X-Plane, DCS...) más adelante.

 

De momento estoy comenzando con la técnica más prometedora, Vortex Lattice:

 

http://en.wikipedia.org/wiki/Vortex_lattice_method

 

Aquí las superficies aerodinámicas se descomponen en mallas planas (una variante avanzada, la cual estoy utilizando, permite mallas curvadas, pero siempre sin volumen)

 

21046f3.gif

 

Capturando tanto la forma del perfil, como los efectos inducidos entre superficies, modelar efectos acoplados entre hélice y ala/cola, las diferentes velocidades en cada punto del ala cuando hay giros etc... Es bastante sencillo pero muy completo. Con este incluso puedes modelar los efectos inducidos de volar en formación!! (Y no sólo los torbellinos de punta, sino también detalles como la reducción en resistencia que trae el vuelo en formación también se puede capturar con esto). Todo de manera natural.

 

Tras unas semanas trabajando en ello he conseguido ya sacar resultados con una sola superficie:

 

ALA_1.jpg

Y la verdad es que el resultado es muy prometedor! Una malla tan densa como la mostrada tarda 0.5 segundos en resolverse, pero una más basta, perdiendo menos de un 5% en precisión, puede sacarse en sólo 0.001 seg!!! Y aun hay mucho margen para optimizar código.

 

Siguiente paso, meter varias superficies aerodinamicas (cola, canards...) y ver si sigue funcionando igual de bien. Si aún queda algo de margen para cálculo, intentaremos pasar a una técnica híbrida y meter un fuselaje con volumen mediante el método de paneles (F-15, F-18 y otros se diseñaron con esta técnica!).

 

UN saludo!

 

 

 

Link to comment
Share on other sites

Guest Darkness

Muy interesante. Efectivamente las GPUs se están usando ya para todo tipo de cálculos, con resultados espectaculares. Hay que tener en cuenta de todas formas los requerimientos restantes de un simulador, en los que el consumo de CPU por el cálculo del modelo de vuelo debe compensarse con la IA y otros elementos. Por lo que comentas es un sistema que contempla cosas que entiendo hasta ahora no se habían tenido en cuenta, promete ser muy interesante :aplauso-6:

Link to comment
Share on other sites

Por que el del xplane es una patraña?

 

Por que mas o menos funciona como con lo que estas probando, según las forma de las alas, hace los cálculos, o eso creo.

 

Entonces, mas o menos, si le pasas un modelo 3D del avión, calcula como tendría que volar?

 

Necesitas algún tipo de ayuda para sacarlo adelante?

Edited by Blackleg
Link to comment
Share on other sites

Por que el del xplane es una patraña?

 

Bueno yo es que soy del sur y soy un poco exagerao :xd: . No es que sea una patraña, pero es lo más limitadito que se despacha para el cálculo de alas y hoy día hay potencia de cálculo más que de sobra para subir a otro nivel. X-Plane se basa en el modelo de linea sustentadora que descubrió Sir Lancaster allá por principios del S.XX, es una teoría 1D, es decir el ala se considera una línea, en la que cada punto se comporta como un perfil y luego los efectos tridimensionales se introducen como variaciones del angulo de ataque inducido. Es un modelo que funciona bien dentro de su rango de aplicación, pero en muchos otros se queda muy atrás, por ejemplo funciona fatal para alas en flecha.

 

Este Vortex Lattice es una técinca más moderna, de los años 50, que se comenzó a usar precisamente para calcular alas en flecha y en delta. Aquí por ejemplo no hay que meter perfiles, pues ya se trata de una superficie (plana, eso sí) y tiene las limitaciones típicas de los métodos potenciales (sólo subsónico, sin desprendimiento). Además, los fuselajes no los pilla muy bien, pero para eso quizás se pueda hacer un apaño modelandolos con la joya de la corona, un método de paneles completo no-sustentante, sólo para el fuselaje, dejando las alas con el VLM.

 

En fin ya veremos, de momento a ver si consigo limpiar y encapsular un poco el modelo y probar a 'enchufarlo' a DCS. Ahora mismo todo lo que hago es algoritmia y ya me lo guiso solo ;) pero igual cuando haya que hacer trabajo de intregación puro y duro no me vendría mal la mano de alguien que supiera trabajar con dlls, luas y demás...

 

Saludos!

Link to comment
Share on other sites

No sabía que se podía 'enchufar' el modelo de vuelo a un simulador.

Pensaba que las reglas que gobiernan el comportamiento de un aparato dentro del simulador estaban predefinidas y eran las mismas para los aviones ya existentes y los venideros.

 

Ama, esto tiene una pinta excelente.

 

Saludos

PD: Y luego se piensa que en el sur sólo hay vagos y maleantes tocando la pandereta y durmiendo la siesta...

Link to comment
Share on other sites

No sabía que se podía 'enchufar' el modelo de vuelo a un simulador.

Pensaba

que las reglas que gobiernan el comportamiento de un aparato dentro del

simulador estaban predefinidas y eran las mismas para los aviones ya

existentes y los venideros.

 

 

En DCS en cuanto a modelo de vuelo, tienes total libertad para llegar tan lejos como quieras/puedas.

Link to comment
Share on other sites

Nuevo update:

 

Limpieza de codigo y encapsulación, ahora se pueden definir alas por tramos de manera indefinida. ¿Que quieres un box-wing? Pues aquí tienes

 

ALA_2.jpg

 

Con esto también se pueden definir rapidamente alas elípticas, con diferentes diedros a lo largo del ala (F-4, XB-70) o incluso alas de geometria variable (Mig-23, F-14)

 

Seguiré con la encapsulación para meter más superficies, principalmente pensando en la cola pero siempre manteniendo la generalidad al máximo (biplanos? Canards?...)

 

Saludos!

Link to comment
Share on other sites

Pequeña actualización chicos:

 

Multisuperficie ya está hecho. Actualmente puedes definir tantas superficies como te permita un integer; cada una con otros tantos tramos, simétricos o no, con cualquier flecha y diedro. Es espectacular poner un biplano asimétrico y ver como la superficie superior afecta a la inferior conforme vas acercando ambas!

 

Con esto tecnicamente ya se pueden definir aviones completos: Ala y estabilizadores. Por hacer: Añadir superficies de control (flaps, alerones, slats...) y acoplar un parser xml para ficheros de entrada.

 

Desde el punto de vista más técnico, ahora mismo el sistema sólo resuelve para resistencia y sustentación. Necesito investigar más para que me saque fuerzas y momentos en los 3 ejes, para cualquier actitud del avión. Esto, que en casi todos los textos se obvia pues este método se usa sobre todo para diseño (donde sustentación y resistencia son las variables características), es imprescindible para una simulación de este estilo. Sigo indagando en la base de datos de la NASA, buscando petroleo...

 

Los tiempos de cálculo, sin embargo, con multisuperficie se están empezando a disparar. Para más desesperación, la matriz de coeficientes de influencia final, la que hay que resolver, pensaba que era simétrica y por lo tanto me iba a ahorrar un huevo de tiempo de proceso tanto en la generación como en la resolución del sistema de ecuaciones, al final mierda pal menda y ni simétrica ni ostias. Creo que va a hacer falta subir los cálculos a GPU... Si alguien conoce alguna libreria para C que sea opensource y ya tenga funciones algebraicas implementadas...

 

Saludos!

Link to comment
Share on other sites

Hola ke ase metemos fuerzas o ke ase

Las líneas rojas son las fuerzas aerodinámicas totales sobre cada porción de superficie. El ala en cuestión forma parte de un caso de prueba de un software bastante caro; y de momento mi programa esta aproximando mejor los valores de sustentación y resistencia inducida jiji

 

 

 

 

TEST.jpg

Link to comment
Share on other sites

Okis mañana preparo alguna cosilla con superficies de cola. Blackleg, tu que estás puesto, cuales son los compiladores de C++ que preparan los ejecutables más rápidos?

 

Saludos!

 

Yo, puesto? Como no sea de cervezas. :alcoholic:

La verdad es que a tanto no llego, lo mio no pasa del nivel aficionado novatillo por ahora. :icon_mrgreen:

 

De compiladores los únicos que conozco y he usado son el GCC para linux y el MINGW, que es el GCC para windows. De todas formas no creo que cambie mucho el rendimiento de uno a otro.

 

Lo que si se que para el GCC y creo que para el mingw esta la opción -O y un numero para indicarle un grado de optimización del código.

 

Y la opción -march para indicarle la arquitectura del procesador y optimizarlo a ese procesador.

 

Ejemplo:

gcc -O2 -march=core-avx-i  

El tema de varios hilos a la vez como lo llevas?

 

Haber si me acuerdo y le echo un vistazo a lo de el opencl.

Edited by Blackleg
Link to comment
Share on other sites

Bueno

pues aquí tenéis un ejemplo de avión completo, con canard, ala con lerx y diedro y cola en V. El programa ya calcula fuerzas y momentos completos en cualquier situación, incluyendo virajes. Falta añadir superficies de control y encapsularlo todo y ya estará listo para empezar a probar con algún sdk, posiblemente DCS. En función de la potencia de cálculo disponible ya veremos como metemos el fuselaje.

 

TEST2.jpg

 

Saludos!

Link to comment
Share on other sites

Es una navecita galáctica manga de esas que le gustan a JO :icon_mrgreen:

 

Ahora que tengo tiempo, algunos comentarios sobre el modelo:

 

* Vortex-Lattice es un método que realmente se utiliza profesionalmente para cálculo preliminar de superficies y establecer parámetros aproximados de estabilidad y control para el primer disparo para las leyes de control de aviones inestables. De hecho, hasta 1970 no existía método más avanzado y se desarrolló mucho durante esa época hasta principios de los 80 donde aparecieron ya modelos potenciales completos y los primeros solver euler. Quiero decir con esto que, a pesar de sus limitaciones que comentaré a continuación, se trata de un modelo muy bueno que aproxima la realidad con cierta precisión, siempre que se use en su rango de aplicación. Por ejemplo, torbellinos de punta de ala quedan perfectamente modelados con este método:

 

big_aero1.jpg

 

* Limitaciones:

 

- Sólo subsónico (hasta M=0.7-0.8). Ni transónico ni supersónico quedan cubiertos por este método, teniendo que irse a otros más complejos y computacionalmente muchísimo más intensivos. Existe una variación para supersónico pero es bastante simple, más intensiva y no recoge las interacciones entre ala y fuselaje, que en supersónico son bastante fuertes (e.g. Ley de áreas)

 

- No existe viscosidad. Esto es, no sólo la resistencia debida a la fricción no se puede obtener con este método directamente, sino que los efectos debido a ella (pérdidas, barrenas etc) no aparecen directamente. Estoy investigando porque creo que es posible mezclar Vortex Lattice con datos empíricos para llegar a un modelo híbrido que recoja con una aproximación buena cualquier régimen, pero es algo que aún es WIP

 

- No se pueden modelar formas volumétricas, como un fuselaje. En realidad, ya que la sustentación que genera un fuselaje es muy pequeña en comparación con un ala, para cabeceo influye poco, pero en los vuelos con resbalamiento el efecto es importante y fundamental en algunas maniobras. Lo ideal es mezclar este método, aplicado sólo a las alas, con otro ligeramente más complejo para el fuselaje, en un hibrido que combine rapidez y precisión, pero primero tengo que ver como andamos ahora mismo de carga computacional en un ambiente "real" para ver si es factible. Con el método hibrido obtendriamos algo parecido a esto:

 

big_banshee2.jpg

 

Hasta el próximo "milestone"!

 

Saludos

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

Some pretty cookies are used in this website